Apple раскрывает технические детали работы функции проверки контактных ключей iMessage

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

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

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

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

Теперь Apple поделилась подробной информацией о том, как работает новая функция безопасности iMessage, в своем блогe исследований безопасности.

Вот краткая история функций безопасности, которые Apple внедрила в iMessage за эти годы:

iMessage от Apple стала первой широко доступной службой обмена сообщениями, обеспечивающей безопасное сквозное шифрование по умолчанию, начиная с момента ее запуска в 2011 году. По мере развития угроз безопасности мы продолжали укреплять iMessage, модернизируя протокол с более сильными криптографическими примитивами и добавляя более надежное управление ключами, которое использует аппаратные средства защиты, предлагаемые Secure Enclave. В iOS 14 мы добавили BlastDoor, продвинутый механизм изоляции, который значительно затрудняет атаки на устройство с помощью вредоносного контента в приложении «Сообщения». А в iOS 16 мы представили режим блокировки, революционную защиту для очень небольшого числа пользователей, которые сталкиваются с серьезными, целенаправленными угрозами своей цифровой безопасности, и которая включает в себя мощное дополнительное усиление безопасности в приложении «Сообщения» при ее активации. Сегодня мы хотим представить обзор нашего следующего значительного шага в области безопасности iMessage: Проверка контактных ключей, новой функции, предназначенной для обнаружения сложных атак на серверы iMessage и позволяющей пользователям проверять, что они обмениваются сообщениями только с теми, с кем намеревались.

Переходя к Проверке контактных ключей, вот что происходит:

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

Хотя служба каталога ключей, такая как Identity Directory Service (IDS) Apple, решает проблему обнаружения ключей, она является единой точкой отказа в модели безопасности. Если мощный противник скомпрометирует службу каталога ключей, служба может начать возвращать скомпрометированные ключи — общедоступные ключи, для которых противник контролирует закрытые ключи, — что позволит противнику перехватывать или пассивно отслеживать зашифрованные сообщения.

Некоторые системы обмена сообщениями пытаются решить эту проблему с помощью внеполопного, однорангового шага проверки, когда два пользователя могут проверять ключи шифрования друг друга, используя длинные номера проверки или QR-коды. Это решение полезно для подтверждения того, что служба каталога ключей вернула правильные общедоступные ключи для определенного набора устройств пользователя в данный момент времени. Однако, поскольку каждое устройство генерирует и хранит свои собственные ключи, вход в службу обмена сообщениями на новом устройстве генерирует совершенно новый ключ; пользователи, которые полагаются на ручную проверку ключей, затем должны будут повторно проверять ключи в каждом разговоре, чтобы подтвердить безопасность своих разговоров, что является сложным пользовательским опытом, который не масштабируется. Например, служба обмена сообщениями Signal включает возможность переноса учетной записи на новое устройство таким образом, чтобы избежать необходимости ручной повторной проверки ключей, но если Алиса входит в новое устройство, не используя этот механизм, участники всех ее разговоров предупреждаются, что их «номер безопасности с Алисой изменился», даже если они никогда не проверяли этот номер безопасности с Алисой вручную.

Стремясь «как обезопасить протокол обнаружения ключей, так и обеспечить превосходный пользовательский опыт в iMessage», Apple разработала Contact Key Discovery на основе шести требований:

  1. Обеспечить надежный источник информации для ключевых материалов и метаданных таким образом, чтобы он не мог быть изменен неуполномоченными лицами, включая оператора службы каталога ключей.
  2. Автоматически проверять ключевые материалы и метаданные, представленные службой каталога ключей, по этому надежному источнику информации.
  3. Синхронизировать надежный источник информации со всеми текущими и будущими устройствами, авторизованными пользователем для его учетной записи.
  4. Обнаруживать расхождения между тем, что служба каталога ключей представляет для собственных идентификаторов пользователя, и тем, что она представляет для участников (других участников разговора) этого пользователя.
  5. Масштабироваться до миллиардов пользователей и всех их разговоров, включая индивидуальные беседы и групповые чаты.
  6. Уведомлять пользователей только при возникновении непредвиденных условий безопасности. Предупреждения должны быть редкими и точными, а не полагаться на то, что пользователь заметит текущие положительные индикаторы безопасности.

Для получения более подробной информации о Key Transparency, автоматической проверке и многом другом, ознакомьтесь с полным материалом Apple на эту тему.

Компания также подчеркивает, что «полное техническое описание» функции будет опубликовано «скоро».