About this Whitepaper
Modern applications that use cryptography usually access that functionality via an application program interface (API) to a software or hardware cryptographic provider. Security-critical applications often make use of Hardware Security Modules (HSMs): special purpose computers that provide high-speed cryptographic services whilst keeping key material inside a tamper-sensitive enclosure. Together with smart cards or similar chip-based tokens, they form the backbone of many modern cryptographic applications in diverse sectors from banking to automotive.
In this white paper, we discuss attacks on systems using the PKCS#11 API. We consider what it means for an interface to be secure, and we discuss how to audit applications’ use of the API. There will be plenty of concrete examples of attacks. Finally, we explain the Cryptosense methodology for securing PKCS#11 using our automated analysis tools, which consists of testing a provider’s implementation of the spec for compliance, tracing application calls to the interface using the App Tracer, and then combining the results in Cryptosense Analyzer to optimize the configuration. Going forward, our Cryptosense Monitor tool can perform regular checks to make sure devices stay in the right configuration.