CryptoExplorer: An Interactive Web Platform Supporting Secure Use of Cryptography APIs
Title | CryptoExplorer: An Interactive Web Platform Supporting Secure Use of Cryptography APIs |
Publication Type | Conference Paper |
Year of Publication | 2020 |
Authors | Hazhirpasand, M., Ghafari, M., Nierstrasz, O. |
Conference Name | 2020 IEEE 27th International Conference on Software Analysis, Evolution and Reengineering (SANER) |
Date Published | Feb. 2020 |
Publisher | IEEE |
ISBN Number | 978-1-7281-5143-4 |
Keywords | API, APIs, application program interfaces, application programming interface, code analysis, compositionality, CryptoExplorer, cryptographic APIs, cryptography, data mining, interactive systems, interactive Web platform, Internet, Java, Java Cryptography Architecture, online information sources, pubcrawl, resilience, Resiliency, security, software engineering |
Abstract | Research has shown that cryptographic APIs are hard to use. Consequently, developers resort to using code examples available in online information sources that are often not secure. We have developed a web platform, named CryptoExplorer, stocked with numerous real-world secure and insecure examples that developers can explore to learn how to use cryptographic APIs properly. This platform currently provides 3 263 secure uses, and 5 897 insecure uses of Java Cryptography Architecture mined from 2 324 Java projects on GitHub. A preliminary study shows that CryptoExplorer provides developers with secure crypto API use examples instantly, developers can save time compared to searching on the internet for such examples, and they learn to avoid using certain algorithms in APIs by studying misused API examples. We have a pipeline to regularly mine more projects, and, on request, we offer our dataset to researchers. |
URL | https://ieeexplore.ieee.org/document/9054799 |
DOI | 10.1109/SANER48275.2020.9054799 |
Citation Key | hazhirpasand_cryptoexplorer_2020 |
- interactive systems
- software engineering
- security
- Resiliency
- resilience
- pubcrawl
- online information sources
- Java Cryptography Architecture
- Java
- internet
- interactive Web platform
- API
- Data mining
- Cryptography
- cryptographic APIs
- CryptoExplorer
- Compositionality
- code analysis
- application programming interface
- application program interfaces
- APIs