Kormányablak, Ügyfélkapu, magyarorszag.hu, kormany.hu
KORMÁNYABLAK, ÜGYFÉLKAPU - A ZÁRT AJTÓK MÖGÖTT...
(nem hivatalos e-kormányzati témájú oldal)
  
BEMUTATKOZÁS 
E-KÖZIGAZGATÁS 
IT BIZTONSÁG 
  
































  Mottó:
Ubi dubium, ibi libertas.
Ahol kételkednek, ott szabadság van.
/latin közmondás/
2017. március 25.  
 eIDAS: LibreOffice, eSZIG kártya, direct democracy 
   
Az alábbi előadás a Szabad Szoftver Konferencia 2017 rendezvényen hangzott el.



Ha az ember körülnéz a közösségi médiában, akár magán a Facebook hírfolyamán is, akkor azt látja, hogy ha összejön 200.000 Like, azért cserébe az emberek egészen hajmeresztő dolgokat vállalnak be: magukra öntenek egy vödörnyi jéghideg vizet, vagy megpróbálnak egyben lenyelni egy kanálnyi fahéjat. Pedig, 200.000 Like ennél lehet nagyobb hatalom is. Ismerve a hazai jogszabályokat, 200.000 Like, vagy inkább 200.000 aláírás már a kormányzatra is hatással van: 200.000 aláírás alapján már akár egy országos népszavazást is el lehet rendeltetni. A jelen leírás pontosan a népszavazási jogszabályokban leírtakból kiindulva elemzi az eSZIG kártya, illetve a LibreOffice szerepét és az aláírásgyűjtési folyamat támogathatóságát.





Mivel elektronikus folyamatokat vizsgálunk, ahol hiteles dokumentumok kerülnek létrehozásra, ezért óhatatlan, hogy magáról az elektronikus aláírás technológiáról szóljunk.

Jogszabályok
Maga a jogszabályi háttér, ami a dokumentum-hitelesítésről és a hitelesítés-szolgáltatókról szól elsősorban, 1999-ben született meg az Európai Unió szintjén (1999/93/EC), irányelvként. Ezt porolta le 2014-ben az eIDAS rendelet (910/2014/EU). Az új jogszabály nem csak erősebb lett – irányelv (Directive) helyett rendelet (Regulation), azaz minden tagállamnak szó szerint kell átvennie -, hanem a lefedettsége is nőtt, hiszen már nem csak a dokumentum-hitelesítést, hanem a felhasználó-hitelesítést is körbejárja. A kriptográfián túlmenően adatok közlekedtetéséről és ehhez szükséges gateway rendszerekről (eIDAS-Node), kommunikációs protokollokról is szól: határokon átívelően, a tagállamok között (cross-border) is kell tudni küldözgetni bizonyos azonosítókat, vagy attribútumokat. Ezzel nem csak a közigazgatási, hanem a piaci szereplők ügymeneteit is lehet támogatni (igaz, ez utóbbiak, vagyis a piaci szereplők számára történő adatszolgáltatáshoz szükséges a felhasználó jóváhagyása is). Az eIDAS rendelet köré épülő többi hazai jogszabály (elektronikus ügyintézésről szóló törvény és végrehajtási rendelet) részletesen szabályozza ezeket a lehetőségeket.

Műszaki szabványok
Az első szabványok, amik a kriptográfiához kötődnek még a távközlési világban születtek meg. A mai napig is X.509 szabványként hivatkozzuk meg a tanúsítványra vonatkozó adatformátumot, ami az ITU (International Telecommunication Union) szabványosító szervezet ITU-T X.509 dokumentumát jelöli. A jelen téma szempontjából fontos XML elektronikus aláírásra vonatkozó adatstruktúra leírása is viszonylag réginek számít, hiszen a jogszabállyal (1999/93/EC) közel egyidőben született meg (IETF RFC 3075 szabvány 2001-ben, majd annak frissítése 2002-ben, IETF RFC 3275 azonosító alatt). Ez került később kiegészítésre, hogy megfeleljen mind a jogi adattartalmi feltételeknek, mind az elektronikus aláírásra vonatkozó teljes életciklus támogatottságának (pl. bekerültek az időbélyegek, illetve a különböző típusú visszavonási adatok). Ez a szabvány XAdES név alatt (ETSI TS 101 903) az ETSI (European Telecommunications Standards Institute) gondozásában több verziót is lépett, de 2010-re ez is elérte a legmagasabb fejlettségi fokot: azóta nem változott. Az elektronikus aláírás adatstruktúra helyett ezután inkább az azt befoglaló dokumentumformátumra összpontosítottak a szabványosítók. A Java világban már régóta alkalmazott ZIP csomagba ágyazott XML (és egyéb) állományok modellje ihlette meg az elektronikus aláírás munkacsoportot is, így született meg az ASiC szabvány (ETSI TS 102 918), aminek legfrissebb változatát 2013-ban adták ki. Úgy tűnik tehát, hogy a műszaki szabványosítási folyamatok is lezárultak.

