Google představili návrhy týkající se zabezpečeného síťového protokolu PSP

Společnost Google oznámila otevření specifikací a referenční implementace protokolu PSP (PSP Security Protocol), který se používá k šifrování provozu mezi datovými centry. Protokol využívá architekturu pro enkapsulaci provozu podobnou IPsec ESP (Encapsulating Security Payloads) nad IP, zajišťující šifrování, kryptografickou kontrolu integrity a autentizaci zdroje. Kód implementace PSP je napsán v jazyce C a je distribuován pod licencí Apache 2.0.

Jedinečnost PSP spočívá v optimalizaci protokolu pro zrychlení výpočtů a snížení zátěže na centrální procesor přenesením šifrovacích a dešifrovacích operací na stranu síťových karet (offload). Pro využití hardwarové akcelerace je nutné mít speciální síťové karty, které jsou kompatibilní s PSP. Pro systémy se síťovými kartami, které PSP nepodporují, je nabízena softwarová implementace SoftPSP.

Jako transport pro přenos dat se používá protokol UDP. Paket PSP začíná IP hlavičkou, za kterou následuje hlavička UDP a poté vlastní hlavička PSP s informacemi o šifrování a autentizaci. Následně se připojí obsah původního TCP/UDP paketu, který končí finálním blokem PSP s kontrolním součtem pro potvrzení integrity. Hlavička PSP, stejně jako hlavička a data enkapsulovaného paketu, jsou vždy autentizovány pro potvrzení pravosti paketu. Data enkapsulovaného paketu mohou být zašifrována, přičemž je povolena možnost volitelného použití šifrování s ponecháním části TCP hlavičky nezakódované (při zachování kontroly pravosti), například pro umožnění inspekce paketů v přechodném síťovém zařízení.

Google představili návrhy týkající se zabezpečeného síťového protokolu PSP

PSP není vázán na žádný konkrétní protokol pro výměnu klíčů, nabízí několik variant formátu paketů a podporuje používání různých kryptografických algoritmů. Například je zde podpora algoritmu AES-GCM pro šifrování a autentizaci (ověření pravosti) a AES-GMAC pro ověření pravosti bez šifrování samotných dat, například když data nezakládají hodnotu, ale je třeba zaručit, že během přenosu nebyla pozměněna a že jsou právě těmi, které byly původně odeslány.

Na rozdíl od typových VPN-v PSP se používá šifrování na úrovni jednotlivých síťových spojení, a ne celého komunikačního kanálu, což znamená, že PSP využívá samostatné šifrovací klíče pro různá tunelovaná UDP a TCP spojení. Tento přístup umožňuje dosáhnout přísnější izolace provozu mezi různými aplikacemi a zpracovateli, což je relevantní při běhu na jednom serveru aplikací a služeb různých uživatelů.

V Google se protokol PSP používá jak pro ochranu vlastních interních komunikací, tak pro zabezpečení provozu klientů Google Cloud. Protokol byl původně navržen pro efektivní fungování v infrastrukturách úrovně Google a měl by zajišťovat hardwarové urychlení šifrování v podmínkách milionů aktivních síťových spojení a desítek tisíc nových spojení za sekundu.

Podporovány jsou dva režimy práce - „stateful“ a „stateless“. V režimu „stateless“ se šifrovací klíče předávají síťové kartě v popisu paketu, a pro dešifrování se extrahují z přítomného pole SPI (Security Parameter Index) pomocí master klíče (256-bit AES, uloženého v paměti síťové karty a měněného každých 24 hodin), což šetří paměť síťové karty a minimalizuje informace o stavu šifrovaných spojení uchovávané na straně zařízení. V režimu „stateful“ se klíče pro každé spojení ukládají na síťové kartě ve speciální tabulce, podobně jako je to realizováno pro hardwarové urychlení v IPsec.

Google představili návrhy týkající se zabezpečeného síťového protokolu PSP

PSP poskytuje poněkud kombinaci schopností protokolů TLS a IPsec/VPN. TLS vyhovoval Googlu z pohledu ochrany na úrovni jednotlivých spojení, ale nebyl uspokojivý kvůli nedostatečné flexibilitě pro hardwarové urychlení a absenci podpory UDP. IPsec zajišťoval nezávislost na protokolech a dobře podporoval hardwarové urychlení, ale nepodporoval vazbu klíčů na jednotlivá spojení, byl navržen pouze pro malé množství vytvářených tunelů a měl problémy se škálovatelností hardwarového urychlení kvůli uchovávání kompletního stavu šifrování v tabulkách uložených v paměti síťové karty (například pro zpracování 10 miliónů spojení je zapotřebí 5 GB paměti).

V případě PSP může být informace o stavu šifrování (klíče, inicializační vektory, pořadová čísla apod.) předávána v TX-deskriptoru paketu nebo ve formě ukazatele na paměť hostitelského systému, aniž by zabírala paměť síťové karty. Podle údajů Google dříve na šifrování RPC provozu v infrastruktuře společnosti šlo přibližně 0,7 % výpočetního výkonu a velké množství paměti. Zavedení PSP díky využití prostředků hardwarového akcelerování snížilo tuto hodnotu na 0,2 %.

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster