Semnături digitale (semnături), ansambluri și implementări, articole, programare - programare

Dacă ansamblul trebuie să fie instalat în cache-ul global de asamblare, acesta trebuie să fie semnat digital. Semnătura digitală (semnătura) nu este necesară și nu este deosebit de util pentru asamblarea desfășurată în particular, pentru ca un ansamblu privat este implementat de către utilizator pentru a lucra cu programul client specific, și, prin urmare, a fost de acord cu ea. Dacă un ansamblu implementat în mod privat are o semnătură digitală, CLR implicit pentru runtime în limbaj comun nu verifică acest lucru atunci când încarcă ansamblul pentru programul client. Prin urmare, răspunderea pentru prevenirea modificării neautorizate sau a manipulării ansamblurilor private desfășurate este în totalitate responsabilitatea administratorului. Pe de altă parte, este foarte avantajos să se utilizeze dislocate ansamblul (adică publice) publice, deoarece acestea trebuie să fie semnate digital, și, prin urmare, acestea sunt de obicei utilizate de către mulți clienți, în următorii pot exista mai multe versiuni ale aceluiași ansamblu.







Semnăturile digitale (semnături) se bazează pe metode criptografice care utilizează cheile publice. În lumea criptografiei, se folosesc două metode criptografice principale: cifrele simetrice (cheia comună) și cipurile asimetrice (cheia publică). Ciprele simetrice partajează o cheie secretă atât pentru codificare, cât și pentru decriptare. Standardul de criptare a datelor DES (Standard Encryption Data), Triple DES (Triple Data Encryption Standard) și RC2 sunt exemple de algoritmi de criptare simetrici. Ciprele simetrice pot fi foarte eficiente și puternice în securizarea mesajului între doi colaboratori de încredere, dar nu sunt în întregime potriviți pentru situații în care este dificil să partajați o cheie secretă. Din acest motiv, cipurile simetrice sunt considerate nepotrivite pentru semnăturile digitale (semnături). De aceea, semnăturile digitale (semnăturile) nu sunt folosite pentru secret, ci doar pentru identificare și identificare, care este o afacere mai deschisă. Dacă v-ați împărtășit cheia simetrică cu oricine care ar dori să vă asigurați de autenticitatea adunărilor dvs., atunci prin neglijență i-ați putea încredința oamenilor care voiau să vă îndeplinească rolul. Pentru utilizarea în semnăturile digitale (semnături), cipurile asimetrice sunt mult mai potrivite.







Cipurile asimetrice, denumite și cipuri cu chei publice, utilizează o pereche criptografică de chei publice și private. Cheile din pereche sunt legate matematic și sunt generate împreună; Cu toate acestea, este extrem de dificil să se calculeze o cheie în alta. De obicei, se eliberează o cheie publică pentru oricine dorește să se asigure că proprietarul ansamblului este autentic, pe de altă parte, proprietarul păstrează în secret secretul secret secret, astfel încât nimeni să nu-și poată semnaliza semnătura. Metoda de criptare a cheilor publice RSA (codarea RSA) este un exemplu de sistem de criptare a cheilor publice.
criptare cu cheie publică se bazează pe o schemă matematică foarte interesantă, care vă permite să cripta textul simplu, cu o singură cheie și decriptat numai prin cunoașterea cheii corespunzătoare exemplului inițial, atunci când cheia publică este folosită pentru a cripta datele originale (numite clartext), numai cheia privată corespunzătoare poate ajută la descifrarea acestui text. Chiar și cheia care a fost folosită pentru criptare nu va ajuta la descifrarea textului criptat! Acest script este util atunci când mesajele secrete sunt trimise numai unei persoane care cunoaște cheia secretă.

Luați în considerare acum scenariul opus. O persoană care știe cheia secretă o folosește pentru a cripta textul scris. Textul criptat rezultat nu este un secret, deoarece oricine interesat poate primi o cheie publică pentru a descifra acest text. Acest scenariu este inutil pentru secret, dar foarte eficient în scopuri de identificare. Nu este necesar să se cripteze complet datele sursă, prin urmare, pentru a spori eficiența, codul hash compact este codificat în locul lor, ceea ce este foarte probabil să fie caracteristic datelor originale. Dacă obțineți un fișier care conține o versiune criptată a propriului cod hash și îl decriptați cu cheia publică adecvată, atunci, de fapt, veți recalcula codul hash al datelor sursă. Și dacă acum veți găsi că acesta coincide cu codul hash care a fost criptat, puteți fi destul de sigur că era proprietarul cheii private atașat semnăturii digitale și a datelor nu a fost schimbat de către alte persoane Dacă presupunem că proprietarul a fost în măsură să păstreze o cheie privată secretă, atunci coincidența rezultatelor calculului demonstrează că nimeni nu ar putea denatura fișierul după ce a fost semnat digital. În Fig. 7.3 arată cum funcționează semnătura digitală (semnatura).

Fig. 7.3. Acesta este modul în care funcționează semnătura digitală (semnătura).

Semnarea digitală utilizând metoda de criptare a cheilor publice RSA și SHA1

Pentru a semna un ansamblu, producătorul calculează folosind algoritmul SHA1, codul hash (și bytes rezervate pentru semnătura (semnătura), pentru a reseta anterior la zero), iar apoi criptează valoarea hash cu cheia secretă, folosind o metodă de criptare în conformitate cu cheia RSA deschisă schemă ( RSA-codare). Cheia publică și codul hash criptat sunt stocate în metadatele de asamblare.







Trimiteți-le prietenilor: