Mis on VPN-i nonce ja miks selle korduskasutus tunnelit rikub
Nonce on iga sõnumi jaoks väärtus, mis ei tohi kunagi ühe võtme all korduda, ja see liigub tavaliselt avalikult. Selle käsitsi muutmine on viga, mida tuleb vältida.
Enamik inimesi kohtab sõna nonce VPN-profiilis ja eeldab, et see on veel üks jagatud saladus, mida partnerite vahel kopeerida. See pole nii. Nonce on väärtus, mis ei tohi kunagi sama võtme all korduda, ja enamikus nonce-põhises krüpteerimises liigub see avalikult. Segadus jääb kahjutuks seni, kuni keegi muudab seda käsitsi, ja just sealt algab tegelik rike.
Kust nonce tegelikult tuleb
Autenditud krüpteerimine vajab iga võtme all krüpteeritud sõnumi jaoks erinevat nonce'i. Protokollid täidavad selle nõude erineval viisil: monotoonselt kasvav loendur, paketi identifikaatoriga kombineeritud sool või piisavalt pikk juhuslik väärtus. IKEv2 vahetab nonce'e algse vahetuse käigus ja need on võtme tuletamise avalikud sisendid, mitte saladused.
Unikaalsus võib olla struktuurne või tõenäosuslik. Loendur ei saa korduda enne, kui see ümber keerab, mistõttu määratleb protokoll võtme uuendamise punkti kaua enne seda. Juhuslik väärtus tugineb piisavale arvule bittidele, et kokkupõrge oleks sõnumilimiidi piires ebatõenäoline, mis on teistsugune argument teistsuguse tõrkerežiimiga. Protokolli dokumentatsioon nimetab, milline meetod kehtib, ja mõlemad on turvalised ainult seni, kuni märgitud limiiti austatakse.
| 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 |
Mida korduskasutus tegelikult maksab
Nonce'i korduskasutamine ühe võtme all ei ole väike tõhususe küsimus. GCM-i korral võimaldavad kaks IV-d jagavat sõnumit vaatlejal taastada autentimisvõtme ja arvutada kahe avateksti eksklusiivse või. Voolupõhised konstruktsioonid kasutavad võtmevoogu samamoodi uuesti, mis muudab šifreeritud teksti saladuse asemel mõistatuseks.
Seetõttu uuendavad rakendused võtit enne, kui loendur ümber keerab, ja seetõttu peatuvad nad ebakindla oleku korral, selle asemel et jätkata. Taaskäivitus, mis lähtestab loenduri, samal ajal kui partner hoiab veel vana võtit, või virtuaalmasin, mis taastatakse seansi keskel tehtud hetktõmmisest, on täpselt see olukord, mille vältimiseks piirid on loodud. Ründajat pole vaja; tavapärastest toimingutest piisab.
Miks käsitsi muutmine on vale parandus
Loendurid, soolad ja paketi identifikaatorid on olekumasinad, mida mõlemad otsad jagavad. Ühe poole muutmine desünkroniseerib teise ja tunnel ebaõnnestub viisil, mis näeb välja nagu marsruutimisprobleem. Toetatud hoob on värske võtmevahetus, mis lähtestab oleku mõlemas otsas korraga.
Paroolidel ja nonce'idel on ka erinevad rollid. Parool on võtme tuletamise salajane sisend; nonce on iga sõnumi avalik sisend. Profiiliväli, mis on märgistatud nonce'iks ja küsib pikka saladust, on tavaliselt staatiline võti või eelnevalt jagatud saladus teise nime all, seega lugege selle välja dokumentatsiooni, selle asemel et oletada.
Kui teade puudutab nonce'i käsitlemist, on parandus hooldaja parandatud versioon, mitte teine šiffer või lühem võti. Šifri vahetamine, et vältida sõna nonce, liigutab probleemi, selle asemel et see lahendada.
Hoiatuse lugemine oletamata
Logirida loendurite või nonce'ide kohta kirjeldab tavaliselt kaotatud olekut, mitte rünnakut. Kontrollige, kas üks partner taaskäivitati, kas kloonitud virtuaalmasin kasutas sama identiteeti uuesti ja kas mõlemad otsad nõustuvad võtme uuendamise seadetega. Seejärel looge uus seanss ja jälgige, kas sõnum naaseb.
Hoidke diagnoos eraldi mitteseotud tõrgetest. Leht, mis ei laadi, või volituste küsimine, mis kordub, ei ole nonce'i korduskasutuse tõend, ja selle nii käsitlemine saadab teid krüptograafilisse kihti, samal ajal kui probleem on sellest kõrgemal.
Tavakasutuse jaoks on turvaline reegel lühike: laske rakendusel nonce'i hallata, hoidke mõlemad otsad toetatud versioonidel ja käsitlege iga oleku lähtestamist põhjusena võtit uuendada, mitte väärtust muuta. Kui profiiliväli ei ole tarnija dokumentatsioonis, ärge mõelge sellele väärtust välja. Tuneli parandamine algab teadmisest, millist kihti te vaatate.