Chave pré-partilhada IPsec: os bytes por trás da cadeia que escreveu
Dois extremos podem ter cadeias que parecem idênticas e derivar chaves diferentes. Verifique o tipo de campo, qualquer codificação e os bytes finais antes de enfraquecer seja o que for.
Dois administradores comparam o segredo no ecrã, concordam que coincide, e o túnel continua a falhar a autenticação. A cadeia que compararam não é o valor que qualquer dos extremos introduz na derivação de chaves. Entre os caracteres que vê e os bytes que o protocolo aplica ao hash há um tipo de campo, uma codificação de texto, um editor e uma área de transferência, e qualquer dos quatro pode alterar a entrada sem alterar o aspeto. Compare os bytes e a divergência costuma aparecer em segundos.
O que o gateway faz com a cadeia
Uma chave pré-partilhada não é enviada pela rede e comparada. Cada extremo introduz a sua cópia local na derivação de chaves para a troca IKE, e as cargas úteis de autenticação resultantes são verificadas ou não. Esse desenho implica que as duas cópias têm de ser idênticas byte a byte em vez de visualmente semelhantes, e também implica que a falha é comunicada na fase de autenticação em vez de como uma mensagem de palavra-passe errada.
Portanto, a pergunta útil nunca é «estas parecem iguais», mas «que sequência exata de bytes aplica ao hash cada implementação».
De onde vêm os bytes adicionais
Uma nova linha final é o culpado clássico, e esconde-se à vista porque a maioria dos editores acrescenta uma de forma invisível ao guardar um ficheiro. Um espaço inicial ou final colado de uma janela de conversa faz o mesmo, e também o faz uma aspa tipográfica substituída por uma reta por um processador de texto. Nada disso altera a comparação visual que uma pessoa faz.
Compare com uma ferramenta que mostre bytes em vez de glifos. printf '%s' "$PSK" | xxd | tail -2 imprime a cauda do valor em hexadecimal, onde um 0a ou um 20 perdido é evidente. Faça-o nos dois extremos e compare as duas descargas lado a lado. Faça-o com material de teste gerado, não com um segredo de produção que depois deixa no histórico da shell.
Codificado não é cifrado
As exportações de configuração transportam frequentemente o segredo numa codificação base, por vezes com quebras de linha a cada sessenta ou setenta e seis caracteres e por vezes com preenchimento. Se um extremo espera os bytes descodificados e você cola o texto codificado, não enviou uma palavra-passe diferente, enviou uma muito mais longa feita de caracteres imprimíveis. O Base64 não oferece qualquer confidencialidade, e é também por isso que um segredo codificado nunca deve ser colado num fórum para pedir uma segunda opinião.
O dicionário IPSec da Apple é um bom exemplo de que o tipo importa: documenta SharedSecret como dado para o método de autenticação com segredo partilhado nas cargas úteis L2TP e Cisco IPsec. É uma propriedade concreta numa carga útil concreta, não um campo de texto geral que possa reutilizar para outro protocolo que, por acaso, peça um segredo.
Um limite alegado pertence a uma combinação
Os relatos antigos de um teto de trinta e dois caracteres num cliente Apple são relatos reais sobre uma versão de cliente, um protocolo e uma forma de perfil. Não são um limite universal para cada plataforma Apple, cada fornecedor e cada protocolo. Verifique a versão, o tipo de carga útil e o requisito do gateway em conjunto, e depois teste numa configuração aprovada em vez de inferir de um fio. Escreva a combinação testada no registo de alterações, porque, de contrário, a pessoa seguinte citará o mesmo fio com mais confiança do que ele merece.
Se um limite se aplica realmente, a resposta é um desenho de credenciais suportado que caiba nele, não uma versão encurtada de um segredo forte. Truncar uma chave de produção para satisfazer um limite suposto reduz a sua força de forma permanente e produz um sistema cuja documentação já não corresponde à sua segurança.
Corrija a representação, não a força
Quando a autenticação falha depois de confirmada a representação, leia a política efetiva na fase de autenticação: que método está a ser negociado, que identidade de par se espera e se o gateway corresponde à ligação que pensa. As suposições cada vez mais fracas não são diagnóstico, são uma degradação lenta com um ticket de suporte anexado.
Se a credencial exigida não conseguir cumprir a norma da organização, mude o desenho para um que consiga. Um segredo partilhado com entropia suficiente, gerado uma vez, guardado num campo gerido e nunca publicado, é uma resposta perfeitamente boa; uma versão mais curta não é.