Die meeste mense kom die woord nonce in ’n VPN-profiel teë en aanvaar dit is nog ’n gedeelde geheim om tussen eweknieë te kopieer. Dit is nie. ’n Nonce is ’n waarde wat nooit onder dieselfde sleutel mag herhaal nie, en in die meeste nonce-gebaseerde enkripsie reis dit in die oopte. Die verwarring bly onskadelik totdat iemand dit met die hand wysig, en dit is waar werklike skade begin.

Waar die nonce werklik vandaan kom

Geverifieerde enkripsie benodig ’n ander nonce vir elke boodskap wat onder ’n sleutel versleutel word. Protokolle voldoen aan dié vereiste op verskillende maniere: ’n monotoon stygende teller, ’n sout wat met ’n pakketidentifiseerder gekombineer word, of ’n voldoende lang ewekansige waarde. IKEv2 ruil nonces tydens die aanvanklike uitruiling, en hulle is openbare insette vir sleutelafleiding eerder as geheime.

Uniekheid kan struktureel of probabilisties wees. ’n Teller kan nie herhaal voordat dit omrol nie, daarom definieer die protokol lank voor dit ’n herkoderingspunt. ’n Ewekansige waarde berus op genoeg bisse dat ’n botsing onwaarskynlik is binne die boodskapgrens, wat ’n ander argument met ’n ander foutmodus is. Die protokoldokumentasie noem watter metode geld, en beide is net veilig solank die gestelde grens gerespekteer word.

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

Wat hergebruik werklik kos

Om ’n nonce onder een sleutel te hergebruik is nie ’n geringe doeltreffendheidskwessie nie. Met GCM laat twee boodskappe wat ’n IV deel ’n waarnemer die verifikasiesleutel herwin en die eksklusiewe-of van die twee duidelike tekste bereken. Stroomgebaseerde konstruksies hergebruik sleutelstroom op dieselfde manier, wat die syferteks in ’n legkaart eerder as ’n geheim verander.

Dit is waarom implementasies herkodeer voordat ’n teller omrol, en waarom hulle stop eerder as om voort te gaan wanneer hulle toestand onseker is. ’n Herbooting wat ’n teller herstel terwyl die eweknie nog die ou sleutel hou, of ’n virtuele masjien wat uit ’n momentopname van middel ’n sessie herstel is, is presies die situasie wat die grense bestaan om te voorkom. Geen aanvaller word vereis nie; gewone bedrywighede is genoeg.

Waarom handmatige wysiging die verkeerde oplossing is

Tellers, soute en pakketidentifiseerders is toestandmasjiene wat deur beide kante gedeel word. Om een kant te verander, desinkroniseer die ander, en die tonnel faal op maniere wat soos ’n roeteringsprobleem lyk. Die ondersteunde hefboom is ’n vars sleuteluitruiling, wat die toestand aan beide kante gelyktydig herstel.

Wagwoorde en nonces speel ook verskillende rolle. ’n Wagwoord is geheime insette vir sleutelafleiding; ’n nonce is openbare insette per boodskap. ’n Profielveld met die etiket nonce wat na ’n lang geheim vra, is gewoonlik ’n statiese sleutel of ’n vooraf gedeelde geheim onder ’n ander naam, so lees die dokumentasie vir daardie veld eerder as om te aanvaar.

Wanneer ’n waarskuwing nonce-hantering betref, is die herstel die instandhouer se reggemaakte weergawe, nie ’n ander syfer of ’n korter sleutel nie. Om die syfer te verander om die woord nonce te vermy, skuif die probleem eerder as om dit op te los.

Lees ’n waarskuwing sonder om te raai

’n Logreël oor tellers of nonces beskryf gewoonlik verlore toestand eerder as ’n aanval. Kyk of een eweknie herbegin het, of ’n gekloonde virtuele masjien dieselfde identiteit hergebruik het, en of die twee kante oor herkoderingsinstellings saamstem. Stel dan ’n nuwe sessie op en kyk of die boodskap terugkeer.

Hou die diagnose apart van onverwante foute. ’n Bladsy wat nie laai nie, of ’n geloofsbriefvraag wat loops, is nie bewyse van nonce-hergebruik nie, en om dit so te behandel, stuur jou na die kriptografiese laag wanneer die probleem daarbo is.

Vir gewone gebruik is die veilige reël kort: laat die implementasie die nonce bestuur, hou beide kante op ondersteunde weergawes, en behandel enige toestandherstel as ’n rede om te herkodeer eerder as om ’n waarde te wysig. As ’n profielveld nie in die verskaffer se dokumentasie is nie, moenie ’n waarde daarvoor uitdink nie. Om die tonnel reg te maak, begin deur te weet na watter laag jy kyk.

Verwante artikels