Как Trail of Bits проверяет целостность чатов в Signal

· Безопасность
Компания Trail of Bits запустила один из трёх независимых аудиторов системы автоматической проверки ключей Signal — механизма, защищающего от подмены открытых ключей скомпрометированным сервером.

cover.svg

Каждая переписка в Signal начинается одинаково: клиент запрашивает у сервера открытый ключ, связанный с номером телефона собеседника. Но как убедиться, что сервер выдал правильный ключ? Скомпрометированный сервер мог бы подсунуть чужой ключ, и тогда сообщения шифровались бы для злоумышленника, а не для настоящего адресата.

До недавнего времени единственным способом выявить подлог было сверить «номера безопасности» с собеседником лично или по доверенному каналу. Теперь Signal предложил альтернативу — Automatic Key Verification (автоматическую проверку ключей). Trail of Bits построила и обслуживает один из трёх аудиторов, на которых держится доверие к этой системе.

Как это устроено

Механизм относится к классу решений «прозрачности ключей» (key transparency): он создаёт глобально согласованную картину всех открытых ключей, привязанных к каждому номеру телефона, и тем самым затрудняет скрытую подмену. Приложение периодически само проверяет, что все ключи, хранящиеся в глобальной карте для вашей учётной записи, действительно принадлежат вашим устройствам. Если проверка не проходит или обнаруживаются лишние ключи, пользователь видит предупреждение о том, что автоматическая проверка недоступна.

Роль внешних аудиторов

Система опирается на независимых наблюдателей. Trail of Bits подтверждает, что карта «пользователь ↔ открытый ключ» глобально согласована, корректно сформирована и ничего не скрывает. Каждое новое добавление обновляет локальную копию карты, которая хранится в виде дерева Меркла. Периодически аудитор подписывает вершину этого дерева собственным секретным ключом, обязуясь подписывать только одну непротиворечивую последовательность деревьев — так клиенты получают гарантию, что видят тот же набор ключей, что и все остальные.

Клиент Signal требует подписей от всех трёх аудиторов: одного от самого Signal, одного от Cloudflare и одного от Trail of Bits, причём подписи должны быть выданы в течение последних семи дней. Если сервер не предъявит действительных подписей, автоматическая проверка завершится с предупреждением. Это значит, что даже полностью вредоносный сервер сможет поддерживать «раздвоенную» картину системы не дольше недели, прежде чем у пользователей начнут появляться тревожные сообщения.

Свой аудитор компания написала с нуля по спецификации — именно ради независимости проверки; код открыт. У Signal есть и собственная эталонная реализация.

Зачем это нужно

Включить функцию можно в «Настройки → Приватность → Дополнительно». В поддерживаемых чатах ключ собеседника проверяется через экран сверки номеров безопасности кнопкой «Проверить автоматически». Для бесед, начатых поиском по имени пользователя, функция часто недоступна; если автоматическая проверка не срабатывает, стоит вернуться к ручной сверке номеров.

Trail of Bits подчёркивает, что не получает от Signal или кого-либо ещё денег за эту работу: свободная и приватная связь для компании — общественное благо, а целостность открытых ключей — обязательный элемент любой системы сквозного шифрования.


Источник: Lobsters

Комментарии

Войдите, чтобы комментировать.

  • Пока нет комментариев.