Комитет IETF (Internet Engineering Task Force), занимающийся развитием протоколов и архитектуры интернета, завершил формирование RFC для протокола MLS (Messaging Layer Security) и опубликовал связанную с ним спецификацию RFC 9420. Спецификация получила статус “Предложенного стандарта”, после чего начнётся работа по приданию RFC статуса чернового стандарта (Draft Standard), фактически означающего полную стабилизацию протокола и учёт всех высказанных замечаний.
Протокол MLS предназначен для организации сквозного шифрования в приложениях, выполняющих обмен сообщениями. Предполагается, что внедрение MLS позволит унифицировать механизмы сквозного шифрования сообщений в группах, охватывающих двух и более участников, и упростить внедрение их поддержки в приложения. О работе по внедрению поддержки MLS в свои продукты объявили компании AWS, Cisco, Cloudflare, Google, Meta, Mozilla, Phoenix R&D и Wire, а также организация Matrix Foundation, развивающая платформу децентрализованных коммуникаций Matrix.
Основной целью создания нового протокола называется унификация средств для сквозного шифрования и внедрение единого стандартизированного и верифицированного протокола, который можно будет использовать вместо отдельных развиваемых разными производителями протоколов, решающих одни и те же задачи, но не совместимых между собой. MLS позволяет использовать в разных приложениях уже проверенные готовые реализации протокола, а также организовать их совместное развитие и верификацию. Переносимость на уровне приложений предлагается реализовывать на уровне аутентификации, получения ключей и обеспечения конфиденциальности (совместимость на уровне транспорта и семантики выходит за рамки стандарта).
Реализации MLS развиваются на языках C++ (MLSpp, RingCentral), Go, TypeScript и Rust (OpenMLS, Wickr). При разработке MLS использован опыт уже существующих протоколов, применяемых для защиты передачи сообщений, таких как S/MIME, OpenPGP, Off the Record и Double Ratchet. Поддержка MLS уже обеспечена в коммуникационных платформах Webex и RingCentral, а также планируется в проектах Wickr и Matrix.
Решаемые протоколом задачи:
- Конфиденциальность – сообщения могут быть прочитаны только участниками группы.
- Гарантии целостности и аутентификации – каждое сообщение отправляется аутентифицированным отправителем и не может быть подменено или изменено по пути.
- Аутентификация членов группы – каждый участник может проверить достоверность других участников группы.
- Работа в асинхронном режиме – ключи шифрования могут быть выставлены без необходимости нахождения обоих участников в online.
- Прямая секретность (Forward Secrecy) – компрометация одного из участников не позволяет расшифровать ранее отправленные в группу сообщения.
- Защита после компрометации – компрометация одного из участников не позволяет расшифровать сообщения, которые будут отправлены в группу в будущем.
- Масштабируемость – по возможности сублинейная масштабируемость в плане потребления ресурсов в зависимости от размера группы.