62
ecurit´ e des impl´ ementations pour la cryptographie Partie 2 : Architecture produit et APIs de s´ ecurit´ e Benoˆ ıt G´ erard 24 novembre 2020

S ecurit e des impl ementations pour la cryptographiepeople.irisa.fr/Benoit.Gerard/data/SIMP_cours2.pdf · 2020. 1. 11. · Module cryptographique Sous-module TEMPS Besoins I cryptop

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: S ecurit e des impl ementations pour la cryptographiepeople.irisa.fr/Benoit.Gerard/data/SIMP_cours2.pdf · 2020. 1. 11. · Module cryptographique Sous-module TEMPS Besoins I cryptop

Securite des implementations pour lacryptographie

Partie 2 : Architecture produit et APIs de securite

Benoıt Gerard24 novembre 2020

Page 2: S ecurit e des impl ementations pour la cryptographiepeople.irisa.fr/Benoit.Gerard/data/SIMP_cours2.pdf · 2020. 1. 11. · Module cryptographique Sous-module TEMPS Besoins I cryptop

Plan du cours

Etape 1

Definition du besoin et de l’architecture au niveau systeme.

Etape 2

Definition de l’interface du produit : API exposee au terminal.

Etape 3

Implantation d’une version resistante aux attaques non-crypto.

Etape 4

Implantation d’algorithmes crypto. resistant aux attaques distantes.

Etape 5

Implantation d’algorithmes crypto. resistant aux attaques locales.

B. Gerard Partie 2 : Architecture produit et APIs de securite 2 / 40

Page 3: S ecurit e des impl ementations pour la cryptographiepeople.irisa.fr/Benoit.Gerard/data/SIMP_cours2.pdf · 2020. 1. 11. · Module cryptographique Sous-module TEMPS Besoins I cryptop

Sommaire de la session

Vue globale

Architecture produitModule cryptographiqueSecurite locale

API de securitePrincipe et techniquesGestion des clefsAPI de securite en pratique

B. Gerard Partie 2 : Architecture produit et APIs de securite 2 / 40

Page 4: S ecurit e des impl ementations pour la cryptographiepeople.irisa.fr/Benoit.Gerard/data/SIMP_cours2.pdf · 2020. 1. 11. · Module cryptographique Sous-module TEMPS Besoins I cryptop

Plan

Vue globale

Architecture produitModule cryptographiqueSecurite locale

API de securitePrincipe et techniquesGestion des clefsAPI de securite en pratique

B. Gerard Partie 2 : Architecture produit et APIs de securite 2 / 40

Page 5: S ecurit e des impl ementations pour la cryptographiepeople.irisa.fr/Benoit.Gerard/data/SIMP_cours2.pdf · 2020. 1. 11. · Module cryptographique Sous-module TEMPS Besoins I cryptop

Architecture produitDeux architectures classiques

CRYPTOAPPL.

SIM/HSMTelephone

Cryptographie en mode ressource.

CRYPTOAPPL. APPL.

ChiffreurIntranet WEB

Cryptographie en mode coupure.

B. Gerard Partie 2 : Architecture produit et APIs de securite 3 / 40

Page 6: S ecurit e des impl ementations pour la cryptographiepeople.irisa.fr/Benoit.Gerard/data/SIMP_cours2.pdf · 2020. 1. 11. · Module cryptographique Sous-module TEMPS Besoins I cryptop

Architecture produitDeux architectures classiques

CRYPTOAPPL.

SIM/HSMTelephone

Cryptographie en mode ressource.

CRYPTOAPPL. APPL.

ChiffreurIntranet WEB

Cryptographie en mode coupure.

B. Gerard Partie 2 : Architecture produit et APIs de securite 3 / 40

Page 7: S ecurit e des impl ementations pour la cryptographiepeople.irisa.fr/Benoit.Gerard/data/SIMP_cours2.pdf · 2020. 1. 11. · Module cryptographique Sous-module TEMPS Besoins I cryptop

Architecture produitDeux architectures classiques

CRYPTOAPPL.

SIM/HSMTelephone

Cryptographie en mode ressource.

CRYPTOAPPL. APPL.

ChiffreurIntranet WEB

Cryptographie en mode coupure.

B. Gerard Partie 2 : Architecture produit et APIs de securite 3 / 40

Page 8: S ecurit e des impl ementations pour la cryptographiepeople.irisa.fr/Benoit.Gerard/data/SIMP_cours2.pdf · 2020. 1. 11. · Module cryptographique Sous-module TEMPS Besoins I cryptop

Architecture produitDes materiels varies

Differentes memoires.

Differents types d’unite de calcul :

I processeur,

I micro-controlleur,

I FPGA (Field Programmable Gate Array),

I FPGA avec micro-controlleur integre,

I ASIC (Application-Specific Integrated Circuit).

Un module peut etre compose de plusieurs types (e.g. processeur avecaccelerateur FPGA).

Qui fait quoi, qui parle a qui ? Comment ? Qui voit quoi ?

B. Gerard Partie 2 : Architecture produit et APIs de securite 4 / 40

