diff --git a/files/smartcard.svg b/files/smartcard.svg deleted file mode 100644 index 7dce2d4..0000000 --- a/files/smartcard.svg +++ /dev/null @@ -1,1578 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/memoire.md b/memoire.md index 5e5f54d..a103e80 100644 --- a/memoire.md +++ b/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. 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 -technique rendant leur cassage plus efficaces etc. Dans un communiqué de presse -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". +technique rendant leur cassage plus efficaces etc. Il existe des solution pour pallier cette faiblesse, avec notamment l'introduction d'un ou plusieurs autres facteurs d'authentification (TOTP, SMS @@ -24,7 +22,7 @@ en œuvre et tenter d'exposer ses limites. La norme X.509 régissant les formats les format pour les certificats à clé publique. Elle est définie par l'Union Internationale des Télécommunications et -établie : +établie : - Le **format de certificat** - La **liste de révocation** des certificats @@ -40,8 +38,8 @@ et une partie privée. Ces certificats peuvent assurer plusieurs rôles ### PKI - Infrastructure à clefs publiques -Une infrastructure à clefs publiques est un ensemble d'éléments, qu'ils soient -humain, matériels ou logiciels, destinés à gérer les clefs publiques des +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 utilisateurs d'un système. 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 le fonctionnement du chiffrement TLS. -## 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. - -![Fonctionnement d'une smartcard](./files/smartcard.svg) - -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. +### Une 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 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 -Le MD5 (pour Message Digest 5) est un algorithme de hachage cryptographique -permettant d'obtenir l'empreinte d'un fichier / d'une chaine de caractères. Elle -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*. - - - +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. ## 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.. *Efficient Padding Oracle Attacks on Cryptographic Hardware.* [Research Report] RR-7944, 2012, pp.19. - -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)*