O scurtă poveste despre X.509. Prezentare generală a certificatului electronic X.509 Domeniul cheie

Destul de des, administratorii emit certificate folosind mai multe nume. De exemplu, când trebuie să legați un certificat la mai multe nume: mail.company.com și owa.compny.com. Cu toate acestea, câmpul Subiect poate conține un singur nume. Pentru a rezolva această problemă, utilizați extensia Nume alternativ al subiectului (SAN). Cu această extensie, puteți utiliza câte nume suplimentare doriți pentru certificat.

Dar cum poți forma corect mai multe nume dintr-un certificat folosind exemplul mail.company.com și owa.company.com? Există doar 2 opțiuni aici:

  • Utilizați câmpul Subiect și extensia SAN

Această metodă este folosită mai des pentru certificatele externe. Câmpul Subiect este completat după cum urmează (componentele necesare sunt evidențiate cu roșu):

CN = mail.company.com
OU =<название подразделения>
OU =<ещё какое-то название подразделения>
O=<название организации>
L=<местоположение компании>
C=<код страны, где расположена компания>

Aceste. este inclus numele principal al certificatului (de fapt, atunci când utilizați un SAN, nu există conceptul de nume principal, deoarece toate numele sunt considerate egale. Aici ar trebui să specificați numele care va fi folosit cel mai des de aplicațiile care nu acceptă extensia SAN) și, opțional, puteți specifica sufixe DN suplimentare, care reflectă dreptul de proprietate asupra certificatului. Și extensia SAN este completată după cum urmează:

Nume DNS=mail.company.com
Nume DNS=owa.company.com

După cum puteți vedea, numele de la Subiect este duplicat în SAN. Cert este că, dacă certificatul are o extensie SAN și aplicația știe cum să o proceseze, aplicația este de obicei configurată doar pentru a verifica extensia SAN și nu se uită în Subiect. Dar acest lucru nu este întotdeauna cazul. Uneori, aplicația se uită atât la Subiect, cât și la SAN. În acest caz, nu este nevoie să duplicați numele. Dar din motive de compatibilitate, ar trebui să duplicați ÎNTOTDEAUNA numele de la Subiect în extensia SAN.

  • Utilizați numai extensia SAN

Această metodă este rar folosită în certificatele externe, ci doar în cele interne. În acest caz, câmpul Subiect nu este completat deloc și este lăsat gol. Și extensia SAN va include toate numele necesare:

Nume DNS=mail.company.com
Nume DNS=owa.company.com

Această formă de umplutură este acceptată în Internet PKI și este descrisă în RFC 5280. Conform acestui RFC, dacă câmpul Subiect nu este definit (gol), numele certificatului este selectat din extensia SAN, iar extensia însăși este marcată ca critică (vezi RFC 5280 §4.2.1.6). Iată dovezi aproximative despre cum arată în viață:

în fila General, numele este format fie din prenumele din extensia SAN, fie din numele folosit de o anumită aplicație (de exemplu, atunci când este vizualizată dintr-un browser) și care este listat în extensia SAN.

Un câmp gol Subiect este afișat aici.

Și listarea numelor necesare în extensia SAN. Criticitatea unei extensii este determinată de prezența unui triunghi galben și a unui semn de exclamare.

Nota: Ce este o extensie critică? Este doar o extensie pe care aplicația trebuie să o verifice obligatoriu. Dacă o aplicație vede o astfel de extensie, aplicația trebuie să o poată procesa și să înțeleagă semnificația acestei extensii. Dacă aplicația nu știe ce să facă cu această extensie sau aplicația nu poate analiza sensul acestei extensii, aplicația trebuie să respingă acest certificat. Aflați mai multe despre comportamentul aplicației.

Nota: Deși prevede că o aplicație ar trebui să respingă un certificat dacă semnificația extensiei este neclară, acest lucru nu se aplică pe deplin extensiei SAN. O aplicație nu este necesară pentru a accepta toate formele de SAN și poate accepta doar unele forme, de exemplu, numai Nume DNS. Dar dacă formularul suportat nu poate fi recunoscut, certificatul trebuie respins.

Deoarece extensia SAN este singurul mijloc de identificare a numelui certificatului, este logic să ne așteptăm ca această extensie să fie marcată ca critică și necesară pentru procesare de către aplicație.

Ce metodă ar trebui să aleg? Care crezi că este mai acceptabil? Dacă acesta este un certificat de server web extern, este recomandabil să utilizați prima opțiune, deoarece folosind sufixele DN puteți specifica dacă certificatul aparține companiei dumneavoastră. Și, de asemenea, dacă se așteaptă acces de la aplicații care nu acceptă extensia SAN. Acestea nu sunt neapărat aplicații pentru computer, pot fi aplicații pentru dispozitive mobile. Pentru a evita PR-ul excesiv al VeriSign pe blogul meu, va prezint un certificat exemplar executat in prima modalitate pe site-ul Thawte: https://www.thawte.com/

Pentru utilizare în cadrul unei organizații, puteți utiliza a doua opțiune, cu un Subiect gol. De exemplu, pentru certificatele de conectare ale cardurilor inteligente. Controlerele de domeniu nu se uită deloc la Subiectul certificatului de autentificare, ci caută doar în SAN prezența unui UPN în extensie.

format certificat X.509

X.509 este un alt format foarte comun. Toate certificatele X.509 respectă standardul internațional ITU-T X.509; astfel (teoretic), un certificat X.509 creat pentru o aplicație poate fi utilizat în oricare alta care acceptă acest standard. În practică, însă, a apărut situația că diferite companii își creează propriile extensii pentru X.509, care nu sunt toate compatibile între ele.

Fiecare certificat necesită ca cineva să verifice relația dintre cheia publică și informațiile care identifică proprietarul cheii. Atunci când se ocupă de un certificat PGP, oricine poate acționa ca martor la informațiile conținute în acesta (cu excepția cazurilor în care această capacitate este limitată în mod deliberat de politica de securitate). Dar în cazul certificatelor X.509, martorul poate fi doar o Autoritate de Certificare sau cineva autorizat în mod special de aceasta pentru acest rol. (Rețineți că certificatele PGP acceptă pe deplin structuri de încredere ierarhice care utilizează un CA pentru a autentifica certificatele.)

Un certificat X.509 este un set de câmpuri standard care conțin informații despre un utilizator sau dispozitiv și cheia publică corespunzătoare. Standardul X.509 definește ce informații sunt incluse în certificat și cum sunt codificate (formatul de date).

Certificatul X.509 conține următoarele informații:

Versiunea X.509 - indică ce versiune a standardului X.509 se bazează pe acest certificat, care determină ce informații poate conține.

Cheia publică a proprietarului certificatului este cheia publică împreună cu identificatorul algoritmului utilizat (indicând criptosistemul căruia îi aparține cheia) și alte informații despre parametrii cheii.

Numărul de serie al certificatului - organizația care eliberează certificatul este obligată să îi atribuie un număr de serie unic (ordinal) pentru identificarea acestuia printre alte certificate emise de această organizație. Aceste informații se aplică într-un număr de cazuri; de exemplu, atunci când un certificat este revocat, acesta număr de serie se potrivește lista certificatelor revocate(Lista de revocare a certificatelor, CRL).

Identificatorul unic al proprietarului cheii (sau DN, nume distinctiv- nume unic) - acest nume trebuie să fie unic și unic pe întregul Internet. DN constă din mai multe subclauze și poate arăta cam așa:

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

O=PGP Corporation, C=US

(Care înseamnă Nume prietenos pentru subiect, E-mail, Unitate organizațională, Organizație și, respectiv, Țară.)

Perioada de valabilitate a certificatului - data de începere a certificatului și data de expirare a valabilității acestuia; indică momentul în care certificatul va deveni invalid.

Nume unic al emitentului - Numele unic al organizației care a semnat certificatul. De obicei, acesta este numele autorității de certificare. Utilizarea unui certificat implică încredere în organizația care l-a semnat. (În cazurile cu certificate rădăcină, organizația emitentă - aceeași CA - o semnează singură.)

Semnătura digitală a emitentului este o semnătură electronică creată de cheia privată a organizației care a emis certificatul. Identificator algoritm de semnare - Indică algoritmul utilizat de CA pentru a semna certificatul.

Există o serie de diferențe fundamentale între formatele de certificat X.509 și PGP:

vă puteți crea personal propriul certificat PGP;

trebuie să solicitați și să primiți un certificat X.509 de la o autoritate de certificare; Certificatele X.509 conțin un singur nume al proprietarului certificatului;

Certificatele X.509 conțin o singură semnătură digitală care confirmă autenticitatea certificatului.

Pentru a obține un certificat X.509, trebuie să solicitați unei CA să vi-l elibereze. Furnizați sistemului cheia dumneavoastră publică, dovedind astfel că aveți cheia privată corespunzătoare, precum și unele informații care vă identifică. Apoi semnați electronic aceste informații și trimiteți întregul pachet - cererea de certificat - către Autoritatea de Certificare. CA trece printr-un proces de verificare a autenticității informațiilor furnizate și, dacă totul se potrivește, creează un certificat, îl semnează și vi-l returnează.

Vă puteți gândi la un certificat X.509 ca la un certificat obișnuit de hârtie sau un certificat cu o cheie publică atașată. Afișează numele dvs., precum și câteva informații despre dvs., plus semnătura emitentului certificatului.

Poate cel mai mare beneficiu al certificatelor X.509 este utilizarea lor în browserele Web.

Din cartea Arta programarii pentru Unix autor Raymond Eric Stephen

Din cartea Windows Script Host pentru Windows 2000/XP autor Popov Andrei Vladimirovici

Metode de obținere certificat digital Există trei tipuri de certificate digitale: cele create de dezvoltator, cele eliberate dezvoltatorului de către o organizație și cele primite de la o autoritate de certificare Un certificat digital creat de dezvoltator este utilizat de obicei de acești utilizatori

Din cartea Public Key Infrastructure autor Polyanskaya Olga Yurievna

Crearea propriului certificat Cel mai rapid mod de a vă crea propriul certificat digital este să utilizați programul SelfCert.exe, inclus cu Microsoft Office 2000/XP. Prin rularea acestui utilitar, vom primi o casetă de dialog care ne permite să setăm numele celui creat

Din cartea Yandex pentru toată lumea autorul Abramzon M. G.

Suplimente la certificat Informații importante se găsesc și în suplimentele la certificat. Acestea vă permit să includeți în certificat informații care lipsesc în conținutul principal, să determinați valabilitatea certificatului și dacă proprietarul certificatului are drepturi de acces la un anumit

Din cartea Introducere în Criptografie autor Zimmermann Filip

Protocolul de stare a certificatului online Protocolul de stare a certificatului online OCSP este un protocol de răspuns-provocare relativ simplu pentru obținerea informațiilor de revocare de la o entitate de încredere numită răspuns OCSP. Solicitarea OCSP constă din numărul versiunii

Din cartea Sistem de operare UNIX autor Robachevsky Andrey M.

Auditul de bază al certificatelor Auditul de bază al certificatului se efectuează asupra tuturor certificatelor din succesiune și constă dintr-un număr de verificări. Verificări folosind fiecare dintre cele patru grupuri de variabile de stare sunt efectuate pentru a determina dacă

Din cartea autorului

Verificarea valabilității certificatului Această verificare reușește dacă data și ora curentă la momentul validării se află în perioada de valabilitate

Din cartea autorului

Verificarea stării certificatului Această verificare reușește dacă emitentul nu a revocat certificatul. Principalul mijloc de verificare a stării certificatelor sunt listele CAC, dar pot fi utilizate alte mijloace alternative.

Din cartea autorului

Verificarea semnăturii certificatului Semnătura certificatului poate fi verificată pe baza primului grup de variabile de stat folosind cheia publică a emitentului certificatului, folosind parametrii corecti și algoritmul digital

Din cartea autorului

Pregătirea următorului certificat În primul rând, unii verificare simplă certificat CA. Variabilele de stare sunt apoi actualizate pentru a reflecta valorile câmpurilor de extensie ale certificatului. Există mai multe completări care apar

Din cartea autorului

Finalizarea procesării certificatului La finalizarea procesării unui certificat de entitate finală, valorile de ieșire sunt stabilite pe baza valorilor variabilelor de stare Ajustarea variabilelor de stare de verificare a semnăturii digitale. În câmpul de informații

Din cartea autorului

3.3.1. Format RSS Puteți citi știrile site-ului în diferite moduri. Cel mai simplu mod este să vizitezi site-ul din când în când și să te uiți la mesaje noi. Puteți instala un program care se conectează la un canal de știri și primește el însuși titluri sau rezumate de știri, potrivit

Din cartea autorului

Formatul certificatului X.509 X.509 este un alt format foarte comun. Toate certificatele X.509 respectă standardul internațional ITU-T X.509; astfel (teoretic), un certificat X.509 creat pentru o aplicație poate fi folosit în oricare alta,

Din cartea autorului

Revocarea unui certificat Un certificat poate fi utilizat doar atâta timp cât este valabil. Este periculos să ai încredere că un certificat va fi sigur și de încredere pentru totdeauna. În majoritatea organizațiilor și în toate certificat PKI are o durată de viață limitată. Aceasta restrânge perioada în care

Din cartea autorului

Notificare de revocare a certificatului Odată ce un certificat a fost revocat, este esențial să notificați toți potențialii corespondenți că acesta nu mai este valabil. Cel mai simplu mod de a face publicitate într-un mediu PGP este să postați certificatul revocat

Din cartea autorului

Formatul ELF Formatul ELF are mai multe tipuri de fișiere, pe care până acum le-am numit cu diferite nume, cum ar fi fișierul executabil sau fișierul obiect. Cu toate acestea, standardul ELF distinge următoarele tipuri:1. Un fișier relocabil care stochează instrucțiuni și date care pot fi

Există două tipuri de sisteme criptografice: sisteme cu chei private (simetrice) și sisteme cu chei publice (asimetrice). Vorbind aproximativ, dar înțeles, sistemele simetrice folosesc aceeași cheie pentru a efectua operațiuni de criptare și decriptare, în timp ce sistemele asimetrice folosesc altele diferite.

În sistemele simetrice, există o problemă de distribuire a unei chei secrete într-un mod sigur: ambele părți care fac schimb de informații trebuie să cunoască această cheie, dar nimeni altcineva nu trebuie să aibă această cheie.

Sistemele asimetrice sunt proiectate astfel încât să existe două numere în ele:

  • „cheia publică a utilizatorului A”, care este folosită pentru a cripta un mesaj destinat utilizatorului A,
  • „cheia privată a utilizatorului A”, care este folosită de acel utilizator pentru a decripta mesajele trimise lui.
Aceste numere formează o pereche de chei și au următoarea proprietate bună: dacă aceste numere sunt suficient de lungi, este foarte dificil, cunoscând doar cheia publică, să restabilească valoarea cheii private.

Ultimul punct este foarte important: utilizatorul își poate publica cheia publică într-un loc public, astfel încât oricine să o poată folosi și cripta un mesaj pentru A. Prin urmare, problema distribuirii cheii private dispare.

Utilizatorul trebuie să-și păstreze cheia privată secretă față de ceilalți: doriți ca numai utilizatorul să poată decripta mesajele care i-au fost trimise. Mai mult, cerința secretului cheii private este foarte importantă în legătură cu conceptul de semnătură digitală, despre care se discută puțin mai jos. Privind în viitor, vom spune că secretul cheii private este important pentru că numai utilizatorul ar trebui să-și poată crea propria semnătură digitală, care depinde de valoarea cheii private.

Destul de des, cheia privată este stocată pe un mediu în formă criptată și este decriptată doar pe durata unor acțiuni care necesită cunoașterea cheii private. Acest lucru crește oarecum fiabilitatea stocării cheii private, dar creează un inconvenient dacă cheia privată este nevoie de un serviciu automat: (cel puțin) de fiecare dată când porniți acest serviciu, trebuie să introduceți o parolă pentru a decripta cheia.

Există, de asemenea, carduri inteligente care pot efectua operațiuni criptografice în interior, producând doar rezultatul, dar fără a dezvălui conținutul cheii private. Furtul cheii private de pe un smart card implementat corespunzător ar trebui să fie foarte dificil. Cheia privată, chiar dacă este stocată pe un smart card, poate fi protejată printr-o parolă. Dacă nu există o parolă, atunci oricine are un smart card în mână poate efectua acțiuni care necesită cunoașterea cheii private: valoarea cheii private în sine va rămâne secretă, dar va fi posibilă efectuarea oricăror acțiuni intenționate cu ea.

Semnătură digitală

Sistemele cu chei publice au o altă caracteristică frumoasă: utilizatorul poate crea o semnătură digitală, care, atunci când este plasată pe un document digital, poate servi drept garanție că utilizatorul, și nu altcineva, a semnat efectiv acest document.

Schema este simplă din punct de vedere conceptual: utilizatorul A, folosind cheia sa privată, efectuează o operațiune asupra datelor pe care dorește să le semneze și transmite rezultatul împreună cu datele originale oricărui alt obiect. Și același obiect, folosind doar cheia publică a utilizatorului A, poate verifica cu ușurință acest lucru semnătură digitală adevărat.

Să subliniem încă o dată că condiția ca o anumită cheie privată să fie disponibilă numai pentru proprietarul ei joacă un rol foarte important: dacă este îndeplinită, atunci utilizatorul nu poate refuza semnătura sa digitală. Aceasta se numește non-repudiere.

Una dintre utilizările unei semnături digitale este autentificarea unui obiect. Autentificarea este procesul de stabilire a „identității” unei entități. Este clar că, dacă o entitate poate furniza o semnătură digitală, atunci acea semnătură poate fi verificată și entitatea este asociată cu cheia sa publică. Ultimul ingredient care lipsește din această schemă de autentificare este legătura dintre cheia publică și entitate însăși: trebuie să știm exact cine deține cheia publică.

Autoritatea de Certificare

Problema legării unei chei publice și a unui obiect poate fi rezolvată în moduri diferite. Una dintre cele mai simple abordări este de a enumera corespondența dintre cheile publice și „numele” obiectelor. Numele poate fi orice identificator, de exemplu numele de domeniu al unei mașini, Numele complet, numele și patronimul persoanei etc.; problema unicității numelor, care trebuie neapărat să apară, este o dificultate separată care se rezolvă de obicei mijloace administrative cum ar fi un sistem de spații de nume ierarhice și un sistem pentru rezolvarea conflictelor de nume într-un singur subspațiu de nume. Această problemă nu va fi discutată în continuare aici.

Dar abordarea listei de potriviri are o scalare foarte slabă, deoarece aceleași liste trebuie sincronizate peste tot în lume (sau mai degrabă, în partea lumii în care sunt utilizate aceste liste).

Prin urmare, au fost introduse conceptele de certificat X.509 și de autoritate de certificare. Un certificat X.509 (denumit în continuare pur și simplu certificat) este un conglomerat de cheie publică a unui utilizator, informații despre utilizator, un nume de certificat numit Distungiushed Name (DN) și o semnătură digitală a autorității de certificare, care leagă toate aceste date la reciproc. Adică devine posibilă asocierea cheii publice și a DN-ului utilizatorului, care poate servi drept ingredient dorit în procesul de autentificare dacă numele distinctiv al certificatului său este folosit ca identificator al utilizatorului. Apropo, certificatul are o perioadă de valabilitate, care limitează durata meciului creat de autoritatea de certificare.

Desigur, problema este pur și simplu transferată în alt loc - în loc să menținem o listă mare de potriviri, acum trebuie să menținem o listă semnificativ mai mică de chei publice ale autorităților de certificare. În acest caz, cheia autorității de certificare primește destul de multă încredere: autoritatea de certificare confirmă conectarea a mii de nume de utilizator cu cheile publice corespunzătoare.

De ce este nevoie de autentificare? Nu este suficientă criptarea singură?

Ei bine, în primul rând, autentificarea este valoroasă în sine: sistemele informatice trebuie să-și autentifice utilizatorii pentru a decide apoi dacă să le autorizeze accesul la diverse resurse.

Dar dacă luați cheia publică a cuiva și doriți să îi trimiteți un mesaj criptat, probabil că veți dori să vă asigurați că criptați mesajul cu cheia publică corectă, mai ales dacă obțineți cheia respectivă de la o sursă publică. La urma urmei, un atacator își poate plasa cheia publică, dar, în același timp, poate indica faptul că cheia aparține destinatarului tău. Și dacă nu autentificați cheia publică, atunci un atacator care vă interceptează mesajul criptat va putea să îl decripteze fără probleme.

Adică, introducerea unei autorități de certificare ne permite să autentificăm entitatea care deține acest certificat. Desigur, înainte de aceasta trebuie să avem încredere în cheia publică a autorității de certificare. Aceasta înseamnă două lucruri:

  1. încredere în autoritatea de certificare în general, adică încredere în reputația acesteia,
  2. încredere că cheia publică pe care ați primit-o este într-adevăr cheia publică a acestei autorități de certificare.
Din ultimul punct reiese că apare din nou problema autentificării cheilor publice ale autorităților de certificare. Dar, deoarece există mult mai puține dintre aceste centre decât utilizatori, puteți recurge la măsuri administrative:
  • sunați la centrul de certificare și verificați conținutul cheii publice prin telefon,
  • veniți la centrul de certificare însuși și ridicați cheia publică pe unele medii,
  • aveți încredere în acele chei publice ale autorităților de certificare care sunt deja prezente ca parte a unui pachet software
  • si multe alte metode care sunt chiar mai incomode decat cele deja mentionate;))

Certificate de proxy

Grozav: acum avem autorități de certificare de încredere, cheile lor publice, certificate de utilizator și cheile lor private. Putem cripta mesajele și putem crea semnături digitale, al căror fapt este destul de greu de refuzat.

Ce altceva? În sistemele cu mai multe componente, ceea ce este foarte convenabil este ceea ce se numește Single Sign-On - capacitatea de a se autentifica manual o singură dată, iar toate celelalte operațiuni de autentificare vor fi efectuate automat. Acest lucru este valabil de obicei în sistemele care vă autentifică inițial, iar apoi sistemul începe să efectueze acțiuni în numele dvs., de exemplu, primirea datelor, executarea sarcinilor, publicarea rezultatelor acestora etc. Aceasta se numește delegare.

Delegarea bazată pe certificate proxy funcționează după cum urmează: după autentificarea reciprocă a utilizatorului și a serviciului, care va funcționa ulterior în numele utilizatorului, serviciul creează o nouă pereche de chei și trimite cheia publică utilizatorului pentru semnătură. Utilizatorul semnează această cheie publică în același mod ca o autoritate de certificare, dar este folosită cheia privată a utilizatorului. Certificatul rezultat se numește certificat proxy.

Serviciul care acționează în numele utilizatorului se poate autentifica apoi folosind cheia sa privată (nou creată) și un certificat semnat de utilizator. Procesul de autentificare merge cam așa.

  1. Semnătura creată de serviciu este verificată. Aceasta folosește cheia publică care a fost transferată împreună cu semnătura.
  2. Cheia publică cu care a fost verificată semnătura este autentificată. În primul rând, este verificată semnătura de pe certificatul proxy, care a fost creat folosind cheia privată a utilizatorului. Acest lucru se face folosind cheia publică a utilizatorului.
  3. Cheia publică a utilizatorului este autentificată în același mod, dar aici sunt deja folosite datele despre autoritatea de certificare.
Drept urmare, se construiește ceea ce se numește un lanț de încredere, care începe cu un fel de semnătură digitală și se termină cu semnătura digitală a autorității de certificare.

Folosind același mecanism, serviciul căruia i-a fost emis inițial certificatul de proxy poate semna un alt certificat de proxy, delegând autoritatea utilizatorului de-a lungul lanțului unui alt serviciu. Exact așa este implementată Single Sign-On.

  • Ghid de stil X.509, scris de Peter Gutmann. Există o mulțime de detalii tehnice acolo, dar merită citit pentru unii.

Necesitatea de a proteja informațiile

Dezvoltare rapidă continuă tehnologie informatică iar adoptarea pe scară largă a afacerilor folosind Internetul schimbă fundamental modalitățile consacrate de a face afaceri. Nici sistemele de securitate corporative care sprijină afacerile nu pot rămâne pe margine.

În prezent, de exemplu, e-mailul este folosit nu numai pentru comunicarea între oameni, ci și pentru transferul de contracte și informații financiare confidențiale. Serverele web sunt folosite nu numai în scopuri publicitare, ci și pentru distribuție softwareși comerțul electronic. E-mail, acces la server web, comerț electronic, VPN necesită aplicație fonduri suplimentare pentru a asigura confidențialitatea, autentificarea, controlul accesului, integritatea și identificarea. În prezent, astfel de mijloace sunt utilizate pe scară largă protecţie criptograficăși Infrastructura cu chei publice (PKI).

De ce este nevoie de criptografia?

Sistemul de protecție criptografică trebuie să ofere:

  • Confidențialitate- Informațiile trebuie protejate împotriva citirii neautorizate atât în ​​timpul stocării, cât și în timpul transmiterii. În comparație cu tehnologia hârtiei, aceasta este similară cu sigilarea informațiilor într-un plic. Conținutul devine cunoscut abia după deschiderea plicului sigilat. În sistemele de protecție criptografică, este asigurată criptarea.
  • Control acces- Informațiile ar trebui să fie accesibile numai celor cărora le sunt destinate. În comparație cu tehnologia hârtiei, doar destinatarul autorizat poate deschide plicul sigilat. În sistemele de protecție criptografică, este asigurată criptarea.
  • Autentificare- Capacitatea de a identifica în mod unic expeditorul. În comparație cu tehnologia hârtiei, aceasta este similară cu semnătura expeditorului. În sistemele de protecție criptografică, acesta este prevăzut cu o semnătură digitală electronică și un certificat.
  • Integritate- Informațiile trebuie protejate împotriva modificărilor neautorizate atât în ​​timpul stocării, cât și în timpul transmiterii. În sistemele de protecție criptografică, acesta este prevăzut cu semnătură digitală electronică și protecție imitațională.
  • Nerepudierea- Expeditorul nu poate refuza acțiunea finalizată. În comparație cu tehnologia hârtiei, aceasta este similară cu care expeditorul prezintă un pașaport înainte de a efectua o acțiune. În sistemele de protecție criptografică, acesta este prevăzut cu o semnătură digitală electronică și un certificat.

Ce este criptografia cu cheie publică

Transformarea criptografică (criptarea) este o transformare matematică unu-la-unu, în funcție de cheie (parametrul de transformare secret), care se potrivește cu blocul informații deschise(reprezentat în unele codări digitale) un bloc de informații criptate, prezentat și în codificare digitală. Termenul de criptare combină două procese: criptarea și decriptarea informațiilor.

Criptografia este împărțită în două clase: chei simetrice și chei publice.

În criptografia cu cheie simetrică, expeditorul și destinatarul folosesc aceeași cheie (partajată) atât pentru criptare, cât și pentru decriptare.

Avantajele criptografiei cu chei simetrice:

  • Performanţă- Performanța algoritmilor cu chei simetrice este foarte mare.
  • Durabilitate- Criptografia cu cheie simetrică este foarte puternică, făcând decriptarea aproape imposibilă. Toate celelalte lucruri fiind egale (algoritm general), puterea este determinată de lungimea cheii. Cu o lungime a cheii de 256 de biți, este necesar să efectuați 10 până la 77 de puteri de căutare pentru a determina cheia.

Dezavantajele criptografiei cu chei simetrice:

  • Distribuția cheilor - Deoarece aceeași cheie este utilizată pentru criptare și decriptare, sunt necesare mecanisme foarte puternice pentru distribuirea cheilor atunci când se utilizează criptografia cu chei simetrice.
  • Scalabilitate - Deoarece este folosită o singură cheie între expeditor și fiecare dintre destinatari, numărul de chei necesare crește exponențial. Pentru 10 utilizatori aveți nevoie de 45 de chei, iar pentru 100 aveți nevoie de 499500.
  • Utilizare limitată - Deoarece criptografia cu cheie simetrică este utilizată numai pentru a cripta datele și a restricționa accesul la acestea, nu poate oferi autentificare sau non-repudiere.

Criptografia cu chei publice folosește o pereche de chei: o cheie publică și o cheie secretă (privată) cunoscută numai de proprietarul său. Spre deosebire de o cheie privată, care trebuie păstrată secretă, o cheie publică poate fi distribuită în rețea. Cheia secretă în criptografia cu cheie publică este folosită pentru a forma semnătură electronicăși decriptarea datelor.

Criptografia cu cheie publică oferă toate cerințele pentru sistemele criptografice. Dar implementarea algoritmilor necesită mult timp CPU. Prin urmare, criptografia cu cheie publică pură nu este de obicei utilizată în practica mondială. Pentru a cripta datele, se folosesc chei simetrice (de sesiune), care la rândul lor sunt criptate folosind chei de sesiune care sunt publice pentru transmisie prin rețea.

Criptografia cu chei publice necesită prezența unei Infrastructuri cu chei publice (PKI - Public Key Infrastructure) - un serviciu integral pentru gestionarea certificatelor și cheilor electronice ale utilizatorilor, aplicațiilor software și sistemelor.

Verificarea cheii publice

Utilizarea directă a cheilor publice necesită protecție suplimentară și identificare pentru a determina conexiunea cu cheia secretă. Fără o astfel de protecție suplimentară, un atacator s-ar putea prezenta atât ca expeditor al datelor semnate, cât și ca destinatar al datelor criptate, schimbând valoarea cheii publice sau compromițând autentificarea acesteia. În acest caz, oricine poate pretinde a fi regina Angliei. Toate acestea duc la necesitatea verificării cheii publice. Un certificat electronic este utilizat în aceste scopuri.

Certificat electronic reprezintă document digital, care asociază o cheie publică cu un anumit utilizator sau aplicație. Pentru a certifica un certificat electronic, se utilizează o semnătură digitală electronică a unui centru de încredere - Centrul de Certificare (CA). Pe baza funcțiilor pe care le îndeplinește un CA, acesta este componenta principală a întregii Infrastructuri cu cheie publică. Folosind cheia publică a CA, fiecare utilizator poate verifica valabilitatea certificatului electronic emis de CA și poate folosi conținutul acestuia.

Verificarea lanțului de certificate

După cum sa descris mai devreme, încrederea în orice certificat de utilizator este determinată pe baza lanțului de certificate. Mai mult, elementul inițial al lanțului este certificatul autorității de certificare, stocat în directorul personal securizat al utilizatorului.

Procedura de verificare a lanțului de certificate este descrisă în X.509 și RFC 2459 și verifică asocierea dintre numele deținătorului certificatului și cheia publică a acestuia. Procedura de verificare a lanțului presupune că toate lanțurile „corecte” încep cu certificate emise de unul centru de încredere certificare. O autoritate de încredere este o CA primară a cărei cheie publică este conținută într-un certificat autosemnat. Această restricție simplifică procedura de verificare, deși prezența unui certificat autosemnat și verificarea criptografică a acestuia nu oferă securitate. Pentru a asigura încrederea în cheia publică a unui astfel de certificat, trebuie utilizate metode speciale pentru distribuirea și stocarea acestuia, deoarece toate celelalte certificate sunt verificate în funcție de această cheie publică.

Algoritmul de verificare în lanț utilizează următoarele date:

  • X.500 numele Emitentului certificatului;
  • numele X.500 al deținătorului certificatului;
  • cheia publică a editorului;
  • perioada de valabilitate a cheii publice (secrete) a Editorului și a Proprietarului;
  • adaosuri restrictive utilizate la verificarea lanțurilor (basicConstraints, nameConstraints, policyConstrains);
  • SOC pentru fiecare Emitent (chiar dacă nu conține certificate revocate).

Un lanț de certificate este o secvență de n certificate în care:

  • pentru toate x din (1, (n-1)), Proprietarul certificatului x este Emitentul certificatului x+1;
  • certificatul x=1 este un certificat autosemnat;
  • certificatul x=n este certificatul utilizatorului final;

Simultan cu lanțul de certificate, este utilizat lanțul COC, care este o secvență de n COC, în care:

  • pentru toate SOS x din (1, n), emitentul certificatului x este emitentul SOS x;
  • SOS x=1 este SOS emis de Deținătorul certificatului autosemnat;
  • COC x=n este COC emis de emitentul certificatului de utilizator final;

După construirea a două lanțuri (certificate și SOS), se execută următoarele:

  • verificare criptografică a certificatelor și SOS în lanțuri;
  • verificarea perioadelor de valabilitate a certificatelor și SOS;
  • verificarea coerenței numelor Editorului și Proprietarului folosind add-on-ul nameConstraints;
  • verificarea lungimii lanțului folosind căptușeală constrângeri de bază;
  • verificarea revocării certificatelor, iar dacă certificatul unui centru intermediar a fost revocat de către SOS al unui centru de nivel superior, toate certificatele eliberate de centrul intermediar sunt considerate nevalide;
  • verificarea reglementărilor acceptabile de utilizare a certificatelor și a zonelor acceptabile de utilizare a cheilor folosind suplimente certificatePoliticiŞi extendedKeyUsage.

Componentele PKI și funcțiile acestora

Componentele PKI includ următoarele componente:

  • Centru de certificare;
  • Centrul de înregistrare;
  • utilizatorii finali;
  • Director de rețea.

Centru de certificare

Centrul de Certificare (sau Autoritatea de Certificare) este principala componentă de control a PKI, concepută pentru a genera certificate electronice ale Centrelor subordonate și ale utilizatorilor finali. Pe lângă certificate, CA generează o listă de certificate CRL (SOC) X.509 revocate cu regularitatea determinată de Reglementările de sistem.

Principalele funcții ale CA includ:

  • Generarea propriei chei private și certificat CA;
  • Formarea certificatelor de centre subordonate;
  • Generarea de certificate de cheie publică pentru utilizatorul final;
  • Generarea unei liste de certificate revocate;
  • Menținerea unei baze de date cu toate certificatele emise și listele certificatelor revocate;

Centru de înregistrare

O componentă PKI opțională concepută pentru înregistrarea utilizatorului final. Sarcina principală a CA este să înregistreze utilizatorii și să asigure interacțiunea acestora cu CA. Sarcinile DA pot include, de asemenea, publicarea certificatelor și a COC-urilor în directorul rețelei LDAP.

Utilizatori

Utilizatorul, aplicația sau sistemul care este Proprietarul certificatului și utilizează PKI.

Director de rețea

O componentă PKI opțională care conține certificate și liste de revocare a certificatelor și care servește în scopul distribuirii acestor obiecte între utilizatori folosind protocolul LDAP (HTTP, FTP).

