USB token v prostředí CESNET CA

Technická zpráva CESNETu číslo 34/2005
k dispozici též ve formátech PDF, PostScript a XML.

Pavel Jindra
1. prosince 2005

1   Úvod

Cílem této zprávy je najít vhodný USB token pro uložení autentizačních údajů a certifikátů pro administrátora registrační autority Cesnet CA, dále pak zmapovat a navrhnout vhodné hardwarové zařízení jako úložiště osobních certifikátů běžných uživatelů služeb Cesnet CA. USB token je osobní elektronické zařízení, které slouží jako bezpečné úložiště privátních klíčů a certifikátů. Rozšiřováním působnosti certifikační autority je nutné zajistit velmi bezpečné pracoviště registrační autority. Stejně tak je vhodné mít možnost technickými prostředky zajistit podmínky neodmítnutelnosti a autenticity při využívání infrastruktury PKI. Jako velmi vhodný a moderní prostředek k zajištění této funkčnosti se jeví USB token.

2   Funkce a rozhraní USB tokenu

Jádrem každého tokenu je inteligentní kryptografický čip, většinou s vlastím operačním systémem. Operační systém zajišťuje komunikaci s nadřazeným systémem, autentizaci a volání jednotlivých kryptografických operací.

Mezi základní funkce kryptografického čipu patří:

Generováním privátního klíče přímo na tokenu je zajištěno, že nemůže existovat žádná další kopie klíče. Tímto pak token přináší faktickou a vynutitelnou podmínku neodmítnutelnosti použití privátního klíče. Navíc každé použití klíče vyžaduje autentizaci uživatele PINem. Tímto je osobní vlastnictví (privátní klíč) chráněno dvou-faktorovou autentizací, vlastnictvím USB tokenu a znalostí PIN.

2.1   Rozhraní pro použití v aplikacích

