Pagina documente » Informatica, Matematica » Prezentare generala privind semnaturile digitale

Despre lucrare

lucrare-licenta-prezentare-generala-privind-semnaturile-digitale
Aceasta lucrare poate fi descarcata doar daca ai statut PREMIUM si are scop consultativ. Pentru a descarca aceasta lucrare trebuie sa fii utilizator inregistrat.
lucrare-licenta-prezentare-generala-privind-semnaturile-digitale


Cuprins

CUPRINS
INTRODUCERE 8
1.1. PROBLEMATICA SEMNARII DIGITALE 8
1.2. PROBLEMATICA DESCRIERII UNITARE A DATELOR 9
2. PREZENTARE GENERALA XML 10
2.1. CERINTELE DE PROIECTARE 10
2.2. SINTAXA UNUI DOCUMENT XML 11
2.2.1. Reguli de sintaxa 11
2.3. STRUCTURI 12
2.3.1. Structuri fizice 12
2.3.2. Structuri logice 13
2.4. VALIDAREA DOCUMENTELOR XML 13
2.5. XML SCHEMA SI DTD 14
2.6. DATE SI STRUCTURI 15
2.7. DOM 16
3. LEGISLATIA PRIVIND SEMNATURILE ELECTRONICE 17
3.1. LEGISLATIA EUROPEANA 17
3.1.1. Directiva Consiliului Europei 17
3.2. LEGISLATIA ROMiNEASCA 22
3.2.1. Legea semnaturii electronice 22
3.2.2. Normele tehnice si metodologice (HG1259 din 13 decembrie 2001) 24
4. PREZENTARE GENERALA A SEMNATURILOR DIGITALE iN XML 26
4.1. SEMNATURA DIGITALA 26
4.1.1. Elemente de criptare asimetrica 26
4.1.2. Cerinte pentru semnaturi 26
4.1.2.1. Proba 27
4.1.2.2. Caracter oficial 27
4.1.2.3. Acord 27
4.1.2.4. Eficienta 27
4.1.3. Proprietati ale semnaturilor digitale 27
4.1.3.1. Autentica 27
4.1.3.2. Nefalsificabila 28
4.1.3.3. Nereutilizabila 28
4.1.3.4. Nealterabila 28
4.1.3.5. Nerepudiabila 28
4.2. INFRASTRUCTURA PKI 29
4.3. CARACTERISTICI XMLDSIG 30
4.3.1. Structura de obiect 30
4.3.2. Usor de citit 31
4.3.3. Semnaturi multiple intr-un singur document 31
4.3.4. Compatibilitatea 31
5. SINTAXA SI PROCESARE XMLDSIG 32
5.1. GENERALITATI 32
5.2. RECOMANDAREA W3C PRIVIND SINTAXA SI PROCESAREA SEMNATURILOR DIGITALE iN XML 33
5.2.1. Stabilirea cadrului de lucru 33
5.2.2. Conceptul de semnatura simpla (core signature) 33
5.2.3. Conceptul de semnatura extinsa (extended signature) 34
5.2.4. Reguli de procesare 36
5.2.4.1. Generarea semnaturii simple 37
5.2.4.1.1. Generarea referintelor 37
5.2.4.1.2. Generarea semnaturii 37
5.2.4.2. Validarea semnaturii simple 38
5.2.4.2.1. Validarea referintelor 38
5.2.4.2.2. Validarea semnaturii 39
5.2.5. Sintaxa semnaturii simple 39
5.2.5.1. Elementul Signature 39
5.2.5.2. Elementul SignatureValue 40
5.2.5.3. Elementul SignedInfo 40
5.2.5.4. Elementul CanonicalizationMethod 41
5.2.5.5. Elementul SignatureMethod 42
5.2.5.6. Elementul Reference 42
5.2.5.7. Elementul KeyInfo 44
5.2.5.8. Elementul Object 45
5.2.6. Sintaxa semnaturii extinse 46
5.2.6.1. Elementul Manifest 46
5.2.6.2. Elementul SignatureProperties 47
5.3. EXEMPLU 48
6. STANDARDUL PENTRU SEMNATURI DIGITALE XML AVANSATE (ETSI TS 101 903 - XML ADVANCED ELECTRONIC SIGNATURES XADES) 49
6.1. INTRODUCERE SI SCOP 49
6.2. SEMNATURA ELECTRONICA SI DATE DE VALIDARE 51
6.3. STRUCTURI DE DATE ALE SEMNATURII ELECTRONICE XML AVANSATE (XADES) 51
6.3.1. Continutul XAdES-BES 51
6.3.2. Continutul XAdES-EPES 53
6.3.3. Continutul XAdES-C 55
6.4. DATE DE VALIDARE A FORMULARELOR EXTINSE 56
6.4.1. Continutul XAdES-X 56
6.4.2. Continutul XAdES-X-L 57
6.5. DATE DE VALIDARE ARHIVELOR 57
6.5.1. Continutul XAdES-A 57
7. PREZENTARE GENERALA STUCTURI SI CLASE 59
7.1. MOTIVAREA ALEGERII LIMBAJULUI JAVA(tm) 59
7.2. PACHETELE DISTRIBUITE SI CLASELE MAI IMPORTANTE 60
7.2.1. DSIG 60
7.2.1.1. ConfigManager 61
7.2.1.2. XMLDSIG 62
7.2.2. Data 62
7.2.2.1. Data 63
7.2.2.2. DataList 64
7.2.2.3. Cache 64
7.2.2.4. URIDereferencer 64
7.2.3. XML 65
7.2.3.1. SignedDoc 67
7.2.3.2. Signature 68
7.2.3.3. SignedInfo 69
7.2.3.4. Reference 71
7.2.3.5. SignedProperties 72
7.2.3.6. UnsignedProperties 74
7.2.3.7. SignatureValue 76
7.2.3.8. RSAKeyInfo 76
7.2.4. Utils 78
7.2.4.1. XMLContainer 78
7.2.4.2. ConvertUtils 79
7.2.5. Crypto 80
7.2.5.1. Algorithm 80
7.2.6. Transform 81
7.2.6.1. Transform 81
7.2.6.2. Base64 82
7.2.6.3. DOMc14n 83
7.2.7. Certificate 84
7.2.8. Factory 86
7.2.9. Exceptions 86
7.3. DATAFLOW GENERAL 87
7.3.1. Semnare 87
7.3.1.1. Determinarea referintelor 88
7.3.1.2. Calculare digest 88
7.3.1.3. Grupare referinte intr-un signedInfo 88
7.3.1.4. Calculare digest pentru SignedInfo 89
7.3.1.5. Semnare digest SignedInfo 89
7.3.1.6. Adaugare informatii despre cheie 89
7.3.1.7. Adaugare informatii suplimentare 89
7.3.2. Verificare 90
7.3.2.1. Identificarea semnaturii care trebuie verificata 90
7.3.2.2. Extragerea elementului SignedInfo 90
7.3.2.3. Calculare digest asupra elementului SignedInfo 91
7.3.2.4. Calcularea cheii de verificare 91
7.3.2.5. Verificarea semnaturii 91
7.3.2.6. Compararea celor doua digest-uri 91
8. APLICATIE 92
8.1. SCOPUL APLICATIEI 92
8.2. PREZENTARE APLICATIEI DE SEMNARE 93
8.2.1. Ecranul de configurare 93
8.2.2. Ecranul de introducere a datelor 95
8.2.3. Ecranul de alegere a cheii de semnare 98
8.2.4. Ecranul de prezentare 99
9. CONCLUZII 100
10. BIBLIOGRAFIE 101

