Por que as contas de usuário do Active Directory não suportam automaticamente a autenticação Kerberos AES?

6

Estou brincando com um domínio de teste no Windows Server 2012 R2. Estou operando no nível funcional mais alto possível e não tenho problemas de compatibilidade com versões anteriores no meu ambiente de teste pequeno. No entanto, percebi que, apesar do fato de eu ter suporte para a autenticação Kerberos AES, ele não está habilitado por padrão para nenhum usuário. Eu tenho que realmente entrar em propriedades de um usuário e marcar "Esta conta suporta criptografia AES 128 bit Kerberos" e / ou "Esta conta suporta criptografia Kerberos AES 256 bit" para ativá-lo.

(percebi isso pela primeira vez ao adicionar uma conta de teste ao grupo "Usuários protegidos", que define a política para exigir o AES. Depois, todos os logins da minha rede começaram a falhar até que eu verifiquei essas caixas.)

Eu acho que isso pode estar desabilitado por padrão para garantir a compatibilidade com versões anteriores de alguns sistemas, mas não consigo encontrar uma maneira de habilitar isso para todos os usuários, ou mesmo uma explicação do comportamento atual.

Alguma idéia?

    
por Reid Rankin 30.07.2014 / 06:19

1 resposta

8

Marcar as caixas de seleção Kerberos AES para os usuários causaria falhas de autenticação em clientes pré-Vista. Este é provavelmente o motivo pelo qual não é definido por padrão.

As caixas de seleção de suporte AES do Kerberos correspondem ao valor definido em um atributo chamado msDS-SupportedEncryptionTypes

Para alterar isso para mais de um usuário, você pode utilizar o PowerShell e o módulo 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)}
    }
}
    
por 01.08.2014 / 00:03