Type-Based analysis of PKCS#11 key management

  • Authors:
  • Matteo Centenaro;Riccardo Focardi;Flaminia L. Luccio

  • Affiliations:
  • DAIS, Università Ca' Foscari Venezia, Italy;DAIS, Università Ca' Foscari Venezia, Italy;DAIS, Università Ca' Foscari Venezia, Italy

  • Venue:
  • POST'12 Proceedings of the First international conference on Principles of Security and Trust
  • Year:
  • 2012

Quantified Score

Hi-index 0.00

Visualization

Abstract

PKCS#11, is a security API for cryptographic tokens. It is known to be vulnerable to attacks which can directly extract, as cleartext, the value of sensitive keys. In particular, the API does not impose any limitation on the different roles a key can assume, and it permits to perform conflicting operations such as asking the token to wrap a key with another one and then to decrypt it. Fixes proposed in the literature, or implemented in real devices, impose policies restricting key roles and token functionalities. In this paper we define a simple imperative programming language, suitable to code PKCS#11 symmetric key management, and we develop a type-based analysis to prove that the secrecy of sensitive keys is preserved under a certain policy. We formally analyse existing fixes for PKCS#11 and we propose a new one, which is type-checkable and prevents conflicting roles by deriving different keys for different roles.