Fonctionnement des PKI



Documents pareils
Utilisation des certificats X.509v3

Sommaire Introduction Les bases de la cryptographie Introduction aux concepts d infrastructure à clés publiques Conclusions Références

Architectures PKI. Sébastien VARRETTE

Une introduction à SSL

Chapitre 7. Sécurité des réseaux. Services, attaques et mécanismes cryptographiques. Hdhili M.H. Cours Administration et sécurité des réseaux

SSL. Secure Socket Layer. R. Kobylanski janvier version 1.1 FC INPG. Protocole SSL Application avec stunnel

Cryptologie. Algorithmes à clé publique. Jean-Marc Robert. Génie logiciel et des TI

Cours 14. Crypto. 2004, Marc-André Léger

SSH, le shell sécurisé

Devoir Surveillé de Sécurité des Réseaux

Fonctionnement des PKI Architecture PKI

Du 03 au 07 Février 2014 Tunis (Tunisie)

Protocole industriels de sécurité. S. Natkin Décembre 2000

FORMATION SUR «CRYPTOGRAPHIE APPLIQUEE

IGC-CPS2bis. Gabarits des certificats X.509. des Classes 4, 5 et mars Version mars 2012 Document ASIP-Santé Page 1 / 34

titre : CENTOS_CUPS_install&config Système : CentOs 5.7 Technologie : Cups Auteur : Charles-Alban BENEZECH

TP 2 : Chiffrement par blocs

Les certificats numériques

Certificats (électroniques) : Pourquoi? Comment? CA CNRS-Test et CNRS

Certificats X509 & Infrastructure de Gestion de Clés. Claude Gross CNRS/UREC

Le protocole SSH (Secure Shell)

Aristote Groupe PIN. Utilisations pratiques de la cryptographie. Frédéric Pailler (CNES) 13 janvier 2009

L3 informatique TP n o 2 : Les applications réseau

Perso. SmartCard. Mail distribution. Annuaire LDAP. SmartCard Distribution OCSP. Codes mobiles ActivX Applet. CRLs

Modèle de sécurité de la Grille. Farida Fassi Master de Physique Informatique Rabat, Maroc May 2011

Méthode 1 : Mise en place IPSEC

I.1. Chiffrement I.1.1 Chiffrement symétrique I.1.2 Chiffrement asymétrique I.2 La signature numérique I.2.1 Les fonctions de hachage I.2.

Tunnels et VPN. 22/01/2009 Formation Permanente Paris6 86

La sécurité dans les grilles

«La Sécurité des Transactions et des Echanges Electroniques»

La citadelle électronique séminaire du 14 mars 2002

Instructions Mozilla Thunderbird Page 1

Le protocole sécurisé SSL

SSL ET IPSEC. Licence Pro ATC Amel Guetat

Protocole SSH-2.0. Tuan-Tu, TRAN. Janvier 2009

Richard MONTBEYRE Master 2 Professionnel Droit de l Internet Administration Entreprises. La banque en ligne et le protocole TLS : exemple

Les infrastructures de clés publiques (PKI, IGC, ICP)

SSL/TLS: Secure Socket Layer/Transport Layer Secure Quelques éléments d analyse. GRES 2006 Bordeaux 12 Mai Ahmed Serhrouchni ENST-PARIS CNRS

Réseaux Privés Virtuels

Windows Server 2008 Sécurité ADMINISTRATION ET CONFIGURATION DE LA SECURITE OLIVIER D.

Certificats et infrastructures de gestion de clés

Action Spécifique Sécurité du CNRS 15 mai 2002

CA SIC Directives de certification Certificate Practice Statement (CPS) du SIC Customer ID CA 1024 Level 2

Livre blanc. Sécuriser les échanges

FTPS AVEC UNE APPLIANCE FAST360 EN COUPURE. Table des matières

HASH LOGIC. Web Key Server. Solution de déploiement des certificats à grande échelle. A quoi sert le Web Key Server? A propos de HASHLOGIC

Sécurité WebSphere MQ V 5.3

Signature électronique. Romain Kolb 31/10/2008

SSL - TLS. Histoire, fonctionnement Sécurité et failles

Couche application. La couche application est la plus élevée du modèle de référence.

FORMATIONS

Annexe 8. Documents et URL de référence

INSTALLATION D'OPENVPN:

Public Key Infrastructure (PKI)

Sécurité des réseaux IPSec

Accès aux ressources informatiques de l ENSEEIHT à distance

Introduction à la sécurité Cours 8 Infrastructure de clés publiques. Catalin Dima

PUBLIC KEY INFRASTRUCTURE. Rappels PKI PKI des Impôts PKI de la Carte de Professionnel de Santé

Gestion des clés. Génération des clés. Espaces de clés réduits. Mauvais choix de clés. Clefs aléatoires. Phrases mots de passe

La Technologie Carte à Puce EAP TLS v2.0

Journées MATHRICE "Dijon-Besançon" DIJON mars Projet MySafeKey Authentification par clé USB

OWASP Open Web Application Security Project. Jean-Marc Robert Génie logiciel et des TI

Sécurité des réseaux sans fil

Le format OpenPGP. Traduit par : Sébastien Person. personseb@yahoo.fr. Matthieu Hautreux. matthieu.hautreux@insa-rouen.fr.

Installation et mise en œuvre de OpenSSH sous AIX 5L

Les certfcats. Installation de openssl

Gestion des certificats digitaux et méthodes alternatives de chiffrement

Université de Reims Champagne Ardenne. HTTPS, SSL, SSH, IPSEC et SOCKS. Présenté par : BOUAMAMA Mohamed Nadjib AZIZ Xerin

Mieux comprendre les certificats SSL THAWTE EST L UN DES PRINCIPAUX FOURNISSEURS DE CERTIFICATS SSL DANS LE MONDE

HAUTE DISPONIBILITÉ DE MACHINE VIRTUELLE AVEC HYPER-V 2012 R2 PARTIE CONFIGURATION OPENVPN SUR PFSENSE

EMV, S.E.T et 3D Secure

Gestion des Clés. Pr Belkhir Abdelkader. 10/04/2013 Pr BELKHIR Abdelkader

Les Protocoles de sécurité dans les réseaux WiFi. Ihsane MOUTAIB & Lamia ELOFIR FM05

Routeur Chiffrant Navista Version Et le protocole de chiffrement du Réseau Privé Virtuel Navista Tunneling System - NTS Version 3.1.

DISTANT ACESS. Emna TRABELSI (RT3) Chourouk CHAOUCH (RT3) Rabab AMMAR (RT3) Rania BEN MANSOUR (RT3) Mouafek BOUZIDI (RT3)

PKI PKI IGC IGC. Sécurité des RO. Partie 4. Certificats : pourquoi?

Chapitre 3 : Crytographie «Cryptography»

POLITIQUE DE CERTIFICATION DE L'AC KEYNECTIS SSL RGS * (authentification serveur) Date : 12/08/2011

A. À propos des annuaires

TheGreenBow IPsec VPN Client. Guide de Déploiement Options PKI. Site web: Contact:

CRYPTOGRAPHIE. Signature électronique. E. Bresson. SGDN/DCSSI Laboratoire de cryptographie

Divers éléments. Protocoles d'applications. Un agent Utilisateur. MUA - Agents Utilisateurs de Courriel. Simple Mail Transfer Protocol

Politique de Certification Autorité de Certification Signature Gamme «Signature simple»

1. Présentation de WPA et 802.1X

18 TCP Les protocoles de domaines d applications

Cadre de Référence de la Sécurité des Systèmes d Information

Manuel des logiciels de transferts de fichiers File Delivery Services

L identité numérique. Risques, protection

Utiliser Améliorer Prêcher. Introduction à LDAP

CIBLE DE SECURITE CSPN DU PRODUIT PASS. (Product for Advanced SSO)

Tunnels. Plan. Pourquoi? Comment? Qu est-ce? Quelles solutions? Tunnels applicatifs ESIL INFO 2005/2006. Sophie Nicoud

Sécurisez votre serveur Web Internet Information Services de Microsoft (MS IIS) avec un certificat numérique de thawte thawte thawte thawte thawte

Cryptographie. Cours 3/8 - Chiffrement asymétrique

Sécurité du Système d Information. Mini PKI

INF 4420: Sécurité Informatique Cryptographie II

Transcription:

HERVÉ SCHAUER CONSULTANTS Cabinet de Consultants en Sécurité Informatique depuis 1989 Spécialisé sur Unix, Windows, TCP/IP et Internet Fonctionnement des PKI Franck Davy Franck Davy <Franck.Davy@hsc.fr>

Fonctionnement des PKI - 1 - Bases de cryptographie

Plan Introduction Notions de base Algorithmes à clef secrète à clef publique Fonctions de hachage Mécanismes Chiffrement Signature En pratique Boîte à outils Messagerie électronique sécurisée avec S/MIME - 3 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite

Introduction

Vocabulaire et notions de base

