Architectures de sécurité pour Internet
Protocoles, standards et déploiement
Jean-Guillaume Dumas
Pascal Lafourcade
Patrick Redon
Dunod
PréfaceI
Table des matièresIII
Avant-proposIX
Introduction1
1 Motivations pour une architecture asymétrique
13
1.1 Authentification et partage de clefs14
1.1.1 Protocole d'échange de clef secrète de Diffie-Hellman14
1.1.2 Attaque « Man-In-The-Middle »15
1.2 Kerberos : un distributeur de clefs secrètes17
1.2.1 Présentation des acteurs du protocole Kerberos18
1.2.2 Présentation générale du protocole Kerberos18
1.2.3 Détail du protocole Kerberos19
1.2.4 Domaines Kerberos22
1.2.5 Faiblesses de Kerberos22
1.3 Principe général d'une architecture PKI25
2 Éléments essentiels
29
2.1 Notations29
2.2 Annuaires électroniques : LDAP30
2.2.1 Protocole de services d'annuaire30
2.2.2 Caractéristiques principales31
2.2.3 Vue d'ensemble d'une session LDAP31
2.2.4 Structure de l'annuaire LDAP32
2.2.5 Un format d'échange de données : LDIF33
2.2.6 LDAP comme norme d'authentification33
2.3 Outils de cryptologie pour l'authentification et l'intégrité34
2.3.1 Indistinguabilité des chiffrés34
2.3.2 Fonctions de hachage cryptographiques : SHA-3 (Keccak)36
2.3.3 Codes d'authentification : HMAC41
2.3.4 Remplissage pseudo-aléatoire : OAEP42
2.4 Signatures électroniques44
2.4.1 Propriétés de sécurité des signatures électroniques44
2.4.2 RSA-PSS45
2.4.3 Étude de cas : un cryptosystème hybride utilisant RSA et DES48
2.4.4 DSS et ECDSA49
2.5 Standards pour la cryptologie asymétrique51
3 Architectures PKI
55
3.1 Fonctions d'une PKI55
3.2 Éléments de l'infrastructure57
3.3 Certificats électroniques58
3.3.1 PGP, un premier exemple de certificat59
3.3.2 Certificats X.50960
3.3.3 Liste de révocation62
3.3.4 Langage de spécifications ASN.l65
3.4 Différents modèles de confiance69
3.4.1 Modèle hiérarchique et notion d'ancre de confiance69
3.4.2 Modèle hiérarchique maillé et confiance distribuée69
3.4.3 Modèle de confiance embarquée et magasins d'ancres de confiance69
3.4.4 Modèles de confiance centrée sur l'utilisateur70
3.5 Étude de cas : CRL partielles70
3.5.1 CRL « Issuing Distribution Point »70
3.5.2 Delta CRL indicator71
3.5.3 « Freshest » CRL72
3.5.4 CRL indirecte72
4 Architecture hiérarchique simple : PKIX
73
4.1 Modèle PKIX73
4.1.1 Règles de construction d'une architecture PKIX74
4.1.2 Fonctions d'administration75
4.1.3 Processus de migration d'une ancienne AC racine vers une nouvelle78
4.2 Protocoles de vérification en ligne de certificat79
4.2.1 Centralisation de la validation des certificats80
4.2.2 Protocole de vérification en ligne OCSP80
4.2.3 Agrafage OCSP (« OCSP stapling »)82
4.2.4 Novomodo83
4.2.5 Protocole de validation en ligne SCVP85
5 Architecture hiérarchique maillée et certifications croisées
87
5.1 Certification croisée et ancres de confiance87
5.2 Exemples de certifications croisées90
5.3 Certification croisée hybride93
5.3.1 Avantages d'une certification croisée hiérarchique93
5.3.2 Avantages d'une certification croisée pair-à-pair93
5.3.3 Certification croisée hybride94
5.4 Extensions de la confiance94
5.4.1 Longueur maximale de chaîne de certification95
5.4.2 Contraintes de nommage97
5.4.3 Politiques de certification, équivalences et contraintes97
5.5 Politique de certification croisée99
5.6 AC passerelle et interopérabilité100
6 Extensions de la confiance dans les infrastructures embarquées
103
6.1 Certificat à validation étendue105
6.2 Epinglage de certificats (« certificate pinning »)108
6.2.1 Liste blanche de Chrome et HPKP108
6.2.2 « Certificate trust » dans EMET, depuis la version 4.0109
6.2.3 Extension « Certificate patrol » pour Mozilla109
6.2.4 TACK109
6.3 Services notariaux110
6.3.1 Convergence110
6.3.2 Perspectives110
6.3.3 PKI 2.0 et LocalPKI111
6.3.4 DANE111
6.4 Tableaux d'affichage sans effacement111
6.4.1 « Certificate Transparency » (CT)111
6.4.2 « Sovereign Keys »112
6.4.3 ARPKI113
6.5 Etude de cas : « The Phone Company »114
6.5.1 Système de facturation client114
6.5.2 Application salaire115
6.5.3 Déploiement115
7 Architecture pair-à-pair : PGP
119
7.1 Paquets PGP119
7.2 Niveaux de confiance121
7.3 Porte-clefs PGP123
7.4 Révocation de clef124
7.5 Révocation de signature125
7.6 Extraction d'information d'un certificat PGP125
7.6.1 En-têtes de paquets127
7.6.2 Tags de paquets127
7.6.3 Exemple d'extraction127
7.7 Synchronisation des serveurs de clefs128
7.8 Politique de signature PGP129
8 Architectures distribuées ou reposant sur l'identité
131
8.1 Architectures reposant sur l'identité131
8.1.1 Générateur de confiance centralisé132
8.1.2 Étude de cas : le protocole IBE de Cocks134
8.1.3 Signature IBE135
8.1.4 Infrastructure de gestion des identités135
8.1.5 Absence de révocation et renouvellement des clefs PKG137
8.1.6 Chiffrement sans certificat138
8.2 Architectures reposant sur les « blockchains »140
8.2.1 Registre distribué et « blockchains »140
8.2.2 Consensus et minage141
8.2.3 Contrats intelligents142
8.2.4 Architectures distribuées de gestion de clefs142
8.3 Spooky/Sudsy (SPKI/SDSI)147
8.3.1 Connaissance locale et aspect distribué147
8.3.2 Attribution de permissions148
9 Cadre réglementaire des services et politique de certification
151
9.1 Base légale151
9.1.1 Règlement européen elDAS sur les services de confiance151
9.1.2 Règlement général sur la protection des données154
9.1.3 Référentiel général de sécurité156
9.1.4 Qualification des prestataires de service158
9.2 Signature électronique159
9.2.1 Politique de signature161
9.2.2 Horodatage et archivage161
9.2.3 Formats de signature électronique164
9.2.4 Signature à valeur légale165
9.2.5 Cadre européen pour la signature électronique166
9.2.6 Dispositif qualifié de création de signature (QSCD)166
9.3 Politique de certification167
9.3.1 Structure d'une politique de certification (PC)168
9.3.2 Déclaration des Pratiques de Certification (DPC)180
9.3.3 Conditions générales d'utilisation180
9.4 Étude de cas : système de transaction eIDAS182
9.4.1 Connexion authentifiée par mot de passe183
9.4.2 Authentification du terminal184
9.4.3 Authentification de la puce185
9.4.4 Architecture de sécurité eIDAS185
10 Déploiement d'infrastructures de sécurité
187
10.1 Déploiement187
10.1.1 Prestataire de service de certification188
10.1.2 Développement et direction d'une PKI190
10.1.3 Documentation de la politique de sécurité191
10.1.4 Architecture physique et arborescence de la PKI192
10.1.5 Gestion des clefs et des certificats198
10.1.6 Déploiement et audit201
10.2 OpenSSL204
10.2.1 Création de clefs204
10.2.2 Chiffrement et signature des messages207
10.2.3 Configuration d'OpenSSL208
10.2.4 Révocation d'un certificat211
10.2.5 Network Security Services213
10.3 GnuPG213
10.3.1 Debian GNU/Linux214
10.3.2 Mac OS X215
10.3.3 mutt216
10.3.4 Windows : Gpg4win217
10.3.5 OpenKeychain sous Android220
10.4 Autres implémentations de PKI222
10.5 Étude de cas : « Pizza Gourmet Unlimited »224
10.5.1 Choix de l'architecture de sécurisation des transactions224
10.5.2 Système d'authentification des employés224
10.5.3 Système de commande client225
10.5.4 Déploiement225
11 Authentification par PKI et échange de clefs
227
11.1 Authentification d'entités à partir de certificats227
11.2 Transport et encapsulation de clef228
11.3 Échange de clef authentifié : protocole SIGMA229
11.3.1 Diffie-Hellman authentifié simple et usurpation d'origine des messages230
11.3.2 Insuffisance des protections ISO-9706 et « Station-to-Station »231
11.3.3 Protocole SIGMA232
11.3.4 Protection d'identité contre un attaquant actif233
11.3.5 Variantes de SIGMA pour les protocoles de communication235
11.4 Protocole IKE235
11.4.1 Principes236
11.4.2 Échange IKE_SA_INIT237
11.4.3 Échange IKE_AUTH238
11.4.4 Échange CREATE_CHILD_S A239
12 Protocoles de communications sécurisées
243
12.1 Sécurisation des canaux243
12.1.1 Protocole TLS : sécurisation de la couche applicative244
12.1.2 « Transport Layer Security » (TLS) 1.2245
12.1.3 TLS 1.3250
12.1.4 Applications : HTTPS et LDAPS253
12.1.5 Protocole IPSec : sécurisation de la couche réseau257
12.1.6 Monkeysphere et PKIXSSH : certificats pour SSH265
12.2 Routage sécurisé269
12.2.1 DNSSec : sécurisation de la résolution des noms de domaine269
12.2.2 Réseau TOR : architectures dynamiques279
12.3 Messagerie sécurisée286
12.3.1 Protocole S/MIME : conteneur sécurisé de données286
12.3.2 OTR : messagerie répudiable292
12.4 Sécurisation des transactions financières296
12.4.1 EMV : authentifications des cartes bancaires296
12.4.2 Protocole SET pour les paiements en ligne304
12.4.3 Protocole 3D-Secure pour les paiements en ligne312
12.4.4 Monnaie électronique Bitcoin316
13 Évaluation de la sécurité
329
13.1 Évaluation et certification de la sécurité selon les critères communs329
13.1.1 Niveau d'évaluation EAL et cotation d'attaques330
13.1.2 Cible d'évaluation et cible de sécurité331
13.1.3 Profils de protection332
13.1.4 Exigences fonctionnelles de sécurité332
13.1.5 Exigences d'assurance de sécurité335
13.1.6 Centres de certification et accords de reconnaissance335
13.1.7 Centres d'évaluation (CESTI)337
13.2 Évaluation et validation FIPS-140 et ISO/CEI-19790337
13.2.1 Historique338
13.2.2 Centres de certification339
13.2.3 Centres d'évaluation (laboratoires)339
13.2.4 Niveaux d'évaluation FIPS-140-2340
13.2.5 Critères d'évaluation341
13.2.6 Politique de sécurité343
13.3 Certification de sécurité de premier niveau343
13.3.1 Centre de certification et centres d'évaluation344
13.3.2 Évaluation344
13.4 Processus de qualification de produits de sécurité345
Conclusion347
Correction des exercices349
Liste des figures, tables, exercices, abréviations et RFC utilisés379
Liste des figures379
Liste des tables382
Liste des algorithmes383
Liste des exercices383
Liste des abréviations385
Liste des RFC utilisées390
Bibliographie395
Index405