Middle+
Wat is HMAC?
sobes.tech AI
Antwoord van AI
HMAC (Hash-based Message Authentication Code) is een mechanisme om de authenticiteit en integriteit van een bericht te controleren met behulp van een hashfunctie en een geheime sleutel.
Het werkt als volgt:
- Het bericht en de geheime sleutel worden op een bepaalde manier door een hashfunctie verwerkt.
- Hieruit ontstaat een uniek hash-code (HMAC).
- Deze HMAC wordt samen met het bericht verzonden.
- De ontvanger, die hetzelfde bericht en dezelfde geheime sleutel heeft, berekent de HMAC opnieuw.
- Als de berekende HMAC overeenkomt met de ontvangen, wordt aangenomen dat het bericht niet is gewijzigd en afkomstig is van een bron die de geheime sleutel bezit.
HMAC_K(m) = Hash((K ⊕ opad) || Hash((K ⊕ ipad) || m))
Waar:
K— geheime sleutel.m— bericht.Hash— gebruikte hashfunctie (bijvoorbeeld SHA-256).||— concatenatie.⊕— XOR-operatie.ipad(inner padding) enopad(outer padding) — constanten die in het algoritme worden gebruikt.
Het verschil met een normale hashfunctie is dat HMAC een geheime sleutel gebruikt, waardoor het bestand is tegen bepaalde soorten aanvallen die gericht zijn op het vervalsen van de hash.
Toepassingen in webontwikkeling:
- Bearer tokens: Voor het maken en verifiëren van authenticatietokens.
- Aanvraagondertekening: Voor het controleren van de authenticiteit van API-aanvragen.
- Gegevensverificatie: Garantie dat gegevens niet zijn gewijzigd tijdens verzending.
Voordelen:
- Hoge cryptografische weerstand.
- Compatibel met verschillende hashfuncties.
- Eenvoudig te implementeren.