PKCS#11
Standardowe API, zwane Cryptoki, dzięki któremu oprogramowanie może zlecić HSM-owi lub karcie chipowej operacje kryptograficzne, a klucz nigdy nie opuszcza sprzętu.
PKCS#11 wywodzi się ze standardów Public-Key Cryptography Standards firmy RSA Security i od lat jest rozwijany przez OASIS. Interfejs to biblioteka w C, w której aplikacja prosi moduł o podpisanie, zaszyfrowanie lub opakowanie klucza. Sam klucz jest uchwytem, który rzadko opuszcza moduł, i właśnie po to w ogóle istnieje sprzętowy moduł bezpieczeństwa.
Standard jest stary i pełen dziwactw. Dwóch dostawców potrafi inaczej odczytać tę samą flagę, a każdy HSM ma własne odstępstwa. Spora część pracy z PKCS#11 polega na czytaniu dokumentacji producenta, by dowiedzieć się, co naprawdę dzieje się po wywołaniu funkcji, co samo w sobie jest osobną umiejętnością.