Kulcstároló eszközök
Bár, korábban is lehetett elektronikus aláírás létrehozására alkalmas eszközöket (pl. PKI chipkártyákat) beszerezni, de a költségek, illetve a felhasználási lehetőségek hiánya miatt nem terjedtek el. Az eSZIG kártya ezzel szemben minden állampolgárnak térítésmentesen jár az eSIGN applet által eltárolható titkos kulccsal és tanúsítvánnyal együtt. Ennél könnyebben nem lehet ellátni az esetleges felhasználókat a szükséges eszközökkel.

Alkalmazások
Az elektronikus aláírások kezeléséhez eleinte külön alkalmazásokra volt szükség, de várható volt, hogy a dokumentumkezelő alkalmazásokban is megjelenik ez a réteg. Ma már tud elektronikus aláírásokat létrehozni és ellenőrizni többek közt az Adobe Acrobat Reader (CMS/PKCS#7), a Microsoft Office (XAdES/ASiC) és a LibreOffice (XAdES/ASiC) is. Ezek már kellően felhasználóbarát megoldásoknak tűnnek.

Kriptográfiai algoritmusok
Az elektronikus aláíráshoz is használt RSA algoritmus mögötti prímfaktorizáció, mint matematikai értelemben vett nehéz probléma kapcsán ma már egyre többet hallani a közelgő végről. A kvantumszámítógépek jelentette veszély valós (ha a Shor algoritmus alapján történő prímfaktorizáció lépéseit végre tudják hajtani), de egyrészt a jelenleg kapható megoldások (pl. D-Wave Systems modelljei) még erre nem képesek, másrészt a kvantumszámítógépeknek is ellenálló algoritmusok szabványosítási folyamatai elindultak, igaz, előreláthatólag csak 2025-re fejeződnek be (addig is meg lehet valósítani ezeket az algoritmusokat, de szabvány hiányában ezek vélhetőleg el fognak térni a majdan véglegesített változatoktól). Maga az elektronikus aláírás technológia tehát nem fog eltűnni a kvantumszámítógép után sem, csak lehet, hogy RSA algoritmus helyett pl. SPHINCS algoritmust kell majd alkalmazni.


Az elektronikus aláírás technológia tehát kiforrottnak tekinthető, de a felhasználóbarátságon még lehet javítani. Az mindenesetre nagy eredmény, hogy ma már nincs szükség külön alkalmazások telepítésére és megismerésükre, hiszen a különböző dokumentumkezelők önmagukban is képesek az elektronikusan aláírt, hitelesített adattartalmak megjelenítésére, illetve a háttérben az elektronikus aláírások létrehozásához és ellenőrzéséhez szükséges műveletek elvégzésére.



Mivel az elektronikus aláírás technológia olyan területeken is alkalmazásra kerül (sőt, elsődlegesen olyanoknál számít igazán), amelyek megbízható működése, nagy rendelkezésre állása alapvető követelmény (legyen szó közigazgatásról, katonaságról, kritikus infrastruktúráról), ezért fontos, hogy ne legyen gyártófüggőség, illetve adott esetben gyors reagálásokra is legyen lehetőség (forráskódok szintjén történő hibakeresés és javítás miatt). Ehhez azonban egyrészt az adatformátumok leírása is nyílt szabványokon kell, hogy alapuljon, másrészt a kezelésükhöz szükséges alkalmazásoknak a forráskódja is elérhető kell, hogy legyen nyíltan. Ez az igény a hazai jogszabályoknál is megjelent már a közszférára vonatkozólag (először a 1479/2011. (XII. 23.) Korm. határozatnál, majd a 1236/2016. (V. 13.) Korm. határozatnál, illetve a 1604/2016. (XI. 8.) Korm. határozatnál).



A felhasználóbarátság mellett fontos a fejlesztőbarátság is, hiszen ettől is függhet, hogy milyen könnyen építhetnek a modellre különböző megoldásokat, ettől is függhet, hogy hány szolgáltatás jelenhet meg a piacon, amelyeket a felhasználók igénybe tudnak venni. A Microsoft Office (OOXML) és LibreOffice (ODF) között ezen a téren már látványos eltérések vannak mind a dokumentumstruktúra szintjén, mind az elektronikus aláírás, mint beágyazott XML állomány szintjén. Az előbbinél rengeteg állomány és metaadat szerepel, míg az utóbbinál elegendő négy állományt kezelni tudni, illetve az elektronikus aláírási formátum is csak a legszükségesebb adatokat tartalmazza. A fejlesztőbarátság szempontjából a LibreOffice mindenképpen jobb választás.




A LibreOffice több operációs rendszeren is futtatható, míg a Microsoft Office szerényebb képességekkel bír, ezáltal a különböző környezetekben felhasznált kriptográfiai rétegek is többfélék lehetnek. A LibreOffice esetében az elektronikus aláírás, mint XML állomány adatstruktúra létrehozásáért és feldolgozásáért Aleksey Sanin XML Security Library kódja felelős. Ha tanúsítványhoz kapcsolódó vagy kriptográfiai művelet végrehajtása szükséges, akkor ez a réteg továbbnyúl az alsóbb szintek felé: Microsoft Windows esetében a Microsoft CryptoAPI hajtja végre a feladatot, a többi környezetben a Mozilla NSS. Maga a kódolt lenyomat előállítása a titkos kulccsal történik, ami viszont egy SW vagy HW kulcstárolóban található (a mi esetünkben az eSZIG kártya egy HW kulcstároló), ezért a dokumentum alapján kiszámolt lenyomatot még át kell adni a kulcstárolóval kommunikáló rétegnek (pl. kártya driver). A rétegek kapcsán néhány kisebb-nagyobb módosításra szükség volt, hogy a teljes, elképzelt folyamatot meg lehessen valósítani. Először még 2012-ben került összeszerkesztésre egy olyan dokumentum, amely egyaránt megfelelt az elektronikus aláíráshoz kapcsolódó követelményeknek, illetve a LibreOffice működési logikának is. Ez részt is vett egy együttműködési teszten, amit az ETSI szabványosító szerv rendezett. A pozitív tapasztalatok mellett előjött néhány hiányosság is, amelyek később hibajegyként is bejegyzésre kerültek. Az egyik módosítással SHA-256 alapú elektronikus aláírások is támogatottakká váltak a v5.2.0 verzióval (2016. nyár), a másik pedig az ECDSA algoritmusra is kiterjesztette a támogatást a v5.4.0 verzióval (2017. nyár), ami az eSZIG kártya miatt létfontosságú. A LibreOffice tehát alkalmassá vált arra, hogy a manapság használt kriptográfiai algoritmusokat teljes mértékben támogassa.



Az eSZIG kártya tehát egy olyan kulcstároló, amely együtt tud működni a LibreOffice dokumentumkezelővel. A hírek alapján ráadásul ez tanúsított eszközzé is vált 2016. május 27-én, tehát a jogszabályban leírtaknak megfelelően így már alkalmas minősített elektronikus aláírás létrehozására is, vagyis az eIDAS rendelet szerint a saját kezű aláírással azonos joghatású dokumentumokat lehet a segítségével összeszerkeszteni. De nem csak ezen elektronikus aláírás létrehozására alkalmas eSIGN applet miatt lehet hasznos az eSZIG kártya. Szemben más PKI chipkártyákkal, ezen még három másik alkalmazás is található: az eID applet, az ePASS applet és egy eNEK (MIFARE) applet. Az eNEK (MIFARE) a tömegközlekedés, elektronikus jegyrendszer kapcsán lesz érdekes, az eID és ePASS applet viszont sokféle adatot tárol lekérdezhető módon az eSZIG kártya tulajdonosáról. A nyilvántartásokról szóló jogszabály tartalmazza az aktuális (folyamatosan bővülő) listát a tárolt adatokról. Maga az eSZIG kártya is külön jogszabályt kapott, de szerves részét képezi a 2012-ben újratervezett, központi közigazgatási szolgáltatásokra épülő modellnek. Az elektronikus aláíráshoz kapcsolódó részek engedélyezik a korábbi, hagyományos felhasználási utat is, azaz amikor a felhasználó maga rendelkezik a titkos kulcsot tároló eszközzel, de lehetőséget ad arra is, hogy az állampolgár egy megbízható aláíró szervert, egyfajta elektronikus közjegyzőt, az AVDH (Azonosításra Visszavezetett Dokumentumhitelesítés) szolgáltatást vegye igénybe, aki a nevében eljár, aláír. Ez utóbbi esetben azonban szükséges, hogy a felhasználó egy megfelelően erős (pl. kétfaktoros) felhasználó-hitelesítés révén, a KAÜ (Központi Azonosítási Ügynök) rendszeren keresztül lépjen be. Mindkét megoldás használható, de néhány megkötés azért létezik: fontos különbség a két modell között, hogy az elektronikus közjegyző esetén csak teljes bizonyító erejű magánokirat tud keletkezni, míg a jelen tanulmány témája, az aláírásgyűjtő ív egy közokiratnak számít. A közokirat esetében pedig eSZIG kártyát kell használni. A folyamat egésze kapcsán érdemes még tudni, hogy a papír és elektronikus alapú folyamatok között már létezik átjárási lehetőség: ha egy papírt kell elektronizálni, akkor arra egy hiteles másolatkészítő rendszert, mint szolgáltatást lehet igénybe venni.




A népszavazási téma pontosan azért került kiválasztásra, mert viszonylag szigorú követelmények vonatkoznak rá. Ha ezeket meg lehet ugorni, akkor ennél egyszerűbb folyamatoknál is alkalmazható lesz a modell. A követelmények szigorúak, hiszen egyrészt közokiratról van szó (aminél az eSZIG kártyára kell támaszkodni az elektronikus aláírás létrehozásánál), másrészt saját kezű aláírást követel meg a jogszabály (ami az eIDAS rendelet alapján minősített elektronikus aláírással váltható ki), harmadrészt nem csak egy-egy féllel kell kommunikálni, hanem 200.000 darab elektronikus aláírást kell begyűjteni (amire alapvetően egy webes felületű portál lehet a legalkalmasabb). A népszavazási témának viszont csak a második, középső fázisa érdekes most, ami magáról az aláírásgyűjtésről szól. Ami ez előtt történik (a kérdés benyújtása és hitelesítése), illetve ez után történik (népszavazás elrendelése és lebonyolítása), az érdektelen. Ez utóbbi esetében ráadásul igen komoly matematikai háttér szükségeltetik, hiszen szemben az aláírásgyűjtéssel, ahol egyértelműen be kell tudni azonosítani az állampolgárokat, addig itt pont az anonimitásra kell nagyon ügyelni. Mindemellett tetszőleges két szereplő összejátszását is meg kell tudnia gátolni a modellnek (ld. Dr. Huszti Andrea PhD dolgozatát). Ezekről tehát nincs szó, nem beszélve az eltérő típusú szavazási modellekről (pl. Democracy 2.1 rendszer Karel Janacek ötletei alapján), ahol nem csak egy pozitív jelölés adható meg, hanem akár több is, illetve negatív jelöléseket is lehet használni, sőt, akár a sorrendezéssel is igazságosabbá lehet tenni a választási rendszert.

Mi is kell tehát egy webes űrlapos, eSZIG kártyát használó, LibreOffice dokumentumformátumnak megfelelő adatot gyártó szolgáltatáshoz? Először is az eSZIG kártya eszközkezelője (driver). Legalábbis általában ez jó ha van, de természetesen lehet akár az APDU byte-ok szintjén is kommunikálni a kártyával, driver nélkül (pl. OpenSC segítségével). Ha az eszközkezelő települt, akkor egy kis menedzsment felület is elérhetővé válik, amin keresztül bárki ellenőrizheti, hogy mi az a tanúsítvány, amit a közigazgatás a nevére bocsátott ki.

Szükség van egy böngészőre is (amiben a webes felületet meg lehet jeleníteni), illetve természetesen a kiszolgáló oldalán futó kódra is. Ez a kód rakja össze a papír alapú közokirattal képileg és tartalmilag megegyező elektronikus űrlapot, az aláírásgyűjtő ívet (közokiratról lévén szó, a képi megfelelőségre is ügyelni kell). Az űrlap megjelenítése előtt be lehet léptetni a felhasználót, ami révén lekérdezésre kerülhetnek az adatai (akár a saját adatbázisból, akár a közigazgatási adatbázisokból a KAÜ rendszeren keresztül, akár az eSZIG kártyáról az eID vagy ePASS applet-ből) és a már kitöltött űrlapnál elegendő egy gombot megnyomni a küldéshez. Ha ez megtörtént, akkor a háttérben elkezdi összepakolni a kód a LibreOffice dokumentumformátumot a kitöltött űrlap alapján, illetve az elektronikus aláírási réteg (az XML elektronikus aláírás állomány) létrehozásában eljut a lenyomat elkészítéséig. A lenyomatot kell valahogy elküldeni az eSZIG kártyához...

A lenyomat sokféleképpen juthat el az eSZIG kártyához. A felhasználóbarátabb esetekben akár a webes felületről valamilyen JavaScript révén megkaphatja egy localhost-on figyelő (NPAPI-mentes) alkalmazás, vagy Push Notification üzenet révén akár egy korábban regisztrált NFC-s Android telefonra is elküldhető. Ezután már csak az eSZIG kártyát kell az olvasóra tenni és megtörténik magának a lenyomatnak a kódolása. Kevésbé felhasználóbarátabb esetek is léteznek: jelen esetben is egy ilyen megoldás kerül bemutatásra, a PKCS#11 interfészt használó OpenSC révén. Kevésbé felhasználóbarát, mert parancssoros, illetve nem specifikus célú, viszont azok számára is kipróbálhatóvá teszi a folyamatot, akik nem tudnak vagy nem akarnak programozni. Ha a lenyomat kódolása és annak visszaküldése (a kiszolgálóra) megtörténik, akkor a felhasználó által látható folyamat véget is ér.




Az elektronikus aláírás létrehozása után következik az elektronikus aláírás ellenőrzése. Ez már alapvetően a Nemzeti Választási Iroda feladata (az azonosítók és egyéb adatok összevetése mellett), de természetesen még maga az aláírásgyűjtő ívet kezelő portál is megteheti, hiszen a Kormányzati Elektronikus Aláírás-Ellenőrző Szolgáltatás (KEAESZ) az ellenőrzés eredményéről egy bizonylatot is kiad (elektronikus aláírással ellátott PDF állomány formájában). Egy ilyen bizonylatot pedig ki merne megkérdőjelezni?


A folyamat eredményeképpen létrejött LibreOffice formátumnak megfelelő állomány tehát mind az elektronikus aláíráshoz kapcsolódó követelményeknek, mind a megjeleníthetőségi követelményeknek megfelel. Ha ezt a folyamatot sikerül felhasználóbarát módon megvalósítani, akkor ennél egyszerűbb folyamatokat még könnyebben lehet létrehozni. Ez a mintafolyamat csak egy ötletként szolgál arra vonatkozólag, hogy mi mindenre lehet jó a LibreOffice és az eSZIG kártya.

Sajnos, a dolognak van egy szépséghibája: az elektronikus ügyintézési jogszabály, azaz a 2015. évi CCXXII. törvény 51. § (2) c) alapján "a népszavazás előkészítésére" (pl. aláírásgyűjtésre) pont "nem kell alkalmazni" az e törvényben megfogalmazott szabályokat. Nem kell, de nem is tiltott az alkalmazás, mindenesetre emiatt teljesen szabályozatlan ez a téma. Az ok, amiért mégis esélye lehet az itt leírtaknak, a polgári perrendtartásról szóló jogszabály, a 2016. évi CXXX. törvény 324. § (1) pontja, amely "közokiratról készült másolat bizonyító ereje" feltételeit írja le, általánosságban. A polgári perrendtartás alól "a népszavazás előkészítésére" vonatkozó folyamat sem kap felmentést. A jogszabályi pont értelmezése nehézkes, szükség van konzultációra a Nemzeti Választási Iroda szakembereivel. De akkor sem kell kétségbe esni, ha jelenleg nem lehet elektronizálni ezeket a folyamatokat, hiszen a jogszabályok folyamatosan változnak. És ne feledjük: egy ilyen, közvetlenebb demokráciát biztosító rendszer ígéretével Izlandon, 2016. október 29-én a Píratar párt 14.5%-ot szerzett a parlamenti választásokon...

Kapcsolódó anyagok:
 vissza 
   
  info@kormanyablak.org
info@ugyfelkapu.info