A fixação de TLS e o acesso por VPN respondem a perguntas diferentes
Uma fixação limita a que servidor a aplicação confia; a política de VPN decide quem chega à rede. Nenhuma das duas cobre autorização nem um dispositivo perdido.
Coloque uma aplicação móvel privada atrás de uma VPN e uma pessoa razoável perguntará se ela ainda precisa de fixação de certificados. A pergunta soa como uma escolha entre dois controlos equivalentes, e na verdade é uma pergunta sobre duas portas diferentes. A VPN decide se este dispositivo pode sequer usar o caminho; a aplicação decide se o servidor alcançado é o esperado. Responda às duas em separado e o desenho torna-se mais simples.
Duas portas, duas perguntas
A admissão à rede diz respeito ao cliente: este dispositivo está inscrito, a sua credencial é válida e a política permite-lhe este caminho? A confiança da aplicação diz respeito ao servidor: a ligação chegou a um serviço com uma identidade que a aplicação aceita? Essas respostas vêm de sistemas diferentes, falham por motivos diferentes e são corrigidas por equipas diferentes. Um aperto de mão VPN pode ter sucesso enquanto a aplicação fala com um certificado expirado atrás do par. Uma aplicação perfeitamente fixada pode continuar inalcançável para todos, porque o dispositivo nunca chegou à rede.
As duas somam-se. Retirar uma elimina um controlo; acrescentar a outra não a substitui.
O que uma fixação limita de facto
Uma fixação estreita o conjunto de identidades de servidor que a aplicação aceitará, normalmente nomeando uma chave pública ou um resumo de certificado em vez de confiar em cada cadeia que um armazém avalizaria. É uma restrição sobreposta à validação comum, não um substituto dela. A validação comum responde se uma cadeia é fiável; a fixação responde se é a cadeia que esta aplicação espera. Uma implementação que salta o primeiro passo não ganhou segurança, apenas novidade.
O objeto fixado varia entre plataformas, por isso a palavra sozinha diz muito pouco. Copiar um resumo do armazém de confiança de um produto e tratá-lo como a mesma coisa numa aplicação móvel é um erro comum e silencioso.
A fixação na plataforma é uma configuração, não uma política
O Android expõe a fixação através da sua configuração de segurança de rede, onde um conjunto de fixações guarda resumos de uma chave pública e a cadeia tem de conter pelo menos um deles. Esse ficheiro é por aplicação e exige uma alteração de compilação deliberada. O iOS não tem um mecanismo de manifesto equivalente, por isso a fixação vive no próprio código de avaliação de confiança da aplicação.
Como o mecanismo difere, o requisito tem de ser escrito por plataforma. Uma política que diga fixe o certificado sem nomear a plataforma não é exequível.
A rotação decide se a fixação sobrevive
A parte difícil não é a primeira versão, é a renovação do certificado depois dela. Uma política de confiança restritiva rejeita uma chave nova legítima com a mesma firmeza que a de um atacante.
Dois mecanismos tornam a rotação suportável: uma fixação de reserva já confiada antes de ser necessária, e uma data de expiração no conjunto de fixações para que a aplicação da política caduque em vez de inutilizar a aplicação. Ambos são decisões de política, e a expiração em particular é uma redução deliberada de segurança, não um temporizador inofensivo. Nomeiem quem controla a compilação da aplicação, o ponto final TLS e a renovação do certificado, e reúnam-nos num único processo de mudança. Se forem três equipas diferentes, a fixação acabará por provocar uma falha que ninguém tinha planeado.
Um dispositivo perdido é um terceiro problema
Revogar uma credencial de VPN não termina necessariamente uma sessão de aplicação, e uma fixação de servidor não faz absolutamente nada por um telefone na mão de outra pessoa. O bloqueio do dispositivo, o armazenamento de credenciais, a duração da sessão e a revogação remota são decisões separadas com proprietários separados. Dobrá-las na discussão sobre a fixação garante que nenhuma delas é desenhada.
Testem quatro relações em vez daquela que veem: o servidor e a operação previstos, uma conta que devia ser recusada, uma identidade de servidor que devia ser rejeitada e a rotação planeada. Uma VPN a funcionar exercita apenas a primeira. Anotem o que cada teste provou, porque a pessoa seguinte assumirá que um túnel verde significa que as quatro passaram.