LINUX.ORG.RU

Интернет-банк iBank2 в Linux (на примере Абсолютбанка)


0

0

Пришлось немало повозиться, прежде чем запустить его на своей машине, поэтому решил поделиться опытом. В основном проблемы были с токеном.

1. Установка usb-токена

Вначале нам выдали в банке e-токен черного цвета (исполнение «М»), который заявлял о себе вот так:
> lsusb
Bus 004 Device 009: ID 096e:0005 Feitian Technologies, Inc.

Мне так и не удалось заставить его работать. Поэтому в банке его любезно заменили на етокен оранжевого цвета (исполнение «А»), который определяется так:
> lsusb
Bus 003 Device 002: ID 0a89:0060
(производитель почему-то умалчивает о себе, но мы то знаем что это rutoken ;-) )

Чтобы токен заработал установил пакеты pcscd, libccid, libpcsclite1 (под root):
> aptitude install pcscd, libccid, libpcsclite1

После открыл файл /usr/lib/pcsc/drivers/ifd-ccid.bundle/Contents/Info.plist (я делал это по F4 в mc) и убедился, что в секции ifdVendorID есть 0x0A89, а в секциях ifdProductID и ifdFriendlyName им соответствуют значения 0x0060 и «Aktiv Rutoken Magistra». Если таких строчек нет, то добавьте (при этом название можно любое ставить).

Перезапустил pcsc:
> /etc/init.d/pcscd restart

Теперь токен горит красным цветом, и это здорово.

Можно остановить сервис pcsc:
> /etc/init.d/pcscd stop
и более подробно понаблюдать как определяется токен, для этого выньте токен из usb и запустите сервис в режиме debug:
> pcscd --foreground --debug --apdu
После вставки токена в консоль у меня выдалось:

00000141 hotplug_libhal.c:366:HPAddDevice() Adding USB device: usb_device_a89_60_noserial_if0
01001157 readerfactory.c:1024:RFInitializeReader() Attempting startup of Aktiv Rutoken Magistra 00 00 using /usr/lib/pcsc/drivers/ifd-ccid.bundle/Contents/Linux/libccid.so
00000379 readerfactory.c:877:RFBindFunctions() Loading IFD Handler 3.0
00000066 ifdhandler.c:1532:init_driver() Driver version: 1.3.11

И это тоже замечательно.

ВНИМАНИЕ ГРАБЛИ 1: важная деталь, которая возможно всплыла только в дистрибутиве Debian 5.0. Суть в том, что iBank2 в своей работе использует библиотеку /usr/lib/libpcsclite.so, но ее не оказалось после установки libpcsclite1, зато были libpcsclite.so.1 и libpcsclite.so.1.0.0, смекнув делайте символическую ссылку:
> ln -s libpcsclite.so.1.0.0 libpcsclite.so
я же скопировал по Shift+F5 в mc симлинк libpcsclite.so.1, изменив имя.


2. Пару слов о Java

iBank использует «родную» Sun'овскую джаву, поэтому мне пришлось скачать 19Мб по ссылке http://java.com/ru/download/manual.jsp?locale=ru&host=java.com, распаковать в отдельную папку, которую я назвал jre150lin.


3. Запуск PC-банкинга (off-line версия iBank2)

Банки обычно выкладывают tar-архив с дистрибутивом, можете сами поискать http://www.google.ru/search?hl=ru&q=PC-Banking-linux-i586.
Ссылку на дистрибутив нашего банка удалось узнать только после переписки со службой тех. поддержки: https://server1.ibank.absolutbank.ru/PC-Banking-linux-i586.tar.bz2.
Скачал и распаковал содержимое в папку iBank2abl.

Если у Вас уже была установлена Windows-версия PC-banking, то скопируйте файлы NNNN.odb и iBank.odb из C:\Program Files\Bifit PC-банкинг\ в новую папку (iBank2abl), чтобы заново не вводить данные по своей фирме. Кстати NNNN — это некоторое число.

