Matthieu,
        
G$BCKUPKEY_PREFERRED and G$BCKUPKEY_guid are stored as LSA global secrets. The 
LSA global secret objects are replicated across domain controllers (DCs) in the 
same domain, so each DC can respond to secret requests of this type. This is 
specified in MS-BKRP 1.3.1 which cross-references [MS-LSAD] section 3.1.1.4. 
The global secrets are synchronized across DCs in the same domain, so that once 
the client discovers the DC and query a secret, it has the same key pair and 
corresponding guid that is currently used through the same domain.
MS-BKRP documents how Windows responds to BackupKey protocol queries received 
over the network. 

Regarding operations on the global secret objects related to the BackupKey 
protocol, since they are stored as MS-LSAD secret objects, they can be read 
and/or written using the same mechanisms documented in MS-LSAD 3.1.4.6 Secret 
Object Methods. In this particular case, you may for instance use MS-LSAD 
3.1.4.6.4 LsarQuerySecret (Opnum 30) or 3.1.4.6.6 LsarRetrievePrivateData 
(Opnum 43).
Depending on the context you want to perform these operations, it might just be 
simpler to use LsarRetrievePrivateData and supply the KeyName to retrieve the 
secret since there is no associated old value. 
Please see MS-LSAD for details on each method you are interested in.

MS-LSAD 3.1.4.6.6 LsarRetrievePrivateData (Opnum 43) The 
LsarRetrievePrivateData method is invoked to retrieve a secret value. 
NTSTATUS LsarRetrievePrivateData(
[in] LSAPR_HANDLE PolicyHandle,
[in] PRPC_UNICODE_STRING KeyName,
[in, out] PLSAPR_CR_CIPHER_VALUE* EncryptedData );
PolicyHandle: An RPC context handle obtained from either LsarOpenPolicy or 
LsarOpenPolicy2. 
KeyName: The name identifying the secret value to be retrieved. 
EncryptedData: Receives the encrypted value of the secret object. 
…
MS-LSAD 3.1.4.6.4 LsarQuerySecret (Opnum 30) The LsarQuerySecret method is 
invoked to retrieve the current and old (or previous) value of the secret 
object. 
NTSTATUS LsarQuerySecret(
[in] LSAPR_HANDLE SecretHandle,
[in, out, unique] PLSAPR_CR_CIPHER_VALUE* EncryptedCurrentValue, [in, out, 
unique] PLARGE_INTEGER CurrentValueSetTime, [in, out, unique] 
PLSAPR_CR_CIPHER_VALUE* EncryptedOldValue, [in, out, unique] PLARGE_INTEGER 
OldValueSetTime );
SecretHandle: An open secret object handle. 
EncryptedCurrentValue: Used to return the encrypted current value of the secret 
object. 
CurrentValueSetTime: Used to return the time when the current value was set. 
EncryptedOldValue: A BLOB representing the encrypted old value. It is valid for 
this parameter to be NULL, in which case the current value in the policy 
database is copied. 
OldValueSetTime: The time corresponding to the instant that the old value was 
last changed.
…

Best regards,
Edgar

-----Original Message-----
From: Edgar Olougouna 
Sent: Thursday, August 05, 2010 4:35 PM
To: '[email protected]'; '[email protected]'; '[email protected]'
Cc: MSSolve Case Email
Subject: [REG: 110080418357322] [MS-BKRP] 1.3.1 -- in a given domain there is 
only "active" rsa key

Hi Matthieu,

I am researching this issue and will update you as soon I complete my research.

Best regards,
Edgar

Issue verbatim
------------------

Second in paragraph 1.3.1 Call Flows, it is stated "For the ClientWrap 
subprotocol, the Microsoft implementation of the BackupKey Remote Protocol 
server stores the following LSA global secret objects (note that the LSA global 
secret names are Unicode strings):
1. G$BCKUPKEY_PREFERRED: This contains the 16-byte GUID ([MS-DTYP] section 
2.3.2.2) of the RSA key pair currently used for client-side secret wrapping.
2. G$BCKUPKEY_guid: Here, guid is the string GUID that identifies the wrapping 
key, formatted as a GUIDString ([MS-DTYP] section 2.3.2.3). The value of the 
secret object is the server's ClientWrap key pair, formatted as specified in 
section 2.2.5"

Should I conclude that in a given domain there is only "active" rsa key on all 
the server or said in another way no matter which server is asked at a given 
moment we will always receive the same GUID for the key ?

Also just to be sure this will be stored in the currentValue attribute but it 
will be only accessible through a lsaQuerySecret call right ?


-----Original Message-----
From: Bryan Burgin
Sent: Wednesday, August 04, 2010 10:12 PM
To: '[email protected]' 
Cc: [email protected]; [email protected]; MSSolve Case Email
Subject: RE: [REG:110071868986368] unused bytes after while decoding bkrp 
requests 

Matthieu, 

For your new issues, I created three new cases and dispatched them across the 
team 

110080417580961
[MS-BKRP] 3.1.4.1 "misc" 0x00020000 value 

110080418016869
[MS-BKRP]  3.1.4.1.3 -- version field and a GUID field no documented 

110080418357322
[MS-BKRP] 1.3.1 --  in a given domain there is only "active" rsa key 

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

Reply via email to