Tại sao tài khoản người dùng Active Directory không tự động hỗ trợ xác thực Kerberos AES?


8

Tôi đang chơi xung quanh với một miền thử nghiệm trên Windows Server 2012 R2. Tôi đang hoạt động ở mức chức năng cao nhất có thể và không có vấn đề tương thích ngược trong môi trường thử nghiệm nhỏ của tôi. Tuy nhiên, tôi đã nhận ra rằng mặc dù thực tế là tôi có hỗ trợ xác thực AES của Kerberos, nhưng nó không được bật theo mặc định cho bất kỳ người dùng nào. Tôi phải thực sự đi vào tài sản của người dùng và kiểm tra "Tài khoản này hỗ trợ mã hóa Kerberos AES 128 bit" và / hoặc "Tài khoản này hỗ trợ mã hóa Kerberos AES 256 bit" để kích hoạt nó.

(Lần đầu tiên tôi nhận ra điều này khi thêm tài khoản kiểm tra vào nhóm "Người dùng được bảo vệ", đặt chính sách yêu cầu AES. Sau đó, tất cả thông tin đăng nhập mạng của tôi bắt đầu không thành công cho đến khi tôi chọn các hộp đó.)

Tôi cho rằng điều này có thể bị tắt theo mặc định để đảm bảo khả năng tương thích ngược cho một số hệ thống, nhưng tôi không thể tìm cách kích hoạt tính năng này cho tất cả người dùng hoặc thậm chí giải thích về hành vi hiện tại.

Có ý kiến ​​gì không?

Câu trả lời:


10

Việc kiểm tra các hộp kiểm Kerberos AES cho người dùng sẽ gây ra lỗi xác thực trên các máy khách trước Vista. Đây có lẽ là lý do mà nó không được đặt theo mặc định.

Các hộp kiểm hỗ trợ AES của Kerberos tương ứng với giá trị được đặt trong một thuộc tính được gọi là msDS-SupportedEncryptionTypes

Để thay đổi điều này cho nhiều người dùng, bạn có thể sử dụng PowerShell và mô-đun 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)}
    }
}

Có cách nào để đặt mặc định này cho người dùng mới không?
Reid Rankin

2
Bạn có thể đặt mặc định này cho người dùng mới bằng cách sửa đổi lược đồ AD. Có lẽ bạn nên hỏi nó như một câu hỏi riêng nếu bạn muốn có câu trả lời chi tiết hơn.
Ryan Bolger

Vì các máy khách trước Vista đã không còn hỗ trợ trong nhiều năm nay, thật tuyệt nếu cuối cùng Microsoft cũng bật các loại mã hóa AES cho tất cả người dùng thiếu thuộc tính msDS -upportEncodingType.
Markus Kuhn
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.