Sunteți pe pagina 1din 3

Lector ing.

Mihai TOGAN

Lucrare de laborator 2

Base64, ASN.1, BER, DER


Obiectivele laboratorului:
1) Insusirea de catre studenti a principiilor de reprezentare a datelor folosind limbajul
descriptiv ASN.1
2) Insusirea de catre studenti a regulilor de codificare Base64, BER &DER

1. Codificare datelor la forma ASCII.


Forma de codificare de tip BASE64.
i) Prezentare PPT
ii) Exemplificare codificare/ decodificare BASE64 folosind openssl.exe

Exemplu :

Codificare : $openssl.exe enc a e in fisier.in out fisier.b64


Decodificare : $openssl.exe enc a d in fisier.b64 out fisier.out

2. Limbajul ASN.1, codificari BER, DER


i) Prezentare PPT

Bibliografie recomandata :
Standard X690:
http://www.itu.int/ITU-T/studygroups/com17/languages/X.690-0207.pdf
Laymans Guide:
http://luca.ntop.org/Teaching/Appunti/asn1.html
Tools & Tutorials
http://www.itu.int/ITU-T/asn1/links/index.htm
http://www.oss.com/asn1/resources/asn1-made-simple/introduction.html
http://www.oss.com/asn1/resources/development-with-asn1/asn1-development-workflow.html

ii) Exemple de structuri ASN.1

Se foloseste parserul ASN.1 existent in aplicatia openssl.exe (Win/ Linux) sau


aplicatia BERViewer (Win).
Exemplu:
$openssl.exe asn1parse inform DER in fisierDER.dat -i
Lector ing. Mihai TOGAN

Exemplu de obiecte ASN.1: certificate X.509 (vezi RFC5280,


http://tools.ietf.org/html/rfc5280 ).

Task 1:
Se va parsa structura de date de tip certificat X.509 si se vor identifica campurile
principale ale certificatului (versiune, numarul serial, valabilitate, numele emitentului, a
subiectului, etc.).

Task2:
Sa se faca codificarea DER pentru urmatoarea structura ASN.1.

Student := SEQUENCE {
varsta INTEGER,
nume Nume,
cu_taxa BOOLEAN,
tema Tema
}

Nume := SEQUENCE {
nume PrintableString,
prenume PrintableString
}

Tema := SEQUENCE {
domeniu OBJECT IDENTIFIER,
titlu UTF8String
}

Codificarea se va face manual (pe hartie) pentru un Student S avand varsta de 20 ani,
numele Popescu Ion, care studiaza la buget, si are o tema din domeniul 1.2.3.4.5 cu
titlul Tema Asn1.

Task3:
Sa se genereze structura ASN.1 si valorile obiectului avand codificarea DER
urmatoare (valorile sunt in hexazecimal):
0x304913214D617374657220646520736563757269746174656120696E666F726D61
74696569301E170D3039313030313030303030305A170D3130303331353030303030
305A020103010101

Task 4:
Lector ing. Mihai TOGAN

Sa se faca parsarea secventei DER de mai sus folosind openssl.exe si aplicatia


BERViewer.

iii) Analizarea strcuturii generale a unui parser ASN.1

iv) Tem
A) Generati o aplicatie folosind parserul existent in biblioteca (API) openssl care
sa codifice BER structura ASN.1 de mai sus pentru un Student S avand datele
personale, domeniul 1.2.3.4.5 si un titlu ales la intamplare.

B) Generati o aplicatie folosind parserul existent in biblioteca (API) openssl care


sa se parseze un fisier binar care contine urmatoarea secventa BER de mai
sus.

Obs: Pornind de la functiile pentru codificarea structurilor (tipurilor) de baza ale


limbajului ASN.1 existente la nivelul bibliotecii indicate, in cadrul aplicatiei vor fi
implementate primitivele (functii, clase, metode) care sa realizeze
codificarea/decodificarea structurilor mentionate.

S-ar putea să vă placă și