Estas claves se almacenan en las ubicaciones enumeradas al final de esta publicación. Muchos administradores de red no conocen el propósito de estos archivos, y algunas publicaciones de foros en la web aconsejan incorrectamente a las personas que eliminen estos archivos. Por supuesto, el impacto de tal acción es la implementación / aplicación específica. No pude leer los archivos con el siguiente código (quizás sea necesario algún cambio)
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);
}
Parece que la herramienta "Herramienta de migración de estado de usuario" es necesaria para mover estos datos de una computadora a otra. Además, alguna herramienta necesitará exponer las claves de CryptoAPI al CNG después de tal movimiento.
No conozco ninguna forma de ver los archivos relacionados containerName
referenciados en el CSP.
Los CSP de CryptoAPI heredados de Microsoft
almacenar claves privadas en los siguientes
directorios.
Usuario privado
% APPDATA% \ Microsoft \ Crypto \ RSA \ User SID \
% APPDATA% \ Microsoft \ Crypto \ DSS \ User SID \
Sistema local privado
% ALLUSERSPROFILE% \ Application Data \ Microsoft \ Crypto \ RSA \ S-1-5-18 \
% ALLUSERSPROFILE% \ Application Data \ Microsoft \ Crypto \ DSS \ S-1-5-18 \
Servicio local privado
% ALLUSERSPROFILE% \ Application Data \ Microsoft \ Crypto \ RSA \ S-1-5-19 \
% ALLUSERSPROFILE% \ Application Data \ Microsoft \ Crypto \ DSS \ S-1-5-19 \
Servicio de red privado
% ALLUSERSPROFILE% \ Application Data \ Microsoft \ Crypto \ RSA \ S-1-5-20 \
% ALLUSERSPROFILE% \ Application Data \ Microsoft \ Crypto \ DSS \ S-1-5-20 \
Privado compartido
% ALLUSERSPROFILE% \ Application Data \ Microsoft \ Crypto \ RSA \ MachineKeys
% ALLUSERSPROFILE% \ Application Data \ Microsoft \ Crypto \ DSS \ MachineKeys
CNG almacena claves privadas en el
siguientes directorios.
Usuario privado
% APPDATA% \ Microsoft \ Crypto \ Keys
Sistema local privado
% ALLUSERSPROFILE% \ Application Data \ Microsoft \ Crypto \ SystemKeys
Servicio local privado
% WINDIR% \ ServiceProfiles \ LocalService
Servicio de red privado
% WINDIR% \ ServiceProfiles \ NetworkService
Privado compartido
% ALLUSERSPROFILE% \ Application Data \ Microsoft \ Crypto \ Keys
Referencia:
enlace
LDAP
Estas claves también se almacenan en LDAP si se habilita el roaming de credenciales
ldifde.exe -s %LOGONSERVER% -f cscverify.ldf -r "(cn=USERNAME)" -l msPKIAccountCredentials,msPKIRoamingTimeStamp,msPKIDPAPIMasterKeys
Reemplace la palabra USERNAME en este comando con el nombre de usuario donde la credencial de itinerancia no funciona. Para asegurarse de que ya se realizó la replicación de Active Directory, use la opción -s en el comando y reemplace% LOGONSERVER% con el servidor en el que el usuario realmente inicia sesión. Asegúrese de que el archivo cscverify.ldf muestra valores para los atributos exportados.
El tamaño de las entradas LDAP está controlado por las claves de registro DIMSRoarmingMaxNumTokens y DIMSRoamingMaxTokenSize ( source )