Perfect Money
- 1 year ago
- 0
- 0
Совершенная прямая секретность ( англ. Perfect forward secrecy, PFS ) — свойство некоторых протоколов ключа , которое гарантирует, что сессионные ключи, полученные при помощи набора ключей долговременного пользования, не будут скомпрометированы при компрометации одного из долговременных ключей.
Термин Forward secrecy часто используется как синоним к perfect forward secrecy , но иногда между ними делается различие.
Совершенная прямая секретность (PFS) означает, что сеансовый ключ, генерируемый с использованием долговременных ключей, не будет скомпрометирован, если один или несколько из этих долговременных ключей будут скомпрометированы в будущем. Для сохранения совершенной прямой секретности ключ, используемый для шифрования передаваемых данных, не должен использоваться для получения каких-либо дополнительных ключей. Также, если ключ, используемый для шифрования передаваемых данных, был получен ( derived ) на базе какого-то ещё ключевого материала, этот материал не должен использоваться для получения каких-либо других ключей.
Свойство PFS было предложено Диффи , van Oorschot и и относилось к протоколу STS , в котором ключами долговременного пользования являются закрытые ключи. PFS требует использования асимметричной криптографии и не может быть реализован исключительно при помощи симметричных криптоалгоритмов.
Термин PFS также применялся при описании аналогичного свойства в , в которых ключом долговременного пользования является пароль, известный обеим сторонам.
Приложение Annex D.5.1 стандарта IEEE 1363—2000 описывает связанные свойства one-party forward secrecy и two-party forward secrecy различных стандартных схем согласования ключа.
При использовании PFS в TLS могут применяться TLS session tickets ( ) для возобновления зашифрованной сессии без повторного согласования ключей и без сохранения ключевой информации на сервере. При открытии первого соединения и создания ключей, сервер шифрует состояние соединения и передает его клиенту (в виде session ticket ). Соответственно, при возобновлении соединения клиент посылает session ticket, содержащий в том числе сессионный ключ, обратно серверу. Сам ticket шифруется временным ключом ( session ticket key ), который хранится на сервере и должен распределяться по всем frontend-серверам, обрабатывающим SSL в кластеризованных решениях. . Таким образом, введение session ticket может нарушать PFS в случае компрометации временных серверных ключей, например, при их длительном хранении ( OpenSSL , nginx , Apache по умолчанию хранят их в течение всего времени работы программы; популярные сайты используют ключ в течение нескольких часов, вплоть до суток). Сходная проблема существует и в TOR как минимум для одного слоя шифрования .
Некоторые реализации протоколов согласования ключей (DH) выбирают слишком слабые параметры группы на серверной стороне. Например, иногда используются поля вычетов по модулю с длиной 256 бит (отвергаются некоторыми веб-браузерами) или 512 бит (легко взламываются)