AEAD додає цілісність, а не вхід чи робочий маршрут
Автентифіковане шифрування приховує вміст і водночас виявляє підміну. Ідентичність, свіжість і маршрутизація — окремі механізми з власними доказами.
Автентифіковане шифрування повертає дві речі одразу: шифротекст, який приховує вміст, і тег, який дає змогу отримувачу виявити підміну. Раніше ці функції збирали з окремих частин, і погані комбінації давали тонкі збої. Сучасні конструкції фіксують комбінацію та умови, за яких вона діє. Слово автентифікований тут стосується теґу, а не людини.
Обидві гарантії стосуються захищеного пакета й нічого за його межами.
Дві гарантії в одній конструкції
Шифрування відповідає, чи може спостерігач це прочитати; цілісність відповідає, чи це було змінено. Тунелю потрібне і те, і те, бо змінений вміст гірший за нечитний. AEAD визначає, як об'єднати їх під одним ключем, разом із пов'язаними даними, які автентифікуються, але не шифруються. Отримувач відхиляє ввід, що не пройшов перевірку.
Пов'язані дані прив'язують видимі поля до перевірки. Які саме поля, залежить від протоколу, і це не обіцянка, що кожна зовнішня адреса стала таємною: поле може бути вкрите теґом і все одно читатися в мережі.
Nonce — не деталь
Ключі та nonce треба обробляти правильно, а повторне використання nonce закінчується погано. Повтор nonce під одним ключем може розкрити зв'язки між повідомленнями й цілком підірвати гарантію цілісності. Тому генерацією та порядком nonce володіє протокол, а не застосунок.
Це умова гарантії, а не порада щодо реалізації. Недбалі nonce не дають заявленої властивості.
Захист від повтору — окремий стан
Припустимий старий пакет можна повторити, хоча його теґ лишається цілим, бо теґ доводить справжність, а не свіжість. Обробка повторів потребує власного стану: порядкових номерів, вікна й правила про те, що приймати. Цей стан живе в реалізації протоколу й не пов'язаний із вибором шифру. Тунель із сильним шифруванням і без захисту від повтору все одно приймає вчорашній трафік.
Два механізми співпрацюють, не будучи одним, і один може бути правильним, поки іншого немає.
Чого теґ вам не каже
Ідентичність партнера встановлюють сертифікати або заздалегідь спільні ключі, а не те, що шифр автентифікований. Маршрутизація, розв'язання імен і політика журналів оператора лежать за криптографічною межею. Успішне узгодження алгоритму каже лише, що обидві сторони домовилися про набір, це про сумісність, а не про якість реалізації з будь-якого боку.
Для користувачів: обирайте підтримувану й доглянуту конфігурацію протоколу. AEAD — властивість цієї конфігурації, а не запрошення будувати шифрування вручну навколо тунелю.
Запишіть, який набір узгоджено, чи активний захист від повтору і як визначаються сторони. Три факти, три різні гарантії.