Jak zprovoznit fio podpis (java verze) v linuxu z flash disku

Nepouzivam java web start, protoze to v opere asi stejne nefunguje, takze poustim java aplikaci z flash disku samostatne. Na flashce mam nekolik klicu k nekolika uctum, pro kazdy klic mam extra adresar se svym vlastnim fiosign.conf, podepisovacim skriptem a podpisovym klicem, a jednu spolecnou slozku fio, ve ktere mam vlastni jary fio podpisu. Jeste to mam cele v truecrypt kontejneru, protoze flashky porad ztracim a nechci aby mel nalezce moje soukrome klice k uctu :) Takze to vypada asi takhle:

user@linux:/media/truecrypt1/fio> ls -1
bcprov-jdk16-137.jar
fio-install.sh
fio-install.cmd
fiosign.jar
local_policy.jar
podepsat.cmd
podepsat.sh
US_export_policy.jar
wget.exe
user@linux:/media/truecrypt1/ja> ls -1
fiosign.conf
fiosign.fgp
fiosign.key
fiosign.pub
podepsat.cmd
podepsat.sh

Par zkusenosti s tim, jak jsem zprovoznil fio podpis na linuxu, konktretne v distribuci openSUSE 11.1, uvadim tady, je to jednodussi nez s tou starou verzi, pokud vite jak na to :) Ale zas je potreba nainstalovat javu, coz muze byt potiz na stanicich, kde nema clovek prava roota. Stary podpis bezel i bez javy a jakekoliv instalace, vse se dalo spustit z flash a nezabralo to vice jak 3mb. Pokud budete na stroji bez root prav, da se pry cele java runtime okopirovat na flash a postet ho odtud, ale zabere to cca 100mb, coz neni zrovna malo, takze toto jsem nezkousel. Instalace podle "mojeho" postupu Vam bude fungovat pouze pokud mate heslo k sudo, a skoro zadne misto nezabere. Samotne podepisovani funguje i bez rootovskych prav. Vsimnete si, ze mam ve slozkach i skripty pro windows (.cmd), takze jsem podpis schopen poustet i na windows masinach, skripty jsou velice podobne, ale precejen jisty rozdil mezi windows a linuxem je (minimalne v obracenych lomitkach, windows nemaji wget, takze tam musi byt extra exe, windows nemaji shred...), proto to je potreba pro linux a windows platformu mit zvlast a resit to samostatne.

1. Je potreba nainstalovat javu, bezpodminecne nutna verze je nejmin 1.6, s verzi 1.5 to nefunguje, kupodivu to ohlasi chybovou hlasku, vylozene to nezhavaruje :) Na jine distribuci nez openSUSE 11.1 se bude muset pouzit treba apt-get, yum, nebo jiny nastroj, a mozna se bude i balicek s javou jmenovat trochu jinak.

sudo zypper install java-1_6_0-sun

2. Ve "spolecnem" adresari, mam ho nazvany fio, jsem si vytvoril skript fio-install.sh, ktery mi cas od casu zaktualizuje samostatnou java aplikaci ze stranek fio a zaroven zaktualizuje knihovny "policy" silneho sifrovani. Je potreba ho pustit na kazdem pc minimalne jednou a pak se doporucuje poustet ho tak jednou za mesic, aby byla aplikace vzdy aktualni. Skript se zepta na sudo heslo, protoze bez patricnych opravneni nejde kopirovat do slozky s javou policy soubory.

#!/bin/bash
echo http://www.fio.cz/apps/local_policy.jar > $TMPDIR/fio-install.wget
echo http://www.fio.cz/apps/US_export_policy.jar >> $TMPDIR/fio-install.wget
echo http://www.fio.cz/apps/bcprov-jdk16-137.jar >> $TMPDIR/fio-install.wget
echo http://www.fio.cz/apps/fiosign.jar >> $TMPDIR/fio-install.wget
wget -N --input-file $TMPDIR/fio-install.wget
unlink $TMPDIR/fio-install.wget
sudo cp local_policy.jar /etc/alternatives/jre/lib/security
sudo cp US_export_policy.jar /etc/alternatives/jre/lib/security

3. V adresari s klicem (v mem pripade se jmenuje "ja") mam vytvoreny fiosign.fonf podle nasledujiciho vzoru, pouze UZIVATELSKE_JMENO mam zamenene za moje prihlasovaci jmeno do fia. Mozna si budete chtit upravit cestu ke klici (../ja/fiosign.key - je to relativni cesta ze spolecneho adresare "fio", odkud se podpis pousti). Taky muzete nechat java aplikaci si conf vytvorit samu a pak ho okopirovat z ~/.fio/fiosign.conf zpet na flashku a upravit podle potreby.

# *** Konfigurační soubor pro aplikaci Fio podpis ***
CfgVersion = 3.0
# Konfigurace připojení
Server = podpis.fio.cz:443
Proxy =
ProxyType = UNKNOWN
# Profily. ProfileItem = login = klíč_vč_cesty.key
ProfileItem = UZIVATELSKE_JMENO = ../ja/fiosign.key
# Parametry hlavního okna aplikace
PositionX = 0
PositionY = 0
WindowWidth = 800
WindowHeight = 500

4. Vytvoril jsem si skript podepsat.sh, jehoz kopii mam v kazdem adresari z klicem. Ten poustim vzdy, kdyz chci podepsat prikazy pro ten urcity ucet. Protoze ho poustim na ruznych pc i mimo domov, shreduji po provedeni vzdy konfiguraci, aby neutekla nejaka citliva data. Fio java aplikace totiz bohuzel stejne vzdycky okopiruje fiosign.conf do domovskeho adresare aktualne prihlaseneho uzivatele, bez ohledu na paramtry prikazove radky, takze je to lepsi okopirovat skriptem, nechat java aplikaci, at si klic vezme kde ho ceka, a pak to zas po sobe bezpecne vymazat ;)

#!/bin/bash
mkdir ~/.fio
cp fiosign.conf ~/.fio
cd ../fio
java -cp bcprov-jdk16-137.jar:fiosign.jar com.fio.signer.MainFrame
shred -zu ~/.fio/fiosign.conf
rmdir ~/.fio

Tot vse, podepsat.sh by pak melo jit normalne spustit z linuxu, bud z terminalu, nebo i z grafickeho prostredi poklepanim. Okopiruje si to konfigurak, spusti fio java podpis, a po skonceni java podpisu to po sobe zase ten konfigurak smaze.

Ted nevim, ve ktere distribuci to bylo, bud ve fedora 10, nebo ubuntu 8.10, se mi stalo, ze i kdyz jsem mel nastavenou anglickou klavesnici, fio java aplikace si prepla na ceskou a neslo to v ni prepnout na anglickou, takze mi to vzdy vyhazovalo, ze se nepodarilo nacist klic ze souboru. Pokud Vam to nebude fungovat a jste si jisti, ze heslo ke klici pisete dobre, zkuste si heslo okopirovat pres schranku :) Pod openSUSE 11.1 se to chova jak ma, t.j. java aplikace pouziva systemem prave nastavenou klavesnici, ale na jine distribuci se mi to chovalo podivne.

Zpět na hlavní stránku