[cifs-protocol] [REG:116052414204136] [MS-GSSA] DDNS TSIG MAC calculation vs DNS name compression
bburgin at microsoft.com
Tue May 24 15:58:37 UTC 2016
[Dochelp to bcc]
[+case number, +casemail]
Thank you for your question. We created SR 116052414204136 to track this issue. An engineer from the protocols team will contact you soon.
From: Ralph Boehme [mailto:slow at samba.org]
Sent: Tuesday, May 24, 2016 8:53 AM
To: Interoperability Documentation Help <dochelp at microsoft.com>
Cc: metze at samba.org; Garming Sam <garming at catalyst.net.nz>; cifs-protocol at lists.samba.org
Subject: [MS-GSSA] DDNS TSIG MAC calculation vs DNS name compression
I'm seeking clarification about an interop issue we ran into in the area of DNS TSIG MAC verification.
We observed the following (trace secure-updates-fail2-4.3.1.pcapng
1. Samba 4 DC
2. Windows 7 client attempts unauthenticated DDNS (p.7)
3. server rejects this (p.8)
4. Windows 7 client attemping DDNS update with TKEY/TSIG:
- Windows 7 client sends DNS request with TKEY record (p.14)
- server DNS response packet contains TKEY and TSIG records (p.16)
5. client does *not* send DNS update with TSIG, instead it goes back
to step 2
Looking closely at the TSIG server response, we noticed that Samba uses DNS name compression  in the TSIG record (p.16, answer record, name field).
Comparing against DDNS updates between a Windows DC and a Windows client, we found that server and client avoid name compression in TKEY and TSIG records.
Changing the Samba DNS response marshalling routines to not use name compression fixed the interop issue and the tested Windows clients now happily do TSIG protected DDNS updates (after fixing two related bugs in our code ).
Neither RFC 2845, nor RFC 3645 or MS-GSSA cover this and mention how names in TSIG and TKEY records should be marshalled.
Can you please confirm, that by sticking to the rule of "don't use name compression in TSIG and TKEY records" we can avoid all interop issues with Windows clients in this area?
Should this be added to MS-GSSA?
 RFC 1035, 4.1.4. Message compression  <https://git.samba.org/?p=slow/samba.git;a=log;h=refs/heads/dns-tkey>
More information about the cifs-protocol