Queste chiavi sono memorizzate nelle posizioni elencate in fondo a questo post. Molti amministratori di rete non sono a conoscenza dello scopo di questi file e alcuni post sul forum in modo errato consigliano alle persone di eliminare questi file. Naturalmente, l'impatto di tale azione è l'implementazione / l'applicazione specifica. Non ero in grado di leggere i file usando il seguente codice (forse sono necessarie alcune modifiche)
var files = System.IO.Directory.GetFiles(@"C:\ProgramData\Application Data\Microsoft\Crypto\RSA\MachineKeys\");
foreach (var f in files)
{
RSACryptoServiceProvider rsaKey = new RSACryptoServiceProvider();
var readFile = File.OpenRead( f.ToString());
byte[] FileOut = new byte[readFile.Length];
readFile.Read( FileOut, 0, (int)readFile.Length-1);
rsaKey.ImportCspBlob(FileOut);
}
Sembra che lo strumento "User State Migration tool" sia necessario per spostare questi dati da un computer a un altro. Inoltre, alcuni strumenti dovranno esporre le chiavi da CryptoAPI al CNG dopo tale spostamento.
Non sono a conoscenza di alcun modo per visualizzare i file correlati containerName
a cui si fa riferimento nel CSP.
The Microsoft legacy CryptoAPI CSPs
store private keys in the following
directories.
Utente privato
% APPDATA% \ Microsoft \ Crypto \ RSA \ SID utente \
% APPDATA% \ Microsoft \ Crypto \ DSS \ SID utente \
Sistema privato locale
% ALLUSERSPROFILE% \ Dati applicazioni \ Microsoft \ Crypto \ RSA \ S-1-5-18 \
% ALLUSERSPROFILE% \ Dati applicazioni \ Microsoft \ Crypto \ DSS \ S-1-5-18 \
Servizio locale privato
% ALLUSERSPROFILE% \ Dati applicazioni \ Microsoft \ Crypto \ RSA \ S-1-5-19 \
% ALLUSERSPROFILE% \ Dati applicazioni \ Microsoft \ Crypto \ DSS \ S-1-5-19 \
Servizio di rete privato
% ALLUSERSPROFILE% \ Dati applicazioni \ Microsoft \ Crypto \ RSA \ S-1-5-20 \
% ALLUSERSPROFILE% \ Dati applicazioni \ Microsoft \ Crypto \ DSS \ S-1-5-20 \
Privato condiviso
% ALLUSERSPROFILE% \ Dati applicazioni \ Microsoft \ Crypto \ RSA \ MachineKeys
% ALLUSERSPROFILE% \ Dati applicazioni \ Microsoft \ Crypto \ DSS \ MachineKeys
CNG stores private keys in the
following directories.
Utente privato
% Appdata% \ Microsoft \ Crypto \ Keys
Sistema privato locale
% ALLUSERSPROFILE% \ Dati applicazioni \ Microsoft \ Crypto \ SystemKeys
Servizio locale privato
% WINDIR% \ ServiceProfiles \ LocalService
Servizio di rete privato
% WINDIR% \ ServiceProfiles \ NetworkService
Privato condiviso
% ALLUSERSPROFILE% \ Dati applicazioni \ Microsoft \ Crypto \ Keys
Riferimento:
link
LDAP
Queste chiavi sono anche memorizzate in LDAP se il roaming delle credenziali è abilitato
ldifde.exe -s %LOGONSERVER% -f cscverify.ldf -r "(cn=USERNAME)" -l msPKIAccountCredentials,msPKIRoamingTimeStamp,msPKIDPAPIMasterKeys
Sostituisci la parola USERNAME in questo comando con il nome utente dove il roaming delle credenziali non funziona. Per garantire che la replica di Active Directory fosse già stata eseguita, utilizzare l'opzione -s nel comando e sostituire% LOGONSERVER% con il server a cui l'utente ha effettivamente effettuato l'accesso. Assicurarsi che il file cscverify.ldf mostri i valori per gli attributi esportati.
La dimensione delle voci LDAP è controllata dalle chiavi di registro DIMSRoarmingMaxNumTokens e DIMSRoamingMaxTokenSize ( origine )