TP1 : Cryptographie Module TR-C8

Transcription

TP1 : Cryptographie Module TR-C8
TP1 : Cryptographie
Module TR-C8
Prise en main : encodage base 64
a)
openssl enc -base64 -e -in ebrowse.exe -out ebro64
b)
openssl enc -base64 -d -in ebro64 -out ebrod
c)
diff ebrowse.exe ebrod
// Si aucun message ne s'affiche, c'est bon.
d)
Il sert à transcoder le fichier de base en base64, ce n'est pas du chiffrement car
facilement déchiffrable.
SANCHEZ David RT2 B1
TP1 de TR-C8
10/12/07
1/7
Cryptage à clé secrète
a)
Pour DES (clé de 56bits)
# openssl enc -DES -P -nosalt
enter des-cbc encryption password:
Verifying - enter des-cbc encryption password:
key=F71DBE52628A3F83
iv =A77AB494817525C6
Refaisons la manipulation pour DES
# openssl enc -DES -P -nosalt
enter des-cbc encryption password:
Verifying - enter des-cbc encryption password:
key=F71DBE52628A3F83
iv =A77AB494817525C6
Pour DES3 (clé de 112 ou 168 bits)
# openssl enc -DES3 -P -nosalt
enter des-ede3-cbc encryption password:
Verifying - enter des-ede3-cbc encryption password:
key=F71DBE52628A3F83A77AB494817525C65E5BBC7668BA99C1
iv =FEE2CE2546631CC6
Pour Blowfish
# openssl enc -blowfish -P -nosalt
enter bf-cbc encryption password:
Verifying - enter bf-cbc encryption password:
key=F71DBE52628A3F83A77AB494817525C6
iv =5E5BBC7668BA99C1
La longueur de la clé dépend bien de l'algorithme.
b)
Avec toto comme mot de passe
# openssl enc -DES -P -nosalt
enter des-cbc encryption password:
Verifying - enter des-cbc encryption password:
key=F71DBE52628A3F83
iv =A77AB494817525C6
Avec torototo comme mot de passe
# openssl enc -DES -P -nosalt
enter des-cbc encryption password:
Verifying - enter des-cbc encryption password:
key=584F1DFF65707473
iv =2F099F37039DD418
Le vecteur d'initialisation dépend bien du mot de passe.
c)
Mot de passe : toto
SANCHEZ David RT2 B1
TP1 de TR-C8
10/12/07
2/7
# openssl enc -DES -P
enter des-cbc encryption password:
Verifying - enter des-cbc encryption password:
salt=CAB3BEA0750E601D
key=A5DE95322C8D8124
iv =BAB004A56DEF6F04
# openssl enc -DES -P
enter des-cbc encryption password:
Verifying - enter des-cbc encryption password:
salt=98AA8B3EC1F35E16
key=38275F9D945E7CC1
iv =1D39F8487C3B73D2
Oui la clé change à partir du même mot de passe (key=A5DE95322C8D8124 et
key=38275F9D945E7CC1).
d)
Le vecteur d'initialisation change aussi à chaque fois (voir commandes du c)).
e)
Passphrase : azerty
toto.txt : texte généré sur le net
# openssl enc -des -P -in toto.txt -out totodes
enter des-cbc encryption password: azerty
Verifying - enter des-cbc encryption password: azerty
salt=E891A9EFE4C9E492
key=F457C08B14ED68A7
iv =041EDCD8F48AF166
# openssl enc -des -iv 041EDCD8F48AF166 -K F457C08B14ED68A7 -in toto.txt -out
totodes -e
f)
# openssl enc -des -iv 041EDCD8F48AF166 -K F457C08B14ED68A7 -in totodes
-out totodesd -d
Le fichier est bien décrypté.
SANCHEZ David RT2 B1
TP1 de TR-C8
10/12/07
3/7
Clés asymétriques
a)
# openssl genrsa 2048 -out rsa1
Generating RSA private key, 2048 bit long modulus
................................................................................
.........................................+++
.......................+++
e is 65537 (0x10001)
-----BEGIN RSA PRIVATE KEY----MIIEpQIBAAKCAQEA1KpCNRK7awwvu5LECiEaQRaCoKAw7bKVwqJTJZDd21zKphz4
g5QiPjzIgukh3ocYGAbDbpiAFoKkCM46WjwoKd0flwtiMRbge2Ccq50fNBOWbyuJ
cou4EnZo+WeQDoC152sJI+gZ2yiTfi1sUFqrVpGGX0wQ2jDXz//c3NpMq/frfPc+
PDAX4aTgEMbds2nucMsPJZrzrKCd3m9gumIvHsiIxjKr5qwt5EmOqpa6qgPL77h2
CSQxy8NuKECPorYXj3eCMY+qRMZiVbbfRlhQqbv+prLJOQ8f9SkardM+3LG1Nvbg
HMvOmK49Gv1wgcjpJVcoL+k7B6O9KX+nGnsBOQIDAQABAoIBAQCPkfHoiqDkf/Gp
nEek3vwufNfrQLpHfo0EPToM3mQot9hHlL9hdRw5ECf92Q34gROPBOHjRCkVCVVc
bH2QdZRXzuSIwDKmGV+ra2nZodVy/tZMbwP3xMOcEzyDQ5tJbzNe7C/bgdIS1q3c
PSYmiU+qvcwNgfjOlLLdxUqB/w5L+XRDOkuKGSw+IYupUWI0sMuGTRRboEb1rHEr
5hjY1FN8vzTeBHbrCX3C9FRD+5FBF5vYEHyMdsNeriwfw1ySnp7ZvzUkPgeK7g7g
UDWG1JLq99FPI/2ktRE58saqaLomIuiJXU+gdO0MmcvfoYGORJClBc7Z9imX37Yq
e2dLioQBAoGBAPK4DgqSL928dLqJuYR6TmApf9mTa1sxfX+NcvmVOOvC++ZhVLSs
+zu3bz03+UcDnUM7jUPAJEkpAn5RhNreo//pF96aAwHNp+UdkbHwMtE7kvePZ+yE
7BTXDjvEd133ErxsxKXnM1lUzvzNz/e6QtdqZD8W94hCod3lIm31VJVZAoGBAOBN
N2/cPkN/51jeTOfff5WkxTv0bh3lpq2CN+ExEuFzn1rHORRpzlWxhwaqmi5l8DzW
oPmBqTvmoJCWpj/UOukau0wWFaahoEW6f+pip8pf3UZH+w5GXtxHcNk7/OQHLJmY
bNK+ZhZRaxBKsXUT3WBL13ZHjRGyLvISG86SQ+7hAoGBALO9gQhrAW9e48JPw0ZL
nEax9K+W7+V0XM9cXExfKOvOVORiJ2w0vUeXq5TWIo9oKclkDFSjsTtMV0Bb9dpv
DVuxra92tctcFH0izIXMrpUrXMZfOEJ6nKlCKJQyBYNcOE+47Fc/Q1Nf7nhfoSZ+
lIkZjGr8Awqw7VV5HWn4R07hAoGAf8v+9gDqiNLrITsnXkV9D+ndZpeR1f7uxJUY
+XlYZJPYC4TPBM5z/Wc0o5u4VQ9HnaI7/Wze234/paHv/xYQqpfMd0Ft/I7CHnhw
QT8MksWj8VM5u5xkl+Usatk+8T0VMD4kYr6Qs86XzaSBD0/OJfuQO5fwzFBVZx7i
MQQtKIECgYEApVnseOqWiuyofsx4KZmIULewzu5IT0qsMWWGmYxc02+jiv739fVh
lAcL75y98eWVMDVql+Xd/jOzrgCh8aGZ2/e7BoAVQ0+PNmQd4KhZnd/8zwcgL2nU
FJKh7cSXF8NM0DT7+keSBjeUw+MJJwPIS5plDjsWMe0giYieKeoFwmU=
-----END RSA PRIVATE KEY-----
b)
Pass phrase : toto
# openssl genrsa -out rsa2 -des
Generating RSA private key, 512 bit long modulus
....++++++++++++
............++++++++++++
e is 65537 (0x10001)
Enter pass phrase for rsa2:
Verifying - Enter pass phrase for rsa2:
c)
Tiré de wikipedia
ASN.1 (Abstract Syntax Notation One) est un standard international destiné à l'origine à
décrire les données échangées dans les protocoles de télécommunication (modèle OSI).
Standardisé en 1984, utilisé à l'origine pour les échanges de courriers électroniques, il
fournit une notation formelle qui décrit le format des messages. Il est mis en œuvre dans
un grand nombre d'applications (gestion de réseaux, messagerie, sécurité, téléphonie,
Internet, etc.).
La norme initiale date de 1988 (CCITT Recommendation X.208 : Specification of Abstract
Syntax Notation One), une nouvelle version (ISO/CEI 8824-1 / UIT-T X.680) a été émise
SANCHEZ David RT2 B1
TP1 de TR-C8
10/12/07
4/7
en 1993.
d)
# openssl rsa -in rsa2 -pubout -out Apub
Enter pass phrase for rsa2: toto
writing RSA key
rsa2 : clé privé
Apub : clé public
e)
# openssl rsautl -in lawal.txt -out asye.txt -pubin -inkey Apub -encrypt
# openssl rsautl -in asye.txt -out asyed.txt -inkey rsa2 -decrypt
Enter pass phrase for rsa2: toto
//Fichier bien décrypté
SANCHEZ David RT2 B1
TP1 de TR-C8
10/12/07
5/7
Message digest
a)
# openssl.exe dgst lawal.txt
MD5(lawal.txt)= d4eac679fa33672cef3415980e91a581
b)
lawal.txt : bon bon bon -> bon bon boy
# openssl.exe dgst lawal.txt
MD5(lawal.txt)= b066b60c11ad08b656bf24bb3b64e136
Quand on change un seul caractère, c'est toute l'empreinte qui est modifié.
c)
En cas de compromission des fichiers systèmes, les empreintes peuvent servir à
vérifier si les données sont bien les originales. On les stocke sur un support à part, tel
qu'une clé usb ou autre.
d)
# openssl dgst -md5 -out empreinte.txt -sign rsa2 lawal.txt
Enter pass phrase for rsa2:toto
e)
# openssl dgst -md5 -verify Apub -signature empreinte.txt lawal.txt
Verified OK
f)
Les empreintes signées permettent d'avoir un sécurité supplémentaire par rapport
aux empreintes seules. On les stockent toujours sur un support de type amovible.
SANCHEZ David RT2 B1
TP1 de TR-C8
10/12/07
6/7
SSL : exemple HTTPS
a)
b)
Les champs présents dans ce certificats sont nombreux. On a le Nom Commun,
l'Organisation, l'Unité d'organisation et le Numéro de série pour la partie Emis pour. Pour
la partie Emis par on a le Nom commun, l'Organisation et l'Unité d'organisation. On a
ensuite la durée de validité du certificat et ensuite les empreintes numériques.
C'est une authorité de certification qui fait le certificat.
Le certificat est généré à partir de la vérification des fichiers utilisateur.
c)
SANCHEZ David RT2 B1
TP1 de TR-C8
10/12/07
7/7