iBank и USB токен Smart Card Reader 378 в Linux
После мигрирования ИТ структуры компании на Ubuntu linux 10.04LTS периодически попадаются интересные задачи. Вот алгоритм решения одной из них, которой может пригодится другим администраторам. Все необходимое в прилагаемом архиве или по ссылкам в ходе описания.
*USB токен Smart Card Rader 378 определяется lsusb как 15cf:0015, не подхватывается утилитой pcscd, сыпет в дебаг режиме ошибками типа: 00000070 readerfactory.c:233:RFAddReader() Smart Card Reader 378 init failed.
Изначально требуется прошить USB токен Smart Card Rader 378, основная инструкция и программное обеспечение по ссылке внизу, или в прилагаемом архиве.
Для прошивки надо чтобы токен был корректно установлен в системе (автор прошивки настоятельно рекомендует Windows XP), для этого достаточно достать папку с драйверами из ibank.pinbank.ua и скормить системному установщику (файл drv_from_ibank_pinbank_ua.zip в прилагаемом архиве)
После этого можно запускать NewUpgr378ToCCID.exe и действовать по инструкции update_SecureToken.doc с четвертой страницы. Дальше пишу по памяти.
Запустил NewUpgr378ToCCID.exe, она отработала, нажал Enter, программа закрылась, отключил токен.
Подключил токен, установил драйвер CL-Boot 381 из Drv381, отключил токен.
Запустил NewUpgr378ToCCID.exe, подключил токен, секунд через 20 нажал Enter, потом еще пару раз.
Все, устройство определяется как Secure Token, а не Smart Card Rader 378. Кстати код у него поменялся на 15cf:0019
Возможно менее удачливому админу придется посидеть над прошивкой дольше.
После этого можно настраивать Smart Card Rader 378 на линуксе.
Устанавливаю pcscd libccid opensc pcsc-tools (скорее всего нужны только первые два пакета)
После установки PCSC создайте символическую ссылку командой:
ln -s /lib/libpcsclite.so.1.0.0 /usr/lib/libpcsclite.s
Иначе джава-апплет клиент-банка будет загружаться в виде серого квадрата слева внизу окна браузера.
В файле /etc/libccid_Info.plist (символические ссылки на этот файл встречаются и в других местах, это некритично)
проверяю есть ли коды нашего токена, которые видны по команде lsusb, например в моем случае это
lsusb -s 10
Bus 002 Device 010: ID 15cf:0019
В libccid_Info.plist вбиваю коды и символьное имя первыми строчками в разделы ifdVendorID ifdProductID ifdFriendlyName соответственно
<key>ifdVendorID</key>
<array>
<string>0x15CF</string>
<key>ifdProductID</key>
<array>
<string>0x0019</string>
<key>ifdFriendlyName</key>
<array>
<string>Smart Card Reader 378</string>
Далее ставлю драйвер /author_linux_drv/./install.sh
останавливаю pcscd и запускаю в режиме дебага
/etc/init.d/pcscd stop
pcscd --foreground --debug --apdu
читайте внимательно вывод, в моем случае там была ошибка
00000082 dyn_unix.c:36:DYN_LoadLibrary() /usr/lib/pcsc/drivers/ifd-KP378.bundle/Contents/Linux/libccid.so: /usr/lib/pcsc/drivers/ifd-KP378.bundle/Contents/Linux/libccid.so: cannot open shared object file: No such file or directory
и понадобилось сделать сделать символическую ссылку на
/usr/lib/pcsc/drivers/ifd-ccid.bundle/Contents/Linux/libccid.so.1.3.11
в
/usr/lib/pcsc/drivers/ifd-KP378.bundle/Contents/Linux
чтобы было так:
ls -l
итого 20
lrwxrwxrwx 1 root root 70 2011-12-23 10:14 libccid.so -> /usr/lib/pcsc/drivers/ifd-ccid.bundle/Contents/Linux/libccid.so.1.3.11
-rw-r--r-- 1 root root 14140 2011-12-23 10:05 libKP378.so
теперь все работает, можно настроить токен
из директории где лежит
device-utils.jar
запустить
LANG=ru_RU.cp1251 java -cp device-utils.jar com.bifit.security.token.DeviceUtils
Или просто запустить клиент-банк ibank.pinbank.ua
Кодировку названия токена в окне КБ пока не поборол, но в моем случае это некритично. В принципе можно настроить тот дистрибутив PC-Banking что есть в архиве. (PC-Banking-linux-i586.tar.bz2) Хотя я не уверен что они одинаковые для "проминвест" (по материалам которого это все делалось) и "первого инвестиционного" (ДЛЯ которого это все делалось) банков.
Сделано по материалам:
ibank.pib.ua
За что им огромное спасибо.
Вот архив со всем необходимым для настройки
by -13-