e-Személyi / KEAASZ RDP alatt?

Valakinek sikerült RDP alatt a e-személyi-t használni? Elsősorban digitális aláírásra.

Helyi gépen, e-személyi kliens és KEAASZ telepítéssel minden, mindig remekül megy sokszor telepítettm már és még többször használtam. Ezt lépjük is át.

De adott az az élethelyzet, hogy az ember távoli Windows-on dolgozik. A kártyaolvasó meg nyilván a kliens (helyi) gépre van dugva.
Jójó tudom... másoljam a távoli gépről a helyi gépre a nyamvadék PDF-et, lés írjam aká ott, majd töltsem vissza.
De a szebbik megldást szeretném. Hogy a kártyaolvasó a helyi gépen, de a távolin írok alá.
 

Ameddig eljutottam:
A távoli gépen az e-személyi kliens telepítve. RDP csatlakozéskor az intelligen kártya mint használható erőforrás be van kapcsolva. Majd csatlakozom a távoli géphez. A távoli gép Windows eszközkezelőben az eSzig intellkigtens kártya látszódik is szépen. Azon az e-kliens-t indítom, ami CAN kódot kér, megadom, és vagy 10x-i nekifutásra lát mindent, Minden zöld pipa, tanúsítvány is megnézhető. 

A távoli gépen elsőnek a KEAASZ "portable" ment. Az MSCAPI taúnsítványok között (mint a helyi használatnál) a tanúsítvány nem látszódptt. De ha PKCS11 hardveres tárat válsztottam (az eszig-pkcs11.dll megadásával+PIN kód) akkor az e-szig tanúsítvány kiválasztható volt. Ezzel ha nem is mindig, de sikerült PDF-eket aláírni. Amit nem értettem, hogy egyedül az időbélyegzés nem ment.

Na gondoltam hátha a telepített KEAASZ majd segít. Ezért a távoli gépre telepítettem... Ne tettem volna. 
A telepített most az MSCAPI tanúsítványok között látja a tanúsítványt. És alíráskor fel is ugrana az ablak ami a kártya jelszavát kérdezné, de ehelyett a "Windows Biztnség" üzen nemekem, hogy az "eSzig" kártya az "ACR122" kártyaolvasóval "Az intelligens kártya nem tudja végrehajtani a kért műveletet, vagy a kéréshez egy másik intellitgens kátya szükséges". Itt nincs is mit tovább tenni

De a telípítés jól elkszúrta a portable KEAASZ-t is. Ott most már a PKCS11 tanúsítványtár csak annyit üzen, hogy a kártyaolvasó nincs csatlakoztatva...
Ugyenezen próbálkozásra a telípetett KEAASZ meg azt, hogy helytelen a jelszó.. persze látom a sebességből, hogy meg sem próbálja ellenőrizni a kártyán.

Természetesen a telepített KEAASZ uninstall, már nem adja vissza a portable részleges működését sem... Szóval most egyik sem megy. Nyilván újraindtás, egyebek... már próbálkoztam.

Szóval a kérdés... Mivel lehet még PDF-et e-személyivel (+ időbélyegzésel) aláírni. 
Vagy sikerült-e valakinek az e-személyit  normálisan RDP alatt hasznáéni?

 

Hozzászólások

Közben a portable KEAASZ a távoli gépen újra működik... legalábbis az időbélyegzést kivéve.

De most más  hókuszpókusszal kezdtem a problémát megoldani... De itt is elakadás van.

Hagyom a fenébe Smart card megosztást RDP alatt.
Inkább magát a kártya olvasót kellene "fizikailag" az RDP-n áttolni a remote gépre.
AZ ilyen TCP over USB nem tetszik.. azt most hagyom. RDP alatt a karom..

A helyi gépen a csoportházirendben engdeélyeztem a RemoteFX résznél, hogy USB átirányítás legyen.
Ekkor az RD kapcsolatnál megjelntek a megosztható USB-s eszközök... 
A kártyaolvasó  (ACR122) naná hogy nincs benne... bezzeg a touchpad, meg az USB-s hangkártya igen... :)

Találtam egy M$ leírást, hogy az USB-s RemoteFX redirekcióra azért rá lehet erőszakolni, hogy más eszköz csoportokat is osszon meg:
https://docs.microsoft.com/hu-HU/troubleshoot/windows-client/remote/usb…
Na újat tanultam...

