Libsodium и совершенная прямая секретность

Я думаю о создании мобильного приложения, которое использует Libsodium crypto_box_easy для шифрования и расшифровки сообщений чата.

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

Чтобы избежать этого, предлагается использовать Perfect Forward Secrecy (PFS), и мне интересно, поддерживает ли Libsodium PFS в ранее упомянутой функции, поскольку для каждого шифрования используются отдельные nonces.

Может быть, кто-нибудь может объяснить мне разницу между функциями PFS и Libsodiums (если они есть) или помочь мне, прояснив связь одноразовых номеров и PFS.


person Chris R.    schedule 31.12.2018    source источник
comment
Посмотрите на libsodium.gitbook.io/doc/key_exchange и обратите внимание, что Perfect Forward Secrecy = Forward Секретность   -  person kelalaka    schedule 31.12.2018
comment
Хотя неявной прямой секретности может не быть, вы можете использовать пары эфемерных/эфемерных ключей crypto_box для достижения прямой секретности в libsodium. Вам просто нужно генерировать новые общие секреты на основе эфемерных пар ключей за сеанс.   -  person Woodstock    schedule 26.11.2019


Ответы (1)


Нет прямой секретности.

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

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

По этим причинам конструкция box не существует в libhydrogen. Вместо этого существуют реализации протокола на основе Noise для безопасного обмена ключами, все с прямой секретностью. В какой-то момент эти API будут перенесены в libsodium.

Но создание безопасных чат-приложений далеко не тривиально. Библиотека сигналов signal является гораздо лучшей отправной точкой, даже если лицензия может быть несовместимой. со своими ожиданиями.

person Frank Denis    schedule 13.01.2019