Page 9: S ecurit e des impl ementations pour la cryptographiepeople.irisa.fr/Benoit.Gerard/data/SIMP_cours2.pdf · 2020. 1. 11. · Module cryptographique Sous-module TEMPS Besoins I cryptop

Architecture produitExemples de contraintes

Evidemment

Taille, temps d’execution, debit, cout.

I Retro-compatibilite.

I Faible bande passante.

I Communications avec les autres elements sporadiques (et nonmaıtrisees).

I Puissance ou energie (electrique) limitee.

I Conditions climatiques extremes.

I Rayonnements ionisants (espace).

I . . .

B. Gerard Partie 2 : Architecture produit et APIs de securite 5 / 40

Page 10: S ecurit e des impl ementations pour la cryptographiepeople.irisa.fr/Benoit.Gerard/data/SIMP_cours2.pdf · 2020. 1. 11. · Module cryptographique Sous-module TEMPS Besoins I cryptop

Plan

Vue globale

Architecture produitModule cryptographiqueSecurite locale

API de securitePrincipe et techniquesGestion des clefsAPI de securite en pratique

B. Gerard Partie 2 : Architecture produit et APIs de securite 5 / 40

Page 11: S ecurit e des impl ementations pour la cryptographiepeople.irisa.fr/Benoit.Gerard/data/SIMP_cours2.pdf · 2020. 1. 11. · Module cryptographique Sous-module TEMPS Besoins I cryptop

Module cryptographiqueVue generale

I/O

SEQUENCEUR

ASYM SYM ALEATEMPSMEM

ROUGEMEM

NOIRE

B. Gerard Partie 2 : Architecture produit et APIs de securite 6 / 40

Page 12: S ecurit e des impl ementations pour la cryptographiepeople.irisa.fr/Benoit.Gerard/data/SIMP_cours2.pdf · 2020. 1. 11. · Module cryptographique Sous-module TEMPS Besoins I cryptop

Module cryptographiqueSous-module SYM

Briques cryptographiques

I Hachage

I Chiffrement symetriques

I Modes d’operation

I MAC

Implantations

I Bloc materiel total

I Acceleration materielle (e.g. instructions AES-NI)

I Implementations logicielles

B. Gerard Partie 2 : Architecture produit et APIs de securite 7 / 40

Page 13: S ecurit e des impl ementations pour la cryptographiepeople.irisa.fr/Benoit.Gerard/data/SIMP_cours2.pdf · 2020. 1. 11. · Module cryptographique Sous-module TEMPS Besoins I cryptop

Module cryptographiqueSous-module ASYM

Briques cryptographiques

I Signature

I Chiffrement

I Authentification

I Crypto. basee sur l’identitee

I Chiffrement homomorphe

Implantations

I Bloc materiel seulement (rare)

I Accelerateur de calculs arithmetiques

I Implementations logicielles

B. Gerard Partie 2 : Architecture produit et APIs de securite 8 / 40

Page 14: S ecurit e des impl ementations pour la cryptographiepeople.irisa.fr/Benoit.Gerard/data/SIMP_cours2.pdf · 2020. 1. 11. · Module cryptographique Sous-module TEMPS Besoins I cryptop

Module cryptographiqueSous-module ALEA

Generation d’alea

I Source d’entropieI physique (e.g. anneaux d’oscillateurs)I autre (e.g. mouvements de souris)

I Pseudo-aleaI primitives cryptographiques (e.g. hachage)I *FSR (e.g. Mersenne twister)

Test de l’alea

I Caracterisation et tests hors ligne

I Tests en ligne

B. Gerard Partie 2 : Architecture produit et APIs de securite 9 / 40

Page 15: S ecurit e des impl ementations pour la cryptographiepeople.irisa.fr/Benoit.Gerard/data/SIMP_cours2.pdf · 2020. 1. 11. · Module cryptographique Sous-module TEMPS Besoins I cryptop

Module cryptographiqueSous-module TEMPS

Besoins

I cryptoperiode

I validite de certificat

I protocoles de type distance-bounding

Heure de securite

I pas forement disponible selon la plateforme ciblee,

I doit etre coherente avec les autres elements du systeme.

Adapter les solutions cryptographiques a la technologie disponible.Il est preferable d’y avoir pense lors de la conception au niveau systeme.

B. Gerard Partie 2 : Architecture produit et APIs de securite 10 / 40

Page 16: S ecurit e des impl ementations pour la cryptographiepeople.irisa.fr/Benoit.Gerard/data/SIMP_cours2.pdf · 2020. 1. 11. · Module cryptographique Sous-module TEMPS Besoins I cryptop

Module cryptographiqueSous-module MEM

Besoins

I memoire de travail (volatile)

I memoire specifique durcie (volatile ou non)

I memoire executable (volatile ou non)

I memoire de stockage (non volatile)

Technologies

I volatiles (RAM)

I persistantes (ROM,PROM,EEPROM,NVRAM,FLASH . . .)

I durcies (scrambling, effacement total . . .)

Attention aux problematiques d’effacement !

B. Gerard Partie 2 : Architecture produit et APIs de securite 11 / 40

