От дълго време се каня да си извадя електронен подпис, но все го отлагах. Напоследък обаче се стигна до момент, в който това стана наложително. Понеже естествено, ще го ползвам под Linux направих кратко проучване първо онлайн, а след това и сред познати. Имаше положителни мнения както за Инфонотари, така и за Банксервиз. Аз се спрях на първите по две причини – на пръв поглед по-добрата документация, и нещо доста по-тривиално, по-големият брой офиси на Инфонотари, в случая имаше такъв точно срещу моя офис.
От това, което прочетох се надявах да ми се падне Omnikey четец, но в избраният от мен офис на ЦКБ такива нямаше – единствената опция беше ACS. Понеже напоследък съм мързелив, а и ми трябваше спешно рискувах и го взех. Последното след попълването на един тон документация от момичето в офиса, което беше леко неориентирано, изглежда нямаше кой знае какъв опит с издаване на сертификати, но с малко помощ от приятели (с цената от две телефонни обаждания) все пак се справи.
И така, за мен остана да изчакам края на работния ден, да се прибера и да видя какво ще се получи. Ами смело мога да заявя, че четецът работи out of the box с ccid драйверът по подразбиране.
pcscd сървисът е стартиран:
[Nick@Pegasus ~]$ systemctl status pcscd.service pcscd.service - PC/SC Smart Card Daemon Loaded: loaded (/lib/systemd/system/pcscd.service; disabled) Active: active (running) since Tue, 22 Nov 2011 20:56:10 +0200; 2h 9min ago Main PID: 8758 (pcscd) CGroup: name=systemd:/system/pcscd.service └ 8758 /usr/sbin/pcscd -f
Исталирани са следните пакети:
[Nick@Pegasus ~]$ yum list pcsc-* Installed Packages pcsc-lite.x86_64 1.7.4-6.fc16 @fedora pcsc-lite-ccid.x86_64 1.4.5-1.fc16 @fedora pcsc-lite-devel.x86_64 1.7.4-6.fc16 @fedora pcsc-lite-libs.x86_64 1.7.4-6.fc16 @fedora
[Nick@Pegasus ~]$ yum whatprovides pcsc-lite pcsc-lite-1.7.4-6.fc16.x86_64 : PC/SC Lite smart card framework and applications Repo : fedora
[Nick@Pegasus ~]$ yum whatprovides pcsc-lite-ccid pcsc-lite-ccid-1.4.5-1.fc16.x86_64 : Generic USB CCID smart card reader driver Repo : fedora
Ето и как се разпознава самият четец (dmesg output):
[787202.753102] usb 1-1.5.4: new full speed USB device number 13 using ehci_hcd [787202.841264] usb 1-1.5.4: New USB device found, idVendor=072f, idProduct=90cc [787202.841267] usb 1-1.5.4: New USB device strings: Mfr=1, Product=2, SerialNumber=0 [787202.841269] usb 1-1.5.4: Product: CCID USB Reader [787202.841270] usb 1-1.5.4: Manufacturer: ACS [789782.064529] usb 1-1.5.4: USB disconnect, device number 13
И малко по-подробно (lsusb -vd):
lsusb -vd 072f:90cc Bus 001 Device 015: ID 072f:90cc Advanced Card Systems, Ltd ACR38 SmartCard Reader Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 1.10 bDeviceClass 0 (Defined at Interface level) bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 8 idVendor 0x072f Advanced Card Systems, Ltd idProduct 0x90cc ACR38 SmartCard Reader bcdDevice 1.00 iManufacturer 1 ACS iProduct 2 CCID USB Reader iSerial 0 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 93 bNumInterfaces 1 bConfigurationValue 1 iConfiguration 0 bmAttributes 0x80 (Bus Powered) MaxPower 100mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 3 bInterfaceClass 11 Chip/SmartCard bInterfaceSubClass 0 bInterfaceProtocol 0 iInterface 0 ChipCard Interface Descriptor: bLength 54 bDescriptorType 33 bcdCCID 1.00 nMaxSlotIndex 0 bVoltageSupport 7 5.0V 3.0V 1.8V dwProtocols 3 T=0 T=1 dwDefaultClock 4000 dwMaxiumumClock 4000 bNumClockSupported 0 dwDataRate 10752 bps dwMaxDataRate 344100 bps bNumDataRatesSupp. 0 dwMaxIFSD 247 dwSyncProtocols 00000000 dwMechanical 00000000 dwFeatures 00010030 Auto clock change Auto baud rate change TPDU level exchange dwMaxCCIDMsgLen 271 bClassGetResponse 00 bClassEnvelope 00 wlcdLayout none bPINSupport 0 bMaxCCIDBusySlots 1 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0008 1x 8 bytes bInterval 16 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x02 EP 2 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x82 EP 2 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 0 Device Status: 0x0000 (Bus Powered)
Моделът на картата ми е T&S DS/2048 (L), което налага инсталирането на два допълнителни пакета от хранилището на Инфонотари, a именно – bit4id-ipki и infonotary-scardmanager.
Остава само настройката на browser-а, който в случая е firefox. Сертификатът може да се инсталира директно от линка изпратен от Инфонотари чрез e-mail, а за улеснение на конфигурацията може да се добави следният firefox add-on – InfoNotary Configurator for Mozilla, . Ако при отварянето на тестовият линк (тестът може да бъде направен и от Preferences –> Signature Test на добавката на Инфонотари), отговорът е Data Accepted, то всичко е наред и можем да подписваме на воля.
Допълнителна информация:
Загубих доста време да разбера какъв е точният модел на четеца. Както може да се види от output-а по-горе то се разпознава като ACR38. На капачето му обаче е изписано ACR38T, а според една от техническите спецификации на сайта на производителя, а и според външният му вид, то това е ACR38DT. Според същата спецификация, въпросният четец работи с ccid, само ако е с firmware 1.12, и явно моят е такъв. В противен случай вероятно ще се наложи инсталирането на vendor драйверите.
Ето как изглежда на практика:
Полезни линкове (дадени са и в текста по-горе):
- Използване на квалифициран електронен подпис в Mozilla Firefox за Linux
- Използване на хранилищата на InfoNotary
- InfoNotary Configurator for Mozilla
- Инсталация на драйвери за четец и смарт карта в Linux
Умишлено не посочвам линк към „Инсталация на драйвери за четец и смарт карта в Linux“. Въпреки, че статията е относително актуална, то в нея има някои неточности, които могат да доведат до объркване. Освен това е и доста Ubuntu ориентирана. Но това, не е кой знае какъв проблем, освен че имената на пакетите във Fedora са други. Проблемът е друг, че по начинът, по който е написан краят на статията, може да се остане с впечатлението, че е нужно да се инсталира и OpenSC. Това не е необходимо! OpenSC, въпреки че разпознава правилно четеца, зарежда и използва CNS драйвера. Освен това, ACS липсва от списъкa с поддържаният от проекта хардуер, но пък е споменат в списъкът с поддържани устройства от CCID.
И така в резюме: ACS ACR38DT от Инфонотари работи под Fedora 16 с Firefox 7, без да е необходимо да се инсталират допълните драйвери за картовия четец.
Рдакция /24.11.2011/: Статията във wiki-то на Инфонотари е редактирана, и е доста по-точна в момента. Така че включвам и линк-а към нея.

