Cryptographie et sécurité informatique
La sécurité informatique c’est l’ensemble des moyens mis en œuvre pour réduire la vulnérabilité d’un système contre les menaces accidentelles ou intentionnelles. Il convient d’identifier les exigences fondamentales en sécurité informatique. Elle a pour objectif d’assurer les quatre principales fonctionnalités suivantes : l’authentification, la confidentialité, l’intégrité et la non-répudiation. Ces exigences sont vitales si l’on désire effectuer une communication sécurisée à travers un réseau informatique tel qu’Internet. La mise en œuvre de ces services de sécurité est rendue possible grâce à la cryptographie moderne qui offre différents mécanismes de sécurité tels que le chiffrement et la signature numérique.
Normes et Standards
ISO 27001
L’ISO (Organisation internationale de normalisation) est une organisation internationale non gouvernementale, indépendante, dont les 165 membres sont les organismes nationaux de normalisation. Comme toutes les autres normes de systèmes de management de l’ISO, la certification selon ISO/IEC 27001 est une possibilité, mais pas une obligation. Certains utilisateurs décident de mettre en œuvre la norme simplement pour les avantages directs que procurent les meilleures pratiques. D’autres font le choix de la certification pour prouver à leurs clients qu’ils suivent les recommandations de la norme. De nombreuses organisations dans le monde sont certifiées à ISO/IEC 27001. La norme ISO 27001 :2013 (également connue sous le nom de BS EN 27001 :2017) fournit un cadre pour un système de gestion de la sécurité de l’information (ISMS) qui permet le maintien de la confidentialité, de l’intégrité et de la disponibilité des informations, ainsi que la conformité légale. La certification ISO 27001 est essentielle pour protéger vos actifs les plus vitaux.
IETF
— RFC 5280 : Certificate and Certificate Revocation List (CRL) Profile :Spécification qui décrit le format du certificat X.509 v3 avec ses extensions, ainsi que le mécanisme de liste de révocation pour son utilisation sur l’internet. Cette RFC constitue la proposition du groupe de travail PKIX1 pour l’utilisation de l’ICP (Infrastructure à clé publique) sur l’internet [RFC5280].
— RFC 2560 : Online Certificate Status Protocol (OCSP) : Spécification qui décrit le protocole OCSP. Ce protocole permet de déterminer le statut courant d’un certificat à clé publique, sans avoir à recourir à l’utilisation d’une liste de révocation. Le protocole OCSP permet donc à une composante logicielle de faire appel à un tiers de confiance, afin de déterminer si un certificat a fait l’objet d’une révocation ou non. Ce mécanisme a pour avantage de faciliter la gestion des listes de révocation [RFC2560].
— RFC 3161 : Time-Stamp Protocol (TSP) : Spécification qui décrit le protocole d’échange avec le service d’horodatage Time Stamping Authority (TSA). Le service TSA permet de générer des assertions qui attestent qu’une donnée existait à un moment précis dans le temps. Ce service est utilisé par les services de non-répudiation [RFC3161].
— RFC 4210 : Certificate Management Protocol (CMP) : Spécification qui décrit le protocole CMP. Le protocole CMP est utilisé pour la création, ainsi que la gestion des certificats X.509v3 à distance. Les composantes de l’ICP utilisent ce protocole pour communiquer entre elles. Cette spécification remplace la RFC 2510 [RFC4210].
— RFC 2251 : Lightweight Directory Access Protocol (LDAP) v3 : Spécification qui décrit le protocole LDAP en termes de X.500 comme mécanisme d’accès X.500. Un serveur LDAP doit agir selon la série de recommandations de l’UITX.500(1993) en fournissant le service. Cependant, on n’exige pas qu’un serveur LDAP se serve d’un quelconque protocole X.500 en fournissant ce service, par exemple LDAP peut être mappé sur n’importe quel autre système d’annuaire à condition que le modèle des données et du service X.500 utilisé dans LDAP ne soit pas enfreint dans l’interface LDAP[RFC2251].
— RFC 2246 : Transport Layer Security (TLS) : Spécification qui décrit le protocole TLS, comporte un dispositif pour négocier le choix d’une méthode de compression des données sans perte au titre du protocole de prise de contact TLS et pour ensuite appliquer l’algorithme associé à la méthode choisie au titre du protocole d’enregistrement TLS. TLS définit une méthode standard de compression qui spécifie que les données échangées via le protocole d’enregistrement ne seront pas compressées [RFC2246].
— RFC 1320 : Message-Digest Algorithm (MD4) : Ce document décrit en détail la fonction de hachage MD4 conçu par le professeur Ronald Rivest en 1990.
— RFC 1321 : Message-Digest Algorithm (MD5) : Ce document décrit en détail la fonction de hachageMD5 conçu par le professeur Ronald Rivest en 1991 .
UIT-T
La Recommandation UIT-T X.509 | ISO/CEI 9594-8 définit des cadres pour l’infrastructure de clé publique (PKI) et l’infrastructure de gestion de privilège (PMI). Elle présente le concept fondamental de techniques de chiffrement asymétrique. Elle spécifie les types de données suivants : certificat de clé publique, certificat d’attribut, liste de révocation de certificats (CRL) et liste de révocation de certificats d’attribut (ACRL). Elle définit aussi plusieurs certificats et extensions de liste CRL, ainsi que les informations relatives au schéma d’annuaire permettant de stocker dans un annuaire les données relatives aux infrastructures PKI et PMI. Elle définit en outre des types d’entités, tels que l’autorité de certification, l’autorité d’attribut, la partie utilisatrice, le vérificateur de privilège, le courtier de confiance et l’ancre de confiance. Elle spécifie les principes régissant la validation de certificat, le trajet de validation, la politique de certificat, etc. Elle inclut une spécification des listes de validation d’autorisation qui permettent d’effectuer une validation rapide et d’imposer des restrictions aux communications.
PKCS
Ensemble de standards fait pour la cryptographie à clé publique développé en coopération avec un consortium informel (Apple, DEC, Lotus, Microsoft, MIT, RSA, et Sun) qui comprend des standards de mise en oeuvre spécifiques à des algorithmes ou indépendants de tout algorithme. Les spécifications définissant la syntaxe des messages et d’autres protocoles sont contrôlés par RSA Data Security Inc.
Mathématique pour la cryptographie
Groupe
Loi de composition, ou opération..[12] Soit E, un ensemble non vide. On dit q’une fonction ∗ : E × E →E est une loi de composition sur E, ou une opération binaire sur E On note (E, ∗) le fait que l’ensemble E est muni d’une opération binaire. Dans ce cas, on utilise souvent une notation infixe, c’est-à-dire que
∗ : E × E → E, avec (x,y) → x ∗ y, où l’image de (x, y) par la fonction « ∗» est notée x ∗ y.
Parmi les lois de composition, certaines possèdent des propriétés particulières qui les rendent plus intéressantes. Le choix de ces propriétés n’est pas arbitraire. En effet, c’est une vaste expérience mathématique qui a permis de dégager qu’elles sont les propriétés qui donnent à une loi de composition une structure suffisamment riche pour qu’elle ait un impact important sur l’étude d’un contexte dans lequel elle apparaît. Nous aurons maintes fois l’occasion de constater qu’une fois mises en évidence ces propriétés apparaissent toutes naturelles. On dit q’une loi de composition (opération).
∗, est
1. associative si x ∗ (y ∗ z) = (x ∗ y) ∗ z, pour tout x, y, z ∈ E
2. commutative si x ∗ y= y ∗ x, pour tout x,y ∈ E
On remarque que, si ∗ est associative, alors on peut écrire x∗y ∗z au lieu de (x∗y)∗z = (x ∗ y) ∗ z, puisqu’il n’y a pas d’ambiguïté sur la façon de faire le calcul. Bien entendu, toutes les lois ne sont pas associatives. Par exemple, on a
— Les opérations usuelles d’addition « + » et de multiplication « . » d’entiers (dans Z) sont toutes deux commutatives et associatives. Il en est de même pour les entiers modulo n, c.-à-d. dans Zn = Z/nZ. Dans ce qui suit, on suppose que l’ensemble Zn est identifié à 0, 1,…,n
— La loi de composition ∗ : (x, y) −→ xy + 1 sur N est commutative, mais pas associative. En effet, pour x, y, z ∈ N, ona
(x ∗ y) ∗ z = (xy + 1) ∗ z = (xy + 1)z + 1 = xyz + z + 1, et
x ∗ (y ∗ z)= x ∗ (yz + 1) = x(yz + 1) = xyz + x + 1.
Les résultats sont donc manifestement différent si x 6= z.
— On vérifie facilement que l’opération x ∗ y := xy , pour x et y dans N, n’est ni associative ni commutative.
— Dans l’ensemble Mn(R) des matrices n x n à coefficients réels, l’addition est une loi associative et commutative, tandis que la multiplication est une loi associative, mais pas commutative en général .
Anneau
— A est un groupe abélien pour l’addition, (on note 0 son élément neutre),
— la multiplication est associative, c’est-à-dire :
x(yz) = (xy)z pour tous x, y, z ∈ A.
— la multiplication est distributive sur l’addition à gauche et à droite, c’est-‘à-dire :
x(y + z) = xy + xz et (x + y)z = xz + yz pour tous x, y, z ∈ A.
On dit que l’anneau A est commutatif si de plus la multiplication est commutative, c’est-à-dire :
xy = yx pour tous x, y ∈ A.
On dit que A est unitaire si de plus la multiplication admet un élément neutre 1.
x.1 = 1.x = x pour tout x ∈ A.
Exemples :
1. L’ensemble Z des entiers est un anneau commutatif unitaire. Il en est de même de Q, R et C.
2. L’ensemble des matrices carrées d’ordre n ≥ 2 à coefficients réels est un anneau non-commutatif (pour le produit matriciel) unitaire (de neutre multiplicatif la matrice identité). Il en est de même de l’anneau des endomorphismes d’un espace vectoriel (pour la loi ◦).
3. L’anneau nul est l’anneau 0 formé d’un unique élément
4. Pour tout intervalle I de R, l’ensemble F( I, R ) des applications de I dans R est un anneau commutatif (la multiplication étant le produit des fonctions défini par (fg)(x) = f(x)g(x) pour tout x ∈ R) unitaire (de neutre multiplicatif la fonction constante égale à 1). Il en est de même pour l’ensemble R N des suites de réels.
|
Table des matières
Introduction Générale
Contexte
Problematique
Objectifs
Organisation du memoire
1 Chapitre I : Cryptographie et sécurité informatique
1.1 Normes et Standards
1.1.1 ISO 27001
1.1.2 IETF
1.1.3 UIT-T
1.1.4 PKCS
1.2 Mathématique pour la cryptographie
1.2.1 Groupe
1.2.2 Anneau
1.2.3 Corps
1.3 Généralité sur la cryptographie
1.3.1 Cryptosystème
1.3.2 Modélisation d’un cryptosystème
1.4 Les objectifs de la sécurité informatique
1.4.1 Authentification
1.4.2 Confidentialité
1.4.3 Intégrité
1.4.4 Non répudiation
1.4.5 Disponibilité
1.5 Rappel sur la cryptographie
1.5.1 Chiffrement/déchiffrement
1.5.2 Les clés
1.5.3 Les familles cryptographiques
1.5.4 Fonction de hachage
1.5.5 Signature numérique
1.5.6 Certificats numériques
1.6 SSL/TLS
1.6.1 Définition
1.6.2 Objectifs et moyens mis en œuvre
1.6.3 Fonctionnement
1.6.4 La négociation SSL
1.6.5 Implémentations de SSL/TLS
2 Chapitre II : Infrastructure de gestion de clés publiques(PKI)
2.1 Notion de PKI
2.2 Les composants d’une PKI
2.3 Répartition des AC
2.3.1 Modèle hiérarchique
2.3.2 Modèle croisé (Peer-to-Peer)
2.3.3 Modèle Bridge
2.4 Cycle de vie des clés et des certificats
2.5 La politique d’une PKI
2.6 Les protocoles d’une PKI
2.6.1 CRL
2.6.2 OCSP
2.6.3 CMP
2.7 Annuaire
2.7.1 Définition
2.7.2 Annuaire et PKI
2.7.3 Protocole d’accès au répertoire
3 Chapitre III : Mise en œuvre d’une PKI(EJBCA)
3.1 Présentation du projet
3.1.1 Tableau comparatif des PKI open source
3.1.2 Présentation du produit EJBCA
3.2 Mise en oeuvre d’EJBCA
3.2.1 Description de l’environnement
3.2.2 Les logiciels requis
3.2.3 Installation
3.2.4 Configuration
3.2.5 Applications
3.2.6 Implémentation d’EBCA sur un site web
Conclusion générale
Annexe