Автоматизированная верификация протоколов безопасного обмена сообщениями и их реализаций: символический и вычислительный подход
Automated Verification for Secure Messaging Protocols and Their Implementations: A Symbolic and Computational Approach
2017-04-01
SCID: 54.1/puuseuaa
Discuss with AI
CryptoVerifCryptocatProScriptProVerifвариант протокола Signalприкладное pi вычисление
Figures from the paper
Abstract (AI)
Многие популярные веб-приложения включают протоколы безопасного обмена сообщениями «конец‑в‑конец», которые стремятся обеспечить конфиденциальность и аутентичность сообщений между пользователями, даже если серверы веб‑приложения скомпрометированы или вынуждены раскрыть все свои данные. Протоколы, обещающие такие сильные гарантии безопасности, должны подвергаться строгому анализу, поскольку ошибки в протоколе и баги в реализации могут легко привести к реальным атакам. Мы предлагаем новую методологию, которая позволяет разработчикам протоколов, реализацию и аналитикам по безопасности совместно верифицировать протокол с помощью автоматизированных инструментов. Протокол реализован на ProScript, новом предметно‑ориентированном языке, предназначенном для написания кода криптографических протоколов, который может выполняться в программах на JavaScript и автоматически переводиться в читаемую модель в прикладном пии‑исчислении (applied pi calculus). Эта модель затем может быть проанализирована символически с помощью ProVerif для поиска атак в различных моделях угроз. Модель также может служить основой для вычислительного доказательства с использованием CryptoVerif, которое сводит безопасность протокола к стандартным криптографическим предположениям. Если ProVerif обнаруживает атаку или доказательство CryptoVerif выявляет слабость, разработчик протокола изменяет код ProScript и регенерирует модель для новой аналитики. Мы демонстрируем нашу методологию, реализовав и проанализировав вариант популярного протокола Signal с незначительными отличиями. Мы используем ProVerif и CryptoVerif для обнаружения новых и ранее известных слабостей в протоколе и предлагаем практические меры защиты. Наш код протокола на ProScript включён в текущий релиз Cryptocat, настольного защищённого мессенджера, написанного на JavaScript. Наши результаты показывают, что при дисциплинированном программировании и наличии некоторой экспертизы в верификации систематический анализ сложных криптографических веб‑приложений становится практически осуществимым.
Key Findings
1
Методология применена к варианту протокола Signal; обнаружены новые и ранее известные уязвимости и предложены практические меры противодействия.
2
Сделан вывод, что дисциплинированное программирование и экспертность в верификации делают системный анализ сложных криптографических веб-приложений практичным.
3
Протокольный код ProScript интегрирован в настольный мессенджер Cryptocat на JavaScript, что демонстрирует применимость к реальным веб-реализациям обмена сообщениями.
4
Предложен ProScript — специализированный язык для написания криптопротокольного кода, исполняемого в JavaScript и автоматически переводимого в модель на прикладном pi-исчислении.
5
Представлена методология, объединяющая ProScript, ProVerif (символический анализ) и CryptoVerif (вычислительные доказательства) для итеративной автоматизированной верификации протоколов и реализаций.
Research Object
Протоколы безопасного обмена сообщениями «от конца до конца» и их реализации на JavaScript (код на ProScript в Cryptocat)
Research Subject
Автоматизированная совместная верификация этих протоколов и их реализаций посредством символьного анализа (ProVerif) и вычислительной безопасности (CryptoVerif), осуществляемая через генерацию моделей из ProScript, включая обнаружение уязвимостей и предложений по контрмерам
Publication Details
Publication Date
2017-04-01
Journal
Publisher
ISSN
Open access PDF
Access Type
Author Information
Download PDF
Subscribe to digest