As listas antigas de resumos leem-se como uma transcrição de decisões criptográficas, e não o são. Nomes como SHA1, DSA-SHA1-old ou RSA-SHA1-2 aparecem lado a lado em compilações antigas do OpenSSL porque a biblioteca registou vários pontos de entrada em torno de maquinaria de hash relacionada. Um rótulo RSA ou DSA nessa lista OpenVPN não diz nada sobre o que o OpenVPN fez a um pacote. O que está a ler é o inventário da biblioteca, não o registo de uma sessão.

É preciso separar três coisas antes de qualquer conclusão fazer sentido: o nome registado, o cálculo do resumo por baixo e a operação que o consome.

Um registo é uma interface, não uma avaliação de força

No OpenSSL 1.0.2 a tabela de registo de resumos liga nomes, alias e implementações num único ficheiro. O antigo descritor DSS1 é o caso mais claro: indica o comprimento de saída do SHA-1 e chama a rotina de finalização do SHA-1 enquanto carrega um nome que sugere um algoritmo completamente diferente. Letras adicionais num registo não implicam, portanto, um hash diferente, uma saída mais longa nem um novo nível de segurança.

A mesma fonte preserva as relações de alias para chamadores mais antigos, o que explica porque é que uma lista parece sobrecarregada. É documentação de compatibilidade, não a promessa de que um fornecedor atual de OpenSSL exponha nomes idênticos.

Os nomes de assinatura não criam assinaturas

Uma framework de assinatura pode ligar um resumo à interface de outro algoritmo para que os chamadores existentes continuem a compilar. Uma assinatura real de chave pública precisa tanto de uma chave como do passo de assinatura que a usa, e nenhum dos dois é fornecido por um nome num menu. Uma entrada de resumo com sabor a RSA é um nome que um chamador pode usar, não a prova de que cada pacote VPN transportava uma assinatura RSA.

É neste passo que os textos mais antigos resvalam para o folclore. Se precisa de saber como os pacotes foram autenticados, localize a opção que escolheu o mecanismo e leia o que ela faz na versão que realmente executa. A página de manual fornecida com essa versão é a única descrição que corresponde ao programa à sua frente. Os guias arquivados descrevem a versão para a qual foram escritos, que pode estar várias convenções de nomenclatura atrasada.

Encontre a opção que consumiu o nome

No caso de autenticação de pacotes documentado pelo OpenVPN 2.6, o auth seleciona um resumo usado pelo HMAC, uma construção de autenticação de mensagens com chave em vez de uma assinatura de certificado. O algoritmo de assinatura do certificado TLS é uma propriedade separada do handshake.

Com uma cifra de dados AEAD, a definição separada auth deixa de se aplicar ao canal de dados, enquanto o seu papel para tls-auth continua a ser uma questão distinta. Uma lista de resumos não pode, por isso, dizer-lhe que hash protegia os pacotes atuais, que suite TLS foi negociada ou como foi assinado o certificado do par. Só a configuração efetiva mais a versão podem responder a isso, e apenas para a ligação à sua frente.

Anote o que realmente tem

Anote a versão do OpenVPN, a biblioteca criptográfica ligada, as opções exatas do perfil e o resultado de uma ligação real. Esse conjunto responde a perguntas que uma captura de ecrã de um menu de resumos não consegue, e sobrevive à próxima atualização porque nomeia versões e não impressões.

Acima de tudo, não escolha um alias antigo por o nome soar mais forte ou mais específico. Escolha a política suportada para toda a ligação e trate os nomes antigos como um registo de como uma biblioteca se apresentava no passado.

Artigos relacionados