Portál AbcLinuxu, 10. května 2024 05:51


Dotaz: Tvorba certifikátu

10.10.2014 22:47 Pavel | skóre: 17
Tvorba certifikátu
Přečteno: 891×
Odpovědět | Admin
Zdravím, na svém ubuntu serveru bych rád dal do pořádku SSL certifikáty. Jestli to chápu správně, tak aby všechny možný prohlížeče neřvali, že jsem nedůvěryhodný zdroj, tak je nutné si nechat certifikát vytvořit na zakázku? není možné již existující znásilnit? Jak je to s tvorbou der certifikátu pro widle? Vytvořil jsme certifikát *.pem a klíč *.key. Pak jsem pem zkonvertoval na der, avšak windows klient tento certifikát neakceptuje a píše že byl odmítnut. Na čí straně je chyba?
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Josef Kufner avatar 10.10.2014 23:25 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Tvorba certifikátu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Potřebuješ certifikát podepsaný nějakou všeobecně uznávanou autoritou, např. StartSSL. Pošleš jí CSR (certificate signing request) a ona ti pošle zpět podepsaný certifikát. Privátní klíč máš celou dobu u sebe, ten jsi vytvořil spolu s CSR.

Dříve vyrobené certifikáty jsou ti na nic. Prostě si pořiď nový certifikát a máš to.

Druhou možností je založit si vlastní certifikační autoritu, ale to má svá úskalí a hodí se to jen v některých případech.
Hello world ! Segmentation fault (core dumped)
11.10.2014 01:06 lertimir | skóre: 64 | blog: Par_slov
Rozbalit Rozbalit vše Re: Tvorba certifikátu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Josef to už napsal, vytvořit a poslat CSR. Tak jen doplnění, co je certifikát a proč se pořizuje. Protože se podvrhávat dá kde co, tak je nedůvěra, že veřejné šifrovací klíče jsou podvržené a patří jinému subjektu, než za které se vydávají. Řeší se to tak, že se důvěryhodnou institucí potvrdí vazba mezi veřejnými šifrovacími klíči, účelem použití a reálnou identitou. Lze to přirovnat v reálu tomu, že oficiální listinu potřebuješ mít s ověřeným podpisem, kdy se také oficiální autorita ověří a verifikuje vazbu mezi identitou, listinou a podpisem. V digitálním světě se to ověření a potvrzení provede digitálním podpisem balíku, který obsahuje to, co je třeba svázat a potvrdit. Takže není možné existující znásilnit, protože nevytvoříš data tak, aby odpovídaly již vydanému podpisu. A finálně prohlížeč má nějaký seznam důvěryhodných subjektů (autorit), kterým věří. Tvůj server, aby nespustil varování, musí být podepsaný jednou z uvedených autorit. Buď přímo nebo zprostředkovaně, což znamená, že ta důvěryhodná autorita deleguje svoji důvěryhodnost na další subjekt tím, že pro tento subjekt vydá certifikát s oprávněním podepisovat šifrovací klíče, a tak to může být i několik kroků. Se svým certifikátem pak klientovi zasíláš i tyto certifikáty, delegující pravomoci na další autority, aby klient byl schopen ověřit, že řetězec důvěry od důvěryhodné (kořenové) certifikační autority k tvému serveru je nepřerušen. Klient typicky ještě by měl zjistit jestli certifikát nebyl odvolán (ekvivalent blokace kreditky) pomocí OCSP protokolu nebo CRL.

Takže žádná šance to spytlíkovat. To že certifikát nefunguje může být leccos. Blbě vydaný, špatně zkonvertovaný, chybně importovaný. Kam to importujete? a jaký certifikát jste vytvořili? serverový? osobní? mailový? nebo pro autoritu?
Josef Kufner avatar 11.10.2014 02:49 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Tvorba certifikátu
A když už to tak rozepisuješ, tak je vhodné dodat, že je důvěřováno všem autoritám, které má klient v prohlížeči a kterákoliv z nich může vydat falešný certifikát, což už se několikrát stalo. Takže to útoky neznemožňuje, jen trochu komplikuje a stále nemáš jistotu, kdo je na druhé straně spojení. Na to je pak potřeba přihodit DNSSEC a podobné hračky.
Hello world ! Segmentation fault (core dumped)
11.10.2014 08:39 Andrej | skóre: 51 | blog: Republic of Mordor
Rozbalit Rozbalit vše Re: Tvorba certifikátu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Příloha:

Já používám služby autority StartCom. Její kořenový certifikát je ve standardních seznamech v drtivé většině normálních systémů a prohlížečů, ba dokonce i v těch nenormálních. Certifikát třídy 1 dostaneš zadarmo a problém s nedůvěryhodností zmizí. Já většinou volím certifikáty třídy 2, které už obsahují i jméno a umístění. Za nějakých $69 se dá získat „osobní validace“, která obvykle představuje scan několika dokladů, telefonát a ověřovací dopis, a na jejím základě se pak dá vytvořit (téměř) neomezený počet osobních certifikátů i serverových certifikátů třídy 2 s platností na 2 roky.

StartCom má velice přehledné webové rozhraní, kde se člověk napřed autentifikuje osobním certifikátem (nainstalovaným v prohlížeči — stejný certifikát se používá taky k podepisování a šifrování mailů v mailovém klientovi) a pak si může všechno potřebné naklikat. Pro vytváření serverových certifikátů je nejvhodnější vyrobit pomocí OpenSSL nebo jiného vhodného softwaru CSR a na základě CSR si pak nechat vystavit certifikát. (Člověk má pak plnou kontrolu nad vytvářením a umístěním soukromého klíče.) Pro osobní certifikáty generuje StartCom rovnou PKCS#12 balíčky k okamžité automatické instalaci do prohlížeče, což znamená, že v tomto případě vše vygeneruje a CSR nepodporuje. (To je zkrátka klasický tradeoff typu pohodlí versus paranoidní bezpečnost.)

Certifikát se nedá s dnes dostupnou výpočetní kapacitou pozměnit. V tom je přece pointa certifikátů, ne? Kdyby to šlo, byl by celý tento mechanismus úplně na hovno.

Pokud jde o formát DER, každý PEM certifikát se dá do tohoto formátu převést například pomocí OpenSSL. (Konkrétní příkaz najdeš mimo jiné v přiloženém Makefile.) Ptáš se, na čí straně je chyba? Nejspíš mezi židlí a klávesnicí. Důvod odmítnutí certifikátu může být například v tom, že se správci certifikátů nedaří najít žádný kořenový certifikát, který by ho podepisoval, tedy nedaří se mu sestavit řetězec certifikátů až po nějaký důvěryhodný. Problémy tohoto typu je samozřejmě nutné vyřešit na všech systémech bez rozdílu a se všemi certifikáty bez rozdílu, jinak bude pořád „něco špatně“.

Přikládám implementaci certifikační autority i s nápovědou, v podobě Makefile. Tento Makefile používám k vytváření různých soukromých ad-hoc certifikačních autorit pro různé jednorázové projekty. Skvěle se to hodí, když si uzavřená skupina lidí chce mezi sebou podepisovat a šifrovat maily, případně sdílet nějaké soukromé weby, Jabber servery a repository. Vůbec se to nehodí pro veřejné servery, protože klienti bez nainstalovaného ca-cert.pem budou tyto servery považovat za nedůvěryhodné.

Pokud se přidává certifikát včetně soukromého klíče, u osobních certifikátů se vždy a všude používá PKCS#12 (.p12) balík. U serverových certifikátů je na UNIXu obvyklé rozdělení do souborů s certifikátem a s klíčem, zatímco na některých nestandardních platformách (Macroshit Doors) se i pro serverové certifikáty používá PKCS#12. Přiložený Makefile názorně ukazuje, jak se dá ze soukromého klíče, osobního certifikátu a certifikátů autorit vyrobit PKCS#12 balík.

Někteří správci certifikátů, případně webové, mailové a Jabber servery, odmítnou použít pro svou identifikaci certifikát, který samy nedovedou ověřit. To je docela užitečné, protože se tím člověk vyhne nečekaným problémům a hláškám o nedůvěryhodnosti serveru u klientů. Vše pak funguje jedině tehdy, je-li certifikát v pořádku. Znova ale upozorňuju, že jakmile člověk přidá samopodepsaný certifikát nebo certifikát své vlastní autority do seznamu kořenových certifikátů, bude se sice na serveru i na klientech s touto úpravou zdát všechno v pořádku, ale pro všechny ostatní klienty bude server nedůvěryhodný.

Myslím, že to je asi tak všechno, co je třeba pro začátek vědět o certifikátech. Sečteno a podtrženo, je rozumné věnovat trochu času získání certifikátů od uznávané autority. Certifikáty třídy 1 jsou zdarma.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.