Portál AbcLinuxu, 7. května 2025 17:09

Dotaz: Použití ICA smart cards v Linuxu

14.11.2013 03:06 Libor Chocholaty | skóre: 12
Použití ICA smart cards v Linuxu
Přečteno: 1484×
Odpovědět | Admin
Ahoj, používáte někdo v Linuxu pro podepisování čipové karty? Pokud ano, podělili byste se o zkušenosti? Používám čtečku Gemalto GemPC Twin, pcsc_scan z pcsc-tools (ver. 1.4.18 plus aktuální smartcard_list.txt) mi ji najde a kartu od ICA identifikuje jako:
Possibly identified card (using /usr/share/pcsc/smartcard_list.txt):
3B BB 18 00 C0 10 31 FE 45 80 67 04 12 B0 03 03 00 00 81 05 3C
        Philips Smart MX
        Szczecin University of Technology in Poland student identity card (Elektroniczna Legitymacja Studencka = student identity card)
        CSOB bank, Czech Republic
        CATCert (Agència Catalana de Certificació) catalan government workers identity card
Takže se nejspíš jedná o nějakou verzi Starcos karty, protože tu jsem měl za blahé paměti v ČSOB. Dál jsem se však nedostal. Jsem čerstvým držitelem kvalifikovaného certifikátu na té kartě, ale jak se k těm certifikátům dostat... OpenSSL umožňuje používat čipové karty pomocí externího pkcs11 engine, ale openSC z Ubuntu tyhle Starcos karty nějak nedokáže používat.
Seznam instalovaného softu:
libengine-pkcs11-openssl                 0.1.8-2build1                            OpenSSL engine for PKCS#11 modules
libpkcs11-helper1                        1.09-1                                   library that simplifies the interaction with PKCS#11
opensc                                   0.12.2-2ubuntu1                          Smart card utilities with support for PKCS#15 compatible cards
Tuší někdo co s tím dál?

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

14.11.2013 18:21 petr_p | skóre: 59 | blog: pb
Rozbalit Rozbalit vše Re: Použití ICA smart cards v Linuxu
Odpovědět | | Sbalit | Link | Blokovat | Admin

Používám USB věc. Takže mohu říci, že engine-pkcs11 obsahuje mraky chyb, sám jsem na něj napsal řadu patchů a nejsem jediný a upstream nijak nereaguje. Takže než se vrhnete na OpenSSL, tak začněte o patro níže s OpenSC.

Čtečka je podporovaná, ale o kartě těžko říci. Začněte Supported hardware. V podstatě potřebujete dosáhnout toho, aby pkcs15-tool nebo pkcs11-tool (podle toho, který „formát“ je na kartě) ukazoval seznam certifikátů (a po zadání hesla) i soukromých klíčů.

14.11.2013 18:28 petr_p | skóre: 59 | blog: pb
Rozbalit Rozbalit vše Re: Použití ICA smart cards v Linuxu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Jsem čerstvým držitelem kvalifikovaného certifikátu na té kartě.

A jak jste na kartu dostal soukromý klíč? A kdy jste si na ní nastavil PIN? Jestli to byla tak, jak si myslím, tak za prvé to není vůbec bezpečné a za druhé jste tím porušil zákon o elektronickém podpisu.

