secu_sujet/memoire.md
2019-03-09 18:49:19 +01:00

4.5 KiB

L'authentification par certificats x.509 et smartcard

Introduction

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".

Il existe des solution pour pallier cette faiblesse, avec notamment l'introduction d'un ou plusieurs autres facteurs d'authentification (TOTP, SMS etc.), ou les gestionnaires de mots de passe (keepass, LastPass ...).

L'authentification par certificats semble être une alternative intéressante au traditionnel mot de passe. Nous allons dans ce mémoire étudier son fonctionnement, parler de son intégration dans GNU/Linux, parler de sa mise en œuvre et tenter d'exposer ses limites.

La norme X.509

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 :

  • Le format de certificat
  • La liste de révocation des certificats
  • leurs attributs
  • un algorithme de validation de chemin de certificats

Contrairement à OpenPGP qui repose sur une toile de confiance, X.509 repose sur les autorités de certifications : un tiers de confiance délivre les certificats et fournit les moyens de les vérifier.

Les certificats X.509 sont donc composé de deux éléments : une partie publique 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 utilisateurs d'un système.

Cette infrastructure est utilisée pour créer, gérer, distribuer et révoquer des certificats

La PKI elle va te crypter l'Internet du digital

Sur Internet, les différentes autorités de certifications assurent les rôles de PKI : Elle fournissent l'infrastructure pour gérer les certificats permettant le fonctionnement du chiffrement TLS.

Une SmartCard?

Le Web plus accéssible 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 pulbiques.

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

Attaques sur les PKI

Même si elle ne touchent pas directement les smartcard, Il est intéressant de parler des attaque sur les infrastructures à clé publiques.

Collision MD5

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

Stéphane Bortzmeyer RFC 5280: Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile

Ivan Ristić BulletProof SSL and TLS

Pixis 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

W3C Web Authentication: An API for accessing Public Key Credentials