Internetové bankovnictví v Linuxu (13) - Fio, družstevní záložna

Na žádost čtenářů jeden extra díl k seriálu o webovém bankovnictví – tentokrát o bankovní aplikaci družstevní záložny finanční skupiny Fio.

11.7.2005 06:00 | Ondřej Čečák | přečteno 24545×

Fio logo

O záložně, profil

Družstevních záložen je v současné době v ČR dvacet (viz seznam činných družstevních záložen) a družstevní záložna Fio (která je součástí pražského brokerského domu Fio) je u nás zřejmě největší.

Na oficiálních stránkách záložny se dočtete:

Založení záložny se datuje do roku 1996. V dubnu 1998 se stala první finanční institucí v ČR nabízející obsluhu účtů po Internetu. Kolaps sektoru družstevních záložen na konci devadesátých let přestála Fio, družstevní záložna bez větších potíží pouze s drobným úbytkem členů a vkladů. Počínaje rokem 2001 se pak obnovil nárůst počtu klientů i objemu svěřených vkladů. V létě 2004 se stala jednou z prvních záložen splňujících podmínky euronovely zákona o spořitelních a úvěrních družstvech.

Internetové bankovnictví

Jak je z výše uvedeného odstavce patrné, Fio nabízí Internetové bankovnictví. Oficiální softwarové požadavky jsou prohlížeč webových stránek (nejlépe Microsoft Internet Explorer verze 5.5 a vyšší, Netscape 6.x a vyšší, Opera 6.x a vyšší nebo Mozilla 1.x) a připojení na Internet. U požadavků je také zmíněno, že provozování podepisovací aplikace na jiných operačních systémech než je MS Windows je třeba projednat přes pobočku (o tom se zmíním ještě dále).

Výhodná je také možnost otestovaní vlastní webové aplikace předem prostřednictvím demoverze. Nejprve je nutné vyplnit formulář a poté vám na email v něm uvedený přijdou přihlašovací údaje, které stačí vložit rovnou do přihlašovací výzvy hlavní aplikace.

Internetové bankovnictví v Linuxu

Podepisování aktivních transakcí není řešeno pomocí Javy, jako tomu bylo v předchozích případech, ale pomocí zvlášť dodávané aplikace. Kvůli bezpečnosti je nutné ještě před používáním aplikace vygenerovat klientský certifikát a přinést ho k ověření na pobočku (což se u žádné banky kromě Komerční banky pokud vím nedělá, certifikáty si uživatel obvykle podepisuje sám v jednoduchém webovém rozhraní certifikační autority banky).

