Quand l’implémentation parle : temps, cache, fautes et oracles
- Accueil
- Parcours
- cryptographie
- Quand l’implémentation parle : temps, cache, fautes et oracles
Quand l’implémentation parle : temps, cache, fautes et oracles
Section intitulée « Quand l’implémentation parle : temps, cache, fautes et oracles »Montrer que la sécurité dépend aussi de ce que le code, le matériel et les erreurs révèlent pendant l’exécution.
Objectif du chapitre
Section intitulée « Objectif du chapitre »Montrer que la sécurité dépend aussi de ce que le code, le matériel et les erreurs révèlent pendant l’exécution.
Notions à couvrir
Section intitulée « Notions à couvrir »- Timing attacks, comparaison de tags et branches conditionnelles
- Cache attacks, tables de lookup, microarchitecture et cloud multi-tenant
- Consommation, émissions électromagnétiques et matériel embarqué
- Fault attacks, injection de faute, RSA-CRT et Bellcore
- Oracles d’erreur, padding, déchiffrement observable et logs
- Protections: temps constant, blinding, implémentations vérifiées, matériel sécurisé, erreurs uniformes
Sous-sections
Section intitulée « Sous-sections »L’algorithme n’est pas seul [Intermédiaire]
Section intitulée « L’algorithme n’est pas seul [Intermédiaire] »- Temps
- Cache
- Énergie
- Fautes
- Messages d’erreur
- Logs
Fuites temporelles [Intermédiaire]
Section intitulée « Fuites temporelles [Intermédiaire] »- Comparaison
- Branches
- Temps réseau
- Bruit
- Exploitation statistique
Microarchitecture et matériel [Expert]
Section intitulée « Microarchitecture et matériel [Expert] »- Tables AES
- Cache
- Multi-tenant
- Power analysis
- EM
- Secure element
Fautes et oracles [Expert]
Section intitulée « Fautes et oracles [Expert] »- RSA-CRT
- Padding oracle
- Erreur distinguable
- Blinding
- Vérification redondante
Exemples et ateliers
Section intitulée « Exemples et ateliers »- Comparer == et comparaison constante
- Mesurer un oracle d’erreur sur un déchiffrement jouet
- Corriger un padding oracle
- Lister les logs dangereux d’une API crypto
Pièges classiques
Section intitulée « Pièges classiques »- Optimiser du code crypto naïvement
- Logger les clés ou erreurs détaillées
- Compiler sans vérifier les garanties constant-time
- Croire que le réseau masque tout timing
À ne pas confondre
Section intitulée « À ne pas confondre »- Bug fonctionnel et fuite auxiliaire
- Erreur uniforme et silence total
- HSM et absence de risque
- Constante algorithmique et temps constant implémenté
Points à vérifier
Section intitulée « Points à vérifier »à vérifier: garanties constant-time des bibliothèques et compilateurs retenus.