Google objevil vývoj týkající se zabezpečeného síťového protokolu PSP

Google oznámil otevření specifikací a referenční implementaci PSP (PSP Security Protocol), používaného k šifrování provozu mezi datovými centry. Protokol využívá architekturu zapouzdření provozu podobnou IPsec ESP (Encapsulating Security Payloads) přes IP, která poskytuje šifrování, kontrolu kryptografické integrity a autentizaci zdroje. Implementační kód PSP je napsán v jazyce C a distribuován pod licencí Apache 2.0.

Funkce PSP je optimalizace protokolu pro urychlení výpočtů a snížení zátěže centrálního procesoru přesunem šifrovacích a dešifrovacích operací na stranu síťových karet (offload). Hardwarová akcelerace vyžaduje speciální síťové karty kompatibilní s PSP. Pro systémy se síťovými kartami, které nepodporují PSP, je navržena softwarová implementace SoftPSP.

Jako transport pro přenos dat se používá protokol UDP. Paket PSP začíná hlavičkou IP, následovanou hlavičkou UDP a poté vlastní hlavičkou PSP s informacemi o šifrování a ověřování. Dále je připojen obsah původního paketu TCP/UDP, který končí posledním blokem PSP s kontrolním součtem pro potvrzení integrity. Hlavička PSP, stejně jako hlavička a data zapouzdřeného paketu, jsou vždy ověřeny pro potvrzení identity paketu. Data zapouzdřeného paketu mohou být šifrována, přičemž je možné selektivně použít šifrování, přičemž část TCP hlavičky je ponechána volná (při zachování kontroly autenticity), například pro zajištění možnosti kontroly paketů na zařízeních tranzitní sítě.

Google objevil vývoj týkající se zabezpečeného síťového protokolu PSP

PSP není vázán na žádný konkrétní protokol výměny klíčů, nabízí několik možností formátu paketů a podporuje použití různých kryptografických algoritmů. Například je poskytována podpora pro algoritmus AES-GCM pro šifrování a autentizaci (autentizaci) a AES-GMAC pro autentizaci bez šifrování skutečných dat, například když data nejsou hodnotná, ale musíte se ujistit, že nemají byly během přenosu zmanipulovány a že je to správné. které byly původně odeslány.

Na rozdíl od typických protokolů VPN používá PSP šifrování na úrovni jednotlivých síťových připojení, nikoli celého komunikačního kanálu, tzn. PSP používá samostatné šifrovací klíče pro různá tunelovaná připojení UDP a TCP. Tento přístup umožňuje dosáhnout přísnější izolace provozu od různých aplikací a procesorů, což je důležité, když na stejném serveru běží aplikace a služby různých uživatelů.

Google používá protokol PSP jak k ochraně vlastní interní komunikace, tak k ochraně provozu klientů Google Cloud. Protokol je původně navržen tak, aby efektivně fungoval v infrastrukturách na úrovni Google a měl by poskytovat hardwarovou akceleraci šifrování za přítomnosti milionů aktivních síťových připojení a vytvoření stovek tisíc nových připojení za sekundu.

Podporovány jsou dva provozní režimy: „stavový“ a „bezstavový“. V „bezstavovém“ režimu jsou šifrovací klíče přenášeny na síťovou kartu v popisovači paketů a pro dešifrování jsou extrahovány z pole SPI (Security Parameter Index) přítomného v paketu pomocí hlavního klíče (256bitový AES, uložený v paměť síťové karty a vyměňována každých 24 hodin), což umožňuje šetřit paměť síťové karty a minimalizovat informace o stavu šifrovaných spojení uložených na straně zařízení. Ve „stavovém“ režimu jsou klíče pro každé připojení uloženy na síťové kartě ve speciální tabulce, podobně jako je implementována hardwarová akcelerace v IPsec.

Google objevil vývoj týkající se zabezpečeného síťového protokolu PSP

PSP poskytuje jedinečnou kombinaci schopností protokolu TLS a IPsec/VPN. TLS vyhovovalo Googlu z hlediska zabezpečení jednotlivých připojení, ale nebylo vhodné kvůli nedostatečné flexibilitě pro hardwarovou akceleraci a chybějící podpoře UDP. IPsec poskytoval protokolovou nezávislost a dobře podporoval hardwarovou akceleraci, ale nepodporoval vázání klíčů na jednotlivá připojení, byl navržen pouze pro malý počet vytvořených tunelů a měl problémy se škálováním hardwarové akcelerace kvůli ukládání stavu plného šifrování do tabulek umístěných v paměti síťové karty (například 10 GB paměti je potřeba ke zpracování 5 milionů připojení).

V případě PSP lze informace o stavu šifrování (klíče, inicializační vektory, pořadová čísla atd.) přenášet v popisovači paketů TX nebo ve formě ukazatele do paměti hostitelského systému, aniž by zabíraly paměť síťové karty. Podle Googlu bylo dříve přibližně 0.7 % výpočetního výkonu a velké množství paměti vynaloženo na šifrování RPC provozu v infrastruktuře společnosti. Zavedení PSP pomocí hardwarové akcelerace umožnilo snížit toto číslo na 0.2 %.

Zdroj: opennet.ru

Přidat komentář