Les mots de passe et les protocoles d’authentification sont-ils vraiment sécurisés ?

 Malheureusement, pas toujours ! Révélons leur vulnérabilité !

L’authentification est le processus de vérification de l’identité d’un utilisateur qui se connecte au système. L’efficacité de ce processus est déterminée par les protocoles et les mécanismes d’authentification utilisés. Dans cet article, nous passerons en revue et évaluerons certains types d’authentification afin de déterminer lesquels d’entre eux sont réellement sécurisés.

HTTP Basic

La première version de SIP utilisait l’authentification HTTP de base. Ce système est assez facile à détourner par les hackers. Ce type d’authentification perd donc de son charme depuis un certain temps.

Dans l’authentification HTTP, un hacker peut simplement capturer un paquet contenant le mot de passe codé en base64, qui est ensuite utilisé pour décoder et exécuter des attaques.

Pas très sécurisé, en effet…..

 

Digest Authentification

Digest Authentification, utilisée à la fois par SIP et HTTP, introduit la possibilité de ne sauvegarder qu’une version chiffrée du mot de passe sur le serveur. Cela empêche le client d’envoyer le mot de passe dans un format facilement décodable et permet au serveur de sauvegarder un hachage du mot de passe (qui ne peut pas être facilement décodé).

Examinons en détail les messages échangés entre le client et le serveur : Le serveur nécessite une authentification.

La valeur de «réponse» est calculée dans les trois étapes suivantes (si les valeurs sont combinées, elles sont délimitées par deux points) :

  1. Le hachage MD5 du nom d’utilisateur, du domaine d’authentification et du mot de passe combinés est calculé. Le résultat est appelé HA1.
  2. Le hachage MD5 de la méthode et de l’URI de résumé combinés est calculé (par exemple, de «GET» et «/dir/index.html»). Le résultat est appelé HA2.
  3. Le hachage MD5 du résultat HA1 combiné, du nonce serveur (nonce), du compteur de demandes (nc), du nonce client (cnonce), du code de qualité de la protection (qop) et du résultat HA2 est calculé. Le résultat est la valeur «réponse» fournie par le client.

Les avantages de l’utilisation de cette méthode sont les suivants :

  • Le mot de passe n’est pas utilisé directement dans le résumé, mais plutôt HA1 = MD5 (username:realm:password). Cela permet à certaines implémentations de stocker HA1 plutôt que le mot de passe en texte brut.
  • Client nonce permet au client d’empêcher les attaques en texte choisi qui pourraient autrement menacer les schémas d’authentification Digest.
  • Serveur nonce est autorisé à contenir des horodatages, ce qui signifie que le serveur peut inspecter les attributs de nonce soumis par les clients pour empêcher les attaques par relecture.
  • Le serveur est également autorisé à maintenir une liste des valeurs nonce du serveur récemment émises ou utilisées afin d’empêcher leur réutilisation.

     

    Digest est donc une amélioration, mais présente toujours des inconvénients importants. Le principal est qu’il est victime de hackers. Pour que Digest soit sécurisé, la connexion entre le client et le serveur doit être chiffrée et la clé de chiffrement du serveur préchargée, ou une autorité de certification doit être utilisée pour permettre au client de vérifier la clé publique du serveur.

     

    SCRAM

    XMPP prend en charge les échanges de texte, les mots de passe Digest password et bien-
    sûr SCRAM (Salted Challenge Response Authentication Mechanism). SCRAM présente des avantages par rapport à Digest, car il permet au serveur de stocker les hachages de mots de passe dans un format irréversible. Cette fonctionnalité protège contre les attaques hors ligne sur le mot de passe et la base de données d’utilisateurs. Le client peut également enregistrer une version du mot de passe contenant uniquement une valeur de hachage, ce qui complique la tâche des hackers (ayant éventuellement accès au PC sur lequel le mot de passe est stocké) pour comprendre le mot de passe au format texte brut.

    De plus, SCRAM protège des attaques d’interception lorsque des certificats sont utilisés. Pour ce faire, le serveur peut prouver au client que le certificat est non seulement signé par une AC (autorité de certification), mais qu’il connaît également le mot de passe. Cette fonctionnalité est appelée liaison de canal, car le canal de chiffrement inférieur est «lié» au canal d’application supérieur. Il ajoute également une sécurité supplémentaire par rapport à TLS, qui manque de texte clair et d’authentification Digest.

    En cryptographie, Salted Challenge Response Authentication Mechanism (SCRAM) est une famille de mécanismes d’authentification modernes, basés sur un mot de passe, qui fournissent une authentification d’utilisateur à un serveur. Comme il est défini pour SASL (Simple Authentication and Security Layer), il peut être utilisé pour les connexions avec des mots de passe à des services tels que SMTP et IMAP (email) ou XMPP (chat). Pour XMPP, la prise en charge de SCRAM est obligatoire.

    Les avantages de SCRAM :

    • Stockage puissant des mots de passe : lorsqu’il est implémenté correctement, le serveur peut stocker les mots de passe dans un format de hachage salé et itéré, ce qui rend plus difficiles les attaques hors ligne et réduit l’impact des violations de base de données.
    • Simplicité : la mise en oeuvre de SCRAM est plus facile que celle de DIGEST-MD5.
    • Interopérabilité internationale : la RFC exige l’utilisation de l’UTF-8 pour les noms d’utilisateur et les mots de passe, contrairement à CRAM-MD5.
    • Etant donné que seule la version salée et hachée d’un mot de passe est utilisée dans l’ensemble du processus de connexion et que le sel sur le serveur ne change pas, les mots de passe stockés par le client peuvent utiliser les versions hachées et ne pas exposer le mot de passe en texte brut aux attaquants. Ces versions hachées sont liées à un serveur, ce qui en fait un outil idéal pour la réutilisation de mots de passe.

     

    Conclusions

    Les protocoles HTTP, XMPP et SIP utilisant l’authentification Digest offrent une protection de base et ne peuvent que :

    • Attaques hors ligne : signifie qu’une copie de sauvegarde ou une copie de la base de données contenant les noms d’utilisateur et les mots de passe est obtenue par un attaquant.

    • Attaques de type «hackers» : limitées à une session, l’utilisation de Digest protège de la réutilisation du hachage

    Les attaques hors ligne sont atténuées par l’utilisation de fonctions de hachage puissantes telles que celles de la famille SHA2.

    Afin de sécuriser la communication, non seulement pendant l’authentification, mais également pour protéger les données échangées, un protocole de signalisation sécurisé (TLS) doit être utilisé. Malheureusement, de nombreux systèmes UC disponibles n’imposent pas cette fonctionnalité par défaut.

    XMPP offre un mécanisme d’authentification amélioré via SCRAM. Cela offre une protection considérablement améliorée contre les attaques hors ligne, les attaques de type intermédiaire et la falsification de certificats TLS. SCRAM repose sur une couche de transport sécurisée.

    Il existe des propositions (RFC 7804) visant également à prendre en charge SCRAM sur HTTP. Entre-temps, la même amélioration introduite par SCRAM peut être mise en oeuvre séparément par les développeurs Web implémentant la plate- forme UC.

Social Sharing

Laisser un commentaire