Je bezpečné exportovat privátní klíč certifikátu a nahrát ho na "cizí" server?

erecept

Dobrý den,

v krátkosti popis situace:
- konkrétně se jedná o vystavování ereceptu
- SUKL poskytl webovou aplikaci, přes kterou je možné erecepty vystavovat
- tato webová aplikace pro "podepsání ereceptu" vyžaduje vybrat v počítači cestu k exportovanému privátnímu klíči certifikátu (formát pfx) + k němu zadat heslo
- konkrétní postup pro export je popsán zde: https://www.epreskripce.cz/sites/default/files/soubory/jak_vyexportovat_podpisovy_certifikat_v01.pdf

- moje otázka zní: je bezpečné vystavovat na "cizí" (i když v tomto případě se jedná o "důvěryhodný" SUKL) server export mého osobního podepisovacího certifikátu?


Cek

Dobrý den,

v krátkosti popis situace:
- konkrétně se jedná o vystavování ereceptu
- SUKL poskytl webovou aplikaci, přes kterou je možné erecepty vystavovat
- tato webová aplikace pro "podepsání ereceptu" vyžaduje vybrat v počítači cestu k exportovanému privátnímu klíči certifikátu (formát pfx) + k němu zadat heslo
- konkrétní postup pro export je popsán zde: https://www.epreskripce.cz/sites/default/files/soubory/jak_vyexportovat_podpisovy_certifikat_v01.pdf

- moje otázka zní: je bezpečné vystavovat na "cizí" (i když v tomto případě se jedná o "důvěryhodný" SUKL) server export mého osobního podepisovacího certifikátu?

Moc nechapu proc by ta webova aplikace mela nahravat ten certifikat na server SUKL pokud jenom podepisuje data, ktera tam posilate....

erecept

- jen doplním, že ten proces "vybrání certifikátu" vypadá přesně takto: https://www.epreskripce.cz/sites/default/files/soubory/videoman_web_lekar_v01.mp4 (čas 5:02)
- mně to přišlo jako klasické okénko pro upload, ale možná se pletu?

harrison314

vyexportujes ten certifikat len s public klucom a uploadnes ho tam.

Skid

Pokud by slo skutecne o privatni klic, je to samozrejme nesmysl.  ;D ;D ;D ;D To by pak krapet ztratil funkci.
-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
G! d- a s: C++ BAHSL++ P+ L++
E--- W+ N-- K- w-- O- M- V- PE Y
PGP- t--- !tv b+ DI- D+ e++ h--
------END GEEK CODE BLOCK-----


j

Pokud by slo skutecne o privatni klic, je to samozrejme nesmysl.  ;D ;D ;D ;D To by pak krapet ztratil funkci.
Ale vubec bych se tomu nedivil ... ono totiz kdyz chces neco jako podepsat na webu, tak to muzes udelat jedine js. A tomu tudiz musis predat tu privatni cast klice, a co s ni udela ve skutecnosti nemuzes nijak ovlivnit - klidne ji muze nekam poslat.

Alternativne to muze vypadat tak, ze se ten klic uploadne na server a podepise se to az tam. Coz je samo uplne spatne ale je to prece statni sprava.

Aby se vubec dalo mluvit o nejaky bezpecnosti a nejakym smyslu, musel by zcela lokalne a zcela offline vznikat nejaky podepsany XML, a az ten by se nekam uploadnul.

je bezpečné vystavovat na "cizí" (i když v tomto případě se jedná o "důvěryhodný" SUKL) server export mého osobního podepisovacího certifikátu?
PFX není certifikát, ale privátní klíč – proto se s ním musí zacházet bezpečně. (Certifikát je veřejný.) Vy ten privátní klíč nevystavujete na cizí server, „pouze“ ho předáte cizí aplikaci, která na základě toho privátního klíče vytvoří elektronický podpis. Otázka tedy je, zda té aplikaci důvěřujete. Teoreticky by bylo vhodné, aby vždy bylo umožněné vytvořit elektronický podpis i vlastními prostředky, ale nevím, zda v tomto případě existuje podporovaný způsob, jak to udělat.

Že to vypadá jako klasické okénko pro upload je dané tím, že to je jediný způsob, jak v prohlížeči získat přístup k souboru.

V.

Pro tazatele: v onom čase okolo 5. minuty se nic zásadního s privátním klíčem neděje, je použit k podpisu. Onen klíč je pořád v (lokálním) počítači. Směrem do internetu z lokálu odchází ověřená zpráva.

Jirsáka si nevšímej, to je zdejší tro*l, lepší je ho ignorovat, pokud možno několikrát.

Pro tazatele: v onom čase okolo 5. minuty se nic zásadního s privátním klíčem neděje, je použit k podpisu. Onen klíč je pořád v (lokálním) počítači. Směrem do internetu z lokálu odchází ověřená zpráva.
To si myslíte, nebo jste ověřoval zdrojové kódy té aplikace a máte ověřeno, že každý, kdo tu aplikaci používá, používá verzi sestavenou z vámi ověřených zdrojových kódů?

Tazateli samozřejmě reálně nic jiného nezbývá, než ten privátní klíč té aplikaci poskytnout. Ale je správně, že ho to zarazilo, a je správně mu napsat, že opravdu poskytuje svůj privátní klíč aplikaci, o které nic neví, což je špatně – a že správně by to tak být nemělo.

Já nezpochybňuju to, že se ta aplikace tak má chovat. Jenže jako autor velmi podobné aplikace jsem si vědom toho, že kdyby ta aplikace ten privátní klíč a heslo vzala a odeslal na server, drtivá většina uživatelů nemá šanci to zjistit.

A jinak to považuju především za problém webových prohlížečů, které se pořád snaží být platformou pro desktopové aplikace, implementují kde jakou hloupost, ale elektronický podpis neimplementují. Takže nám, autorům podepisovacích aplikací v prohlížeči, pak nezbývá než si JavaScriptem říct o soubor s privátním klíčem a heslo (což vůbec není bezpečné, a funguje to v ČR na naši národní výjimku – v rámci EU takový podpis není považován za věrohodný), a nebo se to musí řešit přes Javu nebo nativní plugin do prohlížeče (a pak zase spouštíte cizí kód a můžete jenom doufat, že podepíše opravdu to, co tvrdí, že podepisuje). Navíc nativní pluginy jsou pro každý prohlížeč jiné, s Javou je také problém, aby ji uživatel měl vůbec nainstalovanou, měl pokud možno aktuální verzi a měl správně nakonfigurovaný prohlížeč, aby se z něj Java WebStart aplikace spustila.

Jirsáka si nevšímej, to je zdejší tro*l, lepší je ho ignorovat, pokud možno několikrát.
Jistě, jedinou správnou odpověď v diskusi je nejlepší ignorovat. Kdybyste alespoň napsal, co konkrétně je podle vás na mé odpovědi špatně…

Skid

Jistě, jedinou správnou odpověď v diskusi je nejlepší ignorovat.

Kdo lze, ten krade, a muze i zabit...  ;D ;D ;D
-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
G! d- a s: C++ BAHSL++ P+ L++
E--- W+ N-- K- w-- O- M- V- PE Y
PGP- t--- !tv b+ DI- D+ e++ h--
------END GEEK CODE BLOCK-----

MD

Citace
A jinak to považuju především za problém webových prohlížečů, které se pořád snaží být platformou pro desktopové aplikace

Nemají prohlížeče nějakým způsobem standardizovaný přístup ke smartcard? Kdyby ten klíč byl na kartě, odeslat by se nedal. Samozřejmě, pořád by si aplikace mohla podepsat, co chce.

Jirsákova stará

Jistě, jedinou správnou odpověď v diskusi je nejlepší ignorovat.

Jasně jsem ti říkala, že na víkend přijede na návštěvu maminka, že máš začít místo toho věčného vyžvaňování uklízet!!! V obýváku ještě stojí opadaný vánoční stromek!!!


Nemají prohlížeče nějakým způsobem standardizovaný přístup ke smartcard?
Nemají. Prohlížeče umožňují použít privátní klíč na kartě (buď přes systémové úložiště nebo přes PKCS#11) pro klientskou autentizaci klientským certifikátem v HTTPS, ale i to je interní věc prohlížeče, nijak to není přes API zpřístupněné webové stránce. Pak existuje Web Crypto API, které snad bude v budoucnosti řešit i podepisování, ale dnes je z toho reálně použitelná snad jen žádost o vydání nového certifikátu.

erecept

Děkuji všem za odpovědi,

zatím se spokojím s tím, že SUKLu se "musí" důvěřovat