Analysing PKCS#11 Key Management APIs with Unbounded Fresh Data

  • Sibylle Fröschle
  • Graham Steel
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 5511)


We extend Delaune, Kremer and Steel’s framework for analysis of PKCS#11-based APIs from bounded to unbounded fresh data. We achieve this by: formally defining the notion of an attribute policy; showing that a well-designed API should have a certain class of policy we call complete; showing that APIs with complete policies may be safely abstracted to APIs where the attributes are fixed; and proving that these static APIs can be analysed in a small bounded model such that security properties will hold for the unbounded case. We automate analysis in our framework using the SAT-based security protocol model checker SATMC. We show that a symmetric key management subset of the Eracom PKCS#11 API, used in their ProtectServer product, preserves the secrecy of sensitive keys for unbounded numbers of fresh keys and handles, i.e. pointers to keys. We also show that this API is not robust: if an encryption key is lost to the intruder, SATMC finds an attack whereby all the keys may be compromised.


Model Checker Object State Token State Ground Term Atom Substitution 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Armando, A., Compagna, L.: SAT-based model-checking for security protocols analysis. Int. J. Inf. Sec. 7(1), 3–32 (2008),; Currently developed under the AVANTSSAR project,
  2. 2.
    Clulow, J.: On the security of PKCS#11. In: Walter, C.D., Koç, Ç.K., Paar, C. (eds.) CHES 2003. LNCS, vol. 2779, pp. 411–425. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  3. 3.
    Cortier, V., Keighren, G., Steel, G.: Automatic analysis of the security of XOR-based key management schemes. In: Grumberg, O., Huth, M. (eds.) TACAS 2007. LNCS, vol. 4424, pp. 538–552. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  4. 4.
    Courant, J., Monin, J.-F.: Defending the bank with a proof assistant. In: Proceedings of the 6th International Workshop on Issues in the Theory of Security (WITS 2006), Vienna, Austria, March 2006, pp. 87–98 (2006)Google Scholar
  5. 5.
    Delaune, S., Kremer, S., Steel, G.: Formal analysis of PKCS#11. In: Proceedings of the 21st IEEE Computer Security Foundations Symposium (CSF 2008), Pittsburgh, PA, USA, pp. 331–344. IEEE Computer Society Press, Los Alamitos (2008)CrossRefGoogle Scholar
  6. 6.
    Fröschle, S.: The insecurity problem: Tackling unbounded data. In: Proceedings of the 20th IEEE Computer Security Foundations Symposium (CSF 2007), Venice, Italy, pp. 370–384. IEEE Computer Society Press, Los Alamitos (2007)CrossRefGoogle Scholar
  7. 7.
    Krhovják, J.: PKCS #11 based APIs. Talk given at the Analysis of Security APIs Workshop (ASA-1) (July 2007),
  8. 8.
    RSA Security Inc., v2.20. PKCS #11: Cryptographic Token Interface Standard (June 2004)Google Scholar
  9. 9.
    Tsalapati, E.: Analysis of PKCS#11 using AVISPA tools. Master’s thesis, University of Edinburgh (2007)Google Scholar
  10. 10.
    Youn, P.: The analysis of cryptographic APIs using the theorem prover Otter. Master’s thesis, Massachusetts Institute of Technology (2004)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2009

Authors and Affiliations

  • Sibylle Fröschle
    • 1
  • Graham Steel
    • 2
  1. 1.School of InformaticsUniversity of OldenburgGermany
  2. 2.LSVENS Cachan & CNRS & INRIAFrance

Personalised recommendations