Gemplus Twin + Gemsafe PKI Card + Ubuntu/Debian

Co budete potřebovat

Instalujte komponenty příkazem "apt-get install":

apt-get install pcscd opensc openssl libopensc-openssl libopensc1 libpcsc-perl libpcsclite1 pcsc-tools

Ačkoli OpenCT vypadá, že funguje, v podstatě jsem držel tlačítka, dokud se nerozběhl a nyní nemám OpenCT instalováno; plánujete-li mít v chodu OpenCT a PCSC démona současně, budou spolu soupeřit a skončí vzájemným zablokováním, takže si před instalací a použitím obou zároveň dobře rozmyslete, co děláte!

Inicializace Vaší karty

Nejspíš bude nutné zformátovat Vaši kartu, neboť mezi firmami vyrábějícími čtečky je mnoho nekonzistencí, karty a drivery pro různé operační systémy a jak jsem se dočetl, čistý stůl je možná ta nejlepší cesta, kterou se dát. Následující příkaz zformátuje a inicializuje kartu.

pkcs15-init -EC -p pkcs15+onepin -T

Přitom budete muset zadat hlavní PIN, alespoň čtyři číslice - doporučuji delší.

Potom budete potřebovat vygenerovat privátní klíč; to je velký kámen úrazu, který není moc dobře popsán ve většině dokumentů na síti, a ani OpenSSL, ani Firefox atd. nepřimějí úspěšně kartu vygenerovat privátní klíč!

pkcs15-init -G rsa/1024 --id 45 --auth-id 01 --key-usage digitalSignature,nonRepudiation,keyEncipherment,dataEncipherment,keyAgreement,keyCertSign

Uvedený příkaz vygeneruje 1024-bitový privátní RSA klíč; některé karty podporují i delší klíče.

Kontrola postupu

Teď byste měli mít nastaven PIN své karty a také privátní klíč, což můžete zkontrolovat následujícími příkazy.

pkcs15-tool --list-pins
pkcs15-tool --list-keys

Měli byste vidět výpisy podobné těmto:

PIN [User PIN]
        Com. Flags: 0x3
        Auth ID   : 01
        Flags     : [0x32], local, initialized, needs-padding
        Length    : min_len:4, max_len:8, stored_len:8
        Pad char  : 0x00
        Reference : 10
        Type      : -1
        Path      : 3F005015
        Tries left: -1

a

Private RSA Key [Private Key]
        Com. Flags  : 3
        Usage       : [0x32E], decrypt, sign, signRecover, unwrap, derive, nonRepudiation
        Access Flags: [0x1D], sensitive, alwaysSensitive, neverExtract, local
        ModLength   : 1024
        Key ref     : 0
        Native      : yes
        Path        : 3F0050153055
        Auth ID     : 01
        ID          : 45

Legenda:

Generování žádosti o podpis certifikátu (CSR)

Než budete se svou čtečkou cokoli dělat, potřebujete si vygenerovat CSR podat ji webu ke zpracování; našel jsem jen jedinou funkční metodu, a to openssl použitý interaktivně.

Musíte použít OpenSSL z jeho konzole/příkazového řádku, spusťte ho tedy bez argumentů:

openssl

Pak potřebujete zavést "stroj" OpenSC do OpenSSL, abyste přiměli kartu komunikovat s OpenSSL a vygenerovat CSR:

OpenSSL> engine dynamic -pre SO_PATH:/usr/lib/opensc/engine_opensc.so -pre ID:opensc -pre LIST_ADD:1 -pre LOAD
OpenSSL> req -engine opensc -new -key 45 -keyform engine -out email.csr

Příkaz pro výpis klíčů ukázal identifikační číslo, které použijete ve výše uvedeném příkazu.

Vyžadujete-li klientský certifikát od CAcert, je jedno, jaké podrobnosti zadáte v předmětu; web je automaticky přepíše, uveďte tedy cokoli chcete.

Když nyní ukončíte OpenSSL a dáte příkaz "cat email.csr", měli byste vidět něco takového:

-----BEGIN CERTIFICATE REQUEST-----
MIIBdDCB3gIBADA1MRQwEgYDVQQDEwtEdWFuZSBHcm90aDEdMBsGA1UdERQUbWFp
...
lX+B+16nkamQqi08g3Rrak/GdmUNI6y98LXseFJzdbV+k5XQ4RxxkQ==
-----END CERTIFICATE REQUEST-----

Přihlaste se nyní ke svému účtu na webu CAcert v menu zvolte Klientské certifikáty - Nový, zvolte údaje e-mailová adresa, přihlašování certifikátem resp. Vaše jméno, zobrazte rozšířené volby a pak vložte CSR do textového pole s názvem "Volitelná klientská žádost o podpis..." naspodu stránky.

CA podepíše Vaši žádost a vznikne certifikát. Pak se zobrazí stránka se žádostí instalovat certifikát v MS IE a pod ní obsah certifikátu kódovaný BASE64. Zkopírujte ho, vložte do souboru (zde "email.crt") a ten si uložte na HDD pro následný import na Vaši kartu příkazem:

pkcs15-init -X email.crt

Některé poznámky

Mám teď čtyři karty PKI a z toho jen jedna funguje, neboť potřebujete drivery pro každý typ karty a (jako obvykle) výrobci karet nedělají vždy tyto drivery pro Linux, ani nedávají své specifikace ostatním, aby mohli vytvořit drivery. Proto si dobře promyslete, které karty si zakoupíte!

Asi budete chtít vidět na stránkách CategoryCryptoHardware, jaký další PKI hardware Vám může být užitečný.


Gemplus/CZ (last edited 2015-12-14 19:45:51 by AlesKastner)