Cryptographic Key Management APIs
(Video runs from 01:07:28 to 02:10:59)
In practice, most developers use cryptography via an application program interface (API) either to a software library or a hardware device where keys are stored and all cryptographic operations take place. Designing such interfaces so that they offer flexible functionality but cannot be abused to reveal keys or secrets has proved to be extremely difficult, with a number of published vulnerabilities in widely-used crypto APIs appearing over the last decade.
This lecture will focus on the example of RSA PKCS#11, the most widely used interface for cryptographic devices, but will allow us to develop principles and concepts that apply to most crypto APIs. We will examine both logical flaws in key management and cryptographic flaws in implementations. We will also look at a tool, the Cryptosense Analyzer, which can reverse engineer the particular configuration of PKCS#11 in use on some device under test, construct a model of the device's functionality, and call a model checker to search for attacks.
Graham Steel Graham Steel holds a masters in mathematics from the University of Cambridge and a Ph.D. in informatics from the University of Edinburgh. He is currently a researcher at INRIA, the French national agency for computer science research, where he is part of the Prosecco project team based in central Paris.
Steel's main research interests are in formal analysis of information security and applied cryptography. His current work on cryptographic API verification involves using formal techniques to construct and analyse abstract models of cryptographic device interfaces. In addition to international conference and journal publications, his recent results have featured in Wired magazine and the New York Times.