Kinéztem a kártyaolvasó osztályos GUID-jét az eszközkezelőben, és ahogy kell betttem a lírás alapján a regisztribe :)

Újra kapcsolódok a távoli géphez.... Helleluja... a RemoteFX USB-s eszközöknél van már ACR122 kártya olvasó...  Bekapcsolom az átirányítást.
A hardver kezelőben az UMBUs neumeráló alatt jelenik megy egy virtuál USB HUB és abban jelenik meg az olvasó.

Innen két út van:
- Vagy a Microfost generál kártyaolvasó driverét (WUDF ) telepítem rá (Ez amúgy helyi gépen simán jól műkodik). Ekkor a a kártyaolvasó látszólag jól működik, megjelenik az eSzig smart card az eszközkezelőben is. Semmi hiba.  De ennyi a siker. Az e-szig kliens nem látja, se az olvasót se akártyát. És a "certutil -SCInfo" parancs senm. Pedig ez lokál telepítésnél ad infót. Most aszondja nincs kártyaolvasó... Pedig hát mondom neki hogy van, csak nem fizikai :)
- Vagy feltelepítem rá az ACR122 driverét. De az Code 10 hibakóddal el sem indul, sárga kérdőjeles.

Szóval most ez is zsákutca... 

Mindig a "végén" akadok el :)

Még van egy utolsó lehetőség:
Az olvasót rádugom a fizikai szerverre, és beírányítom a VM-nek. Otthagyom mellette a személyim. Amikor alá kell írni, Hívom a az operátor Józsikát hogy menjen a szerverhez, és tegye az olvasóra :) És akkor a távoli gépen faszán menni fog :) Csak vicc... mielőtt valaki komolyan veszi :)

 

Szerintem csak így sikerült. Ha azonosításra használod akkor 19750-es tcp portot (eSzemélyi) átdobod a távoli gépre és az eszemélyi kliens helyben fog sípolni ha be akarsz lépni :) De amúgy a VSmartcard (https://github.com/frankmorgner/vsmartcard)-al a több NFC-s telefonból kártyaolvasót lehet varázsolni annak a driverét se szűri ki és megy mind az auth mind az aláírás része. Bezzeg az 1.6-os sír ha német firmwares cyberJacket lát (hiba nélkül ment 1.5-ön de hát a "védelem" XD)

Aláírásra akarom használni. vsmartcardot ismerem, az eredti verzón pár éve kicsit javítottam hogy e-személyivel stabilan (stabilabban menjen). Azt hiszem, azt akkor vagy itt, vagy hasonló fórumon meg is osztottam
De írtam is, nem akarok TCP-s "mellék folyamatokat" az RDP mellett... Menjen RDP-n ha már egyszer erre van kitalálva. Lenne megoldás USB továbbításra TCP-n, meg amit Te is írtál. De ezeket nem akarom.

 

Szóval úgy néz ki, hogy a legígéretesebb megoldás... még ha nem is a legszebb... (amikor a RemoteFX RDP protkollon magát az USB-s kártyaolvasót "csatlakoztatom" a távoli gépre) valahol inkább Windows szinten akad el. Mert az Eszközkezelőben (a távoli gépen) hiába látszik szépen a kártyaolvasó a WUDF (általános driver) eszköznek. És ha kártyát beteszem, akkor még alatta a eSzemélyi mint intellinegs kártya is megjelenik. Semmi hiba, majdnem olyan minden mintha lokál gépen lenne. A Winods Smart Card Provider mégsem látja. 
A különbség csak annyi, hogy nem a valós hardverek láncolatában, hanem a "virtuális" UMBus alatt megkelnő virtuális RDP USB HUB alatt csatlakozik. AMi érthető...
Szerintem a Windows-ban vagy tiltva van szándékosan, vagy nincs felkészítve hogy az UMBus alatti kártyaolvasókat is használja...
(Amúgy lokál gépen a kártyaolvasó specifikus driver helyett a WUDF driver simán jó, tehát nem hiszem hogy ennek használatával lenne a baj.)

A másik megoldás, amikor meg csak a sima intelliegns kártya megosztást kapcsolom be RDP-n, ekkor se kártyaolvasó, se eSzemélyi kártya nem jelenik meg az eszközkezelőben. AMi érthető, hiszen ez nem hardver megosztás. De a Windows SmartCard Provider (gondolkom valami belső API-n az RDP-től) simán látja a kártyát. Csak hát nem teljes funkcionalitással. Itt meg szerintem az eSzemélyi minidriver-e (eszig-md.dll) nincs rendesen erre a szeknárióra megcsinálva. Az eszig-pkcs11.dll is éppen csak hogy megy RDP-n....
 

Én arra gondolok, hogy nem véletlenül van így megcsinálva. Ha kártyával írok alá, akkor fontos, hogy meglegyen a két faktor, azaz fizikailag birtokolja a kártyát, és tudja a pin kódot a felhasználó. Ha a kártya fizikailag máshova van bedugva, akkor ezt nem igazán lehet teljesíteni. Ettől még persze meg lehet "okosítani", de nem biztos, hogy kell.

Ha arra van szükség, hogy bárhonnan tudjon aláírni a felhasználó, akkor van ma Magyarországon olyan tanúsítványkiadó, aki ezt a funkcionalitást biztosítja (felhőben történő aláírás, mobil eszközről is).

Szerintem ez így is teljesül. Hiszen a kártya nálam van, és én adom meg a PIN kódot hozzá. Azt én sosem mondtam hogy a kártya távol lenne... :) Az ott van ahol a PIN kódot is megadom.

Szerintem az aláírás biztonsága (nem IT biztonságra gondolok) tekintetében az teljesen mindegy hogy az aláírás technológialiag hol valósul meg. Hogy az most a kezemtől 10 cm-re a notebook processzorán... Vagy az 1 méterre lévő asztali PC-ben ketyegő prociban, vagy a 4500 km-re lévő távoli szerveren. Ha nagyon absztrahálunk, "csak" a vezetékhoszak változnak :D :D

Sőt pontosítok... 
Jelenlegi ismereteim szerint egyébként az aláírás lényegi része a kártyában zajlik. Hiszen abban van a privát kulcs, ami az aláíráshoz kell, és azt sosem "köpi" ki.
Ha jól gondolom a működés valami hasonló lehet: A KEAASZ a kártyából kiolvasott publikus kulcsot (tanúsítvány) és a dokumentum hash (vagy hasonló) értékét "beküldi" a kártyának. Ha a bekért PIN kód stimmel, az aláírást a kártya saját CPU-ja intéz saját hatáskörbeni. A kártyán tárolt (és amúgy nem visszaolvasható) privát kulccsal elvégzi az aláírást és annak eredményét küldi vissza a KEAASZ-nak. Ami aztán az aláírás befejezi és beleteszi a doksiba. (Az időbélyegzés szerintem hasonló, csak ott az aláírást a távoli szerver intézi a saját tanúsítványával és privát kulcsával. )

Tehát így nézve aztán a távolság édesmindegy... Mert azt a kártya csinálja. 

Na végül megoldódott. Szinte...

Eddig is ment, csak sokszor kellett volna próbálkozni. :D :D 

Alapvetően csak az RDP-nél az Intelgens kártya megosztás bekapcsolással működik. Ami jó, mert a locál gépen így nem kell hókuszpókusz, azaz bárhol beüzemelhető gyorsan.
Csak iszonyat..iszonyat..iszonyat instabilan.

Ahogy eddig is írtam, a távoli gépen az eSzig Kliens stabilan érzékeli is (ha kell CAN-t kér). De az ellenőrzésnél csak 2-3 lépésig jut aztán újrakezdi. 
Aztán 2-3 ilyen után eljut a tanúsítvánig ellenőrzésig is. Amin egy pillantara túl is lép. Aztán megiont az egészet kezdi előlről. Kb 2-3 perc múlva végül megnyigszik, és minden rendben. Minden züld pipa.

Aztán jön a KEAASZ, ami aránylag stabil amíg időbélyegzést nem kérek. Itt megint jön az instabilitás. Főleg ha az időbélyegzés előtt HASH kód kiküldés beleegyeztést lassan nyomom el. Bár lehet ez csak szubjektív érzet. Szóval több időbélyegzős aláírásnál megakad, amíg végül sikerül nekije...

De van más probléma is. A KEAASZ-ban ugyebár be lehet állítan, hogy az aláírás vizuálisan is jelenjen meg. Hogy tegye pl hozzá a fejlécbe az aláíró nevét, és dátumot . De ezt nem bírja kiolvasni a KEAASZ (java hibávát dob)- Annak ellenére hogy az elektronikus aláírás és abban benne név amúgy tökéletes. Persze ez a vizuális probléma áthidalható, ha én adom meg az aláíró nevét dierktben (vagy kihagyom), de ez nagyon gány megoldás, mégha a végeredményben ez nem is látszódik.

