Google a découvert des développements liés au protocole réseau sécurisé PSP

Google a annoncé l'ouverture d'un cahier des charges et une implémentation de référence du PSP (PSP Security Protocol), utilisé pour chiffrer le trafic entre les centres de données. Le protocole utilise une architecture d'encapsulation du trafic similaire à IPsec ESP (Encapsulated Security Payloads) sur IP, assurant le cryptage, le contrôle de l'intégrité cryptographique et l'authentification de la source. Le code d'implémentation de PSP est écrit en C et distribué sous la licence Apache 2.0.

Une caractéristique de la PSP est l'optimisation du protocole pour accélérer les calculs et réduire la charge sur le processeur central en déplaçant les opérations de cryptage et de décryptage du côté des cartes réseau (offload). L'accélération matérielle nécessite des cartes réseau spéciales compatibles PSP. Pour les systèmes dotés de cartes réseau ne prenant pas en charge la PSP, une implémentation logicielle de SoftPSP est proposée.

Le protocole UDP est utilisé comme moyen de transport pour le transfert de données. Un paquet PSP commence par un en-tête IP, suivi d'un en-tête UDP, puis de son propre en-tête PSP avec des informations de cryptage et d'authentification. Ensuite, le contenu du paquet TCP/UDP d'origine est ajouté, se terminant par un bloc PSP final avec une somme de contrôle pour confirmer l'intégrité. L'en-tête PSP, ainsi que l'en-tête et les données du paquet encapsulé, sont toujours authentifiés pour confirmer l'identité du paquet. Les données du paquet encapsulé peuvent être cryptées, tandis qu'il est possible d'appliquer un cryptage de manière sélective tout en laissant une partie de l'en-tête TCP en clair (tout en maintenant le contrôle d'authenticité), par exemple pour permettre d'inspecter les paquets sur les équipements du réseau de transit.

Google a découvert des développements liés au protocole réseau sécurisé PSP

PSP n'est lié à aucun protocole d'échange de clés spécifique, propose plusieurs options de format de paquet et prend en charge l'utilisation de différents algorithmes cryptographiques. Par exemple, l'algorithme AES-GCM est pris en charge pour le cryptage et l'authentification (authentification) et AES-GMAC pour l'authentification sans cryptage des données réelles, par exemple lorsque les données n'ont pas de valeur, mais que vous devez vous assurer qu'elles n'ont pas de valeur. été falsifié lors de la transmission et qu'il s'agit bien du bon qui a été envoyé à l'origine.

Contrairement aux protocoles VPN classiques, la PSP utilise le cryptage au niveau des connexions réseau individuelles, et non sur l'ensemble du canal de communication, c'est-à-dire PSP utilise des clés de chiffrement distinctes pour différentes connexions UDP et TCP tunnelées. Cette approche permet d'obtenir une isolation plus stricte du trafic provenant de différentes applications et processeurs, ce qui est important lorsque des applications et des services de différents utilisateurs s'exécutent sur le même serveur.

Google utilise le protocole PSP à la fois pour protéger ses propres communications internes et pour protéger le trafic des clients Google Cloud. Le protocole est initialement conçu pour fonctionner efficacement dans les infrastructures de niveau Google et devrait permettre une accélération matérielle du cryptage en présence de millions de connexions réseau actives et l'établissement de centaines de milliers de nouvelles connexions par seconde.

Deux modes de fonctionnement sont pris en charge : « avec état » et « sans état ». En mode « stateless », les clés de chiffrement sont transmises à la carte réseau dans le descripteur de paquet, et pour le décryptage elles sont extraites du champ SPI (Security Parameter Index) présent dans le paquet à l'aide d'une clé maîtresse (AES 256 bits, stockée dans la mémoire de la carte réseau et remplacée toutes les 24 heures), ce qui permet d'économiser la mémoire de la carte réseau et de minimiser les informations sur l'état des connexions cryptées stockées côté équipement. En mode « avec état », les clés de chaque connexion sont stockées sur la carte réseau dans une table spéciale, de la même manière que l'accélération matérielle est implémentée dans IPsec.

Google a découvert des développements liés au protocole réseau sécurisé PSP

PSP offre une combinaison unique de fonctionnalités de protocole TLS et IPsec/VPN. TLS convenait à Google en termes de sécurité par connexion, mais ne convenait pas en raison de son manque de flexibilité pour l'accélération matérielle et du manque de prise en charge UDP. IPsec assurait l'indépendance du protocole et prenait bien en charge l'accélération matérielle, mais ne prenait pas en charge la liaison de clé aux connexions individuelles, n'était conçu que pour un petit nombre de tunnels créés et rencontrait des problèmes de mise à l'échelle de l'accélération matérielle en raison du stockage de l'état de chiffrement complet dans des tables situées dans la mémoire. de la carte réseau (par exemple, 10 Go de mémoire sont nécessaires pour gérer 5 millions de connexions).

Dans le cas de la PSP, les informations sur l'état du cryptage (clés, vecteurs d'initialisation, numéros de séquence, etc.) peuvent être transmises dans le descripteur du paquet TX ou sous la forme d'un pointeur vers la mémoire du système hôte, sans occuper la mémoire de la carte réseau. Selon Google, environ 0.7 % de la puissance de calcul et une grande quantité de mémoire étaient auparavant consacrés au cryptage du trafic RPC dans l'infrastructure de l'entreprise. L'introduction de la PSP grâce à l'utilisation de l'accélération matérielle a permis de réduire ce chiffre à 0.2 %.

Source: opennet.ru

Ajouter un commentaire