orm@doc-tcpip.org
|
Erstellt: November 2000 - Letzte Modifikation: Februar 2005
|
[ Main |
Local ]
Schlüsselaustausch und Shared Secret
Der Diffie-Hellman Algorithmus
Dieser Algorithmus generiert auf sichere Weise ein shared
secret, daß beide Seiten zur sicheren Kommunikation nutzen
können.
Symmetrische vs. Asymmetrische Methode
Symmetrisch: Ein Schlüssel, der beiden Zeiten bekannt sein
muß. Die Algorithmen sind schnell, daher ist diese Methode
wichtig für Bulk-Transfers großer Datenmengen.
Problem: Wie tausche ich auf sichere und einfache Weise den
Schlüssel aus?
Asymmetrisch: Nutzt ein Schlüsselpaar aus privatem und
öffentlichem Schlüssel. Daten, die mit dem öffentlichen
Schlüssel einer Person verschlüsselt sind, können
nur mit dem privaten Schlüssel dieser Person wieder
entschlüsselt werden. Das System ermöglicht den sicheren
Austausch von Schlüsseln.
Problem: Die Algorithmen sind sehr langsam, daher keine
sinnvolle Alternative für große Datenmengen.
Wie es funktioniert:
- A und B generieren jeweils ihr Paar aus öffentlichem
und privatem Schlüssel.
- A und B tauschen untereinander ihre öffentlichen
Schlüssel aus (das geht problemlos, jeder Dritte darf den
Schlüssel sehen).
Problem: Es gibt die Möglichkeit eines
Man in the Middle Angriffes. Dabei fängt jemand
die öffentlichen Schlüsel ab, und kann die Nachrichten
auf dem Weg lesen und neu verschlüsseln. Er schiebt dabei
B seinen eigenen öffentlichen Schlüssel unter. Hier hilft
eine CA, eine Certification Authority, die A und B
versichert, das der empfangene, öffentliche Schlüssel
wirklich echt ist und der richtigen Person gehört.
- A generiert aus dem eigenen privaten Schlüssel
und dem öffentlichen Schlüssel von
B einen shared key. B tut dasselbe mit seinem
privaten Schlüssel und dem öffentlichen Schlüssel
von A. Der angewandte Diffie-Hellman Algorithmus führt
unter diesen Umständen zu einem identischen
Shared Key, der jetzt im Besitz von A und B ist,
ohne in irgendeiner Art zugänglich gewesen zu sein.
- Eine Seite (A oder B) generiert nun einen symmetrischen
Key (Session Key), und sendet diesen in verschlüsselter Form
(mit dem shared Key) sicher zur anderen Seite.
- Beide Seiten übertragen die Daten nun mit dem
Session Key.
Sichere Datenübertragung:
Im Fall einfacher Datenübertragung könnte man z.B. einen
bekannten Partner
einfach anrufen und die öffentlichen Schlüssel vergleichen.
Das ist natürlich bei unbekannten Partnern und in der
Kommunikation von Maschinen schwer möglich. Daher läßt man
seinen Public Key bei einer CA registrieren und besitzt
dann eine Art Pass. Damit nicht jeder mittels der öffentlichen
Schlüssel mitlesen kann, muß man doppelt Verschlüsseln:
- A und B generieren jeweils ihr Paar aus öffentlichem
und privatem Schlüssel.
- A und B tauschen untereinander ihre öffentlichen
Schlüssel aus (das geht problemlos, jeder Dritte darf den
Schlüssel sehen).
- A verschlüsselt nun seine Daten mit seinem privaten Schlüssel
(also jeder kann sich den öffentlichen Schlüssel holen und
entschlüsseln).
- A verschlüsselt das Ergebnis mit dem öffentlichen Schlüssel von
B.
- Jetzt kann nur noch B die Nachricht lesen (mit seinem privaten
Schlüssel), und hat so die Sicherheit, daß niemand mit der Nachricht
gespielt hat - schliesslich kann der Inhalt nur von A erzeugt worden
sein.
[ Main | Local
]
[ Allgemein |
UNIX |
AIX |
TCP-IP |
TCP |
ROUTING |
DNS |
NTP |
NFS |
FreeBSD |
Linux |
RPi |
SMTP |
Tracing |
GPS |
LW ]
Copyright 2001-2021 by Orm Hager - Es gilt die GPL
Feedback bitte an:
Orm Hager (orm@doc-tcpip.org
)