|
Autor: Ivan Sobota
U svijetu kriptografije definirani su standardi radi jednostavnijeg povezivanja različitih implementacija kriptografskih sustava. Grupu standarda objavila je RSA Security pod nazivom PKCS (engl. Public Key Cryptography Standards). PKCS definira algoritme, formate zapisa ključeva, certifikata i poruka koje se razmjenjuju između kriptografskih okolina. PKCS trenutno poznaje 15 standarda koji se skraćeno zapisuju u obliku PKCS#1, PKCS#2, …, PKCS#15.
Povezivanje aplikacija s hardverskim tokenima i modulima također je definirano PKCS standardom, točnije PKCS#11: Cryptographic Token Interface Standard. Ovaj standard opisuje način komunikacije, tj. definira API (engl. Application Programming Interface) između aplikacija i kriptografskih tokena koje čine HSM-ovi (engl. Hardware Security Modules) ili pametne kartice (engl. Smart Cards).
PKCS#11 opisuje API na apstraktnoj razini za generički kriptografski token. Standard definira tipove kriptografskih objekata koji se najčešće upotrebljuju (RSA ključeve, DES/Triple DES ključeve, X.509 certifikate, …) te funkcije koje mogu upravljati navedenim objektima (generiranje ključeva, modifikacija i brisanje objekata, itd.).
Mnoga komercijalna CA (engl. Certification Authority) rješenja koriste PKCS#11 u izvornom obliku dok ih neki mogu koristiti uz dodatak (engl. extension), npr. Mozilla Firefox, OpenSSL, OpenVPN, itd. Obzirom da je PKCS#11 u osnovi izveden kao C API, tj. API definiran u programskom jeziku C, ostali mu se programski jezici moraju prilagoditi. Drugi programski jezici definirali su vlastiti API te je njihovim programerima pojednostavljeno upotrebljavanje mogućnosti PKCS#11 standarda bez poznavanja C programskog jezika.
Aplikacije, u Microsoft Windows svijetu, umjesto API-ja definirog PKCS#11 standardom, mogu koristiti MS CAPI (engl. Microsoft CryptoAPI). To je softver ovisan o platformi, egzistira samo u Windows okruženju, a u potpunosti je sukladan s PKCS#11 standardom. CryptoAPI pruža sučelje prema aplikacijama dok s druge strane funkcije API-ja koriste CSP (engl. Cryptographic Service Provider) za ostvarivanje kriptiranja, dekriptiranja i pohrane ključeva. Na Slici 1. prikazana je cijela osnovna CSP arhitektura.
Slika 1. CSP arhitektura

CSP-ovi su nezavisni moduli, a izvedeni su tako da ih može koristiti više aplikacija putem CryproAPI-ja. CSP je sličan klasičnom driveru jer ga različiti proizvođači mogu implementirati na različite načine. On se u praksi sastoji od DLL (engl. Dynamic-Link Library) datoteke i datoteke s potpisom.
Postoje dvije vrste CSP-ova. Jedni u sebi sadržavaju implementaciju svih svojih funkcija, tj. softverski realizirane kriptografske funkcije, dok drugi CSP-ovi imaju implementaciju u hardveru na pametnim karticama ili sigurnim koprocesorima. U ovom slučaju CSP putem DLL-a implementira samo prijelaznu razinu koja osigurava komunikaciju između operacijskog sustava i CSP implementacije na HSM-u.
SafeNet kao jedan od vodećih proizvođača kriptografskih tehnologija svoje enterprise proizvode bazira upravo na HSM modulima. Oni pružaju najsigurniji oblik pohrane kriptografskog ključa. SafeNet u svojoj ponudi ima više vrsta HSM modula i uređaja koji omogućuju različite implementacije prilagođene potrebama korisnika. Najčešće se HSM koristi u implementaciji PKI infrastrukture.
Sigurna implementacija PKI sustava pomoću Safenet HSM-a
Postojeća CA rješenja (npr. Entrust ili Microsoft CA), koja čine osnovu PKI sustava, izvedena su u obliku softvera bez hardverskih komponenata. Instalacija takovog CA softvera nema posebnih mehanizama za sigurnu implementaciju PKI sustava, već se privatni i javni ključevi spremaju u samom CA-u (na disku servera). Poznati proizvođači CA softvera i sami preporučuju korištenje HSM modula za pohranu kriptografskih ključeva. Na ovaj način povećava se sigurnost jer se ključevi spremaju u hardverski zaštićenu okolinu. Na slici 2. prikazana je interna arhitektura tipičnog HSM-a (model Luna SA).
Slika 2. Luna SA – interna arhitektura

SafeNet HSM za ovu primjenu je Luna SA koji na jednostavan način omogućuje integraciju s CA serverom odnosno aplikacijom. Prednost Lune SA je jednostavna implementacija LB-a (engl. Load Balancing) i HA-a (engl. High Availability) te ubrzavanje kriptografskih operacija. Osobine LB i HA osiguravaju i povećavaju dostupnost samih HSM-ova.
Implementacija PKI-ja s HSM-om zahtijeva dodatne predradnje. Prije same instalacije CA servera potrebno je podesiti sljedeće (npr. integracija s Microsoft CA-om):
- Inicijalizacija Lune SA.
- Kreiranje particije, tj.virtualnog HSM-a na Luni SA.
- Instaliranje MS CAPI (Microsoftova implementacija PKCS#11 protokola) klijenta na budućem CA serveru te povezivanje s particijom.
- Registriranje CSP-a na CA serveru.
- Instaliranje CA softvera.
U toku instalacije CA softvera potrebno je odabrati SafeNetov Luna CSP. SafeNetov CSP povezuje aplikaciju, tj. CA server s Lunom SA. Na taj način omogućeno je spremanje svih kriptografskih objekata na Lunu i izvršavanje svih kriptografskih funkcija. Nakon instalacije CA softvera završena je implementacija sigurnog PKI sustava.
|