|
|
(5 dazwischenliegende Versionen von einem anderen Benutzer werden nicht angezeigt) |
Zeile 1: |
Zeile 1: |
| <h2>Verschlüsselungsmethoden</h2> | | <h2>Verschlüsselungsmethoden</h2> |
| <h3>Hash & salt</h3> | | <h3>Hash & salt</h3> |
− | Ein [http://de.wikipedia.org/wiki/Kryptologische_Hashfunktion hash] ist eine Funktion ähnlich einer [http://de.wikipedia.org/wiki/Pr%C3%BCfsumme Prüfsumme], welche unabhängig der Eingabe einen Wert mit konstanter Zeichenzahl liefert und zusätzlich die Eigenschaft besitzt nicht umkehrbar zu sein. Sprich, es ist nicht möglich aus dem Ergebnis der hash-Funktion den Eingabewert zurückzurechnen. Es ist extrem unwahrscheinlich, dass zwei unterschiedliche Eingaben zum gleichen hash führen. Außerdem, führt schon das Ändern eines einzelnen Zeichens der Quelle zu einem drastisch anderem hash. | + | Ein [http://de.wikipedia.org/wiki/Kryptologische_Hashfunktion hash] ist eine Funktion ähnlich einer [http://de.wikipedia.org/wiki/Pr%C3%BCfsumme Prüfsumme], welche unabhängig der Eingabe einen Wert mit konstanter Zeichenzahl liefert und zusätzlich die Eigenschaft besitzt nicht umkehrbar zu sein (Bild 1). Sprich, es ist nicht möglich aus dem Ergebnis der hash-Funktion den Eingabewert zurückzurechnen. Es ist extrem unwahrscheinlich, dass zwei unterschiedliche Eingaben zum gleichen hash führen. Außerdem, führt schon das Ändern eines einzelnen Zeichens der Quelle zu einem drastisch anderem hash. |
| + | <p> |
| + | [[File:hash.gif|hash]]<br> |
| + | ''Bild 1: Diagramm hash-Funktion'' |
| + | </p> |
| <p> | | <p> |
| Beispiel: Es spielt keine Rolle, ob dieser Text ge-hash-t wird, oder eine ganze DVD. Das Ergebnis wird immer eine Zeichenkette einer definierten Länge sein. Aus diesem Ergebnis lässt sich dann weder der Inhalt der DVD rekonstruieren noch dieser Text. | | Beispiel: Es spielt keine Rolle, ob dieser Text ge-hash-t wird, oder eine ganze DVD. Das Ergebnis wird immer eine Zeichenkette einer definierten Länge sein. Aus diesem Ergebnis lässt sich dann weder der Inhalt der DVD rekonstruieren noch dieser Text. |
| </p> | | </p> |
− |
| |
| Beispiele für hash-Funktion sind: | | Beispiele für hash-Funktion sind: |
| <ul> | | <ul> |
Zeile 16: |
Zeile 19: |
| | | |
| | | |
− | <h3>Symmetrishe Verschlüsselung</h3> | + | <h3>Symmetrische Verschlüsselung</h3> |
− | Bei der symmetrischen Verschlüsselung werden die Daten (oder der Text) mit Hilfe eines einzigen Schlüssels verschlüsselt und entschlüsselt. Das Verfahren funktioniert also mit dem selben Schlüssel in beide Richtungen. Ist dieser aufgeflogen, liegt die gesamte Kommunikation offen. Vorteil ist allerdings der relativ geringe Rechenaufwand (es ist schnell) und, dass diese Verfahren sogar von i5 & i7 CPUs in hardware unterstützt werden (noch schneller). Die Sicherheit hängt zudem auch von der Schlüssellänge ab. 256b gelten z.Z. als sicher.<br> | + | Bei der symmetrischen Verschlüsselung werden die Daten (oder der Text) mit Hilfe eines einzigen, gemeinsamen Schlüssels verschlüsselt und entschlüsselt (Bild 2). Das Verfahren funktioniert also mit dem selben Schlüssel in beide Richtungen. Ist dieser aufgeflogen, liegt die gesamte Kommunikation offen. Vorteil ist allerdings der relativ geringe Rechenaufwand (es ist schnell) und dass diese Verfahren sogar von i5 & i7 CPUs in hardware unterstützt werden (noch schneller). Die Sicherheit hängt zudem auch von der Schlüssellänge ab. 256b gelten z.Z. als sicher. |
− | <br> | + | <p> |
| + | [[File:sym_verschluesselung.gif|Symmetrische Verschlüsselung]]<br> |
| + | ''Bild 2: Diagramm symmetrischer Verschlüsselung'' |
| + | </p> |
| Beispiele für symmetrische Verschlüsselungsverfahren sind: | | Beispiele für symmetrische Verschlüsselungsverfahren sind: |
| <ul> | | <ul> |
Zeile 28: |
Zeile 34: |
| | | |
| <h3>Diffie-Hellman</h3> | | <h3>Diffie-Hellman</h3> |
− | [http://de.wikipedia.org/wiki/Diffie-Hellman Diffie-Hellman] ist genaugenommen weder eine Verschlüsselungsmethode, noch deren Anwendung. Es steht dazwischen: Um bei einer symmetrische Verschlüsselung nicht gezwungen zu sein den einen geheimen Schlüssel irgendwie austauschen zu müssen, lässt man es einfach. Stattdessen hat man eine Methode gefunden, wie dieser Schlüssel von beiden Seiten durch Kommunikation bestimmt werden kann ohne, dass er jemals übertragen wird. Ist er bestimmt worden, kann die symmetrische Verschlüsselung erfolgen. | + | [http://de.wikipedia.org/wiki/Diffie-Hellman Diffie-Hellman] ist genaugenommen weder eine Verschlüsselungsmethode, noch deren Anwendung. Es steht dazwischen: Um bei einer symmetrische Verschlüsselung nicht gezwungen zu sein den gemeinsamen Schlüssel irgendwie austauschen zu müssen, lässt man es einfach. Stattdessen hat man eine Methode gefunden, wie dieser Schlüssel von beiden Seiten durch Kommunikation bestimmt werden kann ohne, dass er jemals übertragen wird. Ist er bestimmt worden, kann die symmetrische Verschlüsselung erfolgen. |
| | | |
| | | |
− | <h3>Asymmetrishe Verschlüsselung</h3> | + | <h3>Asymmetrische Verschlüsselung</h3> |
− | Bei der asymmetrischen Verschlüsselung werden Schlüssel immer in Paaren aus privatem und öffentlichem Schlüssel erstellt. Daten werden mit Hilfe des öffentlichen Schlüssels des Empfängers verschlüsselt, können aber nur mit dem zugehörigen privaten Schlüssel wieder entschlüsselt werden. | + | Bei der asymmetrischen Verschlüsselung werden Schlüssel immer in Paaren aus privatem und öffentlichem Schlüssel erstellt. Daten werden mit Hilfe des öffentlichen Schlüssels des Empfängers verschlüsselt, können aber nur mit dem zugehörigen privaten Schlüssel wieder entschlüsselt werden (Bild 3). |
| <p> | | <p> |
− | Hier muss also nur der private Schlüssel geheim gehalten werden, während der öffentlich beliebig verteilt werden kann (und soll). Vorteil des Verfahrens ist vor Beginn der Kommunikation muss kein geheimer (privater) Schlüssel ausgetauscht werden (wie beim symmetrischen Verfahren). Allerdings ist das Verfahren auch rechenintensiver und nutzt größere Schlüssel. 2048b gelten z.Z. als sicher. | + | [[File:asym_verschluesselung.gif|Asymmetrische Verschlüsselung]]<br> |
| + | ''Bild 3: Diagramm asymmetrischer Verschlüsselung'' |
| + | </p> |
| + | <p> |
| + | Hier muss also nur der private Schlüssel geheim gehalten werden, während der öffentlich beliebig verteilt werden kann (und soll). Vorteil des Verfahrens ist: vor Beginn der Kommunikation muss kein geheimer (privater) Schlüssel ausgetauscht werden (wie beim symmetrischen Verfahren). Allerdings ist das Verfahren auch rechenintensiver und nutzt größere Schlüssel. 2048b gelten z.Z. als sicher. |
| </p> | | </p> |
− | Für den Anwendungsfall Strompost kann man die Daten auch gegen mehrere öffentliche Schlüssel verschlüsseln (z.B. [[Mac_nix_basteln:SMIME|S/MIME]]) und dann mit den zugehörigen privaten Schlüsseln wieder entschlüsseln. Dies erlaubt dann beispielsweise, dass man Nachrichten, die man verschickt hat auch selbt noch einmal wieder lesen kann (denn man hat ja nur seinen eigenen privaten Schlüssel, nicht aber den des Empfängers), oder das man für mehrere Empfänger verschlüsseln kann.<br>
| |
− | <br>
| |
| Beispiele für asymmetrische Verschlüsselungsverfahren sind: | | Beispiele für asymmetrische Verschlüsselungsverfahren sind: |
| <ul> | | <ul> |
Zeile 43: |
Zeile 51: |
| <li>[http://de.wikipedia.org/wiki/RSA-Kryptosystem RSA]</li> | | <li>[http://de.wikipedia.org/wiki/RSA-Kryptosystem RSA]</li> |
| </ul> | | </ul> |
| + | |
| + | |
| | | |
| | | |
Zeile 48: |
Zeile 58: |
| | | |
| <h3>Abspeichern von Kennwörtern</h3> | | <h3>Abspeichern von Kennwörtern</h3> |
− | Vernünftige Programme speichern Kennwörter nie im Klartext sondern nur deren hashes, damit bei unbefungtem Zugriff die Kennwörter nicht bekannt werden. Zusätzlich sollten sie noch gesalzen sein. | + | Vernünftige Programme speichern Kennwörter nie im Klartext sondern nur deren [[#Hash_.26_salt|hashes]], damit bei unbefungtem Zugriff die Kennwörter nicht bekannt werden. Zusätzlich sollten sie noch gesalzen sein. |
| | | |
| | | |
| <h3>Kennwort geschützte Dateien...</h3> | | <h3>Kennwort geschützte Dateien...</h3> |
− | ...sind ein Beispiel für symmetrische Verschlüsselung. | + | ...sind ein Beispiel für [[#Symmetrische_Verschlüsselung|symmetrische]] Verschlüsselung. |
| | | |
| | | |
| <h3>Digitale Untschrift</h3> | | <h3>Digitale Untschrift</h3> |
− | Eine [http://de.wikipedia.org/wiki/Digitale_Unterschrift#Technische_Umsetzung digitale Untschrift] ist eine Kombination aus [[#Hash_.26_salt|hash]] & [[#Asymmetrishe_Verschlüsselung|asymmetrisher Verschlüsselung]]. Über die zu unterschreibenden Daten wird zunächst ein hash gebildet, der dann mit dem privaten Schlüssel des Absenders verschlüsselt wird und nur mit dem zugehörigen öffentlichen Schlüssel des Absenders (der mitgeschickt wird) wieder entschlüsselt werden kann. Die asymmetrische Verschlüsselung läuft also genau entgegengesetzt wie oben beschrieben. Somit wird sichergestellt: | + | Eine [http://de.wikipedia.org/wiki/Digitale_Unterschrift#Technische_Umsetzung digitale Untschrift] ist eine Kombination aus [[#Hash_.26_salt|hash]] & [[#Asymmetrische_Verschlüsselung|asymmetrischer Verschlüsselung]]. Über die zu unterschreibenden Daten wird zunächst ein hash gebildet, der dann mit dem privaten Schlüssel des Absenders verschlüsselt wird und nur mit dem zugehörigen öffentlichen Schlüssel des Absenders (der mitgeschickt wird) wieder entschlüsselt werden kann (Bild 4). Die asymmetrische Verschlüsselung läuft also genau entgegengesetzt wie oben beschrieben. Somit wird sichergestellt: |
| <ol> | | <ol> |
− | <li>Das die Quelle, die des beiligendem öffentlichen Schlüssels ist (nur der private Schlüssel hat den hash so verschlüsseln können, dass der öffentliche Schlüssel den hash entschlüsselt. Sonst wäre ein anderer hash rausgekommen, der nicht zur unterschriebenen Nachricht passt)</li> | + | <li>Dass die Quelle, die des beiligendem öffentlichen Schlüssels ist (nur der private Schlüssel hat den hash so verschlüsseln können, dass der öffentliche Schlüssel den hash entschlüsselt. Sonst wäre ein anderer hash rausgekommen, der nicht zur unterschriebenen Nachricht passt)</li> |
− | <li>Die Nachricht wurde unterwegs nicht verändert. Wäre sie verändert worden würde ein hash über die Nachricht nicht dem des entschlüsselten hashwert entsprechen</li> | + | <li>Die Nachricht wurde unterwegs nicht verändert. Wäre sie verändert worden, würde ein hash über die Nachricht nicht dem entschlüsselten hash-Wert entsprechen</li> |
| </ol> | | </ol> |
| + | <p> |
| + | [[File:digi_unterschrift.gif|Digitale Unterschrift]]<br> |
| + | ''Bild 4: Diagramm digitaler Unterschrift'' |
| + | </p> |
| Man hätte die Sache mit dem hash auch weg lassen können und die komplette Nachricht asymmetrisch verschlüsseln. Dies würde allerdings zur Folge haben, dass die Nachricht nicht nur Unterschrieben, sondern auch komplett verschlüsselt ist (statt nur den hash zu verschlüsseln) - was wiederum zu Folge hat, dass jemand ohne Krypto (dem auch die Unterschrift egal ist), die Nachricht nicht lesen kann. Des Weiteren würde es bei größeren Daten sehr rechenintensiv werden (lange dauern). Es ist viel schneller einen hash zu berechnen (konstante, vergleichen mit den eigentlichen Daten idR. kurze Länge) und diesen dann zu verschlüsseln. | | Man hätte die Sache mit dem hash auch weg lassen können und die komplette Nachricht asymmetrisch verschlüsseln. Dies würde allerdings zur Folge haben, dass die Nachricht nicht nur Unterschrieben, sondern auch komplett verschlüsselt ist (statt nur den hash zu verschlüsseln) - was wiederum zu Folge hat, dass jemand ohne Krypto (dem auch die Unterschrift egal ist), die Nachricht nicht lesen kann. Des Weiteren würde es bei größeren Daten sehr rechenintensiv werden (lange dauern). Es ist viel schneller einen hash zu berechnen (konstante, vergleichen mit den eigentlichen Daten idR. kurze Länge) und diesen dann zu verschlüsseln. |
| + | |
| + | |
| + | <h3>Strompostverschlüsselung</h3> |
| + | Hier wird [[#Symmetrische_Verschlüsselung|symmetrische]] & [[#Asymmetrische_Verschlüsselung|asymmetrischer Verschlüsselung]] kombiniert. Der Inhalt der Nachricht wird aus Geschwindigkeitgründen mit einem für diese Nachricht speziell erzeugten Schlüssel (Sitzungsschlüssel) symmetrisch Verschlüsselt. Anschliessend wird dieser Schlüssel (welcher idR deutlich kürzer als die eigentlich Nachricht/Nutzlast sein wird) asymmetrisch verschlüsselt und mit der symmetrisch verschlüsselten Nachricht versandt.<br> |
| + | Man kann den Sitzungsschlüssel auch gegen mehrere öffentliche Schlüssel verschlüsseln (z.B. [[Mac_nix_basteln:SMIME|S/MIME]]), anhängen und dann mit den zugehörigen privaten Schlüsseln wieder entschlüsseln. Dies erlaubt dann beispielsweise, dass man Nachrichten, die man verschickt hat auch selbt noch einmal wieder lesen kann (denn man hat ja nur seinen eigenen privaten Schlüssel, nicht aber den des Empfängers), oder dass man für mehrere Empfänger verschlüsseln kann. |
| | | |
| | | |
| <h3>ssh</h3> | | <h3>ssh</h3> |
− | [http://de.wikipedia.org/wiki/Ssh ssh] ist ein Beispiel für eine Kombination aus hash, asymmetrischer und symmetrischer Verschlüsselung. Beim ersten Verbindungsaufbau bekommt man den hash des öffentlichen Schlüssels des kontaktierten Rechners gezeigt, um zu fragen, ob man diesem Vertraut. Man bekommt den hash gezeigt, da die vergleichsweise kurze Zeichenfolge für einen Menschen leichter zu vergleichen ist, als der eigentliche lange öffentliche Schlüssel. Dann erfolgt der asymmetrische Verbindungsaufbau. Für die Dauer dieser einen Verbindung wird darüber ein Schlüssel für eine symmetrische Verschlüsselung erzeugt. Und über diese symmetrische Verschlüsselung läuft dann für diese Sitzung der eigentliche Datentransfer. Der Vorteil besteht wieder in der Geschwindigkeit. | + | [http://de.wikipedia.org/wiki/Ssh ssh] ist ein Beispiel für eine Kombination aus [[#Hash_.26_salt|hash]], [[#Asymmetrische_Verschlüsselung|asymmetrischer]] und [[#Symmetrische_Verschlüsselung|symmetrischer]] Verschlüsselung. Beim ersten Verbindungsaufbau bekommt man den hash des öffentlichen Schlüssels des kontaktierten Rechners gezeigt, um zu fragen, ob man diesem Vertraut. Man bekommt den hash gezeigt, da die vergleichsweise kurze Zeichenfolge für einen Menschen leichter zu vergleichen ist, als der eigentliche lange öffentliche Schlüssel. Dann erfolgt der asymmetrische Verbindungsaufbau. Für die Dauer dieser einen Verbindung wird darüber ein Schlüssel für eine symmetrische Verschlüsselung erzeugt. Und über diese symmetrische Verschlüsselung läuft dann für diese Sitzung der eigentliche Datentransfer. Der Vorteil besteht wieder in der Geschwindigkeit. |
| | | |
| | | |
Zeile 97: |
Zeile 116: |
| | | |
| <h3>OpenVPN</h3> | | <h3>OpenVPN</h3> |
− | Je nach Konfiguration kann man sich mit OpenSSL für seine [[Mac_nix_basteln:OpenVPN|OpenVPN]]-Verbindung [[#X.509_Zertifikate|X.509 Zertifikate]] selbst Erzeugen. So kann man sich eine Verbindung aufbauen indem man sich selbst ein Wurzelzertifikat macht (eine CA), Zertifikate für server und Klient mit zugehörigen privaten Schlüsseln sowie ein [[#Diffie-Hellman|Diffie-Hellmann]]. | + | Je nach Konfiguration kann man sich mit OpenSSL für seine [[Mac_nix_basteln:OpenVPN|OpenVPN]]-Verbindung [[#X.509_Zertifikate|X.509 Zertifikate]] selbst erzeugen. So kann man sich eine Verbindung aufbauen indem man sich selbst ein Wurzelzertifikat macht (eine CA), Zertifikate für server und Klient mit zugehörigen privaten Schlüsseln sowie ein [[#Diffie-Hellman|Diffie-Hellmann]]. |
| + | |
| + | [[Category:Mac_nix_basteln]] |
Aktuelle Version vom 16. Oktober 2012, 11:15 Uhr
Verschlüsselungsmethoden
Hash & salt
Ein hash ist eine Funktion ähnlich einer Prüfsumme, welche unabhängig der Eingabe einen Wert mit konstanter Zeichenzahl liefert und zusätzlich die Eigenschaft besitzt nicht umkehrbar zu sein (Bild 1). Sprich, es ist nicht möglich aus dem Ergebnis der hash-Funktion den Eingabewert zurückzurechnen. Es ist extrem unwahrscheinlich, dass zwei unterschiedliche Eingaben zum gleichen hash führen. Außerdem, führt schon das Ändern eines einzelnen Zeichens der Quelle zu einem drastisch anderem hash.
Bild 1: Diagramm hash-Funktion
Beispiel: Es spielt keine Rolle, ob dieser Text ge-hash-t wird, oder eine ganze DVD. Das Ergebnis wird immer eine Zeichenkette einer definierten Länge sein. Aus diesem Ergebnis lässt sich dann weder der Inhalt der DVD rekonstruieren noch dieser Text.
Beispiele für hash-Funktion sind:
Salt
Salt: Um die Sicherheit bei hashes zu weiter zu erhöhen, werden Zufallszahlen vor den zu-hash-enden Wert gehängt. Denn Sinn kann man nicht besser zusammenfassen als Wikipedia: Hashfunktionen, wie z. B. MD5 oder SHA bilden einen bestimmten Klartext auf einen bestimmten Hash-Wert ab. So ist sofort erkennbar, welche Benutzer dasselbe Kennwort gewählt haben, da die Hashwerte identisch sind. Zudem muss bei Wörterbuch- und Brute-Force-Angriffen jedes zu prüfende mögliche Passwort nur ein einziges Mal berechnet (gehasht) werden, und dieser Wert muss anschließend nur mit einer Liste von vorliegenden Passwort-Hashes verglichen werden.
Symmetrische Verschlüsselung
Bei der symmetrischen Verschlüsselung werden die Daten (oder der Text) mit Hilfe eines einzigen, gemeinsamen Schlüssels verschlüsselt und entschlüsselt (Bild 2). Das Verfahren funktioniert also mit dem selben Schlüssel in beide Richtungen. Ist dieser aufgeflogen, liegt die gesamte Kommunikation offen. Vorteil ist allerdings der relativ geringe Rechenaufwand (es ist schnell) und dass diese Verfahren sogar von i5 & i7 CPUs in hardware unterstützt werden (noch schneller). Die Sicherheit hängt zudem auch von der Schlüssellänge ab. 256b gelten z.Z. als sicher.
Bild 2: Diagramm symmetrischer Verschlüsselung
Beispiele für symmetrische Verschlüsselungsverfahren sind:
Diffie-Hellman
Diffie-Hellman ist genaugenommen weder eine Verschlüsselungsmethode, noch deren Anwendung. Es steht dazwischen: Um bei einer symmetrische Verschlüsselung nicht gezwungen zu sein den gemeinsamen Schlüssel irgendwie austauschen zu müssen, lässt man es einfach. Stattdessen hat man eine Methode gefunden, wie dieser Schlüssel von beiden Seiten durch Kommunikation bestimmt werden kann ohne, dass er jemals übertragen wird. Ist er bestimmt worden, kann die symmetrische Verschlüsselung erfolgen.
Asymmetrische Verschlüsselung
Bei der asymmetrischen Verschlüsselung werden Schlüssel immer in Paaren aus privatem und öffentlichem Schlüssel erstellt. Daten werden mit Hilfe des öffentlichen Schlüssels des Empfängers verschlüsselt, können aber nur mit dem zugehörigen privaten Schlüssel wieder entschlüsselt werden (Bild 3).
Bild 3: Diagramm asymmetrischer Verschlüsselung
Hier muss also nur der private Schlüssel geheim gehalten werden, während der öffentlich beliebig verteilt werden kann (und soll). Vorteil des Verfahrens ist: vor Beginn der Kommunikation muss kein geheimer (privater) Schlüssel ausgetauscht werden (wie beim symmetrischen Verfahren). Allerdings ist das Verfahren auch rechenintensiver und nutzt größere Schlüssel. 2048b gelten z.Z. als sicher.
Beispiele für asymmetrische Verschlüsselungsverfahren sind:
Anwendungen der Methoden
Abspeichern von Kennwörtern
Vernünftige Programme speichern Kennwörter nie im Klartext sondern nur deren hashes, damit bei unbefungtem Zugriff die Kennwörter nicht bekannt werden. Zusätzlich sollten sie noch gesalzen sein.
Kennwort geschützte Dateien...
...sind ein Beispiel für symmetrische Verschlüsselung.
Digitale Untschrift
Eine digitale Untschrift ist eine Kombination aus hash & asymmetrischer Verschlüsselung. Über die zu unterschreibenden Daten wird zunächst ein hash gebildet, der dann mit dem privaten Schlüssel des Absenders verschlüsselt wird und nur mit dem zugehörigen öffentlichen Schlüssel des Absenders (der mitgeschickt wird) wieder entschlüsselt werden kann (Bild 4). Die asymmetrische Verschlüsselung läuft also genau entgegengesetzt wie oben beschrieben. Somit wird sichergestellt:
- Dass die Quelle, die des beiligendem öffentlichen Schlüssels ist (nur der private Schlüssel hat den hash so verschlüsseln können, dass der öffentliche Schlüssel den hash entschlüsselt. Sonst wäre ein anderer hash rausgekommen, der nicht zur unterschriebenen Nachricht passt)
- Die Nachricht wurde unterwegs nicht verändert. Wäre sie verändert worden, würde ein hash über die Nachricht nicht dem entschlüsselten hash-Wert entsprechen
Bild 4: Diagramm digitaler Unterschrift
Man hätte die Sache mit dem hash auch weg lassen können und die komplette Nachricht asymmetrisch verschlüsseln. Dies würde allerdings zur Folge haben, dass die Nachricht nicht nur Unterschrieben, sondern auch komplett verschlüsselt ist (statt nur den hash zu verschlüsseln) - was wiederum zu Folge hat, dass jemand ohne Krypto (dem auch die Unterschrift egal ist), die Nachricht nicht lesen kann. Des Weiteren würde es bei größeren Daten sehr rechenintensiv werden (lange dauern). Es ist viel schneller einen hash zu berechnen (konstante, vergleichen mit den eigentlichen Daten idR. kurze Länge) und diesen dann zu verschlüsseln.
Strompostverschlüsselung
Hier wird symmetrische & asymmetrischer Verschlüsselung kombiniert. Der Inhalt der Nachricht wird aus Geschwindigkeitgründen mit einem für diese Nachricht speziell erzeugten Schlüssel (Sitzungsschlüssel) symmetrisch Verschlüsselt. Anschliessend wird dieser Schlüssel (welcher idR deutlich kürzer als die eigentlich Nachricht/Nutzlast sein wird) asymmetrisch verschlüsselt und mit der symmetrisch verschlüsselten Nachricht versandt.
Man kann den Sitzungsschlüssel auch gegen mehrere öffentliche Schlüssel verschlüsseln (z.B. S/MIME), anhängen und dann mit den zugehörigen privaten Schlüsseln wieder entschlüsseln. Dies erlaubt dann beispielsweise, dass man Nachrichten, die man verschickt hat auch selbt noch einmal wieder lesen kann (denn man hat ja nur seinen eigenen privaten Schlüssel, nicht aber den des Empfängers), oder dass man für mehrere Empfänger verschlüsseln kann.
ssh
ssh ist ein Beispiel für eine Kombination aus hash, asymmetrischer und symmetrischer Verschlüsselung. Beim ersten Verbindungsaufbau bekommt man den hash des öffentlichen Schlüssels des kontaktierten Rechners gezeigt, um zu fragen, ob man diesem Vertraut. Man bekommt den hash gezeigt, da die vergleichsweise kurze Zeichenfolge für einen Menschen leichter zu vergleichen ist, als der eigentliche lange öffentliche Schlüssel. Dann erfolgt der asymmetrische Verbindungsaufbau. Für die Dauer dieser einen Verbindung wird darüber ein Schlüssel für eine symmetrische Verschlüsselung erzeugt. Und über diese symmetrische Verschlüsselung läuft dann für diese Sitzung der eigentliche Datentransfer. Der Vorteil besteht wieder in der Geschwindigkeit.
X.509 Zertifikate
Diese Zertifikate sind vergleichbar mit einem Ausweis. Sie enthalten Daten wie:
- Name (bei email-Zertifikaten die Adresse(n), bei server-Zertifikaten die Domäne(n))
- Aussteller
- Seriennummer
- Gültigkeitsbeginn & -ende
- Inhabername & Adresse
- Verwendungszweck des Zertifikats
- ...
Der gesamte Zertifikatstext ist dann unterschrieben mit dem privaten Schlüssel des Ausstellers, der sog. Certification Authority (CA).
Anwendungsbeispiele für solche Zertifikate sind:
Klare Nachteile sind:
- Man muss den CAs trauen und die Vertrauenswürdigkeit vieler in den Browsern & email-Programmen voreingestellten CAs sind zumindest fragwürdig
- Man muss die öffentlichen Schlüssel der CAs haben
- Mit ausreichend Geld kann man eine sub-CA einer CA werden. Diese kann dann wieder beliebig Schlüssel ausstellen, die nie jemand geprüft haben muss
OpenVPN
Je nach Konfiguration kann man sich mit OpenSSL für seine OpenVPN-Verbindung X.509 Zertifikate selbst erzeugen. So kann man sich eine Verbindung aufbauen indem man sich selbst ein Wurzelzertifikat macht (eine CA), Zertifikate für server und Klient mit zugehörigen privaten Schlüsseln sowie ein Diffie-Hellmann.