signatur:start
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
signatur:start [2023/11/29 08:44] – [Anwendung: Speichern von Passwörtern als salted hash] Martin Pabst | signatur:start [2023/12/06 07:50] (aktuell) – Martin Pabst | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== Digitale Signatur ====== | ====== Digitale Signatur ====== | ||
- | ===== Kryptographische Hashfunktion ===== | ||
<WRAP center round info 80%> | <WRAP center round info 80%> | ||
- | Eine **Kryptographische Hashfunktion** ist ein Algorithmus, mit dem der man eine Menge länger | + | Zweck der Signatur ist es, nachzuweisen, |
- | Die derzeit am häufigsten verwendet Hashfunktion ist **SHA**. Eine weitere sehr bekannte - aber veraltete | + | \\ \\ |
+ | **Einfache (nicht praktizierte) Variante zum Signieren einer Nachricht:** | ||
+ | Der Absender könnte die Nachricht digital signieren, indem er sie mit seinem privaten Schlüssel verschlüsselt und den verschlüsselten Text mit zum Empfänger sendet. Der Empfänger entschlüsselt mithilfe des öffentlichen Schlüssels den verschlüsselten Text und vergleicht ihn mit der Nachricht. Falls beide gleich sind, weiß er, dass die Nachricht vom Sender stammt und unverfälscht | ||
+ | {{ :signatur: | ||
</ | </ | ||
- | ==== Anwendung: Speichern von Passwörtern als salted hash ==== | + | |
<WRAP center round info 80%> | <WRAP center round info 80%> | ||
- | Immer wieder kommt es zu erfolgreichen Hackerangriffen gegen Server großer Firmen, wie beispielsweise [[https:// | + | Das obige Verfahren wird in der Praxis nicht so gehandhabt, da die Entschlüsselung mit dem RSA-Algorithmus sehr rechenintensiv ist und die Datenmenge zum Versenden verdoppelt wird. |
- | Damit Hacker auch bei Vollzugriff auf einen Server keinen Zugriff auf Passwörter erlangen können, speichert man diese nicht im Klartext, sondern als **salted hash**. Das funktioniert folgendermaßen: | + | Man geht daher wie folgt vor: |
- | {{ : | + | * a) Der Sender erzeugt mithilfe einer kryptographischen Hashfunktion einen Hashwert des Textes. |
- | {{ : | + | * b) Der Sender verschlüsselt den Hashwert mit seinem privaten Schlüssel und hängt ihn an den Text an. |
- | Aus den **salted hash**-Werten, die in der Datenbank gespeichert sind, lassen sich nur mit unverhältnismäßig hohem Aufwand wieder Klartextpasswörter errechnen. Daher sind die Passwörter | + | * c) Der Empfänger entschlüsselt |
- | </ | + | |
+ | | ||
- | <WRAP center round todo 60%> | + | {{ :signatur: |
- | Warum ist das **salt** nötig? Es würde doch reichen, die Hashes der Passwörter zu speichern? \\ \\ | + | |
- | //**Tipp:** Recherchieren Sie zur Beantwortung dieser Frage, was " | + | |
</ | </ | ||
- | ===== Digitale Signatur ===== | ||
- | <WRAP center round info 80%> | ||
- | Zweck der Signatur ist es, nachzuweisen, | ||
- | \\ \\ | ||
- | Der **RSA-Algorithmus** kann so abgewandelt werden, dass mit dem privaten Schlüssel verschlüsselt und mit dem öffentlichen Schlüssel entschlüsselt wird. Ein Absender könnte einen Text also digital signieren, indem er ihn mit seinem privaten Schlüssel verschlüsselt. Falls es dem Empfänger gelingt, den verschlüsselten Text mit dem öffentlichen Schlüssel des Senders zu entschlüsseln, | ||
- | * man den Text als Klartext versenden möchte, der auch ohne Schlüssel lesbar ist und | ||
- | * die Entschlüsselung mit dem RSA-Algorithmus sehr rechenintensiv ist. | ||
- | Man geht daher wie folgt vor: | ||
- | * a) Der Sender erzeugt mithilfe einer kryptographischen Hashfunktion ein hash des Textes. | ||
- | * b) Der Sender verschlüsselt das hash mit seinem privaten Schlüssel und hängt es an den Text an. | ||
- | * c) Der Empfänger entschlüsselt das übermittelte hash ( = hash1) | ||
- | * d) Der Empfänger berechnet das hash des übermittelten Textes ( = hash2) | ||
- | * e) Der Empfänger vergleicht hash1 und hash2. Stimmen sie überein, so weiß er, dass der Text vom Sender stammt. | ||
- | </ | ||
signatur/start.1701247443.txt.gz · Zuletzt geändert: 2023/11/29 08:44 von Martin Pabst