EverParse: Verified Secure Zero-Copy Parsers for Authenticated Message Formats

EverParse: Verified Secure Zero-Copy Parsers for Authenticated Message Formats
复制标题

EverParse:经过验证的安全零拷贝解析器,用于经过身份验证的消息格式

DOI:
--
复制
发表时间:
2019
期刊:
USENIX Security Symposium
影响因子:
--
通讯作者:
Rajeev Srivastava
Rajeev Srivastava
中科院分区:
--
文献类型:
--
作者:
A. Shukla;Rajeev Srivastava

文献摘要

被引文献

相似文献

我们提出Everparse,这是一个从标记长度 - 值二进制消息格式的描述生成解析器和连续化器的框架。不可能(每个消息都有一个唯一的二进制表示)两个部分:LowParse,一个解析器组合的库及其正式属性,用F*和Quackyducky编写,这是一种来自RFC消息格式的特定于域的编译器,直到低级f* code。经过验证,我们不将输入语言的语义形式化,而是将Quackyducky放在我们可信的计算基础之外。自动验证我们针对此规范的实现。 ,293个数据类型)并将其集成到MITL中,我们通过实现比特币块和交易格式来说明其通用性。 ASN.1 DER有效载荷#1 RSA签名。在USENIX Security 2019上的演示文稿。
We present EverParse, a framework for generating parsers and serializers from tag-length-value binary message format descriptions. The resulting code is verified to be safe (no overflow, no use after free), correct (parsing is the inverse of serialization) and non-malleable (each message has a unique binary representation). These guarantees underpin the security of cryptographic message authentication, and they enable testing to focus on interoperability and performance issues. EverParse consists of two parts: LowParse, a library of parser combinators and their formal properties written in F*; and QuackyDucky, a compiler from a domain-specific language of RFC message formats down to low-level F* code that calls LowParse. While LowParse is fully verified, we do not formalize the semantics of the input language and keep QuackyDucky outside our trusted computing base. Instead, it also outputs a formal message specification, and F* automatically verifies our implementation against this specification. EverParse yields efficient zero-copy implementations, usable both in F* and in C. We evaluate it in practice by fully implementing the message formats of the Transport Layer Security standard and its extensions (TLS 1.0–1.3, 293 datatypes) and by integrating them into miTLS, an F* implementation of TLS. We illustrate its generality by implementing the Bitcoin block and transaction formats, and the ASN.1 DER payload of PKCS#1 RSA signatures. We integrate them into C applications and measure their runtime performance, showing significant improvements over prior handwritten libraries. EverParse is open-source and publicly available on GitHub. You can view Antoine Delignat-Lavaud’s presentation at USENIX Security 2019.