Page 17: S ecurit e des impl ementations pour la cryptographiepeople.irisa.fr/Benoit.Gerard/data/SIMP_cours2.pdf · 2020. 1. 11. · Module cryptographique Sous-module TEMPS Besoins I cryptop

Module cryptographiqueAutres sous-modules

I Interface utilisateurI e.g. clavier sur carte a puce

I PUF (Physical Unclonable Function)I pour generation de clef ou d’alea

I Cryptographie boıte blancheI stockage de clef dans le code

I Fusibles (OTP pour One-Time Programmable)I pour stockage, cycle de vie

B. Gerard Partie 2 : Architecture produit et APIs de securite 12 / 40

Page 18: S ecurit e des impl ementations pour la cryptographiepeople.irisa.fr/Benoit.Gerard/data/SIMP_cours2.pdf · 2020. 1. 11. · Module cryptographique Sous-module TEMPS Besoins I cryptop

Plan

Vue globale

Architecture produitModule cryptographiqueSecurite locale

API de securitePrincipe et techniquesGestion des clefsAPI de securite en pratique

B. Gerard Partie 2 : Architecture produit et APIs de securite 12 / 40

Page 19: S ecurit e des impl ementations pour la cryptographiepeople.irisa.fr/Benoit.Gerard/data/SIMP_cours2.pdf · 2020. 1. 11. · Module cryptographique Sous-module TEMPS Besoins I cryptop

Securite localeConcept

Besoin de securite

I Proteger les donnees

I Proteger les secrets industriels

I Empecher le piegeage

Deux arborescences de clefs

1. Clefs utilisees dans les services cryptographiquesI ce pour quoi le systeme est mis en place

2. Clefs utilisees pour la securite localeI protection du secret industrielI garantie que les services sont bien mis en oeuvre

B. Gerard Partie 2 : Architecture produit et APIs de securite 13 / 40

Page 20: S ecurit e des impl ementations pour la cryptographiepeople.irisa.fr/Benoit.Gerard/data/SIMP_cours2.pdf · 2020. 1. 11. · Module cryptographique Sous-module TEMPS Besoins I cryptop

Securite localeLe boot securise

Menace

Piegeage du produit

I modifications des fonctionnalites du materiel

I execution de code malicieux

Principe

1. Demarrage d’un petit coeur confiance

2. Lancement des autres modules par le coeur apres verification

Exemple

Chargement de bitstream d’un FPGA avec chiffrement et authentification.

B. Gerard Partie 2 : Architecture produit et APIs de securite 14 / 40

Page 21: S ecurit e des impl ementations pour la cryptographiepeople.irisa.fr/Benoit.Gerard/data/SIMP_cours2.pdf · 2020. 1. 11. · Module cryptographique Sous-module TEMPS Besoins I cryptop

Securite localeExemple de la memoire externe

Memoire persistante non disponible en interne ⇒ externe (donc vulnerable)=⇒ protection des secrets avant stockage.

Protection

I ConfidentialiteI Integrite

I integrite temporelle,I integrite spatiale.

Alors d’ou proviennent les secrets de ces protections ?I stockes en dur dans le code −→ securite de type obfuscationI de l’exterieur −→ securite cryptographique

B. Gerard Partie 2 : Architecture produit et APIs de securite 15 / 40

Page 22: S ecurit e des impl ementations pour la cryptographiepeople.irisa.fr/Benoit.Gerard/data/SIMP_cours2.pdf · 2020. 1. 11. · Module cryptographique Sous-module TEMPS Besoins I cryptop

Securite localeIntegrites : quelles solutions ?

Integrite temporelle

I Date comprise dans le bloc integre.

I Ajout d’un compteur anti-rejeu.

Integrite spatiale

I Integration de l’adresse memoire dans le calcul du motif d’integrite.

I Integrite par blocs de taille a determiner (en fonctions descontraintes).

I Utilisation d’arbres de Merkle pour reduire la memoire necessaire.

B. Gerard Partie 2 : Architecture produit et APIs de securite 16 / 40

Page 23: S ecurit e des impl ementations pour la cryptographiepeople.irisa.fr/Benoit.Gerard/data/SIMP_cours2.pdf · 2020. 1. 11. · Module cryptographique Sous-module TEMPS Besoins I cryptop

Plan

Vue globale

Architecture produitModule cryptographiqueSecurite locale

API de securitePrincipe et techniquesGestion des clefsAPI de securite en pratique

B. Gerard Partie 2 : Architecture produit et APIs de securite 16 / 40

Page 24: S ecurit e des impl ementations pour la cryptographiepeople.irisa.fr/Benoit.Gerard/data/SIMP_cours2.pdf · 2020. 1. 11. · Module cryptographique Sous-module TEMPS Besoins I cryptop

Principe et techniquesMotivation

I On a un boıtier avec des secrets.

I On veut les utiliserI sans les compromettre i.e.

I les secrets restent secrets → confidentialiteI les secrets ne sont pas alteres. → integrite

Analogie bancaire

On veut un coffre fort !

infrastructure + regles d’acces

politique de securite

B. Gerard Partie 2 : Architecture produit et APIs de securite 17 / 40

Page 25: S ecurit e des impl ementations pour la cryptographiepeople.irisa.fr/Benoit.Gerard/data/SIMP_cours2.pdf · 2020. 1. 11. · Module cryptographique Sous-module TEMPS Besoins I cryptop

Principe et techniquesDefinition

API de securite

Interface entre une zone securisee et le reste du monde.Elle doit garantir la validite d’une ou plusieurs proprietes de securite pourtoute suite d’appels a ses fonctions.

API

SYM

MEM

ASYM

ALEA

CLES

SEC

APIRequetes

B. Gerard Partie 2 : Architecture produit et APIs de securite 18 / 40

Page 26: S ecurit e des impl ementations pour la cryptographiepeople.irisa.fr/Benoit.Gerard/data/SIMP_cours2.pdf · 2020. 1. 11. · Module cryptographique Sous-module TEMPS Besoins I cryptop

Principe et techniquesProblematiques

Propriete de securite classique

Un attaquant ne peut connaıtre que les secrets d’utilisateurs qu’il acorrompu.

Contraintes :

I besoin de standards flexibles,

I garantie des proprietes de securite.

Probleme

Plus de flexibilite ⇒ plus de difficultes a garantir la securite.

Exemple de PKCS#11

API de securite avec 70 fonctions (350 pages et 6 versions).

B. Gerard Partie 2 : Architecture produit et APIs de securite 19 / 40

Page 27: S ecurit e des impl ementations pour la cryptographiepeople.irisa.fr/Benoit.Gerard/data/SIMP_cours2.pdf · 2020. 1. 11. · Module cryptographique Sous-module TEMPS Besoins I cryptop

Principe et techniquesPolitique de securite

Une politique de securite pour une application cryptographique c’est

I des periodes de validite des certificats.

I la definition des droits de l’administrateur.

I la definition des droits des utilisateurs.I des regles de manipulation des secrets :

I impossible de supprimer le secret racine,I possibilite d’exporter certains secrets.I . . .

Tout ceci en fonction

1. de l’instant,

2. du type de secret,

3. de l’identite de l’utilisateur.

B. Gerard Partie 2 : Architecture produit et APIs de securite 20 / 40

Page 28: S ecurit e des impl ementations pour la cryptographiepeople.irisa.fr/Benoit.Gerard/data/SIMP_cours2.pdf · 2020. 1. 11. · Module cryptographique Sous-module TEMPS Besoins I cryptop

Principe et techniquesCycles de vie

Plusieurs cycles (pouvant etre independants)

I cycle de vie du systeme

I cycle de vie d’un element (e.g. boıtier)

I cycle de vie de l’API

Changement de foyer d’un boıtier ⇒ RAZ du cycle de l’API.Renouvellement d’une boıtier ⇒ RAZ du cycle de l’element.

En general

Contient au moins les etats :

1. Initialisation/Personnalisation (e.g. injection donnees personelles)

2. Utilisation

3. Fin de vie

B. Gerard Partie 2 : Architecture produit et APIs de securite 21 / 40

Page 29: S ecurit e des impl ementations pour la cryptographiepeople.irisa.fr/Benoit.Gerard/data/SIMP_cours2.pdf · 2020. 1. 11. · Module cryptographique Sous-module TEMPS Besoins I cryptop

Principe et techniquesRoles des etats

A chaque etat sa liste d’actions autorisees.

S1start

S2

S3S4

Sf

linkToOwner

setSecret

killlock

unlock

kill

I Insertion des donnees biometriquesseulement en S1.

I La generation/injection du secret racinene peut avoir lieu qu’en S2.

I Utilisation des services uniquement dansl’etat S3.

I Dans l’etat S4 on peut uniquementdeverouiller la carte.

I . . .

B. Gerard Partie 2 : Architecture produit et APIs de securite 22 / 40

Page 30: S ecurit e des impl ementations pour la cryptographiepeople.irisa.fr/Benoit.Gerard/data/SIMP_cours2.pdf · 2020. 1. 11. · Module cryptographique Sous-module TEMPS Besoins I cryptop

Principe et techniquesMachines a etats et sequenceurs

Le sequenceur

I recoit les requetes,

I applique les regles du cycle de vie de l’API,I applique les regles de sequencement des sous-etats,

I debut/suite/fin du hachage,I authentification avant un echange de clef DH,I confirmation de l’echange de clef avant utilisation de celle-ci,I . . .

Partie de l’implementation tres critique et potentiellement complexe :

I il faut faire au plus simple,

I et etre rigoureux/exhaustif.

Essentiel pour garantir que l’on se place bien dans le modele des preuvescryptographiques (de protocoles ou autres).

B. Gerard Partie 2 : Architecture produit et APIs de securite 23 / 40

Page 31: S ecurit e des impl ementations pour la cryptographiepeople.irisa.fr/Benoit.Gerard/data/SIMP_cours2.pdf · 2020. 1. 11. · Module cryptographique Sous-module TEMPS Besoins I cryptop

Principe et techniquesObjets

Les donnees utilisateurs a proteger sont :

I des clefs,

I des donnees sensibles.

Mais on a aussi les clefs et certificats du systeme.

On a donc des donnees

I de sensibilites 6=,

I de tailles 6=,

I ayant des periodes de validite 6=,

I pour des usages 6=.

Differents types/structures pour differents objets contenantla valeur utile et des attributs.

B. Gerard Partie 2 : Architecture produit et APIs de securite 24 / 40

Page 32: S ecurit e des impl ementations pour la cryptographiepeople.irisa.fr/Benoit.Gerard/data/SIMP_cours2.pdf · 2020. 1. 11. · Module cryptographique Sous-module TEMPS Besoins I cryptop

Principe et techniquesAttributs

Les attributs permettent de formaliser la politique de securite.

Cas multi-utilisateurs

Des attributs owner et/ou group permettent de donner des droits quanta l’usage d’une clef.

Transport

Un attribut exportable permet de savoir si l’on peut sortir une clef ducoffre (chiffree bien entendu).

Validite

Un attribut validity permet de donner une date limite de validite a uncertificat.

B. Gerard Partie 2 : Architecture produit et APIs de securite 25 / 40

Page 33: S ecurit e des impl ementations pour la cryptographiepeople.irisa.fr/Benoit.Gerard/data/SIMP_cours2.pdf · 2020. 1. 11. · Module cryptographique Sous-module TEMPS Besoins I cryptop

Principe et techniquesAuthentification

Les proprietes de securite reposent sur le fait que l’API sache quelutilisateur est connecte.

Bien que la cryptographie propose des solutions, la securite ne peut jamaisentierement se baser sur de la cryptographie !

I Vol de carte/badge/dongle.

I Recuperation de mot de passe.

I Piratage des lecteurs d’empreintes.

I . . .

Et en cas de perte d’un element d’authentification ?

B. Gerard Partie 2 : Architecture produit et APIs de securite 26 / 40

Page 34: S ecurit e des impl ementations pour la cryptographiepeople.irisa.fr/Benoit.Gerard/data/SIMP_cours2.pdf · 2020. 1. 11. · Module cryptographique Sous-module TEMPS Besoins I cryptop

Principe et techniquesAuthentification forte

Authentification forte

Renforcer l’assurance que la bonne personne se connecte.

Combinaison de techniques :

I dispositif electronique (clef, carte, dongle . . .),

I mot de passe (ou code PIN),

I envoi d’un code par messagerie (SMS, internet),

I biometrie (empreinte digitale, retine, ECG)

I . . .

Compromis entre complexite de mise en oeuvre et securite.Permet un mode degrade en cas de perte.

B. Gerard Partie 2 : Architecture produit et APIs de securite 27 / 40

Page 35: S ecurit e des impl ementations pour la cryptographiepeople.irisa.fr/Benoit.Gerard/data/SIMP_cours2.pdf · 2020. 1. 11. · Module cryptographique Sous-module TEMPS Besoins I cryptop

Principe et techniquesGestion des droits

L’authentification permet de determiner

I l’ensemble des objets possedes,

I le role de l’utilisateur.

En fonction, l’utilisateur aura differents droits.I Droit de creer/supprimer

I un utilisateur,I un objet possede,I un objet autre.

I Droit d’exporter/importerI un objet possede,I un objet autre.

I Droit d’effectuer certaines operations specialesI transition entre deux etats du cycle de vie,I mise a jour.

B. Gerard Partie 2 : Architecture produit et APIs de securite 28 / 40

Page 36: S ecurit e des impl ementations pour la cryptographiepeople.irisa.fr/Benoit.Gerard/data/SIMP_cours2.pdf · 2020. 1. 11. · Module cryptographique Sous-module TEMPS Besoins I cryptop

Principe et techniquesRetour a l’attaque sur la carte bancaire

Rappel des faits

Le composant pirate repond OK pour le code pin a la place de la carte.

Analyse

La carte n’a donc pas valide de code PIN avant la transaction.

Solution possible

Ajout d’un sequenceur qui verifie qu’un code PIN a ete teste

avec succes

avant une transaction.

Variantes liees aux contraintes commerciales

I Ajout d’un compteur : max. 3 operations sans code PIN par mois.

I Ajout d’un plafond : max. 100 euros depenses avant code PINobligatoire.

B. Gerard Partie 2 : Architecture produit et APIs de securite 29 / 40

Page 37: S ecurit e des impl ementations pour la cryptographiepeople.irisa.fr/Benoit.Gerard/data/SIMP_cours2.pdf · 2020. 1. 11. · Module cryptographique Sous-module TEMPS Besoins I cryptop

Principe et techniquesRetour a l’attaque sur la carte bancaire

Rappel des faits

Le composant pirate repond OK pour le code pin a la place de la carte.

Analyse

La carte n’a donc pas valide de code PIN avant la transaction.

Solution possible

Ajout d’un sequenceur qui verifie qu’un code PIN a ete teste avec succesavant une transaction.

Variantes liees aux contraintes commerciales

I Ajout d’un compteur : max. 3 operations sans code PIN par mois.

I Ajout d’un plafond : max. 100 euros depenses avant code PINobligatoire.

B. Gerard Partie 2 : Architecture produit et APIs de securite 29 / 40

Page 38: S ecurit e des impl ementations pour la cryptographiepeople.irisa.fr/Benoit.Gerard/data/SIMP_cours2.pdf · 2020. 1. 11. · Module cryptographique Sous-module TEMPS Besoins I cryptop

Principe et techniquesRetour a l’attaque sur la carte bancaire

Rappel des faits

Le composant pirate repond OK pour le code pin a la place de la carte.

Analyse

La carte n’a donc pas valide de code PIN avant la transaction.

Solution possible

Ajout d’un sequenceur qui verifie qu’un code PIN a ete teste avec succesavant une transaction.

Variantes liees aux contraintes commerciales

I Ajout d’un compteur : max. 3 operations sans code PIN par mois.

I Ajout d’un plafond : max. 100 euros depenses avant code PINobligatoire.

B. Gerard Partie 2 : Architecture produit et APIs de securite 29 / 40

Page 39: S ecurit e des impl ementations pour la cryptographiepeople.irisa.fr/Benoit.Gerard/data/SIMP_cours2.pdf · 2020. 1. 11. · Module cryptographique Sous-module TEMPS Besoins I cryptop

Plan

Vue globale

Architecture produitModule cryptographiqueSecurite locale

API de securitePrincipe et techniquesGestion des clefsAPI de securite en pratique

B. Gerard Partie 2 : Architecture produit et APIs de securite 29 / 40

Page 40: S ecurit e des impl ementations pour la cryptographiepeople.irisa.fr/Benoit.Gerard/data/SIMP_cours2.pdf · 2020. 1. 11. · Module cryptographique Sous-module TEMPS Besoins I cryptop

Gestion des clefsCreation

La generation de clef peut avoir lieu :

I dans le perimetre de securite.

I hors du perimetre (import dans le perimetre par la suite).

Attention dans les deux cas !

Interne :

I Disposer d’un bon alea.

Externe :

I Aucune maıtrise de l’alea utilise.

I Aucune garantie de non diffusion de la clef.

Perimetre de securite

Contient toutes les implementations de l’API qui sont de confiance.

B. Gerard Partie 2 : Architecture produit et APIs de securite 30 / 40

Page 41: S ecurit e des impl ementations pour la cryptographiepeople.irisa.fr/Benoit.Gerard/data/SIMP_cours2.pdf · 2020. 1. 11. · Module cryptographique Sous-module TEMPS Besoins I cryptop

Gestion des clefsManipulation

Key Wrap

Stockage/transport de clefs hors perimetre de securite ⇒ besoin

- de confidentialite,

- d’integrite/d’authenticite.

Handles

Permet l’utilisation des clefs sans les manipuler directement (identifiants).

Cryptoperiode

Limite

- l’usure de la clef,

- l’impact d’une compromission.

B. Gerard Partie 2 : Architecture produit et APIs de securite 31 / 40

Page 42: S ecurit e des impl ementations pour la cryptographiepeople.irisa.fr/Benoit.Gerard/data/SIMP_cours2.pdf · 2020. 1. 11. · Module cryptographique Sous-module TEMPS Besoins I cryptop

Gestion des clefsExemple de non utilisation d’un handle

req = clef grise

mdp=toto

B. Gerard Partie 2 : Architecture produit et APIs de securite 32 / 40

Page 43: S ecurit e des impl ementations pour la cryptographiepeople.irisa.fr/Benoit.Gerard/data/SIMP_cours2.pdf · 2020. 1. 11. · Module cryptographique Sous-module TEMPS Besoins I cryptop

Gestion des clefsExemple de non utilisation d’un handle

req = clef grise

mdp=toto

B. Gerard Partie 2 : Architecture produit et APIs de securite 32 / 40

Page 44: S ecurit e des impl ementations pour la cryptographiepeople.irisa.fr/Benoit.Gerard/data/SIMP_cours2.pdf · 2020. 1. 11. · Module cryptographique Sous-module TEMPS Besoins I cryptop

Gestion des clefsExemple de non utilisation d’un handle

req = clef grise

mdp=toto

B. Gerard Partie 2 : Architecture produit et APIs de securite 32 / 40

Page 45: S ecurit e des impl ementations pour la cryptographiepeople.irisa.fr/Benoit.Gerard/data/SIMP_cours2.pdf · 2020. 1. 11. · Module cryptographique Sous-module TEMPS Besoins I cryptop

Gestion des clefsExemple de non utilisation d’un handle

req = clef grise

mdp=toto

B. Gerard Partie 2 : Architecture produit et APIs de securite 32 / 40

Page 46: S ecurit e des impl ementations pour la cryptographiepeople.irisa.fr/Benoit.Gerard/data/SIMP_cours2.pdf · 2020. 1. 11. · Module cryptographique Sous-module TEMPS Besoins I cryptop

Gestion des clefsExemple de non utilisation d’un handle

req = clef grise

mdp=toto

B. Gerard Partie 2 : Architecture produit et APIs de securite 32 / 40

