Què és un nonce en una VPN i per què la reutilització trenca el túnel
Un nonce és un valor per missatge que mai no s’ha de repetir sota una clau, i normalment viatja en clar. Editar-lo a mà és l’error que cal evitar.
La majoria de la gent troba la paraula nonce en un perfil de VPN i assumeix que és un altre secret compartit per copiar entre iguals. No ho és. Un nonce és un valor que mai no s’ha de repetir sota la mateixa clau, i en la majoria del xifratge basat en nonce viatja en clar. La confusió és inofensiva fins que algú l’edita a mà, i aquí comença l’avaria real.
D’on surt realment el nonce
El xifratge autenticat necessita un nonce diferent per a cada missatge xifrat sota una clau. Els protocols compleixen aquest requisit de maneres diferents: un comptador que creix monotònicament, una sal combinada amb un identificador de paquet o un valor aleatori prou llarg. IKEv2 intercanvia nonces durant l’intercanvi inicial, i són entrades públiques per a la derivació de claus, no secrets.
La unicitat pot ser estructural o probabilística. Un comptador no es pot repetir fins que dona la volta, i per això el protocol defineix un punt de renovació de clau molt abans. Un valor aleatori depèn de prou bits perquè una col·lisió sigui inversemblant dins del límit de missatges, que és un argument diferent amb un mode de fallada diferent. La documentació del protocol indica quin mètode s’aplica, i tots dos només són segurs mentre es respecti el límit declarat.
| Design | Where uniqueness comes from | Exhaustion is handled by |
|---|---|---|
| AES-GCM records | An IV, typically a counter | Rekey before the counter wraps |
| ChaCha20-Poly1305 | A 96-bit nonce from a counter or generator | A message limit per key |
| WireGuard | A per-key 64-bit counter | Rekey at a message cap |
| OpenVPN AEAD | Packet identifier plus implicit key material | Rekey on the packet-id limit |
| IKEv2 | Fresh nonces per exchange | A new security association |
Què costa realment la reutilització
Reutilitzar un nonce sota una clau no és una qüestió menor d’eficiència. Amb GCM, dos missatges que comparteixen un IV permeten a un observador recuperar la clau d’autenticació i calcular l’OR exclusiu dels dos textos en clar. Les construccions basades en flux reutilitzen el flux de clau de la mateixa manera, cosa que converteix el text xifrat en un trencaclosques en lloc d’un secret.
És per això que les implementacions renoven la clau abans que un comptador doni la volta, i per això s’aturen en lloc de continuar quan el seu estat és incert. Un reinici que reinicia un comptador mentre l’igual encara té la clau antiga, o una màquina virtual restaurada d’una instantània feta a mig camí de la sessió, és exactament la situació que els límits existeixen per evitar. No cal cap atacant; les operacions ordinàries són suficients.
Per què l’edició manual és la solució equivocada
Els comptadors, les sals i els identificadors de paquet són màquines d’estat compartides pels dos extrems. Canviar un costat desincronitza l’altre, i el túnel falla de maneres que semblen un problema d’encaminament. La palanca suportada és un intercanvi de claus nou, que reinicia l’estat als dos extrems alhora.
Les contrasenyes i els nonces també tenen rols diferents. Una contrasenya és una entrada secreta per a la derivació de claus; un nonce és una entrada pública per missatge. Un camp de perfil etiquetat nonce que demana un secret llarg sol ser una clau estàtica o un secret precompartit sota un altre nom, així que llegiu la documentació d’aquell camp en lloc de suposar.
Quan un avís tracta del maneig de nonces, la reparació és la versió corregida del mantenidor, no un altre xifratge ni una clau més curta. Canviar el xifratge per evitar la paraula nonce mou el problema en lloc de resoldre’l.
Llegir un avís sense endevinar
Una línia de registre sobre comptadors o nonces normalment descriu estat perdut, no un atac. Comproveu si un igual s’ha reiniciat, si una màquina virtual clonada ha reutilitzat la mateixa identitat i si els dos extrems coincideixen en la configuració de renovació de clau. Després establiu una sessió nova i observeu si el missatge torna.
Manteniu el diagnòstic separat de les fallades no relacionades. Una pàgina que no carrega, o una sol·licitud de credencials que es repeteix, no és evidència de reutilització de nonce, i tractar-la com a tal us envia a la capa criptogràfica quan el problema és per sobre.
Per a l’ús ordinari, la regla segura és curta: deixeu que la implementació gestioni el nonce, manteniu els dos extrems en versions suportades i tracteu qualsevol reinici d’estat com una raó per renovar la clau en lloc d’editar un valor. Si un camp de perfil no apareix a la documentació del proveïdor, no inventeu cap valor. Arreglar el túnel comença per saber a quina capa mireu.