Теперь ГРАБЛИ 2: в стандартном дистрибутиве лежит shell-файл, но он недоделанный, в частности в Linux почти всегда используется кодировка UTF-8, а iBank2 использует Windows-1251. Поэтому когда я запустил интернет-банк и провел сеанс связи, то после перезапуска iBank2 увидел «крякозяблы» вместо русских букв.

Чтобы «вылечиться» от этой напасти пришлось ставить доп. консоль:

> localedef -c -i ru_RU -f CP1251 ru_RU.CP1251

и создать свою версию shell-файла:

> cat ./run_ab.sh

#!/bin/sh

export JAVA_HOME=`pwd`/jre150lin
export JAVACMD=$JAVA_HOME/bin/java
export LANG=ru_RU.cp1251
export LC_ALL=ru_RU.cp1251

cd ./iBank2abl

if [ -e ../iBank2abw/83670.odb ]; then
mv ../iBank2abw/83670.odb ./
mv ../iBank2abw/iBank.odb ./
fi

$JAVACMD -Xmx256m -cp ./launcher.jar com.bifit.launcher.Launcher

Станет яснее дальше.


4. Запуск iBank2 с флэшки на любом компьютере

Чтобы пользоваться интернет-банком в любой момент и в любом месте, я ношу с собой usb-токен и флешку. На флешке в папке iBank все и лежит:

> ls ./iBank
iBank2abl iBank2abw iBank2pb jre143win jre150lin run_ab.bat run_ab.sh run_pb.bat windrv32

Поясню немного:
iBank2abl - папка с PC-банкингом, который мы создали по п. 3
iBank2abw - папка с PC-банкингом из мастдайного C:\Program files\iBank2
jre143win - мастдайная java из C:\Program files\Java
jre150lin - линуксовая java по п. 2
run_ab.sh - шелл запуска в линуксе
run_ab.bat - батник для мастдая
windrv32 - папка с дровишками токена для мастдая

Под мастдаем запускаю bat-файл:

> cat run_ab.bat

cd iBank2abw

move ..\iBank2abl\*.odb .\

"..\jre143win\bin\javaw.exe" -Xmx256m -cp launcher.jar com.bifit.launcher.Launcher
exit


Вот такая история из жизни, надеюсь поучительная ;-)


Сенькс, как раз оформляю документы в АБ. Про токен написано в доке, а вот насчет симлинка был не в курсе.

- Онлайновую версию пускать пытались? Куда ей складывать libibank2agava.so и libibank2ccom.so ? Или они нафик не нужны (там вроде только ГОСТ)?

- Если библиотеки все-таки нужны, где бы еще нарыть версии для ARM ?

Vit ★★★★★ ()

Ещё бы live-usb linux со всем необходимым и настроенным для работы клиента - и было бы просто феерично

Hokum ☆☆☆☆ ()
Ответ на: комментарий от Vit

On-line версию тоже пробовал - работает.
Для этого в Opera пришлось указать sun-овскую Java:
«Инструменты - Настройки - Дополнительно - Содержимое - Настроить Java - Путь к Java», задал:
/usr/lib/jvm/jre150/lib/i386
где jre150 - сановская ява.

Насчет библиотек, я не понял зачем они, так и лежат в папке PC-банкинга.

robux ()

>>Поэтому в банке его любезно заменили на етокен оранжевого цвета >>(исполнение «А»)

Etoken это название токенов некоторой известной компании. А токен, о котором Вы пишете это действительно Рутокен Магистра.

В файле Info.plist строчка появилась начиная с libccid версии 1.3.0, в более ранних версиях ее действительно следует добавлять.

И насчет первых граблей: действительно странно, что в дебиане симлинки не делаются, в других дистрибутивах я такого не замечал.

anonymous ()
Ответ на: комментарий от anonymous

Все делаю как вы сказали, токен горит красным, опера открывает нормально плагин в онлайне, но этот плагин ни в какую не хочет видеть мой токен. или там как-то надо прописывать?

anonymous ()

>Bus 004 Device 009: ID 096e:0005 Feitian Technologies, Inc.

И не заставишь :)

Есть еще комплект ридер (CCID совместимый) и полноформатная карта. ru token - это рутокен магистра, на сайте есть описание.

Во всех трех случаях используется одинаковая микруха смарт-карты и карточная ОС.

Кстати, кинь сюда пожалуйста, lsusb -v для rutoken'а

Macil ★★★★★ ()
Ответ на: комментарий от Macil

>, но этот плагин ни в какую не хочет видеть мой токен

симлинк не сделал, читай «грабли 1».
p.s. или пробуй pc-банкинг
p.s.2. дистрибутив родной (своего банка) используешь?
p.s.3. lsusb нам свой покажи

>Кстати, кинь сюда пожалуйста, lsusb -v для rutoken'а


# lsusb -s 3:2 -v

Bus 003 Device 002: ID 0a89:0060
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 8
idVendor 0x0a89
idProduct 0x0060
bcdDevice 1.02
iManufacturer 1 Aktiv Co., ProgramPark
iProduct 2 Rutoken Magistra
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 72
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 3 CCID
bmAttributes 0x80
(Bus Powered)
MaxPower 100mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 11 Chip/SmartCard
bInterfaceSubClass 0
bInterfaceProtocol 2
iInterface 0
ChipCard Interface Descriptor:
bLength 54
bDescriptorType 33
bcdCCID 1.00
nMaxSlotIndex 0
bVoltageSupport 1 5.0V
dwProtocols 2 T=1
dwDefaultClock 3580
dwMaxiumumClock 3580
bNumClockSupported 0
dwDataRate 9600 bps
dwMaxDataRate 9600 bps
bNumDataRatesSupp. 0
dwMaxIFSD 254
dwSyncProtocols 00000000
dwMechanical 00000000
dwFeatures 00020840
Auto parameter negotation made by CCID
Short APDU level exchange
dwMaxCCIDMsgLen 261
bClassGetResponse echo
bClassEnvelope echo
wlcdLayout none
bPINSupport 0
bMaxCCIDBusySlots 1
Device Status: 0x0000
(Bus Powered)

robux ()
Ответ на: комментарий от robux

Симлинк, кстати, лучше такой командой сделайте (под root):

# ln -s /usr/lib/libpcsclite.so.1.0.0 /usr/lib/libpcsclite.so

robux ()

Позавчера тоже подключился к Абсолютбанку.

На убунте все похоже, с той разницей, что библиотека лежит не в /usr/lib а просто в /lib.

Соответственно, создание симлинка такое:

# ln -s /usr/libpcsclite.so.1.0.0 /usr/lib/libpcsclite.so

Отдельным банк-клиентом не пользовался, мне интернетовского хватает. Ставим pcscd, делаем симлинк и вперед.

PS. Токен надо сразу просить «рыжий», а то много-где на «чорные» перешли (там гимор с проприетарными драйверами).

Vit ★★★★★ ()
Ответ на: комментарий от Vit

> Соответственно, создание симлинка такое:
> # ln -s /usr/libpcsclite.so.1.0.0 /usr/lib/libpcsclite.so


Наверное ты хотел сказать такое:

# ln -s /lib/libpcsclite.so.1.0.0 /usr/lib/libpcsclite.so

или такое:

# ln -s /lib/libpcsclite.so.1.0.0 /lib/libpcsclite.so

Вобщем, убунтоиды, тренируйтесь )))

robux ()
Ответ на: комментарий от robux

ставим пакетики и никаких линков и библиотек никуда не подкладываем

sudo apt-get install sun-java6-plugin -y

sudo apt-get install pcscd -y

sudo apt-get install pcsc-tools -y

sudo apt-get install libpcsclite-dev -y

anonymous ()

Немного политики

Должен предостеречь.
В 2009 году Абсолютбанк привлек меня тем, что у него не было никакой абонентской платы; они брали процент с прихода и 20 руб. за исходящую платежку. Я еще подумал, надо же какой прогрессивный банк, какие разумные тарифы на РКО: заработал что-то - платишь, не заработал - не платишь.
И тут...
..новые тарифы с 1 марта 2010.
Мало того что они ввели абонентку (500 р./мес) дак они еще и оставили все поборы. Адекватность 2009 года оказалась обычной заманухой. Разочарован...
P.S. Но я согласен, что при открытии счета клиент должен заплатить за usb-токен.

robux ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.