Součástí každého typu USB tokenu jsou i příslušné ovladače a sada knihoven pro vytváření příslušného rozhraní pro aplikace. Souhrnně se všechny vrstvy pracující mezi tokenem a aplikací nazývají middleware. Bez ohledu z jakých vrstev může být middleware složen (PKCS#15, PKCS#1) na nejvyšší úrovni se používají následující rozhraní pro aplikace:

PKCS#11
Nejpoužívanější rozhraní nezávislé na systému. Využívají jej především nativní utility karty, aplikace z rodiny Mozilla, Entrust a další. Toto rozhraní je též používánu v prostředí Linuxu
MS CAPI
Microsoft crypto API. Token je registrován jako další CSP (crypto service provider). Zpřístupňuje operace tokenu v nativních Windows aplikacích jako např: IExplorer, MS Outlook, MS Office, OpenVPN for Win.
Java API
Zpřístupňuje operace tokenu přímo pro JAVA prostředí. Většinou je JRE (JAVA runtime environment) schopno použít volání systému a zprostředkovat přístup k certifikátům prostřednictvím MS CAPI.

Pro každý typ tokenu výrobce dodává příslušné knihovny. Přímo v knihovnách je dané rozložení jednotlivých datových struktur na kartě (tzv. schema karty). Proto je nutné použít pro daný typ tokenu příslušnou knihovnu.

3   Požadavky na funkčnost USB tokenu

Při použití tokenu je nutné brát v úvahu pro které aplikace bude token používán. Každá z aplikací klade na token a jeho middleware odlišné nároky. V prostředí CESNET CA je počítáno pro následující použití tokenů.

  1. RA Entrust - Řešení CA od fy Entrust používá proprietární úložiště certifikátů a privátních klíčů. Klíče jsou zde uloženy spolu s dalšími systémovými informacemi v tzv. Entrust profilu. Tento profil může být pomocí rozhraní PKCS#11 uložen na token. Vzhledem k velikosti Entrust profilu je vyžadováno dostatečné množství volné paměti tokenu a zároveň i příslušné kryptografické funkce
  2. Uživatelské použití - Jedná se o požití tokenu jako nosiče certifikátu s příslušným privátním klíčem pro použití při podpisu pošty, šifrování, autentizaci apod ... Hlavní aplikace využívající PKI jsou především poštovní programy a Internetové prohlížeče (Outlook, Thunderbird, IExplorer). Programy z dílny MS využívají jako rozhraní MS CAPI, certifikáty na tokenu jsou zpřístupněny pomocí dalšího CSP v CAPI. Produkty z rodiny Mozilla využívají standardní rozhraní PKCS#11 a zpřístupňují certifikáty tokenu přes úložiště certifikátu spolu s certifikáty uloženými na disku.

4   Token Ikey Rainbow 2032

Jedná se o HW token z produkce fy SafeNet a middleware od Datakey. Teto token nese označení Entrust Ready, pro požití v produktech fy Entrust. Pro své vlastnosti a podporu ze strany výrobce je vhodným kandidátem pro použití jako bezpečný nosič Entrust profilu. Zároveň má zařízení masivní konstrukci z tvrdého plastu vyhovující bezpečnostním standardům.

4.1   HW specifikace Ikey 2032

OS čipuSTARCOS 2.3
Paměť pro data32K
Max. délka klíčůRSA 2048-bit
Algoritmy HWRSA, DSA, DH, DES/3DES
Algoritmy SWMD5, SHA-1, RC2, RC4
Generováni klíče na kartěANO
PIN4-20 znaků
PUKNemá
Implicitní hesloPASSWORD
Knihovna PKCS#11 v1 dkck132.dll
Knihovna PKCS#11 v2dkck201.dll

Tabulka 1: HW specifikace Ikey 2032

4.2   Instalace tokenu pro použití v ENTRUST RA

Pro použití USB tokenu Ikey 2032 v prostředí Windows je nutné mít ovladač, který je dodáván spolu s inicializačními utilitami a middleware knihovnami. Po spuštění instalátoru IKEY200ASMU20.EXE se dostanete až k výběru instalovaných součástí. Zaškrtnutím volby Entrust support se bude instalátor snažit najít konfigurační souboru Entrustu entrust.ini a vložit do něj direktivu ukazující na PKCS#11 knihovnu tokenu.

[Obrázek]

Obrázek 1: Instalace ovladače pro Ikey2032

Po kliknutí na další volby máte možnost si vybrat další součásti ovládacích utilit. Budete-li používat token pouze pro přihlašování do Entrust RA (SMA) zaškrtněte jen volby Pass Phrase Utility a CIP Utilities. Tím se nainstalují pomocné programy pro inicializaci a změnu PIN tokenu. V případě, že chcete token používat i jako úložiště osobního certifikátu nainstalujte i zbylé dvě volby Automatic Cert Registration Utility a Delete Certs on Removal. Těmito volbami se nainstaluje proces běžící na pozadí, který po vložení tokenu zaregistruje všechny certifikáty umístěné na tokenu do MS CAPI úložiště. Po vyjmutí tokenu opět certifikáty z úložiště smaže.

[Obrázek]

Obrázek 2: Instalace utilit middleware pro Ikey2032

[Obrázek]

Obrázek 3: Výběr utilit middleware pro Ikey2032

Další volby je vhodné ponechat implicitně nastavené. Po instalaci je nutné počítač restartovat, aby se spustily procesy na pozadí a byl zaregistrován CSP pro daný token.

Po instalaci ne nutné nastavit použití hw zařízení do konfiguračního souboru entrust.ini. Příslušný konfigurační soubor naleznete přímo v místě kam byl nainstalován SMA (Entrust Security Manager Administration). Ve většině případů /Program Files/Entrust/Security Manager Administration. V souboru entrust.ini nalezněte sekci [Entrust Settings] a nakonec vložte následující direktivy:

CryptokiV2LibraryNT=dkck201.dll
CryptokiV2Library95=dkck201.dll

Pokud již v souboru existují nastavení Cryptoki tak je smažte, nebo zakomentujte křížkem.

Dále je nutné mít nastaveno v sekci [FIPS Mode] položku:

FIPSMode=0

UPOZORNĚNÍ: Jsou-li v souboru entrust.ini nastaveny knihovny jak pro CryptokiLibraryNT tak i pro CryptokiV2LibraryNT systém použije knihovny verze 1, což může vést k chybné funkci, nebo nekompatibilitě uloženi Entrust profilu.

4.3   Použití tokenu v Entrust RA (SMA)

4.3.1   Generování Entrust profilu na tokenu

Před generováním profilu na token je nutné token inicializovat pomocí CIP Utilities. Po spuštění CIP Utitlities a vložení tokenu se v menu pod pravým tlačítkem myší zvolí volba Inicialize Token. Běžná inicializace trvá cca 10s, pak je nutné změnit implicitní heslo volbou Change Passphrase. Po inicializaci je heslo nastaveno na hodnotu PASSWORD. Každou inicializací je smazán celý obsah tokenu.

Pro generování Entrust profilu na tokenu je výhodné použít Entrust Desktop. Nastavení Entrust Desktopu je shodné jako nastavení Entrust RA. Jen nutné najít soubor entrust.ini a přidat do něj direktivy CryptokiV2Library odkazující na příslušnou PKCS#11 knihovnu. Jediný rozdíl oproti předchozímu je v umístění konfiguračního souboruentrust.ini v cestě /windows/.

Registrační kódy vydané a bezpečně předané budoucímu administrátorovi se zadají do příslušného formuláře po kliknutí na volbu

Create Entrust Profile

. Pokud je token v tuto chvíli připojený je implicitně zaškrtnuta volba uložení profilu na hw token a pod tím výběr slotu s příslušným tokenem. Zvláštní pozornost je nutné věnovat adresáři pro uložení profilu. Jedná se o adresář kam jsou ukládány soubory, které se nevejdou přímo na hw token, ale jsou nutné pro správný chod aplikací (politiky, CRL, atp.). Umístění této složky je zapsáno na token a pokaždé když se znova použije token (např. na jiném stroji) jsou do této složky potřebné soubory opět ukládány. Musí být zaručeno, že příslušná složka bude na všech strojích RA existovat a bude do ní povolen zápis. Po vhodném zvolení názvu profilu jsou na tokenu generovány páry klíčů. Tato operace může trvat až 2 minuty, po jejím dokončení již je na tokenu připraven k použití příslušný Entrust profil.

Generování Entrust profilu umožňuje i aplikace Entrust RA (SMA).Podařilo-li se vše nainstalovat a Entrust SMA při spouštění ve spodní části přihlašovací obrazovky v poli Token Library vypisuje název použité knihovny PKCS#11, se systém po zvolení volby Create Profile zeptá zda má profil generovat na tokenu. Po zavedení jména a PIN by se měl token začít generovat. V současné verzi SMA generování však vždy skončilo s chybou "(-77) Problem reported with crypto hardware"

UPOZORNĚNÍ: Na tokenu může být pouze jeden Entrust profil.

4.3.2   Přihlášení do Entrust RA pomocí tokenu

Je-li knihovna hw tokenu správně nakonfigurována v entrust.ini bude použití příslušné knihovny oznámeno ve spodní části přihlašovacího okna.

[Obrázek]

Obrázek 4: Entrust SMA informace o použité knihovně hw zařízení

Pokud je vložen token při spouštění SMA a token obsahuje nějaký Entrust profil je nabídnut pro přihlášení. V položce User profile je uvedeno číslo slotu a název uloženého tokenu. Po zadání PIN je příslušný administrátor přihlášen. Pokud je během přihlášení token vyjmut přestane SMA fungovat.

UPOZORNĚNÍ: V entrust.ini je možné použít pouze jeden ty PKCS#11 knihovny. Není možné se přihlašovat jedním typem tokenu (např. Ikey2032) a chtít generovat profily na jiný typ (např. Ikey3000).

5   Token Ikey Rainbow 3000

I tento token je z produkce fy SafeNet, nicméně middleware je dodáván firmou A.E.T. Software. Jedná se o další generaci tokenů, která sebou přináší četná vylepšení, ale i několik omezení. Vnější pouzdro je schodné s verzi 2032.

5.1   HW specifikace Ikey 3000

OS čipuSTARCOS 2.3
Paměť pro data20K
Max. délka klíčůRSA 1024-bit
Algoritmy HWRSA, MD5
Algoritmy SWMD2, SHA-1, MD160, RC2, RC4, DES/3DES
Generováni klíče na kartěANO
PIN1-8 znaků
PUK1-8 znaků
Implicitní heslo(Nemá)
Knihovna PKCS#11 v1 aetpkss1.dll
Knihovna PKCS#11 v2 aetpkss1.dll

Tabulka 2: HW specifikace Ikey 3000

Oproti verzi 2032 má tento token již implementovanou podporu dvoji autentizace PIN/PUK. Pokud je zadán třikrát chybně PIN, lze pomocí kódu PUK nastavit nový PIN bez nutnosti smazat celý token.

5.2   Instalace tokenu pro použití v prostředí WINDOWS

Ovladače USB tokenu Ikey 2032 v prostředí Windows jsou rozděleny na dva základní sw balíčky. Prvním z nich je driver, který kromě vlastního USB driveru nainstaluje i virtuální PC/SC čtečku napojenou na USB. Po instalaci se pak token tváří stejně jako SMARTCARD zasunutá do USB čtečky. Druhým potřebným balíčkem je vlastní middleware s knihovnou PKCS#11 a ovládacím sw pro inicializaci a správu zařízení.

Instalace driveru se provede bez potíží instalátorem iKeyDrv.exe. Při instalaci nezasunujte token do slotu dříve, něž jste o to požádáni.

Předpokladem je využití tohoto typu tokenu v širokém spektru aplikací, to klade na middleware a obslužné programy vyšší požadavky. Middleware pro tento účel kromě nutných knihoven PKCS#11 a CSP i uživatelsky příjemný management tokenu pomocí kterého je možné token inicializovat, měnit PIN, či importovat certifikáty. Dále jsou k middleware dodávány utility, které při vložení či vyjmutí tokenu registrují a odregistrovávají certifikáty do MS CAPI. Posledním významným pomocníkem je instalační skript pro instalaci PKCS#11 knihovny do prohlížeče Netscape (Mozilla). Pokud bude token používat pro uchovávání osobních certifikátů doporučuji nainstalovat všechny volitelné položky (případně zvolit úplnou instalaci). V případě pouze uživatelských stanic je vhodné neinstalovat management tokenu, aby si token nemohli uživatelé omylem inicializovat.

[Obrázek]

Obrázek 5: Instalace utilit middleware pro Ikey3000

5.2.1   Manuální instalace driveru do produktů Mozilla

Všechny aplikace z rodiny Mozilla požívají pro správu certifikátů PSM manager (Personal Security Manager), který umožňuje rozšiřovat úložiště o další hw pomocí knihovny PKCS#11. Mírným nedostatkem je, že každý produkt (i každý profil) používá vlastní úložiště a nastavení, proto je nutné instalovat driver do každého produktu zvlášť.

Vlastní instalace se provede následujícím způsobem:

5.3   Používání tokenů

Pokud je token řádně nainstalován je možné jej použít stejně jako standardní SW úložiště. Je možné na token importovat certifikáty jednat přes management tokenu, ale také pomocí manageru certifikátů v prohlížeči (Iexplorer, Mozilla). Pokud chceme generovat klíče přímo na tokenu je nejjednodušší cesta využít přímo mechanizmus prohlížeče. Webová aplikace (např. Entrust Web Enrollment server) po vyřízení autorizace, požádá prohlížeč o vygenerování klíčového páru. V prohlížeči Internet Explorer jsou detekovány všechny použitelné knihovny CSP. Pokud chcete generovat klíče na kartě vyberte CSP příslušející k tokenu. V prohlížeči Mozilla je situace podobná, ale aplikace bohužel neumožňuje vybrat zařízení.

6   Hardwarový token Aladin eTokenPro

Tento token vyrábí firma Aladin a dodává jej včetně vlastního middleware. Oproti předchozím zařízením je poháněn operačním systémem CARDOS.

6.1   HW specifikace Aladin eTokenPro

OS čipuCardOS 4.2
Paměť pro data32K, 64K
Max. délka klíčůRSA 2048-bit u 64K modelu
Algoritmy HWRSA, DES/3DES, SHA-1
Generováni klíče na kartěANO
PIN1-20 znaků
PUKNemá
Implicitní hesloPASSWORD
Knihovna PKCS#11 v1 etpksc11.dll
Knihovna PKCS#11 v2etpkcs11.dll

Tabulka 3: HW specifikace Aladin eTokenPro

6.2   Instalace tokenu do prostředí Windows

Instalace pro plnou podporu tokenu eToken Pro je rozdělena na dvě části. První část umístěná v souboru rte_3_60.exe obsahuje vše potřebné pro správnou funkci tokenu. Nainstaluje jednak virtuální čtečku, USB driver tokenu, ale i PKCS#11 a CSP knihovny, včetně služby na pozadí, která zajistí registraci a od-registraci certifikátů do MS CAPI. Zároveň obsahuje i malou utilitu pro import certifikátů na token, změnu hesla, nebo nastavení chování příslušné služby na pozadí.

Druhým již volitelným krokem je instalace obslužných utilit. Součástí obslužných utilit jsou následující utility:

Při testování byla k dispozici patrně nesprávná verze utilit a nefungovala utilita pro formátování tokenu (zařízení nenalezeno). Je nutné podotknout, že jednotlivé verze eToken Pro (16K, 32K, 64K) se od sebe liší nejen velikostí paměti, proto jsou ovladače a utility vzájemně nekompatibilní

6.3   Použití tokenu v produktech Entrust

Instalace podpory produktu je obdobná jako u modelu Ikey2032, je nutné vložit do souboru direktivu označující použití PKCS#11 knihovny. Pro eToken Pro jsou to následující řádky:

CryptokiV2LibraryNT=etpkcs11.dll
CryptokiV2Library95=etpkcs11.dll

Dále je nutné mít nastaveno v sekci [FIPS Mode] položku:

FIPSMode=0

Použití je pak naprosto stejné jako u tokenu Ikey 2032. Při testování modelu eToken Pro jsem narazil na chybu při generování nového páru klíčů pro Entrust profil. Během procesu rekeyingu dojde k chybě "Out of memory." a proces skončí. K odstranění závady je nutné vždy generovat nový profil.

7   Závěr

Všechny testované tokeny byly funkční a splňovali výrobcem dané specifikace, nicméně každý typ nese nějakou chybičku, nebo omezení a proto je nutné vždy zvážit účel použití.

Pro použití tokenu jako úložiště Entrust profilu pro autentizaci registrační autority Entrust doporučuji použít token Ikey 2032, protože nejlépe umí pracovat s formátem Entrust profilu. Umožňuje provést i rekeying profilu přímo na klíči a má dostatečnou paměť. Jeho nevýhodou je nemožnost uložení kořenových certifikátů a absence ovladačů pro Linux.

Pro bezpečné uložení osobních certifikátů běžných uživatelů PKI, doporučuji použít token Ikey3000. Jeho předností je především jednoduchá instalace a snadná obsluha, funkčnost pro všechny uživatelské aplikace včetně Linuxu. Slabinou tohoto modelu je pouze nemožnost uložení Entrust profilu. Je vhodné ještě upozornit na úspěšné používání tohoto typu tokenu v prostředí METAcentra a GRIDech.

Posledním testovaným zástupcem hw tokenů byl eToken Pro od fy Aladin. Jedná se o univerzální zařízení, podporované jak ve WIN tak i v Linuxu. Umožňuje uložit jak Entrust profil, tak i osobní certifikáty včetně kořenových certifikátů CA. Mezi jeho slabší stránky patří zpracování middleware a obslužných utilit, které leckdy přinášejí problémy s kompatibilitou jednotlivých typů. Navíc při uložení Entrust profilu na tokenu není možné provést rekeying, protože zařízení ohlásí nedostatek paměti.

Použití hardwarových tokenů jako prvku pro autentizaci a uložení privátních dat přináší významný skok v bezpečnosti a zajištění neodmítnutelnosti celé PKI infrastruktury. Na druhé straně to vyžaduje mít na každé pracovní stanici USB port a příslušné drivery. Pro každý typ tokenu je driver jiný, proto je nutné k výběru vhodného tokenu přistupovat citlivě s ohledem na požití na mnoha stanicích a snadnosti správy celé infrastruktury.

8   Slovníček pojmů, použité zkratky

Cesnet CA
Certifikační autorita provozovaná sdružením Cesnet. Vydává osobní i serverové certifikáty pro potřeby členů sdružení.
RA
Registration Authority- Registrační autorita jako součást PKI infrastruktury je místo kde dochází k vyřizování žádostí o certifikát, ověřovaní žadatele a vydání certifikátu.
PKI
Public Key Infrastructure - Infrastruktura veřejných klíčů tvořená technickými a administrativními opatřeními, realizuje pomocí CA mapování elektronické identity na fyzickou.
Entrust
Firma, dodávající software pro realizaci certifikační autority (Entrust CA) a správu certifikátů a uživatelů.
Entrust SMA
Security Manager Administration - Softwarová komponenta pro Entrust CA sloužící pro správu uživatelů a ovládání CA. Prakticky realizuje sw vybavení RA.
Entrust profil
Nativní formát pro uložení uživatelských dat, certifikátů a privátních klíčů používaný v produktech Entrust.
PKCS#11
Standardizované rozhraní pomocí kterého je realizováno kryptografické úložiště v software které jej podporují (Mozilla, Entrust)
MS CAPI
Microsoft Crypto API - Rozhraní pro správu certifikátů a volání kryptografických operací v operačních systémech Windows.
CSP
Cryptoservice Provider - Komponenta MS CAPI, napojuje konkrétní sw nebo hw kryptografické zařízení do MS CAPI.
PKCS#12
standardizovaný formát pro uložení (zálohování) osobních certifikátů včetně privátního klíče a celého certifikačního řetězce.
PC/SC
Personal Computer/Smart Card - Rozhraní pro standardizaci komunikace mezi čtečkou čipových karet a počítačem.

další weby:fond rozvojemetacentrumCzechLightpřenosyvideoservereduroameduID.cz