PKCS#11
Eine Standard-API namens Cryptoki, über die Software ein HSM oder eine Smartcard Kryptografie ausführen lassen kann, ohne dass der Schlüssel je die Hardware verlässt.
PKCS#11 stammt von den Public-Key Cryptography Standards von RSA Security ab und wird inzwischen von OASIS gepflegt. Die Schnittstelle ist eine C-Bibliothek, über die die Anwendung ein Modul bittet zu signieren, zu verschlüsseln oder einen Schlüssel zu verpacken. Der Schlüssel selbst ist ein Handle, das das Modul selten verlässt – und genau darum geht es bei einem Hardware-Sicherheitsmodul überhaupt.
Der Standard ist alt und voller Eigenheiten. Zwei Hersteller können dasselbe Flag unterschiedlich auslegen, und jedes HSM hat seine eigenen Abweichungen. Ein großer Teil der praktischen Arbeit mit PKCS#11 besteht darin, die Herstellerdokumentation zu lesen, um herauszufinden, was bei einem Funktionsaufruf wirklich passiert – eine Fertigkeit für sich.