Determinando o nome do contêiner de criptografia correspondente à chave da máquina em% ProgramData% \ Microsoft \ Crypto \ RSA \ MachineKeys

3

No Windows, as chaves do computador de criptografia são armazenadas em:% ProgramData% \ Microsoft \ Crypto \ RSA \ MachineKeys

Como determino o nome do contêiner correspondente para cada chave?

Eu estou supondo que essa imprecisão é intencional - "segurança pela obscuridade"?

    
por stephen_liu 18.07.2015 / 21:23

1 resposta

2

Foreach ($MachineCert In Get-ChildItem Cert:\LocalMachine -Recurse | Where HasPrivateKey)
{
    $MachineCert | 
       Select @{n='Subject';   e={ $MachineCert.Subject }},
              @{n='Container'; e={ $MachineCert.PrivateKey.CspKeyContainerInfo.UniqueKeyContainerName }},
              @{n='Store';     e={ $MachineCert.PSParentPath }}
}


Subject               Container                    Store                                                                                                     
-------               ---------                    -----                                                                                                      
CN=Ryan-Win81-2014    f686aa...9dfa-7c3d5dc833ac   Remote Desktop                                       
CN=localhost          fad662...9dfa-7c3d5dc833ac   My

Note que você provavelmente precisará de elevação do administrador / UAC antes de poder ler certas propriedades de certos certificados.

Eu não posso dizer com certeza que a "indefinição" é intencional, mas não me surpreenderia. A maioria das pessoas não entende o que são certificados X509 ou quais são as chaves privadas, nem a maioria das pessoas se importa, infelizmente. Ao fazer isso por você, o Windows pode pelo menos ocultar as chaves privadas em um local relativamente seguro no sistema de arquivos, já que se a maioria dos usuários tivesse que lidar com chaves particulares, eles simplesmente deixariam as chaves privadas em seus desktops. .

    
por 19.07.2015 / 17:22