Skip to main navigation Skip to search Skip to main content

Guided, Deep Testing of X.509 Certificate Validation via Coverage Transfer Graphs

  • Shanghai Jiao Tong University
  • The University of Chicago
  • Swiss Federal Institute of Technology Zurich

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

Abstract

SSL and TLS are two secure protocols for creating secure connections over the Internet. X.509 certificate validation is important for security and needs to be performed before an SSL/TLS connection is established. However, state-of-the-art testing techniques, such as frankencert and mucert, have revealed, through randomly mutating Internet accessible certificates, that there exist unexpected, sometimes critical, validation differences among different SSL/TLS implementations. Despite these strong efforts, certificate validation is still not thoroughly tested and more effective techniques are needed as this work shows.To this end, this paper introduces transcert, a novel approach for effectively guiding fuzzing to perform deep testing of X.509 certificate validation. The goal of transcert is to generate certificates that trigger diverse executions; it achieves this goal by introducing the concept of a coverage transfer graph to efficiently, precisely abstract program executions. In particular, it records the execution of how a given certificate is validated by a reference SSL/TLS implementation. It then constructs a coverage transfer graph to model the coverage transfer from a test certificate (seed) to its mutated certificates (mutants), and explores the coverage transfer graph by iteratively sampling and mutating certificates.We have implemented transcert and evaluated it against frankencert and mucert on four state-of-the-art SSL/TLS implementations. The evaluation results clearly show the strengths of transcert-during 10,000 iterations, transcert has revealed 3,469 validation differences, 8× as many as those revealed by frankencert and mucert. We have identified 11 root causes of validation differences, all of which have been confirmed and five have never been reported previously. We also found that the primary goal of certificate chain validation is stated ambiguously in the widely-adopted PKI standard RFC 5280.

Original languageEnglish
Title of host publicationProceedings - 2020 IEEE International Conference on Software Maintenance and Evolution, ICSME 2020
PublisherInstitute of Electrical and Electronics Engineers Inc.
Pages243-254
Number of pages12
ISBN (Electronic)9781728156194
DOIs
StatePublished - Sep 2020
Externally publishedYes
Event36th IEEE International Conference on Software Maintenance and Evolution, ICSME 2020 - Virtual, Adelaide, Australia
Duration: 27 Sep 20203 Oct 2020

Publication series

NameProceedings - 2020 IEEE International Conference on Software Maintenance and Evolution, ICSME 2020

Conference

Conference36th IEEE International Conference on Software Maintenance and Evolution, ICSME 2020
Country/TerritoryAustralia
CityVirtual, Adelaide
Period27/09/203/10/20

Keywords

  • X.509 certificate validation
  • fuzz testing
  • transfer coverage graph

Fingerprint

Dive into the research topics of 'Guided, Deep Testing of X.509 Certificate Validation via Coverage Transfer Graphs'. Together they form a unique fingerprint.

Cite this