Kvalifikovany certifikat (openssl)

Petr Vejsada daemon na nospam.exe
Čtvrtek Srpen 7 10:53:26 CEST 2003


Dan Ohnesorg wrote:

> No povinna zcela jiste je, pokud mate ve jmene diakritiku. Nevim ted, jestli

Ano, zjistil jsem to a potvrzuji, ze pokud mate diakritiku, musite ji mit i v 
certifikatu, potazmo tedy v zadosti.

> to byla ICA nebo ne, ale kdyz jsem se o to zajimal asi pred pul rokem, tak
> jsem zjistil, ze kvalifikovany certifikat obsahujici identifikator MPSV mi
> podepise jen jedina ceritifkacni autorita a ta mi nepodepise PEM verzi, ale

To je zajimave, mozna se tedy od doby pred pul rokem neco zmenilo, ale mam 
docela priznive informace. Zacal jsem komunikovat s ICA a bud se zmenil 
jejich pristup, nebo jsem narazil na znaleho a ochotneho cloveka (je jim pan 
Pavel Cekal). Ten mi jednak potvrdil, ze je-li ve jmenu diakritika, nemohu ji 
odriznout a zaroven nabidl, ze mu mohu poslat zadost o certifikat 
vygenerovanou cim chci a on ze mi to otestuje, zda lze takovou zadost bez 
problemu zpracovat na RA (registracni autorite). Tedy jsem jeho nabidku 
vyuzil a na druhy pokus uspel. Na prvni pokus jsem neuspel jen proto, protoze 
jsem do zadosti napsal i CN, coz byt nesmi. CN generuje CA podle jejich 
politiky. Domnival bych se, ze tedy nadbytecnost CN nebude vadit, ale vadila. 
To je jen detail, proste neuvadet CN.

> jen verzi vygenerovaou jejich windows only programem, resp. ActiveX
> komponentou, ke ktere mam absolutne nulovou duveru. Tak jsem jim napsal, ze
> privatni klic je od toho privatni ze ho nikdo nezna a tim mene nejaka jejich
> ActiveX komponenta. Neobtezovali se odpovedet.

Pokud se na celou vec podivam z pohledu tech 99% (?) uzivatelu Win, chapu, ze 
pro vetsinu techto lidi je problemem vubec pochopit principy asymetricke 
kryptografie. Zde se jim dava jakasi moznost, aby to mohli zacit pouzivat. 
Ackoli sam bych Active-X komponentu pro generovani klicu zcela jiste 
nepouzil, myslim, ze nebezpeci hrozi z uplne jine strany, nez je Active-X. 
Soukromy klic je soukromy, to je pravda, ale muze se stat, ze bude existovat 
Vas soukromy klic a vy (nebo kdokoli jiny, kdo treba ani v zivote nevidel 
pocitac) budete vlastnit soukromy klic aniz byste o tom vedel. CA samozrejme 
muze vygenerovat par klicu s vasimi osobnimi udaji a podepsat ho a vy se 
nemuzete nikterak branit. To se nejspis nestane, ale s rozsirujicim se poctem 
RA hrozi nebezpeci spis odtud. To je ale politika a o tom jsem psat ani 
nechtel, tak zpet k technickym vecem.

openssl.cnf jsem upravil tak, aby bylo mozne pouzit vsechny polozky, ktere ICA 
podporuje (tedy temer vsechny, IP adresu, url a tak jsem tam nedaval, ale to 
uz si kazdy muze dodelat). Delku polozek jsem si, priznavam, vymyslel, takze 
mozna nekde bude jine omezeni, nez mam zde napsane.

[ req_distinguished_name ]

name                            = Name (Jmeno)
name_max                        = 64

givenName                       = Given Name (Krestni jmeno)
givenName_max                   = 64

surname                         = Surname (Prijmeni)
surname_max                     = 64

pseudonym                       = Pseudonym
pseudonym_max                   = 64

initials                        = Initials (Inicialy)
initials_max                    = 16

generationQualifier             = Generation Qualifier (Generacni rozliseni)
generationQualifier_max         = 16


countryName                     = Country Name (2 znaky kod) (C)
countryName_default             = CZ
countryName_min                 = 2
countryName_max                 = 2

localityName                    = Locality Name (Mesto, obec) (L)
localityName_default            = Praha

stateOrProvinceName             = State or Province Name (Kraj, okres) (ST)
stateOrProvinceName_default     = Ceska republika


0.organizationName              = Organization Name (Obchodni nazev) (O)

0.organizationalUnitName                = Organizational Unit Name (Organizacn
i jednotka 1) (OU)
1.organizationalUnitName                = Organizational Unit Name (Organizacn
i jednotka 2) (OU)

0.title                         = Title (Titul 1)
1.title                         = Title (Titul 2)

homePostalAddress               =  Address (Postovni adresa)
homePostalAddress_max           = 64

emailAddress                    = Email Address
emailAddress_max                = 64

-------------

Nejasnost mi zustava v polozce postalAddress, kterou podporuje ICA a kterou, 
zda se, nepodporuje Openssl. Koukal jsem do 
/usr/src/openssl..../crypto/objects a tam se vyskytuje jen polozka 
homePostalAddress, kterou jsem tedy napsal do tohoto konfiguracniho souboru. 
Nevim, zda je to totez jako postaAddress, nejspis ne, proto bude asi lepe 
tuto polozku nepouzit a tim to bude vyreseno :-)

v3_req jsem upravil takto:

[ v3_req ]

# Extensions to add to a certificate request

basicConstraints = CA:FALSE
keyUsage = nonRepudiation, digitalSignature, keyEncipherment, dataEncipherment

do keyUsage at si kazdy napise, co vlastne chce, je treba na to dat pozor, CA 
by mela udelat certifikat na to, co je od ni zadano (alespon tak jsem to 
pochopil z jejich webu pod odkazem Stanovisko ICA a Microsoft k ...)

Pro testovani jsem pouzil par klicu RSA s delkou 4096b (neprotestovali), hash 
sha-1.

Pokud mate unicode terminal, je uz vyhrano, staci uz jen pustit neco jako:

openssl req -config openssl.cnf  -newkey rsa:4096 -nodes -out newreq.pem -sha1 
-utf8 -keyout privkey.pem

a vyplnit co chcete vyplnit.

Pokud nemate unicode (jako ja), vyresil jsem to, sice do komfortu to ma velmi 
daleko, ale stale mnohem lepsi nez Active-X, ze ;-)

Vytvorime si soubor, kde na kazdem radku bude jedna polozka certifikatu v 
poradi, v jakem openssl bude po nas zadani polozek pozadovat. Toto udelame v 
iso-8859-2. Prozeneme ICONVem (napr. iconv -f iso-8859-2 -t utf-8 <input 
>output) a postveme na to openssl:

openssl req -config openssl.cnf  -newkey rsa:4096 -nodes -out newreq.pem -sha1 
-utf8 -keyout privkey.pem <output

tedy output = ten soubor vytvoreny ICONVem.

Vezmeme newreq.pem a odneseme s obcankou a ridicakem na RA, to by melo byt 
vse.

Upozornuji, ze nemam kvalifikovany certifikat, zatim jen takto vygenerovana 
zadost byla otestovana na ICA panem Cekalem a shledana v poradku.

> nechodi podpis, kdyz se ten certifikat v openssl i podepise, tak v msie neni
> videt cestina. Coz by podle me melo byt OK, protoze kdyby tim trpely
> certifikaty vydavane ICA tak uz by se asi nekdo ozval. Sam nevim, protoze
> jsem nikdy nevidel jejich certifikat obsahujici diakritiku.

Zkousel jsem kvalifikovany certifikat nahodne vybraneho cloveka (lze ziskat na 
webu ICA) a MSIE 6 diakritiku neukaze. Nebo s nim neumim zachazet.

> No asi ne, dalo by to moc prace. Bez PAM se da smime pouzivat v muttu.

WoW!, diky za tip.

-- 
Petr /daemon(zavinac)svoboda(tecka)cz/



Další informace o konferenci Linux