Google ha scoperto sviluppi relativi al protocollo di rete sicuro PSP

Google ha annunciato l'apertura delle specifiche e di un'implementazione di riferimento del PSP (PSP Security Protocol), utilizzato per crittografare il traffico tra data center. Il protocollo utilizza un'architettura di incapsulamento del traffico simile a IPsec ESP (Encapsulating Security Payloads) su IP, fornendo crittografia, controllo dell'integrità crittografica e autenticazione della fonte. Il codice di implementazione PSP è scritto in C e distribuito sotto la licenza Apache 2.0.

Una caratteristica di PSP è l'ottimizzazione del protocollo per accelerare i calcoli e ridurre il carico sul processore centrale spostando le operazioni di crittografia e decrittografia sul lato delle schede di rete (offload). L'accelerazione hardware richiede speciali schede di rete compatibili con PSP. Per i sistemi con schede di rete che non supportano PSP, viene proposta un'implementazione software di SoftPSP.

Il protocollo UDP viene utilizzato come mezzo di trasporto per il trasferimento dei dati. Un pacchetto PSP inizia con un'intestazione IP, seguita da un'intestazione UDP e quindi dalla propria intestazione PSP con informazioni di crittografia e autenticazione. Successivamente, viene aggiunto il contenuto del pacchetto TCP/UDP originale, terminando con un blocco PSP finale con un checksum per confermare l'integrità. L'intestazione PSP, così come l'intestazione e i dati del pacchetto incapsulato, vengono sempre autenticati per confermare l'identità del pacchetto. I dati del pacchetto incapsulato possono essere crittografati, mentre è possibile applicare selettivamente la crittografia lasciando in chiaro parte dell'intestazione TCP (mantenendo il controllo dell'autenticità), ad esempio per fornire la possibilità di ispezionare i pacchetti sugli apparati di rete in transito.

Google ha scoperto sviluppi relativi al protocollo di rete sicuro PSP

PSP non è legato ad alcun protocollo specifico di scambio di chiavi, offre diverse opzioni di formato dei pacchetti e supporta l'uso di diversi algoritmi crittografici. Ad esempio, viene fornito il supporto per l'algoritmo AES-GCM per la crittografia e l'autenticazione (autenticazione) e AES-GMAC per l'autenticazione senza crittografia dei dati effettivi, ad esempio quando i dati non hanno valore, ma è necessario assicurarsi che non abbiano valore stato manomesso durante la trasmissione e che sia quello corretto originariamente inviato.

A differenza dei tipici protocolli VPN, PSP utilizza la crittografia a livello delle singole connessioni di rete e non dell'intero canale di comunicazione, ad es. PSP utilizza chiavi di crittografia separate per diverse connessioni UDP e TCP con tunnel. Questo approccio consente di ottenere un isolamento più rigoroso del traffico proveniente da applicazioni e processori diversi, il che è importante quando applicazioni e servizi di utenti diversi vengono eseguiti sullo stesso server.

Google utilizza il protocollo PSP sia per proteggere le proprie comunicazioni interne sia per proteggere il traffico dei clienti Google Cloud. Il protocollo è inizialmente progettato per funzionare efficacemente nelle infrastrutture a livello di Google e dovrebbe fornire l'accelerazione hardware della crittografia in presenza di milioni di connessioni di rete attive e l'instaurazione di centinaia di migliaia di nuove connessioni al secondo.

Sono supportate due modalità operative: “stateful” e “stateless”. Nella modalità “stateless”, le chiavi di crittografia vengono trasmesse alla scheda di rete nel descrittore del pacchetto, e per la decrittografia vengono estratte dal campo SPI (Security Parametro Index) presente nel pacchetto utilizzando una chiave master (AES a 256 bit, memorizzata in la memoria della scheda di rete e sostituita ogni 24 ore), che consente di risparmiare memoria sulla scheda di rete e ridurre al minimo le informazioni sullo stato delle connessioni crittografate memorizzate a livello dell'apparecchiatura. In modalità “stateful”, le chiavi per ciascuna connessione vengono archiviate sulla scheda di rete in una tabella speciale, in modo simile a come viene implementata l'accelerazione hardware in IPsec.

Google ha scoperto sviluppi relativi al protocollo di rete sicuro PSP

PSP offre una combinazione unica di funzionalità del protocollo TLS e IPsec/VPN. TLS era adatto a Google in termini di sicurezza per connessione, ma non era adatto a causa della sua mancanza di flessibilità per l'accelerazione hardware e della mancanza di supporto UDP. IPsec forniva l'indipendenza dal protocollo e supportava bene l'accelerazione hardware, ma non supportava l'associazione di chiavi a singole connessioni, era progettato solo per un numero limitato di tunnel creati e presentava problemi di ridimensionamento dell'accelerazione hardware a causa della memorizzazione dell'intero stato di crittografia in tabelle situate nella memoria della scheda di rete (ad esempio, per gestire 10 milioni di connessioni sono necessari 5 GB di memoria).

Nel caso della PSP, le informazioni sullo stato della crittografia (chiavi, vettori di inizializzazione, numeri di sequenza, ecc.) possono essere trasmesse nel descrittore del pacchetto TX o sotto forma di puntatore alla memoria del sistema host, senza occupare la memoria della scheda di rete. Secondo Google, in precedenza circa lo 0.7% della potenza di calcolo e una grande quantità di memoria venivano spesi per crittografare il traffico RPC nell'infrastruttura dell'azienda. L'introduzione della PSP attraverso l'uso dell'accelerazione hardware ha permesso di ridurre questa cifra allo 0.2%.

Fonte: opennet.ru

Aggiungi un commento