A maioría da xente atopa a palabra nonce nun perfil de VPN e supón que é outro segredo compartido que copiar entre pares. Non o é. Un nonce é un valor que nunca debe repetirse baixo a mesma clave, e na maioría do cifrado baseado en nonce viaxa en claro. A confusión resulta inofensiva ata que alguén o edita a man, e aí comeza a avaría real.

De onde vén realmente o nonce

O cifrado autenticado necesita un nonce distinto para cada mensaxe cifrada baixo unha clave. Os protocolos cumpren ese requisito de formas distintas: un contador que medra de forma monótona, un sal combinado cun identificador de paquete ou un valor aleatorio suficientemente longo. IKEv2 intercambia nonces durante o intercambio inicial, e son entradas públicas para a derivación de claves, non segredos.

A unicidade pode ser estrutural ou probabilística. Un contador non pode repetirse ata que dá a volta, e por iso o protocolo define un punto de renovación de clave moito antes. Un valor aleatorio depende de suficientes bits como para que unha colisión sexa inverosímil dentro do límite de mensaxes, que é un argumento distinto cun modo de fallo distinto. A documentación do protocolo indica que método se aplica, e ambos son seguros só mentres se respecte o límite declarado.

DesignWhere uniqueness comes fromExhaustion is handled by
AES-GCM recordsAn IV, typically a counterRekey before the counter wraps
ChaCha20-Poly1305A 96-bit nonce from a counter or generatorA message limit per key
WireGuardA per-key 64-bit counterRekey at a message cap
OpenVPN AEADPacket identifier plus implicit key materialRekey on the packet-id limit
IKEv2Fresh nonces per exchangeA new security association

O que custa realmente a reutilización

Reutilizar un nonce baixo unha clave non é unha cuestión menor de eficiencia. Con GCM, dúas mensaxes que comparten un IV permiten a un observador recuperar a clave de autenticación e calcular o OR exclusivo dos dous textos en claro. As construcións baseadas en fluxo reutilizan o fluxo de clave do mesmo xeito, o que converte o texto cifrado nun crebacabezas en lugar dun segredo.

Por iso as implementacións renovan a clave antes de que un contador dea a volta, e por iso se deteñen en lugar de continuar cando o seu estado é incerto. Un reinicio que restablece un contador mentres o par aínda conserva a clave antiga, ou unha máquina virtual restaurada desde unha instantánea tomada a metade de sesión, é exactamente a situación que os límites existen para evitar. Non fai falta ningún atacante; as operacións ordinarias abondan.

Por que a edición manual é a solución equivocada

Os contadores, os sales e os identificadores de paquete son máquinas de estado compartidas por ambos os extremos. Cambiar un lado desincroniza o outro, e o túnel falla de xeitos que parecen un problema de encamiñamento. A panca admitida é un intercambio de claves novo, que restablece o estado nos dous extremos á vez.

Os contrasinais e os nonces tamén desempeñan papeis distintos. Un contrasinal é unha entrada secreta para a derivación de claves; un nonce é unha entrada pública por mensaxe. Un campo de perfil etiquetado como nonce que pide un segredo longo adoita ser unha clave estática ou un segredo precompartido con outro nome, así que lea a documentación dese campo en lugar de supor.

Cando un aviso trata do manexo de nonces, a reparación é a versión corrixida do mantedor, non outro cifrado nin unha clave máis curta. Cambiar o cifrado para evitar a palabra nonce despraza o problema en lugar de resolvelo.

Ler un aviso sen adiviñar

Unha liña de rexistro sobre contadores ou nonces adoita describir estado perdido, non un ataque. Comprobe se un par se reiniciou, se unha máquina virtual clonada reutilizou a mesma identidade e se ambos os extremos coinciden na configuración de renovación de clave. Despois estableza unha sesión nova e observe se a mensaxe volve.

Manteña o diagnóstico separado das fallas non relacionadas. Unha páxina que non carga, ou unha solicitude de credenciais que se repite en bucle, non é evidencia de reutilización de nonce, e tratala como tal lévao á capa criptográfica cando o problema está por riba.

Para o uso ordinario, a regra segura é breve: deixe que a implementación xestione o nonce, manteña ambos os extremos en versións admitidas e trate calquera reinicio de estado como un motivo para renovar a clave en lugar de editar un valor. Se un campo de perfil non aparece na documentación do provedor, non invente un valor para el. Arranxar o túnel comeza por saber que capa está mirando.

Artigos relacionados