Todos os que colam um perfil VPN num tópico de fórum partem da mesma convicção. O ficheiro contém apenas um endereço de servidor e algumas opções, por isso partilhá-lo parece partilhar um número de telefone. Depois alguém lê-o e encontra uma chave privada não cifrada na quarta linha.

O perfil não é documentação sobre o túnel. É a identidade do túnel, escrita.

Os objetos no ficheiro não têm o mesmo nível de segredo

Um certificado CA público destina-se a viajar. Uma chave privada de cliente não. Quando ambos aparecem no mesmo ficheiro, o inofensivo faz todo o anexo parecer seguro. Essa é a armadilha.

OpenVPN piora isto por conceção. Permite incorporar certificados, chaves e material de autenticação diretamente. Isso é conveniente para a implementação e desastroso para a partilha. O ficheiro que começa com um bloco de certificado legível continua para a metade privada.

WireGuard é mais direto. A secção de interface transporta uma chave privada, e cada peer pode ainda transportar uma chave pré-partilhada. Não há ambiguidade sobre quais linhas importam. Quase todas importam.

Uma captura de ecrã é a mesma fuga noutro formato

Codificar uma configuração como código QR não a torna uma pré-visualização. O código transporta os mesmos bytes, e qualquer câmara de telefone na sala pode descodificá-lo. O mesmo se aplica a uma captura da janela de configuração de um cliente, onde a chave é legível no canto.

Os ficheiros de autenticação e os caminhos de chave referenciados pertencem à mesma auditoria. Um perfil que aponta para um ficheiro externo não é automaticamente mais seguro, porque o caminho pode resolver num local a que um leitor chegue. Um token num ficheiro de autenticação é tão utilizável como uma palavra-passe, e raramente o parece.

Envie o texto do erro, não a chave

O diagnóstico precisa do texto do erro, da versão do cliente e dos nomes das opções testadas. Não precisa da chave. Escreva a pergunta com essas três coisas, e substitua cada segredo e cada identificador de rede desnecessário antes de o ficheiro sair da sua máquina.

A secção do manual do OpenVPN sobre ficheiros incorporados é um mapa útil de onde estão esses objetos. Também lembra quantos um único perfil pode conter.

# which lines in this profile look like secrets?
grep -n -E 'PrivateKey|PresharedKey|password|auth-user-pass|BEGIN .*PRIVATE KEY' wg0.conf

# OpenVPN: show the structure without printing key material
awk '/BEGIN/{print NR": "$0} /^[a-z-]+ /{print NR": "$1}' office.ovpn

Depois leia o anexo final em vez de confiar na memória da edição. As chaves escondem-se em blocos posteriores, num comentário não redigido e numa linha que decidiu ser estrutural.

Após exposição, a rotação é a única reparação

Apagar a publicação não revoga nada. Quem recebeu o ficheiro continua a ter uma credencial válida, por isso o emissor tem de revogá-la ou substituí-la através do processo próprio do serviço. Remover uma cópia local não muda nada no extremo remoto.

Guarde os perfis ativos com um método protegido, e remova propositadamente as entradas importadas obsoletas em vez de deixar três cópias numa pasta de transferências. Um perfil que já não usa continua a ser uma credencial até ser revogado.

O hábito que vale a pena construir é pequeno. Antes de qualquer perfil sair da máquina, pergunte o que mais contém além do endereço, e responda lendo o ficheiro em vez de o recordar.

Artigos relacionados