O Google abriu seus desenvolvimentos relacionados ao protocolo de rede seguro PSP

A empresa Google anunciou a abertura das especificações e da implementação de referência do protocolo PSP (PSP Security Protocol), utilizado para criptografar o tráfego entre data centers. O protocolo utiliza uma arquitetura de encapsulamento semelhante ao IPsec ESP (Encapsulating Security Payloads) sobre IP, garantindo criptografia, controle criptográfico de integridade 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 cálculos e diminuir a carga na CPU, deslocando as operações de criptografia e descriptografia para as placas de rede (offload). Para utilizar a aceleração de hardware, são necessárias placas de rede especiais compatíveis com o PSP. Para sistemas com placas de rede que não suportam o PSP, foi proposta uma implementação software chamada SoftPSP.

O protocolo UDP é utilizado como transporte para a transferência de dados. O pacote PSP começa com um cabeçalho IP, seguido por um cabeçalho UDP e, em seguida, o cabeçalho PSP, contendo informações sobre criptografia e autenticação. A seguir, é anexado o conteúdo do pacote original TCP/UDP, que termina com um bloco final do PSP, que contém um valor 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 autenticidade do pacote. Os dados do pacote encapsulado podem ser criptografados, permitindo a aplicação seletiva da criptografia, deixando parte do cabeçalho TCP em texto claro (mantendo o controle de autenticidade), por exemplo, para permitir a inspeção de pacotes em equipamentos de rede em trânsito.

O Google abriu seus desenvolvimentos relacionados ao protocolo de rede seguro PSP

O PSP não se vincula a um protocolo de troca de chaves específico, oferece várias opções de formato de pacotes e suporta o uso de diferentes algoritmos criptográficos. Por exemplo, oferece suporte ao algoritmo AES-GCM para criptografia e verificação de autenticidade, e AES-GMAC para verificação de autenticidade sem criptografar os dados diretos, como quando os dados não têm valor, mas é necessário garantir que não foram alterados durante a transmissão e que são exatamente aqueles enviados originalmente.

Ao contrário dos típicos VPN- nos protocolos PSP aplica-se a criptografia a nível de conexões de rede individuais, e não de todo o canal de comunicação, ou seja, o PSP utiliza chaves de criptografia distintas para diferentes conexões UDP e TCP tuneladas. Essa abordagem permite uma maior segregação do tráfego entre diferentes aplicativos e processadores, o que é relevante ao executar em uma só servidor aplicativos e serviços de diferentes usuários.

No Google, o protocolo PSP é utilizado tanto para proteger as comunicações internas quanto para proteger o tráfego dos clientes do Google Cloud. O protocolo foi originalmente projetado para operar de maneira eficiente em infraestruturas de nível Google e deve garantir aceleração de hardware para criptografia em um cenário com milhões de conexões de rede ativas e centenas de milhares de novas conexões por segundo.

São suportados dois modos de operação — 'stateful' e 'stateless'. No modo 'stateless', as chaves de criptografia são transmitidas para o adaptador de rede no cabeçalho do pacote, e para a descriptografia, são extraídas do campo SPI (Security Parameter Index) presente no pacote com a ajuda de uma chave mestra (AES de 256 bits, armazenada na memória do adaptador de rede e substituída a cada 24 horas), o que permite economizar memória do adaptador de rede e minimizar a informação de estado das conexões criptografadas armazenadas no equipamento. No modo 'stateful', as chaves para cada conexão são armazenadas no adaptador de rede em uma tabela especial, similar ao que é implementado para a aceleração de hardware no IPsec.

O Google abriu seus desenvolvimentos relacionados ao protocolo de rede seguro PSP

O PSP oferece uma combinação única das capacidades dos protocolos TLS e IPsec/VPN. O TLS era atraente para o Google do ponto de vista da proteção a nível de conexões individuais, mas não atendia devido à falta de flexibilidade para aceleração de hardware e à ausência de suporte a UDP. O IPsec proporcionava independência de protocolos e suportava bem a aceleração de hardware, mas não permitia a vinculação de chaves a conexões individuais, era projetado apenas para um número limitado de túneis estabelecidos e tinha problemas de escalabilidade de aceleração de hardware devido ao armazenamento do estado completo da criptografia em tabelas localizadas na memória do adaptador de rede (por exemplo, para processar 10 milhões de conexões, são necessários 5 GB de memória).

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 descriptor TX do pacote ou na forma de um ponteiro para a memória do sistema host, sem ocupar a memória da placa de rede. Segundo dados do Google, anteriormente a criptografia do tráfego RPC na infraestrutura da empresa consumia cerca de 0,7% da capacidade computacional e grande volume de memória. A implementação do PSP, através da utilização de recursos de aceleração de hardware, conseguiu reduzir esse indicador para 0,2%.

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster