Автоматизированная верификация протоколов безопасного обмена сообщениями и их реализаций: символический и вычислительный подход

Automated Verification for Secure Messaging Protocols and Their Implementations: A Symbolic and Computational Approach
Nadim Kobeissi, Karthikeyan Bhargavan, Bruno Blanchet
2017-04-01

CryptoVerifCryptocatProScriptProVerifвариант протокола Signalприкладное pi вычисление
Многие популярные веб-приложения включают протоколы безопасного обмена сообщениями «конец‑в‑конец», которые стремятся обеспечить конфиденциальность и аутентичность сообщений между пользователями, даже если серверы веб‑приложения скомпрометированы или вынуждены раскрыть все свои данные. Протоколы, обещающие такие сильные гарантии безопасности, должны подвергаться строгому анализу, поскольку ошибки в протоколе и баги в реализации могут легко привести к реальным атакам. Мы предлагаем новую методологию, которая позволяет разработчикам протоколов, реализацию и аналитикам по безопасности совместно верифицировать протокол с помощью автоматизированных инструментов. Протокол реализован на ProScript, новом предметно‑ориентированном языке, предназначенном для написания кода криптографических протоколов, который может выполняться в программах на JavaScript и автоматически переводиться в читаемую модель в прикладном пии‑исчислении (applied pi calculus). Эта модель затем может быть проанализирована символически с помощью ProVerif для поиска атак в различных моделях угроз. Модель также может служить основой для вычислительного доказательства с использованием CryptoVerif, которое сводит безопасность протокола к стандартным криптографическим предположениям. Если ProVerif обнаруживает атаку или доказательство CryptoVerif выявляет слабость, разработчик протокола изменяет код ProScript и регенерирует модель для новой аналитики. Мы демонстрируем нашу методологию, реализовав и проанализировав вариант популярного протокола Signal с незначительными отличиями. Мы используем ProVerif и CryptoVerif для обнаружения новых и ранее известных слабостей в протоколе и предлагаем практические меры защиты. Наш код протокола на ProScript включён в текущий релиз Cryptocat, настольного защищённого мессенджера, написанного на JavaScript. Наши результаты показывают, что при дисциплинированном программировании и наличии некоторой экспертизы в верификации систематический анализ сложных криптографических веб‑приложений становится практически осуществимым.
1
Методология применена к варианту протокола Signal; обнаружены новые и ранее известные уязвимости и предложены практические меры противодействия.
2
Сделан вывод, что дисциплинированное программирование и экспертность в верификации делают системный анализ сложных криптографических веб-приложений практичным.
3
Протокольный код ProScript интегрирован в настольный мессенджер Cryptocat на JavaScript, что демонстрирует применимость к реальным веб-реализациям обмена сообщениями.
4
Предложен ProScript — специализированный язык для написания криптопротокольного кода, исполняемого в JavaScript и автоматически переводимого в модель на прикладном pi-исчислении.
5
Представлена методология, объединяющая ProScript, ProVerif (символический анализ) и CryptoVerif (вычислительные доказательства) для итеративной автоматизированной верификации протоколов и реализаций.

Протоколы безопасного обмена сообщениями «от конца до конца» и их реализации на JavaScript (код на ProScript в Cryptocat)

Автоматизированная совместная верификация этих протоколов и их реализаций посредством символьного анализа (ProVerif) и вычислительной безопасности (CryptoVerif), осуществляемая через генерацию моделей из ProScript, включая обнаружение уязвимостей и предложений по контрмерам

Publication Details
Publication Date
2017-04-01
Journal
Publisher
ISSN
Access Type
Author Information
Authors
Nadim Kobeissi
Karthikeyan Bhargavan
Bruno Blanchet
Explore further
Open the scid.ai AI chat with a ready-made request: it will find papers on a similar topic and help build a literature review.
Find similar papers in the chat
Make a presentation
100%