
Cryptographie dans le monde réel
Description
Introduction au livre
Le guide de cryptographie le plus pratique au monde
La cryptographie est un fondement essentiel de la sécurité informatique.
Pour garder une longueur d'avance sur les pirates informatiques, vous devez comprendre les outils, les frameworks et les protocoles qui sécurisent vos réseaux et vos applications.
Ce livre enseigne des compétences pratiques aux développeurs, aux administrateurs système et aux spécialistes de la sécurité.
Au lieu de recourir à des mathématiques complexes ou à des termes techniques, les techniques de cryptographie modernes sont expliquées à l'aide de diverses illustrations et d'exemples concrets.
Vous y apprendrez tout, des principes fondamentaux aux technologies de pointe, notamment les fonctions de hachage, les signatures, le protocole HTTPS, la messagerie sécurisée, la cryptographie résistante à l'informatique quantique et les cryptomonnaies. Rédigé par un ingénieur en cryptographie contribuant activement aux normes Internet, dont TLS, cet ouvrage est accessible même aux débutants.
La cryptographie est un fondement essentiel de la sécurité informatique.
Pour garder une longueur d'avance sur les pirates informatiques, vous devez comprendre les outils, les frameworks et les protocoles qui sécurisent vos réseaux et vos applications.
Ce livre enseigne des compétences pratiques aux développeurs, aux administrateurs système et aux spécialistes de la sécurité.
Au lieu de recourir à des mathématiques complexes ou à des termes techniques, les techniques de cryptographie modernes sont expliquées à l'aide de diverses illustrations et d'exemples concrets.
Vous y apprendrez tout, des principes fondamentaux aux technologies de pointe, notamment les fonctions de hachage, les signatures, le protocole HTTPS, la messagerie sécurisée, la cryptographie résistante à l'informatique quantique et les cryptomonnaies. Rédigé par un ingénieur en cryptographie contribuant activement aux normes Internet, dont TLS, cet ouvrage est accessible même aux débutants.
- Vous pouvez consulter un aperçu du contenu du livre.
Aperçu
indice
Préface du traducteur xii
Recommandation XIII
Avis du lecteur bêta xv
À partir du XVIIe siècle
Remerciements xxii
À propos de ce livre xxiii
À propos de la couverture xxvii
PREMIÈRE PARTIE Les primitives : la matière de la cryptographie
CHAPITRE 1 Premiers pas 3
1.1 La cryptographie protège les protocoles 4
1.2 Cryptographie symétrique : Qu’est-ce que le chiffrement symétrique ? 5
1.3 Principe de Kerkhoff : Gardez votre taille secrète 7
1.4 Cryptographie asymétrique : deux clés valent mieux qu’une 10
1.4.1 Comment partager des secrets, échange de clés 10
1.4.2 Le chiffrement asymétrique est différent du chiffrement symétrique ! 13
1.4.3 Signatures numériques : pas si différentes des signatures manuscrites 15
1.5 Classification de la cryptographie 17
1.6 Cryptographie théorique vs. Cryptographie du monde réel 19
1.7 De la théorie à la réalité : simulations pour faire de la cryptographie une réalité 20
1.8 Avertissement 25
Résumé 26
CHAPITRE 2 Fonctions de hachage 27
2.1 Qu'est-ce qu'une fonction de hachage ? 27
2.2 Propriétés de sécurité des fonctions de hachage 30
2.3 Contraintes de sécurité des fonctions de hachage 32
2.4 Utilisations pratiques des fonctions de hachage 34
__2.4.1 commit 34
__2.4.2 Intégrité des sous-ressources 35
BitTorrent 35 __2.4.3
__2.4.4 Thor 35
2.5 Fonctions de hachage normalisées 36
__2.5.1 Fonction de hachage SHA-2 37
__2.5.2 Fonction de hachage SHA-3 41
__2.5.3 Deux XOF, SHAKE et cSHAKE 44
__2.5.4 Hachage de tuple, résolution d'ambiguïté 46
2.6 Hachage du mot de passe 48
Résumé 50
CHAPITRE 3 Code d'authentification du message 51
3.1 Un exemple représentatif de MAC, cookies sans état 51
3.2 Exemple de code 54
3.3 Propriétés de sécurité du MAC 56
3.3.1 Falsification des étiquettes d'authentification 56
__3.3.2 Longueur de l'étiquette d'authentification : 57
__3.3.3 Replay Attaque 58
__3.3.4 Vérification périodique de l'étiquette d'authentification 59
3.4 MAC 61 dans le monde réel
__3.4.1 Authentification des messages 61
__3.4.2 Dérivation de la clé 61
__3.4.3 Intégrité des cookies 61
__3.4.4 Table de hachage 62
3.5 MAC 62 en pratique
3.5.1 MAC basé sur le hachage, HMAC 62
__3.5.2 MAC basé sur cSHAKE, KMAC 63
3.6 SHA-2 et attaques à longueur variable 64
Résumé 67
CHAPITRE 4 : Authentification et chiffrement 69
4.1 Qu'est-ce qu'un texte chiffré ? 70
4.2 Chiffrement par blocs AES 71
4.2.1 Niveau de sécurité fourni par AES 72
__4.2.2 Interface AES 73
__4.2.3 À l'intérieur d'AES 74
4.3 Mode Penguin crypté et CBC 75
4.4 Que se passe-t-il si une authentification est requise ? AES-CBC-HMAC 78
4.5 Architecture tout-en-un : Authentification et chiffrement 80
__4.5.1 AEAD 80
__4.5.2 AES-GCM AEAD 82
__4.5.3 ChaCha20-Poly1305 86
4.6 Autres méthodes de chiffrement symétrique 90
__4.6.1 Enroulement des touches 91
4.6.2 Authentification, chiffrement et prévention de l'utilisation abusive des nonces 91
__4.6.3 Chiffrement du disque 91
__4.6.4 Chiffrement de la base de données 92
Résumé 92
CHAPITRE 5 ÉCHANGE DE CLÉS 95
5.1 Qu'est-ce que l'échange de clés ? 96
5.2 Échange de clés DH 99
__5.2.1 Théorie des groupes 99
__5.2.2 Fondation Diffie-Hellman, Problème 103 du logarithme discret
__5.2.3 Norme Diffie-Hellman 105
5.3 Échange de clés ECDH 106
5.3.1 Qu'est-ce qu'une courbe elliptique ? 107
__5.3.2 Fonctionnement de l'échange de clés ECDH 110
__5.3.3 Courbe elliptique Diffie-Hellman Standard 112
5.4 Attaques par petits sous-groupes et autres considérations de sécurité 114
Résumé 117
CHAPITRE 6 Chiffrement asymétrique et hybride 119
6.1 Qu'est-ce que le chiffrement asymétrique ? 120
6.2 Chiffrement asymétrique et hybride pratique 122
6.2.1 Échange et encapsulation des clés 122
__6.2.2 Chiffrement hybride 123
6.3 Cryptographie asymétrique RSA : Le pire et le pire 127
6.3.1 Manuel RSA 127
6.3.2 Pourquoi ne pas utiliser RSA PKCS#1 v1.5 ? 131
6.3.3 Chiffrement asymétrique RSA-OAEP 133
6.4 Chiffrement hybride ECIES 136
Résumé 138
CHAPITRE 7 Signatures et preuves à divulgation nulle de connaissance 139
7.1 Qu'est-ce qu'une signature ? 140
7.1.1 Comment signer et vérifier les signatures en pratique 141
7.1.2 Utilisation principale des signatures : Échange de clés authentifié 142
7.1.3 Cas d'utilisation concret : Infrastructure à clés publiques 143
7.2 ZKP : L’origine des signatures 144
__7.2.1 Protocole d'identification Schnorr : ZKP 145 interactif
7.2.2 Signatures en tant que ZKP non interactives 148
7.3 Algorithme de signature recommandé 149
__7.3.1 Norme non sécurisée, RSA PKCS#1 v1.5 150
7.3.2 Norme améliorée, RSA-PSS 153
__7.3.3 ECDSA 154
__7.3.4 EdDSA 157
7.4 Propriétés subtiles des systèmes de signature 160
__7.4.1 Attaque alternative 160
7.4.2 Malléabilité des signatures 162
Résumé 162
CHAPITRE 8 Aléatoire et secret 165
8.1 Qu'est-ce que le hasard ? 166
8.2 Aléatoire lent ? Utilisez un générateur de nombres pseudo-aléatoires (PRNG) 167
8.3 Garantir l'aléatoire en pratique 171
8.4 Génération de nombres aléatoires et considérations de sécurité 173
8.5 Aléatoire public 175
8.6 Dérivation de clés et HKDF 177
8.7 Gestion des clés et gestion des secrets 181
8.8 Décentralisation de la confiance par la cryptographie à seuil 183
Résumé 186
PARTIE II Protocoles : une recette pour la cryptographie
CHAPITRE 9 TRANSMISSION SÉCURISÉE 189
9.1 Protocoles de transport sécurisés, SSL et TLS 190
__9.1.1 SSL vers TLS 190
__9.1.2 Utilisation pratique de TLS 191
9.2 Fonctionnement du protocole TLS 193
__9.2.1 Poignée de main TLS 194
__9.2.2 Comment TLS 1.3 chiffre les données d'application 207
9.3 État actuel du Web crypté 208
9.4 Autres protocoles de transport 211
9.5 Une alternative moderne à TLS : le framework Noise Protocol 211
__9.5.1 Diverses poignées de main du bruit 212
__9.5.2 Poignée de main de bruit 213
Résumé 214
CHAPITRE 10 CHIFFREMENT DE BOUT EN BOUT 215
10.1 Pourquoi le chiffrement de bout en bout est-il nécessaire ? 216
10.2 La source de confiance que vous ne trouverez nulle part ailleurs 217
10.3 Échec du chiffrement du courriel 219
10.3.1. PGP ? GPG ? Comment ça marche ? 219
10.3.2 Réseau de confiance : Étendre la confiance entre les utilisateurs 222
__10.3.3 Le vrai problème est de trouver la clé 223
10.3.4 Si PGP n'est pas une alternative, quelles sont les solutions possibles ? 224
10.4 Messagerie sécurisée : Chiffrement de bout en bout moderne avec Signal 226
10.4.1 Faites confiance, mais vérifiez. Plus convivial que WOT 227
__10.4.2 Protocole de transmission du signal, X3DH 230
__10.4.3 Protocole post-établissement de liaison pour le signal, double cliquet 233
10.5 Chiffrement de bout en bout actuel 238
Résumé 240
CHAPITRE 11 AUTHENTIFICATION DE L'UTILISATEUR 243
11.1 Examen de la certification 243
11.2 Authentification de l'utilisateur : le chemin vers l'élimination des mots de passe 245
11.2.1 Le maître des mots de passe, SSO et gestionnaire de mots de passe 248
11.2.2 Vous souhaitez éviter la divulgation de votre mot de passe ? Utilisez un échange de clés d’authentification asymétrique. 249
__11.2.3 O TP n'est pas un véritable mot de passe.
Commutation sans mot de passe à l'aide de clés symétriques 253
__11.2.4 Remplacement des mots de passe par des clés asymétriques 257
11.3 Authentification assistée par l'utilisateur : Appairage des appareils avec assistance humaine 260
__11.3.1 Clé pré-partagée 261
__11.3.2 Échange de clés d'authentification par mot de passe symétrique utilisant CPace 263
__11.3.3 Mon système d'échange de clés a-t-il été victime d'une attaque de type MITM ? Consultez la section SAS 264
Résumé 267
CHAPITRE 12 : La « cryptomonnaie » dans « cryptomonnaie » ? 269
12.1 Brève introduction aux algorithmes de consensus BFT 270
__12.1.1 Le problème de la résilience : protocoles distribués pour la structure 270
12.1.2 Décentralisation : résoudre le problème de la confiance 272
__12.1.3 Le problème de l'échelle : réseaux sans autorisation et résistants à la censure 273
12.2 Fonctionnement du Bitcoin 275
__12.2.1 Comment Bitcoin gère les soldes et les transactions des utilisateurs 276
__12.2.2 La mine d'or numérique : miner du BTC 278
__12.2.3 Fork Hell ! Résolution des litiges miniers 281
__12.2.4 Réduction de la taille des blocs à l'aide d'arbres de Merkle 284
12.3 Aperçu des cryptomonnaies 286
__12.3.1 Volatilité 286
__12.3.2 Délai 286
__12.3.3 Taille de la blockchain : 287
__12.3.4 Confidentialité 287
__12.3.5 Efficacité énergétique 288
12.4 DMBFT : Protocole de consensus BFT 288
__12.4.1 Deux propriétés des protocoles de consensus BFT : sécurité et vivacité 288
__12.4.2 Tour 289 du protocole DMBFT
__12.4.3 Quel niveau de malhonnêteté un protocole peut-il tolérer ? 290
__12.4.4 Règles de vote DMBFT 291
12.4.5 Quand une transaction est-elle confirmée ? 292
__12.4.6 L'intuition cachée derrière la sécurité de DMBFM 293
Résumé 295
CHAPITRE 13 Cryptographie matérielle 297
13.1 Modèles d'attaquants en cryptographie moderne 297
13.2 Matériel : le sauveur des environnements non fiables 299
__13.2.1 Cryptographie en boîte blanche 300
__13.2.2 Cartes à puce et éléments de sécurité 300
__13.2.3 HSM 303, Apprécié des banques
__13.2.4.
Grande standardisation des éléments de sécurité, TPM 305
__13.2.5 Informatique sécurisée avec TEE 308
13.3 Quelle solution choisir ? 309
13.4 Cryptographie résistante aux fuites et défenses contre les attaques par canaux auxiliaires 311
__13.4.1 Programmation en temps constant 313
__13.4.2 Masquage et aveuglement 315
__13.4.3 Comment gérer les attaques par failles 316
Résumé 316
CHAPITRE 14 Cryptographie à l'ère de l'ordinateur quantique 319
14.1 Qu'est-ce qu'un ordinateur quantique ? 320
__14.1.1 Exploration de l'infiniment petit, Mécanique quantique 320
__14.1.2 De la naissance des ordinateurs quantiques à la suprématie quantique 323
__14.1.3 Algorithme de Grover et Shor 324
__14.1.4 Cryptographie post-quantique contre les ordinateurs quantiques 326
14.2 Il vous suffit d'une fonction de hachage ! Signatures basées sur le hachage 326
__14.2.1 OTS 327 via Lamport Signature
__14.2.2 WOTS et Petite Clé 329
__14.2.3 Signature multiple via XMSS et SPHINCS+ 330
14.3 Clés et signatures plus courtes grâce à la cryptographie sur réseau 333
__14.3.1 Qu'est-ce qu'un réseau ? 333
__14.3.2 Apprendre de ses erreurs 335
__14.3.3 Échange de clés basé sur un réseau, Kyber 337
__14.3.4 Schéma de signature basé sur un réseau, dilithium 339
14.4 Les ordinateurs quantiques sont-ils une source d'horreur ? 340
Résumé 342
CHAPITRE 15 : Cryptographie de nouvelle génération 345
15.1 MPC 346, plus vous jouez ensemble, mieux c'est
__15.1.1 PSI 347
__15.1.2 MPC 348 à usage général
__15.1.3 Le 350 actuel de MPC
15.2 FHE et l'avenir du cloud chiffré 350
__15.2.1 Exemple de chiffrement RSA et de chiffrement homomorphe 351
__15.2.2 Diverses méthodes de chiffrement homomorphe 351
__15.2.3 La clé du FHE, Amorçage 352
__15.2.4 Système FHE basé sur l'apprentissage par l'erreur 354
15.2.5 Où l'utiliser ? 356
15.3 Usage général ZKP 357
__15.3.1 Fonctionnement des zk-SNARKs 359
__15.3.2 Commit isomorphe 360 qui masque une partie des preuves
__15.3.3 Appariement bilinéaire pour améliorer l'engagement isomorphe 361
__15.3.4 Où est la concision ? 361
__15.3.5 Programme vers polynôme 362
__15.3.6 Le programme est destiné aux ordinateurs.
Ce dont nous avons besoin, c'est d'un circuit arithmétique 363
__15.3.7 Circuit arithmétique R1CS 364
__15.3.8 De R1CS aux polynômes 364
__15.3.9 Calcul du polynôme caché dans l'exposant 365
Résumé 367
CHAPITRE 16 La fin de la cryptographie 369
16.1 La tâche fastidieuse de trouver des primitives ou des protocoles cryptographiques appropriés 370
16.2 Comment utiliser les primitives et protocoles cryptographiques ? Normes et vérification de format 371
16.3 Où se trouvent les bonnes bibliothèques ? 374
16.4 Les développeurs sont-ils l'ennemi ? Mauvaise utilisation de la cryptographie 376
16.5 Sécurité facile à utiliser 377
16.6 La cryptographie n'est pas une île 378
16.7 Responsabilités des praticiens de la cryptographie : Ne testez pas votre propre cryptographie 379
Résumé 381
Réponse à l'exercice 383
Recherche 388
Recommandation XIII
Avis du lecteur bêta xv
À partir du XVIIe siècle
Remerciements xxii
À propos de ce livre xxiii
À propos de la couverture xxvii
PREMIÈRE PARTIE Les primitives : la matière de la cryptographie
CHAPITRE 1 Premiers pas 3
1.1 La cryptographie protège les protocoles 4
1.2 Cryptographie symétrique : Qu’est-ce que le chiffrement symétrique ? 5
1.3 Principe de Kerkhoff : Gardez votre taille secrète 7
1.4 Cryptographie asymétrique : deux clés valent mieux qu’une 10
1.4.1 Comment partager des secrets, échange de clés 10
1.4.2 Le chiffrement asymétrique est différent du chiffrement symétrique ! 13
1.4.3 Signatures numériques : pas si différentes des signatures manuscrites 15
1.5 Classification de la cryptographie 17
1.6 Cryptographie théorique vs. Cryptographie du monde réel 19
1.7 De la théorie à la réalité : simulations pour faire de la cryptographie une réalité 20
1.8 Avertissement 25
Résumé 26
CHAPITRE 2 Fonctions de hachage 27
2.1 Qu'est-ce qu'une fonction de hachage ? 27
2.2 Propriétés de sécurité des fonctions de hachage 30
2.3 Contraintes de sécurité des fonctions de hachage 32
2.4 Utilisations pratiques des fonctions de hachage 34
__2.4.1 commit 34
__2.4.2 Intégrité des sous-ressources 35
BitTorrent 35 __2.4.3
__2.4.4 Thor 35
2.5 Fonctions de hachage normalisées 36
__2.5.1 Fonction de hachage SHA-2 37
__2.5.2 Fonction de hachage SHA-3 41
__2.5.3 Deux XOF, SHAKE et cSHAKE 44
__2.5.4 Hachage de tuple, résolution d'ambiguïté 46
2.6 Hachage du mot de passe 48
Résumé 50
CHAPITRE 3 Code d'authentification du message 51
3.1 Un exemple représentatif de MAC, cookies sans état 51
3.2 Exemple de code 54
3.3 Propriétés de sécurité du MAC 56
3.3.1 Falsification des étiquettes d'authentification 56
__3.3.2 Longueur de l'étiquette d'authentification : 57
__3.3.3 Replay Attaque 58
__3.3.4 Vérification périodique de l'étiquette d'authentification 59
3.4 MAC 61 dans le monde réel
__3.4.1 Authentification des messages 61
__3.4.2 Dérivation de la clé 61
__3.4.3 Intégrité des cookies 61
__3.4.4 Table de hachage 62
3.5 MAC 62 en pratique
3.5.1 MAC basé sur le hachage, HMAC 62
__3.5.2 MAC basé sur cSHAKE, KMAC 63
3.6 SHA-2 et attaques à longueur variable 64
Résumé 67
CHAPITRE 4 : Authentification et chiffrement 69
4.1 Qu'est-ce qu'un texte chiffré ? 70
4.2 Chiffrement par blocs AES 71
4.2.1 Niveau de sécurité fourni par AES 72
__4.2.2 Interface AES 73
__4.2.3 À l'intérieur d'AES 74
4.3 Mode Penguin crypté et CBC 75
4.4 Que se passe-t-il si une authentification est requise ? AES-CBC-HMAC 78
4.5 Architecture tout-en-un : Authentification et chiffrement 80
__4.5.1 AEAD 80
__4.5.2 AES-GCM AEAD 82
__4.5.3 ChaCha20-Poly1305 86
4.6 Autres méthodes de chiffrement symétrique 90
__4.6.1 Enroulement des touches 91
4.6.2 Authentification, chiffrement et prévention de l'utilisation abusive des nonces 91
__4.6.3 Chiffrement du disque 91
__4.6.4 Chiffrement de la base de données 92
Résumé 92
CHAPITRE 5 ÉCHANGE DE CLÉS 95
5.1 Qu'est-ce que l'échange de clés ? 96
5.2 Échange de clés DH 99
__5.2.1 Théorie des groupes 99
__5.2.2 Fondation Diffie-Hellman, Problème 103 du logarithme discret
__5.2.3 Norme Diffie-Hellman 105
5.3 Échange de clés ECDH 106
5.3.1 Qu'est-ce qu'une courbe elliptique ? 107
__5.3.2 Fonctionnement de l'échange de clés ECDH 110
__5.3.3 Courbe elliptique Diffie-Hellman Standard 112
5.4 Attaques par petits sous-groupes et autres considérations de sécurité 114
Résumé 117
CHAPITRE 6 Chiffrement asymétrique et hybride 119
6.1 Qu'est-ce que le chiffrement asymétrique ? 120
6.2 Chiffrement asymétrique et hybride pratique 122
6.2.1 Échange et encapsulation des clés 122
__6.2.2 Chiffrement hybride 123
6.3 Cryptographie asymétrique RSA : Le pire et le pire 127
6.3.1 Manuel RSA 127
6.3.2 Pourquoi ne pas utiliser RSA PKCS#1 v1.5 ? 131
6.3.3 Chiffrement asymétrique RSA-OAEP 133
6.4 Chiffrement hybride ECIES 136
Résumé 138
CHAPITRE 7 Signatures et preuves à divulgation nulle de connaissance 139
7.1 Qu'est-ce qu'une signature ? 140
7.1.1 Comment signer et vérifier les signatures en pratique 141
7.1.2 Utilisation principale des signatures : Échange de clés authentifié 142
7.1.3 Cas d'utilisation concret : Infrastructure à clés publiques 143
7.2 ZKP : L’origine des signatures 144
__7.2.1 Protocole d'identification Schnorr : ZKP 145 interactif
7.2.2 Signatures en tant que ZKP non interactives 148
7.3 Algorithme de signature recommandé 149
__7.3.1 Norme non sécurisée, RSA PKCS#1 v1.5 150
7.3.2 Norme améliorée, RSA-PSS 153
__7.3.3 ECDSA 154
__7.3.4 EdDSA 157
7.4 Propriétés subtiles des systèmes de signature 160
__7.4.1 Attaque alternative 160
7.4.2 Malléabilité des signatures 162
Résumé 162
CHAPITRE 8 Aléatoire et secret 165
8.1 Qu'est-ce que le hasard ? 166
8.2 Aléatoire lent ? Utilisez un générateur de nombres pseudo-aléatoires (PRNG) 167
8.3 Garantir l'aléatoire en pratique 171
8.4 Génération de nombres aléatoires et considérations de sécurité 173
8.5 Aléatoire public 175
8.6 Dérivation de clés et HKDF 177
8.7 Gestion des clés et gestion des secrets 181
8.8 Décentralisation de la confiance par la cryptographie à seuil 183
Résumé 186
PARTIE II Protocoles : une recette pour la cryptographie
CHAPITRE 9 TRANSMISSION SÉCURISÉE 189
9.1 Protocoles de transport sécurisés, SSL et TLS 190
__9.1.1 SSL vers TLS 190
__9.1.2 Utilisation pratique de TLS 191
9.2 Fonctionnement du protocole TLS 193
__9.2.1 Poignée de main TLS 194
__9.2.2 Comment TLS 1.3 chiffre les données d'application 207
9.3 État actuel du Web crypté 208
9.4 Autres protocoles de transport 211
9.5 Une alternative moderne à TLS : le framework Noise Protocol 211
__9.5.1 Diverses poignées de main du bruit 212
__9.5.2 Poignée de main de bruit 213
Résumé 214
CHAPITRE 10 CHIFFREMENT DE BOUT EN BOUT 215
10.1 Pourquoi le chiffrement de bout en bout est-il nécessaire ? 216
10.2 La source de confiance que vous ne trouverez nulle part ailleurs 217
10.3 Échec du chiffrement du courriel 219
10.3.1. PGP ? GPG ? Comment ça marche ? 219
10.3.2 Réseau de confiance : Étendre la confiance entre les utilisateurs 222
__10.3.3 Le vrai problème est de trouver la clé 223
10.3.4 Si PGP n'est pas une alternative, quelles sont les solutions possibles ? 224
10.4 Messagerie sécurisée : Chiffrement de bout en bout moderne avec Signal 226
10.4.1 Faites confiance, mais vérifiez. Plus convivial que WOT 227
__10.4.2 Protocole de transmission du signal, X3DH 230
__10.4.3 Protocole post-établissement de liaison pour le signal, double cliquet 233
10.5 Chiffrement de bout en bout actuel 238
Résumé 240
CHAPITRE 11 AUTHENTIFICATION DE L'UTILISATEUR 243
11.1 Examen de la certification 243
11.2 Authentification de l'utilisateur : le chemin vers l'élimination des mots de passe 245
11.2.1 Le maître des mots de passe, SSO et gestionnaire de mots de passe 248
11.2.2 Vous souhaitez éviter la divulgation de votre mot de passe ? Utilisez un échange de clés d’authentification asymétrique. 249
__11.2.3 O TP n'est pas un véritable mot de passe.
Commutation sans mot de passe à l'aide de clés symétriques 253
__11.2.4 Remplacement des mots de passe par des clés asymétriques 257
11.3 Authentification assistée par l'utilisateur : Appairage des appareils avec assistance humaine 260
__11.3.1 Clé pré-partagée 261
__11.3.2 Échange de clés d'authentification par mot de passe symétrique utilisant CPace 263
__11.3.3 Mon système d'échange de clés a-t-il été victime d'une attaque de type MITM ? Consultez la section SAS 264
Résumé 267
CHAPITRE 12 : La « cryptomonnaie » dans « cryptomonnaie » ? 269
12.1 Brève introduction aux algorithmes de consensus BFT 270
__12.1.1 Le problème de la résilience : protocoles distribués pour la structure 270
12.1.2 Décentralisation : résoudre le problème de la confiance 272
__12.1.3 Le problème de l'échelle : réseaux sans autorisation et résistants à la censure 273
12.2 Fonctionnement du Bitcoin 275
__12.2.1 Comment Bitcoin gère les soldes et les transactions des utilisateurs 276
__12.2.2 La mine d'or numérique : miner du BTC 278
__12.2.3 Fork Hell ! Résolution des litiges miniers 281
__12.2.4 Réduction de la taille des blocs à l'aide d'arbres de Merkle 284
12.3 Aperçu des cryptomonnaies 286
__12.3.1 Volatilité 286
__12.3.2 Délai 286
__12.3.3 Taille de la blockchain : 287
__12.3.4 Confidentialité 287
__12.3.5 Efficacité énergétique 288
12.4 DMBFT : Protocole de consensus BFT 288
__12.4.1 Deux propriétés des protocoles de consensus BFT : sécurité et vivacité 288
__12.4.2 Tour 289 du protocole DMBFT
__12.4.3 Quel niveau de malhonnêteté un protocole peut-il tolérer ? 290
__12.4.4 Règles de vote DMBFT 291
12.4.5 Quand une transaction est-elle confirmée ? 292
__12.4.6 L'intuition cachée derrière la sécurité de DMBFM 293
Résumé 295
CHAPITRE 13 Cryptographie matérielle 297
13.1 Modèles d'attaquants en cryptographie moderne 297
13.2 Matériel : le sauveur des environnements non fiables 299
__13.2.1 Cryptographie en boîte blanche 300
__13.2.2 Cartes à puce et éléments de sécurité 300
__13.2.3 HSM 303, Apprécié des banques
__13.2.4.
Grande standardisation des éléments de sécurité, TPM 305
__13.2.5 Informatique sécurisée avec TEE 308
13.3 Quelle solution choisir ? 309
13.4 Cryptographie résistante aux fuites et défenses contre les attaques par canaux auxiliaires 311
__13.4.1 Programmation en temps constant 313
__13.4.2 Masquage et aveuglement 315
__13.4.3 Comment gérer les attaques par failles 316
Résumé 316
CHAPITRE 14 Cryptographie à l'ère de l'ordinateur quantique 319
14.1 Qu'est-ce qu'un ordinateur quantique ? 320
__14.1.1 Exploration de l'infiniment petit, Mécanique quantique 320
__14.1.2 De la naissance des ordinateurs quantiques à la suprématie quantique 323
__14.1.3 Algorithme de Grover et Shor 324
__14.1.4 Cryptographie post-quantique contre les ordinateurs quantiques 326
14.2 Il vous suffit d'une fonction de hachage ! Signatures basées sur le hachage 326
__14.2.1 OTS 327 via Lamport Signature
__14.2.2 WOTS et Petite Clé 329
__14.2.3 Signature multiple via XMSS et SPHINCS+ 330
14.3 Clés et signatures plus courtes grâce à la cryptographie sur réseau 333
__14.3.1 Qu'est-ce qu'un réseau ? 333
__14.3.2 Apprendre de ses erreurs 335
__14.3.3 Échange de clés basé sur un réseau, Kyber 337
__14.3.4 Schéma de signature basé sur un réseau, dilithium 339
14.4 Les ordinateurs quantiques sont-ils une source d'horreur ? 340
Résumé 342
CHAPITRE 15 : Cryptographie de nouvelle génération 345
15.1 MPC 346, plus vous jouez ensemble, mieux c'est
__15.1.1 PSI 347
__15.1.2 MPC 348 à usage général
__15.1.3 Le 350 actuel de MPC
15.2 FHE et l'avenir du cloud chiffré 350
__15.2.1 Exemple de chiffrement RSA et de chiffrement homomorphe 351
__15.2.2 Diverses méthodes de chiffrement homomorphe 351
__15.2.3 La clé du FHE, Amorçage 352
__15.2.4 Système FHE basé sur l'apprentissage par l'erreur 354
15.2.5 Où l'utiliser ? 356
15.3 Usage général ZKP 357
__15.3.1 Fonctionnement des zk-SNARKs 359
__15.3.2 Commit isomorphe 360 qui masque une partie des preuves
__15.3.3 Appariement bilinéaire pour améliorer l'engagement isomorphe 361
__15.3.4 Où est la concision ? 361
__15.3.5 Programme vers polynôme 362
__15.3.6 Le programme est destiné aux ordinateurs.
Ce dont nous avons besoin, c'est d'un circuit arithmétique 363
__15.3.7 Circuit arithmétique R1CS 364
__15.3.8 De R1CS aux polynômes 364
__15.3.9 Calcul du polynôme caché dans l'exposant 365
Résumé 367
CHAPITRE 16 La fin de la cryptographie 369
16.1 La tâche fastidieuse de trouver des primitives ou des protocoles cryptographiques appropriés 370
16.2 Comment utiliser les primitives et protocoles cryptographiques ? Normes et vérification de format 371
16.3 Où se trouvent les bonnes bibliothèques ? 374
16.4 Les développeurs sont-ils l'ennemi ? Mauvaise utilisation de la cryptographie 376
16.5 Sécurité facile à utiliser 377
16.6 La cryptographie n'est pas une île 378
16.7 Responsabilités des praticiens de la cryptographie : Ne testez pas votre propre cryptographie 379
Résumé 381
Réponse à l'exercice 383
Recherche 388
Image détaillée
.jpg)
Dans le livre
Imaginons que la reine Alice doive envoyer une lettre à Sir Bob, qui vit dans un château très éloigné.
La reine Alice demande à son fidèle messager de traverser ces terres périlleuses à cheval pour remettre un précieux message à Sir Bob.
Mais elle ne fait pas entièrement confiance au messager.
(…) Ce dont la reine Alice a besoin, c’est d’un protocole qui imite l’acte de transmettre un message à Sir Bob sans intermédiaire.
Il s'agit d'un problème pratiquement insoluble à moins d'introduire la cryptographie (ou la téléportation).
L'algorithme cryptographique inventé il y a longtemps pour résoudre ce problème est l'algorithme de chiffrement symétrique (également appelé chiffrement).
--- p.5
Ce problème constitue également une vulnérabilité que j'ai découverte à plusieurs reprises lors de mes audits techniques.
Lors de la vérification d'une étiquette d'authentification, la comparaison entre l'étiquette d'authentification reçue et l'étiquette d'authentification calculée doit être effectuée dans un délai constant.
Autrement dit, en supposant que les étiquettes reçues soient de la bonne taille, la comparaison devrait toujours prendre le même temps.
Le temps variable nécessaire pour comparer deux étiquettes d'authentification peut être dû au fait que les deux étiquettes reflètent des moments différents au cours de la comparaison.
Cela permettrait à une attaque de mesurer le temps nécessaire à la vérification, puis de régénérer une étiquette d'authentification valide octet par octet.
Ce type d'attaque est appelé attaque temporelle.
La page suivante explique cela à l'aide d'une métaphore.
Heureusement, les bibliothèques de cryptographie qui implémentent les MAC fournissent également des fonctions pratiques qui permettent de vérifier les étiquettes d'authentification en temps constant.
À titre d’exemple pratique, l’exemple 3.3 montre comment implémenter une comparaison en temps constant des étiquettes d’authentification en Golang.
--- p.59
Tout d'abord, pour chiffrer le message destiné à Alice, nous utilisons un échange de clés basé sur (EC)DH avec la clé publique d'Alice et une paire de clés générée à partir de celle-ci (appelée paire de clés éphémères).
Vous pouvez ensuite utiliser le secret partagé obtenu avec un algorithme de chiffrement symétrique authentifié tel que AES-GCM pour chiffrer un message plus long à envoyer à Alice (Figure 6.19).
Vous pouvez ensuite envoyer la clé publique temporaire et le texte chiffré à Alice.
Alice effectue un échange de clés avec sa propre paire de clés en utilisant la clé publique temporaire.
Vous pouvez ensuite utiliser le résultat pour déchiffrer le texte chiffré et obtenir le message original.
--- p.136
Il existe d'innombrables domaines en dehors de la cryptographie où l'aléatoire est nécessaire.
Même des programmes Unix simples comme ls nécessitent une part d'aléatoire ! Exploiter des failles dans les programmes peut avoir des conséquences fatales ; c'est pourquoi les binaires emploient diverses techniques pour se défendre contre les attaques de bas niveau.
L'une d'elles est l'ASLR (Address Space Layout Randomization), qui randomise la disposition de la mémoire d'un processus à chaque fois qu'il s'exécute, nécessitant des nombres aléatoires.
Un autre exemple est le protocole réseau TCP, qui utilise des nombres aléatoires à chaque création de connexion pour générer une séquence de nombres imprévisible, empêchant ainsi les attaques visant à détourner la connexion.
(…) Le NIST, voulant être différent (comme toujours), appelle son PRNG un générateur de bits aléatoires déterministe (DRBG).
--- pp.167~168
Certains attaquants ont un accès libre à l'appareil, tandis que d'autres disposent d'un temps limité pour exécuter leur attaque.
Imaginons le scénario suivant :
Vous avez laissé votre smartphone ou votre ordinateur portable dans votre chambre d'hôtel, et une femme de chambre « malveillante » est entrée, a ouvert l'appareil, a utilisé des outils bon marché pour modifier le système, puis a remis l'appareil à sa place.
Lorsque vous retournez dans votre chambre, l'appareil est à sa place d'origine et semble intact.
C’est ce qu’on appelle une attaque de type « mauvaise servante » et cela peut être généralisé à de nombreuses situations (par exemple, transporter un appareil dans un bagage enregistré pendant un vol, stocker des clés sensibles dans un centre de données non sécurisé, etc.).
--- p.299
Étant donné que la plupart des algorithmes asymétriques utilisés aujourd'hui reposent sur des logarithmes discrets ou des problèmes de factorisation, l'algorithme de Shor est fatal à la cryptographie asymétrique.
Bien entendu, les logarithmes discrets et la factorisation restent des problèmes mathématiques complexes, et la taille des paramètres de l'algorithme pourrait être augmentée pour renforcer la défense contre les ordinateurs quantiques.
Malheureusement, en 2017, Bernstein et al. ont montré que l'expansion des paramètres, bien qu'efficace, est très peu pratique.
L'étude a estimé qu'il serait nécessaire d'augmenter les paramètres du RSA à 1 téraoctet pour atteindre la résistance quantique.
Des paramètres de cette ampleur sont irréalistes.
La reine Alice demande à son fidèle messager de traverser ces terres périlleuses à cheval pour remettre un précieux message à Sir Bob.
Mais elle ne fait pas entièrement confiance au messager.
(…) Ce dont la reine Alice a besoin, c’est d’un protocole qui imite l’acte de transmettre un message à Sir Bob sans intermédiaire.
Il s'agit d'un problème pratiquement insoluble à moins d'introduire la cryptographie (ou la téléportation).
L'algorithme cryptographique inventé il y a longtemps pour résoudre ce problème est l'algorithme de chiffrement symétrique (également appelé chiffrement).
--- p.5
Ce problème constitue également une vulnérabilité que j'ai découverte à plusieurs reprises lors de mes audits techniques.
Lors de la vérification d'une étiquette d'authentification, la comparaison entre l'étiquette d'authentification reçue et l'étiquette d'authentification calculée doit être effectuée dans un délai constant.
Autrement dit, en supposant que les étiquettes reçues soient de la bonne taille, la comparaison devrait toujours prendre le même temps.
Le temps variable nécessaire pour comparer deux étiquettes d'authentification peut être dû au fait que les deux étiquettes reflètent des moments différents au cours de la comparaison.
Cela permettrait à une attaque de mesurer le temps nécessaire à la vérification, puis de régénérer une étiquette d'authentification valide octet par octet.
Ce type d'attaque est appelé attaque temporelle.
La page suivante explique cela à l'aide d'une métaphore.
Heureusement, les bibliothèques de cryptographie qui implémentent les MAC fournissent également des fonctions pratiques qui permettent de vérifier les étiquettes d'authentification en temps constant.
À titre d’exemple pratique, l’exemple 3.3 montre comment implémenter une comparaison en temps constant des étiquettes d’authentification en Golang.
--- p.59
Tout d'abord, pour chiffrer le message destiné à Alice, nous utilisons un échange de clés basé sur (EC)DH avec la clé publique d'Alice et une paire de clés générée à partir de celle-ci (appelée paire de clés éphémères).
Vous pouvez ensuite utiliser le secret partagé obtenu avec un algorithme de chiffrement symétrique authentifié tel que AES-GCM pour chiffrer un message plus long à envoyer à Alice (Figure 6.19).
Vous pouvez ensuite envoyer la clé publique temporaire et le texte chiffré à Alice.
Alice effectue un échange de clés avec sa propre paire de clés en utilisant la clé publique temporaire.
Vous pouvez ensuite utiliser le résultat pour déchiffrer le texte chiffré et obtenir le message original.
--- p.136
Il existe d'innombrables domaines en dehors de la cryptographie où l'aléatoire est nécessaire.
Même des programmes Unix simples comme ls nécessitent une part d'aléatoire ! Exploiter des failles dans les programmes peut avoir des conséquences fatales ; c'est pourquoi les binaires emploient diverses techniques pour se défendre contre les attaques de bas niveau.
L'une d'elles est l'ASLR (Address Space Layout Randomization), qui randomise la disposition de la mémoire d'un processus à chaque fois qu'il s'exécute, nécessitant des nombres aléatoires.
Un autre exemple est le protocole réseau TCP, qui utilise des nombres aléatoires à chaque création de connexion pour générer une séquence de nombres imprévisible, empêchant ainsi les attaques visant à détourner la connexion.
(…) Le NIST, voulant être différent (comme toujours), appelle son PRNG un générateur de bits aléatoires déterministe (DRBG).
--- pp.167~168
Certains attaquants ont un accès libre à l'appareil, tandis que d'autres disposent d'un temps limité pour exécuter leur attaque.
Imaginons le scénario suivant :
Vous avez laissé votre smartphone ou votre ordinateur portable dans votre chambre d'hôtel, et une femme de chambre « malveillante » est entrée, a ouvert l'appareil, a utilisé des outils bon marché pour modifier le système, puis a remis l'appareil à sa place.
Lorsque vous retournez dans votre chambre, l'appareil est à sa place d'origine et semble intact.
C’est ce qu’on appelle une attaque de type « mauvaise servante » et cela peut être généralisé à de nombreuses situations (par exemple, transporter un appareil dans un bagage enregistré pendant un vol, stocker des clés sensibles dans un centre de données non sécurisé, etc.).
--- p.299
Étant donné que la plupart des algorithmes asymétriques utilisés aujourd'hui reposent sur des logarithmes discrets ou des problèmes de factorisation, l'algorithme de Shor est fatal à la cryptographie asymétrique.
Bien entendu, les logarithmes discrets et la factorisation restent des problèmes mathématiques complexes, et la taille des paramètres de l'algorithme pourrait être augmentée pour renforcer la défense contre les ordinateurs quantiques.
Malheureusement, en 2017, Bernstein et al. ont montré que l'expansion des paramètres, bien qu'efficace, est très peu pratique.
L'étude a estimé qu'il serait nécessaire d'augmenter les paramètres du RSA à 1 téraoctet pour atteindre la résistance quantique.
Des paramètres de cette ampleur sont irréalistes.
--- p.325
Avis de l'éditeur
Le présent et l'avenir de la cryptographie : apprendre par l'image plutôt que par les formules, par les exemples plutôt que par l'histoire, et par les applications plutôt que par la théorie.
La cryptographie est le fondement de la sécurité informatique, notamment des API web, des services utilisateurs et de la blockchain, mais il n'existe pas beaucoup de livres sur le sujet qui méritent d'être lus.
Les livres qui commencent par des récits historiques, comme le chiffrement de César ou le chiffrement de Vigenère, sont ennuyeux.
Quels sont les éléments constitutifs de la cryptographie moderne, quels protocoles sont couramment utilisés, quelles attaques ont eu lieu et quel avenir la cryptographie réserve-t-elle avec l'avènement des ordinateurs quantiques ?
Ce qui intrigue les praticiens, c'est ceci.
Au lieu de s'attarder sur l'histoire de la cryptographie ou les algorithmes anciens, l'auteur remplit le livre d'exemples concrets et à grande échelle d'utilisation actuelle, notamment TLS, le framework Noise Protocol, le protocole Signal, les cryptomonnaies (l'auteur affirme qu'il s'agit du premier livre de cryptographie avec un chapitre entier consacré aux cryptomonnaies !), les HSM et la cryptographie à seuil.
Bien qu'il n'y ait pas de formules, nous avons essayé de rendre l'explication facile à comprendre en insérant de nombreuses images, notamment celles d'Alice et de Bob, qui nous sont familiers.
L'auteur lui-même ignorait comment les mathématiques des courbes elliptiques apprises à l'université étaient appliquées concrètement aux algorithmes, et de nombreux développeurs commettent des erreurs d'implémentation à l'origine de failles de sécurité. C'est pourquoi, pour chaque chapitre, il a inclus des exemples de code écrits dans différents langages tels que Java, JavaScript, Go et Rust, utilisant des bibliothèques de qualité.
Des schémas détaillés et des études de cas aident les développeurs, les administrateurs système et les spécialistes de la sécurité à apprendre les concepts cryptographiques tels que l'authentification, le chiffrement et la confidentialité, ainsi que les outils, les frameworks et les protocoles nécessaires pour garder une longueur d'avance sur les attaquants.
Il s'agit du livre de cryptographie le plus pratique et le plus moderne, couvrant tout, des bases comme les fonctions de hachage et les signatures aux protocoles cryptographiques comme HTTPS et la messagerie sécurisée, en passant par les technologies de pointe comme la cryptographie post-quantique (cryptographie résistante à l'informatique quantique) et les cryptomonnaies.
Contenu principal
Bonnes pratiques en matière de cryptographie
• Illustrations et explications des algorithmes cryptographiques
• Mise en œuvre des signatures numériques et des preuves à divulgation nulle de connaissance
• Solutions matérielles pour se préparer aux attaques, etc.
Comment identifier et corriger les mauvaises pratiques
• Sélectionner l’outil cryptographique approprié pour chaque problème
La cryptographie est le fondement de la sécurité informatique, notamment des API web, des services utilisateurs et de la blockchain, mais il n'existe pas beaucoup de livres sur le sujet qui méritent d'être lus.
Les livres qui commencent par des récits historiques, comme le chiffrement de César ou le chiffrement de Vigenère, sont ennuyeux.
Quels sont les éléments constitutifs de la cryptographie moderne, quels protocoles sont couramment utilisés, quelles attaques ont eu lieu et quel avenir la cryptographie réserve-t-elle avec l'avènement des ordinateurs quantiques ?
Ce qui intrigue les praticiens, c'est ceci.
Au lieu de s'attarder sur l'histoire de la cryptographie ou les algorithmes anciens, l'auteur remplit le livre d'exemples concrets et à grande échelle d'utilisation actuelle, notamment TLS, le framework Noise Protocol, le protocole Signal, les cryptomonnaies (l'auteur affirme qu'il s'agit du premier livre de cryptographie avec un chapitre entier consacré aux cryptomonnaies !), les HSM et la cryptographie à seuil.
Bien qu'il n'y ait pas de formules, nous avons essayé de rendre l'explication facile à comprendre en insérant de nombreuses images, notamment celles d'Alice et de Bob, qui nous sont familiers.
L'auteur lui-même ignorait comment les mathématiques des courbes elliptiques apprises à l'université étaient appliquées concrètement aux algorithmes, et de nombreux développeurs commettent des erreurs d'implémentation à l'origine de failles de sécurité. C'est pourquoi, pour chaque chapitre, il a inclus des exemples de code écrits dans différents langages tels que Java, JavaScript, Go et Rust, utilisant des bibliothèques de qualité.
Des schémas détaillés et des études de cas aident les développeurs, les administrateurs système et les spécialistes de la sécurité à apprendre les concepts cryptographiques tels que l'authentification, le chiffrement et la confidentialité, ainsi que les outils, les frameworks et les protocoles nécessaires pour garder une longueur d'avance sur les attaquants.
Il s'agit du livre de cryptographie le plus pratique et le plus moderne, couvrant tout, des bases comme les fonctions de hachage et les signatures aux protocoles cryptographiques comme HTTPS et la messagerie sécurisée, en passant par les technologies de pointe comme la cryptographie post-quantique (cryptographie résistante à l'informatique quantique) et les cryptomonnaies.
Contenu principal
Bonnes pratiques en matière de cryptographie
• Illustrations et explications des algorithmes cryptographiques
• Mise en œuvre des signatures numériques et des preuves à divulgation nulle de connaissance
• Solutions matérielles pour se préparer aux attaques, etc.
Comment identifier et corriger les mauvaises pratiques
• Sélectionner l’outil cryptographique approprié pour chaque problème
SPÉCIFICATIONS DES PRODUITS
- Date d'émission : 20 janvier 2023
Nombre de pages, poids, dimensions : 424 pages | 806 g | 188 × 245 × 22 mm
- ISBN13 : 9791192469539
- ISBN10 : 1192469534
Vous aimerez peut-être aussi
카테고리
Langue coréenne
Langue coréenne