Everest: Towards a Verified, Drop-in Replacement of HTTPS

K. Bhargavan, Barry Bond, Antoine Delignat-Lavaud, C. Fournet, C. Hawblitzel, Catalin Hritcu, Samin S. Ishtiaq, Markulf Kohlweiss, Rustan Leino, Jacob R. Lorch, K. Maillard, J. Pan, Bryan Parno, Jonathan Protzenko, T. Ramananandro, A. Rane, Aseem Rastogi, N. Swamy, Laure Thompson, Peng Wang, Santiago Zanella-Béguelin, J. Zinzindohoué
{"title":"Everest: Towards a Verified, Drop-in Replacement of HTTPS","authors":"K. Bhargavan, Barry Bond, Antoine Delignat-Lavaud, C. Fournet, C. Hawblitzel, Catalin Hritcu, Samin S. Ishtiaq, Markulf Kohlweiss, Rustan Leino, Jacob R. Lorch, K. Maillard, J. Pan, Bryan Parno, Jonathan Protzenko, T. Ramananandro, A. Rane, Aseem Rastogi, N. Swamy, Laure Thompson, Peng Wang, Santiago Zanella-Béguelin, J. Zinzindohoué","doi":"10.4230/LIPIcs.SNAPL.2017.1","DOIUrl":null,"url":null,"abstract":"The HTTPS ecosystem is the foundation on which Internet security is built. At the heart of this ecosystem is the Transport Layer Security (TLS) protocol, which in turn uses the X.509 public-key infrastructure and numerous cryptographic constructions and algorithms. Unfortunately, this ecosystem is extremely brittle, with headline-grabbing attacks and emergency patches many times a year. We describe our ongoing efforts in Everest (The Everest VERified End-to-end Secure Transport) a project that aims to build and deploy a verified version of TLS and other components of HTTPS, replacing the current infrastructure with proven, secure software. \n \nAiming both at full verification and usability, we conduct high-level code-based, game-playing proofs of security on cryptographic implementations that yield efficient, deployable code, at the level of C and assembly. Concretely, we use F*, a dependently typed language for programming, meta-programming, and proving at a high level, while relying on low-level DSLs embedded within F* for programming low-level components when necessary for performance and, sometimes, side-channel resistance. To compose the pieces, we compile all our code to source-like C and assembly, suitable for deployment and integration with existing code bases, as well as audit by independent security experts. \n \nOur main results so far include (1) the design of Low*, a subset of F* designed for C-like imperative programming but with high-level verification support, and KreMLin, a compiler that extracts Low* programs to C; (2) an implementation of the TLS-1.3 record layer in Low*, together with a proof of its concrete cryptographic security; (3) Vale, a new DSL for verified assembly language, and several optimized cryptographic primitives proven functionally correct and side-channel resistant. In an early deployment, all our verified software is integrated and deployed within libcurl, a widely used library of networking protocols.","PeriodicalId":231548,"journal":{"name":"Summit on Advances in Programming Languages","volume":null,"pages":null},"PeriodicalIF":0.0000,"publicationDate":"2017-04-30","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"65","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Summit on Advances in Programming Languages","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.4230/LIPIcs.SNAPL.2017.1","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 65

Abstract

The HTTPS ecosystem is the foundation on which Internet security is built. At the heart of this ecosystem is the Transport Layer Security (TLS) protocol, which in turn uses the X.509 public-key infrastructure and numerous cryptographic constructions and algorithms. Unfortunately, this ecosystem is extremely brittle, with headline-grabbing attacks and emergency patches many times a year. We describe our ongoing efforts in Everest (The Everest VERified End-to-end Secure Transport) a project that aims to build and deploy a verified version of TLS and other components of HTTPS, replacing the current infrastructure with proven, secure software. Aiming both at full verification and usability, we conduct high-level code-based, game-playing proofs of security on cryptographic implementations that yield efficient, deployable code, at the level of C and assembly. Concretely, we use F*, a dependently typed language for programming, meta-programming, and proving at a high level, while relying on low-level DSLs embedded within F* for programming low-level components when necessary for performance and, sometimes, side-channel resistance. To compose the pieces, we compile all our code to source-like C and assembly, suitable for deployment and integration with existing code bases, as well as audit by independent security experts. Our main results so far include (1) the design of Low*, a subset of F* designed for C-like imperative programming but with high-level verification support, and KreMLin, a compiler that extracts Low* programs to C; (2) an implementation of the TLS-1.3 record layer in Low*, together with a proof of its concrete cryptographic security; (3) Vale, a new DSL for verified assembly language, and several optimized cryptographic primitives proven functionally correct and side-channel resistant. In an early deployment, all our verified software is integrated and deployed within libcurl, a widely used library of networking protocols.
查看原文
分享 分享
微信好友 朋友圈 QQ好友 复制链接
本刊更多论文
珠穆朗玛峰:迈向一个经过验证的、可直接替换的HTTPS
HTTPS生态系统是构建互联网安全的基础。这个生态系统的核心是传输层安全(TLS)协议,它又使用X.509公钥基础设施和许多加密结构和算法。不幸的是,这个生态系统非常脆弱,每年都会有很多次引人注目的攻击和紧急补丁。我们描述了我们在Everest(珠峰验证端到端安全传输)项目中正在进行的努力,该项目旨在构建和部署经过验证的TLS版本和其他HTTPS组件,用经过验证的安全软件取代当前的基础设施。为了充分验证和可用性,我们在C和汇编级别上对加密实现进行了基于代码的高级安全证明,从而产生了高效的、可部署的代码。具体地说,我们使用F*,这是一种用于编程、元编程和高层次证明的依赖类型语言,而当需要提高性能时,我们依赖于F*中嵌入的低级dsl来编程低级组件,有时还需要侧通道阻力。为了组合这些片段,我们将所有的代码编译为类似于源代码的C语言和汇编语言,适合于部署和与现有代码库集成,并由独立的安全专家进行审计。到目前为止,我们的主要成果包括:(1)Low*的设计,它是F*的一个子集,专为类似C的命令式编程而设计,但具有高级验证支持,以及KreMLin,一个将Low*程序提取为C的编译器;(2) Low*中TLS-1.3记录层的实现,并证明其具体的加密安全性;(3)经过验证的汇编语言的新DSL Vale和几个经过优化的加密原语被证明功能正确且抗侧信道。在早期部署中,我们所有经过验证的软件都集成并部署在libcurl中,libcurl是一个广泛使用的网络协议库。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 去求助
来源期刊
自引率
0.00%
发文量
0
期刊最新文献
From Theory to Systems: A Grounded Approach to Programming Language Education Linking Types for Multi-Language Software: Have Your Cake and Eat It Too AP: Artificial Programming Fission: Secure Dynamic Code-Splitting for JavaScript Migratory Typing: Ten Years Later
×
引用
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