Mein (wenn auch begrenztes) Verständnis der asymmetrischen Public-Key-Kryptographie besteht darin, dass der öffentliche Schlüssel dazu bestimmt ist, mit allen geteilt zu werden, während der private Schlüssel geheim gehalten wird.
Angenommen, ich speichere den öffentlichen Schlüssel meines lokalen Rechners auf einem Remote-Webserver und verschlüsselte Informationen (mit meinem privaten Schlüssel), die ich an diesen Server sende, werden von einer anderen Partei abgefangen, die ebenfalls über meinen öffentlichen Schlüssel verfügt. Bedeutet das nicht, dass diese Partei auch meine verschlüsselten Informationen entschlüsseln kann?
Wenn ja, bedeutet das, dass ich den öffentlichen Schlüssel nur mit einer Partei teilen sollte – in diesem Fall dem Server –, was meinem Verständnis des Zwecks eines öffentlichen Schlüssels widerspricht? Kann ich auf meinem lokalen Computer verschiedene Schlüsselpaare für verschiedene Anwendungen haben?
Antwort1
Sie senden keine Informationen an den Server, die mit Ihrem privaten Schlüssel verschlüsselt sind. Wenn Sie eine sichere Verbindung mit dem Server herstellen, generiert die Software auf dem Server einen neuen symmetrischen Verschlüsselungsschlüssel, verschlüsselt ihn mit Ihrem öffentlichen Schlüssel und sendet ihn an Sie. Anschließend entschlüsseln Sie ihn mit Ihrem privaten Schlüssel und verwenden diesen symmetrischen Verschlüsselungsschlüssel für die Daten, die Sie an den Server senden. Ganz abgesehen von den Sicherheitsaspekten ist die Verschlüsselung mit öffentlichen/privaten Schlüsseln zu CPU-intensiv, um sie bei allen Datenübertragungen zu verwenden – sie wird normalerweise nur zum Verschlüsseln anderer Verschlüsselungsschlüssel oder für digitale Signaturen verwendet.
Antwort2
Dort sind dreisehrverschiedene Dinge, die Sie mit einem Public-Key-System tun können:
Private Daten versenden: Hierfür verwenden Sie nicht Ihren öffentlichen Schlüssel, sondern den öffentlichen Schlüssel des Ziels. Die Daten können daher nur mit dessen privatem Schlüssel entschlüsselt werden.
Öffentliche Daten signieren: Wenn Sie etwas mit Ihrem privaten Schlüssel verschlüsseln, kann jeder (mit Ihrem öffentlichen Schlüssel) es entschlüsseln und lesen, aber dannwissendass Sie es geschrieben haben und dass es nicht verändert wurde. In der Praxis wird nicht die gesamte Nachricht verschlüsselt, sondern nur eine Prüfsumme, die als Signatur verwendet wird.
Einen privaten Kanal einrichten: Dies ist komplexer, die gängigste Methode ist dieDiffie-Hellman-Schlüsselaustauschprotokoll. Dieser kurze Austausch ermöglicht es den beiden Parteien, ein gemeinsames Geheimnis zu generieren, und selbst wenn jemand die Kommunikation abfängt, erhält er dieses gemeinsame Geheimnis nicht, wenn er nicht über einen der privaten Schlüssel verfügt. Anschließend wird das gemeinsame Geheimnis verwendet, um den Rest der Kommunikation zu verschlüsseln.
Ich denke, Sie haben Beschreibungen der ersten beiden Fälle gelesen, aber Ihre Frage (undMike Scotts Antwort) schien ungefähr der dritte zu sein.
Antwort3
Mit dem öffentlichen Schlüssel können Sie verschlüsseln und zum Entschlüsseln an den Inhaber des privaten Schlüssels senden. Mit dem öffentlichen Schlüssel ist eine Entschlüsselung nicht möglich.
Sie könnten viele verschiedene Schlüsselpaare auf einer Maschine haben.
Antwort4
Der öffentliche Schlüssel wird von SSH nur dazu verwendet, die Identität des Inhabers des entsprechenden privaten Schlüssels festzustellen. Mit einem öffentlichen SSH-Schlüssel können Sie lediglich feststellen, ob ein kooperierender Authentifizierungsagent den entsprechenden privaten Schlüssel besitzt oder nicht.