Szóval eljutottam olda, hogy 4-8 alkalomból talán sikerül egy teljes, időbélyegzős aláírás... 

Szóvel így egyértelmű a bizonytalanságakból és a hibákból, hogy a távoli oldal e-szig minidervere (eszig-md.dll), a java libek, és/vagy a KEAASZ nincs felkészítve az RDP-n keresztüli használatra. Valószínűleg valamilyen timeoutokkal lesz a hiba. 

Aztán továbfejleszettem a módszert. Az OpenSmartCard projektből kiszedtem az ott megtalálható minidrivert. És az eSzig által használt minidrevert lecseréltem erre. Na ezzel csak annyi változoot, hogy most 1-3. próbálkozásra megy az aláírás.
Illetve a KEAASZ már rendesen olvassa az aláíró nevét a vizuális aláíráshoz. Tehát az már biztos, hogy az eszg-hez gyárilag adott minidriver nem teljesen kompatibilis az RDP-vel. 

Kísérleteztem még a regisztriben a különféle SmartCardhoz küthető timeoutok növelésével, de as sem segített.

Na ennyire jutottam. Számomra ez már elfogadható működés.

Ha lesz időm, lehet csinálok valami patch-et az OpenSC-s miniderverhez amivel rendesen műkődhetne. Amiben megpróbálom a KEAASZ hiányosságait ebben megkerülni. 
Szerencsére opensource...
 

Na még egyet kísérleteztem, hogy nektek ne kelljen :)

Előkapartam a fiókból a pár éve az E-bay-ról guberált Dell Wyse 3040 vékony klienst. Nem is értem, RDP-hez miért egy notebookot nyaggatok, mikor egy vékony kliens pont erre való. Dizájnos kis tenyérben elférő Dell szappantartó (ami amúgy egy nano méretű Atom PC). Se hangja, se helyigénye, fogyaztása pár W...  Ismerkedés és frissítés után már ment... és meglepően szépen viszi az RDP-t... Szubjektív véleményem szerint reszponzívabb és gyorsabb mint egy i7-es notebook Wind10-es RDP kkliensével. Pedig pont ugyanazt a kapcsolatot/monitorokat/egeret, stb használja. Na de nem erről akartam itt írni...

A szappantartón amúgy egy minimál GUI-val megáldott Dell psecifikus ThinOS fut. Jópofa amúgy, semmire sem jó csak különböző távoli gépek elérésére... valami Linux alapó cucc amúgy, de mint a villám úgy bebootol :)

A szappantartó tud USB átirányítást is, ezért nosza rápattintottam az ACR 122U olvasót. Na eztután tiszta lappal indítottam a remote gépen. Minden SmartSC-s dolgot, klienseket KEAASZ-t uninstalláltam. Ami regisztriben változtatva volt, visszaállítottam/töröltem. Azt hiszem újrindítás után minden előző kisérletezlésem nyomát eltüntettem.

Aztán csak simán telepítettem az e-szig klienst és KEAASZ. Semmi, de semmi hókouszpókusz. A távoli gépen az e-szig kliens egyből olvasta is a kártyát. Egyből... És akárhányszor odadugtam a kártyát. Nem volt olvasás ujraindulás egszer sem. A KEAASZ is úgy működik mintha a helyi gépen futna. Semmi Java hiba, semmi drivert nem kell lecserélni. 10 aláírásból 10 aláírás sikerül.

Na de mi változott? Ahogy elnézem a távoli gépen, itt egy harmadik fajta RDP alapú átirányítás történik. Itt nem maga a kártya olvasó USB protokoll szinten kerül a remote gépre az UMBus alatt létrejött virtuális USB HUB-ra (am amúgy nem is működött), és nem is csak az e-szig kártya jelenik meg standalone (olvasó nélkül). Hanem most egy "Smart Card Enumeration Bus" eszköz csoport jelent meg (aminek nincs látható szüleje amúgy) és ez elatt jelenik meg egy virtuális ACR 122U olvasó. Ami mellesleg driverless lett. Illetve megjelenik egy e-szig az Intelligens kártyák között is, amit a kártyát ráhelyezem.

De ez működik 100% ban :) De na, hát végül is ez a szappantartó csak egy enterprájsz szintű cucc... :D :D :D