Већина људи сретне реч nonce у VPN профилу и претпостави да је то још једна заједничка тајна коју треба копирати између партнера. Није. nonce је вредност која никада не сме да се понови под истим кључем, и у већини шифровања заснованог на nonce путује отворено. Забуна остаје безопасна док је неко не уреди ручно, и тамо почиње права штета.

Одакле nonce заиста долази

Аутентификовано шифровање захтева другачији nonce за сваку поруку шифровану под кључем. Протоколи испуњавају тај захтев на различите начине: монотоно растући бројач, соља комбинована са идентификатором пакета, или довољно дуга случајна вредност. IKEv2 размењује nonce током почетне размене, и они су јавни улази за извођење кључа, а не тајне.

Јединственост може бити структурна или вероватна. Бројач не може да се понови док се не преврне, зато протокол дефинише тачку обнове кључа много раније. Случајна вредност се ослања на довољно битова да судар буде невероватан у оквиру ограничења порука, што је другачији аргумент са другачијим режимом отказа. Документација протокола наводи који метод важи, и оба су безбедна само док се поштује наведено ограничење.

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

Шта поновна употреба заиста кошта

Поновна употреба nonce-а под једним кључем није мали проблем ефикасности. Са GCM-ом, две поруке које деле IV омогућавају посматрачу да поврати кључ за аутентикацију и израчуна ексклузивно или два отворена текста. Конструкције засноване на току поново користе ток кључа на исти начин, што претвара шифровани текст у загонетку уместо у тајну.

Зато имплементације обнављају кључ пре него што се бројач преврне, и зато се заустављају уместо да наставе када је њихово стање неизвесно. Поновно покретање које ресетује бројач док партнер још држи стари кључ, или виртуелна машина враћена из снимка направљеног на средини сесије, јесте управо ситуација коју ограничења постоје да спрече. Нападач није потребан; обичне операције су довољне.

Зашто је ручно уређивање погрешна поправка

Бројачи, сољи и идентификатори пакета су машине стања које деле оба краја. Промена једне стране десинхронизује другу, и тунел отказује на начине који изгледају као проблем рутирања. Подржана полуга је свежа размена кључева, која ресетује стање на оба краја одједном.

Лозинке и nonce-ови такође играју различите улоге. Лозинка је тајни улаз за извођење кључа; nonce је јавни улаз за сваку поруку. Поље профила означено nonce које тражи дугу тајну обично је статички кључ или унапред дељена тајна под другим именом, зато прочитајте документацију за то поље уместо да претпостављате.

Када савет говори о руковању nonce-ом, поправка је исправљена верзија одржаваоца, а не друга шифра или краћи кључ. Промена шифре да би се избегла реч nonce премешта проблем уместо да га реши.

Читање упозорења без нагађања

Ред у дневнику о бројачима или nonce-овима обично описује изгубљено стање, а не напад. Проверите да ли је један партнер поново покренут, да ли је клонирана виртуелна машина поново употребила исти идентитет, и да ли се два краја слажу о подешавањима обнове кључа. Затим успоставите нову сесију и гледајте да ли се порука враћа.

Држите дијагнозу одвојено од неповезаних кварова. Страница која се не учитава, или захтев за акредитивима који се врти у петљи, није доказ поновне употребе nonce-а, и третирање тога као таквог шаље вас у криптографски слој када је проблем изнад њега.

За обичну употребу безбедно правило је кратко: пустите имплементацију да управља nonce-ом, држите оба краја на подржаним верзијама, и третирајте свако ресетовање стања као разлог да обновите кључ уместо да уређујете вредност. Ако поље профила није у документацији добављача, не измишљајте вредност за њега. Поправка тунела почиње са знањем у који слој гледате.

Повезани чланци