Dear all, I'd like to share with you the results of my research (available on Arxiv: https://arxiv.org/abs/1812.04959 and published in the Journal of Computer Security) on the systematic parsing of X.509 digital certificates. X.509 is acknowledged to be described as a context sensitive language, and quite a nightmare to parse.
In my work, I devised a predicated grammar for the X.509 format amenable to automatic parser generation employing the ANTLR framework. Comparing the syntactic validation of my automatically generated parser against 7 widely used TLS libraries (OpenSSL, BoringSSL, GNU-TLS, Mozilla NSS, Bouncy Castle, Windows CryptoAPI and Apple Secure Transport) I found out that about 5% -- 10% of 11M certificates crawled from publicly exposed hosts are indeed syntactically incorrect but deemed semantically valid by the libraries. By exploiting one of these syntactic flaws, I was able to mount a practical impersonation attack against OpenSSL. We thought about sharing the draft of the publication on this ML to get some feedback from the langsec community about what we think is a clear statement of the effectiveness of the langsec approach in validating critical data. We welcome any comments and suggestions Best regards, Nicholas Mainardi
_______________________________________________ langsec-discuss mailing list langsec-discuss@mail.langsec.org https://mail.langsec.org/cgi-bin/mailman/listinfo/langsec-discuss