Öffentlicher Schlüssel, privater Schlüssel und asymmetrische Kryptographie
In diesem Artikel haben wir die Konzepte von öffentlichen Schlüsseln, privaten Schlüsseln und die Prinzipien der asymmetrischen Verschlüsselung eingeführt. Wir haben ihre Vor- und Nachteile gegenüber der symmetrischen Verschlüsselung verglichen, sowie die Unterschiede in ihren Anwendungsszenarien.
Du hast vielleicht in vielen Kontexten von privaten Schlüsseln und öffentlichen Schlüsseln gehört, aber weißt du wirklich, was sie sind?
Asymmetrische Kryptographie vs. symmetrische Kryptographie
Private Schlüssel und öffentliche Schlüssel sind Konzepte in der asymmetrischen Kryptographie (auch bekannt als Public-Key-Kryptographie, PKC).
Asymmetrische Kryptographie bezieht sich auf eine Methode zum Verschlüsseln oder Signieren von Daten mit zwei verschiedenen Schlüsseln (privater Schlüssel + öffentlicher Schlüssel), die der Notwendigkeit der Entschlüsselung oder Signaturüberprüfung entspricht. Der öffentliche Schlüssel ist für jeden sichtbar, während der private Schlüssel nur dem Schlüsselinhaber zur Verfügung steht. Du kannst das leicht aus den Namen der Schlüssel erkennen.
Ebenso kannst du wahrscheinlich erraten, dass sich symmetrische Kryptographie auf die Methode bezieht, dieselben Schlüssel zum Verschlüsseln und Entschlüsseln von Daten zu verwenden.
Wir verwenden daher einfache Anmerkungen, um den Verschlüsselungs-/Entschlüsselungsprozess sowohl der symmetrischen als auch der asymmetrischen Kryptographie zu zeigen.
Es ist wichtig zu beachten, dass die Verschlüsselungs-/Entschlüsselungsfunktionen in symmetrischen und asymmetrischen Verschlüsselungsalgorithmen unterschiedlich sind und oft verschiedene Algorithmen verwenden. Häufige symmetrische Verschlüsselungsalgorithmen sind DES, AES, RC2, RC4 und andere, während häufige asymmetrische Verschlüsselungsalgorithmen RSA und EC umfassen.
Logto verwendet den EC-Algorithmus für die Datenübertragungskodierung und -dekodierung, da er effizienter und sicherer als RSA ist. Du kannst diesen Artikel für weitere Details lesen. Logto wird auch RSA in der nächsten Version unterstützen, um eine bessere Kompatibilität mit einigen Altsystemen zu gewährleisten.
Warum asymmetrische Kryptographie verwenden?
Asymmetrische Kryptographie adressiert das Problem der Schlüsselverteilung in der symmetrischen Kryptographie.
Da symmetrische Verschlüsselung denselben Schlüssel verwendet, kann das Verteilen des Schlüssels über eine unsichere Netzwerkverbindung riskieren, den Schlüssel an böswillige Dritte zu enthüllen. Ein böswilliger Dritter könnte den gestohlenen Schlüssel verwenden, um auf jede mit diesem Schlüssel verschlüsselte Information zuzugreifen, was ein erhebliches Sicherheitsrisiko darstellen würde.
Zwei häufige Anwendungsfälle asymmetrischer Kryptographie
Verschlüsselte Daten senden
Der Absender kann den öffentlichen Schlüssel des Empfängers verwenden, um Informationen zu verschlüsseln, und der Empfänger verwendet seinen privaten Schlüssel, um die Informationen zu entschlüsseln.
Da öffentliche Schlüssel theoretisch vielen Menschen zur Verfügung stehen, kann der Empfänger im Idealfall verschlüsselte Informationen von vielen Absendern erhalten. Darüber hinaus können mehrere Absender nicht wissen, welche Art von Informationen andere Absender an den Empfänger gesendet haben, da nur der Empfänger (der Inhaber des privaten Schlüssels) die Informationen entschlüsseln und wiederherstellen kann.
Öffentliche Schlüssel und private Schlüssel werden oft gleichzeitig generiert. Was wir oben erwähnt haben, ist die Erzeugung von privaten Schlüsseln und öffentlichen Schlüsseln auf einer Seite und dann die Verteilung des öffentlichen Schlüssels an ihre Benutzer. Wenn du eine sichere Kommunikation zwischen beiden Parteien sicherstellen musst, müssen beide Parteien ihre eigenen privaten Schlüssel und öffentlichen Schlüssel generieren und dann ihre jeweiligen öffentlichen Schlüssel austauschen. Auf diese Weise haben beide Parteien die öffentlichen Schlüssel des anderen und können ihre eigenen privaten Schlüssel und den öffentlichen Schlüssel der anderen Partei für die Verschlüsselung und Entschlüsselung verwenden.
Eine Signatur verwenden, um die Datenintegrität zu gewährleisten
In der asymmetrischen Kryptographie kann die Partei, die den privaten Schlüssel hält, die gesendeten Daten signieren. Anschließend kann der Empfänger mit dem öffentlichen Schlüssel die Konsistenz der Daten und der Signatur überprüfen, wenn er die Daten empfängt, um sicherzustellen, dass die Daten während der Übertragung nicht manipuliert wurden.
Unter Verwendung der Anmerkungen, die wir im vorherigen Abschnitt definiert haben, können die Signierung und die Signaturüberprüfung wie folgt dargestellt werden:
Die Überprüfung der digitalen Signatur beweist, dass die Partei, die die Signatur erzeugt, den entsprechenden privaten Schlüssel kennt.
Du findest die oben erwähnten beiden Anwendungsfälle wahrscheinlich sehr vertraut. In unserem täglichen Leben verwenden fast alle Dienste mit Server-Client-Architektur asymmetrische Kryptographie, um die Datensicherheit zu gewährleisten.
Als schnell wachsender Identitätsrahmen für Benutzer verwendet Logto auch umfangreich PKC, um die Sicherheit der Benutzerdaten zu gewährleisten. Nachdem Benutzer den Anmeldeprozess abgeschlossen haben, stellt Logto den Benutzern ein Zugriffstoken aus, um ihnen spezifische Berechtigungen zum Zugriff auf die erforderlichen Ressourcen zu gewähren. Der veröffentlichte öffentliche Schlüssel von Logto wird verwendet, um zu überprüfen, dass das Zugriffstoken tatsächlich von Logto ausgegeben wurde und nicht von böswilligen Angreifern manipuliert wurde.
Nachteile der asymmetrischen Kryptographie
Im Allgemeinen beträgt die Schlüssellänge für symmetrische Verschlüsselung 128 oder 256 Bit, während die Schlüssellänge für asymmetrische Verschlüsselung bis zu 4.096 Bit betragen kann. Das liegt daran, dass der private Schlüssel und der öffentliche Schlüssel mathematisch miteinander verbunden und einzigartige Schlüsselpaar sind. Theoretisch erlaubt das Wissen des öffentlichen Schlüssels die Berechnung des Werts des privaten Schlüssels, aber aufgrund der Komplexität der beteiligten Algorithmen dauert dies oft eine beträchtliche Zeit. Um die Aufgabe des "Knackens" des privaten Schlüssels "unmöglich" zu machen, ist die Verwendung von längeren Schlüssellängen ein einfacher Ansatz.
Erkenntnisse
Asymmetrische Verschlüsselung verbraucht im Vergleich zu symmetrischer Verschlüsselung während der Berechnungen mehr Rechenressourcen und Zeit, wie im vorherigen Abschnitt besprochen. In Anwendungen, in denen die Kommunikation häufig ist, kann die weit verbreitete Verwendung asymmetrischer Verschlüsselung die Leistung und Benutzererfahrung beeinträchtigen.
In Geschäftsszenarien werden symmetrische und asymmetrische Verschlüsselung oft zusammen verwendet, um die Leistung und die Datensicherheit auszugleichen. Wenn du deinen eigenen Dienst aufbaust, kannst du die Anforderungen an die Datensicherheit in jeder Phase berücksichtigen und entsprechend die geeigneten Verschlüsselungsalgorithmen wählen.