EXTRAS DIN DOCUMENT

?

Index de figuri

Figura 1: Elementele componente ale unei semnaturi electronice XML avansate {p}

Figura 2: Structura XML a unei semnaturi XAdES-BES {p}

Figura 3: Structura XML a unei semnaturi XAdES-EPES {p}

Figura 4: Elementele componente ale unei semnaturi electronice XML avansate complete {p}

Figura 5: Elementele componente ale tipurilor de semnatura extinsa {p}

Figura 6: Relatia dintre formatul XAdES-X-L si forma de arhivare {p}

Figura 7: Sintaxa unei semnaturi electronice cu validare si arhivare {p}

Figura 8: Descrierea generala a pachetului de clase „Dsig” {p}

Figura 9: Descrierea generala a pachetului de clase „Data” {p}

Figura 10: Descrierea generala a pachetului de clase „XML” {p}

Figura 11: Descrierea generala a pachetului de clase „Utils” {p}

Figura 12: Descrierea generala a pachetului de clase „Crypto” {p}

Figura 13: Descrierea generala a pachetului de clase „Transform” {p}

Figura 14: Descrierea generala a pachetului de clase „Certificate” {p}

Figura 15: Descrierea generala a pachetului de clase „Factory” {p}

Figura 16: Descrierea generala a pachetului de clase „Exceptions” {p}

Figura 17: Fluxul datelor si obiectelor pentru generarea unei semnaturi {p}

Figura 18: Fluxul de date si obiecte pentru verificarea unei semnaturi {p}

