Kolega nalezl tento USB token Feitian ePass PKI token na jednom francouském shopu. Již dříve jsem po obdobném HW toužil. Pátral jsem zda by jej nechtělo koupit více lidí, ale ve finále měl danej shop pouze dva kousky. Celkově dva USB tokeny s poštovným stály 78,53€.K čemu taková USB fleška je :-) ? Vypadá sice jako fleška, ale uvnitř je čtečka Smard Card - Feitian R-310 a Feitian PKI smartcard (FTCOS / PK-01C). Na token je možno uložit certifikát nebo ssh klíč. Výhodou je, že se dá RSA klíč přímo generovat na daném zařízení s tím, že privátní klíč nikdy token neopustí, což je jedna z klíčových vlastností .
Spolu s tokenem bylo dodáno i malé 92M CD s dokumentací. Aktuální ISO obraz je dostupný zde.
Hnedle co jsem jej dostal do ruky, strčil jsem jej do USB.
Nov 14 13:35:44 ntb kernel: [19615.418112] usb 5-1: New USB device found, idVendor=096e, idProduct=0503
Nov 14 13:35:44 ntb kernel: [19615.418115] usb 5-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
Nov 14 13:35:44 ntb kernel: [19615.418117] usb 5-1: Product: SCR301
Nov 14 13:35:44 ntb kernel: [19615.418119] usb 5-1: Manufacturer: Feitian
Nov 14 13:35:44 ntb mtp-probe: checking bus 5, device 5: "/sys/devices/pci0000:00/0000:00:1d.0/usb5/5-1"
Nov 14 13:35:44 ntb mtp-probe: bus: 5, device: 5 was not an MTP device
Pro práci s tokenem budeme v Linux/UNIX systémech potřebovat free software OpenSC. Výrobcem tokenu je spolešnost Feitian. Ovladač FTCOS/PK-01C v OpenSC se jmenuje "entersafe", více je popsáno zde.
Nejprve jsem si instaloval tyto balíky v distribuci LMDE. K OpenSC je ječtě třeba ovladač čtečky atd. pcsc+ccid.
sudo aptitude install opensc
sudo aptitude install libccid
sudo aptitude install libacsccid1
sudo aptitude install pcsc-tools
sudo aptitude install pcscd
Kominikace s čtečkou mi nějak nefungovala, proto jsem si manuálně zkompiloval aktuální verzi. Popis instalace pěkně zdokumentován na GOOZE.
Ověření instlace je dokumentováno zde. LMDE verze.
opensc-tool --verbose --info
opensc 0.12.1 [gcc 4.6.1]
Enabled features: zlib openssl pcsc(libpcsclite.so.1)
Aktuální manuálně kompilovaná verze.
opensc 0.12.2 [gcc 4.6.1]
Enabled features: zlib readline openssl pcsc(libpcsclite.so.1)
Vypíšeme si čtečky --list-readers, -l Lists all configured readers
opensc-tool -l
# Detected readers (pcsc)
Nr. Card Features Name
0 Yes Feitian SCR301 00 00
Inicializace karty je opět pěkně zdokumentována zde.
Vypíšeme si ATR ma kartě --atr, -a Prints the ATR bytes of the card
opensc-tool --atr
Using reader with a card: Feitian SCR301 00 00
3b:9f:95:81:31:fe:9f:00:65:46:53:05:30:06:71:df:00:00:00:80:6a:82:5e
Vypíšeme si seriové číslo karty. --serial Prints the card serial number
opensc-tool --serial
Using reader with a card: Feitian SCR301 00 00
29 15 33 21 10 23 08 11 ).3!.#..
Preventivě smažeme kartu, na které od výrobve stejně nic není. Prověříme tím komunikaci čtečky s smart card.
pkcs15-init -vE
Using reader with a card: Feitian SCR301 00 00
Connecting to card in reader Feitian SCR301 00 00...
Using card driver entersafe.
About to erase card.
Dále si na kartě inicializujeme profil, nastavíme pin a puk
pkcs15-init --create-pkcs15 --profile pkcs15+onepin --use-default-transport-key --pin 1234 --puk 654321 --label "Jan Novak"
Pomocí dump si vypíšeme co Smard Card obsaduje.
pkcs15-tool --dump
Using reader with a card: Feitian SCR301 00 00
PKCS#15 Card [
Version : 0
Serial number : 2915332110230811
Manufacturer ID: EnterSafe
Last update : 20111115124249Z
Flags : EID compliant
PIN [User PIN]
Object Flags : [0x3], private, modifiable
ID : 01
Flags : [0x32], local, initialized, needs-padding
Length : min_len:4, max_len:16, stored_len:16
Pad char : 0x00
Reference : 1
Type : ascii-numeric
Path : 3f005015
Můžeme do karty importovat existující RSA klíč, který musíme nejprve dešifrovat.
openssl rsa -in ~/.ssh/id_rsa -outform pem > id_rsa.pem
Enter pass phrase for /home/novak/.ssh/id_rsa:
writing RSA key
Posléze jej uložíme na Smard Card.
pkcs15-init --store-private-key id_rsa.pem --auth-id 01 --pin 1234
Lepší možnost je si klíč generovat přímo na token.
Veřejný klíč si vygenerujeme následovně. Návod opět zde. Vypíšeme si nejprve informaci o veřejném klíčí na smard card.
pkcs15-tool --list-public-keys
Using reader with a card: Feitian SCR301 00 00
Public RSA Key [Public Key]
Object Flags : [0x2], modifiable
Usage : [0x4], sign
Access Flags : [0x0]
ModLength : 2048
Key ref : 0
Native : no
Path : 3f0050153000
ID : c70982******a14eb3
pkcs15-tool --read-ssh-key c70982
Using reader with a card: Feitian SCR301 00 00
2048 65537 259843
ssh-rsa AAAAB3Nz
Pak se již můžeme přihašovat na vzdálený server pomocí Secure Shell.
ssh -v -I /usr/lib/opensc-pkcs11.so server.domena.cz
Provider tokenu je možno zavést do patřičného souboru.
vim ~/.ssh/ssh_config
PKCS11Provider /usr/lib/pkcs11/opensc-pkcs11.so
Alternativy USB tokenu, u kterých se o Linuxu moc nepíše, ale funkční pod OpenSC budou.

