Authentification

De Wiki info-lab.fr
Aller à : Navigation, rechercher

Sommaire

Définition et propriétés

Mécanisme cherchant à garantir à une entité A, qu'une autre entité B est bien celle qu'elle prétend être.
B annonce son identité puis elle convainc (ou pas) A que cette identité est bien la sienne en lui fournissant une ou plusieurs preuves que l'on peut regrouper en 4 modes  :

  • Je connais ou je reconnais : un mot de passe, les personnes présentes sur une photo, le schéma à dessiner avec mon doigt sur une surface tactile.
  • Je possède : une carte magnétique, une carte à puce, une clé privée, un code unique envoyé à mon téléphone mobile, un code unique généré par mon token RSA...
  • Je suis (caractéristiques intrinsèques) : ma voix, mes yeux (rétine, iris), la géométrie de mon visage, mes empreintes digitales ou palmaires...
  • Je sais faire : rythmique d'écriture ou de frappe clavier, signature manuscrite.

Une authentification faible implique l'utilisation d'une seule preuve ; par exemple : je dois fournir un mot de passe (mode "je connais") pour me connecter à un système informatique. Une authentification forte implique deux preuves ou plus et si possible de modes différents ; par exemple : Je dois insérer ma carte à puce personnelle (mode "je possède") ET saisir le code PIN à 8 chiffres associé à cette carte (mode "je connais") ET présenter mon index droit à un lecteur d'empreinte digitale (mode "je suis") pour déverrouiller la porte de la salle des coffres. Sur un système à authentification forte correctement implémenté, toutes les preuves demandées doivent être fournies (dans l'exemple précédent 2 sur 3 ne suffisent pas) et elles doivent être associées à la même identité : En théorie on ne devrait pas pouvoir ouvrir la porte de la salle des coffres en présentant l'index droit de l'employé X et la carte à puce avec code PIN associé de l'employé Y.

Techniques utilisées lors de l'authentification sur un système informatique

Authentification par chiffrement complet

En utilisant le chiffrement symétrique. Seuls A et B sont censés détenir la clé de session Kab : donc seul A peut être l’émetteur du message chiffré, et seul B pourra le déchiffrer (et vice versa) même si d'autres entités le reçoivent. Si en plus le message contient un horodatage, un numéro d'ordre, un contrôle d'erreur par CRC ou mieux, le destinataire sait qu'il n'y a pas eu altération, retardement forcé ou tentative de rejeu.
Kab est une clé secrète symétrique connue par A et B.

  • Avantages :
    • Le chiffrement est utilisé pour ici l'authentification mais il fournit aussi un service de confidentialité, y compris sur les parties concernant l'horodatage, le numéro d'ordre ou le contrôle d'erreur, ce qui renforce leur efficacité.
  • Inconvénients :
    • Le chiffrement intégral est gourmand en temps, en CPU et pénalise l'autonomie des équipements fonctionnant sur batterie.
    • Certains algorithmes (ou longueur de clés) sont interdits d'emploi dans certains pays ou ne sont pas exportables vers certains pays.
    • Certains algorithmes sont brevetés.
    • Les puces matérielles de chiffrement/déchiffrement sont onéreuses.

Authentification sans chiffrement complet

3 possibilités (1 sans aucun chiffrement, les 2 autres avec chiffrement d'une petite partie du message) :

  1. Fonction de condensat (hash) du message associé à une valeur secrète, le résultat du condensat de "message + valeur secrète" étant ajouté à la fin du message. Exemple la fonction HMAC96 RFC 2104, utilisée dans IPSec, SNMPv3, TLS. Aucun chiffrement n'est utilisé.
  2. Fonction de condensat (hash) du message, le résultat du condensat est chiffré au moyen de Kab (clé secrète ou clé de session) et ajouté à la fin du message.
  3. Fonction de condensat (hash) du message, le résultat du condensat est chiffré au moyen de la clé publique du destinataire et ajouté à la fin du message.

Dans les deux derniers cas, le chiffrement ne concerne que le résultat du condensat et pas l'ensemble du message.

  • Avantages :
    • Contrairement aux algorithmes de chiffrement, les fonctions de condensat sont plus rapides, moins gourmandes en CPU et moins pénalisantes pour l'autonomie des équipements sur batterie.
    • En général les Etats ne restreignent pas l'emploi ou l'exportation des algorithmes de condensat, et très peu sont brevetés.
    • Des développeurs fournissent gracieusement des bibliothèques de code prêtes à l'emploi intégrant la plupart des algorithmes de condensat.
  • Inconvénients :
    • Le chiffrement est optimisé pour de gros blocs de données ; à cause de la phase d'initialisation cette opération est trop consommatrice en temps CPU même sur d'aussi petits blocs de données que le résultat d'un condensat. Par rapport à l'authentification par chiffrement intégral du message, le simple chiffrement de son condensat ne permet d'économiser que peu de temps CPU en perdant les avantages du chiffrement complet (confidentialité, meilleure résistance au rejeu...). De plus dans le cadre du chiffrement du résultat du condensat on s'expose au mêmes limitations que pour le chiffrement complet (brevets, restrictions d'emploi ou d'exportation). C'est pourquoi pour l'authentification sans chiffrement complet, la première méthode (fonction HMAC) a tendance à s'imposer.
    • Les techniques de condensat fournissent un service d'authentification ou de contrôle d'intégrité, mais seul les algorithmes de chiffrement fournissent un service de confidentialité.
Outils personnels
Espaces de noms

Variantes
Actions
Navigation
Outils