Разработчики мессенджера Signal анонсировали внедрение Sparse Post Quantum Ratchet (SPQR) — нового компонента протокола постквантового шифрования. Он обеспечит надёжное шифрование всего сеанса общения.
Протокол Signal уже давно использует Double Ratchet для обеспечения защиты сообщений при компрометации (forward secrecy) и после неё (post-compromise security).
В 2023 году разработчики внедрили PQXDH — квантово-устойчивые секреты, которые добавили в начальный этап (handshake) сессии, чтобы защититься от атак «собирай сейчас — расшифруй позже» (harvest-now-decrypt-later).
В Double Ratchet используются квантово-безопасные хэш-функции, но механизм Elliptic Curve Diffie-Hellman (ECDH) для обмена ключами и обновлений, до последнего момента не был устойчивым к квантовым атакам. Таким образом, в будущем хакеры, имея в распоряжении квантовый компьютер, потенциально могли восстановить секреты, исходя из перехваченного трафика.
SPQR добавили поверх и вместе с существующим Double Ratchet, чтобы создать гибридный механизм безопасности. Новая архитектура получила название Triple Ratchet. Теперь каждый раз, когда нужно выбрать ключ шифрования/дешифрования, обе системы (классическая и квантово-устойчивая) генерируют свои предложения, и они комбинируются через функцию извлечения ключа (Key Derivation Function, KDF).
Такой подход делает ключ гибридным: чтобы атакующий смог расшифровать сообщение, ему нужно взломать обе системы — и ECDH, и используемый квантово-устойчивый механизм.
Не все устройства получат поддержку SPQR, поэтому на начальный этапе протокол не будет работать, если один из участников не поддерживает его.
Чтобы решить проблему, связанную с ростом объёма передаваемых для квантово-устойчивого обмена ключами данных, разработчики внедрили erasure codes — разбивку больших блоков ключей на мелкие фрагменты. Это снижает риск потери данных из-за потерь в сети или атак.
При разработке SPQR Signal сотрудничал с исследователями из PQShield, AIST и NYU для анализа безопасности. Разработчики моделировали протоколы в ProVerif и затем реализовали их на Rust. Кроме того, использовался инструмент hax, который переводит Rust-код в язык F*, чтобы обнаруживать ошибки на уровне компиляции.
В Signal отметили, что в конечном итоге все сеансы будут поддерживать Triple Ratchet с SPQR.
Источник: habr.com