Blog
Le Blog

KB N°2440 : DIFFÉRENCES ENTRE KERBEROS ET NTLM

KB Olfeo On-Premise
Le 2 juin 2023

NTLM utilise un mécanisme de challenge-response. Le client envoie une requête, le proxy lui demande de s’authentifier, le client lui envoie la même requête avec ses identifants de connexion. Kerberos utilise un système de chiffrement symétrique pour assurer un dialogue sécurisé entre deux protagonistes.

Contexte

Différences entre NTLM et Kerberos :

NTLM

Le NTLM est une méthode d’authentification utilisée dans un réseau Microsoft Active Directory propriétaire Microsoft.

Le NTLM utilise un mécanisme de challenge-response. Le client envoie une requête, le proxy lui demande de s’authentifier, le client lui envoie la même requête avec ses identifants de connexion. On verra alors deux 407 (1.erreur d’authentification, 2.demande d’authentification), puis l’accès à la ressource.

Kerberos

Kerberos utilise un système de chiffrement symétrique pour assurer un dialogue sécurisé entre deux protagonistes. Les dialogues s’opèrent en utilisant une clé secrète et partagée. Les algorithmes de chiffrement sont publics (AES, DES, 3DES…), toute la sécurité du système repose sur la confidentialité de la clef de chiffrement.

Pour faciliter la gestion d’un tel système, Kerberos repose sur l’utilisation d’un tiers de confiance qui distribue les clés aux utilisateurs et services abonnés (les principals). Un serveur Kerberos est appelé KDC (Key Distribution Center).

Kerberos est un service sûr qui assure la confidentialité, l’intégrité des données ainsi que la non-répudiation (les participants sont identifiés, y compris le serveur contrairement à NTLM). Le service d’authentification assure l’identification unique du client et lui procure un ticket de session qu’il pourra utiliser pour demander des tickets d’utilisation des services kerbérisés. Un ticket de session chiffré avec la clef d’un service kerbérisé constitue un ticket de service. On distingue deux fonctionnalités dans un service Kerberos :

  • le service d’authentification
  • le service de délivrement de tickets de services.

Kerberos a été mis au point au MIT dans les années 1990, il est maintenant très largement déployé et est disponible dans tous les environnements aujourd’hui utilisés (Linux, Windows, Mac OS…).

Étapes

Pour réaliser une intégration avec une authentification NTLM ou Kerberos, vous devrez d’abord joindre votre Olfeo au domaine AD :

  1. Déclaration d’un annuaire dans Paramétrage > Authentification > Annuaire. Bien faire attention à remplir la partie Domaine (Domaine + Workgroup).
  2. Renseigner comme serveur DNS le contrôleur de domaine ou un DNS qui pourra correctement résoudre les requêtes DNS pour la machine Olfeo.
  3. Renseigner un serveur NTP, préferez prendre soit le contrôleur de domaine, soit le même serveur NTP que le contrôleur de domaine.
  4. Faire la jonction au domaine dans Paramétrage > Authentification >Joindre le domaine Windows.

    Ici, renseigner le login et le mot de passe d’un compte ayant les droits (add_workstation).

Attention, la jonction au domaine peut prendre un peu de temps, et peut devoir se faire deux fois (écriture des fichiers de configuration).

Si tout s’est bien passé, vous devez voir dans le statut le nom de votre serveur AD (LDAP server name :  serveur.domaine.tld).

Une fois la jonction réalisée, on peut choisir une authentification NTLM ou Kerberos.

  • NTLM est utilisable à deux niveaux :
    • proxy explicite
    • portail captif NTLM
  • Kerberos est utilisable avec une intégration proxy explicite
Nom de la machine pleinement qualifié requis !!! (Voir intégration proxy)

Validation

Pour vérifier le bon fonctionnement du NTLM ou du Kerberos en ligne de commande :

NTLM

Diverses commandes associées :

  • #>wbinfo -t : Vérifie la bonne jonction au domaine
  • #>wbinfo -u : Remonte les utilisateurs du domaine
  • #>wbinfo -g : Remonte les groupes du domaine
  • #>wbinfo –trusted-domains : Remonte les serveurs avec les relations d’approbation
  • #>/usr/bin/ntlm_auth –helper-protocol=squid-2.5-basic user mdp : Permet de tester l’authentification NTLM en mode basic (login + mdp).

    Ici, les codes retours sont simples :

    • OK, lorsque le couple login/mdp est valide.
    • ERR, lorsque le couple login/mdp n’est pas valide.

Les fichiers de configuration sont :

  • /etc/samba/smb.conf
  • /etc/krb5.conf
ATTENTION ! Le hostname de la machine ne peut excéder 15 caractères.

Kerberos

​Contrairement au mode NTLM, avec la mise en place du Kerberos les utilisateurs doivent impérativement cibler sur le nom FQDN et non sur l’adresse IP du Proxy.

Vérifier la présence du fichier keytab.

#>ls /etc/squid3/HTTP.keytab

Diverses commandes associées :

  • #>wbinfo -t : Vérifie la bonne jonction au domaine
  • #>wbinfo -u : Remonte les utilisateurs du domaine
  • #>wbinfo -g : Remonte les groupes du domaine
  • #>wbinfo –trusted-domains : Remonte les serveurs avec les relations d’approbation
  • #>wbinfo -K user%password : Permet de tester l’authentification Kerberos manuellement

Les fichiers de configuration sont :

  • /etc/samba/smb.conf
  • /etc/krb5.conf