[cifs-protocol] of SupportedEncTypes and msDS-SupportedEncryptionTypes
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] 18.104.22.168.3 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).
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
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