Používanie eID 3.0 na nepodporovanej distribúcii - hard way
Dnešný blog bude o tom ako rozbehať eID klienta na oficiálne nepodporovanej distribúcii (alebo lepšie povedané na distribúcii, ktorá nie je úplnou vykopávkou).
CCID čítačka
Aktuálne vydávané čítačky sú plne kompatibilné s pcsc-lite. Stačí nainštalovať pcsc-lite a naštartovať službu pcscd
ak nenaštartovala automaticky (napr. v prípade gentoo je nainštalované udev pravidlo, ktoré automaticky spustí službu po pripojení čítačky). Jej funkčnosť môžme skontrolovať príkazom pcsc_scan
.
eID klient
Aplikáciu pre komunikáciu s čítačkou je možné stiahnuť na stránke ústredného portálu verejnej správy. Ja som konkrétne sťahoval balík pre Mint 18/19.
Aplikáciu som dal do samostatného adresára a potom rozbalil.
mkdir eid cd eid mv /cesta/k/Aplikacia_pre_eID_amd64_mint.tar.gz Aplikacia_pre_eID_amd64_mint.tar.gz tar -xvzf Aplikacia_pre_eID_amd64_mint.tar.gz ar x Aplikacia_pre_eID_amd64_mint.deb tar -xvzf data.tar.gz
Následne skopírujeme aplikáciu na správne miesto (všetky príkazy pod rootom).
cp ./usr/bin/EAC_MW_klient /usr/bin/EAC_MW_klient mkdir -p /usr/share/applications/ cp ./usr/share/applications/aplikacia-pre-eid.desktop /usr/share/applications/aplikacia-pre-eid.desktop cp -R ./usr/lib/eac_mw_klient/ /usr/lib
Ďalej budeme potrebovať plugin do prehliadača. To vyriešime inštaláciou balíka disig-web-signer.
mkdir disig cd disig wget https://download.disigcdn.sk/cdn/products/websigner/disig-web-signer.mint_amd64.deb ar x disig-web-signer.mint_amd64.deb tar -xvJf data.tar.xz
Ako root skopírujeme obsah balíka:
mkdir -p /opt/ cp -R ./opt/disig/ /opt mkdir -p /etc/chromium/native-messaging-hosts/ cp ./etc/chromium/native-messaging-hosts/sk.disig.websigner.1.0.7.java.json /etc/chromium/native-messaging-hosts/sk.disig.websigner.1.0.7.java.json mkdir -p /etc/xdg/autostart/ cp ./etc/xdg/autostart/sk.disig.WebSigner.desktop /etc/xdg/autostart/sk.disig.WebSigner.desktop mkdir -p /usr/lib/mozilla/native-messaging-hosts/ cp ./usr/lib/mozilla/native-messaging-hosts/sk.disig.websigner.1.0.7.java.json /usr/lib/mozilla/native-messaging-hosts/sk.disig.websigner.1.0.7.java.json mkdir -p /usr/share/chromium/extensions/ cp ./usr/share/chromium/extensions/odbdbcaekkgabdfaabepfjgiooilmaoe.json /usr/share/chromium/extensions/odbdbcaekkgabdfaabepfjgiooilmaoe.json mkdir -p /usr/share/google-chrome/extensions/ cp ./usr/share/google-chrome/extensions/odbdbcaekkgabdfaabepfjgiooilmaoe.json /usr/share/google-chrome/extensions/odbdbcaekkgabdfaabepfjgiooilmaoe.json mkdir -p /usr/share/applications/ cp ./usr/share/applications/sk.disig.WebSigner.desktop /usr/share/applications/sk.disig.WebSigner.desktop
Qt 4
Klient pre svoj beh potrebuje knižnicu Qt 4. Ak sa nachádza v repozitároch distribúcie máme takmer vyhrané. Ak nie (Qt 4 sa začalo nahradzovať knižnicou Qt 5 okolo roku 2012), musíme ju ručne skompilovať. Budem predpokladať, že máme nainštalovaný kompilátor a všetky potrebné knižnice aj s hlavičkovými súbormi. Stiahneme Qt 4 a patche potrebné na kompiláciu s aktuálnym gcc.
mkdir qt cd qt wget https://download.qt.io/archive/qt/4.8/4.8.7/qt-everywhere-opensource-src-4.8.7.tar.gz wget http://git.yoctoproject.org/cgit/cgit.cgi/meta-qt4/plain/recipes-qt4/qt4/qt4-4.8.7/0036-qt-everywhere-opensource-src-4.8.7-gcc6.patch?h=b37d8b93924b314df3591b4a61e194ff3feb5517 -O 0036-qt-everywhere-opensource-src-4.8.7-gcc6.patch wget https://raw.githubusercontent.com/gobolinux/Recipes/b7501a9f0ba0681f51050ffefb6f1f1fe8b93353/revisions/Qt/4.8.7-r2/01-gcc6_build_fix.patch
Rozbalíme a opatchujeme zdrojáky.
tar -xvzf qt-everywhere-opensource-src-4.8.7.tar.gz cd qt-everywhere-opensource-src-4.8.7 patch -p1 < ../01-gcc6_build_fix.patch patch -p1 < ../0036-qt-everywhere-opensource-src-4.8.7-gcc6.patch
Skompilujeme
CFLAGS="-pipe -O1 -fPIC -fpermissive" CXXFLAGS="-pipe -O1 -fPIC -fpermissive -std=gnu++11" ./configure -prefix /usr/local/eid -accessibility -no-webkit -qt-zlib -qt-libtiff -qt-libpng -qt-libmng -qt-libjpeg -no-gtkstyle -no-sse3 -no-sse4.1 -no-sse4.2 -fast -opensource -no-javascript-jit -no-scripttools -script -declarative -no-declarative-debug -confirm-license -nomake "examples demos docs" make
a nainštalueme (pod rootom).
make install
Po úspešnej inštalácii môžme spustiť eID klienta pod rootom príkazom LD_LIBRARY_PATH="/usr/local/eid/lib:$LD_LIBRARY_PATH" /usr/bin/EAC_MW_klient
. Pri troche šťastia nás aplikácia poteší touto peknou hláškou, ktorá znamená, že správca balíka libcurl v debiane je kretén, ale nemá to žiaden vplyv na aplikáciu a môžme ju smelo používať.
/usr/bin/EAC_MW_klient: /usr/lib64/libcurl.so.4: no version information available (required by /usr/lib/eac_mw_klient/libpaos-communication.so)
Ak sa však zobrazí hlásenie /usr/lib/x86_64-linux-gnu/libcurl.so.4: version `CURL_OPENSSL_3' not found
znamená to, že správca balíka v našej distribúcii je tiež kretén, ale o niekoľko úrovní menší než ten z debianu. Riešenie rozpíšem v sekcii curl.
Curl
Klient eID je skompilovaný voči balíkom v debiane. Jednou z jeho závislostí je libcurl. Debian má možnosť súčasne nainštalovať libcurl3 a libcurl4. Štandardným spôsobom skompilovaný libcurl je univerzálny, má stabilné API, takže aplikácii je jedno akú verziu jej podhodíme. Dá sa však skompilovať aj s verzovanými symbolmi, vtedy nám aplikácia zlinkovaná s trojkovou verziou nebude fungovať s libcurl4. Väčšinou to nie je žiaden problém. V normálnych distribúciách sa trojkové aplikácie linkujú s libcurl.so.3 a štvorkové s libcurl.so.4. V debiane si istý inteligent povedal: „Čo tak vytvoriť balík s libcurl.so.4, ale so symbolmi z libcurl.so.3?“. Tak sme teda získali binárky vyžadujúce libcurl.so.4 s trojkovým rozhraním.
Poďme si teda skompilovať náš vlastný retardovaný libcurl.
mkdir curl cd curl wget https://curl.haxx.se/download/curl-7.63.0.tar.gz tar -xvzf curl-7.63.0.tar.gz cd curl-7.63.0 ./configure --prefix=/usr/local/eid --disable-ldap --disable-ldaps --disable-manual --disable-versioned-symbols --enable-ipv6 --enable-threaded-resolver --with-gssapi --with-libssh2 --with-random='/dev/urandom' --with-ca-bundle='/etc/ssl/certs/ca-certificates.crt' --disable-symbol-hiding --enable-versioned-symbols
Teraz musíme v súbore lib/libcurl.vers
zmeniť CURL_OPENSSL_4
na CURL_OPENSSL_3
. Skompilujeme ho pomocou príkazu make
a nainštalujeme pod rootom príkazom make install
.
Klienta eID môžme spustiť pod rootom príkazom LD_LIBRARY_PATH="/usr/local/eid/lib:$LD_LIBRARY_PATH" /usr/bin/EAC_MW_klient
.
Prílohy
Pre pridávanie komentárov sa musíte prihlásiť.
Pekná prácička, i keď eID je kompletne mimo mňa. Skúsil si do tej čítačky vložiť inú čipovú kartu, že či to reaguje a či sa dá niečo vyčítať? Elekrtičenka, platobná karta, ...
Ja som dostal na polícii túto a je to univerzálna čítačka/zapisovačka, ktorá podporuje rôzne typy kariet, medzi inými aj EMV (teda platobné karty).
A dá sa z toho niečo vyčítať? Lebo cez NFC sa na platobné karty už nezvykne zapisovať história transakcií, a ani zostatok na účte. Dosť to nas.. keď vypadne platobný terminál v bufete a mne je tá akožekreditka s gastráčmi naprt.
Nevyzerá, že by sa z toho dalo niečo rozumné vyčítať.
Ved ty nemas ani televizor, tak neodrbavaj, ze mas kreditku
ktora vypadla, to je len tvoja fantazia .....
Si abstinent co sa boji vlastneho tiena .... strng --- nazdravie .... truhlik
Tak, je pravda, že on často spomína ako nemá nič a ak má, tak je to staré lebo novému nedôveruje. V tejto dobe sa stále dá fungovať (a to bez problému) kešom. Som aj ja zvedavý čo vypotí :D On je taký jednoduchý paranoik ;)
Ja len upresním že on nemyslel kartu platobnú alebo kreditnú ale kartu kde má gastrace. Čiže nejaku ticket restaurant či dinning ticket's či ako sa to volá. Proste náhrada za papierové gastrace.
Ja som to skusal na minte 18 a stale mi to nefunguje.
Co som spravil:
- nainstaloval som samotnu aplikaciu eID(v 3.0.0). sluzba pcscd bezi - nainstaloval som d-launcher - json sa nachadza usr/lib/mozilla/native-messaging-hosts, pouzivam firefox
aplikacia bezi, citacka nacita obciansky, berie spravny BOK. Ked vsak pridem na slovnesko.sk dostavam hlasku aby som spustil aplikaciu EID
Upozornenie: Na Vašom počítači nie je spustená aplikácia pre eID. Bez toho nie je možné pokračovať v prihlásení.
Fakt neviem ako dalej. Dakujem za rady
akú máš čítačku , original program si stiahol cez slovensko sk ?
čítačku mám od nich, gemalto.
jasné program som stiahol zo slovensko.sk, verziu pre mint.
Ja som mal nainštalovanú verziu 1 a ta fungovala. Avšak musel som prejsť na novšiu verziu, a odvtedy problémy.
Hmm, beží eid klient v systrayi? Ja som to teraz skúšal a ide to v poriadku dokonca aj bez originálnej čítačky (mám notebook s integrovanou, takže sa mi nechce vyťahovať dongle zo skrine).
dobrý den neviete prosím vas ako ste vyriešili váš problém? vyhadzuje mi takú istú hlášku ako vám, vôbec neviem prečo všetko mám nainštalované a stále mi píse že nemám spustenú aplikáciu pre eID
Aplikácia ti naozaj beží?
no a zrazu to začalo fungovať. len neviem čo som, kde nastavil, že to ide :(
každopadne ďakujem za snahu a prajem pekný večer
Hmm možno že to bola chyba práve na slovensko.sk.
Pravdepodobne ano. Ako obycajne. Uz si na to len treba zvyknut. :)
Článok sa číta ako dobrá detektívka - klobúk dole - ja som to vzdal pri zistení, že potrebujem qt4 :D:D.
Nakoniec som rozbehol eID pod VirtualBox-om a windows guest OS.
Hoci ani to nebolo úplne bez výziev.