On 24/09/2010 02:18, Matthieu Patou wrote:
 On 23/09/2010 22:41, Hongwei Sun wrote:
Matthieu,

What I meant is that the guidGUID field in client-side-wrapped-secret structure is only dependent on the SubjectUniqueID field in the public key certificate received from server. Actually the document states that all other fields (and extensions, if any) of the certificate are populated in implementation-specific ways and SHOULD be ignored by the client, but MS-BKRP still shows how these other fields are populated by the server in the Windows behavior note<5>.

I also took a look at the certificate you attached with your e-mail, I got the following output using certutil:

    X509 Certificate:
    Version: 3
    Serial Number: bd76df42470a008d473e743fa1dc8bbd

    Subject Unique Id:
0000 bd 8b dc a1 3f 74 3e 47 8d 00 0a 47 42 df 76 bd ....?t>G...GB.v.

We can see that SerialNumber and SubjectUniqueID are in reversed order. Does this mean that the SubjectUniqueID is in the same order as the GUID of certificate in AD as you refer to ?
Yeah ! It's in the correct order (the same that you'll find on the wire for the protocol)

By the way, What is the GUID of certificate in AD ? As I know, there is no GUID field in a X.509 certificate. The RSA key pairs are saved in a LSA global secret named G$BCKUPKEY_guid on DC. Is this the guid you are referring to ?
Yeah I made a shortcut speaking about the guid part of the G$BCKUPKEY (or the related entry in system subkey in the AD).
If the certificate you attached is received from a Windows server, we may need to update the Windows Behavior note<5> to state that SerialNumber and subjectUnique Id is in reversed order, instead of identical. Please confirm so I can follow up with a document update request. Hopefully this should not affect interoperability.
The cert comes from a w2k8r2 server, sure it's not too important, and that's the things that gives me the clue that maybe you were reversing more than 1 field in the whole protocol !


Btw you might be please (at least I am) to know that I have a working implementation of a torture test for the backup key remote protocol.

I'm eager to clean this test and to start the code of the server part.

While finishing the test I forgot to revert the bytes of the encrypted secret, and I still received an answer from the server saying that's ok. I didn't recheck the specification right now but this didn't look like the correct behavior.


Well this is in fact an error from me I confused between the smb call status (NT_STATUS_OK) and the status of the rpc WERR_xxx We do have an error code, just time to time we don't have ERROR_INVALID_DATA but another one (with the same test suite.

I hope that I'll be able to show you this behavior this week so that you can see why is it like this.


Matthieu.

--
Matthieu Patou
Samba Team        http://samba.org

_______________________________________________
cifs-protocol mailing list
[email protected]
https://lists.samba.org/mailman/listinfo/cifs-protocol

Reply via email to