Pourquoi les comptes d'utilisateurs Active Directory ne prennent-ils pas automatiquement en charge l'authentification Kerberos AES?

8

Je joue avec un domaine de test sur Windows Server 2012 R2. J'opère au niveau fonctionnel le plus élevé possible et je n'ai aucun problème de rétrocompatibilité dans mon petit environnement de test. Cependant, j'ai réalisé que malgré le fait que je prenne en charge l'authentification Kerberos AES, elle n'est activée par défaut pour aucun utilisateur. Je dois réellement aller dans les propriétés d'un utilisateur et cocher «Ce compte prend en charge le cryptage Kerberos AES 128 bits» et / ou «Ce compte prend en charge le cryptage Kerberos AES 256 bits» pour l'activer.

(J'ai réalisé cela pour la première fois en ajoutant un compte de test au groupe "Utilisateurs protégés", ce qui définit la stratégie pour exiger AES. Par la suite, toutes mes connexions réseau ont commencé à échouer jusqu'à ce que je vérifie ces cases.)

Je pense que cela peut être désactivé par défaut pour garantir la compatibilité descendante pour certains systèmes, mais je ne trouve pas de moyen d'activer cela pour tous les utilisateurs, ni même une explication du comportement actuel.

Des idées?

Reid Rankin
la source

Réponses:

10

La vérification des cases à cocher Kerberos AES pour les utilisateurs entraînerait des échecs d'authentification sur les clients antérieurs à Vista. C'est probablement la raison pour laquelle il n'est pas défini par défaut.

Les cases à cocher de prise en charge Kerberos AES correspondent à la valeur définie dans un attribut appelé msDS-SupportedEncryptionTypes

Pour modifier cela pour plusieurs utilisateurs, vous pouvez utiliser PowerShell et le module ActiveDirectory:

# The numerical values for Kerberos AES encryption types to support
$AES128 = 0x8
$AES256 = 0x10

# Fetch all users from an OU with their current support encryption types attribute
$Users = Get-ADUser -Filter * -SearchBase "OU=SecureUsers,OU=Users,DC=domain,DC=tld" -Properties "msDS-SupportedEncryptionTypes"
foreach($User in $Users)
{
    # If none are currently supported, enable AES256
    $encTypes = $User."msDS-SupportedEncryptionType"
    if(($encTypes -band $AES128) -ne $AES128 -and ($encTypes -band $AES256) -ne $AES256)
    {
        Set-ADUser $User -Replace @{"msDS-SupportedEncryptionTypes"=($encTypes -bor $AES256)}
    }
}
Mathias R. Jessen
la source
Existe-t-il un moyen de définir cela par défaut sur les nouveaux utilisateurs?
Reid Rankin
2
Vous pouvez probablement en faire la valeur par défaut pour les nouveaux utilisateurs en modifiant le schéma AD. Vous devriez probablement le poser comme une question distincte si vous voulez une réponse plus détaillée.
Ryan Bolger
Comme les clients antérieurs à Vista ne sont plus pris en charge depuis de nombreuses années, il serait bien que Microsoft permette enfin aux types de cryptage AES par défaut pour tous les utilisateurs qui ne disposent pas d'un attribut msDS-SupportedEncryptionType.
Markus Kuhn