TY - GEN
T1 - Towards secure integration of cryptographic software
AU - Arzt, Steven
AU - Nadi, Sarah
AU - Ali, Karim
AU - Bodden, Eric
AU - Erdweg, Sebastian
AU - Mezini, Mira
N1 - Publisher Copyright:
© 2015 ACM.
PY - 2015/10/21
Y1 - 2015/10/21
N2 - While cryptography is now readily available to everyone and can, provably, protect private information from attackers, we still frequently hear about major data leakages, many of which are due to improper use of cryptographic mechanisms. The problem is that many application developers are not cryptographic experts. Even though high-quality cryptographic APIs are widely available, programmers often select the wrong algorithms or misuse APIs due to a lack of understanding. Such issues arise with both simple operations such as encryption as well as with complex secure communication protocols such as SSL. In this paper, we provide a long-term solution that helps application developers integrate cryptographic components correctly and securely by bridging the gap between cryptographers and application developers. Our solution consists of a software product line (with an underlying feature model) that automatically identifies the correct cryptographic algorithms to use, based on the developer's answers to high-level questions in non-expert terminology. Each feature (i.e., cryptographic algorithm) maps into corresponding Java code and a usage protocol describing API restrictions. By composing the user's selected features, we automatically synthesize a secure code blueprint and a usage protocol that corresponds to the selected usage scenario. Since the developer may change the application code over time, we use the usage protocols to statically analyze the program and ensure that the correct use of the API is not violated over time.
AB - While cryptography is now readily available to everyone and can, provably, protect private information from attackers, we still frequently hear about major data leakages, many of which are due to improper use of cryptographic mechanisms. The problem is that many application developers are not cryptographic experts. Even though high-quality cryptographic APIs are widely available, programmers often select the wrong algorithms or misuse APIs due to a lack of understanding. Such issues arise with both simple operations such as encryption as well as with complex secure communication protocols such as SSL. In this paper, we provide a long-term solution that helps application developers integrate cryptographic components correctly and securely by bridging the gap between cryptographers and application developers. Our solution consists of a software product line (with an underlying feature model) that automatically identifies the correct cryptographic algorithms to use, based on the developer's answers to high-level questions in non-expert terminology. Each feature (i.e., cryptographic algorithm) maps into corresponding Java code and a usage protocol describing API restrictions. By composing the user's selected features, we automatically synthesize a secure code blueprint and a usage protocol that corresponds to the selected usage scenario. Since the developer may change the application code over time, we use the usage protocols to statically analyze the program and ensure that the correct use of the API is not violated over time.
KW - API protocols
KW - Cryptography
KW - Software product lines
KW - Typestate analysis
UR - http://www.scopus.com/inward/record.url?scp=84956684612&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=84956684612&partnerID=8YFLogxK
U2 - 10.1145/2814228.2814229
DO - 10.1145/2814228.2814229
M3 - Conference contribution
AN - SCOPUS:84956684612
T3 - Onward! 2015 - Proceedings of the 2015 ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software, Part of SPLASH 2015
SP - 1
EP - 13
BT - Onward! 2015 - Proceedings of the 2015 ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software, Part of SPLASH 2015
A2 - Steele, Guy L.
A2 - Murphy, Gail C.
PB - Association for Computing Machinery, Inc
T2 - ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software, Onward! 2015 - Part of SPLASH 2015
Y2 - 25 October 2015 through 30 October 2015
ER -