O Google descobriu desenvolvimentos relacionados ao protocolo de rede seguro PSP

O Google anunciou a abertura de especificações e uma implementação de referência do PSP (PSP Security Protocol), usado para criptografar o tráfego entre data centers. O protocolo usa uma arquitetura de encapsulamento de tráfego semelhante ao IPsec ESP (Encapsulating Security Payloads) sobre IP, fornecendo criptografia, controle de integridade criptográfica e autenticação de origem. O código de implementação do PSP é escrito em C e distribuído sob a licença Apache 2.0.

Uma característica do PSP é a otimização do protocolo para acelerar os cálculos e reduzir a carga do processador central, movendo as operações de criptografia e descriptografia para o lado das placas de rede (offload). A aceleração de hardware requer placas de rede especiais compatíveis com PSP. Para sistemas com placas de rede que não suportam PSP, é proposta uma implementação de software do SoftPSP.

O protocolo UDP é usado como transporte para transferência de dados. Um pacote PSP começa com um cabeçalho IP, seguido por um cabeçalho UDP e, em seguida, seu próprio cabeçalho PSP com informações de criptografia e autenticação. Em seguida, o conteúdo do pacote TCP/UDP original é anexado, terminando com um bloco PSP final com uma soma de verificação para confirmar a integridade. O cabeçalho PSP, assim como o cabeçalho e os dados do pacote encapsulado, são sempre autenticados para confirmar a identidade do pacote. Os dados do pacote encapsulado podem ser criptografados, embora seja possível aplicar criptografia seletivamente, deixando parte do cabeçalho TCP em branco (mantendo o controle de autenticidade), por exemplo, para fornecer a capacidade de inspecionar pacotes em equipamentos de rede de trânsito.

O Google descobriu desenvolvimentos relacionados ao protocolo de rede seguro PSP

O PSP não está vinculado a nenhum protocolo específico de troca de chaves, oferece diversas opções de formato de pacote e suporta o uso de diferentes algoritmos criptográficos. Por exemplo, é fornecido suporte para o algoritmo AES-GCM para criptografia e autenticação (autenticação) e AES-GMAC para autenticação sem criptografia dos dados reais, por exemplo, quando os dados não são valiosos, mas você precisa garantir que não tenham foi adulterado durante a transmissão e que é o correto que foi enviado originalmente.

Ao contrário dos protocolos VPN típicos, o PSP usa criptografia no nível das conexões de rede individuais, e não em todo o canal de comunicação, ou seja, O PSP usa chaves de criptografia separadas para diferentes conexões UDP e TCP em túnel. Esta abordagem permite obter um isolamento mais rigoroso do tráfego de diferentes aplicações e processadores, o que é importante quando aplicações e serviços de diferentes utilizadores estão a ser executados no mesmo servidor.

O Google usa o protocolo PSP para proteger suas próprias comunicações internas e para proteger o tráfego dos clientes do Google Cloud. O protocolo foi inicialmente projetado para funcionar de forma eficaz em infraestruturas de nível Google e deve fornecer aceleração de criptografia de hardware na presença de milhões de conexões de rede ativas e o estabelecimento de centenas de milhares de novas conexões por segundo.

Dois modos de operação são suportados: “stateful” e “stateless”. No modo “stateless”, as chaves de criptografia são transmitidas para a placa de rede no descritor de pacotes, e para descriptografia são extraídas do campo SPI (Security Parameter Index) presente no pacote utilizando uma chave mestra (AES de 256 bits, armazenada em memória da placa de rede e substituída a cada 24 horas), o que permite economizar memória da placa de rede e minimizar informações sobre o estado das conexões criptografadas armazenadas no lado do equipamento. No modo “stateful”, as chaves de cada conexão são armazenadas na placa de rede em uma tabela especial, semelhante à forma como a aceleração de hardware é implementada no IPsec.

O Google descobriu desenvolvimentos relacionados ao protocolo de rede seguro PSP

O PSP fornece uma combinação única de recursos de protocolo TLS e IPsec/VPN. O TLS era adequado ao Google em termos de segurança por conexão, mas não era adequado devido à falta de flexibilidade para aceleração de hardware e à falta de suporte UDP. O IPsec fornecia independência de protocolo e suportava bem a aceleração de hardware, mas não suportava vinculação de chave para conexões individuais, foi projetado apenas para um pequeno número de túneis criados e teve problemas para dimensionar a aceleração de hardware devido ao armazenamento do estado completo de criptografia em tabelas localizadas na memória da placa de rede (por exemplo, são necessários 10 GB de memória para lidar com 5 milhões de conexões).

No caso do PSP, as informações sobre o estado da criptografia (chaves, vetores de inicialização, números de sequência, etc.) podem ser transmitidas no descritor de pacotes TX ou na forma de um ponteiro para a memória do sistema host, sem ocupar a memória da placa de rede. Segundo o Google, aproximadamente 0.7% do poder computacional e uma grande quantidade de memória eram anteriormente gastos na criptografia do tráfego RPC na infraestrutura da empresa. A introdução do PSP através da utilização de aceleração de hardware permitiu reduzir este valor para 0.2%.

Fonte: opennet.ru

Adicionar um comentário