Комитет IETF (Internet Engineering Task Force), занимающийся развитием протоколов и архитектуры интернета, утвердил публикацию стандарта MLS (Messaging Layer Security), определяющего протокол для организации сквозного шифрования в приложениях, выполняющих обмен сообщениями. Предполагается, что продвижение MLS позволит унифицировать механизмы сквозного шифрования сообщений в группах, охватывающих двух и более участников, и упростить внедрение их поддержки в приложения.
Для ознакомление опубликованы документы, описывающие архитектуру MLS и применяемый для шифрования сообщений протокол. Реализации MLS развиваются на языках C++ (MLSpp, RingCentral), Go, TypeScript и Rust (OpenMLS, Wickr). При разработке MLS использован опыт уже существующих протоколов, применяемых для защиты передачи сообщений, таких как S/MIME, OpenPGP, Off the Record и Double Ratchet.
Процессы подготовки спецификации, рабочей реализации и процедур верификации ведутся параллельно, используя методы, применявшиеся при подготовке стандарта TLS 1.3. Подобный подход позволит к моменту готовности RFС уже иметь несколько совместимых и проверенных реализаций протокола.
В настоящее время рабочие внедрения MLS уже применяются в коммуникационных платформах Webex и RingCentral, переход на MLS также планируют проекты Wickr и Matrix.
Основной целью создания нового протокола называется унификация средств для сквозного шифрования и внедрение единого стандартизированного и верифицированного протокола, который можно будет использовать вместо отдельных развиваемых разными производителями протоколов, решающих одни и те же задачи, но не совместимых между собой. MLS позволит использовать в разных приложениях уже проверенные готовые реализации протокола, а также организовать их совместное развитие и верификацию. Переносимость на уровне приложений планируется реализовать на уровне аутентификации, получения ключей и обеспечения конфиденциальности (совместимость на уровне транспорта и семантики выходит за рамки стандарта).
Решаемые протоколом задачи:
- Конфиденциальность – сообщения могут быть прочитаны только участниками группы.
- Гарантии целостности и аутентификации – каждое сообщение отправляется аутентифицированным отправителем и не может быть подменено или изменено по пути.
- Аутентификация членов группы – каждый участник может проверить достоверность других участников группы.
- Работа в асинхронном режиме – ключи шифрования могут быть выставлены без необходимости нахождения обоих участников в online.
- Прямая секретность (Forward Secrecy) – компрометация одного из участников не позволяет расшифровать ранее отправленные в группу сообщения.
- Защита после компрометации – компрометация одного из участников не позволяет расшифровать сообщения, которые будут отправлены в группу в будущем.
- Масштабируемость – по возможности сублинейная масштабируемость в плане потребления ресурсов в зависимости от размера группы.