Jumping through hoops: Why do Java developers struggle with cryptography APIs?

Sarah Nadi, Stefan Kruger, Mira Mezini, Eric Bodden

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Abstract

To protect sensitive data processed by current applications, developers, whether security experts or not, have to rely on cryptography. While cryptography algorithms have become increasingly advanced, many data breaches occur because developers do not correctly use the corresponding APIs. To guide future research into practical solutions to this problem, we perform an empirical investigation into the obstacles developers face while using the Java cryptography APIs, the tasks they use the APIs for, and the kind of (tool) support they desire. We triangulate data from four separate studies that include the analysis of 100 StackOverflow posts, 100 GitHub repositories, and survey input from 48 developers. We find that while developers find it difficult to use certain cryptographic algorithms correctly, they feel surprisingly confident in selecting the right cryptography concepts (e.g., encryption vs. signatures). We also find that the APIs are generally perceived to be too low-level and that developers prefer more task-based solutions.

Original languageEnglish (US)
Title of host publicationProceedings - 2016 IEEE/ACM 38th IEEE International Conference on Software Engineering Companion, ICSE 2016
PublisherIEEE Computer Society
Pages935-946
Number of pages12
ISBN (Electronic)9781450339001, 9781450342056
DOIs
StatePublished - May 14 2016
Event2016 IEEE/ACM 38th IEEE International Conference on Software Engineering, ICSE 2016 - Austin, United States
Duration: May 14 2016May 22 2016

Publication series

NameProceedings - International Conference on Software Engineering
Volume14-22-May-2016
ISSN (Print)0270-5257

Conference

Conference2016 IEEE/ACM 38th IEEE International Conference on Software Engineering, ICSE 2016
Country/TerritoryUnited States
CityAustin
Period5/14/165/22/16

Keywords

  • API misuse
  • Cryptography
  • Empirical software engineering

ASJC Scopus subject areas

  • Software

Fingerprint

Dive into the research topics of 'Jumping through hoops: Why do Java developers struggle with cryptography APIs?'. Together they form a unique fingerprint.

Cite this