USENIX Security2024

"You have to read 50 different RFCs that contradict each other": An Interview Study on the Experiences of Implementing Cryptographic Standards

Nicolas Huaman, Jacques Suray, Jan H. Klemmer, Marcel Fourné, Sabrina Amft, Ivana Trummová, Yasemin Acar, Sascha Fahl

5 citations

Abstract

Implementing cryptographic standards is a critical process for the cryptographic ecosystem. Cryptographic standards aim to support developers and engineers in implementing cryptographic primitives and protocols. However, past security incidents suggest that implementing cryptographic standards can be challenging and might jeopardize software and hardware security. We need to understand and mitigate the pain points of those implementing cryptographic standards to support them better. To shed light on the challenges and obstacles of implementing cryptographic standards, we conducted 20 semistructured interviews with experienced cryptographers and cryptographic software engineers. We identify common practices when implementing standards, including the criticality of reference and third-party implementations, test vectors to verify implementations, and the open standard community as central support for questions and reviews of implementations. Based on our findings, we recommend transparent standardization processes, strong (ideally formal) verification, improved support for comparing implementations, and covering updates and error handling in the standardization process. Previous research on cryptographic standards focused on vulnerabilities in standards or faulty implementations [74, 12, 15, 61, 24] , but did not consider the implementation process itself. We present and discuss in-depth insights from 20 semi-structured interviews with experienced implementers of cryptographic standards. We illustrate the challenges they encounter from the perspective of new and veteran developers in the cryptographic community and from an industry, academic, and hobbyist view. We hope our findings can contribute to easier-to-implement future cryptographic standards. Research Questions. In this work, we address the following research questions: RQ1: Which are developers' practices when implementing cryptographic standards? Implementing cryptographic standards is essential to deploy cryptography from research into products. We are interested in better understanding developers' implementation practices and requirements for cryptographic standards. RQ2: What are the challenges of implementing cryptographic standards? Cryptographic standards are complex and require a high level of expertise to understand and follow. We aim to understand the challenges of writing cryptographic software following standards. RQ3: How can future cryptographic standards be improved to better support implementations? The correct and secure implementation of cryptographic standards is crucial for overall software security. We aim to understand better how future cryptographic standards can be improved to support cryptographic software developers and implementations.