Cours de 4TC(A)-CSC : Cryptographie et Sécurité des Communications
François Lesueur (francois.lesueur@insa-lyon.fr, @FLesueur)
Intro | Enjeux | Bases | PKI | Protocoles | Biblio
Ce document décrit le travail à réaliser pendant les séances en autonomie. Pour certaines séances, des ouvertures sont proposées, elles sont à lire sans trop entrer dans les détails, comme des éclairages sur le sujet. Ces ouvertures sont soit obligatoires (doivent donc être consultées), soit facultatives (j’attends que vous lisiez au moins une facultative sur l’ensemble de la matière).
Introduction à la crypto
Pour cette séance, vous devez étudier l’histoire de la cryptographie et de son utilisation. Nous nous baserons pour cela d’abord sur l’article de Wikipedia qui propose un bon historique : WikipediaFR (environ 1 heure).
Ouverture obligatoire : Public Key Cryptography’s Impact on Society: How Diffie and Hellman Changed the World, Paul C. van Oorschot. La lecture n’a pas nécessairement à être exhaustive (selon votre aise en anglais, notamment), faîtes une lecture rapide du plan et des thèmes puis approfondissez les parties de votre choix. (Sur cette lecture, merci de me faire un retour par MP Discord mentionnant si cet article vous a intéressé, s’il est abordable en introduction, le temps que vous y avez consacré et la proportion approximative que vous en avez lu)
Enjeux éthiques
Pour cette séance, nous allons nous intéresser aux enjeux de société liés à la cryptographie. Pour cela, vous devez consacrer le temps de préparation à lire des (parties de) documents suivants (si possible pas tous les mêmes, afin de diversifier vos apports lors de la séance de TD qui suivra) :
- WikipediaEN : Crypto wars
- Listen up, FBI: Juniper code shows the problem with backdoors, Fahmida Y. Rashid, InfoWorld
- The Risks of “Responsible Encryption”, Riana Pfefferkorn
- Keys Under Doormats: Mandating insecurity by requiring government access to all data and communications,Abelson, Harold; Anderson, Ross; Bellovin, Steven M.; Benaloh, Josh; Blaze, Matt; Diffie, Whitfield; Gilmore, John; Green, Matthew; Landau, Susan; Neumann, Peter G.; Rivest, Ronald L.; Schiller, Jeffrey I.; Schneier, Bruce; Specter, Michael; Weitzner, Daniel J.
- The Moral Character of Cryptographic Work, Phillip Rogaway
- Decrypting the encryption debate
- Conférence de clôture du SSTIC 2018, Patrick Pailloux, Directeur technique de la DGSE (vidéo, 1h)
- Tous connectés, tous responsables, Guillaume Poupard, Directeur général de l’ANSSI
- Sur un mécanisme de séquestre proposé en 2018 par Ray Ozzie, lire la proposition, ainsi qu’au moins une critique parmi celles de Robert Graham, Matthew Green et Steven M. Bellovin, Matt Blaze, Dan Boneh, Susan Landau, and Ronald L. Rivest.
Cette liste n’est bien sûr pas exhaustive, toutes les suggestions d’ajout sont les bienvenues.
Cette partie mènera à une discussion/débat lors de la séance de TD.
Bases de la crypto
Vous devez lire le cours de Ghislaine Labouret (jusqu’à la page 27/32). Vous y verrez les notions de cryptographie symétrique (ex AES), asymétrique (ex RSA), hash, chiffrement, signature ainsi que le problème de la distribution des clés. Ce cours est intéressant car bien construit mais assez ancien (2001). Les notions, principes et difficultés n’ont pas changé depuis, les algorithmes et tailles de clés si : cela vous donne une idée de l’évolution à attendre pendant les 10 prochaines années (hors découverte majeure). À vous de chercher quels sont les algorithmes souhaitables aujourd’hui. Pour les tailles de clés, le site Key Length est très pratique.
La suite du travail est d’étudier le fonctionnement de RSA (sans entrer, pour l’instant, dans les fondements mathématiques), par exemple sur Wikipedia. Prêtez une attention particulière à la génération des clés, aux mécanismes de chiffrement et déchiffrement.
Enfin, le programme Bullrun donne un bon aperçu des forces et faiblesses de la cryptographie moderne : la partie mathématique est plutôt sûre, les attaques se concentrent sur l’usage (standardisation), le déploiement, l’implémentation, etc.
Ouverture (obligatoire): La sélection de l’AES
Ouverture (facultative):
- L’histoire de Dual_EC_DRBG
- Listen up, FBI: Juniper code shows the problem with backdoors, Fahmida Y. Rashid, InfoWorld
- Cryptographic competitions, Daniel J. Bernstein
Cette section sera suivie d’une heure de questions-réponses (vous devez venir avec une question sur cette partie) puis conclue par le TD2 JDR.
Infrastructures à clés publiques (PKI)
Le rôle d’une PKI est de lier une clé publique à une identité (typiquement, à une chaîne de caractères intelligible comme une URL www.acme.org
ou une adresse mail brice@acme.org
). L’obtention de clés publiques est un service orthogonal au service de sécurité rendu par la cryptographie (ie, un même service, le mail chiffré et signé par exemple, peut-être rendu avec une approche type CA avec S/MIME ou une approche toile de confiance avec PGP).
Vous devez lire la page anglaise de Wikipedia sur ce sujet, qui présente différentes formes de PKI (autorités de certifications, toile de confiance, SPKI, blockchain). Attention, la page française n’est pas assez détaillée.
Vous devez détailler chacune des différentes formes, avec une attention particulière pour les CA et le Web of trust. La PKI DANE/TLSA est très bien décrite et positionnée dans cet article. Vous devez enfin lire les Criticisms de la page principale (et les détails de PKI security issues with X.509, Breach of Comodo CA, Breach of Diginotar).
Pour comprendre DANE/TLSA qui repose sur DNSSEC, vous devrez peut-être vous rafraichir la mémoire sur le fonctionnement et les différents acteurs du système DNS (typiquement, notions de registry, registrar, gestion d’une zone et mécanisme de résolution récursif). Ces points ont normalement déjà été vus en TC mais vous pouvez par exemple lire Sebsauvage jusque “Dans ce cas, ils sont à la fois registry et registrar.”, Bortzmeyer sections “Le protocole DNS” et “Gouvernance” et/ou d’autres ressources équivalentes.
Ouvertures (facultatives) :
- Experiences Deploying Multi-Vantage-Point Domain Validation at Let’s Encrypt, Henry Birge-Lee, Liang Wang, Daniel McCarney, Roland Shoemaker, Jennifer Rexford and Prateek Mittal
- SSL And The Future Of Authenticity, Moxie Marlinspike (aka Mr. Signal), ainsi que la vidéo associée
- Quantifying Untrusted Symantec Certificates, Arkadiy Tetelman
Protocoles cryptographiques
Cette partie ne contient pas de travail personnel (uniquement le CM3 et le TP1). À la suite de ces séances, voici une liste d’ouvertures facultatives :
- Certificate Transparency: a bird’s-eye view, Emily M. Stark
- The Security Impact of HTTPS Interception, Zakir Durumeric et al.
- Annotated Bibliography on Dual-Use Technologies, Siena Anstis, Sharly Chan, Adam Senft, and Ron Deibert
- SSL/TLS and PKI History
Bibliographie
Livres :
- Secure communication principles, UKNCSC
- The Cyber Security Body of Knowledge, en particulier le chapitre 10 dédié à la cryptographie
- Histoire des codes secrets : De l’Égypte des Pharaons à l’ordinateur quantique, Simon Singh
- Architectures PKI et communications sécurisées, DUMAS Jean-Guillaume, LAFOURCADE Pascal, REDON Patrick
- Serious Cryptography, Jean-Philippe Aumasson
Films :
- Mr Robot
- The Imitation Game
- Citizenfour
Ce(tte) œuvre est mise à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 2.0 France.