ot Rumen(9-08-2004)

reiting (35)   [ dobre ]  [ zle ]

Printer Friendly Variant za otpechatvane

CHAST 2

Sledvashta stupka: Suzdavane na sobstveni sertifikati

Vupreki, che povecheto CAs shte Vi generirat dvoika klyuchove zaedno sus sertifikat s publichen klyuch, Vie mozhete sami da si generirate dvoika klyuchove i (samopodpisani) sertifikati. Neka preminem stupka po stupka neobhodimite etapi za da mozhete sled tova da poiskate doverena (sertifikatsionna organizatsiia)CA da podpishe Vashiiat sertifikat.

Klyuchovete i sertifikatite, generirani v tezi primeri mogat da budat izpolzvani ot vsiako prilozhenie, poddurzhashto standartite: RSA [3], DSA [4] i X.509 [5]. Vupreki fakta, che shte ogranichim nashite primerni stsenarii do Apache [6], Tomcat [7] servlet [8] konteiner, Vie mozhete da polzvate tezi tehniki s drugi prilozheniia, vklyuchvashti Ueb-uslugi polzvaiki suotvetno tehnite konfiguratsionni metodi.

Dva raboteshti instrumenta za rabota s klyuchove/sertifikati sa: OpenSSL [9] - biblioteka ot kriptografski funktsii s vklyucheni programi ot komanden red za tiahnoto izpulnenie; i Keytool [10] - programa za rabota s klyuchove i sertifikati, vklyuchena kato chast ot JDK [11] (platforma za rabota i razrabotka na ezika Java) na Sun.

OpenSSL

Tui kato OpenSSL paketa vklyuchva i drugi funktsii, kato SSL/TLS funktsii, nie tuk shte razgledame samo funktsiite mu za generirane i upravlenie na klyuchove/sertifikati. Slednata komanda generira RSA chasten klyuch ot koito mozhe da se poluchi publichen klyuch:

openssl genrsa -out private_key.pem 2048

Ako zhelaete da zashtitite svoia chasten klyuch s parola (edna dobra ideia) - izpolzvaite edin ot -des, des3 ili -idea klyuchovete, v zavisimost ot tova koi algoritum za kriptirane na parolata zhelaete da izpolzvate. Dulzhinata na klyucha (v bitove) tuk e 2048, koeto e obshtoprietiia minimum za RSA-klyuchove.

Ako puk iskate da generirate DSA dvoika klyuchove eto dvete stupki. Purvo suzdaite DSA parametur fail:

openssl dsaparam -out dsa_param.pem 2048

Sled (priklyuchvane na) gornata stupka,mozhe da generirate i realniia DSA-klyuch:

openssl gendsa -out private_key.pem dsa_param.pem

Tui kakto i v primera s RSA po-gore, ako iskate da zashtitite svoia chasten klyuch s parola izpolzvaite edna ot slednite optsii: -des, -des3 ili -idea.

I dvata primera po-gore izpolzvat PEM kato izhoden format, koito paketira Base64 ASN1 [12] DER danni s ASCII zaglaviia (headers). Za da preobrazuvate PEM-failovete kum PKCS#12 [13] format (za polzvane s Tomcat ili mnogo drugi Ueb-brauzuri) izpulnete slednata komanda:

openssl pkcs12 -export -in pem_formatted_file -out pkcs12-formatted-file

Vse oshte ne sme priklyuchili. Neobhodim ni e sertifikat s publichen klyuch, koito da raboti sus suotvetniiat chasten klyuch. SHTe zapochnem sus suzdavane na podpisan ot nas (samopodpisan) X.509 sertifikat:

openssl req -new -x509 -key private_key.pem -out certificate.der

Tazi komanda interaktivno pita potrebitelia za nuzhnata informatsiia, otnosno subekta za koito se generira sertifikata (Ueb-survur ili potrebitel), tsialata informatsiia se izpolzva za da se identifitsira subekta na sertifikata s publichen klyuch; toest da se prikrepi subekt kum publichniiat klyuch. Ako generirate tozi sertifikat samo s testova tsel tova e dostatuchno. Obache za povecheto realni prilozheniia e neobhodimo sertifikata da bude podpisan i ot doveren CA. Podrobnostite po tozi protses sa razlichni za razlichnite CA, no povecheto shte iziskat i priemat - Iskane za Podpis na Sertifikat (CSR). Slednata komandaZa shte go generira:

openssl req -new -key private_key.pem -out certificate_request.csr

Zabelezhete, che tazi komanda se razlichava ot poslednata samo po lipsata na -x509 optsiiata (koiato samopodpisva sertifikata). Rezultata ot tazi komanda - CSR veche mozhe da bude izpraten na CA, polzvaiki iziskvaniia za tova nachin. Sled kato CA e proverila identichnostta na subekta (otnovo tezi stupki sa razlichni za razlichnite CA) CA shte izdade podpisan sertifikat.

Kombinatsiiata ot chasten klyuch i sertifikat s publichen klyuch veche mozhe da se izpolzva v PKI-suvmestimi prilozheniia, t.e. da se aktivirat SSL-vruzki s Vashiiat Tomcat servlet konteiner, kakto shte vidim sled malko.

Keytool

Generirane na dvoiki klyuchove i upravlenie na sertifikati s izpolzvane na keytool e malko po-prosto ot izpolzvaneto na OpenSSL. Naprimer, vmesto da triabva da suzdavate otdelno PKCS#12 konteiner za klyuchove, keytool suzdava Java Konteiner za Klyuchove (JKS-Java Key Store), kato chast ot protsesa na generirane na dvoika klyuchove/sertifikat. Ot druga strana keytool ne predlaga priblizitelno ednakva funktsionalnost v sravnenie s OpenSSL. Naprimer, keytool ne mozhe da vmukva ili izvezhda chastni klyuchove v/ot konteiner za klyuchove.  Zapochvame s generirane na RSA dvoika klyuchove (zaedno s suotvetniia samopodpisan sertifikat) izpolzvaiki keytool:

keytool -genkey -keyalg RSA -keysize 2048 -keystore my_keystore.jks -alias me

Tazi komanda shte Vi poiska neobhodimite za sertifikata danni, kakto v primera s OpenSSL po-gore. Optsiiata -alias Vi pozvoliava da dadete 'ime' (psevdonim) na dvoikata klyuch/sertifikat v konteinera za klyuchove. Ako iskate da generirate DSA dvoika klyuchove, izpulnete slednata komanda:

keytool -genkey -keyalg DSA -keysize 2048 -keystore my_keystore.jks -alias me

Oshte vednuzh, ako iskate samo da generirate testov sertifikat, mozhe da sprete do tuk. Ako obache iskate doveren CA da podpishe Vashiiat sertifikat e neobhodimo da generirate CSR sus slednata komanda:

keytool -certreq -alias me -keystore my_keystore.jks -file certificate_request.csr

Sega veche mozhe da izpratite generiraniiat CSR-fail na svoia CA, izpolzvaiki iziskvanite ot tiah nachini. Sled priklyuchvane na protsesa na proverka CA shte izdade podpisan sertifikat.

Primer s Tomcat

Sega sled kato sme generirali nashata dvoika klyuchove (publichen/chasten) i imame izdaden ot CA sertifikat s publichen klyuch, koito vurvi s tiah, veche sme gotovi da gi izpolzvame. Nashata purva stupka e da se ubedim, che konteinera za klyuchove e s pravilen format za polzvane ot Tomcat. Tomcat versiia 5 poddurzha samo konteineri s klyuchove vuv formati - JKS ili PKCS#12. Ako ste izpolzvali OpenSSL za suzdavane na Vashata dvoika klyuchove i suotvetno iskaneto za podpis na sertifikat to e neobhodimo da postavite svoia chasten klyuch i suotvetniiat mu sertifikat s publichen klyuch zaedno v PKCS#12-suvmestim konteiner za klyuchove:

openssl pkcs12 -export -in certificate_file -inkey private_key.pem -chain -name tomcat -outfile my_keystore.p12

Tazi komanda vzema faila, sudurzhasht sertifikata s publichen klyuch, izdaden ot CA (certificate_file) i go sdvoiava sus suotvetniiat chasten klyuch (private_key.pem) v PKCS#12-suvmestim konteiner za klyuchove, zadavaiki mu psevdonim "tomcat", koito se polzvane ot Tomcate po-podrazbirane.

Ako ste generirali svoiata dvoika klyuch/sertifikat, izpolzvaiki keytool ne e neobhodimo da promeniate nishto - keytool suzdava JKS-suvmestimi konteineri za klyuchove. Ubedete se obache, che sled kato vednuzh ste poluchili podpisan ot CA sertifikat (v otgovor na Vashata CSR-zaiavka po-gore) triabva da postavite tozi sertifikat v svoia konteiner za klyuchove eto taka:

keytool -import -alias tomcat -trustcacerts -file certificate_file -keystore my_keystore.jks

Tazi komanda sdvoiava podpisaniiat ot CA sertifikat (vuv faila certificate_file) sus suotvetniiat chasten klyuch v konteinera za klyuchove, suzdaden predi tova i zadavaiki mu psevdonima po podrazbirane "tomcat".

Pochti priklyuchihme. Nshata posledna stupka e da konfigurirame Tomcat da poddurzha SSL-vruzka kato redaktirame $TOMCAT_HOME/conf/server.xml faila, dobaviaiki sledniia Connector-element:



Tova dava na Tomcat vuzmozhnost da sledi za SSL-vruzki na port-443. Zabelezhete sushto, che ako Vashiiat konteiner za klyuchove e PKCS#12-suvmestim, to triabva da promenite parametura 'keystoreType'. Sushto taka, ako iskate da zadulzhite klientite sushto da se identifitsirat s validni sertifikati (vzaimna identifikatsiia), to promenete parametura 'clientAuth' na 'true'.

Sushto taka e vazhno da proverite dali 'redirectPort'parametura za ne-SSL vruzki e nastroen da suvpada s tozi  na SSL. Za poveche informatsiia za tazi i drugi survurni konfiguratsii na Tomcat vizhte tuk [14].

Sled kato veche ste redaktirali konfiguratsionniia fail na survura mozhe da restartirate Tomcat i da proverite Vashata nova SSL-vruzka chrez zarezhdane na adres: https://localhost:443 vuv Vashiiat brauzur.

Tova podrazbira fakta, che Vashiiat brauzur raboti na sushtata mashina na koiato e instaliran Tomcat. Vie shte vidite tematichnata stranitsa na Tomcat (ili tova, koeto ste konfigurirali za Vashe bazovo prilozhenie), a sushto Vashiiat brauzur shte indikira nalichieto na raboteshta SSL-vruzka.

VRUZKI:
[1]"another article" - http://www.counterpane.com/pki-risks.html
[2]"two" - http://www.apache-ssl.org/7.5things.txt
[3]"RSA" - http://www.rsasecurity.com/rsalabs/node.asp?id=2125
[4]"DSA" - http://www.itl.nist.gov/fipspubs/fip186.htm
[5]"X.509" - http://www.ietf.org/html.charters/pkix-charter.html
[6]"Apache" - http://www.apache.org/
[7]"Tomcat" - http://jakarta.apache.org/tomcat
[8]"servlet" - http://java.sun.com/products/servlets
[9]"OpenSSL" - http://www.openssl.org/
[10]"Keytool" - http://java.sun.com/j2se/1.4.2/docs/tooldocs/solaris/keytool.html
[11]"Java Development Kit" - http://java.sun.com/
[12]"ASN.1" - http://asn1.elibel.tm.fr/en/standards
[13]"PKCS#12" - http://www.rsasecurity.com/rsalabs/node.asp?id=2138
[14]"this" - http://jakarta.apache.org/tomcat/tomcat-5.0-doc/config/index.html

Priiatno chetene.


<< lm_sensors + Superkaramba | Sigurni Ueb-uslugi: osnovi na PKI - CHast 1 (prevod) >>