Vocabulaire Services de sécurité Confidentialité Intégrité Authentification Non répudiation Mécanismes Mécanismes mettant en oeuvre les services précédents, fondés sur les algorithmes cryptographiques Chiffrement Signature Chiffrement et signature étroitement liés (chiffrement d'un condensât) Scellement Algorithmes Algorithmes symétriques, à clef secrète Algorithmes asymétriques, à clef publique - 6 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite

Algorithmes à clef secrète

Algorithmes à clef secrète (1/4) Algorithmes dits «symétriques» Caractéristiques Opérations de chiffrement et déchiffrement identiques Clef identique pour les opérations de chiffrement et déchiffrement Utilisation pour le chiffrement de données Rapidité, et facilité de mise en oeuvre sur des circuits «bon marché» Problème de la distribution des clefs 1.Transport sécurisé de la clef de chiffrement? Problématique de l'échange de clef 2.Nombre de clefs échangées (en n²) - 8 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite

Schéma de principe Algorithmes à clef secrète (2/4) Transmission de la clef de chiffrement par un canal sécurisé Émetteur du message Message en clair z n âøo! DIȈ/.ö˵þ @² mlìûîš <;êlè_a Ým î lz cûáy vâbî CŽXi^Lè- ¼ s7²r sê:'ñ ävš}aˆùäìi #á@úuåî#eâ @lü «CtlJÕ Destinataire n 1 Message en clair Destinataire n 2 Message en clair - 9 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite

Algorithmes à clef secrète (3/4) Algorithmes de chiffrement en continu (stream Cipher) Chiffrement bit à bit Exemple : RC4 (RSA Security) Taille de clef variable (128 bits en pratique) Algorithmes de chiffrement par blocs (Block Cipher) Chiffrement par blocs de texte clair 64 bits (DES), 128 bits (AES) Modes ECB, CBC, CFB, OFB DES (56 bits), 3DES (clef de 168 bits en EDE3, 112 bits en EDE) RC2 (128 bits), Blowfish (128bits, jusqu'à 448 bits), AES (128, 192, 256 bits), IDEA (128 bits, brevet ASCOM en Europe et USA pour un usage commercial) - 10 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite

Principal usage Algorithmes à clef secrète (4/4) Service de confidentialité Subsiste le problème de la distribution des clefs de chiffrement Peut également assurer un service d'authentification Sans service de non répudiation L'utilisateur n'est pas le seul à pouvoir produire la signature! Exemple de la Monétique : Cybercomm (système d'authentification dynamique) Clef secrète dépendante du porteur (carte à puce) Chiffrement (DES 56 bits) des paramètres suivants : Montant de la transaction Identifiant du commerçant Date (contre le rejeu) Authentification au niveau des DAB par la piste magnétique - 11 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite

Algorithmes à clef publique

Algorithmes à clef publique (1/16) Algorithmes dits «asymétriques» Limitation des algorithmes à clef secrète : Problématique de l'échange de la clef de chiffrement Établissement préalable d'un canal sûr pour la transmission de la clef Systèmes à clef publique Clef de chiffrement e, rendue publique Clef de déchiffrement d, gardée secrète d non déductible modulo la connaissance de e Par exemple : utilisation d'une fonction à sens unique : f(x) = x e [n]...sous certaines conditions Chiffrement d'un message à l'aide de la clef publique e Pas de communication préalable entre les tiers communiquants - 13 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite

Algorithmes à clef publique (2/16) Chiffrement Message en clair z n âøo! DIȈ/.ö˵þ @² mlìûîš <;êlè_a Ým î lz cûáy vâbî Message en clair Chiffrement par l'émetteur avec la clef publique du destinataire Déchiffrement par le destinataire avec sa clef privée Signature Message en clair Message en clair Message en clair Chiffrement par l'émetteur avec sa clef privée Déchiffrement par les destinataires avec la clef publique de l'émetteur - 14 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite

Algorithmes à clef publique (3/16) Transport de clef de session Message en clair z n âøo! DIȈ/.ö˵þ @² mlìûîš <;êlè_a Ým î lz cûáy vâbî Clef de session Clef publique destinataire z n âøo! DIȈ/.ö˵þ @² mlìûîš <;êlè_a Ým î lz cûáy vâbî Message en clair Clef privée destinataire - 15 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite

Algorithme RSA Algorithmes à clef publique (4/16) Publié par Rivest, Shamir et Adelman en 1977 Fondé sur la difficulté de la factorisation des grands nombres Schéma Sécurité dite «calculatoire» : système inconditionnellement sûr 1.On choisit p, q deux «grands» nombres premiers 2.On calcule n=p.q 3.Un entier e est choisi tel que premier avec (p-1) et (q-1) 4.L'entier d tel que ed = 1 [(p-1)(q-1)] est calculé, avec l'algorithme d'euclide le couple d'entier (n, e) représente la clef publique L'entier d représente la clef privée - 16 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite

Chiffrement RSA Algorithmes à clef publique (5/16) Soit le message M, M' est le message chiffré obtenu par exponentiation modulaire M' = M e [n] Pour le déchiffrement, on calcule M' d [n] M ed = M [n], car ed = 1 [(p-1)(q-1)] par construction Signature RSA Opération de chiffrement, en inversant les rôles de e et d Le message émis est le couple (M, M d [n]) Tout le monde peut vérifier la signature par possession de la clef publique Service de non répudiation Sécurité calculatoire : repose sur la difficulté de factoriser n - 17 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite

Algorithmes à clef publique (6/16) Clef RSA principalement sous 2 formats : Format binaire : encodage de la structure ASN.1 suivant la syntaxe de transfert distinctive DER (sans ambiguïté) Format ASCII imprimable : object binaire précédent encodé au format PEM Possibilité de conserver la clef privée RSA chiffrée DES, 3DES ou IDEA (en mode CBC) par exemple Informations concernant les algorithmes dans les en-têtes PEM (IV, notamment) Format PEM «Privacy Enhanced-Mail» (RFC1421-1424) 1. Executive Summary This document defines message encryption and authentication procedures, in order to provide privacy-enhanced mail (PEM) services for electronic mail transfer in the Internet. It is intended to become one member of a related set of four RFCs. The procedures defined in the current document are intended to be compatible with a wide range of key management approaches, including both symmetric (secret-key) and asymmetric (public-key) approaches for encryption of data encrypting keys. - 18 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite

Algorithmes à clef publique (7/16) Format général d'un message au format PEM -----BEGIN PRIVACY-ENHANCED MESSAGE----- Proc-Type: 4,ENCRYPTED Content-Domain: RFC822 DEK-Info: DES-CBC,F8143EDE5960C597 Originator-ID-Symmetric: linn@zendia.enet.dec.com, Recipient-ID-Symmetric: linn@zendia.enet.dec.com,ptf-kmc,3 Key-Info: DES-ECB,RSA-MD2,9FD3AAD2F2691B9A,B70665BB9BF7CBCDA60195DB94F727D3 Recipient-ID-Symmetric: pem-dev@tis.com,ptf-kmc,4 Key-Info: DES-ECB,RSA-MD2,161A3F75DC82EF26,E2EF532C65CBCFF79F83 A2658132DB47LlrHB0eJzyhP+/fSStdW8okeEnv47jxe7SJ/iN72ohNcUk2jHEU SoH1nvNSIWL9MdXd/H5LMDWnonNvPCwQUHt== -----END PRIVACY-ENHANCED MESSAGE----- Messages chiffrés «PEM Part III : Algorithms, Modes, and Identifiers» (RFC1423) Exemple : Chiffrement DES-CBC En-tête Proc-Type Identifiant de version de la RFC (4), ENCRYPTED (service de sécurité mis en oeuvre) En-tête DEK-Info : Identifiant d'algorithme (DES-CBC), vecteur d'initialisation (F8143EDE5960C597) - 19 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite

Algorithmes à clef publique (8/16) «RSA Cryptography Specifications» (RFC2437) Recommandations sur la mise en oeuvre d'un cryptosystème fondé sur RSA http://www.ietf.org/rfc/rfc2437.txt Anciennement : PKCS#1 «RSA Cryptography Standard» Structure ASN.1 Clef publique RSA («11.1.1 Public-key syntax») RSAPublicKey::=SEQUENCE{ modulus INTEGER, -- n publicexponent INTEGER e } Clef privée RSA («11.1.2 Private-key syntax») RSAPrivateKey ::= SEQUENCE { version Version, modulus INTEGER,& -- n publicexponent INTEGER, -- e privateexponent INTEGER, -- d prime1 INTEGER, -- p prime2 INTEGER, -- q exponent1 INTEGER, -- d mod (p-1) exponent2 INTEGER, -- d mod (q-1) coefficient INTEGER -- (inverse of q) mod p } Clef RSA obtenue par encodage DER de la structure ASN.1 (fichier binaire) - 20 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite

Algorithmes à clef publique (9/16) Exemple de génération d'une clef privée RSA Modulus n = 512 bits, exposant public e = 3 $ openssl genrsa -3 512 tee rsa.pem Generating RSA private key, 512 bit long modulus e is 3 (0x3) -----BEGIN RSA PRIVATE KEY----- MIIBOQIBAAJBALGWJEoGAC6fYqpG9vCx1LEcjFtrhw2WDZ71Ne+Q2ZvgbqDE9j8S IsjEStKc2UZ/w2bnPc8k+3LTTGCTQ9SAdsMCAwEAAQJAT9VlXvmvn0X7vvzECpSH P0/MMVT3k73/RZSKuLXvfcj5Lsmce/rMWQkNxC2a5G32UzNvDbOrRIW1O3QCXZNh kqihaogrwfk4bnjjejgsgwvvaq3yntyoirfl79ienkczkv7laieayxrk9uua+vek ul1oad2kondzrqdb0snuohepinz3hicciftmcmmgp+8zjbwgkinfyryuqjmxn9gv 2ZxLx+PVxCdBAiAaD4KYJd8tpCQ/7c1dCJ0b9VMziQYp57o0d9Zo4e2dtQIgbxdY Fsf591Z/Q9sZkoxgUMpuSxBBC8qxWyUGHcEF+DY= -----END RSA PRIVATE KEY----- Clef privée RSA au format PEM (sans chiffrement) Structure ASN.1 encodée suivant la syntaxe de transfert DER (Distinguished Encoding Rules) La suite d'octets (OCTET STRING) obtenue est encodée en base 64-21 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite

Algorithmes à clef publique (10/16) Comparaison des formats PEM et DER Conversion avec rsa(1ssl) $ openssl rsa -inform PEM -in./rsa.pem -outform DER./rsa.DER $ cat./rsa.der 0b G}»Öƒ¾n $&% # "! Encodage en base64 du fichier binaire avec enc(1ssl), *+ ')( 01 -. / 3 21 $ cat./rsa.der openssl base64 -e MIIBOQIBAAJBALGWJEoGAC6fYqpG9vCx1LEcjFtrhw2WDZ71Ne+Q2ZvgbqDE9j8S IsjEStKc2UZ/w2bnPc8k+3LTTGCTQ9SAdsMCAwEAAQJAT9VlXvmvn0X7vvzECpSH P0/MMVT3k73/RZSKuLXvfcj5Lsmce/rMWQkNxC2a5G32UzNvDbOrRIW1O3QCXZNh kqihaogrwfk4bnjjejgsgwvvaq3yntyoirfl79ienkczkv7laieayxrk9uua+vek ul1oad2kondzrqdb0snuohepinz3hicciftmcmmgp+8zjbwgkinfyryuqjmxn9gv 2ZxLx+PVxCdBAiAaD4KYJd8tpCQ/7c1dCJ0b9VMziQYp57o0d9Zo4e2dtQIgbxdY Fsf591Z/Q9sZkoxgUMpuSxBBC8qxWyUGHcEF+DY= - 22 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite

Structure ASN.1 Algorithmes à clef publique (11/16) $ dumpasn1./rsa.der 0 30 313: SEQUENCE { 4 02 1: INTEGER 0 7 02 65: INTEGER : 00 B1 96 24 4A 06 00 2E 9F 62 AA 46 F6 F0 B1 D4 : B1 1C 8C 5B 6B 87 0D 96 0D 9E F5 35 EF 90 D9 9B : E0 6E A0 C4 F6 3F 12 22 C8 C4 4A D2 9C D9 46 7F : C3 66 E7 3D CF 24 FB 72 D3 4C 60 93 43 D4 80 76 : C3 74 02 3: INTEGER 65537 79 02 64: INTEGER [...] 145 02 33: INTEGER [...] 180 02 33: INTEGER [...] 215 02 32: INTEGER [...] 249 02 32: INTEGER [...] 283 02 32: INTEGER : 6F 17 58 16 C7 F9 F7 56 7F 43 DB 19 92 8C 60 50 : CA 6E 4B 10 41 0B CA B1 5B 25 06 1D C1 05 F8 36 : } - 23 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite

Algorithmes à clef publique (12/16) Clef RSA chiffrée Algorithme symétrique DES, en mode CBC En pratique $ openssl genrsa -3 -DES 512 Generating RSA private key, 512 bit long modulus e is 3 (0x3) Enter PEM pass phrase: Verifying password - Enter PEM pass phrase: Vecteur d'initialisation -----BEGIN RSA PRIVATE KEY----- Proc-Type: 4,ENCRYPTED DEK-Info: DES-CBC,3F05FF3C5103E3BB VjgE0b88PXaA8QzwuqlRyzwVrWtIUu68vXH7FzMtAWaHHrUyK6gjPHh6nHtho+Yy RB1fn9UKMl2pzJi6dJW9J1kYJafjhuLAM09pAJYJ51F9P37qvu2TGnNq5QjutoGy Otz0H2s/OeUNmdWcGFrRnjMwXMQ8Ssaa28SHy/V0sPG8VQXdHxwBGSR3JP/Tf00C /j5y9uzblgw1gt1m4bg5howtvsjvbez1/r83dvzsbgg= -----END RSA PRIVATE KEY----- Chiffrement de la clef RSA (au format DER) en DES (mode CBC) Encodage du binaire obtenu en en base 64 La clef de chiffrement DES et le vecteur d'initialisation (IV, utilisé par le mode CBC) sont dérivés du mot de passe fourni par l'utilisateur - 24 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite

Algorithmes à clef publique (13/16) Génération des nombres premiers p et q $ openssl genrsa 1024 Generating RSA private key, 1024 bit long modulus...++++++...++++++ e is 65537 (0x10001) -----BEGIN RSA PRIVATE KEY... Tests de primalité Difficulté d'engendrer de «grands» nombres premiers «aléatoires» Tests de primalité probabilistes Test de Sieve Symbolisé par «.» Test rapide, préliminaire Mis en oeuvre dans PGP Test de Miller-Rabin Symbolisé par «+» Méthode décrite dans «Handbook of Applied Cryptography» http://www.cacr.math.uwaterloo.ca/hac/about/chap4.ps Test caractérisé par une probabilité d'erreur 1/2^80 (Cf. ${OPENSSL}/crypto/bn/bn.h) - 25 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite

Algorithmes à clef publique (14/16) Publication de la clef publique RSA Sous-ensemble des paramètres de la clef privée Modulus n, exposant public e $ openssl rsa -in rsa.pem -pubout -----BEGIN PUBLIC KEY----- MfwwDQYJKoZIhvcNAQEBBQADSwAwSAJBALGWJEoGAC6fYqpG9vCx1LEcjFtrhw2W DZ71Ne+Q2ZvgbqDE9j8SIsjEStKc2UZ/w2bnPc8k+3LTTGCTQ9SAdsMCAwEAAQ== -----END PUBLIC KEY----- Structure ASN.1 de la clef publique obtenue 0 30 92: SEQUENCE { 2 30 13: SEQUENCE { 4 06 9: OBJECT IDENTIFIER rsaencryption (1 2 840 113549 1 1 1) 15 05 0: NULL : } 17 03 75: BIT STRING 0 unused bits, encapsulates { 20 30 72: SEQUENCE { 22 02 65: INTEGER [...] 89 02 3: INTEGER 3 : } : } : } - 26 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite

Principaux usages Algorithmes à clef publique (15/16) Service de confidentialité Chiffrement avec la clef publique du destinataire Faible volume de données Mode opératoire par blocs? Protocole TLSv1 : travail sur un et un seul bloc (chunk) PreMasterSecret de 48 octets + bourrage PKCS#1 de 11 octets Taille de clef publique d'un certificat X.509 de 472 bits au minimum Cas d'un certificat client : 376 bits au minimum (signature d'empreinte SHA1+MD5) Signature numérique Chiffrement avec la clef privée du signataire Transport (RSA) ou échange (DH) de clef Résolution de la problématique de l'échange de clef secrète - 27 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite

Récapitulatif Algorithmes à clef publique (16/16) Algorithme le plus couramment utilisé : RSA Cryptosystème décrit dans la RFC 2437 Formats binaire (encodage DER de la structure ASN.1) et ASCII «imprimable» (PEM) Une clef de chiffrement (n,e) Transport de clef : mécanisme de chiffrement de la clef de session avec la clef de chiffrement du destinataire Clef dite «publique», déposée dans un annuaire par exemple Une clef de signature d Signature : mécanisme de chiffrement avec la clef de signature par l'émetteur Service de non-répudiation Clef privée Décomposition en facteurs premiers du modulus n = p.q p et q, probables grands nombres premiers par construction Tests de primalité probabilistes par les applications (OpenSSL, PGP etc.) - 28 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite

Fonctions de hachage

