Hlavní navigace

Pouzivani internetoveho bankovnictvi FIO d.z. v Linuxu II

4. 6. 2007 23:54 (aktualizováno) | fio

Nasledujici prispevek bude predevsim kompilat z ruznych zdroju a par vlastnich postrehu. V predchozim dile jsem popisoval zprovozneni podepisovaci aplikace, ktera je nutna pro validaci pokynu, zadavanych do FIO d.z.

Chapu, ze pousteni aplikaci pres wine neuspokoji skalni priznivce linuxu, ale predevsim se jedna o postup funkcni a ne prilis tezky i pro zacatecniky. Pres wine jdou pustit snad vsechny radkove utility dodavane v instalacnim baliku. Nicmene v diskusi k clanku je uverejneny odkaz na puvodni linuxovou aplikaci, ktera je v dobe psani clanku stale platnym odkazem, ale ze stranek FIO se k ni nedoklikate (proste neoficialne podporovano). Jeji obsah snadno pochopite, pokud jste si precetli prvni clanek, tedy jen ve zkratce:

fgp – utilita pro generovani hashe
wsign – podepisovaci aplikace
fioCa.pem – ceritifikat root CA FIO
fiosign.cfg – konfiguracni soubor podepisovaci aplikace
readme – soubor s napovedou, mirne outdated

Ovladani a pouziti linuxovych utilit je temer shodne jako windowsovych ekvivalentu. V souboru readme je popisovano vytvoreni privatniho klice, a i kdyz uvedeny postup bude fungovat, doporucuji chranit vlastni privatni klic AES-256 sifrou, jak je popsano v tomto clanku.

Vlastni spousteni radkovych utilit jeste skryva jeden zadrhel a to dynamicky linkovane knihovny, ktere bud v systemu nemate nebo se nachazeji v jine verzi. Spustenim ldd zjistitite, ze jsou slinkovany s knihovnami libssl.so.4 a libcrypto.so.4, kterezto jsou ve skutecnosti knihovny openssl-0.9.7 a pouze nektere distribuce (RedHat, jeho klony a mozna i dalsi distra) pouzivaji toto oznaceni. Doporucuji proto vyzkouset nalinkovat libssl.so.4 na libssl.so.0.9.7 a libcrypto.so.4 na libcrypto.so.0.9.7. Pokud to budete provadet jako bezny uzivavetel (coz doporucuji), linky vytvorte v adresari obsahujici aplikaci a nastavte (a exportujte) hodnotu promenne LD_LIBRARY_PATH na jmeno adresare. Openssl je vydavana i v novejsi rade 0.9.8, ktera by mohla take fungovat, ale pouziti puvodni verzi skyta mensi riziko chyby. Upozorneni: potrebujete 32-bitove verze knihoven, pokud pouzivate 64-bitovou platformu.

    if test -z "$LD_LIBRARY_PATH"
then
LD_LIBRARY_PATH=$HOME/appl/fio
else
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/appl/fio
fi
export LD_LIBRARY_PATH

Pokud nezaznamenate uspech (uspesne vyzkouseno v Debianu, t.j. predpokladam uspech i v Ubuntu), je zde jeste druha moznost, popsana i v diskuzi k tomuto clanku stazeni knihoven volne dostupneho z CentOS a jejich nakopirovani do systemu (cimz si udelate v systemu mensi binec), ci s pravy bezneho uzivatele do adresare obsahujici instalaci a nastaveni LD_LIBRARY_PATH.

Predpokladam, ze pokud se vam podarilo zprovoznit nativni verzi, budete ji pouzivat radeji nez spoustenou pres wine. Pravdepodobne brzo zjistite, ze se vam na prvni pokus nebude zobrazovat spravne diakritika. Duvod je prosty: vetsina modernich distribuci defaultne podporuje kodovani UTF-8, nicmene mozna vase distribuce obsahuje i fonty se znakovou sadou v kodovani ISO-8859–2, kterou podporuje tato aplikace a je nutne upravit prislusne nastaveni terminalu.

Na zaver jeste dve zminky k naposledy zminenemu clanku a diskusi – obsahuje dve dobre ideje
 – vytvoreni specialniho uzivatele pro spousteni podepisovani (obcas se zapomenete zalogovany na konzoli a nestesti muze byt hotovo)
 – napad pro vytvoreni skriptu na hledani „spravnych“ openssl knihoven

zde je tedy takove jednoduche cviceni:

 #!/bin/sh

# cd ~user/appl/fio
# rm libssl.so.4 libcrypto.so.4

for d in /lib /usr/lib $(grep ^/ /etc/ld.so.conf /etc/ld.so.conf.d/* 2>/dev/null)
do
for f in $d/libssl.so* $d/libcrypto.so.*
do
test -f "$f" -o -L "$f" &&
case "$f" in
$d/libssl.so*0.9.7|$d/libssl.so*0.9.8)
LIBSSL=${LIBSSL:=$f}
;;
$d/libcrypto.so*0.9.7|$d/libcrypto.so*0.9.8)
LIBCRP=${LIBCRP:=$f}
;;
esac
done
done

if test -n "$LIBSSL"
then
ln -s $LIBSSL libssl.so.4
else
echo "libssl.so not found in system."
fi
if test -n "$LIBCRP"
then
ln -s $LIBCRP libcrypto.so.4
else
echo "libcrypto.so not found in system."
fi

Anketa

Sveril byste svoje penize druzstvevni zalozne?