PQ3, Apple’s New iMessage Security Protocol: что нового?

6257451c34530c03204ad6eaa93849fc

Хоть убейте, не нашёл отличий. Впервые увидел на Коде Дурова, там, как обычно, не дали подробностей. Ключи используются от устройств, ну и что? Сейчас не также? Также. Приватный ключ здесь, публичный остальным, приватный никому не показываем. Всё, пошло поехало.

Но это же Apple! Не может всё так быть просто. Окей, ищу дальше, натыкаюсь на securitylab, там уже побольше подробностей:

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

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

Подробнее:  https://www.securitylab.ru/news/546233.php

Слово «самовосстанавливающиеся свойства» меня больше всего заинтересовало. Это так назвали шифрование поверх обычного RSA, с временными ключами? Да его в чистом виде то никогда и не было, всегда совместно использовались обычные симметричные ключи и алгоритм Диффи Хеллмана, ибо есть свои уязвимости. HTTPS и MTPROTO (Telegram) самые популярные примеры, у Signal (Signal и Whatsapp) вроде похожий принцип.

Постквантовые ключи? Это тот же RSA, только генерация ключей на эллиптических кривых, которые не так просто даются алгоритму Шора и выдают ту же стойкость при меньшем размере.

Нашёл подтверждение этому дальше, в другом источнике:

The new PQ3 protocol brings a new post-quantum encryption key to the set of public keys. Each device generates these public keys locally and then transmits them to Apple servers as part of the iMessage registration process. For this, Apple uses the Module Lattice-based Key Encapsulation Mechanism standard or ML-KEM which enables the sender devices to get a receiver«s public keys and generate post-quantum encryption keys for the very first message. This works even if the receiver is offline.  

Then Apple includes a periodic post-quantum rekeying mechanism within the conversation. This mechanism can self-heal from key compromise and safeguard future messages.

«In PQ3, the new keys sent along with the conversation are used to create fresh message encryption keys that can«t be computed from past ones, thereby bringing the conversation back to a secure state even if previous keys were extracted or compromised by an adversary.» — Apple

Source: https://beebom.com/pq3-imessages-security-protocol-explained/

Т.е. опять натыкаемся на создание временных ключей, которое выручает от раскрытия от времени. Я не буду пытаться своими словами пересказывать работу mtproto (этот протокол лишь пример, можно взять и другой), когда это сделали за меня более опытные авторы Хабра:

Rekeying (смена ключа шифрования)

Посидели разработчики тележки, посмотрели на все, что они наворотили, почесали репу, да решили, что как-то это все не слишком секретно, ненадежно. А вдруг кто-то получит секретный ключ и сможет расшифровать сообщения. Недолго думая, они взяли да реализовали алгоритм смены ключей. По их задумке секретные ключи, используемые в сквозном шифровании, сменяются каждые 100 сообщений или же каждую неделю. Старые ключи должны быть уничтожены и более не использоваться. Думаю, в третий раз разъяснение алгоритма DH — это уже перебор, поэтому просто приведу схему:

Источник: https://habr.com/ru/articles/590667/#rekeying

Как видим, тоже самое. Я не нашёл отзыва об этой новости, так что написал свой. Учитывая. как здесь любят отдавать жёсткие комментарии по содержанию, я специально пишу эту статью. Пожалуй, так будет проще разобраться, да и если я не ошибаюсь, то поможет другим. Как-то так.

© Habrahabr.ru