[cifs-protocol] of SupportedEncTypes and msDS-SupportedEncryptionTypes

Bill Wesse billwe at microsoft.com
Mon Dec 21 07:18:45 MST 2009

Good morning Matthieu - We have created the below case to track our work against your questions:

SRX091220600031 [MS-ADTS] msDs-supportedEncryptionTypes usage

I will begin my investigation this morning, and will advise you of my progress by close of business tomorrow (Tuesday Dec 22 GMT-5) at the latest.

I confirm the msDS-SupportedEncryptionTypes attribute is not set when a Windows 2000 or Windows XP client joins a Windows 2008 domain.

I will next check the msDS-SupportedEncryptionTypes attribute with a Windows 2003 server on a 2008 domain, and expect to verify the behavior within several hours (once my virtual machine has completed installation).

Bill Wesse
MCSE, MCTS / Senior Escalation Engineer, US-CSS DSC PROTOCOL TEAM
8055 Microsoft Way
Charlotte, NC 28273
TEL:  +1(980) 776-8200
CELL: +1(704) 661-5438
FAX:  +1(704) 665-9606

-----Original Message-----
From: Matthieu Patou [mailto:mat+Informatique.Samba at matws.net] 
Sent: Sunday, December 20, 2009 7:01 AM
To: cifs-protocol at samba.org; Interoperability Documentation Help; pfif at tridgell.net
Subject: of SupportedEncTypes and msDS-SupportedEncryptionTypes


Back in august and september we discuss in case SRX090808600017 about 
supportedEncTypes and I was quite happy with your answer.

I'm coming back on this subject for two details:

* this blog entry (of msdn) 
says :" Although this attribute is present in all the computer objects 
of the domain regardless of the version of the OS the physical machines 
have installed, not all of them are aware of its existence hence, older 
versions (2003 and earlier) do not populate it at any time."  It means 
that when I join a w2k8 domain with a XP workstation that the DC will 
create a computer object for this XP workstation and set the 
msDS-SupportedEncryptionTypes attribute ? if so to which value ? On my 
tests when I join a w2k3 server to a w2k8 domain the attribute 
SupportedEncryptionTypes is not set. Can this point be clarified and if 
possible written in a formal document

This entry also state: "

When the KDC checks the attribute to decide what encryption algorithm to 
use in order to encrypt the ticket, it could find basically two scenarios:

1)      The attribute is populated

2)      The attribute is empty

If the attribute is populated, then the deal is done since the KDC can 
determine the best common algorithm to encrypt the ticket with the value 

However, if the attribute is empty then the KDC will have to work harder 
being the next step to check another attribute. This attribute is 
defined in MS-ADA3 (section 2.341) and described in MS-ADTS (section 
2.2.15) and it's called userAccountControl. This attribute is also a 4 
byte Bit Mask that defines many aspects of the account but the only one 
the KDC is interested in is the DK (ADS_UF_USE_DES_KEY_ONLY ) bit.

This bit defines what legacy encryption method will be used:

1)      If the bit is set, then only DES will be used

2)      If the bit is NOT set, then DES and RC4 can be used

This check is especially relevant in domains that have Win7 and Windows 
Server 2008 R2 machines joined because those two newer OSs disable their 
bit by default so older DES is not an option for them."

* What is the exact meaning of ADS_UF_USE_DES_KEY_ONLY ? if a w2k8 
server acting as a domain member within a w2k8 domain has this DK bit 
set, will the DC not use AES but only DES with it ?

* "This check is especially relevant in domains that have Win7 and 
Windows Server 2008 R2 machines joined because those two newer OSs 
disable their bit by default so older DES is not an option for them.", 
well it seems that a w2k3 server member of w2k8 domain do not have this 
bit set also (userAccountControl=4096 => only WT flag set).

* Also neither MS-LSAD nor MS-NRPC talk about the link between the 
attribute msDS-SupportedEncryptionTypes stored in the AD and the fact 
that it's returned as SupportedEncTypes in NETLOGON_DOMAIN_INFO  call.
I can understand that it can be called "secret" of implementation but 
when after a workstation tries to update this attribute to let the DC 
know what are the supported encoding it's better to clarify the link.

Thank you for help with clarifying those points.


More information about the cifs-protocol mailing list