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ó:
Mindenkinek az emlékei között
[...] Akadnak olyanok is,
amelyeket még barátainak se
tár fel, legfeljebb saját magának,
de magának is csak
hétpecsétes titok gyanánt.
/Fjodor Mihajlovics
Dosztojevszkij/
2013. február 28.  
 CryptScript (SL4A + PHP for Android) 
   
Most nem mennék bele abba, hogy mik az előnyei és a hátrányai a script nyelveknek. Azt viszont mondhatjuk, hogy ha nagyon gyorsan és fájdalommentesen kell valami Proof-of-Concept kódot farigcsálni, akár fejlesztőkörnyezet nélkül, akkor jól jöhet egy ilyen nyelv. Ez igaz Windows operációs rendszereken, de a különböző Linux változatokon is... Akár az Android esetében is...

De milyen script interfészek, utasítások érhetők el Android esetében? A Scripting Layer for Android (SL4A) pontosan egy ilyen csomagot biztosít a lelkes felhasználóknak. Segítségével el lehet érni többek közt GUI-elemeket, a GPS és BlueTooth kapcsolat paramétereit, a kamera interfészét egyszerű Python, Perl, JRuby, JavaScript hívásokon keresztül. Sőt, PHP-n keresztül is a PHP for Android (PfA) révén...

Számomra elsősorban az érdekes, hogy mi az a kriptográfiai tudás, ami ezen egyszerű hívásokon keresztül használható. Bár, a PfA projekt fejlesztői (és a hátterében álló Irontec) a 2010 nyarán elérhetővé tett első (v0.1) verzió után nem sok új kiadással lepték meg a rajongókat, azért a v0.3 változatra elérték, hogy az OpenSSL library-k is részévé váltak ezen Android csomagnak (PHP v5.3.3 alapon).

Ha valaki belenéz a PfA apk csomagjába, akkor láthatja, hogy egy régi OpenSSL 0.9.8h adja a kriptográfiai hátteret, azonban az alapvető funkciókat ez is meg tudja valósítani: tud lenyomatokat számolni, tud RSA kulcsokkal műveleteket végezni, akár lenyomatokat RSA titkos kulccsal kódolni (digitális aláírást létrehozni) is. A szűk keresztmetszetet nem is a régi OpenSSL, hanem a PHP v5.3.3 adja, mert:
    These constants were added in 5.4.8.
    OPENSSL_ALGO_RMD160, OPENSSL_ALGO_SHA224, OPENSSL_ALGO_SHA256, OPENSSL_ALGO_SHA384, OPENSSL_ALGO_SHA512
... mert csak a PHP v5.4.8 verzióval kerültek be az újabb, ma már erősen ajánlott algoritmusok. Az algoritmusok azonosítói, illetve az openssl_sign() függvény leírása egyébként kicsit félrevezető, hiszen lenyomatképző függvényt kell megadni változtatható paraméterként (nem aláíró algoritmust), viszont RSA helyett más meg nem választható a lenyomat aszimmetrikus kódolásához. Tehát, ami kipottyan a végén az egy sha1WithRSAEncryption aláíró algoritmus révén létrehozott digitális aláírás. Ha megvannak hozzá a szükséges kriptográfiai kulcsaink, akkor ki is lehet próbálni a CryptScript mintakódot!


A CryptScript futtatásának előfeltétele természetesen az SL4A és PfA telepítése...


... illetve a PHP forráskódon kívül egy titkos kulcsot tartalmazó PKCS#12 állomány felmásolása.


Ha ezek megvannak, akkor lehet próbálkozni! A mini workflow elején egy állományt kell kiválasztani. A jelen kódban ez a lépés csak illusztráció, de a PfA tartalmazza a file_get_contents() függvényt, úgyhogy akár valóban le is lehet kérdezni egy állománylistát pl. egy távoli, e-közigazgatási szerverről.


A kiválasztott dokumentum tartalmát a jelen kód csak aláírni ("Sign") tudja (lenyomatot számol és továbbadja), a többi funkció szintén csak illusztráció.


A PKCS#12 állományban rejtjelezetten tárolt titkos kulcshoz be kell kérni a jelszót, PIN kódot, majd a hozzáférés megszerzése után már végre lehet hajtani az aláírási műveletet.


Ha minden jól ment, akkor az alkalmazás visszaadja a kiválasztott dokumentum digitális aláírását, amit akár fel is lehet tölteni a szerver oldali, e-közigazgatási portálra.


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