Schnelle Hilfe zu HMAC?

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
Kukulkan
Beiträge: 1066
Registriert: 09.09.2004 07:07
Wohnort: Süddeutschland
Kontaktdaten:

Schnelle Hilfe zu HMAC?

Beitrag von Kukulkan »

Hallo,

ich kenne mich eigentlich recht gut mit Hashcodes und symmetrischer/asymmetrischer Verschlüsselung aus. Bisher hatte ich aber noch keine Möglichkeit mich mit HMAC auseinanderzusetzen. Aus dem WIKIPEDIA Artikel, und anderen Google-Quellen, weiß ich zwar WAS gemacht wird, aber nicht WARUM.

Kann mir jemand in wenigen verständlichen Worten die Anwendung und die Vorteile von einem HMAC erläutern? Also:

- Was ist der Vorteil gegenüber der Verwendung von klassischen Hashcodes und zB AES?
- Was ist ein (oder zwei) Anwendungsfall von HMACs (einfaches Beispiel)?

Vielen Dank!

Kukulkan
Benutzeravatar
cxAlex
Beiträge: 2111
Registriert: 26.06.2008 10:42

Re: Schnelle Hilfe zu HMAC?

Beitrag von cxAlex »

Zufälligerweise hab ich da letztens was im englischen Forum dazu gesehen:

http://www.purebasic.fr/english/viewtop ... 0&p=353515

Nach dem was ich in Wikipedia gelesen habe wird es zusätzlich zum Diffi-Hellman Schlüsseltausch verwendetet um Man-In-The-Middle Angriffe auszuschließen. Diffi-Hellman versuche ich gerade selbst im PB nachzubilden, allerdings stimmt der Schlüssel nicht immer überein, ich vermute da irgend einen Typecasting-Fehler bei PB.

Gruß, Alex
Projekte: IO.pbi, vcpu
Pausierte Projekte: Easy Network Manager, µC Emulator
Aufgegebene Projekte: ECluster

Bild

PB 5.1 x64/x86; OS: Win7 x64/Ubuntu 10.x x86
Benutzeravatar
Kukulkan
Beiträge: 1066
Registriert: 09.09.2004 07:07
Wohnort: Süddeutschland
Kontaktdaten:

Re: Schnelle Hilfe zu HMAC?

Beitrag von Kukulkan »

Hallo,

Danke für den Link. Ja, das ist eine Implementation. Das ist aber nicht mein Problem. Ich will wissen, warum das besser ist als die Nachricht mit zB dem SHA von einem gemeinsamen Schlüssel zu verschlüsseln. Wo ist der Einsatzzweck und warum ist das besser als normales SHA und AES? Ich brauch also Verständnis-Input :oops:

Kukulkan
Benutzeravatar
Kukulkan
Beiträge: 1066
Registriert: 09.09.2004 07:07
Wohnort: Süddeutschland
Kontaktdaten:

Re: Schnelle Hilfe zu HMAC?

Beitrag von Kukulkan »

So, jetzt hab ich mir das überall zusammengesucht. Evtl. kann das ja jemand brauchen (und ich versteh's besser wenn ich's aufschreibe):

Der HMAC ist ein Hashcode, der auf Basis der Datenmenge und eines geheimen Secrets erstellt wurde. Später kann man das zur Integritätsprüfung verwenden.

Beispiel:
Wenn man einen Datensatz irgendwo speichern möchte, dann könnte man dafür den Hashcode speichern, um das später zu prüfen:

Datenmenge | Hashcode zur Prüfung
111111111 | xxxxxxxxxxxxxxxx
222222222 | yyyyyyyyyyyyyy
333333333 | zzzzzzzzzzzzzzzz
...
Ich müsste also zu jedem Datensatz einen Hashcode zur späteren Prüfung abspeichern. Bekomme ich den Datensatz, kann ich den Hashcode erneut berechnen und gegen den Gespeicherten prüfen.

Im Gegenzug dazu kann ich aber einen HMAC verwenden und diesen mit der herausgegebenen Datenmenge speichern. Wenn ich diese später zurückbekomme, kann ich für die Daten den HMAC mit meinem Secret neu berechnen. Wenn es dann passt, dann ist das unverändert. Ich muss also nur noch das Secret kennen (was immer das selbe sein konnte). Das speichern der Validierungsinformation (Hashcode) kann ich mir also sparen <)

Datenmenge | secret
111111111:HMAC | abc
222222222:HMAC | abc
333333333:HMAC | abc
...
Das ist in manchen Fällen (zB Cookies validieren oder Nachrichten signieren) ganz hilfreich.

Grüße,

Kukulkan
Antworten