nicuhu
Goto Top

Frage zu Hash, HMAC, Pepper und Salt

Hallo

Ich möchte gerne mehr zum Thema Pepper / HMAC / Kryptographie kennen lernen und habe da 1,2,3 Fragen.

Folgendes Bild habe ich gefunden jedoch habe ich trotzdem noch einige offene Fragen dazu. Leider sagt das Bild nich sehr viel aus zu Pepper.

https://www.internet-sicherheit.de/fileadmin/_processed_/8/c/csm_infogra ...

1.) Kann Pepper nur in kombination mit Salt verwendet werden?

2.) Verstehe ich das also richtig: Ich als Client melde mich bei einer Website an, mein Client schickt das Passwort "Password" an den Server der Website, dort wird Salt und Pepper eingesetzt. Es wird durch Salt aus meinem Passwort "PasswordABC" ABC = Salt-Wert. Danach bin ich mir nicht sicher wie Pepper nun ins spielt kommt. Ich hoffe ihr könnt ihr den Vorgang etwas näher erklären.

3.) Weiter erklärt die verlinkte Seite man könne einen HMAC für die Sicherheit der Integrität und Authenzität einsetzten welches nochmals die Sicherheit weiter erhöht. Wie funktioniert HMAC in kombination mit Salt, Pepper und Hash? So wie ich das verstehe gibts HMAC für Hashfunktionen und auch noch anderes (H)MAC für andere Einsatzszenarios.


Vielen Dank im voraus für die Antworten face-smile


Gruss
Nicolas

Content-ID: 432646

Url: https://administrator.de/contentid/432646

Ausgedruckt am: 22.11.2024 um 15:11 Uhr

borstenwurm
borstenwurm 25.03.2019 aktualisiert um 14:24:49 Uhr
Goto Top
Hi.

Kann Pepper nur in kombination mit Salt verwendet werden?

Pepper kann problemlos auch ohne Salt verwendet werden, dadurch entfernst du aber auch wiederum eine ziemlich dicke Sicherheitsschicht. Der grobe Unterschied ist, dass Pepper NICHT in der Datenbank gespeichert wird, sondern separat. Dadurch können im Falle eines Hacks der Datenbank die Kennwörter trotzdem nicht entschlüsselt werden.

Die von dir verlinkte Infografik ist schön gemacht, erklärt aber nicht wirklich gut für Neulinge. Wenn du bereits Hintergrundwissen hast, sind die Wikipedia Artikel zu Kryptographie lesenswert. Heise hat auch immer mal wieder gute Artikel zu den Themen.

Vielleicht hilft dir dieser vereinfachte Ablauf:
  • Benutzer registriert sich und vergibt ein Passwort.
  • Dem Benutzer wird ein zufällig generierter Salt zugewiesen und in der Datenbank gespeichert.
  • Pepper (nicht einzigartig pro Benutzer) wird aus einer Datei gelesen.
  • Man generiert den Hash aus Passwort+Salt+Pepper und speichert den ebenfalls in der Datenbank.
  • Das eigentliche Passwort wird aus dem Speicher entfernt.
Wenn sich jetzt der Benutzer anmeldet, muss das eigentliche Passwort überhaupt nicht mehr bekannt sein, da man jetzt einfach den Hash des eingegebenen Passworts+Salt+Pepper generiert und mit dem Wert in der DB abgleicht.

Bei HMAC geht's meines Wissens nur um die Übertragung der Daten, aber da bin ich kein Experte.
nicuhu
nicuhu 25.03.2019 um 14:48:25 Uhr
Goto Top
Zitat von @borstenwurm:

Hi.

Kann Pepper nur in kombination mit Salt verwendet werden?

Pepper kann problemlos auch ohne Salt verwendet werden, dadurch entfernst du aber auch wiederum eine ziemlich dicke Sicherheitsschicht. Der grobe Unterschied ist, dass Pepper NICHT in der Datenbank gespeichert wird, sondern separat. Dadurch können im Falle eines Hacks der Datenbank die Kennwörter trotzdem nicht entschlüsselt werden.

Die von dir verlinkte Infografik ist schön gemacht, erklärt aber nicht wirklich gut für Neulinge. Wenn du bereits Hintergrundwissen hast, sind die Wikipedia Artikel zu Kryptographie lesenswert. Heise hat auch immer mal wieder gute Artikel zu den Themen.

Vielleicht hilft dir dieser vereinfachte Ablauf:
  • Benutzer registriert sich und vergibt ein Passwort.
  • Dem Benutzer wird ein zufällig generierter Salt zugewiesen und in der Datenbank gespeichert.
  • Pepper (nicht einzigartig pro Benutzer) wird aus einer Datei gelesen.
  • Man generiert den Hash aus Passwort+Salt+Pepper und speichert den ebenfalls in der Datenbank.
  • Das eigentliche Passwort wird aus dem Speicher entfernt.
Wenn sich jetzt der Benutzer anmeldet, muss das eigentliche Passwort überhaupt nicht mehr bekannt sein, da man jetzt einfach den Hash des eingegebenen Passworts+Salt+Pepper generiert und mit dem Wert in der DB abgleicht.

Bei HMAC geht's meines Wissens nur um die Übertragung der Daten, aber da bin ich kein Experte.

Also der Server speichert das vom Benutzer als Passwort eingegebene mit einem definierten Salt ab holt den Pepper Schlüssel / von einem 2. Server und Hasht alle 3 Werte und speichert diese ab?
borstenwurm
borstenwurm 25.03.2019 um 14:59:48 Uhr
Goto Top
Zitat von @nicuhu:
Also der Server speichert das vom Benutzer als Passwort eingegebene mit einem definierten Salt ab holt den Pepper Schlüssel / von einem 2. Server und Hasht alle 3 Werte und speichert diese ab?

Das Passwort wird normalerweise gar nicht gespeichert, sonder verbleibt für die Dauer des Rechenvorgangs im RAM. Der Trick ist, aus drei verschiedenen Zeichenfolgen, die auch aus verschiedenen Quellen kommen, einen Hash zu generieren. Der "Pepper"-Teil davon kann auf einem anderen Server liegen oder auch in irgendeiner Datei versteckt.
nicuhu
nicuhu 25.03.2019 um 15:59:33 Uhr
Goto Top
Zitat von @borstenwurm:

Zitat von @nicuhu:
Also der Server speichert das vom Benutzer als Passwort eingegebene mit einem definierten Salt ab holt den Pepper Schlüssel / von einem 2. Server und Hasht alle 3 Werte und speichert diese ab?

Das Passwort wird normalerweise gar nicht gespeichert, sonder verbleibt für die Dauer des Rechenvorgangs im RAM. Der Trick ist, aus drei verschiedenen Zeichenfolgen, die auch aus verschiedenen Quellen kommen, einen Hash zu generieren. Der "Pepper"-Teil davon kann auf einem anderen Server liegen oder auch in irgendeiner Datei versteckt.

Ich danke dir erstmals für deine Antwort.

Sollte sich jemand noch näher mit HMAC / MAC auskennen mit kombination von Hash, Salt und Pepper würde ich mich freuen noch einige Infos dazu zu bekommen wie das genau funktioniert.
nicuhu
nicuhu 01.04.2019 um 16:39:41 Uhr
Goto Top
Jemand der mir da mehr Auskunft geben kann? face-smile