Slobodný softvér k (starému) elektronickému OP

Pretože eID klient ma nepresvedčil, podujal som sa napísať pár jednoduchých programov na prácu s elektronickým občianskym preukazom (minulej generácie):

  1. ovládač skeid pre knižnicu OpenSC. Nahrádza PKCS #11 modul slúžiaci na podpisovanie (či dešifrovanie.)
    https://github.com/jurajsarinay/OpenSC/tree/skeid

  2. skripty v jazyku Python na prihlasovanie či zobrazovanie údajov uložených v čipe
    git clone https://sarinay.com/code/pyskeid.git

Hoci na mojich počítačoch to funguje, veľa to neznamená. Kto vie, nech testuje. Zišla by sa najmä dobrá duša s macOS, aby sa ovládač raz súčasťou OpenSC mohol stať.

Programátorky a programátori, pridajte sa prosím s vidličkami, záplatami či pripomienkami. Podpora iných druhov či verzií preukazov by mala byť hračka. Ja však iný nemám.

Ak máš poruke preukaz a chuť programovať, ozvi sa, naprogramujeme spolu.

17 Likes

Skvelý počin. Bolo jasné že “je to spraviteľné”, keďže príslušné API sú v podstate štandardné, len sa do toho nikomu nechcelo.
Dávno mal byť zdrojový kód k eID klientovi verejný.
Ak by to bola normálne udržiavaná aplikácia, imho by to veľa ľudí používalo/integrovalo. Lebo k oficiálnemu sw nie je známy ani len changelog(edit: changelog je, viď. nižšie), ani release plan…

@sarinay čo chýba aby to fungovalo s “novým OP”? (tým asi myslíš vydávaný od 1.12.2022, áno?)

Parada Juraj, urcite to skusim.
Len taka mala poziadavka. Nedalo by sa to druhe repo preniest tiez na GitHub, aby sme pripadne mohli vyrobit aj nejaky PR alebo Issue?

Vopred vdaka.

1 Like

Mňa zaujalo to prihlasovanie. Ak by niekto spravil nejaké dočasné ukladanie bok, tak by to riešilo notorický problém s prihlasovanim stále dokola pre iné subjekty. Resp. Výrazne to zrýchlilo.

1 Like

@Lubor Changelog pre eID klienta je dostupny a (zatial) aj aktualizovany:

https://eidas.minv.sk/downloadservice/eidklient/windows/eID_klient_release_notes.txt

Changelog pre ostatne aplikacie:

3 Likes

Môj kód funguje len s preukazmi vydávanými od leta 2021 do novembra 2022. Pod novými myslím nazoaj doklady s bezkontaktným rozhraním vydávané od decembra 2022. Neviem, čo presne chýba, na to by som musel taký preukaz na chvíľu dostať do rúk. Preto tu hľadám iných dobrovoľníkov či dobrovoľníčky. Napísal som, že to bude hračka, v najhoršom prípade bude treba takmer celý proces zopakovať :slight_smile:

Starší preukaz by som si na rozdiel od nového možno vedel na chvíľu požičať. Pretože preň už neeixstujú certifikáty na kvalifikovaný podpis, nemá ale PKCS #11 veľmi zmysel.

To v skutočnosti netreba. BOK si opakovane pýta eID klient, karte stačí raz a bude ťa prihlasovať kým ju nevytiahneš. To len ja som to tak naschvál nenaprogramoval. Kto má chuť, môže zmeniť poradie niektorých riadkov…

To, že BOK karte treba len raz, mimochodom platí aj pre nekvalifikovaný (zdokonalený?) podpis. Po prvom prihlásení BOKom môžeš (z pohľadu karty) opakovane podpisovať bez akýchkoľvek kódov.

V OpenSC zas možno nastaviť PIN caching (pretože karta na každý jeden kvalifikovaný podpis vyžaduje KEP PIN).

2 Likes

Mam mac s M1, starsiu citacku a OP z jari 2022. Ako viem pomoct?

1 Like

Jasnačka, ja som nad tým rozmýšľal. Tam by to ale indexovali vyhľadávače a to si neprajem(e).

Otazka je, ci by sa to nedalo nejakym sposobom aplikovat aj na iPadOS, kedze M1/M2 su ARM, ktore su pouzivane aj v iPadoch :slight_smile: Chcelo by to asi aj nejaku integraciu do Keychain Access a DriverKit.

Otestuj prosím OpenSC v duchu tohto:
macOs Quick Start

V prvom kroku treba namiesto posledného release použiť môj ovládač. Ak máš chuť, skompiluj sám, alebo rovno celé nainštaluj odtiaľto (asi treba mať GitHub konto).

Skús s oboma podpisovými certifikátmi voľačo (neškodné) podpísať, jednak “priamo” použitím opensc-pkcs11.so alebo cez OS/tokend (o tom ale ja neviem takmer nič) …

Ktovie.
Ale na Raspberry Pi OS (arm64) to funguje výborne :slight_smile:

Ahoj, tiez mam Mac M1, citacku staru asi 5 rokov a OP zo septembra, ale nie som programator, ak by si potreboval pomoct napis.

Super. Moja chyba že som nevedel. Pred nejakým časom (zopár rokov) som so skupinou adminov riešil že by sa im changelog veľmi zišiel, nevedeli sme to nájsť, pýtal som sa na MV, odpoveď bola že nie je, ale že si to zapísali. Odvtedy som žiadne nové info nedostal, tak som mylne predpokladal…

:open_mouth:
8.5 z 9 bezpečákov práve striaslo.

Ja sa zase neviem úplne rozhodnúť, či by ich nemalo viac strašiť, keď ten bok tam zadávajú ľudia toľko krát, že sa im vyšúcha na numpade alebo sa zvýši šanca, že si ho niekto okolo už zapamätá. Prípadne si ho zmenia na 6 nul, aby to bolo celé rýchlejšie na prepínanie. Prípadne rovno dajú Eid niekomu s kódmi lebo na to nemajú nervy.

5 Likes

Tam by to ale indexovali vyhľadávače a to si neprajem(e).

Prečo?

1 Like

:sweat_smile:

5 Likes

Skusil som rozbehat na Linuxe / Ubuntu, ale predpokladam, ze starsia karta nie je podporovana:

Traceback (most recent call last):
File "~/Downloads/pyskeid/pyskeid_read_data.py", line 19, in <module>
from pyskeid_common import connect_card, perform_eac
File "~/Downloads/pyskeid/pyskeid_common.py", line 23, in <module>
from smartcard.CardType import ATRCardType
ModuleNotFoundError: No module named 'smartcard.CardType

S inou verziou preukazu to (zatiaľ) určite nefunguje. Tamtá chyba ale znamená, že asi nemáš nainštalovanú knižnicu pyscard. Závislosti nájdeš v README. Na Ubuntu skús azda

apt-get install python3-pyscard