Guiding a General-Purpose C Verifier to Prove Cryptographic Protocols

François Dupressoir, A. Gordon, J. Jürjens, D. Naumann
{"title":"Guiding a General-Purpose C Verifier to Prove Cryptographic Protocols","authors":"François Dupressoir, A. Gordon, J. Jürjens, D. Naumann","doi":"10.1109/CSF.2011.8","DOIUrl":null,"url":null,"abstract":"We describe how to verify security properties of C code for cryptographic protocols by using a general-purpose verifier. We prove security theorems in the symbolic model of cryptography. Our techniques include: use of ghost state to attach formal algebraic terms to concrete byte arrays and to detect collisions when two distinct terms map to the same byte array, decoration of a crypto API with contracts based on symbolic terms, and expression of the attacker model in terms of C programs. We rely on the general-purpose verifier VCC, we guide VCC to prove security simply by writing suitable header files and annotations in implementation files, rather than by changing VCC itself. We formalize the symbolic model in Coq in order to justify the addition of axioms to VCC.","PeriodicalId":364995,"journal":{"name":"2011 IEEE 24th Computer Security Foundations Symposium","volume":"65 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2011-06-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"50","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"2011 IEEE 24th Computer Security Foundations Symposium","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/CSF.2011.8","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 50

Abstract

We describe how to verify security properties of C code for cryptographic protocols by using a general-purpose verifier. We prove security theorems in the symbolic model of cryptography. Our techniques include: use of ghost state to attach formal algebraic terms to concrete byte arrays and to detect collisions when two distinct terms map to the same byte array, decoration of a crypto API with contracts based on symbolic terms, and expression of the attacker model in terms of C programs. We rely on the general-purpose verifier VCC, we guide VCC to prove security simply by writing suitable header files and annotations in implementation files, rather than by changing VCC itself. We formalize the symbolic model in Coq in order to justify the addition of axioms to VCC.
查看原文
分享 分享
微信好友 朋友圈 QQ好友 复制链接
本刊更多论文
指导通用C验证器证明加密协议
我们描述了如何使用通用验证器来验证加密协议的C代码的安全属性。我们证明了密码学符号模型中的安全定理。我们的技术包括:使用幽灵状态将形式化代数术语附加到具体的字节数组,并在两个不同的术语映射到相同的字节数组时检测碰撞,使用基于符号术语的契约装饰加密API,以及用C程序表达攻击者模型。我们依赖于通用验证器VCC,我们指导VCC简单地通过在实现文件中编写合适的头文件和注释来证明安全性,而不是通过更改VCC本身。为了证明在VCC中添加公理的合理性,我们在Coq中形式化了符号模型。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 去求助
来源期刊
自引率
0.00%
发文量
0
期刊最新文献
A Statistical Test for Information Leaks Using Continuous Mutual Information Local Memory via Layout Randomization Regret Minimizing Audits: A Learning-Theoretic Basis for Privacy Protection Guiding a General-Purpose C Verifier to Prove Cryptographic Protocols Integrated Specification and Verification of Security Protocols and Policies
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
已复制链接
已复制链接
快去分享给好友吧!
我知道了
×
扫码分享
扫码分享
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1