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