A zde nastává malý problém – aplikace nabízená ke stažení je ve formě binárního souboru typu win32. Zkoušel jsem ji spustit pomocí WINE, ale tam proběhla korektně pouze instalace (průběh vlastně nebyl úplně korektní, protože jednou se objevilo chybové okno o "neúspěšném expand group"), nicméně grafické nástroje alespoň pro vytvoření certifikátu nefungovaly (hlavní aplikace končila na chybě Unhandled exception: page fault on read access to 0x00000000 in 32-bit code (0x7c0024b9).

setup.exe ve WINE

Instalační program aplikace ve WINE.

Jak je uvedeno u softwarových nároků aplikace, po zaslání dotazu (doporučený email je homebanking zavináč fio tečka cz) na linuxovou verzi by se vás měl ujmout pracovník, který vám ve finále pošle vlastní binární aplikaci. Vývoj grafické Linuxové aplikace je v plánu, zatím ale bez časového horizontu. Textová verze aplikace je tedy zatím nabízena na požádání.

Pokud jste už úspěšně obdrželi a rozbalili binární aplikaci, doporučuji přečtení přiloženého návodu. Pokud je v emailu informace, že program funguje pouze s jádrem 2.4, tak se jedná o drobnou chybu – já jsem na kernelu 2.6.12 nezaznamenal potíže (chyba byla později vyjasněna, takže na ni už možná nenarazíte).

Vygenerování klíče

Nejprve je nutné vygenerovat pár certifikátů, které budete používat pro digitální podepisování; s jedním z nich navíc budete muset kvůli bezpečnosti zajít na pobočku.

Ještě dodám, že jsem vše zkoušel na distribuci Debian GNU/Linux 3.1, dodaná aplikace byla dynamicky slinkována s knihovnami pro Red Hat Enterprise Linux 3, takže pokud jste na tom jinak, může se něco trochu lišit.

Nejprve je nutné vygenerovat privátní certifikát:

uzivatel@doma:~$ openssl genrsa -des3 -out fiohb.priv.key 1024
Generating RSA private key, 1024 bit long modulus
.++++++
..........................++++++
e is 65537 (0x10001)
Enter pass phrase for fiohb.priv.key: fraze_pro_zasifrovani
Verifying - Enter pass phrase for fiohb.priv.key: fraze_pro_zasifrovani

Následně k němu ještě vytvořte veřejný protějšek:

uzivatel@doma:~$ openssl rsa -in fiohb.priv.key -out fiohb.pub.key -pubout
Enter pass phrase for fiohb.priv.key: fraze_pro_zasifrovani
writing RSA key

Poslední věcí je vytvoření souboru s fingerprintem veřejného certifikátu. Pro ten už není uveden "standardní" postup, ale je potřeba použít dodanou binární aplikaci.

Program fgp si ale bohužel nějak nerozumněl s knihovnou libcrypt.so ze Sarge, takže jsem si stáhl RPM balíček z CentOS verze 3, vybalil z něj potřebnou knihovnu, kterou jsem dočasně umístil do /usr/lib/ a nalinkoval jsem na ní, jak fgp požadoval (viz ldd fgp). Konkrétně se jednalo o balíček openssl-0.9.7a-33.15.i386 a knihovny (druhá bude potřeba později), které jsem pojmenoval /usr/lib/libcrypto.so.0.9.7a.custom a /usr/lib/libssl.so.0.9.7a.custom a vytvořil potřebné linky.

Fingerprint pak snadno vygenerujete příkazem:

sandbox@doma:~/fiohb$ ./fgp fiohb.pub.key -
34 92 17 4A AD 0C 04 AF DC A5 90 D1 5C 89 C4 D5

uzivatel@doma:~/fiohb/$ ./fgp fiohb.pub.key - > fiohb.pub.key.fgp

Soubory fiohb.pub.key.fgp a fiohb.pub.key (nejlépe asi na disketě) si spolu s uživatelským jménem a heslem vezměte na pobočku, kde zkontrolujete fingerprint certifikátu banky a váš certifikát bude autorizován a přinesený nosič bude uložen na bezpečném místě. Zadáním jména a hesla také získáte možnost přihlášení a budete tak moci používat alespoň pasivní operace.

Aktivní operace

Zprovoznit aktivní operace je už o něco složitější. Nejprve je potřeba správně nastavit aplikaci wsign. Buďto můžete všechny soubory z archivu nahrát do domovského adresáře, nebo vytvořit symbolické linky fiosign.cfg a fiosign.key (pomocí ln -s) ukazující na reálné umístění konfiguračního souboru a privátního klíče.

Konfigurace je poměrně jednoduchá, jako příklad klidně poslouží můj fungující konfigurační soubor fiosign.cfg:

#server + port
Server  www.fio.cz:444

#login do zalozny
Login   "oc"

#certifikat CA, ktera je podepsala certifikat serveru (default neni, musi byt
#uveden zde nebo v parametrech pri startu wsign)
CACert  /home/sandbox/fiohb/FioCA.pem

#proxy
Proxy proxy.domena.cz:80
#nepouzivat proxy i kdyz je nakofigurovana
NoProxy yes

# code page pro zobrazovani
# unix default je iso, win default je CP1250, dalsi platna hodnota je ASCII,
# ale
# neni implemtovana a zadna konverze se neprovadi
CodePage ISO-8859-2

# Soubor s klicem defaultni hodnota je$(HOME)/fiosign.key
#KeyFile /home/xxx/fiosign.key

#cas expirace klice od posledniho pouziti ve vterinach
KeyExpire 300

Pokud je vše správně nastaveno, můžeme přejít na vlastní řešení podepisování. Existují v zásadě dvě cesty, jak autorizovat aktivní transakce.

Ta první, perspektivnější, ale složitější, funguje tak, že pokud prohlížeč narazí na MIME typ application/fioordersign, bude vědět, že má spustit wsign s parametrem -m a dočasně vytvořeným souborem, kde je v současné době přihlašovací jméno (měl by tam být i server, ale toho jsem si nevšiml). Výhodou tohoto řešení je automatické spuštění aplikace pro podepisování a rychlá reakce na změny v aplikaci. Nevýhodou je zřejmě nutnost napsání jednoduchého wrapperu (alespoň u Mozilly/Firefoxe), který jednak zavolá program s parametrem a jednak přesměruje vstup a výstup podepisovací aplikace někam jinam než do ztracena (např. na jeden z terminálů, popř. pokud to bude možné tak také pseudoterminálů). Možné je také spoustit na pseudoterminálu další instanci Mozilly – aplikace se pak spustí v tom, ze kterého byla inicializována.

Druhou možností je ruční spouštění aplikace spolu s dobrou konfigurací. Pak bude autorizování fungovat tak, že po zadání transakce jednoduše spustíte program wsign bez parametru a necháte ověřit danou transakci. Výhodou je snazší ověření a jednodušší spouštění ze sandboxu (tom se zmíním ještě dále). Nevýhodou je nejistá budoucnost – jednou se soubor na ověřování od banky může změnit a pak je třeba počítat s tím, že by případnou nefunkčnost mohlo způsobovat právě tohle.

Já osobně jsem zvolil řešení druhé, i když se mi zdá, že první možnost bude také fungovat slušně, jenom s tím bude trochu více práce.

Vlastní zadávání transakcí pak vypadá tak, že si ve webové aplikaci zadáte libovolný příkaz, pod výzvou k podepsání stisknete pokračovat a "otevřený" soubor stornujete (Mozilla mi po úspěšném uložení souboru občas úplně spadla). Pak pomocí programu wsign transakci digitálně podepište:

sandbox@doma:~/fiohb$ ./wsign
jmeno souboru s klicem(default '/home/sandbox/fiosign.key'):
<enter>
Heslo ke klici:
fraze_pro_zasifrovani


**********DATA K PODPISU***********
Typ pokynu: Jednorázový platební příkaz
Zdrojový účet: 111001725
Množství: 50.00
Měna: CZK
Datum: 04.07.2005
Na účet: 490071003
Kód banky: 2700
Konstantní symbol: 0558
Variabilní symbol: 666
Specifický symbol:
Vaše označení: Ondrej Cecak
*************************************
??? Podepsat tento pokyn? (a/n)

a
- OK - pokyn byl potvrzen

(pokud program sám neskončí, můžete mu po chvíli pomoci stisknutím CTRL + C, popř. příkazem killall wsign)

A je to. Pokud bude na příkazu vše v pořádku, příkaz bude zpracován a odeslán k vyřízení.

Možná jste si všimli, že v některých příkladech se nespouští binární soubory od záložny přímo z uživatelského účtu uzivatel, ale z tzv. pískoviště – speciálního účtu sandbox, který má omezená práva. Vše je kvůli bezpečnosti, protože pokud si nejste jisti obsahem binárního souboru, je dobré spouštět program mimo hlavní účet – chyba v programu nebo případně zlý záměr pak nemůže snadno vést k poškození dat nebo způsobit jejich prozrazení apod.

Aplikace FIO Internetbanking/HomeBanking

Bankovní aplikace Fia je svým designem podobná hlavním stránkám FIO a je dostupná v českém jazyce. Po přihlášení se dostanete na přehled zůstatků na účtech, nicméně není problém si toto výchozí chování změnit.

Microsoft Internet Explorer 5.5 Mozilla 1.7.8 Opera 8.01

Microsoft Internet Explorer 5.5 *** Mozilla 1.7.8 *** Opera 8.01.

Navigace v aplikaci je řešena vodorovným dvojitým menu, kde je na prvním řádku určena hlavní volba a na řádku pod ním jsou další podrobnější odkazy.

Hlavních možností je celkem šest – Přehledy, Správa účtů, Podání pokynu, Nastavení (ve kterém se dají nastavit speciality u některých hlavních voleb), Globální nastavení a poslední volba slouží k odhlášení.

Pod první možností (či rovnou kartou) Přehledy se skrývají poměrně bohaté možnosti přehledu o účtech. Jednak zde najdete přehled zůstatků (v levém menu si můžete snadno a rychle nastavit k jakému datu zůstatky chcete, popř. můžete exportovat tabulku do souboru formátu MS Excel), přehled pohybů na účtu a provedených transakcí (které se dají snadno filtrovat podle různých kritérií), denní a měsíční zůstatky, přehled trvalých příkazů a informace o účtu.

Další volba Správa účtů slouží k zadání nebo nastavení termínovaného vkladu s obnovou, vkladu s výpovědní lhůtou, spořícího účtu s výpovědní lhůtou a běžného vkladu bez výpovědní lhůty.

Následuje možnost Podání pokynu, kde můžete zadat jednorázový, hromadný a trvalý příkaz k převodu, avízo, přesun na účtu (přesun v rámci podúčtů) a výpověď (včetně převodu finančních prostředků jinam).

V předposlední kartě Globální nastavení rychle zjistíte datum posledního přihlášení (včetně IP adresy), platnost hesla, které si zde můžete také změnit, možnost nastavení ukládání filtrovacích pravidel při hledání transakcí, nastavení intervalu automatického odhlašování, volbu stránky, která se zobrazí po přihlášení a zobrazování hlavičky.

Přehled převodů. *** Nastavení pohledu Správy účtů. *** Zadání trvalého příkazu (odkaz se otevírá v novém okně).

Závěr

Aplikace bez problémů fungovala v Mozille (která sice nezobrazovala menu rychlé volby, což ale vůbec nevadí), Opeře (ve které zmíněné menu fungovalo stejně jako v IE) a Konqueroru (kde se menu rovněž nezobrazovalo); ELinks z neznámého důvodu stále zobrazoval pouze hlavní stránku. Fio HomeBanking se mi poměrně líbil, je v něm vše potřebné, ovládání je intuitivní a bez problémů všechno funguje jak má.

Poděkování:
Na závěr bych rád poděkoval všem z Fia, kteří mi rychle a ochotně poskytovali všechny potřebné informace a nejen to. FIO družstevní záložna nám také odpustila poplatky za účetní položky (vedení účtu je standardně zdarma). Kdyby byla podpora Linuxu fungovala podobně i u ostatních, nebyl by snad ani žádný seriál o zvláštnostech internetového bankovnictví v Linuxu potřeba. Děkujeme.
Online verze článku: http://www.linuxsoft.cz/article.php?id_article=896