Dauguma žmonių susiduria su žodžiu nonce VPN profilyje ir mano, kad tai dar viena bendra paslaptis, kurią reikia kopijuoti tarp bendraamžių. Ne. Nonce yra reikšmė, kuri niekada neturi kartotis po tuo pačiu raktu, ir daugumoje nonce pagrįsto šifravimo ji keliauja atvirai. Painiava lieka nekenksminga, kol kas nors ją paredaguoja ranka, ir būtent tada prasideda tikrasis gedimas.

Iš kur nonce iš tikrųjų atsiranda

Autentifikuotas šifravimas reikalauja skirtingo nonce kiekvienam pranešimui, šifruojamam po raktu. Protokolai šį reikalavimą tenkina įvairiais būdais: monotoniškai didėjantis skaitiklis, druska, sujungta su paketo identifikatoriumi, arba pakankamai ilga atsitiktinė reikšmė. IKEv2 keičiasi nonce per pradinį mainą, ir jie yra vieši įvesties duomenys raktui išvesti, o ne paslaptys.

Unikalumas gali būti struktūrinis arba tikimybinis. Skaitiklis negali pasikartoti, kol neapvirsta, todėl protokolas daug anksčiau apibrėžia rakto atnaujinimo tašką. Atsitiktinė reikšmė remiasi pakankamu bitų skaičiumi, kad susidūrimas būtų neįtikėtinas pranešimų ribose, o tai yra kitas argumentas su kitu gedimo režimu. Protokolo dokumentacija nurodo, kuris metodas taikomas, ir abu yra saugūs tik tol, kol laikomasi nurodytos ribos.

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

Kiek iš tikrųjų kainuoja pakartotinis naudojimas

Pakartotinis nonce naudojimas po vienu raktu nėra smulkus efektyvumo klausimas. Su GCM du pranešimai, bendrinantys IV, leidžia stebėtojui atkurti autentifikavimo raktą ir apskaičiuoti dviejų atvirų tekstų išskirtinį arba. Srautu pagrįstos konstrukcijos taip pat pakartotinai naudoja rakto srautą, todėl šifruotas tekstas tampa mįsle, o ne paslaptimi.

Štai kodėl diegimai atnaujina raktą prieš skaitikliui apvirstant, ir kodėl jie sustoja, o ne tęsia, kai jų būsena neaiški. Perkrovimas, kuris nunulina skaitiklį, kol partneris vis dar turi seną raktą, arba virtualioji mašina, atkurta iš momentinės kopijos, padarytos sesijos viduryje, yra būtent ta situacija, kuriai užkirsti kelią egzistuoja ribos. Užpuoliko nereikia; pakanka įprastų operacijų.

Kodėl rankinis redagavimas yra neteisinga priemonė

Skaitikliai, druskos ir paketų identifikatoriai yra būsenos mašinos, kurias dalijasi abu galai. Pakeitus vieną pusę, kita išsiderina, ir tunelis sugenda taip, kad atrodo kaip maršrutizavimo problema. Palaikoma svirtis yra naujas raktų mainas, kuris vienu metu atstato būseną abiejuose galuose.

Slaptažodžiai ir nonce taip pat atlieka skirtingus vaidmenis. Slaptažodis yra slapta įvestis raktui išvesti; nonce yra vieša kiekvieno pranešimo įvestis. Profilio laukas, pažymėtas nonce, kuris prašo ilgos paslapties, paprastai yra statinis raktas arba iš anksto bendra paslaptis kitu pavadinimu, todėl skaitykite to lauko dokumentaciją, o ne darykite prielaidas.

Kai rekomendacija susijusi su nonce tvarkymu, taisymas yra prižiūrėtojo pataisyta versija, o ne kitas šifras ar trumpesnis raktas. Šifro keitimas siekiant išvengti žodžio nonce perkelia problemą, o ne ją išsprendžia.

Įspėjimo skaitymas nespėliojant

Žurnalo eilutė apie skaitiklius ar nonce paprastai apibūdina prarastą būseną, o ne ataką. Patikrinkite, ar vienas partneris nebuvo perkrautas, ar klonuota virtualioji mašina nepanaudojo tos pačios tapatybės, ir ar abu galai sutaria dėl rakto atnaujinimo nustatymų. Tada užmegzkite naują sesiją ir stebėkite, ar pranešimas grįžta.

Laikykite diagnostiką atskirai nuo nesusijusių gedimų. Puslapis, kuris neįkeliamas, arba prisijungimo duomenų užklausa, kuri kartojasi cikle, nėra nonce pakartotinio naudojimo įrodymas, ir elgiantis su ja taip, jūs patenkate į kriptografinį sluoksnį, kai problema yra aukščiau.

Įprastam naudojimui saugi taisyklė trumpa: leiskite diegimui tvarkyti nonce, laikykite abu galus palaikomose versijose ir bet kokį būsenos atstatymą laikykite priežastimi atnaujinti raktą, o ne redaguoti reikšmę. Jei profilio lauko nėra tiekėjo dokumentacijoje, neišgalvokite jam reikšmės. Tunelio taisymas prasideda nuo žinojimo, į kurį sluoksnį žiūrite.

Susiję straipsniai