Google har upptäckt utvecklingar relaterade till PSP:s säkra nätverksprotokoll

Google har tillkännagett öppnandet av specifikationer och en referensimplementering av PSP (PSP Security Protocol), som används för att kryptera trafik mellan datacenter. Protokollet använder en trafikinkapslingsarkitektur som liknar IPsec ESP (Encapsulating Security Payloads) över IP, vilket ger kryptering, kryptografisk integritetskontroll och källautentisering. PSP-implementeringskoden är skriven i C och distribueras under Apache 2.0-licensen.

En funktion hos PSP är optimering av protokollet för att påskynda beräkningar och minska belastningen på den centrala processorn genom att flytta krypterings- och dekrypteringsoperationer till sidan av nätverkskort (avlastning). Maskinvaruacceleration kräver speciella PSP-kompatibla nätverkskort. För system med nätverkskort som inte stöder PSP, föreslås en mjukvaruimplementering av SoftPSP.

UDP-protokollet används som en transport för dataöverföring. Ett PSP-paket börjar med en IP-header, följt av en UDP-header och sedan sin egen PSP-header med kryptering och autentiseringsinformation. Därefter läggs innehållet i det ursprungliga TCP/UDP-paketet till och slutar med ett sista PSP-block med en kontrollsumma för att bekräfta integriteten. PSP-huvudet, liksom rubriken och data för det inkapslade paketet, autentiseras alltid för att bekräfta paketets identitet. Data från det inkapslade paketet kan krypteras, medan det är möjligt att selektivt tillämpa kryptering samtidigt som en del av TCP-huvudet lämnas fri (med bibehållen autenticitetskontroll), till exempel, för att ge möjligheten att inspektera paket på transitnätverksutrustning.

Google har upptäckt utvecklingar relaterade till PSP:s säkra nätverksprotokoll

PSP är inte knuten till något specifikt nyckelutbytesprotokoll, erbjuder flera paketformatalternativ och stöder användningen av olika kryptografiska algoritmer. Till exempel tillhandahålls stöd för AES-GCM-algoritmen för kryptering och autentisering (autentisering) och AES-GMAC för autentisering utan kryptering av själva data, till exempel när data inte är värdefulla, men du måste se till att den inte har manipulerats under överföringen och att det är den korrekta som ursprungligen skickades.

Till skillnad från typiska VPN-protokoll använder PSP kryptering på nivån för enskilda nätverksanslutningar, och inte hela kommunikationskanalen, dvs. PSP använder separata krypteringsnycklar för olika tunnlade UDP- och TCP-anslutningar. Detta tillvägagångssätt gör det möjligt att uppnå striktare isolering av trafik från olika applikationer och processorer, vilket är viktigt när applikationer och tjänster från olika användare körs på samma server.

Google använder PSP-protokollet både för att skydda sin egen interna kommunikation och för att skydda trafiken från Google Cloud-klienter. Protokollet är från början utformat för att fungera effektivt i infrastrukturer på Google-nivå och bör ge hårdvaruacceleration av kryptering i närvaro av miljontals aktiva nätverksanslutningar och etablering av hundratusentals nya anslutningar per sekund.

Två driftslägen stöds: "stateful" och "stateless". I "stateless"-läge överförs krypteringsnycklar till nätverkskortet i paketbeskrivningen, och för dekryptering extraheras de från SPI-fältet (Security Parameter Index) som finns i paketet med hjälp av en huvudnyckel (256-bitars AES, lagrad i minnet på nätverkskortet och byts ut var 24:e timme), vilket gör att du kan spara nätverkskortsminne och minimera information om tillståndet för krypterade anslutningar lagrade på utrustningssidan. I "stateful" läge lagras nycklarna för varje anslutning på nätverkskortet i en speciell tabell, liknande hur hårdvaruacceleration implementeras i IPsec.

Google har upptäckt utvecklingar relaterade till PSP:s säkra nätverksprotokoll

PSP tillhandahåller en unik kombination av TLS- och IPsec/VPN-protokollfunktioner. TLS passade Google när det gäller säkerhet per anslutning, men var inte lämpligt på grund av dess bristande flexibilitet för hårdvaruacceleration och brist på UDP-stöd. IPsec tillhandahöll protokolloberoende och stödde hårdvaruacceleration väl, men stödde inte nyckelbindning till individuella anslutningar, designades för endast ett litet antal skapade tunnlar och hade problem med att skala hårdvaruacceleration på grund av att det fullständiga krypteringsläget lagrades i tabeller i minnet av nätverkskortet (till exempel krävs 10 GB minne för att hantera 5 miljoner anslutningar).

När det gäller PSP kan information om krypteringens tillstånd (nycklar, initialiseringsvektorer, sekvensnummer, etc.) överföras i TX-paketbeskrivningen eller i form av en pekare till värdsystemminnet, utan att uppta nätverkskortsminne. Enligt Google användes tidigare cirka 0.7 % av datorkraften och en stor mängd minne på att kryptera RPC-trafik i företagets infrastruktur. Introduktionen av PSP genom användning av hårdvaruacceleration gjorde det möjligt att minska denna siffra till 0.2 %.

Källa: opennet.ru

Lägg en kommentar