HMAC (Hash-Based Message Authentication Codes): Definition

HMAC (Hash-Based Message Authentication Codes): Definition

Weltweit setzen tausende von Unternehmen auf Okta, um Zeit und Kosten zu sparen.Erfahren Sie, wie Ihr Unternehmen von einer starken Identity-Lösung profitieren würde.

HMAC (Hash-Based Message Authentication Codes): Definition

Erfahren Sie, warum führende Branchenanalysten Okta und Auth0 regelmäßig als Marktführer im Bereich Identity einstufen

Ein Hash-Based Message Authentication Code (oder kurz: HMAC) ist eine kryptografische Authentisierungstechnologie, die auf einer Hash-Funktion und einem geheimen Key basiert.

Mit HMAC können Sie eine Authentisierung durchführen und mithilfe geheimer Keys verifizieren, dass Daten korrekt und authentisch sind – eine Alternative zu Verfahren, die Signaturen und asymmetrische Kryptografie verwenden.

Wie HMAC funktioniert 

Zwei Parteien wollen kommunizieren, aber auch sicherstellen, dass die Inhalte ihrer Interaktion vertraulich bleiben. Da sie dem Internet nicht trauen, benötigen sie eine Lösung, mit der sich verifizieren lässt, dass die Datenpakete, die sie erhalten, nicht manipuliert wurden. HMAC ist eine solche Lösung. 

HMAC-Keys bestehen aus zwei Komponenten. Diese sind:

  1. Kryptografische Keys. Die Daten werden über einen Verschlüsselungsalgorithmus modifiziert. Anschließend benötigt der Empfänger einen speziellen Code (oder Schlüssel), um die Informationen wieder lesbar zu machen. HMAC basiert auf einem geteilten Satz geheimer Schlüssel.
  2. Hash-Funktion. Ein Hash-Algorithmus verändert oder verarbeitet die Nachricht noch einmal. HMAC verwendet generische kryptografische Hash-Funktionen wie SHA-1, MD5 oder RIPEMD-128/60.

Zwei Teilnehmer, die das System nutzen wollen, müssen sich vorab also auf zwei Dinge einigen:

  • Geheime Keys. Sie müssen in der Lage sein, die Nachrichten, die sie empfangen, zu entschlüsseln. Dies geschieht mithilfe eines geheimen Keys, der vertraulich und verborgen bleibt.
  • Einen Algorithmus. Sie müssen eine Hash-Funktion wählen, durch die alle ihre Nachrichten geleitet werden. 

Nach Abschluss des Verfahrens gilt die Verschlüsselung als nicht umkehrbar und ist auch vor Hacking-Angriffen geschützt. Ein Angreifer, der diese Nachricht abfängt, wird nicht einmal in der Lage sein, ihre Länge zu erraten. Die Verarbeitung macht den Inhalt der Nachricht für jeden, der keinen Schlüssel oder Code hat, absolut unbrauchbar. 

HMAC-Testing-Tools illustrieren, wie dieses Verfahren funktioniert. Stellen Sie sich vor, Sie arbeiten mit folgenden Parametern:
 

  • Mögliche Nachricht: Ich möchte 100 Einheiten kaufen. 
  • Geheimer Key: 666
  • Algorithmus: MD5

Die verarbeitete Nachricht lautet: " fd9f18089206e67b163771a3883185ab." 

Hinter dem scheinbar einfachen Übersetzungsprozess verbirgt sich anspruchsvolle Mathematik. Versuchen wir, darzustellen, wie HMAC mathematisch aussieht, verwenden wir Diagramme wie dieses. 

Für Entwickler ist es kritisch, die Mathematik zu verstehen. Wenn man Sie auffordert, Ihre Arbeit und die von Ihnen implementierten Schutzmaßnahmen zu erläutern, stellt ein Diagramm die Dinge oft besser dar, als es Ihre Worte könnten.

Aber der durchschnittliche Computeranwender muss die Mathematik nicht unbedingt verstehen. Er muss einfach nur die Gewissheit haben, dass seine Nachrichten sicher sind.

 

HMAC

 

Wie Sie HMAC implementieren 

