Wo werden private Zertifikatschlüssel in Windows 7 gespeichert?


12

Mit dem certmgr.mscDienstprogramm kann ich auf den Windows-Zertifikatspeicher zugreifen, aber ich kann immer noch nicht herausfinden, wo Windows die privaten Schlüssel speichert.

Beispielsweise teilt mir Windows für ein bestimmtes Zertifikat mit, dass diesem Zertifikat ein privater Schlüssel zugeordnet ist. Aber wo kann ich es physisch finden?

Antworten:


14

Die Schlüssel werden über die Cryptography API: Next Generation (CNG) von Microsoft gespeichert .

Lagerorte:

  • Benutzer privat:
    %APPDATA%\Microsoft\Crypto\Keys
  • Lokales System privat:
    %ALLUSERSPROFILE%\Application Data\Microsoft\Crypto\SystemKeys
  • Lokaler Service privat:
    %WINDIR%\ServiceProfiles\LocalService
  • Netzwerkdienst privat:
    %WINDIR%\ServiceProfiles\NetworkService
  • Privat geteilt:
    %ALLUSERSPROFILE%\Application Data\Microsoft\Crypto\Keys

Beschreibung:

CNG bietet ein Modell für die Speicherung privater Schlüssel, mit dem sich die aktuellen und zukünftigen Anforderungen an die Erstellung von Anwendungen anpassen lassen, die Kryptografiefunktionen wie die Verschlüsselung mit öffentlichen oder privaten Schlüsseln verwenden, sowie die Anforderungen an die Speicherung von Schlüsselmaterial. Der Schlüsselspeicher-Router ist die zentrale Routine in diesem Modell und in Ncrypt.dll implementiert. Eine Anwendung greift über den Schlüsselspeicherrouter auf die Schlüsselspeicheranbieter (KSPs) im System zu, wodurch Details wie die Schlüsselisolierung sowohl von der Anwendung als auch vom Speicheranbieter selbst verborgen werden. Die folgende Abbildung zeigt den Aufbau und die Funktion der CNG-Schlüsselisolationsarchitektur. Quelle
Schlüsselspeicherarchitektur

Hinweis :

Wie von Tim G festgestellt, sind die Schlüssel auf Dateiebene nicht lesbar, da sie beim Speichern über die CNG-API verschlüsselt werden.


4
Diese Schlüsselpositionen sind korrekt, aber ich habe einen Schwerpunkt / eine Klarheit: Windows-Schlüsselisolationsdienste verdecken die Schlüssel, sodass sie auf Benutzer- oder Administratorebene vom Betriebssystem aus nicht wie sie sind lesbar sind. (Sie sind im Explorer als Dateien sichtbar, aber Sie konnten ihren wahren Inhalt nicht in einem Hex-Viewer oder als hässliches ASCII im Editor ausgeben - es wäre immer noch hässliches ASCII, nur nicht die wahre Darstellung wie in Unixoid-Systemen.)
Tim G

@TimG Können Sie mich auf eine Dokumentation verweisen, die diese Verschleierung beschreibt? (Mir ist klar, dass es etwas spät ist, aber ich kann hoffen ...)
Martin Bonner unterstützt Monica
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.