X 509 bersyon 3. X.509 e-certificate pangkalahatang-ideya

X.509 na format ng sertipiko

Ang X.509 ay isa pang karaniwang format. Lahat ng X.509 certificate ay sumusunod sa Pamantayang internasyonal ITU-T X.509; kaya (theoretically), ang isang X.509 certificate na nilikha para sa isang application ay maaaring gamitin sa alinmang iba pang sumusuporta sa pamantayang ito. Sa pagsasagawa, gayunpaman, ang sitwasyon ay nabuo na ang iba't ibang mga kumpanya ay lumikha ng kanilang sariling mga extension para sa X.509, na hindi lahat ay tugma sa isa't isa.

Ang bawat sertipiko ay nangangailangan ng isang tao na i-verify ang kaugnayan sa pagitan ng pampublikong susi at impormasyon na nagpapakilala sa may-ari ng susi. Kapag nakikitungo sa isang sertipiko ng PGP, sinuman ay maaaring kumilos bilang saksi sa impormasyong nakapaloob dito (maliban sa mga kaso kung saan ang kakayahang ito ay sadyang nililimitahan ng patakaran sa seguridad). Ngunit sa kaso ng mga sertipiko ng X.509, isang Certification Authority lamang, o isang taong espesyal na pinahintulutan nito para sa tungkuling ito, ang maaaring maging saksi. (Tandaan na ang mga sertipiko ng PGP ay ganap ding sumusuporta sa isang hierarchical na istraktura ng tiwala na gumagamit ng isang CA upang patunayan ang mga sertipiko.)

Ang X.509 certificate ay isang hanay ng mga karaniwang field na naglalaman ng impormasyon tungkol sa isang user o device at ang kanilang kaukulang pampublikong key. Tinutukoy ng pamantayang X.509 kung anong impormasyon ang kasama sa sertipiko at kung paano ito naka-encode (format ng data).

Ang isang X.509 certificate ay naglalaman ng sumusunod na impormasyon:

Bersyon ng X.509 - nagsasaad kung aling bersyon ng pamantayang X.509 ang nakabatay sa ibinigay na sertipiko, na tumutukoy kung anong impormasyon ang maaaring nilalaman nito.

Ang pampublikong susi ng may hawak ng sertipiko ay ang pampublikong susi kasama ang identifier ng algorithm na ginamit (nagsasaad ng cryptosystem kung saan kabilang ang ibinigay na susi) at iba pang impormasyon tungkol sa mga parameter ng susi.

Sertipiko serial number - ang organisasyong nagbibigay ng certificate ay obligado na magtalaga dito ng isang natatanging serial (sequential) na numero upang makilala ito kasama ng iba pang mga certificate na ibinigay ng organisasyong ito. Nalalapat ang impormasyong ito sa ilang mga kaso; halimbawa, kapag binawi ang isang sertipiko, inilalagay ang serial number nito listahan ng mga binawi na sertipiko(Listahan ng Pagbawi ng Sertipiko, CRL).

Ang natatanging pagkakakilanlan ng may-ari ng susi (o DN, kilalang pangalan- natatanging pangalan) - ang pangalang ito ay dapat na natatangi at isa lamang sa buong Internet. Ang DN ay binubuo ng ilang mga subclause at maaaring ganito ang hitsura:

CN=Bob Davis, [email protected] OU=PGP Engineering,

O=PGP Corporation, C=US

(Na kumakatawan sa Subject Friendly Name, Email, Organizational Unit, Organization, at Country, ayon sa pagkakabanggit.)

Panahon ng bisa ng sertipiko - ang petsa ng pagsisimula ng sertipiko at ang petsa ng pag-expire nito; nagsasaad kung kailan magiging hindi wasto ang sertipiko.

Issuer Unique Name - Ang natatanging pangalan ng organisasyon na pumirma sa certificate. Kadalasan, ito ang pangalan ng Certification Authority. Ang paggamit ng isang sertipiko ay nagpapahiwatig ng tiwala ng organisasyong pumirma nito. (Sa mga kaso na may mga root certificate, ang nag-isyu na organisasyon - ang parehong CA - ay pumipirma nito mismo.)

Digital signature ng Publisher - isang electronic signature na ginawa ng pribadong key ng organisasyon na nagbigay ng certificate. Signing Algorithm ID - Tinutukoy ang algorithm na ginagamit ng CA para lagdaan ang certificate.

Mayroong ilang pangunahing pagkakaiba sa pagitan ng mga format ng sertipiko ng X.509 at PGP:

maaari kang personal na lumikha ng iyong sariling sertipiko ng PGP;

dapat kang humiling at tumanggap ng X.509 na sertipiko mula sa isang Awtoridad ng Sertipiko; Ang mga sertipiko ng X.509 ay naglalaman lamang ng isang pangalan ng may-ari ng sertipiko;

Ang mga sertipiko ng X.509 ay naglalaman lamang ng isang EDS, na nagpapatunay sa pagiging tunay ng sertipiko.

Upang makakuha ng sertipiko ng X.509, dapat mong hilingin sa CA na ibigay ito sa iyo. Ibinibigay mo sa system ang iyong pampublikong susi, na nagpapatunay na mayroon kang kaukulang pribadong susi, pati na rin ang ilang impormasyong nagpapakilala sa iyo. Pagkatapos ay pirmahan mo nang elektroniko ang impormasyong ito at ipadala ang buong pakete - ang kahilingan sa sertipiko - sa CA. Ang CA ay nagsasagawa ng isang tiyak na proseso upang i-verify ang pagiging tunay ng impormasyong ibinigay at, kung lahat ay tumutugma, gagawa ng isang sertipiko, nilagdaan ito at ibinalik ito sa iyo.

Maaari kang magpakita ng X.509 certificate bilang isang regular na papel na sertipiko o pasaporte na may pampublikong susi na nakakabit dito. Naglalaman ito ng iyong pangalan, pati na rin ang ilang impormasyon tungkol sa iyo, kasama ang pirma ng nagbigay ng sertipiko.

Marahil ang pinakamalaking benepisyo ng mga X.509 na sertipiko ay ang kanilang paggamit sa mga Web browser.

Mula sa aklat na The Art of Unix Programming may-akda Raymond Eric Steven

Mula sa aklat na Windows Script Host para sa Windows 2000/XP may-akda Popov Andrey Vladimirovich

Paano makukuha digital na sertipiko May tatlong uri ng mga digital na certificate: ang mga ginawa ng developer, na ibinigay sa developer ng isang organisasyon, at natanggap mula sa isang awtoridad sa certification. Ang isang digital na certificate na ginawa ng isang developer ay karaniwang ginagamit ng mga user na iyon

Mula sa aklat na Public Key Infrastructures may-akda Polyanskaya Olga Yurievna

Paglikha ng Iyong Sariling Sertipiko Ang pinakamabilis na paraan upang lumikha ng sarili mong digital na sertipiko ay ang paggamit ng SelfCert.exe program na kasama sa Microsoft Office 2000/XP. Sa pamamagitan ng pagpapatakbo ng utility na ito, makakakuha kami ng isang dialog box na nagpapahintulot sa iyo na tukuyin ang pangalan ng nilikha

Mula sa aklat na Yandex para sa lahat may-akda Abramzon M. G.

Mga suplemento ng sertipiko Ang mahalagang impormasyon ay matatagpuan din sa mga suplemento ng sertipiko. Pinapayagan ka nilang isama ang impormasyon sa sertipiko na wala sa pangunahing nilalaman, matukoy ang bisa ng sertipiko at kung ang may-ari ng sertipiko ay may mga karapatan sa pag-access sa isang partikular na

Mula sa aklat na Introduction to Cryptography may-akda Philipp Zimmermann

Online Certificate Status Protocol Ang online na OCSP Certificate Status Protocol ay isang medyo simple (challenge-response) protocol para sa pagkuha ng impormasyon sa pagbawi mula sa isang pinagkakatiwalaang entity na tinatawag na OCSP Responder. Ang isang kahilingan sa OCSP ay binubuo ng isang numero ng bersyon

Mula sa libro Operating system UNIX may-akda Robachevsky Andrey M.

Pangunahing pag-verify ng sertipiko Ang pangunahing pag-verify ng sertipiko ay isinasagawa sa lahat ng mga sertipiko sa isang pagkakasunod-sunod at binubuo ng isang serye ng mga pagsusuri. Ang mga pagsusuri gamit ang bawat isa sa apat na pangkat ng mga variable ng estado ay isinasagawa upang matukoy kung ang

Mula sa aklat ng may-akda

Pagsusuri sa validity ng sertipiko Magtatagumpay ang pagsusuring ito kung ang kasalukuyang petsa at oras sa oras ng pagpapatunay ay nasa loob ng panahon ng bisa.

Mula sa aklat ng may-akda

Pagsusuri sa Katayuan ng Sertipiko Magtatagumpay ang pagsusuring ito kung hindi binawi ng tagabigay ang sertipiko. Ang mga listahan ng CAC ay ang pangunahing paraan ng pagpapatunay sa katayuan ng isang sertipiko, ngunit maaaring gumamit ng iba pang alternatibong paraan.

Mula sa aklat ng may-akda

Pag-verify ng Lagda ng Sertipiko Maaaring ma-verify ang lagda ng certificate batay sa unang pangkat ng mga variable ng estado gamit ang pampublikong key ng nagbigay ng certificate, gamit ang mga tamang parameter, at gamit ang algorithm ng digital signature.

Mula sa aklat ng may-akda

Paghahanda sa Susunod na Sertipiko Una, ang ilang simpleng pagpapatunay ng sertipiko ng CA ay isinasagawa. Ang mga variable ng estado ay ina-update upang ipakita ang mga halaga ng mga add-on na field ng certificate. Mayroong ilang mga karagdagan na natagpuan

Mula sa aklat ng may-akda

Pagkumpleto ng pagpoproseso ng certificate Kapag natapos na ang pagpoproseso ng sertipiko ng end-entity, itatakda ang mga halaga ng output batay sa mga halaga ng mga variable ng estado. Pagsasaayos ng Mga Variable ng Estado ng Pag-verify digital na lagda. Sa larangan ng impormasyon

Mula sa aklat ng may-akda

3.3.1. RSS Format Maaari kang magbasa ng mga balita sa site sa iba't ibang paraan. Ang pinakamadaling paraan ay bisitahin ang site paminsan-minsan at tingnan ang mga bagong mensahe. Maaari kang maglagay ng program na kumokonekta sa isang channel ng balita at mismong tumatanggap ng mga headline o anotasyon ng balita, ayon sa

Mula sa aklat ng may-akda

X.509 Certificate Format Ang X.509 ay isa pang napakakaraniwang format. Ang lahat ng X.509 certificate ay umaayon sa ITU-T X.509 international standard; kaya (theoretically) isang X.509 certificate na nilikha para sa isang application ay maaaring gamitin sa alinmang iba pa,

Mula sa aklat ng may-akda

Pagbawi ng Sertipiko Ang isang sertipiko ay maaari lamang gamitin hangga't ito ay may bisa. Mapanganib na umasa sa isang sertipiko upang maging ligtas at maaasahan magpakailanman. Sa karamihan ng mga organisasyon at lahat ng PKI, ang isang sertipiko ay may limitadong buhay. Ito ay nagpapaliit sa panahon kung saan

Mula sa aklat ng may-akda

Abiso sa Pagpapawalang-bisa ng Sertipiko Sa sandaling binawi ang isang sertipiko, napakahalagang ipaalam sa lahat ng potensyal na koresponden na wala na itong bisa. Ang pinakamadaling paraan upang mag-notify sa isang kapaligiran ng PGP ay ang paglalagay ng binawi na sertipiko

Mula sa aklat ng may-akda

Ang ELF Format Ang ELF format ay may ilang uri ng mga file na iba ang tawag namin sa ngayon, tulad ng isang executable file o object file. Gayunpaman, ang pamantayan ng ELF ay nakikilala sa pagitan ng mga sumusunod na uri:1. Isang relocatable na file na naglalaman ng mga tagubilin at data na maaaring

Mayroong dalawang uri ng cryptographic system: secret key system (symmetric) at public key system (asymmetric). Sa halos pagsasalita, ngunit nauunawaan, ang mga simetriko na system ay gumagamit ng parehong susi para sa pag-encrypt at pag-decryption na mga operasyon, habang ang mga asymmetric system ay gumagamit ng iba't ibang mga.

Sa mga sistemang simetriko, may problema sa pamamahagi ng sikretong susi sa isang ligtas na paraan: dapat alam ng magkabilang partido na nagpapalitan ng impormasyon ang susi na ito, ngunit walang ibang dapat magkaroon ng susi na ito.

Ang mga sistemang walang simetriko ay inayos sa paraang mayroong dalawang numero sa mga ito:

  • "pampublikong susi ng user A", na ginagamit upang i-encrypt ang isang mensahe na inilaan para sa user A,
  • "pribadong key ng user A", na ginagamit ng user na ito para i-decrypt ang mga mensaheng ipinadala sa kanya.
Ang mga numerong ito ay bumubuo ng isang key pair at may sumusunod na magandang katangian: na may sapat na malaking haba ng mga numerong ito, napakahirap, alam lamang ang pampublikong susi, na ibalik ang halaga ng pribadong susi.

Napakahalaga ng huling pangyayari: maaaring i-publish ng user ang kanyang pampublikong susi sa mga pampublikong lugar upang magamit ito ng sinuman at mag-encrypt ng mensahe para sa A. Samakatuwid, nawawala ang problema sa pamamahagi ng sikretong susi.

Dapat panatilihing lihim ng user ang kanyang pribadong key mula sa mga tagalabas: gusto mong ang user lang ang makakapag-decrypt ng mga mensaheng ipinadala sa kanya. Bukod dito, ang pangangailangan na panatilihing lihim ang pribadong susi ay napakahalaga kaugnay ng konsepto ng isang digital na lagda, na tinatalakay nang kaunti pa. Sa hinaharap, sabihin nating mahalaga din ang pagiging lihim ng pribadong key dahil ang user lang ang dapat gumawa ng sarili niyang digital signature, na nakadepende sa halaga ng private key.

Kadalasan, ang pribadong key ay naka-imbak sa media sa naka-encrypt na anyo at na-decrypt lamang para sa tagal ng ilang aksyon na nangangailangan ng kaalaman sa pribadong key. Bahagyang pinapataas nito ang seguridad ng pag-iimbak ng pribadong susi, ngunit lumilikha ng abala kung ang pribadong susi ay kailangan ng ilang uri ng awtomatikong serbisyo: (hindi bababa sa) sa tuwing magsisimula ang serbisyong ito, kailangan mong magpasok ng password upang i-decrypt ang susi.

Mayroon ding mga smart card na maaaring magsagawa ng mga cryptographic na operasyon sa loob ng kanilang sarili, na nagbibigay lamang ng resulta sa output, ngunit hindi inilalantad ang mga nilalaman ng pribadong key. Ang pagnanakaw ng pribadong susi mula sa wastong ipinatupad na smart card ay dapat na napakahirap. Ang pribadong key, kahit na nakaimbak sa isang smart card, ay maaaring protektahan ng password. Kung walang password, kung gayon ang sinumang may smart card sa kanilang mga kamay ay maaaring magsagawa ng mga aksyon na nangangailangan ng kaalaman sa pribadong key: ang halaga ng pribadong key mismo ay mananatiling isang lihim, ngunit posible na magsagawa ng anumang nilalayong pagkilos kasama nito .

Digital na lagda

Ang mga pampublikong key system ay may isa pang magandang tampok: ang gumagamit ay maaaring lumikha ng isang digital na lagda, na, kapag inilagay digital na dokumento, ay maaaring magsilbi bilang isang garantiya na ang user, at hindi ang ibang tao, ang talagang lumagda sa dokumentong ito.

Ang scheme ay simple sa konsepto: ang user A, gamit ang kanyang pribadong key, ay nagsasagawa ng ilang operasyon sa data na gusto niyang lagdaan at ipinapasa ang resulta kasama ang orihinal na data sa anumang iba pang bagay. At ang mismong bagay na ito, gamit lamang ang pampublikong susi ng user A, ay madaling ma-verify na tama ang digital signature.

Muli naming binibigyang-diin na ang kondisyon ng pagiging naa-access ng pribadong key na ito sa may-ari lamang ay gumaganap ng isang napakahalagang papel: kung ito ay natutugunan, hindi maaaring tanggihan ng user ang kanyang digital na lagda. Ito ay tinatawag na non-repudiation.

Isa sa mga gamit ng digital signature ay object authentication. Ang pagpapatunay ay ang proseso ng pagtatatag ng "pagkakakilanlan" ng isang bagay. Malinaw na kung ang isang bagay ay maaaring digital na mag-sign, pagkatapos ay ang lagda na ito ay maaaring ma-verify, at ang bagay ay nauugnay sa kanyang pampublikong susi. Ang huling sangkap na nawawala sa scheme ng pagpapatunay na ito ay ang punto kung saan nakatali ang pampublikong susi at ang bagay mismo: dapat nating malaman kung sino ang nagmamay-ari ng pampublikong susi na ito.

Awtoridad sa Sertipikasyon

Ang problema sa pag-link ng isang pampublikong susi at ilang bagay ay maaaring malutas sa iba't ibang paraan. Ang isa sa mga pinakasimpleng diskarte ay ang paggawa ng isang listahan ng mga tumutugmang pampublikong key at object na "mga pangalan". Ang pangalan ay maaaring maging anumang identifier, tulad ng domain name ng isang machine, buong pangalan, apelyido at patronymic ng isang tao, atbp.; ang problema sa pagiging natatangi ng mga pangalan, na kinakailangang lumitaw, ay isang hiwalay na kahirapan, na kadalasang nalutas sa pamamagitan ng administratibong paraan, tulad ng isang hierarchical namespace system at ilang uri ng name conflict resolution system sa loob ng parehong subnamespace. Ang isyung ito ay hindi na tatalakayin pa dito.

Ngunit ang diskarte sa listahan ng tugma ay may napakahinang scaling, dahil ang mga parehong listahang ito ay dapat na naka-synchronize saanman sa mundo (o sa halip, sa bahagi ng mundo kung saan ginagamit ang mga listahang ito).

Samakatuwid, ang mga konsepto ng isang X.509 na sertipiko at isang awtoridad sa sertipikasyon ay ipinakilala. Ang X.509 certificate (simula dito, simpleng certificate) ay isang conglomeration ng public key ng user, impormasyon ng user, pangalan ng certificate na tinatawag na Distungius Name (DN) at isang digital signature ng awtoridad sa certification na nag-uugnay sa lahat ng data na ito. Ibig sabihin, nagiging posible na iugnay ang isang pampublikong key at DN ng isang user, na maaaring magsilbing ninanais na sangkap sa proseso ng pagpapatunay kung ang Distinguished Name ng kanyang certificate ay gagamitin bilang user identifier. Hindi sinasadya, ang isang sertipiko ay may petsa ng pag-expire, na naglilimita sa panahon ng bisa ng tugma na ginawa ng CA.

Naturally, ang problema ay inilipat lamang sa ibang lugar - sa halip na magpanatili ng malaking listahan ng mga tugma, kailangan na nating magpanatili ng mas maliit na listahan ng mga pampublikong susi ng mga awtoridad sa sertipikasyon. Sa kasong ito, ang susi ng awtoridad sa sertipikasyon ay sapat na pinagkakatiwalaan: kinukumpirma ng awtoridad sa sertipikasyon ang pagkakaugnay ng libu-libong user name sa mga kaukulang pampublikong key.

Bakit kailangan ang pagpapatunay? Ang pag-encrypt lamang ay hindi sapat?

Well, una sa lahat, ang pagpapatotoo ay mahalaga sa sarili nito: ang mga computer system ay kailangang patotohanan ang kanilang mga gumagamit upang pagkatapos ay magpasya kung pahintulutan ang kanilang pag-access sa iba't ibang mga mapagkukunan.

Ngunit kung kinukuha mo ang pampublikong susi ng isang user at gusto mong magpadala sa kanila ng naka-encrypt na mensahe, malamang na gugustuhin mong tiyakin na nai-encrypt mo ang mensahe gamit ang tamang pampublikong susi, lalo na kung nakukuha mo ang susi na iyon mula sa publiko. pinagmumulan. Pagkatapos ng lahat, maaaring ilagay ng isang umaatake ang kanyang pampublikong susi, ngunit sa parehong oras ay nagpapahiwatig na ang susi ay pagmamay-ari ng iyong addressee. At kung hindi mo authenticate ang pampublikong susi, kung gayon ang umaatake, na naharang ang iyong naka-encrypt na mensahe, ay magagawang i-decrypt ito nang walang anumang mga problema.

Iyon ay, ang pagpapakilala ng isang awtoridad sa sertipikasyon ay nagpapahintulot sa amin na patunayan ang bagay na nagmamay-ari ng sertipiko na ito. Naturally, bago iyon, dapat tayong magtiwala sa pampublikong susi ng awtoridad sa sertipikasyon. Ito ay nagpapahiwatig ng dalawang bagay:

  1. tiwala sa isang awtoridad sa sertipikasyon sa pangkalahatan, iyon ay, tiwala sa reputasyon nito,
  2. kumpiyansa na ang pampublikong susi na nakuha mo ay talagang pampublikong susi ng awtoridad sa sertipikasyon na ito.
Mula sa huling talata, makikita na ang problema ng pagpapatunay ng mga pampublikong susi ng mga sentro ng sertipikasyon ay muling lilitaw. Ngunit dahil mas kaunti ang mga sentrong ito kaysa sa mga gumagamit, posibleng gumamit ng mga administratibong hakbang:
  • tawagan ang certification center at i-verify ang mga nilalaman ng pampublikong key sa telepono,
  • pumunta sa mismong certification center at kunin ang pampublikong susi sa ilang medium,
  • magtiwala sa mga pampublikong susi ng mga awtoridad sa sertipikasyon na mayroon na sa ilang software package
  • at marami pang ibang paraan na mas abala kaysa sa mga nabanggit na;))

Mga Sertipiko ng Proxy

Mahusay: ngayon ay mayroon na kaming mga pinagkakatiwalaang CA, kanilang mga pampublikong key, mga sertipiko ng user, at kanilang mga pribadong key. Maaari kaming mag-encrypt ng mga mensahe at lumikha ng mga digital na lagda na mahirap pabulaanan.

Ano pa? Sa mga multicomponent system, ang tinatawag na Single Sign-On ay napaka-maginhawa - ang kakayahang manu-manong mag-authenticate nang isang beses lamang, at lahat ng iba pang mga pagpapatunay ng pagpapatunay ay awtomatikong isasagawa. Karaniwan itong totoo sa mga system na sa una ay nagpapatotoo sa iyo, at pagkatapos ay magsisimula ang system na magsagawa ng mga aksyon para sa iyo, halimbawa, tumanggap ng data, magpatakbo ng mga gawain, mag-publish ng kanilang mga resulta, atbp. Ito ay tinatawag na delegasyon.

Ang delegasyon batay sa mga proxy certificate ay gumagana tulad ng sumusunod: pagkatapos ng mutual authentication ng user at ang serbisyong gagana sa ngalan ng user sa hinaharap, ang serbisyo ay gagawa ng bagong key pair at ipinapadala ang pampublikong key sa user para sa pagpirma. Pinirmahan ng user ang pampublikong key na ito sa parehong paraan tulad ng ginagawa ng CA, ngunit ginagamit nito ang pribadong key ng user. Ang resultang certificate ay tinatawag na proxy certificate.

Ang serbisyo, na kumikilos sa ngalan ng user, ay maaaring magpatotoo gamit ang (bagong nabuong) pribadong key nito at isang certificate na nilagdaan ng user. Ang proseso ng pag-authenticate ay ganito.

  1. Ang lagda na nabuo ng serbisyo ay napatunayan. Ginagamit nito ang pampublikong susi na ipinadala kasama ng lagda.
  2. Ang pampublikong susi kung saan na-verify ang lagda ay napatotohanan. Una, na-verify ang lagda sa proxy certificate, na ginawa gamit ang pribadong key ng user. Ginagawa ito gamit ang pampublikong key ng user.
  3. Sa parehong paraan, ang pampublikong susi ng user mismo ay napatotohanan, ngunit ang data tungkol sa awtoridad sa sertipikasyon ay ginagamit na rito.
Bilang resulta nito, nabuo ang tinatawag na chain of trust, na nagsisimula sa ilang uri ng digital signature at nagtatapos sa digital signature ng isang certification authority.

Gamit ang parehong mekanismo, ang serbisyo kung saan orihinal na inisyu ang proxy certificate ay maaaring pumirma ng isa pang proxy certificate, na nagtatalaga ng awtoridad ng user ng user kasama ang chain sa isa pang serbisyo. Ito ay kung paano ipinapatupad ang Single Sign-On.

  • X.509 Style Guide, isinulat ni Peter Gutmann. Mayroong maraming mga teknikal na detalye, ngunit para sa ilan ito ay nagkakahalaga ng pagbabasa.

Format at Istraktura ng Signing Key Certificate

Ang isang detalyadong paglalarawan ng istraktura ng sertipiko, kabilang ang isang listahan ng mga paghihigpit sa paggamit ng UPC at ang pamamaraan para sa paggamit ng mga patlang ng isang kwalipikadong ES certificate na inisyu ng CA FC (mula rito ay tinutukoy bilang ang Paglalarawan ng UPC) ay inaprubahan ng ang CA FC sa anyo ng isang hiwalay na dokumento na mahalagang bahagi ng Mga Regulasyon na ito.

Sertipiko ng susi ng pagpapatunay Electronic Signature sa elektronikong anyo ay isang elektronikong dokumento na may istrukturang naaayon sa International Telecommunication Union ITU-T X.509 version 3 standard at IETF (Internet Engineering Task Force) RFC 3280 at 5280 na mga rekomendasyon at ipinakita sa Base64 encoding.

Ang istruktura ng mga signature key certificate na ginawa ng CA ay tinutukoy ng sumusunod na talahanayan:

sertipiko » sa anyo ng isang puno mga istruktura na may kakayahang markahan... Lagda ng mga kahilingan para sa publikasyon mga sertipikomga susimga lagda". 4. Upang pumunta sa... Identifier susi". "Name Patronymic" - ang pangalan at patronymic ng may-ari sertipiko sa pormat « ...
  • Gabay sa Admin (2)

    Pamamahala

    mga sistema. "Pagpirma ng mga kahilingan para sa publikasyon mga sertipiko mga susi mga lagda"- pinapayagan ang ulo na pumirma na inilipat sa TOFK ... Istruktura EDS file Ang pagbuo ng EDS ay nagaganap gamit ang cryptographic provider " CryptoPro CSP”, bersyon 2.0 na may pormat ...

  • Pangalan

    Paglalarawan

    Aplikante

    Organisasyon ng aplikante

    Mga pangunahing patlang ng sertipiko

    Natatanging numero

    Natatanging numero ng sertipiko

    SignatureAlgorithm

    Signature algorithm

    1.2.643.2.2.3 (GOST R 34.11-2001, GOST R 34.10-2001)

    Tagapagbigay ng Sertipiko

    Panahon ng Bisa

    Panahon ng bisa ng sertipiko

    Wasto mula sa: dd.mm.yyyy hh:mm:ss GMT

    Wasto para sa: dd.mm.yyyy hh:mm:ss GMT

    May-ari ng sertipiko

    CN = Apelyido, Pangalan, Patronymic;

    CN = Pangalan ng organisasyon

    SN=Apelyido;

    SN=Apelyido;

    GN=Pangalan, Patronymic;

    GN=Pangalan, Patronymic;

    O = Pangalan ng Organisasyon ng Aplikante;

    O = Pangalan awtomatikong sistema/Serbisyo/Serbisyo/ /Server ng Organisasyon ng Aplikante para sa paggamit kung saan ibinigay ang sertipiko.;

    OU= Structural subdivision;

    T = Posisyon;

    T = Posisyon;

    L = Pangalan lokalidad;

    STREET = Pangalan ng kalye, numero ng bahay, gusali, gusali, apartment, silid;

    S = pederal na paksa;

    S = pederal na paksa;

    E = Email = Address Email May-ari ng UPC

    E = EMail = E-mail address ng automated system operation service

    1.2.643.100.1=OGRN=000000000000000

    1.2.643.3.131.1.1 = INN = 000000000000

    1.2.643.100.3=SNILS=00000000000

    Alternatibong Pangalan ng Paksa

    Karagdagang impormasyon tungkol sa may-ari ng sertipiko

    Mga Extension (ibinigay ang detalyadong paglalarawan sa Talahanayan 3 – Mga Paglalarawan ng UPC)

    pampublikong susi

    Pampublikong key (algoritmo sa pag-sign)

    Algorithm ng Lagda ng Issuer

    Algorithm ng Pagpirma ng Tagapagbigay ng Sertipiko

    GOST R 34.11/34.10-2001

    EDS ng nagbigay ng sertipiko

    Lagda ng publisher alinsunod sa GOST R 34.11/34.10-2001

    Mga Extension ng Sertipiko

    Panahon ng Bisa ng Pribadong Key

    Panahon ng bisa ng pribadong susi na naaayon sa sertipiko

    Wasto mula sa (notBefore): dd.mm.yyyy hh:mm:ss GMT

    Wasto ni(notAfter): dd.mm.yyyy hh:mm:ss GMT

    Key paggamit

    Extension (ibinigay ang detalyadong paglalarawan sa Talahanayan 3, Talahanayan 4 – Paglalarawan ng SCP)

    Pinalawak na Paggamit ng Key

    Pinahusay na susi

    Extension (ibinigay ang detalyadong paglalarawan sa Talahanayan 3 – Mga Paglalarawan ng UPC)

    Patakaran sa Application

    Patakaran sa Application

    Hindi maaari

    Mga Patakaran sa Sertipiko

    Mga Patakaran sa Sertipiko

    Isang hanay ng mga lugar ng paggamit para sa mga susi at mga sertipiko mula sa listahan ng mga lugar ng paggamit na nakarehistro sa Certification Authority (ang detalyadong paglalarawan ay ipinakita sa Talahanayan 3)

    Subject Key Identifier

    Identifier ng susi ng May-ari ng SKP

    Extension (ibinigay ang detalyadong paglalarawan sa Talahanayan 3 - Paglalarawan ng UPC)

    Authority Key Identifier

    Certificate Issuer Key ID

    pribadong key identifier awtorisadong tao Awtoridad sa sertipikasyon, na lumagda sa sertipiko na ito (ipinakita ang detalyadong paglalarawan sa Talahanayan 3 – Mga Paglalarawan ng UPC)

    CRL Distribution Point

    Puntos sa Pamamahagi ng Listahan ng Pagpapawalang-bisa ng Sertipiko

    Isang hanay ng mga punto ng pamamahagi ng listahan ng pagbawi sa anyo ng isang URL (ibinigay ang detalyadong paglalarawan sa Talahanayan 3 - Mga Paglalarawan ng UPC).

    Access sa Impormasyon ng Awtoridad

    Address ng Kasalukuyang Serbisyo sa Katayuan ng Sertipiko

    Ang URL ng web application ng Certificate Update Status Service. Ito ay ipinasok sa mga sertipiko, ang katayuan kung saan maaaring maitatag sa pamamagitan ng OCSP protocol (detalyadong paglalarawan ay ipinakita sa Talahanayan 3 - Paglalarawan ng SCP).

    Karaniwang ginagamit ang Common Name o CN sa mga SSL Certificate. Ginagamit ang CN upang tukuyin ang pangalan ng server na gagamitin para sa secure na koneksyon sa SSL. Karaniwan ang SSL certificate na ito ay ginagamit upang ma-secure ang koneksyon sa pagitan ng HTTP/S server at client browser tulad ng Chrome, Explorer, Firefox.

    Ginagamit ang Karaniwang Pangalan upang tukuyin ang pagkakakilanlan ng host o server. Kapag sinubukan ng isang kliyente na kumonekta sa isang malayuang server tulad ng HTTP server, makukuha muna nito ang SSL certificate ng server na ito. Pagkatapos ay ihambing ang Host name o domain name na gusto nitong ikonekta sa Common Name na ibinigay sa SSL certificate. Kung pareho ang mga ito ay gagamitin nito ang SSL certificate upang i-encrypt ang koneksyon.

    Ang karaniwang pangalan ay teknikal na kinakatawan bilang commonName field sa detalye ng sertipiko ng X.509. Ang detalye ng X.509 ay ginagamit sa mga SSL certificate na pareho.

    Maaari tayong magbalangkas ng Pangalan ng Command tulad ng nasa ibaba.

    Karaniwang Pangalan = Pangalan ng Domain + Pangalan ng Host

    Karaniwang Pangalan = Pangalan ng Domain + Pangalan ng Host

    Magagamit namin ang sumusunod na domain at host name bilang Common Name.

    site www.site *.site

    poftut. com

    www. poftut. com

    *. poftut. com

    Ganap na Kwalipikadong Domain Name (FQDN)

    Ganap na Kwalipikadong Pangalan ng Domain o FQDN ay ginagamit sa Pangalan ng Command na maaaring palitan. Ang ganap na kwalipikadong pangalan ay ginagamit upang tukuyin ang pangalan ng host sa isang mahigpit na paraan. Higit pang mga detalye tungkol sa FQDN ay matatagpuan sa sumusunod na tutorial.

    Pangalan ng Organisasyon

    Maaaring ma-misinterpret ang pangalan ng organisasyon sa Common Name. Ang Pangalan ng Organisasyon ay ang pangalan ng organisasyon kung saan nabibilang ang imprastraktura ng IT. Hindi dapat gamitin ang pangalan ng organisasyon para sa karaniwang pangalan na lilikha ng mga problema sa seguridad.

    OS: Linux Debian/Ubuntu.
    Application: OpenSSL, Nginx, Apache2.

    Narito ang pinakasimpleng cheat sheet ng pamamaraan para sa paghahanda para sa pagkuha ng isang SSL / TLS certificate, pagsuri sa kawastuhan nito at paggamit nito sa isang web service, pinalawak na may ilang mga paliwanag.

    Bumubuo kami ng pribado at pampublikong mga susi.

    Lubhang kanais-nais na magsagawa ng trabaho sa mga bahagi ng sertipiko sa isang lugar na sarado mula sa labas ng pag-access:

    $ mkdir -p ./make-cert


    Una sa lahat, kailangan mong gumawa ng "sarado" (aka "pribado") at "bukas" (aka "pampubliko") na mga susi sa pag-encrypt ng RSA, na gagamitin sa ibang pagkakataon kapag gumagawa ng lahat ng iba pang bahagi ng certificate at pinapatotohanan ito sa panig ng web server:

    $ cd ./make-cert
    $ openssl genrsa -des3 -out ./example.net.key 2048


    Ang paghalu-halo ng mga character na nakikita natin sa isang text key file ay talagang isang lalagyan ng isang obfuscated na hanay ng mga block na nabuo alinsunod sa RSA algorithm ng mga natatanging cipher, at isa sa mga block na ito - "modulus" - ay ang "public" key ng ang asymmetric encryption bundle na ginagamit sa lahat ng bahagi ng certificate. Ang lahat ng iba pang nilalaman ay isang "pribadong" key.


    Upang maging pamilyar sa mga nilalaman ng mga pangunahing bloke ng lalagyan, ang code nito ay maaaring palawakin sa isang mas structured na anyo:

    $ openssl rsa -noout -text -in ./example.net.key


    Ang (pribadong) encryption key ay, ayon sa kahulugan, ang pinakalihim na bagay sa mga bahagi ng isang SSL certificate - kaya naman ito ay pinoprotektahan ng isang password bilang default. Siguraduhing tandaan ang password na ipinasok sa kahilingan ng generation utility, kakailanganin namin ito.

    Dapat tandaan na sa pagsasanay, kapag ang isang SSL certificate ay ginagamit lamang upang ilipat ang isang bilang ng mga site sa HTTPS, karamihan sa mga tao ay ginusto na huwag pakialaman ang isang lalagyan ng key na protektado ng password, ngunit agad itong ilabas mula sa proteksyon na ito, na lumikha ng isa pa. sa tabi nito - "walang password":

    $ cd ./make-cert
    $ openssl rsa -in ./example.net.key -out ./example.net.key.decrypt


    Gumawa ng X.509 Certificate Issue Request (CSR).

    Ang subsystem mismo para sa pagprotekta sa daloy ng trapiko sa pamamagitan ng SSL / TLS ay karaniwang ipinapatupad sa mga session symmetric key na nabuo ng web server at ng client browser sa panahon ng paunang negosasyon ng koneksyon, at ang ilang mga espesyal na preset na encryption key ay hindi kinakailangan para dito (bagaman sila mapadali ang pamamaraan ng negosasyon - DH -key, halimbawa). Ang sertipiko (ng pamantayang X.509), ang hanay ng mga bahagi kung saan unti-unti naming nabuo dito, ay inilaan para sa isang uri ng pagpapatunay ng isang mapagkukunan ng web sa imprastraktura ng Internet, kung saan ginagarantiyahan ng isang may kondisyong pinagkakatiwalaang awtoridad sa sertipikasyon ang koneksyon ng "pampubliko" na key na tinukoy sa sertipiko at ang paglalarawan ng mapagkukunan sa pamamagitan ng elektronikong pagpirma sa mga nilalaman nito.

    Upang ilipat sa awtoridad ng sertipikasyon ang aming "pampublikong" key (hindi ang buong nilalaman ng "pribadong" key, ngunit ang "modulus" block lamang nito!) At impormasyon tungkol sa mapagkukunan, ang pagiging tunay na aming kinukumpirma, isang espesyal na lalagyan ng CSR ( Ang Kahilingan sa Pagpirma ng Certificate) ay nilayon. Ginagawa namin ito, na tumutukoy sa isang lalagyan ng mga ito bilang pinagmulan ng "pampubliko" na key:

    $ cd ./make-cert
    $ openssl req -new -key ./example.net.key -out ./example.net.csr


    Sa proseso, kakailanganin mong magbigay ng impormasyon tungkol sa may-ari ng mapagkukunan kung saan hinihiling ang sertipiko, tulad ng:

    "Pangalan ng Bansa" - dalawang-character na code ng bansa ayon sa ISO-3166 (RU - para sa Russia);
    "Pangalan ng Estado o Lalawigan" - ang pangalan ng rehiyon o rehiyon;
    "Pangalan ng Lokalidad" - ang pangalan ng lungsod o lokalidad;
    "Pangalan ng Organisasyon" - pangalan ng organisasyon;
    "Pangalan ng Unit ng Organisasyon" - pangalan ng unit (opsyonal na field);
    "Common Name" - ganap na kwalipikadong domain name ng mapagkukunan (FQDN) kung saan hinihiling ang sertipiko;
    "Email Address" - makipag-ugnayan sa e-mail address ng domain name administrator (opsyonal na field);
    "Isang hamon na password" - (opsyonal na field, hindi napunan);
    "Isang opsyonal na pangalan ng kumpanya" - isang alternatibong pangalan ng kumpanya (opsyonal na field, hindi napunan).


    Itinuon ko ang iyong pansin sa katotohanan na kung ang validity ng certificate ay dapat umabot sa mga subdomain ng resource na na-certify, ang FQDN sa field na "Common Name" ay kailangang dagdagan ng mask na "*." ("*.example.net" - halimbawa).

    Makikita ng mausisa kung ano ang nakatago sa code ng container ng CSR:

    $ openssl req -noout -text -in ./example.net.csr


    Ipinapadala namin ang CSR file na "example.net.csr" sa awtoridad ng certification kung saan kami bumili ng certificate.

    Pagkuha ng SSL/TLS certificate (X.509).

    Ang mga nuances ng pagpili ng isang provider ng sertipiko, pag-order at mga pamamaraan ng pagbabayad ay hindi isinasaalang-alang dito, hindi ito isang teknikal na isyu. Ang isa sa mga mahahalagang punto ay ang hindi makaligtaan ang pagpili sa pagitan ng isang certificate na inilaan para sa isang domain at isang "wildcard" na sumasaklaw sa lahat ng mga subdomain ng susunod na antas kasama ang mga garantiya nito.

    Pagbuo ng self-signed X.509 certificate (opsyonal).

    Bilang kahalili, para sa eksklusibong paggamit sa isang lokal na network, maaari kang lumikha ng kinakailangang sertipiko sa pamamagitan ng pagpirma nito gamit ang iyong "pribadong" key sa halip na pinagkakatiwalaang sentro sertipikasyon - ang tinatawag na "self-signed" (self-signed):

    $ cd ./make-cert
    $ openssl x509 -req -days 1095 -in ./example.net.csr -signkey ./example.net.key -out ./example.net.crt


    Bilang resulta ng utos sa itaas, bilang karagdagan sa mga umiiral na bahagi, matatanggap namin ang "example.net.crt" na file ng isang self-made na sertipiko, ang pagiging tunay nito ay hindi ma-verify sa imprastraktura ng Internet ng mga awtoridad sa sertipiko, bagaman ito ay functionally normal at magagamit.

    Sinusuri ang kawastuhan ng mga sertipiko at mga susi.

    Ang natanggap na SSL/TLS certificate ay naglalaman ng hindi bababa sa sumusunod na impormasyon:

    Bersyon ng sertipiko;
    Serial number ng sertipiko;
    Signature algorithm;
    Ang buong (natatanging) pangalan ng may-ari ng sertipiko;
    Ang pampublikong susi ng may-ari ng sertipiko;
    Petsa ng paglabas ng sertipiko;
    Petsa ng pag-expire ng sertipiko;
    Ang buong (natatanging) pangalan ng awtoridad sa sertipikasyon;
    Digital na lagda ng publisher.


    Sa personal, palagi kong bine-verify na ang data na tinukoy sa sertipiko ay tama sa pamamagitan ng pag-decode at pagtingin sa mga nilalaman nito gamit ang sumusunod na command:

    $ cd ./make-cert
    $ openssl x509 -noout -text -in ./example.net.crt


    Sa pagsasagawa, kadalasang nangyayari na ang mga walang kakayahan na kliyente o kasamahan ay nagbibigay ng mga nalilitong sertipiko at mga susi na hindi nauugnay sa isa't isa para direktang gamitin sa mga serbisyo sa web. Ang pagsisikap na gamitin ang mga ito sa isang web server ay magdudulot ng error tulad ng "x509 key value mismatch".

    Ang pinakasimpleng paraan upang suriin ang kawastuhan ng "pribadong" key, CSR, at huling X.509 na sertipiko ay ang pag-verify ng checksum ng "pampublikong" key ("modulus" block) na nasa lahat ng mga container na ito:

    $ openssl rsa -noout -modulus -in ./example.net.key | openssl md5
    $ openssl req -noout -modulus -in ./example.net.csr | openssl md5
    $ openssl x509 -noout -modulus -in ./example.net.crt | openssl md5


    Ang MD5 hash string ay maikli, at hindi mahirap sabihin ang pagkakaiba sa pagitan nila.

    Bumubuo kami ng tipikal na hanay ng mga certificate at key file.

    Karaniwan, ang mga awtoridad sa sertipikasyon ay nagbibigay hindi lamang ng hiniling na sertipiko, kundi pati na rin ng karagdagang hanay ng mga intermediate na sertipiko (ang awtoridad mismo, ang parent node nito, at iba pa hanggang sa root node).

    Sa pangkalahatan, sa proseso maaari tayong makaipon ng ilang mga file, na pinangalanan ko ayon sa kanilang pag-andar, tulad nito:

    "example.net.key" - lalagyan na may "pribado" at "pampublikong" key (protektado ng password);
    "example.net.key.decrypt" - lalagyan na hindi protektado ng password na may "pribado" at "pampubliko" na mga key;
    "example.net.csr" - ang kahilingan sa CSR na ginamit kapag nag-order ng certificate;
    "example.net.crt" - direkta ang aming X.509 certificate;
    "intermediate.crt" - sertipiko (o isang kadena ng ganoon) ng awtoridad sa sertipikasyon;
    "root.crt" - sertipiko sentro ng ugat kung saan nagsisimula ang chain of trust.


    Ang mga intermediate na sertipiko ay ibinigay sa amin hindi lamang para sa pagsusuri - ipinapayong dagdagan ang lalagyan ng aming sertipiko na nilayon para magamit sa serbisyo sa web, na bumubuo ng isang chain doon hanggang sa isang kilalang pinagkakatiwalaang node. Ginagawa ito sa pamamagitan lamang ng pagdaragdag ng mga text code sa dulo ng file:

    $ cd ./make-cert
    $ pusa ./example.net.crt >> ./example.net-chain.crt
    $ cat ./intermediate.crt >> ./example.net-chain.crt
    $ cat ./root.crt >> ./example.net-chain.crt


    Iginuhit ko ang iyong pansin sa katotohanan na ang aming sertipiko ay dapat na nasa simula ng kadena na inilagay sa lalagyan - karaniwang sinusuri ng web server ang nakalakip na "pribadong" key gamit ang "pampublikong" key sa unang sertipiko na makikita sa proseso ng pagbabasa ng nilalaman ng lalagyan.

    Sa Linux, ang mga certificate at encryption key ay mayroon nang mga lugar sa file system. Namamahagi kami ng mga file at pinoprotektahan ang mga ito mula sa pag-access ng mga estranghero:

    # mkdir -p /etc/ssl/certs
    # mkdir -p /etc/ssl/private

    # cp ./example.net-chain.crt /etc/ssl/certs/
    # cp ./example.net.key.decrypt /etc/ssl/private/

    # chown -R root:root /etc/ssl
    # chmod -R o-rwx /etc/ssl


    SSL certificate sa Nginx web server.

    Sa pinakasimpleng kaso, ang paggamit ng isang SSL certificate sa "Nginx" web server ay ipinatupad nang humigit-kumulang sa mga sumusunod:

    # vi /etc/nginx/sites-enabled/example.net.conf


    ....

    server(
    makinig sa 443 ssl;
    server_name example.net;
    ....


    ssl sa;
    ssl_dhparam /etc/nginx/ssl/dhparam.pem;
    ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers AES256-SHA:RC4:HIGH:!aNULL:!MD5:!kEDH;
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:30m;
    ssl_session_timeout 1h;


    ssl_certificate /etc/ssl/certs/example.net-chain.crt;
    ssl_certificate_key /etc/ssl/private/example.net.key.decrypt;
    ....
    }
    ....


    SSL certificate sa Apache web server.

    Sa "Apache" web server, ang SSL certificate ay ginagamit tulad nito:

    # vi /etc/apache2/sites-enabled/example.net.conf


    ....
    # Paglalarawan ng working environment ng website na naa-access sa pamamagitan ng HTTPS

    ServerName example.net
    ....


    # Inirerekomenda ang mga generic na setting ng protocol
    Naka-on ang SSL Engine
    SSLProtocol lahat -SSLv2
    SSLHonorCipherOrder sa
    SSLCipherSuite HIGH:MEDIUM:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4:!aECDH:+SHA1:+MD5:+HIGH:+MEDIUM
    SSLOptions +StrictRequire
    Naka-off ang SSL Compression

    # Sertipiko at mga pangunahing file
    SSLCertificateFile /etc/ssl/certs/example.net-chain.crt
    SSLCertificateKeyFile /etc/ssl/certs/example.net.key.decrypt

    ....