15.11.2013 12:19 Libor Chocholaty | skóre: 12
Rozbalit Rozbalit vše Re: Použití ICA smart cards v Linuxu
Jo asi jo. Nicméně soukromý klíč je generovaný na kartě a nelze ho exportovat. Takže myslím, že zrovna v tomto případě to nebude tak žhavý. Od toho tu přece tyhle kartičky jsou, ne?
14.11.2013 18:35 petr_p | skóre: 59 | blog: pb
Rozbalit Rozbalit vše Re: Použití ICA smart cards v Linuxu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Podle ICA na kartě je Starcos 3.0.
15.11.2013 12:25 Libor Chocholaty | skóre: 12
Rozbalit Rozbalit vše Re: Použití ICA smart cards v Linuxu
A podle supported hardware mám tímto pádem smůlu :-(
No nic, už jsem přišel o víc.
Snaži jsem se trochu hledat kolem a nic kromě udělátek, který vám umožněj posílat APDU na kartu a zobrazovat výsledky jsem nenašel. Koukám, že do tohohle segmentu standardizace ještě nedospěla.
Ale prej je výrobce celkem komunikativní a manuál podporovaných APDU je k dispozici. :-D
Pro začátek by mě zajímalo, kde koupit kartičku, která už podporovaná je a umí uložit aspoň 2048bit RSA a umí SHA-2.
Koukal jsem se na několik odkazů z toho hardware supported listu a technický specifikace těch kartiček nebyly dostupný. Oni teda nebyly dostupný ani ty kartičky. :-(
17.11.2013 17:14 vit hnilica
Rozbalit Rozbalit vše Re: Použití ICA smart cards v Linuxu
mrknete treba sem http://www.gooze.eu/
17.11.2013 17:23 vit hnilica
Rozbalit Rozbalit vše Re: Použití ICA smart cards v Linuxu
aha, nak jim ten web uz nejede
18.11.2013 14:43 Joe
Rozbalit Rozbalit vše Re: Použití ICA smart cards v Linuxu
Jestli chces ePass 2003, tak se mi doma vali 3 nepouzite (sam uspesne pouzivam s certifikatem od ICA pro datovou schranku, dane, atp. jak na linuxu, tak na woknech), kus za 600, jsem z Prahy.
20.11.2013 18:24 Libor Chocholaty | skóre: 12
Rozbalit Rozbalit vše Re: Použití ICA smart cards v Linuxu
Dík za nabídku, 1-2 kousky bych si koupil. Kde se potkáme? libor (na) mts.cz
17.11.2013 18:43 petr_p | skóre: 59 | blog: pb
Rozbalit Rozbalit vše Re: Použití ICA smart cards v Linuxu

Já jsem kdysi koupil USB šifrovací modul ASEkey od Atheny, který měl otevřený ovladač. Možná by vás oslovila i její současná nabídka.

18.11.2013 11:00 Libor Chocholaty | skóre: 12
Rozbalit Rozbalit vše Re: Použití ICA smart cards v Linuxu
Díky za tip. Jejich nabídka vypadá víc než pěkně. Když píšou PKCS#11 lib pro Linux, to znamená něco s čím si třeba openssh poradí?
18.11.2013 20:08 petr_p | skóre: 59 | blog: pb
Rozbalit Rozbalit vše Re: Použití ICA smart cards v Linuxu
PKCS#11 je API, jak volat manipulovat s klíči na kartě a jak volat kryptografické operace. Nevím, jestli OpenSSH umí delegovat kryptografii na PKCS#11 modul, ale používá OpenSSL, která to umí.
19.11.2013 11:12 Libor Chocholaty | skóre: 12
Rozbalit Rozbalit vše Re: Použití ICA smart cards v Linuxu
Ups, měl jsem na mysli openssl. Mozek myslí a ruce píšou na co jsou zvyklejší.
19.11.2013 22:25 petr_p | skóre: 59 | blog: pb
Rozbalit Rozbalit vše Re: Použití ICA smart cards v Linuxu

OpenSSL přistupuje ke kryptografickým operacím skrze tak zvaný engine. Což je v podstatě sada funkcí s daným API. Samozřejmě OpenSSL má vlastní formát a nepoužívá PKCS#11, jak je v tomto světě obvyklé. Právě na to existuje engine_pkcs11, což je obálka která zvenku implemetuje OpenSSL engine a zevnitř volá PKCS#11.

Některé enginy jsou přímo součástí OpenSSL, ostatní se dají nahrát jako modul. Nakonfigurované enginy lze vypsat příkazem openssl engine -t.

Konfigurace dalších enginů se dá udělat jednorázově (pokud to OpenSSL aplikace podporuje), ale pohodlnější je přidat ji do globálního konfiguráku. Například:

openssl_conf = openssl_def

[ openssl_def ]
engines         = engine_section

[engine_section]
pkcs11 = pkcs11_section

[pkcs11_section]
engine_id = pkcs11
dynamic_path = /usr/lib/engines/engine_pkcs11.so
MODULE_PATH = /usr/lib/opensc-pkcs11.so
init = 0

přidá engine s názvem pkcs11, který je implementován knihovnou engine_pkcs11, která z parametru MODULE_PATH bere konkrétní PKCS#11 modul. Je to stejný modul, který se třeba cpe do konfigurace NSS ve Firefoxu. V tomto případě je to PKCS#11 obálka nad OpenSC.

Když vše funguje, tak výstup vypadá takto:

$ openssl engine -t
(rsax) RSAX engine support
     [ available ]
(dynamic) Dynamic engine loading support
     [ unavailable ]
(pkcs11) pkcs11 engine
     [ available ]

Takhle to má OpenSSL. Je to docela humpolácké. A je třeba se připravit, že engine_pkcs11 obsahuje hodně chyb. Podívejte se na mailing list OpenSC, v srpnu jsem tam posílal 10 patchů, které ji dělají použitelnou.

Lépe to má vyřešené GnuTLS, které implementuje novější způsob, jak pracovat s PKCS#11 moduly, a to skrze zvláštní URL, které obsahuje přímo název modulu, čtečky, karty a objektů na kartě, takže nic není nutné zapisovat do magických konfiguračních souborů. Navíc ta zvláštní URL není nějaký proprietární výmysl jako zpola dokumentované enginy u OpenSSL, ale je to standard.

20.11.2013 12:04 Libor Chocholaty | skóre: 12
Rozbalit Rozbalit vše Re: Použití ICA smart cards v Linuxu
Za tohle vám patří můj velký dík.
Takže teď už jenom počkat až dorazí ty karty. :-)
Řešení 1× (Libor Chocholaty (tazatel))
26.11.2013 11:18 Libor Chocholaty | skóre: 12
Rozbalit Rozbalit vše Re: Použití ICA smart cards v Linuxu
Karty dorazily a při postupu dle návodu fungují.
Je třeba použít opensc verze 0.13.0 a opravit konfiguraci.
Zatím zkoušeny utility pkcs15-init a pkcs15-tool.

linky:
http://www.aventra.fi/English/products_MyEID_E.html
https://github.com/OpenSC/OpenSC/wiki/Aventra-MyEID-PKI-card
18.11.2013 18:50 Libor Chocholaty | skóre: 12
Rozbalit Rozbalit vše Re: Použití ICA smart cards v Linuxu
Nakonec jsem objednal Aventra MyEID PKI Card, která má deklarovanou podporu přímo pro OpenSC. I návod na inicializaci byl dostatečně podrobný, tak snad budu mít větší kliku.
18.11.2013 20:01 petr_p | skóre: 59 | blog: pb
Rozbalit Rozbalit vše Re: Použití ICA smart cards v Linuxu
Ta vypadá taky dobře. Jen tam nikde nevidím podporu SHA-256. Sice mě nenapadá, k čemu potřebuje karta počítat hashe, když kvůli rychlosti se stejně používá jen na RSA.
19.11.2013 11:09 Libor Chocholaty | skóre: 12
Rozbalit Rozbalit vše Re: Použití ICA smart cards v Linuxu
Jasně, závisí na míře paranoi, zda se má hash také počítat na kartě. Ale to už se dostáváme do místa, zda věřit, že jsme na kartu poslali, co jsme chtěli, že?

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.