TY - GEN
T1 - How usable are rust cryptography APIS?
AU - Mindermann, Kai
AU - Keck, Philipp
AU - Wagner, Stefan
N1 - Publisher Copyright:
© 2018 IEEE.
PY - 2018/8/2
Y1 - 2018/8/2
N2 - Context: Poor usability of cryptographic APIs is a severe source of vulnerabilities. Aim: We wanted to find out what kind of cryptographic libraries are present in Rust and how usable they are. Method: We explored Rust's cryptographic libraries through a systematic search, conducted an exploratory study on the major libraries and a controlled experiment on two of these libraries with 28 student participants. Results: Only half of the major libraries explicitly focus on usability and misuse resistance, which is reflected in their current APIs. We found that participants were more successful using rustcrypto which we considered less usable than ring before the experiment. Conclusion: We discuss API design insights and make recommendations for the design of crypto libraries in Rust regarding the detail and structure of the documentation, higher-level APIs as wrappers for the existing low-level libraries, and selected, good-quality example code to improve the emerging cryptographic libraries of Rust.
AB - Context: Poor usability of cryptographic APIs is a severe source of vulnerabilities. Aim: We wanted to find out what kind of cryptographic libraries are present in Rust and how usable they are. Method: We explored Rust's cryptographic libraries through a systematic search, conducted an exploratory study on the major libraries and a controlled experiment on two of these libraries with 28 student participants. Results: Only half of the major libraries explicitly focus on usability and misuse resistance, which is reflected in their current APIs. We found that participants were more successful using rustcrypto which we considered less usable than ring before the experiment. Conclusion: We discuss API design insights and make recommendations for the design of crypto libraries in Rust regarding the detail and structure of the documentation, higher-level APIs as wrappers for the existing low-level libraries, and selected, good-quality example code to improve the emerging cryptographic libraries of Rust.
UR - http://www.scopus.com/inward/record.url?scp=85052295129&partnerID=8YFLogxK
U2 - 10.1109/QRS.2018.00028
DO - 10.1109/QRS.2018.00028
M3 - Conference contribution
AN - SCOPUS:85052295129
SN - 9781538677575
T3 - Proceedings - 2018 IEEE 18th International Conference on Software Quality, Reliability, and Security, QRS 2018
SP - 143
EP - 154
BT - Proceedings - 2018 IEEE 18th International Conference on Software Quality, Reliability, and Security, QRS 2018
PB - Institute of Electrical and Electronics Engineers Inc.
T2 - 18th IEEE International Conference on Software Quality, Reliability, and Security, QRS 2018
Y2 - 16 July 2018 through 20 July 2018
ER -