Um HMAC zu nutzen, sei es als Anwender oder als Webentwickler, sind Sie auf drei wichtige Dinge angewiesen. Und Sie müssen sich mit Ihren Empfängern über diese Punkte verständigen – denn nur so werden Sie zur gleichen Zeit die gleichen Werkzeuge verwenden.

Sie benötigen die folgenden zwei Dinge:

  1. Ein gemeinsames Geheimnis 
  2. Ein Hashing-Tool 

Nur Ihr Server sollte alle drei für all Ihre Anwender kennen. Und diese Daten sollten sehr gut geschützt werden. Jeder, der die geheimen Keys Ihrer Mitglieder kennt, kann damit Ihren Server übernehmen und/oder manipulierte Daten versenden. 

Jede Website und jede Programmierumgebung ist anders, aber trotzdem dürfte es hilfreich sein, ein Beispiel durchzugehen. Angenommen, Sie möchten HMAC für den Traffic verwenden, der über dynamische Google-Anzeigen auf Ihre Website gelangt. Sie müssen:

  • Ein Token im Ad Manager entwickeln. Sie hinterlegen die Einzelheiten zum Besuch und zur Uhrzeit. Dann verwenden Sie den Authentifizierungsschlüssel von Google, um Ihren „geheimen Schlüssel“ zu generieren.
  • Die Lösung implementieren. Sie können Ihr neues Token in die Kopfzeile Ihrer Autorisierungsanfrage einbetten oder als Abfragezeichenfolge oder Formulardatenparameter übergeben. 

Mit Google funktioniert das einfach und schnell. Entwickler können ein einfaches Tutorial absolvieren und den Code innerhalb von Minuten kopieren.

Beachten Sie dabei, dass Sie Ihre Google-Ads-Besucher nicht etwa auffordern, sich einen Code zu merken oder Nachrichten zu entschlüsseln. Der Server des Nutzers versteht ganz genau, wie Ihre Website funktioniert, und die gesamte Token-Erstellung und Übersetzung geschieht für die Anwender vollkommen transparent. 

Dennoch sollten Sie diese Umgebung viele Male testen, bevor Sie sie einsetzen. Eventuelle Programmierfehler könnten dazu führen, dass Besucher keinen Zugriff auf Ihre Website erhalten, weil sie das System für Angreifer hält. Es lohnt sich also, eine solche Lösung auf multiplen Geräten zu testen, bevor Sie es für die breite Masse zugänglich machen.

Wann sollten Sie HMAC verwenden?

In so gut wie jedem Unternehmen gibt es sensible Informationen. Wenn Sie zum Beispiel in irgendeiner Form Zahlungen entgegennehmen, arbeiten Sie wahrscheinlich mit Kreditkartendaten. Und wenn Sie Angestellte haben, verarbeiten Sie Sozialversicherungsnummern, die gestohlen werden könnten. 

In einigen Unternehmen reichen die Probleme aber noch tiefer. Wenn Sie in einem stark regulierten Umfeld wie dem Gesundheitswesen tätig sind, oder mit vertraulichen Informationen arbeiten, lohnt es sich, über die herkömmlichen Sicherheitsmaßnahmen hinauszugehen. 

Der doppelte Schutz, den HMAC bietet, ist für Unternehmen vielleicht genau das Richtige, wenn es nachzuweisen gilt, dass sie ihre Assets so sorgfältig wie möglich schützen. 

Wie Okta Sie unterstützt

Hier bei Okta sind wir überzeugt, dass individualisierte Security-Lösungen der Schlüssel zum Erfolg unserer Kunden sind. Lesen Sie, wie Okta HMAC-Signaturalgorithmen einsetzt, um Ihr Unternehmen zu schützen.

Referenzen

HMAC: Keyed-Hashing for Message Authentication. (Februar 1997). Network Working Group. 

HMAC and Key Derivation. Practical Cryptography for Developers. 

HMAC Generator/Tester Tool. FreeFormatter. 

How API Request Signing Works (And How to Implement HMAC in NodeJS). (2016). Andrew Hoang. 

Implement HMAC Authentication (Beta). Google Ad Manager Help.