Figura 19: Frame-ul de configurare pentru aplicatia de semnare {p}

Figura 20: Fereastra de alegere a unui document XML {p}

Figura 21: Ecranul de configurare dupa alegerea documentului {p}

Figura 22: Frame-ul de alegere a datelor care vor fi semnate {p}

Figura 23: Frame care prezinta structura unui document XML {p}

Figura 24: Frame de introducere a informatiilor despre cheie {p}

Introducere

1.1. Problematica semnarii digitale

Înainte de a putea discuta despre semnatura digitala trebuie sa explicam notiunea de semnatura si rolul pe care aceasta il are in cadrul relatiilor inter-umane. De obicei, semnatura este o versiune stilizata a numelui unei persoane, scrisa pe documente si actionand ca o dovada a identitatii persoanei respective, un fel de sigiliu personal, obtinut prin scrierea de mana. O semnatura are rolul de a fi o proba privind provenienta unui anumit document si privind intentiile persoanei care a semnat realativ la respectivul document.

Însa o semnatura nu este suficienta, daca cel care semneza nu poate sa faca asocierea intre caligrafia semnaturii si identitatea persoanei care a semnat. Aceasta asociere poate fi facuta direct (daca cele doi se cunosc si isi pot recunoaste scrisul unul altuia) sau indirect, prin utilizarea unei a treia persoane, de incredere (de obiecei un notar public), care prin semnatura sa confirma legatura dintre o persoana si semnatura acelei persoane.

Odata cu dezvoltarea industriei calculatoarelor a inceput sa se puna probleme gasirii unei metode de a putea asocia si un document creat cu ajutorul unui editor de texte cu autorul sau, fara a mai folosi suportul de hartie.

Mai mult, dupa aparitia Internetului si a posibilitatii de a stabili relatii de afaceri la mare distanta, de cele mai multe ori fara a-l intalni fizic pe cel cu care se realizeaza repectiva afacere, a condus si mai mult la dorinta de eliminare a suportului de hartie la incheierea contractelor. A ramas insa aceeasi necesitate de a putea stabili o relatie intre identitatea unei persoane si intentia sa privind un anume document in format electronic. Deci, problema a ramas aceeasi, doar contextul in care ea se manifesta s-a schimbat.

Cu alte cuvinte, semnatura digitala reprezinta mutarea unei vechi probleme, cea a ‚aplicarii sigiliului’ in noua lume a calculatoarelor, a documentelor electronice si a Internet-ului. Modalitatea de rezolvare este si ea tot o traducere in format electronic a solutiilor aplicate cu succes de-a lungul timpului.

1.2. Problematica descrierii unitare a datelor

Una din marile probleme ale transmiterii datelor intre doua sisteme informatice consta in modalitatea de prezentare a datelor respective. Deoarece lumea calculatoarelor este una eterogena, trebuie ales formatul de prezentare care sa conduca la aceeasi interpretare a datelor indiferent de sistemul care face acea interpretare.

Mai mult chiar, un anumit sir de biti, deci o informatie, poate avea o semnificatie diferita chiar pe acelasi calculator; sa nu uitam ca un numar intreg poate fi scris pe 1, 2, 4 sau 8 octecti.

Aproape singurul mod de reprezentare a informatiei care este interpretat in acelasi fel de toate sistemele informatice este modul text. Un caracter este vazut la fel de toate calculatoarele, indiferent de arhitectura pe care se bazeaza sau de sistemul de operare care exista pe acel calculator.

Însa in lumea calculatorelor un sir de caractere nu are o inteles decat daca se stie semnificatia care trebuie acordata acelui text. Cu alte cuvinte, atunci cand se doreste mai mult decat simpla afisare a unui text, datelor reprezentate de un sir de caractere trebuie sa li se dea o anumita semnificatie, calculatorului trebuie sa i se explice cum anume trebuie sa transforme sirul de caractere in informatii pe care sa le poata prelucra.

Urmatorul pas logic este acela de a sugera existenta unui sir de caractere care sa explice semnificatia, ajungandu-se in final la date care se auto-descriu. Astfel dupa citirea unui document text, un calculator si-ar putea extrage informatiile pe care trebuie sa le proceseze si ar sti si ce modalitati de procesare pot fi aplicate.

Deci, sirul de caractere nu are decat rolul de purtator al informatiilor, calculatoarele lucrand cu tipuri interne de date. Este treaba calculatorului sursa sa genereze sirul de caractere astfel incat sarcina decodarii informatiei sa nu fie prea complicata sau sa poata conduce la interpretari diferite.