Pages enfant
  • Kerberos / Active Directory / CAS

Comparaison des versions

Légende

  • Ces lignes ont été ajoutées. Ce mot a été ajouté.
  • Ces lignes ont été supprimées. Ce mot a été supprimé.
  • La mise en forme a été modifiée.
Commentaire: Ajout de la prise en charge de AES

...

Une référence intéressante sur Kerberos et HTTP : http://remivernier.com/index.php/2018/09/16/exploration-des-entetes-http-www-authenticate/

Mise à jour des algorithmes de chiffrements sur les KDC

RC4-HMAC est considéré comme faible, et une récente (8 novembre 2022) mise à jour des AD (https://support.microsoft.com/help/5021131) peut provoquer des dysfonctionnement avec l'authentification KERBEROS.

C'est un problème que nous avons rencontré à l'AMU en constatant que SPNEGO ne fonctionnait plus et des erreurs dans les logs :

Bloc de code
themeMidnight
Caused by: GSSException: Failure unspecified at GSS-API level (Mechanism level: Encryption type RC4 with HMAC is not supported/enabled)
    at java.security.jgss/sun.security.jgss.krb5.Krb5Context.acceptSecContext(Krb5Context.java:859)
    at java.security.jgss/sun.security.jgss.GSSContextImpl.acceptSecContext(GSSContextImpl.java:361)
    at java.security.jgss/sun.security.jgss.GSSContextImpl.acceptSecContext(GSSContextImpl.java:303)
    ... 267 more
Caused by: KrbException: Encryption type RC4 with HMAC is not supported/enabled
    at java.security.jgss/sun.security.krb5.EncryptionKey.findKey(EncryptionKey.java:544)
    at java.security.jgss/sun.security.krb5.KrbApReq.authenticate(KrbApReq.java:273)
    at java.security.jgss/sun.security.krb5.KrbApReq.<init>(KrbApReq.java:149)
    at java.security.jgss/sun.security.jgss.krb5.InitSecContextToken.<init>(InitSecContextToken.java:139)
    at java.security.jgss/sun.security.jgss.krb5.Krb5Context.acceptSecContext(Krb5Context.java:832)
    ... 269 more

Sur les ADs, la valeur de chiffrement par défaut est RC4-HMAC. Or La mise à jour passe cette valeur par défaut sur AES (128, 256 ,etc.).

CAS faisant du rc4-hmac, il nous faut passer en AES256-CTS.

L'équipe Windows nous a généré un nouveau keytab chiffré avec le bon algorithme et nous avons modifié le fichier krb5.conf :

default_tkt_enctypes = aes256-cts
default_tgs_enctypes = aes256-cts

Pensez à bien passer la commande klist purge sur les postes clients Windows (kdestroy pour linux)... sinon, il faut attendre la date de renouvellement des tickets KERBEROS (7 jours par défaut).

Pas besoin de redémarrer CAS (sourire)