Certifikát je veřejný klíč + údaje napsané na certifikátu, to celé podepsané certifikační autoritou. K jeho vytvoření privátní klíč není potřeba a certifikační autorita privátní klíč nesmí znát. Vydání nového certifikátu ke stejnému veřejnému klíči není žádný problém, stačí k tomu třeba ten původní špatně vydaný certifikát - tam máte jak veřejný klíč tak všechny potřebné údaje. Akorát se jeden textový údaj změní a podepíše to znovu.
Trochu jsem to popletl. Samozřejmě veřejný klíč. Ale i tak CA nemůže jen tak vydat něčí certifikát bez jeho zvolení. To by pak byly ověřené certifikáty jaksi k ničemu. Samozřejmě bez platného privátního klíče s tím nic nepodepíše. Jenže tady jde i o to, že ten původní certifikát se musí zneplatnit. A jaká by pak byla reakce uživatele, že jeho používaný certifikát je neplatný a o novém jaksi neví.
Certifikační autorita musí podle certifikační politiky ověřit identitu a ověřit, že žadatel disponuje privátním klíčem příslušným k podepisovanému veřejnému. Obě věci autorita ověřila, žádné údaje od žadatele nemění a jenom změní údaj, který sama autorita na certifikát přidává. Zneplatnit původní certifikát podle mne není potřeba. A i kdyby bylo, stačí ho zneplatnit až po té, co uživatel bude mít nový.
1. Technicky u zákazníků - protože vydávání certifikátů je součástí enrollmentu a běžné CSP vám nedovolí naimportovat druhý certifikát ke stejnému klíči. Zákazníkům by to nefungovalo.
2. Takový postup je v úplném rozporu s certifikační politikou. Nelze flikovat jednu chybu dalším nestandardním postupem.
3. Situace, kdyby k jednomu klíči mohlo existovat více certifikátů veřejného klíče současně, by založila solidní právní nejistotu, neboť by nikdy nebylo dokazatelné, jaký certifikát byl k podpisu přiložen (na jakém certifikátu je/byl podpis založen). Nukleární bomba pro e-podpis.
Jinak jistě, čistě "teoreticky" by to šlo.
Je pravda, že certifikační politika řeší změnu údajů jen vydáním nového nebo následného certifikátu, na nějaké "je to jen údaj přidaný CA" se nehraje, a je to tak správně.
Tomu, že k jednomu klíči bude existovat víc certifikátů, nejde zabránit. CA to samozřejmě kontroluje u sebe, ale nemůže zjistit, že jsem si ke stejnému páru klíčů nechal vystavit certifikát i jinde.
Zjistit, který certifikát byl k podpisu použit, by šlo, pokud by se podepisoval text + certifikát. Myslím, že se to tak ale v běžně používaných aplikacích nedělá. Každopádně by to nemělo vadit, příjemce potřebuje potvrzení, že zpráva byla podepsána tím certifikátem, který je u zprávy přiložen (nebo který příjemce navrhne). To, že mohla být podepsána zároveň i jiným certifikátem, mu v ničem nevadí.
1. Ano.
2. I jiný PCS provádí běžně technicky celý enrollment a celý enrollment zahrnuje i generaci nové klíčové dvojice. Celý enrollment zajišťuje jedinečnost klíče a brání i tomu, aby někdo přinesl k certifikaci klíč někoho jiného (pokud by ho předtím kompromitoval), což přispívá plnění zákonných povinností. Kdyby to bylo možné, tak by podepisující osoba mohla svůj vlastní soukromý klíč dát i nějaké třetí osobě, bílému koni, a následně tvrdit, že podpis není její.
3. Je běžnou technickou možností podepisovat (content+contentType) i signedAttrs (např. v CMS), ale právními předpisy to uložené není. Že by mohla být data podepsána jiným certifikátem může být problém, pokud údaje v certifikátech jsou ve vzájemném rozporu, což být mohou, zejména pokud obsahují omezení použití certifikátu, které český zákon sice připouští, ale žádný tuzemský akreditovaný PCS neimplementuje.
Klíčovou dvojici si většinou generuje klient na svém zařízení, CA se k privátnímu klíči klienta nesmí dostat. Pak se vytvoří žádost o certifikát podepsaná privátním klíčem. Klidně můžu žádost o certifikát použít u jedné CA a následně tu samou žádost použít u jiné CA. Ta druhá CA nemá šanci zjistit, že už jsem na základě žádosti nějaký certifikát dostal (klidně si ho můžu vytvořit sám). Stejně tak s žádostí můžu poslat někoho jiného – technicky tomu nic nebrání, brání tomu „jen“ organizační opatření, protože zaměstnanec registrační autority musí ověřit totožnost žadatele o certifikát. Podepisující osoba samozřejmě technicky může kdykoli svůj privátní klíč předat někomu jinému, obrana proti tomu je „jen“ v rovině legislativní – podepisující osoba bude i tak za podpis odpovědná do doby, než certifikát odvolá. Odpovědnosti by se mohla zbavit i před datem odvolání, pokud prokáže, že privátním klíčem mohl cizím zaviněním disponovat i někdo jiný – ale pokud jej záměrně někomu předá, je to její problém.
Z technických náležitostí klíčů zajímají certifikační autoritu pouze dvě věci – za prvé, že k danému veřejnému klíči ještě není vydán certifikát na jiné jméno. Pokud by byl, znamená to, že privátním klíčem disponuje i někdo jiný, než ten, kdo je uveden na certifikátu, a CA musí certifikát zneplatnit. Za druhé ji zajímá, zda žadatel disponuje privátním klíčem příslušným k podepisovanému veřejnému klíči – proto musí být žádost tím privátním klíčem podepsána. To brání tomu, abych si nemohl nechat vystavit certifikát k privátnímu klíči někoho jiného, a pak netvrdil,že to, co podepsal on, jsem podepsal já.
keyEncipherment je tam asi porad kvuli podepisovani zasifrovanych mejlu
http://www.earchiv.cz/b02/b0502001.php3
Vaše paranoidní řešení ale omezuje držitele soukromého klíče. Za prvé se tím zcela popírá princip, že soukromý klíč je pod výhradní kontrolou vlastníka, za druhé, jak píše pan Jirsák, co budete dělat se zašifrovanými daty, až kryptografický modul ztratíte, nebo prostě na něm něm dojde místo?
Dobrý postup generace klíče je takový, že v okamžiku vydání certifikátu si je PCS jistý, že se jedná o světově unikátní klíč a že jej má v držení právě podepisující osoba na takovém zařízení, ze kterého nebude možné jej exportovat, a současně když si i podpisující osoba může být jistá o tomtéž. V zahraničí jsou takové postupy běžné.
Co se týče situace v ČR, která je volnější, tak nevylučuji, že v některých případech bude možné podsunout vůči PCS i klíč, který již má certifikát vystaven někde jinde. PCS běžně nemá přístup do seznamu certifikátů jiných PCS, takže žádné kontroly na existenci klíče někde jinde na světě konat ovšem nemůže, nejvýše ve své vlastní databázi certifikátů. Nicméně to předpokládá programování na úrovni CSP nebo poměrně přesnou analýzu provádění enrollmentu u daného PCS a výsledná situace je stejně obtížně využitelná.
PostSignum řeší situaci vydáváním následných certifikátů:
http://www.postsignum.cz/oprava_user_notice.html
Ano, certifikační autorita nemá přístup do seznamu certifikátů jiných CA, například proto, že neexistuje žádný seznam CA. Já si klidně můžu rozjet CA na svém notebooku a vydávat certifikáty kamarádům, a žádná CA se o tom nedozví. Rozšíření křišťálových koulí pokud vím není velké ani u zahraničních CA, takže jsou na tom úplně stejně a také netuší, zda nevydávají certifikát pro klíč, ke kterému certifikát vydal už někdo jiný.
Nechat si vystavit dva certifikáty k jednomu klíči není nic složitého, stačí s tou jednou vygenerovanou žádostí navštívit nejprve jednu CA a po té druhou. Že by to bylo k ničemu a neplyne z toho žádné bezpečnostní riziko, to je věc jiná, bavíme se jenom o technické proveditelnosti. Jinak více certifikátů ke stejnému klíči se i v praxi používá, některé CA umožňují vydat následný certifikát ke stejnému klíči. Hodí se to třeba pro dešifrování e-mailů, nemusíte si archivovat privátní klíče x let zpět, ale dešifrujete pořád tím jedním.
Proč paranoidní? Podepisující osoba přeci není v systému rámce elektronického podpisu sama a podpis si typicky nedělá pro sebe! Její podpis má mít význam z pohledu spoléhající osoby tak, aby ta ho mohla využít pro případné důkazní užití. Pokud si chce podepisující osoba něco sama šudlit s klíči tak prosím, ale pro spoléhající stranu jsou takové podpisy neužitečné, protože nemají důkazní věrohodnost. Pochopitelně, že CA si můžete udělat v obýváku.
Vlastník soukromého klíče vždy bude muset využívat nějaké kryptoprostředky připravené mu výrobcem, na které se musí spoléhat. Pokud je vydání provedeno tak, že postup vede k vydání unikátního klíče s jasným přiřazením k fyzické osobě, přičemž nad tím má rozumnou míru kontroly i PCS, pak tím lépe, protože uživatelé zkazí cokoli, co zkazit mohou.
Jinak s klíčem určeným pro elektronické podpisy se nemá šifrovat obsah. Slušní PCS vydávají osobám 3 klíče. Jeden pro podpisy, jeden pro autentizaci a jeden pro šifrování obsahu. První 2 by se neměly zálohovat.
> Že by to bylo k ničemu a neplyne z toho žádné bezpečnostní riziko, to je věc jiná, bavíme se jenom o technické proveditelnosti.
Obecně technicky proveditelné to je, ovšem a) bezpečnostní rizika z toho plynou a proto bývá i této možnosti účinně technicko-organizačně předcházeno, b) pouze jsou obtížně pro útočníka monetizovatelná.
Asi jste neviděl (například Czech POINT). Ošetření z poslední věty je právě implementováno tak, že se člověk přihlásí ještě platným starým certifikátem, aby si zaregistroval certifikát nový. Po dobu překryvu platnosti se lze přihlásit oběma certifikáty. Ostatně úplně stejně autority vydávají následné certifikáty.
S tím generováním klíčů to není úplně přesné. Ale podstatné je to, že generování klíčů v tomto případě není to podstatné. Protože jeden veřejný klíč si pořád mochu nechat podepsat více autoritami. Vytvořený klíč samozřejmě není přiřazen k fyzické osobě, to přiřazení dělá až certifikát podepsaný důvěryhodnou CA.
Generovat privátní klíč jako neexportovatelný podle mne není dobrý nápad, pokud není potřeba opravdu dobré zabezpečení (typu CA) - a v takovém případě zase bude v zařízení, které se jen tak nerozbije. Jinak je ale neexportovatelný klíč nejlepší způsob, jak o něj přijít. U klíče pro podepisování e-mailů to nemusí tolik vadit, u šifrovacího klíče už je to horší. Samozřejmě neříkám, že se má klíč používat ze souboru na disku - ale vygenerovat jako soubor, privátní klíč přenést třeba na čipovou kartu, odkud se nedá exportovat, a soubor zamknout někam do trezoru nebo uložit na šifrovaný disk.
Neexportovatelný klíč Vám zajistí, že se soukromý klíč nerozeběhne po světě a zejména ne tak, že by si toho nikdo nemusel všimnout. Pokud v případě jeho použití pro e-podpis nebo autentizaci dojde k jeho zničení, tak se nic neděje, staré podpisy jsou platné, vytvoříte si nový klíč a nový certifikát a podepisujete dále. Oproti tomu šifrovací klíče je záhodno zálohovat, protože nechcete přijít o jimi zašifrovaná data.
Ohledně možných rizik jsem psal již výše, lze to vyčíst z textu. Organizačně-technická opatření spočívají v tom, že při procesu vytvoření žádosti má PCS proces generace klíčů pod svou částečnou kontrolou. Ne že by věděl, co se vytvoří za klíč, ale že ví, že se právě vytvořil zbrusu nový klíč, což lze zajistit například předáním prázdné kryptografické jednotky, ve které se za fyzického dohledu žadatele i PCS vytvoří klíč i žádost o certifikát.
Obecně kontext mého vyjadřování jsou e-podpisy právně a důkazně využitelné. Pokud si chcete s kamarádem podepisovat nebo šifrovat emaily, můžete pochopitelně postupovat mnohem relaxovaněji. I mnou výše uvedený postup je poměrně "přísný", tj. nepoužívá se vždy, v ČR nyní myslím vůbec.
Ano, váš postup je dost přísný. Při návrhu bezpečnosti se vždy hledá kompromis mezi cenou, použitelností a bezpečností. A váš postup by znamenal, že by se certifikáty prakticky nepoužívaly, protože by byly drahé a těžko použitelné. Jistě, pokud budu vytvářet privátní klíč pro veřejnou certifikační autoritu nebo pro podpis domény 1. úrovně, půjdu vaší cestou. Ale pro obyčejný kvalifikovaný podpis nepotřebuju ani zdaleka takové zabezpečení. Vždyť to má nahradit obrázek namalovaný propiskou na papíře, to není zas tak těžké být bezpečnější.
Jinak ve vašem textu je stále trochu rozpor. Už uznáváte, že alespoň šifrovací klíč je dobré mít zazálohovaný a tudíž exportovatelný ze zařízení, které jej vytvoří. Tudíž nad tím už PCS nemůže mít kontrolu. Na druhou stranu zrovna pro šifrování nemají certifikáty moc význam, místo ověření údajů CA prostě můžu poslat libovolný certifikát nebo veřejný klíč podepsaný svým podpisovým klíčem, a pro odesílatele, který mi chce poslat něco šifrovaně, to bude mít větší váhu.
Po technické stránce to problém není. Lze mít více certifikátu na jeden klíč. Ale z morálního a bezpečnostního hlediska je to blbost. Už jen k čemu potřebuješ mít více "stejných" certifikátů u více CA? Smyslem toho všeho je mít k jedné identitě pouze jeden certifikát. Tím se jednoznačně určí identita subjektu. Jakmile k jedné identitě budou více certifikátů, byť kvalifikované nebo autorizované, pak nastává pochybnost o pravosti identity. Budou se ptát nato co jsem již psal. Proč by měl mít subjekt více certifikátů? Co když ten jeden certifikát je podstrčený? Ostatně se tak stávalo, že existovaly falešné certifikáty třeba od Googlu, které se však tvářili pravé. To je stejná situace. Druhé straně nezajímá, že oba certifikáty jsou autentické. Pro ně to představuje automaticky bezpečnostní riziko.
Tohle všechno se samozřejmě týká pouze stejných hodnot (stejný klíč i parametry). V případě podepisování emailů těch certifikátů může být více, ale tam je to dáno tím, že každý certifikát je vázán na jednu emailovou adresu. Tudíž stále existuje jednoznačnost.
Následné certifikáty jsou něco jiného. Tam jde o nahrazení. Vytvoří se nový, klidně i se stejným klíčem a hodnoty. Ovšem ten původní se kvůli tomu musí zneplatnit, pokud se nezneplatní sám vypršením. Ale pořád je u tohoto zajištěna jednoznačnost - existuje pouze jeden platný certifikát.
Takže. Klidně si měj více certifikátů. Pokud se to nezjistí, pak jim nic nebude připadat podezřelé. Jakmile ale zjistí, že existuje i další "identický" certifikát, pak nastává problém. Mohou zpochybnit pravost certifikátu, byť je pravý. Právě kvůli tomuto je potřeba mít pouze jeden certifikát.
Řekl bych, že zmatek máte vy. Czech POINT neslouží na vydávání certifikátů. Autorita vydává, Czech POINT ověřuje uživatele. Autorita vydává certifikáty na stejné jméno před uplynutím platnosti starých, Czech POINT umožňuje zaregistrovat více certifikátů k jednomu účtu. Takže člověk se do Czech POINTu muže po jistou dobu přihlásit libovolným z nich. Je to tak nejen nutné (člověku se nestane, že se nemůže přihlásit), ale i vhodné (člověk si před vypršením platnosti ověří, že přihlašování novým certifikátem funguje).
Asi se shodneme, že každý víme o co jde a zároveň každý to druhé chápeme trochu jinak. Tím to celé ukončíme.
PostSignum patří České poště. A ta vydává své certifikáty pouze prostřednictvím Czech POINTu u svých pošt. Tedy úřednické pobočky Czech POINTU mimo poštu samozřejmě tyto certifikáty nevydávají. Takto to bylo myšleno.
Jsem rád, že jsme se nakonec shodli na tom, že technicky ani organizačně nelze zabránit vydání více certifikátů k jedné dvojici klíčů.
U kvalifikovaných certifikátů by to nevadilo, protože tam je podstatná identifikace osoby, a oba certifikáty musí být vystavené stejné osobě. Pokud by nebyly, znamená to selhání jedné z CA, která vydala certifikát na jméno někoho jiného. A nebo samozřejmě selhání na straně držitele privátního klíče. Pak ale není problém ta duplicita, nýbrž ten certifikát vydaný na špatné jméno. Tohle by byl stejný případ, jako ty falešné certifikáty Googlu a jakékoli jiné falešné certifikáty.
S tou shodou si mě asi pleteš. Já nejsem ten, kdo tvrdil, že to nelze. Vím, že to nelze zabránit.
S těmi více certifikáty nejde o to, zda někdo selhal. Jde o to, jak se k tomu druhá strana postaví. Z obecného hlediska platí jeden subjekt = jeden certifikát. Pokud druhá strana zjistí, že u tohoto subjektu existuje i jiný certifikát, tak mu to může připadat podezřelé a zpochybnit pravost certifikátu. Nakonec se vše může vysvětlit a usoudit, že je vše v pořádku. Ale ten humbuk kolem toho by nemusel být, kdyby existoval pouze jeden certifikát. Více certifikátů můžeš mít, ale zaděláváš si na případné komplikace.
Koukám, že v tom máte nějak zmatek. Nebo každý píšeme o něčem jiném.
Pokud certifikátu skončila platnost, tak nový lze vydat stejným způsobem jako úplně nový certifikát. Tedy vygenerujete si žádost a dojdete osobně na CzechPoint. V tom je to ošetření. Pokud to však stihnete ještě před vypršením starého certifikátu, pak můžete následný certifikát provést i oním starým certifikátem žádosti přes email. Pak je Vám nový certifikát doručen emailem a na CzechPoint nemusíte chodit. K tomu nepotřebujete jiný certifikát od jiné CA.
A ten poslední odstavec jsem měl na mysli aplikace, které pracuji se certifikáty. Pokud aplikace vyžaduje přihlášení přes certifikát a ten vypršel, tak by měly nabídnout alternativní připojení nebo nabídnou přihlášení starým certifikátem, byť již neplatným, ale v omezeném režimu, kde však umožnit nahrát nový certifikát. Nehledě na to, že tyto aplikace stejně pracuji výhradně jen s jedním, takže opět nechápu k čemu pak další certifikát od jiné CA.
Jednoduše celou dobu tady mluvíme jen o tom, k čemu je potřeba mít více certifikátů od více CA. Tyto vůbec neřeší překryvy platnosti. Leda-by ten starý certifikát již přestal platit a chtěl byste podat žádost o nový pomoci emailu za pomoci jiného platného certifikátu od jiné CA. Akorát nevím, zda je to třeba u PostSignum přípustné. Jestli takto přes email nevydávají pouze pod vlastním certifikátem od sebe jako kontrola, že jste to Vy. Pokud by byl jiný certifikát od jiné CA, pak by sice věděli identitu, ale neměli by sériové číslo, podle kterého by identitu ověřili ze své databáze.
Pokud jde osobní certifikát, tak jak Vám ho mohou poslat, když neznají privátní klíč? Chcete-li nový nebo upravený certifikát, tak se musí vytvořit zcela nový certifikát včetně privátního klíče, a to bez Vašeho vědomí nemohou udělat. Takže Petr se může nasrat jak chce, stejně to musí řešit on.
Pokud jde o CA certifikát, tak také nevím proč to posílat emailem, když jsou tyto na webu. A oznamovat změnu? Ono se to má tak, že většině za oznamovací povinnost stačí jen zveřejnění na webu. Takže nějaký info email klientům je jim ukradený.
He? CA to nevadí, protože o jiném certifikátu neví a nezajímá ho to. A překrývání platnosti? Subjekt je upozorněn, že mu bude končit platnost certifikátu. Tudíž si může s předstihem pořídit nový a přitom mu bude do konce platnosti fungovat i ten starý. Na to nepotřebuji další certifikát. A rozdistribuovat? Komu? Neznám případ, kde bych musel předávat certifikát. Krom přihlašování nebo systémům, které provádí podepisování. Ale tam by to měly mít ošetřený, že pokud skončila platnost, tak musí nahrát nový.
já bych už od nich certifikát nechtěl. Měl jsem s ním vždy problémy, buď fungoval jen pod WIN XP, a pak přestal fungovat vůbec, protože ministerstvo financí (pro fin. úřad) chtělo v certifikátu ještě něco navíc. Nas..lo mě, že to mám řešit já, proč to neřeší Česká pošta sama??? Mailem nerozešle novou verzi certifikátu... pořád je to Česká pošta, dokud se neozveš, nic nemáš, nic nefunguje. Sami neudělají nic, ani vážným zákazníkům neoznámi, že hodlají poštu na týden zavřít z personálních důvodů.
Jestlize napriklad Amazonu staci celosvetove certifikat od VeriSign k zabezpeceni vlozeni tak citliveho udaje jako je cislo platebni karty, staci urcite i nasemu bananistanu k tem hovadinam ktere donekonecna vyzaduje po obcanech, misto toho aby si je zjistil z nejake centralni evidence.
Nez zacnete placat o ochrane dat, opakovane jsem napriklad pri navstevach CSSZ videl v rohu chodby volne pohazene stare vyplnene prehledy poplatniku. Kdokoli je mohl precist, pozmenit nebo odcizit. V takovem celostatnim bordelu je cokoli zbytecne.
Takže máme mít v zákoně, že jsou uznávány certifikáty VeriSignu? To by byl úžasný zákon a velké zlepšení oproti dnešku, kdy si může o akreditaci požádat každý, kdo splní podmínky, třeba VeriSign.
Jinak Amazonu je nějaký certifikát úplně jedno, ten certifikát od VeriSignu pro zadání čísla platební karty stačí vám. A ten certifikát něco říká o doméně amazon.com. Pro účely právních úkonů ale potřebujete věrohodně identifikovat osoby.
Nemohl byste tedy uvést příklad nějaké celosvětově uznávané autority, která vydává certifikáty lidem?