[cifs-protocol] [Pfif] MS-NRPC: AES Schannel problems
Hongwei Sun
hongweis at microsoft.com
Wed Sep 16 10:37:40 MDT 2009
Metze,
I think that Nick already informed you that AES 128 with 8 bit CFB mode has to be used. I filed a request to add the information into 3.1.4.4 of MS-NRPC. I also noticed that in mxnrpc.c you attached , you used AES_cfb128_encrypt() (128 bit CFB mode) for computing server credential. Please let us know if you have resolved the issue and if we can provide further help.
Meanwhile, I provide some sample values that I captured from debugger for you to verify your logic.
OWF Password :
13 c0 b0 4b 66 25 0d 08-b8 a3 90 4d cc 8b 34 e3
Client Challenge:
25 63 e3 5f 69 e1 5a 24
Server Challenge:
9C 66 5F 90 D9 83 DF 43
Session Key calculated:
c9 c7 f7 2f c6 b9 13 e3-67 ae a9 1d 0a e3 a7 70
Client Credential:
58 6a df 53 ef 72 78 d9
Server Credential
E1 41 62 09 B2 3E 57 51
Thanks!
Hongwei
-----Original Message-----
From: Stefan (metze) Metzmacher [mailto:metze at samba.org]
Sent: Monday, September 14, 2009 7:31 PM
To: Hongwei Sun
Cc: pfif at tridgell.net; cifs-protocol at samba.org; Nick Meier
Subject: Re: [Pfif] MS-NRPC: AES Schannel problems
now with attachment...
>>> We confirmed that AesCrypt follows the normative reference of [FIPS197] (http://www.csrc.nist.gov/publications/fips/fips197/fips-197.pdf). As far as the statement about AES128 encryption CFB mode, we also confirmed that we do use 0 as Initialize Vector(IV), so in this case all you have to do is set the IV to the 128-bit quantity consisting of all zeros. The reference we are using for CFB mode is [SP800-38A] ( http://csrc.nist.gov/publications/nistpubs/800-38a/sp800-38a.pdf ) which states that CFB mode requires a valid and unpredictable IV (Section 6.3). Zero is a valid IV, certainly not unpredictable. However, the unpredictability is required only to guard against specific types of attacks, which become possible when a single key is used to encrypt a large number of related plaintexts. Predictable IVs could be used in applications where this is not a concern.
>> thanks I'll try that.
>>
>> AES128 is also used in section 3.3.4.2.1 "Generating an Initial
>> Netlogon Signature Token" under 8., is that the same AesCrypt
>> function (also using CFB mode) with a just IV being contructed by
>> using the sequence number twice?
>
> I've tried to get that working, but it doesn't work:-(
>
> I've setup a trust between two w2k8r2 domains and captured the
> ServerReqChallenge and ServerAuthenticate3. And they're using Netlogon
> Schannel with AES. (They also use NDR64, wireshark doesn't handle this
> yet...)
>
> There're 5 ServerAuthenticate3 exchanges in the capture and I put the
> data into a simple standalone crypto challenge program.
>
> So all we need is to find the algorithm to recalculate the examples,
> changing the mxnrpc.c file.
>
> metze
>
>>> We will update the document with the correct references to the related statements in the MS-NRPC document.
>> It would be really nice if you could also add some more example
>> values in secion 4.2 Cryptographic Values for Session Key Validation.
>
More information about the cifs-protocol
mailing list