Fonctions de hachage (1/7) Fonction de hachage cryptographique Obtention d'une empreinte numérique de taille fixe à partir d'un message de taille arbitraire Opération par blocs Critères de sécurité Faibles collisions Collisions : possibilité d'obtenir une même empreinte pour deux messages distincts Sécurité calculatoire Sens unique Difficulté d'inversion - 30 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite

Principaux algorithmes Fonctions de hachage (2/7) MD5, «The MD5 Message-Digest Algorithm» (RFC1321) http://www.ietf.org/rfc/rfc1312.txt Empreinte de 128 bits $ openssl md5 -c message.txt MD5(message.txt)= ef:79:ca:b5:4f:9b:2a:d9:8e:79:ef:46:46:e4:93:63 SHA, «Secure Hash Algorithm» (NIST) http://www.itl.nist.gov/fipspubs/fip180-1.htm Empreinte de 160 bits $ openssl sha1 -c message.txt SHA1(message.txt)= af:06:9c:e9:bb:e9:21:29:b1:1a:7e:a8:77:9b:37:09:26:5e:84:b3 Variantes ou autres : dgst(1ssl) $ openssl dgst -h MD2, MD4, MD5, SHA, SHA-1, MDC2, RIPEMD160-31 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite

Fonctions de hachage (3/7) Exemples d'utilisation : Intégrité et scellement de fichiers md5sum(1) HIDS (Host-Based Intrusion Detection System) AIDE Site officiel : http://www.cs.tut.fi/~rammer/aide.html Brève HSC : http://www.hsc.fr/ressources/breves/aide.html Tripwire $ md5sum image.iso d41d8cd98f00b204e9800998ecf8427e image.iso Stockage non réversible de mots de passe Fichier shadow(5), fondé sur l'algorithme md5 $ sudo grep davy /etc/shadow davy:$1$zdgjjrrg$b9oxpvedx8i4kgwanwbpd.:11924:0:99999:7::: - 32 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite

Fonctions de hachage (4/7) Utilisation de la commande passwd(1ssl) Syntaxe $ openssl passwd [-crypt] [-1] [-apr1] [-salt string] [-in file] [-stdin] [-quiet] [-table] {password} Génération de l'empreinte $ echo -n 'secret' openssl passwd -1 -salt 'zdgjjrrg' -stdin -table secret $1$zdgjjRrg$b9oxpVEDX8I4KgWanwbpd. Signification des différents termes $(1)$(zdgjjRrg)$(b9oxpVEDX8I4KgWanwbpd.) $1 : Algorithme MD5 $2 : Piment Protection contre les attaques par dictionnaire précalculé Piment en clair (différent d'un MAC) $3 : Empreinte résultante - 33 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite

Fonctions de hachage (5/7) Générateurs de nombres pseudo-aléatoires Sources d'entropie multiples Évènements non déterministes Fonctions de hachage pour «multiplexer» la sortie des sources d'entropie et constituer un «pool d'entropie» Démons collecteurs d'entropie (sous Unix) Interfaces/pseudo-périphériques /dev/random (bloquant) /dev/urandom (non-bloquant) /dev/inter_rng, (processeurs intel de type i8xx) PRNGD sous Solaris http://www.aet.tu-cottbus.de/personen/jaenicke/postfix_tls/prngd.html Analyse de quelques générateurs de nombres pseudo-aléatoires Phrack 59 «Cryptographic random number generators» http://www.phrack.com/show.php?p=59&a=15 DrMungkee <pub@drmungkee.com> Intel RNG (SHA-1), Yarrow (SHA-1), /dev/random/ (MD5) - 34 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite

Fonctions de hachage (6/7) Génération d'identifiants de sessions... http://lxr.php.net/source/php4/ext/session/session.c Utilisations multiples! «Pile ou face» Influence du changement d'un caractère de texte clair sur l'empreinte résultante $ cat message.txt Contrôle d'intégrité $ cat message.txt openssl md5 -c ef:79:ca:b5:4f:9b:2a:d9:8e:79:ef:46:46:e4:93:63 $ cat message.txt tr C c openssl md5 -c c5:f1:bf:54:2a:7f:27:04:d2:65:78:a1:bc:47:7c:e7-35 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite

Principaux usages Signature numérique Norme de fait : RSA Fonctions de hachage (7/7) Mécanisme de chiffrement par une clef privée RSA d'une empreinte MD5 ou SHA-1 Service de non-répudiation Scellement Génération d'un sceau, ou code d'authentification de message MAC : «Message Authentication Code» Exemple : fonction de hachage à sens unique indexée par une clef secrète Service d'authentificité des données Authentification Intégrité Pas de service de non-répudiation Cf. SSL/TLS Horodatage - 36 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite

En pratique : «boîte à outils»

Projet OpenSSL Boîte à outils : OpenSSL (1/8) http://www.openssl.org Versions 0.9.7a et 0.9.6i (-engine) (19/02/2003) http://www.openssl.org/source/ ~ 60 000 lignes de code (langage C), utilisées par de nombreuses applications openssh, apache+mod_ssl, postfix/tls, idx-pki, stunnel etc. Initié en Décembre 1998 Objectifs Fondé sur la bibliothèque cryptographique SSLeay d'eric Young et Tim Hudson http://www.psy.uq.edu.au/~ftp/crypto/ssleay Mise en oeuvre des protocoles SSL (Secure Socket Layer) Protocole de sécurisation réseau TCP/IP qui opère au niveau session du modèle OSI Opère au dessus d'un protocole de transport de données fiable (TCP RFC793) Opère au dessus du niveau transport (4) -> applications spécifiques Ports dédiés, attribués par l'iana : HTTP 80/tcp, mais HTTPS 443/tcp - 38 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite

Boîte à outils : OpenSSL (2/8) Services de sécurité mis en oeuvre Authentification des parties Optionnellement mutuelle Authenticité et confidentialité des données Sans service de non répudiation Versions du protocole SSL supportées Spécifications Netscape SSLv2 et v3 http://wp.netscape.com/eng/ssl3 Standard TLSv1 (RFC 2246) http://www.ietf.org/rfc/rfc2246.txt Mise en oeuvre des standards cryptographiques associés aux protocoles SSL/TLS Algorithmes symétriques (DES,3DES etc.), asymétriques (RSA, DSA etc.), protocoles d'échanges de clefs ([E]DH), certificats X.509 (compilateur ASN.1), standards PKCS (PKCS#1 ou RFC 2437, PKCS#7, PKCS#8, PKCS#12 etc.) etc. - 39 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite

Boîte à outils : OpenSSL (3/8) Interface de programmation en C Bibliothèque SSL/TLS Bibliothèque cryptographique Suite d'applications en ligne de commande openssl (1) Intégration à de multiples langages PHP Module expérimental Fonctions mises en oeuvre concernant essentiellement les certificats X.509 Manipulation de clefs RSA (clef publique/clef privée) Manipulation de certificats X.509 (génération, validation) Utilisation dans le cadre de signature et chiffrement de données (S/MIME, PKCS#7) http://www.php.net/manual/en/ref.openssl.php Modules Perl (OpenCA, Net::SSLeay), Ruby etc. - 40 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite

Boîte à outils : OpenSSL (4/8) Interface de programmation cryptographique en C, incluant : Bibliothèque SSL/TLS (libssl.a) Mise en oeuvre des protocoles SSLv2, SSLv3 et TLSv1 Bibliothèque cryptographique (libcrypto.a) Cryptographie clef publique et certificats X509 RSA, DSA, DH Compilateur ASN.1 Chiffrement DES, 3DES, Blowfish, RC2, CAST, IDEA (blocs), RC4 (flux) + modes ECB, CBC, CFB, OFB pour les algorithmes de chiffrement par blocs Hachage MD2, MD4, MD5, SHA, SHA1, MDC2, RIPEMD160 Bien distinguer les bibliothèques cryptographiques et SSL/TLS! Application OpenSSH fondée sur la bibliothèque cryptographique d'openssl (mais protocole SSH!= protocole SSL/TLS) $ ldd /usr/sbin/sshd grep libssl $ ldd /usr/sbin/sshd grep libcrypto => /usr/lib/libcrypto.so.0 (0x40045000) - 41 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite

Boîte à outils : OpenSSL (5/8) Application en ligne de commande : openssl(1) Manipulation de paramètres RSA, DSA, DH rsa, genrsa, rsautl, dsa, dsaparam, gendh Manipulation de certificats X509, CRL ou encore CSR asn1parse, ca, req, crl, x509 (+ocsp) Mise en oeuvre du protocole de vérification en ligne OCSP dans la branche 0.9.7 Calculs d'empreintes (MD5, SHA etc.) et opération de chiffrement (DES, BF) dgst, enc Applications spécifiques Client/Serveur SSL/TLS : s_client, s_server Manipulation de fichiers au format S/MIME smime Manipulation de fichiers SPKAC (Netscape), PKCS#12 spkac, pkcs12-42 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite

Boîte à outils : OpenSSL (6/8) Licence portant sur le code source OpenSSL Licence spécifique Pas GPL, LGPL ou encore BSD Licence cumulative (ou duale) OpenSSL et SSLeay Licence SSLeay S'applique au code source original d'eric Young Licence OpenSSL S'applique aux modifications effectuées par l'équipe de développement OpenSSL - 43 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite

Boîte à outils : OpenSSL (7/8) Conditions d'utilisation d'openssl Licence OpenSSL incompatible avec la licence GPL http://www.gnu.org/copyleft/gpl.html Compatibilité, sous certaines conditions Application liée à OpenSSL pouvant être sous licence GPL suivant le système d'exploitation ou la distribution à la condition suivante : «FAQ about the GNU GPL» http://www.gnu.org/licenses/gpl-faq.html#tocwritingfswithnflibs «I am writing free software that uses non-free libraries. What legal issues come up if I use the GPL? If the libraries that you link with falls within the following exception in the GPL: However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable» Différence notable entre la GPL et la licence OpenSSL : Application liée à OpenSSL pouvant être distribuée sous une licence autre de la licence OpenSSL - 44 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite

Boîte à outils : OpenSSL (8/8) Projets similaires, sous licence GPL GnuTLS Licence GPL Mise en oeuvre des protocoles SSLv3 et TLS Support des certificats X.509, OpenPGP, du protocole SRP Remarque : protocole SRP au statut «Wishes» dans OpenSSL, mais existence d'un correctif Manque de maturité par rapport au projet OpenSSL «Avalaible for Beta testing»... http://www.gnu.org/software/gnutls/ Mozilla NSS Licences MPL et GPL http://www.mozilla.org/mpl Mise en oeuvre des protocoles SSLv2/v3 et TLS Support des formats PKCS#5, PKCS#7, PKCS#11, PKCS#12, des certificats X.509 et du format d'échange applicatif S/MIME http://www.mozilla.org/projects/security/pki/nss/ - 45 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite

Boîte à outils : DumpASN.1 DumpASN.1 Téléchargement sur http://www.cs.auckland.ac.nz/~pgut001 : Source http://www.cs.auckland.ac.nz/~pgut001/dumpasn1.c Fichier de configuration (OID) http://www.cs.auckland.ac.nz/~pgut001/dumpasn1.cfg Auteur : Peter Gutmann <pgut001@cs.auckland.ac.nz> Renvoie la structure ASN.1 d'un objet au format DER Syntaxe de transfert DER («Distinguished Encoding Rules») Conversion du format PEM (base64) vers DER (binaire) avec openssl(1) Traduction des OID réalisée via le fichier dumpasn1.cfg Extrait du fichier de configuration : OID = 06 09 2A 86 48 86 F7 0D 01 01 01 Comment = PKCS #1 Description = rsaencryption (1 2 840 113549 1 1 1) - 46 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite

Boîte à outils : SSLDump SSLDump Téléchargement sur http://www.rtfm.com/ssldump/ Analyseur de trafic SSLv3/TLSv1 Déchiffrement du trafic à la volée modulo la connaissance de la clef privée associée à la clé publique contenue dans le certificat X.509 présenté par le serveur SSL/TLS... GET / HTTP/1.0 Host: www.webserver.com - 47 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite

En pratique : chiffrement et signature

Chiffrement et signature (1/8) Émission d'un message chiffré/signé Génération des clefs RSA publique et privée de l'émetteur et du destinataire Format PEM, protection par mot de passe src_rsa.pem, dst_rsa.pem respectivement pour les clefs privées émetteur et destinataire src_rsa_pub.pem, dst_rsa_pub.pem pour les clefs publiques Génération des clefs privées avec rsa(1ssl) $ openssl genrsa -des 512 tee src_rsa.pem Generating RSA private key, 512 bit long modulus...++++++++++++...++++++++++++ e is 65537 (0x10001) Enter PEM pass phrase: Verifying password - Enter PEM pass phrase: -----BEGIN RSA PRIVATE KEY----- Proc-Type: 4,ENCRYPTED DEK-Info: DES-CBC,F797B90DFD6AE2BB RujFw/mVRdBjfFI8xzrHCd+AvOpD3JfoD5XMEbXDlmprBR9nOdUc/wvjHUYNO4z6 fq3ogppb8igs9iilzdlls3rdui60m3uhcgmh1hd2p+e= -----END RSA PRIVATE KEY----- - 49 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite

Chiffrement et signature (2/8) Génération du biclef RSA avec OpenSSL et un PRNGD Biclef RSA format PEM Chiffrement DES-CBC -----BEGIN RSA PRIVATE KEY----- Proc-Type: 4,ENCRYPTED DEK-Info: DES-CBC,F797B90DFD6AE2BB RujFw/mVRdBjfFI8xzrHCd+AvOpD3JfoD5XMEbXDlmprBR9nOdUc/wvjHUYNO4z6 fq3ogppb8igs9iilzdlls3rdui60m3uhcgmh1hd2p+e= -----END RSA PRIVATE KEY----- Clef publique RSA format PEM Extraction de la clef publique -----BEGIN PUBLIC KEY----- MfwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAL5ApUqqRf86ZklRhstCbGSP9REkOo2R U3E/q1ZRkGxrxKszYv3PEYatDmwZbhtofbndqVfHRUGULSHFsYP8azcCAwEAAQ== -----END PUBLIC KEY----- - 50 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite

Chiffrement et signature (3/8) Extraction, pour publication, des clefs publiques $ openssl rsa -in src_rsa.pem -pubout tee src_rsa_pub.pem read RSA key Enter PEM pass phrase: writing RSA key -----BEGIN PUBLIC KEY----- MfwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAL5ApUqqRf86ZklRhstCbGSP9REkOo2R U3E/q1ZRkGxrxKszYv3PEYatDmwZbhtofbndqVfHRUGULSHFsYP8azcCAwEAAQ== -----END PUBLIC KEY----- Idem pour dst_rsa.pem et dst_rsa_pub.pem Chiffrement du message en DES (mode CBC) avec enc(1ssl) Clef de chiffrement et vecteur d'initialisation dérivés du mot de passe ('secret') $ echo -n "Message confidentiel \!" openssl enc -des-cbc tee message.crypt enter des-cbc encryption password: Verifying password - enter des-cbc encryption password: - 51 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite

Chiffrement et signature (4/8) Calcul de l'empreinte du message chiffré avec dgst(1ssl) Algorithme md5 $ openssl dgst -md5 -binary message.crypt tee message.crypt.dgst Signature Mécanisme de chiffrement de l'empreinte avec la clef RSA privée de l'émetteur Chiffrement avec la clef privée de l'émetteur (src_rsa.pem) de l'empreinte avec rsautl(1ssl) openssl rsautl -in message.crypt.dgst -sign -inkey src_rsa.pem \ tee message.crypt.sign Enter PEM pass phrase: ½ôýÞAí) óû0ãühiwuk{³û Î!J ( $! La signature est placée en attachement (non chiffrée, dans ce cas) - 52 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite