Compare commits
No commits in common. "abcd020ba341298ea4121582ce9eae114e74f754" and "c94641ee2b65675bdeda336b943e952ff3aeb06e" have entirely different histories.
abcd020ba3
...
c94641ee2b
2 changed files with 7 additions and 1765 deletions
1578
files/smartcard.svg
1578
files/smartcard.svg
File diff suppressed because one or more lines are too long
Before Width: | Height: | Size: 157 KiB |
192
memoire.md
192
memoire.md
|
@ -7,9 +7,7 @@ Depuis toujours, l'authentification sur des systèmes informatique est
|
||||||
principalement régie par l'utilisation du couple identifiant / mot de passe.
|
principalement régie par l'utilisation du couple identifiant / mot de passe.
|
||||||
C'est pourtant un facteur d'identification peu fiables : utilisation du même mot
|
C'est pourtant un facteur d'identification peu fiables : utilisation du même mot
|
||||||
de passe pour plusieurs - voir tous les - services, mot de passe faible, progrès
|
de passe pour plusieurs - voir tous les - services, mot de passe faible, progrès
|
||||||
technique rendant leur cassage plus efficaces etc. Dans un communiqué de presse
|
technique rendant leur cassage plus efficaces etc.
|
||||||
du W3C et de l'Alliance FIDO, "les mots de passe volés, faibles ou par défaut
|
|
||||||
sont à l'origine de 81% des atteintes à la protection des données".
|
|
||||||
|
|
||||||
Il existe des solution pour pallier cette faiblesse, avec notamment
|
Il existe des solution pour pallier cette faiblesse, avec notamment
|
||||||
l'introduction d'un ou plusieurs autres facteurs d'authentification (TOTP, SMS
|
l'introduction d'un ou plusieurs autres facteurs d'authentification (TOTP, SMS
|
||||||
|
@ -40,8 +38,8 @@ et une partie privée. Ces certificats peuvent assurer plusieurs rôles
|
||||||
|
|
||||||
### PKI - Infrastructure à clefs publiques
|
### PKI - Infrastructure à clefs publiques
|
||||||
|
|
||||||
Une infrastructure à clefs publiques est un ensemble d'éléments, qu'ils soient
|
Une infrastructure à clefs publique est un ensemble d'éléments, qu'ils soient
|
||||||
humain, matériels ou logiciels, destinés à gérer les clefs publiques des
|
humain, matériels ou logiciels destinés à gérer les clefs publiques des
|
||||||
utilisateurs d'un système.
|
utilisateurs d'un système.
|
||||||
|
|
||||||
Cette infrastructure est utilisée pour créer, gérer, distribuer et révoquer des
|
Cette infrastructure est utilisée pour créer, gérer, distribuer et révoquer des
|
||||||
|
@ -53,107 +51,10 @@ Sur Internet, les différentes autorités de certifications assurent les rôles
|
||||||
PKI : Elle fournissent l'infrastructure pour gérer les certificats permettant
|
PKI : Elle fournissent l'infrastructure pour gérer les certificats permettant
|
||||||
le fonctionnement du chiffrement TLS.
|
le fonctionnement du chiffrement TLS.
|
||||||
|
|
||||||
## Une SmartCard?
|
### Une SmartCard?
|
||||||
|
|
||||||
Maintenant que nous avons parlé de la norme X.509, nous allons parler de notre
|
|
||||||
**startcard**. D'après Wikipedia ([source](l_sc-wiki)) :
|
|
||||||
|
|
||||||
> Une carte à puce est une carte en matière plastique, voire en papier ou en
|
|
||||||
> carton, de quelques centimètres de côté et moins d'un millimètre d'épaisseur,
|
|
||||||
> portant au moins un circuit intégré capable de contenir de l'information. Le
|
|
||||||
> circuit intégré (la puce) peut contenir un microprocesseur capable de traiter
|
|
||||||
> cette information, ou être limité à des circuits de mémoire non volatile et,
|
|
||||||
> éventuellement, un composant de sécurité (carte mémoire).
|
|
||||||
|
|
||||||
Vous utilisez tous les jours une SmartCard : votre carte SIM, votre carte
|
|
||||||
bancaire...
|
|
||||||
|
|
||||||
Les smartcards qui nous intéressent ici contiennent un espace de stockage, un
|
|
||||||
microprocesseur et un coprocesseur pour accélérer les opérations
|
|
||||||
cryptographiques.
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
Comme vous pouvez le voir, il n'y a pas de connexion directe entre les contacts
|
|
||||||
et la mémoire. Pour des raisons évidente de sécurité, tout passe par le système
|
|
||||||
d'exploitation de la carte. Il en existe une multitude (JavaCard Operating
|
|
||||||
System, MULTOS, OpenPGP Card, Gnuk etc.)
|
|
||||||
|
|
||||||
### Création, stockage et utilisation de certificats
|
|
||||||
|
|
||||||
Dans le cas qui nous intéresse, la carte à puce permet de stocker le certificat
|
|
||||||
et de l'utiliser. Lors de son utilisation, un code PIN sera demandé, le
|
|
||||||
certificat contenu pourra alors être utilisé pour s'authentifier, signer ou
|
|
||||||
chiffrer.
|
|
||||||
|
|
||||||
Certaines Smartcard permettent la génération de certificats.
|
|
||||||
|
|
||||||
### Le Web plus accessible aux authentifications par certificats
|
|
||||||
|
|
||||||
Aujourd'hui, l'un des principaux défauts de l'authentification par certificats,
|
|
||||||
c'est qu'elle n'est pas déployée largement : seul un petit nombre de services
|
|
||||||
l'utilisent.
|
|
||||||
|
|
||||||
Cependant, supporté par le constat que les mots de passe perdent
|
|
||||||
en efficacité, le standard WebAuthn (pour Web Authentication) a récemment été
|
|
||||||
créé et publiée par le W3C. Ce standard définit une API destinée aux
|
|
||||||
navigateurs, aux applications web et aux autres plateformes nécessitant une
|
|
||||||
authentification forte basée sur clés publiques.
|
|
||||||
|
|
||||||
Les grands du Web ont déjà ont déjà mit en place le support de WebAuthn sur
|
|
||||||
leurs outils : Windows 10, Android, Google Chrome, Mozilla Firefox,
|
|
||||||
Microsoft Edge et Safari. L'apparition de ce standard va sans aucun doute
|
|
||||||
encourager une adoption plus large de ce type d'authentification.
|
|
||||||
|
|
||||||
## Attaque sur les smartcard
|
## Attaque sur les smartcard
|
||||||
|
|
||||||
### Attaques par canal auxiliaire
|
|
||||||
|
|
||||||
Les attaques par canal auxiliaire regroupe les attaques qui tentent d'exploiter
|
|
||||||
des failles sur l'implémentation des procédures de sécurité plutôt que sur les
|
|
||||||
procédures elles-mêmes. Voici une liste de types d'attaques par canal
|
|
||||||
auxiliaire sur lesquels on va s'attarder car elles touchent les smartcard :
|
|
||||||
|
|
||||||
#### Attaque par sondage
|
|
||||||
|
|
||||||
Particulièrement invasive, elle consiste à détériorer suffisamment une puce pour
|
|
||||||
avoir un accès physique aux bus et y lire les bits qui y passent. Il est à noter
|
|
||||||
que cette attaque est très difficile à mettre en place car elle nécessite du
|
|
||||||
matériel de pointe (oscilloscope très précis,
|
|
||||||
chronométrage du passage des bits...), de la rigueur et de la précision sur la
|
|
||||||
détérioration de la puce, etc.
|
|
||||||
|
|
||||||
#### Analyse de consommation
|
|
||||||
|
|
||||||
En fonction des opérations résolues par un processeur, sa consommation en
|
|
||||||
énergie diffère. En étudiant les variations d'énergie utilisée par un lecteur de
|
|
||||||
cartes, il est possible de trouver des indices sur la clé privée, sur un
|
|
||||||
échantillon suffisant. Aujourd'hui, cette attaque peut être aisément
|
|
||||||
contrecarrée en apposant du bruit sur le circuit ou en le blindant.
|
|
||||||
|
|
||||||
#### Analyse d'émanations électromagnétiques
|
|
||||||
|
|
||||||
Semblable à l'Analyse de consommation, à ceci prêt qu'on ne s'attache pas, cette
|
|
||||||
fois ci à, l'énergie consommée mais au rayonnement électromagnétique émis par un
|
|
||||||
appareil. A l'instar de la consommation en énergie, le rayonnement n'est pas
|
|
||||||
le même en fonction des opérations exécutées par le terminal. L'étude du
|
|
||||||
rayonnement thermique peut s'apparenter à une analyse d'émanations
|
|
||||||
électromagnétiques.
|
|
||||||
|
|
||||||
#### Attaque par faute
|
|
||||||
|
|
||||||
Le principe ici est de provoquer des erreurs pour que le système réagisse de
|
|
||||||
manière inhabituelle sur les opérations de chiffrement et laisse des indices
|
|
||||||
sur la clé de chiffrement.
|
|
||||||
|
|
||||||
#### Attaque temporelle
|
|
||||||
|
|
||||||
Le temps que met un algorithme à s'exécuter donne parfois des indices sur la
|
|
||||||
constitution d'une clé entrée en paramètre dans cet algorithme, comme le nombre
|
|
||||||
de bits à 1. A elle seule, cette attaque ne donne pas beaucoup d'informations,
|
|
||||||
mais elle peut être combinée avec d'autres attaques pour en augmenter son
|
|
||||||
efficacité.
|
|
||||||
|
|
||||||
### Attaques sur les PKI
|
### Attaques sur les PKI
|
||||||
|
|
||||||
Même si elle ne touchent pas directement les smartcard, Il est intéressant de
|
Même si elle ne touchent pas directement les smartcard, Il est intéressant de
|
||||||
|
@ -161,81 +62,8 @@ parler des attaque sur les infrastructures à clé publiques.
|
||||||
|
|
||||||
#### Collision MD5
|
#### Collision MD5
|
||||||
|
|
||||||
Le MD5 (pour Message Digest 5) est un algorithme de hachage cryptographique
|
Le MD5 (pour Message Digest 5) est une fonction de hachage cryptographique
|
||||||
permettant d'obtenir l'empreinte d'un fichier / d'une chaine de caractères. Elle
|
permettant d'obtenir l'empreinte d'un fichier / d'une chaine de caractères.
|
||||||
a été inventée par Ronald Rivets en 1991 pour succéder à MD4.
|
|
||||||
|
|
||||||
Il doit être considéré comme obsolète depuis 1996, années de découverte d'une
|
|
||||||
faille dans l'algorithme ouvrant la voie à des collisions. En 2004 une équipe de
|
|
||||||
chercheurs chinois menés par la mathématicienne Wang Xiaoyun [démontre la
|
|
||||||
faisabilité][l_md5_2005] d'une collision complète. Mais cette attaque n'est pas
|
|
||||||
encore suffisamment sophistiquée pour être utilisée sur un cas concret. Wang,
|
|
||||||
Lenstra et de Wegner feront la [démonstration de leur attaque][l_md5_2006] sur
|
|
||||||
deux certificats X.509 différents ayant la même signature MD5 en 2006.
|
|
||||||
|
|
||||||
[l_md5_2005]:https://eprint.iacr.org/2004/199.pdf
|
|
||||||
[l_md5_2006]:https://www.win.tue.nl/~bdeweger/CollidingCertificates/
|
|
||||||
|
|
||||||
##### Attaque par collision
|
|
||||||
|
|
||||||
Une attaque par collision est menée sur une fonction de hashage cryptographique
|
|
||||||
afin trouver deux entrées différentes donnant lieux au même résultat. Comme la
|
|
||||||
plupart des fonctions de signature électronique le font sur le hash d'un
|
|
||||||
document plutôt que sur le document lui-même. Ainsi s'il est possible de
|
|
||||||
produire deux documents avec le même hash, leurs signatures sera strictement
|
|
||||||
la même. Il suffit alors d'envoyer à l'autorité de certification le document
|
|
||||||
légitime et copier la signature obtenue sur le document frauduleux.
|
|
||||||
|
|
||||||
##### Attaque par collision avec préfixe choisi
|
|
||||||
|
|
||||||
Dans le cadre de certificats, les choses se compliquent un peu : c'est
|
|
||||||
l'autorité de certification qui génère le certificat en fonction des
|
|
||||||
informations contenues dans le CSR. L'attaquant doit alors manipuler les données
|
|
||||||
contenues dans le CSR qu'il envoie et y intégrer des blocs de collision pour
|
|
||||||
annuler les différences entre les hashes du certificats obtenu et celui forgé.
|
|
||||||
Il va jouer sur le préfixe du CSR, d'où le nom de l'attaque.
|
|
||||||
|
|
||||||
Ce type d'attaque n'est cependant pas aisé, l'attaquant devra anticiper
|
|
||||||
certaines informations qui seront intégrées dans le certificat produit par
|
|
||||||
l'autorité. Certaines pourront être influencées comme le champ CN, d'autres
|
|
||||||
récupérées sur d'autre certificats signés par la même autorité (le contenu des
|
|
||||||
champs *issuer* par exemple) et enfin d'autres devront être
|
|
||||||
"devinées"[^n_devinees] (numéro de série du certificat et date d'expiration)
|
|
||||||
|
|
||||||
[Une telle attaque a été démontrée][l_md5_2008] en décembre 2008 par une équipe
|
|
||||||
de chercheurs menée par Sotirov et Stevens. Ils ont ainsi pu obtenir un
|
|
||||||
certificat à même de signer n'importe quel autres certificats et reconnu par les
|
|
||||||
principaux navigateurs de l'époque.
|
|
||||||
|
|
||||||
Une technique similaire a été utilisée par le malware *Flame* découvert en 2012.
|
|
||||||
Il usurpait une signature de code Microsoft pour se propager au travers de
|
|
||||||
Windows Update.
|
|
||||||
|
|
||||||
[l_md5_2008]:https://www.win.tue.nl/hashclash/rogue-ca/
|
|
||||||
[^n_devinees]:Prédites serait plus adapté, dans l'attaque menée par Sotirov et
|
|
||||||
Stevens, l'équipe de chercheurs a réussi prédire ces deux éléments en étudiant le
|
|
||||||
fonctionnement de l'autorité de certification utilisée.
|
|
||||||
|
|
||||||
### Attaque par oracle de padding
|
|
||||||
|
|
||||||
Ce type d'attaque a été mené avec succès sur différents périphériques
|
|
||||||
cryptographiques par un équipe de recherche internationale. Leurs travaux a
|
|
||||||
donne lieu ã une publication en avril 2012.
|
|
||||||
|
|
||||||
Ils on pu ainsi extraire les clefs privées de la plupart des périphériques
|
|
||||||
disponibles sur le marché quel que soit leurs marques.
|
|
||||||
|
|
||||||
#### fonctionnement de cette attaque.
|
|
||||||
|
|
||||||
##### Fonctionnement du chiffrement par bloc
|
|
||||||
|
|
||||||
Avant de rentrer plus en détail dans le fonctionnement de l'attaque par oracle
|
|
||||||
de padding, il est nécessaire d'expliquer le fonctionnement du chiffrement par
|
|
||||||
bloc. Il exxiste une multitude de chiffrement par bloc, nous resterons sur le
|
|
||||||
mode CBC *Cipher Block Chaining*.
|
|
||||||
|
|
||||||
<schema>
|
|
||||||
|
|
||||||
|
|
||||||
## Bibliographie
|
## Bibliographie
|
||||||
|
|
||||||
|
@ -250,11 +78,3 @@ Pixis *[Padding oracle](https://beta.hackndo.com/padding-oracle/)*
|
||||||
Romain Bardou, Riccardo Focardi, Yusuke Kawamoto, Lorenzo Simionato, Graham Steel, et al..
|
Romain Bardou, Riccardo Focardi, Yusuke Kawamoto, Lorenzo Simionato, Graham Steel, et al..
|
||||||
*Efficient Padding Oracle Attacks on Cryptographic Hardware.* [Research Report] RR-7944, 2012,
|
*Efficient Padding Oracle Attacks on Cryptographic Hardware.* [Research Report] RR-7944, 2012,
|
||||||
pp.19. <hal-00691958v2>
|
pp.19. <hal-00691958v2>
|
||||||
|
|
||||||
Marc Zaffagni *[CNETfrance.fr : Vers la fin des mots de passe ? WebAuthn est
|
|
||||||
désormais un standard du web](https://www.cnetfrance.fr/news/vers-la-fin-des-mots-de-passe-webauthn-est-desormais-un-standard-du-web-39881531.htm)*
|
|
||||||
|
|
||||||
W3C *[Web Authentication: An API for accessing Public Key Credentials](https://www.w3.org/TR/webauthn)*
|
|
||||||
|
|
||||||
Wikipedia *[Attaque de collisions](https://fr.wikipedia.org/wiki/Attaque_de_collisions)*,
|
|
||||||
*[Attaque par canal auxiliaire](https://fr.wikipedia.org/wiki/Attaque_par_canal_auxiliaire)*
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue