Synthesising Secure APIs
Synthesising Secure APIs. Véronique Cortier and Graham Steel. Rapport de recherche RR-6882, INRIA, 2009.
Download
Abstract
Security APIs are used to define the boundary between trusted and untrusted code. The security properties of existing API are not always clear. In this paper, we give a new generic API for managing symmetric keys on a trusted cryptographic device. We state and prove security properties for the API. In particular, our API offers a high level of security even when the host machine is controlled by an attacker. Our API is generic in the sense that it can implement a wide variety of (symmetric key) protocols. As a proof of concept, we give an algorithm for automatically instantiating the API commands for a given key management protocol. We demonstrate the algorithm on a set of key establishment protocols from the Clark-Jacob suite.
BibTeX
@techreport{CORTIER:2009:INRIA-00369395:1, hal_id = {inria-00369395}, title = {{Synthesising Secure APIs}}, author = {Cortier, V{\'e}ronique and Steel, Graham}, abstract = {{Security APIs are used to define the boundary between trusted and untrusted code. The security properties of existing API are not always clear. In this paper, we give a new generic API for managing symmetric keys on a trusted cryptographic device. We state and prove security properties for the API. In particular, our API offers a high level of security even when the host machine is controlled by an attacker. Our API is generic in the sense that it can implement a wide variety of (symmetric key) protocols. As a proof of concept, we give an algorithm for automatically instantiating the API commands for a given key management protocol. We demonstrate the algorithm on a set of key establishment protocols from the Clark-Jacob suite.}}, keywords = {Application Programming Interface, Hardware Security Module, Formal methods}, language = {Anglais}, affiliation = {CASSIS - INRIA Lorraine - LORIA / LIFC , Laboratoire Sp{\'e}cification et V{\'e}rification [Cachan] - LSV}, pages = {24}, type = {Rapport de recherche}, institution = {INRIA}, number = {RR-6882}, year = {2009}, }