Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
about-hmac — HMAC-Implementierungsbeispiel und Erklärung | Kitploit
Tools/GitHubGitHub/password123456/about-hmac
KryptographieAuthentifizierungLernen & BildungAPI-Sicherheit
GitHubpassword123456/about-hmac

about-hmac

HMAC-Implementierungsbeispiel und Erklärung

Repository anzeigen
24vor 2 JahrenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Über HMAC

made-with-python Python Versions Hits

Eine Beispielimplementierung von grundlegendem HMAC (Hash-basierter Nachrichtenauthentifizierungscode) mit Flask in Python.

Was ist HMAC?!

Der hash-basierte Nachrichtenauthentifizierungscode (HMAC) stellt dem Server und dem Client jeweils einen privaten Schlüssel zur Verfügung, der nur diesem bestimmten Server und diesem bestimmten Client bekannt ist. Der Client erstellt pro Anfrage an den Server einen eindeutigen HMAC oder Hash, indem er die Anfragedaten mit den privaten Schlüsseln hasht und sie als Teil einer Anfrage sendet. Was HMAC sicherer macht als den Message Authentication Code (MAC), ist, dass der Schlüssel und die Nachricht in separaten Schritten gehasht werden.

img

Beispiel

(1) Client-Anfrage an den Server

  • Wenn ein Client eine Anfrage an den Server sendet, enthält sie die folgenden Header:

  • X-Authorization-Content-HMAC: HMAC-Hash (gesamte Anfrage-URI, aktueller Unix-Zeitstempel (UTC) und HMAC-Geheimschlüssel)

  • X-Authorization-Timestamp: aktueller Unix-Zeitstempel des Clients (UTC)

root@kitploit:~
(request)
GET /example/users?user=test&institutionID=999&signature=7e745d74b69b7f62e8e2 HTTP/1.1
Host: example.com
X-Authorization-Content-HMAC: 1c73495878ccea24af9dd281a4c883c40a3551ba799d30f4ad7d9afb6a60fbd4
X-Authorization-Timestamp: 1711662980

[ Client-Anfrageprozess ]

  • Der Client bereitet die Anfrage vor und sendet sie an den Server.
  • Der Server validiert die Anfrage, indem er die HMAC-Integrität und die Gültigkeit des Zeitstempels überprüft.
  • Wenn die Validierung erfolgreich ist, verarbeitet der Server die Anfrage; andernfalls sendet er eine Fehlerantwort.

(2) Server-Antwort an den Client

  • Wenn der Server auf eine gültige Anfrage antwortet, enthält sie die folgenden Header:

  • X-Response-Content-HMAC: HMAC-Hash (gesamter Antwortbody, aktueller Unix-Zeitstempel (UTC) und HMAC-Geheimschlüssel)

  • X-Response-Content-TimeStamp: aktueller Unix-Zeitstempel (UTC)

root@kitploit:~
(response)
HTTP/2 200 OK
Date: Fri, 29 Mar 2024 06:50:49 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 52
X-Response-Content-HMAC: 529c33aac3e33bf2a95d534f8b3ac61dee2ed79232d729e571dc669417a1a2ae
X-Response-Content-TimeStamp: 1711663027
Connection: close

{"result": "ok", "users": "test", "sub": 2840345654}

[ Antwortprozess ]

  • Der Server bereitet die Antwortdaten vor und sendet sie an den Client.
  • (Zusätzlich) Falls erforderlich, kann der Client die HMAC-Integrität der Antwortdaten überprüfen.
  • Wenn die Validierung fehlschlägt, lehnt der Client die Antwortdaten ab.
root@kitploit:~
Server response HMAC verification successful
--------------
Response timestamp: 2024-03-29T09:25:31
Current time: 2024-03-29T09:25:31
Time difference: 0

Zusätzliche Hinweise

  • Es gibt keine strikte Regel, ob GET oder POST verwendet werden soll; aus Sicherheitsgründen wird jedoch üblicherweise POST bevorzugt. Die Verwendung von GET-Anfragen kann dazu führen, dass alle Abfragezeichenfolgen in Webserver-Logs protokolliert werden.
  • Verwenden Sie immer UTC-Unix-Zeitstempel für Zeitstempelinformationen, um Konsistenz zu gewährleisten und zeitzonenbedingte Probleme zu vermeiden.
  • Der Umfang der HMAC-Berechnung kann variieren. Während sie typischerweise das Hashen des gesamten Antwortbodens umfasst, ist auch ein selektives Hashen von Daten möglich, insbesondere wenn der Antwortbody sehr umfangreich ist.
  • Die Wahl des HMAC-Algorithmus (z. B. Hmac-SHA256, Hmac-SHA512) und die Länge des geheimen Schlüssels sollten auf Sicherheitsanforderungen und Best Practices basieren.

Schutz vor Replay-Angriffen

  • Der Server kann verarbeitete Anfragen im Arbeitsspeicher (z. B. Redis) speichern und wiederholte Anfragen innerhalb eines bestimmten Zeitrahmens verwerfen, um Replay-Angriffe zu verhindern.
  • Darüber hinaus kann der Server den Schutz vor Replay-Angriffen verbessern, indem er den vom Client im Anforderungsheader gesendeten Zeitstempel-Header (X-Authorization-Timestamp) mit der aktuellen Serverzeit vergleicht. Liegt der Zeitstempel außerhalb eines bestimmten Zeitrahmens, kann der Server die Anfrage verwerfen.

Und...

Wenn dies hilfreich ist, geben Sie bitte einen "Stern"🌟, um weitere Verbesserungen zu unterstützen.

Tool herunterladen