Utilizarea PKI în aplicații

PKI este utilizat pentru a gestiona chei și certificate electronice în aplicații (cum ar fi e-mail, aplicații web, comerț electronic) care utilizează criptografia pentru a stabili conexiuni de rețea sigure (S/MIME, SSL, IPSEC) sau pentru a crea semnătură digitală electronică documente, cereri etc. În plus, PKI poate fi utilizat pentru aplicații de întreprindere.

Gestionarea e-mailului și a documentelor

Gestionarea securizată a e-mailului și a documentelor utilizează criptografia pentru a cripta mesajele sau fișierele și pentru a genera semnături digitale. Printre cele mai cunoscute și răspândite standarde, este de remarcat protocolul S/MIME (Secure Multipurpose Internet Mail Extensions), care este o extensie a standardului de poștă Internet MIME (Multipurpose Internet Mail Extensions).

aplicații web

Browserele web și serverele folosesc PKI pentru autentificare și confidențialitatea sesiunii, precum și pentru aplicații bancare online și magazine electronice. Cel mai comun protocol în această zonă este protocolul SSL (Secure Sockets Layer). Protocolul SSL nu se limitează la securitatea HTTP (Hypertext Transfer Protocol), ci poate fi folosit și pentru FTP (File Transfer Protocol) și Telnet.

Semnătura digitală a fișierelor și aplicațiilor

Utilizarea semnăturilor digitale pentru a semna aplicații și fișiere vă permite să le distribuiți în siguranță pe Internet. În același timp, utilizatorul are încredere în corectitudinea aplicației primite de la compania dezvoltatoare.

Standardele PKI

Standardele din domeniul PKI sunt împărțite în două grupuri: o parte dintre ele descrie implementarea efectivă a PKI, iar a doua parte, care aparține nivelului de utilizator, utilizează PKI fără a o defini. Figura următoare arată modul în care aplicațiile sunt legate de standarde. Standardizarea în domeniul PKI permite diferitelor aplicații să interacționeze între ele folosind un singur PKI.

Standardizarea este importantă în special în domeniile:

  • proceduri de înregistrare și generare a cheilor;
  • descrieri de format de certificat;
  • descrieri ale formatului SOS;
  • descrieri ale formatului datelor protejate criptografic;
  • descrieri ale protocoalelor online.

Principalul centru de emitere a standardelor de consens în domeniul PKI este grupul de lucru PKI al IETF (Internet Engineering Task Force), cunoscut sub numele de grupul PKIX (de la abrevierea PKI pentru certificatele X.509).

Standardele PKIX

Specificațiile PKIX se bazează pe două grupuri de standarde: ITU-T (International Telecommunications Committee) X.509 și PKCS (Public Key Cryptography Standards) firmy RSA Data Security. X.509 a fost inițial destinat să specifice autentificarea atunci când era utilizat ca parte a unui serviciu de director X.500. De fapt, sintaxa certificatului electronic propusă în X.509 este recunoscută ca standard de facto și a devenit adoptată pe scară largă independent de X.500. Cu toate acestea, ITU-T X.509 nu a fost destinat să definească complet PKI. Pentru a implementa standardele X.509 în practica de zi cu zi, utilizatorii, vânzătorii și comitetele de standarde apelează la standardele PKCS. PKIX Grupul a publicat următoarele standarde de internet (RFC).

Numele comun sau CN este folosit în general în certificatele SSL. CN este folosit pentru a defini numele serverului care va fi folosit pentru conexiunea SSL securizată. În general, acest certificat SSL este folosit pentru a securiza conexiunea între un server HTTP/S și un browser client precum Chrome, Explorer, Firefox.

Numele comun este folosit pentru a specifica identitatea gazdei sau a serverului. Când un client încearcă să se conecteze la un server la distanță, cum ar fi serverul HTTP, va primi mai întâi certificatul SSL al acestui server. Apoi comparați numele gazdă sau numele domeniului pe care dorește să se conecteze cu numele comun furnizat în certificatul SSL. Dacă sunt aceleași, va folosi certificatul SSL pentru a cripta conexiunea.

Nume comun reprezentat tehnic ca câmp commonName în specificația certificatului X.509. Specificația X.509 este utilizată în certificatele SSL, care este aceeași.

Putem formula numele comenzii ca mai jos.

Nume comun = Nume domeniu + Nume gazdă

Nume comun = Nume domeniu + Nume gazdă

Putem folosi următoarele nume de domeniu și gazdă ca nume comun.

site-ul web www.site *.site

poftut. com

www. poftut. com

*. poftut. com

Nume de domeniu complet calificat (FQDN)

Nume de domeniu complet calificat sau FQDN este utilizat cu numele de comandă interschimbabil. Numele complet calificat este folosit pentru a defini numele gazdei într-un mod strict. Mai multe detalii despre FQDN-ul pot fi găsite în următorul tutorial.

Numele organizației

Numele organizației poate fi interpretat greșit cu numele comun. Organization Name este numele organizației de care aparține infrastructura IT. Numele organizației nu ar trebui folosit pentru numele comun, ceea ce va crea probleme de securitate.