Wie speichere ich RSA-Schlüsselpaare in Windows?

Wie speichere ich RSA-Schlüsselpaare in Windows?

Ich versuche, ein einfaches Verschlüsselungs-Entschlüsselungsprogramm mit Openssl-RSA zu schreiben. Beim Verschlüsseln von Daten wird ein Schlüsselpaar generiert. Wenn ich die Daten entschlüsseln möchte, benötige ich das genaue Schlüsselpaar, das beim Verschlüsseln generiert wurde.

Wo und wie speichere ich also dieses Schlüsselpaar, damit ich den verschlüsselten Inhalt nach Möglichkeit entschlüsseln kann?

Ich verwende den öffentlichen Schlüssel zur Verschlüsselung und den privaten Schlüssel zur Entschlüsselung.

Antwort1

Technisch gesehen können Sie das Schlüsselpaar speichern, wo immer Sie möchten, es gibt jedoch einige gängige Vorgehensweisen.

Wenn die Daten besonders vertraulich sind und nicht regelmäßig/ständig benötigt werden, ist die sicherste Methode, Ihren privaten Schlüssel aufzubewahren, ein USB-Stick oder ein ausgedruckter Zettel in einem Safe oder Banktresor. (Beachten Sie, dass Sie den öffentlichen Schlüssel überall speichern können – es handelt sich schließlich um eine „öffentliche“ Information.)

Wenn Sie die Daten schnell zugänglich haben müssen, ist es normalerweise nicht praktisch, den privaten Schlüssel offline in einem Safe oder Tresor zu speichern, da es mühsam ist, ihn jedes Mal abzurufen. Ein gängiger Speicherort, der oft zur Schlüsselspeicherung verwendet wird, ist ein Ordner .sshin Ihrem Home-Verzeichnis. (Dies ist die Standardeinstellung in OpenSSL unter Linux und wird auch oft auf anderen Systemen verwendet.) Die gängige Praxis besteht darin, den Schlüssel in zwei Dateien mit Namen zu speichern, die sie folgendermaßen beschreiben: purpose_typefür den privaten Schlüssel und purpose_type.pubfür den öffentlichen Schlüssel. Wenn Sie beispielsweise die OpenSSL-Befehlszeile verwenden, um einen RSA-Schlüssel zu erstellen, der identifiziertDu, wird es standardmäßig in den Dateien id_rsaund id_rsa.pubim .sshVerzeichnis gespeichert. In Ihrem Fall könnten Sie die Schlüsseldateien etwa wie mydatastorage_rsaund benennen mydatastorage_rsa.pub.

WICHTIG: Wenn Sie einen privaten Schlüssel auf diese Weise speichern, wird dringend empfohlen, ihn mit einer Passphrase zu sichern. Dadurch wird verhindert, dass jemand, der Zugriff auf Ihre Dateien erhält, Ihren privaten Schlüssel verwenden kann. Möglicherweise wurden Sie beim ursprünglichen Erstellen des Schlüsselpaars aufgefordert, eine Schlüsselpassphrase anzugeben. Wenn nicht, können Sie dem privaten Schlüssel mithilfe der OpenSSL-Befehlszeilentools eine Passphrase hinzufügen.

Wenn Sie viel mit vertraulichen Verschlüsselungsaufgaben zu tun haben, können Sie einen Hardware-Schlüsselspeicher kaufen, ein sogenanntes „Hardware Security Module“, abgekürzt „HSM“, das für die sichere Speicherung privater Schlüssel konzipiert ist. Sofern Sie nicht tatsächlich in der Sicherheits-/Verschlüsselungsbranche arbeiten, ist dies mit ziemlicher Sicherheit übertrieben. Es gibt auch andere Hardwarelösungen, darunter „Smart Cards“ und „USB Crypto Tokens“, die billiger als ein vollständiges HSM sind, aber dennoch eine gewisse Investition in Hardware erfordern, die wahrscheinlich höher ist als Sie benötigen.


Trotz der Empfehlung, einen privaten Schlüssel mit einem Passwort zu sichern, können Probleme auftreten, wenn Sie diese Entschlüsselung innerhalb eines Dienstes wie einem Webserver durchführen müssen. In diesem Fall haben Sie drei Möglichkeiten:

  1. Geben Sie die Passphrase bei jedem Start der Serveranwendung ein.
  2. Geben Sie die Passphrase in einer Konfigurationsdatei an. (Wird nur von einigen Servern unterstützt)
  3. Entfernen Sie die Passphrase (oder legen Sie gar keine fest).

Die erste Option ist zwar die sicherste, kann aber nur verwendet werden, wenn Sie den Dienst jedes Mal manuell starten. Wenn Sie eine der anderen Optionen verwenden müssen, stellen Sie sicher, dass Sie die Konfigurationsdatei (Option 2) oder den privaten Schlüssel (Option 3) ordnungsgemäß sichern, um den Zugriff darauf zu verhindern.

verwandte Informationen