Onde as chaves privadas de certificado são armazenadas no Windows 7?

12

Usando o certmgr.mscutilitário, posso acessar a loja de certificados do Windows, mas ainda não consigo descobrir onde o Windows armazena as chaves privadas.

Por exemplo, para um determinado certificado, o Windows diz que há uma chave privada associada a este certificado. Mas onde posso encontrá-lo fisicamente?

TheByeByeMan
fonte

Respostas:

14

As chaves são armazenadas através da API de criptografia da Microsoft : CNG ( Next Generation ).

Locais de armazenamento:

  • Usuário privado:
    %APPDATA%\Microsoft\Crypto\Keys
  • Sistema local privado:
    %ALLUSERSPROFILE%\Application Data\Microsoft\Crypto\SystemKeys
  • Serviço local privado:
    %WINDIR%\ServiceProfiles\LocalService
  • Serviço de rede privado:
    %WINDIR%\ServiceProfiles\NetworkService
  • Privado compartilhado:
    %ALLUSERSPROFILE%\Application Data\Microsoft\Crypto\Keys

Descrição:

O CNG fornece um modelo para armazenamento de chave privada que permite a adaptação às demandas atuais e futuras da criação de aplicativos que usam recursos de criptografia, como criptografia de chave pública ou privada, bem como às demandas do armazenamento de material de chave. O roteador de armazenamento de chaves é a rotina central desse modelo e é implementado no Ncrypt.dll. Um aplicativo acessa os fornecedores de armazenamento de chaves (KSPs) no sistema por meio do roteador de armazenamento de chaves, que oculta detalhes, como isolamento de chave, do aplicativo e do próprio provedor de armazenamento. A ilustração a seguir mostra o design e a função da arquitetura de isolamento de chave CNG. Fonte
Arquitetura de armazenamento de chaves

Nota :

Conforme observado por Tim G, as chaves não são legíveis no nível do arquivo, pois são criptografadas no processo de armazenamento através da API do CNG.

cubo
fonte
4
Esses locais de chave estão corretos, mas eu tenho um ponto de ênfase / clareza: os serviços de isolamento de chave do Windows obscurecem as chaves, para que não sejam legíveis no nível do usuário ou administrador de dentro do sistema operacional. (Eles são visíveis como arquivos no Explorer, mas você não pode despejar o conteúdo verdadeiro em um visualizador hexadecimal ou como ASCII feio no bloco de notas - ainda seria ASCII feio, mas não a representação verdadeira como nos sistemas Unixoid.)
Tim G
@ TimG Você pode me indicar alguma documentação que descreva esse obscurecimento? (Eu percebo que é um pouco tarde, mas posso esperar ...)
Martin Bonner apoia Monica