Пряма секретність для VPN: що може відкрити викрадений ключ
Пряма секретність обмежує те, що викрадений пізніше ключ ідентичності розкриває про записані сесії. Вона не захищає живий відкритий текст на скомпрометованому пристрої.
Запишіть сьогодні зашифрований тунель, викрадіть наступного року довгостроковий приватний ключ сервера і спробуйте розшифрувати запис. Пряма секретність — це властивість, яка каже, що викраденого ключа самого по собі не буде достатньо. Це твердження про записані сесії та конкретні секрети, а не загальна обіцянка, що тунель був безпечним. Саме точне визначення меж робить термін корисним.
Питання про запис, а не про живу сесію
Довгостроковий ключ ідентифікує кінцеву точку й підписує рукостискання. Сесійні ключі шифрують реальний трафік, і в схемі з прямою секретністю вони виводяться зі свіжого матеріалу обміну ключами, який обидві сторони створюють, а потім відкидають. Зловмисник, який має лише довгостроковий ключ, не може відтворити ці відкинуті значення. Зловмисник із живим станом сесії все ще може, тому гарантія стосується минулого, а не теперішнього.
Твердження умовне: воно чинне лише якщо ефемерні секрети справді були знищені й протокол саме той, про який ви думаєте. Змішане розгортання може виконати його на одному тунелі й не виконати на іншому.
Один секрет не повинен відновлювати інші
Перевіряйте узгоджений режим, а не маркетингову сторінку. Вивід рукостискання називає обмін ключами та версію протоколу.
openssl s_client -connect vpn.example.com:443 -tls1_3 -brief
swanctl --list-sasПідсумок s_client показує версію TLS і групу обміну ключами, а ефемерна група — видима ознака домовленості про ключі з прямою секретністю. Список swanctl показує асоціації IKE та CHILD разом із їхніми таймерами оновлення ключів, тож ви бачите, чи оновлює розгортання ключі за розкладом. Статичний обмін ключами RSA або старий режим сумісності втрачає цю властивість незалежно від назви шифру. Записуйте режим, який ви спостерігали, а не той, який рекламував постачальник.
Оновлення ключів — не автоматично пряма секретність
Те, як часто тунель оновлює ключі, — окреме питання від того, як виводиться кожен ключ. Схема, яка створює ключі заново з довгострокового секрету, може оновлювати їх щохвилини й усе одно провалювати перевірку, бо подальша компрометація відновлює їх усі. Навпаки, протокол із рідкісним оновленням може й далі мати пряму секретність, коли кожен обмін незалежний. Читайте виведення, а не інтервал, і не плутайте короткий таймер перепідключення з криптографічною гарантією.
Та сама плутанина виникає з назвами шифрів: сучасний шифр нічого не каже про те, як з'явився його ключ.
Що залишається видимим після гарантії
Пряма секретність захищає відкритий текст записаних сесій від майбутньої компрометації ключів і нічого не робить проти зловмисника, який читає живий трафік на скомпрометованій кінцевій точці. Вона не прибирає із запису адреси призначення, час або обсяг і не обмежує, як довго оператор зберігає журнали з'єднань. Вона також не робить скомпрометованого клієнта надійним, бо зловмисник уже сидить там, де вміст існує у відкритому вигляді.
Коли постачальник заявляє про пряму секретність, запитайте, який довгостроковий секрет вважають викраденим і які секрети сесії залишаються недоступними. Якщо ці два питання мають чіткі відповіді, заява щось означає.