Запишите сегодня зашифрованный туннель, украдите в следующем году долгосрочный закрытый ключ сервера и попробуйте расшифровать запись. Прямая секретность — это свойство, говорящее, что украденного ключа самого по себе не хватит. Это утверждение о записанных сессиях и конкретных секретах, а не общее обещание, что туннель был безопасен. Именно точное определение границ делает термин полезным.

Вопрос о записи, а не о живой сессии

Долгосрочный ключ идентифицирует конечную точку и подписывает рукопожатие. Сессионные ключи шифруют реальный трафик, и в схеме с прямой секретностью они выводятся из свежего материала обмена ключами, который обе стороны создают, а затем уничтожают. Злоумышленник, у которого есть только долгосрочный ключ, не может восстановить эти уничтоженные значения. Злоумышленник с живым состоянием сессии всё ещё может, поэтому гарантия касается прошлого, а не настоящего.

Утверждение условно: оно верно только если эфемерные секреты действительно уничтожены и протокол именно тот, о котором вы думаете. Смешанное развёртывание может выполнить его на одном туннеле и не выполнить на другом.

Один секрет не должен восстанавливать остальные

Проверяйте согласованный режим, а не маркетинговую страницу. Вывод рукопожатия называет обмен ключами и версию протокола.

openssl s_client -connect vpn.example.com:443 -tls1_3 -brief
swanctl --list-sas

Сводка s_client показывает версию TLS и группу обмена ключами, а эфемерная группа — видимый признак соглашения о ключах с прямой секретностью. Список swanctl показывает ассоциации IKE и CHILD вместе с их таймерами обновления ключей, так что видно, обновляет ли развёртывание ключи по расписанию. Статический обмен ключами RSA или старый режим совместимости теряет это свойство независимо от названия шифра. Записывайте режим, который вы наблюдали, а не тот, который рекламировал поставщик.

Обновление ключей — не автоматически прямая секретность

То, как часто туннель обновляет ключи, — отдельный вопрос от того, как выводится каждый ключ. Схема, которая заново создаёт ключи из долгосрочного секрета, может обновлять их каждую минуту и всё равно проваливать проверку, потому что последующая компрометация восстанавливает их все. Наоборот, протокол с редким обновлением может оставаться с прямой секретностью, когда каждый обмен независим. Читайте вывод, а не интервал, и не путайте короткий таймер переподключения с криптографической гарантией.

Та же путаница возникает с названиями шифров: современный шифр ничего не говорит о том, как появился его ключ.

Что остаётся видимым после гарантии

Прямая секретность защищает открытый текст записанных сессий от будущей компрометации ключей и ничего не делает против злоумышленника, читающего живой трафик на скомпрометированной конечной точке. Она не удаляет из записи адреса назначения, время или объём и не ограничивает, как долго оператор хранит журналы подключений. Она также не делает скомпрометированного клиента надёжным, потому что злоумышленник уже сидит там, где содержимое существует в открытом виде.

Когда провайдер заявляет о прямой секретности, спросите, какой долгосрочный секрет считается украденным и какие секреты сессии остаются недоступными. Если у этих двух вопросов есть чёткие ответы, заявление что-то значит.

Похожие статьи