Page 47: S ecurit e des impl ementations pour la cryptographiepeople.irisa.fr/Benoit.Gerard/data/SIMP_cours2.pdf · 2020. 1. 11. · Module cryptographique Sous-module TEMPS Besoins I cryptop

Gestion des clefsExemple de non utilisation d’un handle

req = clef grise

mdp=toto

B. Gerard Partie 2 : Architecture produit et APIs de securite 32 / 40

Page 48: S ecurit e des impl ementations pour la cryptographiepeople.irisa.fr/Benoit.Gerard/data/SIMP_cours2.pdf · 2020. 1. 11. · Module cryptographique Sous-module TEMPS Besoins I cryptop

Gestion des clefsExemple d’utilisation d’un handle

req = ECDSA

clef grise

mdp=toto

B. Gerard Partie 2 : Architecture produit et APIs de securite 33 / 40

Page 49: S ecurit e des impl ementations pour la cryptographiepeople.irisa.fr/Benoit.Gerard/data/SIMP_cours2.pdf · 2020. 1. 11. · Module cryptographique Sous-module TEMPS Besoins I cryptop

Gestion des clefsExemple d’utilisation d’un handle

req = ECDSA

clef grise

mdp=toto

B. Gerard Partie 2 : Architecture produit et APIs de securite 33 / 40

Page 50: S ecurit e des impl ementations pour la cryptographiepeople.irisa.fr/Benoit.Gerard/data/SIMP_cours2.pdf · 2020. 1. 11. · Module cryptographique Sous-module TEMPS Besoins I cryptop

Gestion des clefsExemple d’utilisation d’un handle

req = ECDSA

clef grise

mdp=toto

B. Gerard Partie 2 : Architecture produit et APIs de securite 33 / 40

Page 51: S ecurit e des impl ementations pour la cryptographiepeople.irisa.fr/Benoit.Gerard/data/SIMP_cours2.pdf · 2020. 1. 11. · Module cryptographique Sous-module TEMPS Besoins I cryptop

Gestion des clefsExemple d’utilisation d’un handle

req = ECDSA

clef grise

mdp=toto

B. Gerard Partie 2 : Architecture produit et APIs de securite 33 / 40

Page 52: S ecurit e des impl ementations pour la cryptographiepeople.irisa.fr/Benoit.Gerard/data/SIMP_cours2.pdf · 2020. 1. 11. · Module cryptographique Sous-module TEMPS Besoins I cryptop

Gestion des clefsExemple d’utilisation d’un handle

req = ECDSA

clef grise

mdp=toto

B. Gerard Partie 2 : Architecture produit et APIs de securite 33 / 40

Page 53: S ecurit e des impl ementations pour la cryptographiepeople.irisa.fr/Benoit.Gerard/data/SIMP_cours2.pdf · 2020. 1. 11. · Module cryptographique Sous-module TEMPS Besoins I cryptop

Gestion des clefsExemple d’utilisation d’un handle

req = ECDSA

clef grise

mdp=toto

B. Gerard Partie 2 : Architecture produit et APIs de securite 33 / 40

Page 54: S ecurit e des impl ementations pour la cryptographiepeople.irisa.fr/Benoit.Gerard/data/SIMP_cours2.pdf · 2020. 1. 11. · Module cryptographique Sous-module TEMPS Besoins I cryptop

Gestion des clefsTypage

Bonne pratique

Differencier (fortement) les elements sensibles.

Mauvais exemple

Attribut sensible.

1. K cree declaree sensible

2. Export(K) refuse

3. Attribut sensible desactive

4. Export(K) autorise

1. K cree

2. Export(K) autorise

3. K declaree sensible

Lecon

Attributs lies a la securite non modifiables (par l’utilisateur).

B. Gerard Partie 2 : Architecture produit et APIs de securite 34 / 40

Page 55: S ecurit e des impl ementations pour la cryptographiepeople.irisa.fr/Benoit.Gerard/data/SIMP_cours2.pdf · 2020. 1. 11. · Module cryptographique Sous-module TEMPS Besoins I cryptop

Gestion des clefsCloisonnement

Buts

1. Limiter l’impact d’une compromission.

2. Eviter de tendre le baton a l’attaquant.

Exemple : sortir une clef en clair

Clef K qui protege en confidentialite les clefs et les messages.

1. C = E(K,K ′)

2. E−1(K,C)→ K ′

Exemple : injecter une clef maıtrisee

Clef K chiffrement + import de clefs.

1. C = E(K, 0)

2. K ′ = Import(K,C) = E−1(K,C)→ K ′ = 0

B. Gerard Partie 2 : Architecture produit et APIs de securite 35 / 40

Page 56: S ecurit e des impl ementations pour la cryptographiepeople.irisa.fr/Benoit.Gerard/data/SIMP_cours2.pdf · 2020. 1. 11. · Module cryptographique Sous-module TEMPS Besoins I cryptop

Gestion des clefsCloisonnement

Buts

1. Limiter l’impact d’une compromission.

2. Eviter de tendre le baton a l’attaquant.

Exemple : sortir une clef en clair

Clef K qui protege en confidentialite les clefs et les messages.

