14.07.2013 Views

Understanding Security APIs - CrySyS Lab

Understanding Security APIs - CrySyS Lab

Understanding Security APIs - CrySyS Lab

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

customise existing transaction sets. Whilst there are only a handful of HSM<br />

manufacturers, there are a multitude of product integrators. The HSM manufacturers<br />

licence out development kits themselves, and may do some of their<br />

own product integration for larger clients.<br />

• End User Corporations are those that buy an HSM solution for a standard<br />

application, or commission a product integrator to make a specialist solution.<br />

The employees of the company will likely interact with the API using some<br />

host software supplied with it in the case of PKI solutions, or written by an<br />

in-house programming team in the case of more specialist <strong>APIs</strong>. There may<br />

be only one or two people in the corporation with a technical understanding<br />

of the API, who will be responsible for maintaining the corporation’s host<br />

software. The role of the in-house programmers is usually not to replace the<br />

key management facilities – but to supply a further abstracted and simplified<br />

API to other programmers. These simplified <strong>APIs</strong> are usually not security<br />

critical and repackage only common commands (e.g. encryption, decryption,<br />

signing). Alternatively the in-house team might make facilities available to<br />

employees via a graphical interface. Note that the scope of API repackaging<br />

may only cover the more basic commands; HSM manufacturers tend to keep<br />

master key handling procedures – initialisation, cloning of modules, and recovery<br />

from backup – quite distinct from those used by the normal applications<br />

which interact with the HSM.<br />

• Employees<br />

Employees at corporations that use cryptographic equipment (excluding programmers<br />

themselves) may end up interacting with the <strong>Security</strong> API every<br />

day. For example, staff at a certification authority that produces certificates<br />

in correspondence with paper forms will be interacting with the <strong>Security</strong> API<br />

to make every signature, as well as for authentication of their identity. Some<br />

staff may even be aware of high-level rules enforced by the <strong>Security</strong> API, e.g.<br />

bank tellers will be aware that money cannot be created nor destroyed – just<br />

transferred between accounts. The interface presented to the staff members<br />

themselves can also be considered a <strong>Security</strong> API if it has particular visible<br />

policies controlling how the staff process sensitive information. Examples of<br />

policies at this level are the anonymisation of individuals in research databases,<br />

and account management functionality for bank tellers. This sort of high level<br />

API was once attacked when an unscrupulous teller discovered that address<br />

changes were not audited by the API. He first changed a customer’s address<br />

to his own, reissued a card and PIN, then changed the address back again.<br />

43

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!