2 komentáře:
Tak zrovna ten eToken 5000 (drive iKey4000) NENI pod Linuxem podporovan. Pouzival se pro Czechpointy, ISDS a podobny tunely.
SafeNet nikdy OpenSC komunite zadne podklady nedal a v CR se (prave kvuli ISDS) nejaka firma o driver pokousela, ale chteli za to nejaky strasny penize a protoze to pak stahli z webu, tak soudim, ze to nakonec vzdali.
Ja ten iKey4000 kdysi koupil prave protoze u nej bylo napsano, ze je s Linuxem a MacOSem kompatibilni, ale neni. Puvodne jsem chtel koupit jiny, ktery vypada na prvni pohled uplne stejne, ale neumel AES, a ten na Linuxu podle meho pozdejsiho zjisteni funguje.
Dokonce i nejaky typek z Francie mel na webu napsano ze jeho PC/SC balik iKey4000 podporuje, ale kdyz jsem mu napsal, tak na tom webu zmenil iKey4000 za "some iKey4000s based on XXX chip" -- coz vypada, ze jich je tedy nekolik obchodne nerozlisitelnych modelu.
Bohuzel, krom iKey4000 jsem zadnou (OpenSC friendly) alternativu s podporou AES nenasel :-(
Dik za popis, alternativy jsem uvedl, kdyz jsem patral zda se nejaky USB token da koupit u nas v .cz
Okomentovat