ASN1☆: Provably Correct Non-malleable Parsing for ASN.1 DER

被引:2
|
作者
Ni, Haobin [1 ]
Delignat-Lavaud, Antoine [2 ]
Fournet, Cedric [2 ]
Ramananandro, Tahina [2 ]
Swamy, Nikhil [2 ]
机构
[1] Cornell Univ, Ithaca, NY USA
[2] Microsoft Res, Cambridge, England
来源
PROCEEDINGS OF THE 12TH ACM SIGPLAN INTERNATIONAL CONFERENCE ON CERTIFIED PROGRAMS AND PROOFS, CPP 2023 | 2023年
关键词
Formal verification; Parsing; Domain-specific Language; ASN.1;
D O I
10.1145/3573105.3575684
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Syntax Notation One (ASN.1) is a language for structured data exchange between computers, standardized by both ITU-T and ISO/IEC since 1984. The Distinguished Encoding Rules (DER) specify its non-malleable binary format: for a given ASN.1 data type, every value has a distinct, unique binary representation. ASN.1 DER is used in many security-critical interfaces for telecommunications and networking, such as the X.509 public key infrastructure, where non-malleability is essential. However, due to the expressiveness and flexibility of the general-purpose ASN.1 language, correctly parsing ASN.1 DER data formats is still considered a serious security challenge in practice. We present ASN1(star), the first formalization of ASN.1 DER with a mechanized proof of non-malleability. Our development provides a shallow embedding of ASN.1 in the F-star proof assistant and formalizes its DER semantics within the EverParse parser generator framework. It guarantees that any ASN.1 data encoded using our DER semantics is non-malleable. It yields verified code that parses valid binary representations into values of the corresponding ASN.1 data type while rejecting invalid ones. We empirically confirm that our semantics models ASN.1 DER usage in practice by evaluating ASN1(star) parsers extracted to OCaml on both positive and negative test cases involving X.509 certificates and Certificate Revocation Lists (CRLs).
引用
收藏
页码:275 / 289
页数:15
相关论文
共 50 条