Libsodium и Perfect Forward Secrecy - PullRequest
       54

Libsodium и Perfect Forward Secrecy

0 голосов
/ 31 декабря 2018

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

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

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

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

1 Ответ

0 голосов
/ 13 января 2019

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

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

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

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

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

...