1. C = E(K,K ′)

2. E−1(K,C)→ K ′

Exemple : injecter une clef maıtrisee

Clef K chiffrement + import de clefs.

1. C = E(K, 0)

2. K ′ = Import(K,C) = E−1(K,C)→ K ′ = 0

B. Gerard Partie 2 : Architecture produit et APIs de securite 35 / 40

Page 57: S ecurit e des impl ementations pour la cryptographiepeople.irisa.fr/Benoit.Gerard/data/SIMP_cours2.pdf · 2020. 1. 11. · Module cryptographique Sous-module TEMPS Besoins I cryptop

Gestion des clefsPour conclure

Il existe d’autres attaques plus ou moins realisables en pratique :

I key conjuring (generation de clefs non autorisees),

I key binding (decoupe de clefs longues en sous-clefs),

I injection clef troyenne.

A retenir

Une bonne securite des clefs implique

1. de controler fortement les operations effectuees,

2. de separer les clefs selon leurs usages.

C’est une grande source de vulnerabilites (on n’a pourtant pas fait decryptanalyse).

B. Gerard Partie 2 : Architecture produit et APIs de securite 36 / 40

Page 58: S ecurit e des impl ementations pour la cryptographiepeople.irisa.fr/Benoit.Gerard/data/SIMP_cours2.pdf · 2020. 1. 11. · Module cryptographique Sous-module TEMPS Besoins I cryptop

Plan

Vue globale

Architecture produitModule cryptographiqueSecurite locale

API de securitePrincipe et techniquesGestion des clefsAPI de securite en pratique

B. Gerard Partie 2 : Architecture produit et APIs de securite 36 / 40

Page 59: S ecurit e des impl ementations pour la cryptographiepeople.irisa.fr/Benoit.Gerard/data/SIMP_cours2.pdf · 2020. 1. 11. · Module cryptographique Sous-module TEMPS Besoins I cryptop

API de securite en pratiqueLe standard PKCS #11

API C utilisee par :

I autorites de certification,

I HSM (Hardware SecurityModule)

I GnuTLS,

I OpenSSL/SSH/SC,

I Mozilla,

I OpenVPN,

I Truecrypt,

I . . .

Implementation conformePKCS #11

m

implemente un sous-ensemble deregles

B. Gerard Partie 2 : Architecture produit et APIs de securite 37 / 40

Page 60: S ecurit e des impl ementations pour la cryptographiepeople.irisa.fr/Benoit.Gerard/data/SIMP_cours2.pdf · 2020. 1. 11. · Module cryptographique Sous-module TEMPS Besoins I cryptop

API de securite en pratiqueUtilisation necessaire de methodes formelles

I Model checking

I par Graham Steel.I Analyse l’implementation pour determiner le sous-ensemble de regles

implantees,I fourni le modele correspondant a un model checker,I fait tourner le checker jusqu’a trouver une faille.I Tres peu d’implementations resistantes . . .

I Preuve formelle API generique proposee a CCS en 2012I gestion des clefs symetriques,I prise en compte de la revocation.

Comment s’assurer que l’implementation finale est bien conforme aux hy-potheses de la preuve ?

B. Gerard Partie 2 : Architecture produit et APIs de securite 38 / 40

Page 61: S ecurit e des impl ementations pour la cryptographiepeople.irisa.fr/Benoit.Gerard/data/SIMP_cours2.pdf · 2020. 1. 11. · Module cryptographique Sous-module TEMPS Besoins I cryptop

API de securite en pratiqueDans l’industrie

Problematique de la certification (Criteres Communs) :

I Certification donnee par l’ANSSI suite a l’analyse par un CESTI.

I On ne peut plus toucher au produit une fois obtenue.

I EAL4 et plus : demande une conception methodique.

I EAL5 et plus : necessite des methodes (semi-)formelles.

Contraintes cout/delai/performances :

I manque de temps et parfois de competences,

⇒ utilisation de produits sur etagere fait par des specialistesI HSM (PCI, microSD),I TPM Trusted Platform Module (composant pour carte mere),I Globull (disque avec coeur crypto de chez Bull).

ANSSI : Agence Nationale de la Securite des Systemes d’Information.

CESTI : Centre d’Evaluation de la Securite des Technologies de l’Information.

B. Gerard Partie 2 : Architecture produit et APIs de securite 39 / 40

Page 62: S ecurit e des impl ementations pour la cryptographiepeople.irisa.fr/Benoit.Gerard/data/SIMP_cours2.pdf · 2020. 1. 11. · Module cryptographique Sous-module TEMPS Besoins I cryptop

A retenir

Messages

I La mise en œuvre d’un produit de securite est complexe et ne peutetre mene seul avec succes.

I Il est essentiel de prendre le temps de reflechir en amont et despecifier clairement et precisement les choses.

Bonnes pratiques

I Faire au plus simple (mais pas au plus simpliste).

I Decouper le probleme en sous-problemes bien definis et plus simples.

I Prendre des precautions (tests, cloisonnement . . .).

B. Gerard Partie 2 : Architecture produit et APIs de securite 40 / 40