HMAC nedir?
HMAC (Karma Tabanlı Mesaj Kimlik Doğrulama Kodu), alıcının mesajın hem bütünlüğünü hem de özgünlüğünü doğrulamasına olanak tanıyan sabit boyutlu bir kimlik doğrulama kodu üretmek için kriptografik karma fonksiyonunu gizli bir anahtarla birleştiren kriptografik mekanizmadır.
Diğer adlarıyla: Hash-Based Message Authentication Code, HMAC-SHA256
SHA-256 gibi basit bir karma fonksiyonu, veri bütünlüğünü doğrulayabilir — karma eşleşirse, veri değiştirilmemiştir. Ancak herkes bir karma hesaplayabildiğinden, yalnızca karma özgünlüğü doğrulayamaz. HMAC, karma sürecine gizli bir anahtar dahil ederek bu sorunu çözer. Yalnızca anahtara sahip taraflar doğru HMAC değerini üretebilir veya doğrulayabilir; bu da tek bir işlemde hem bütünlük hem de kimlik doğrulama sağlar.
RFC 2104'te tanımlanan HMAC yapısı, karma fonksiyonunu belirli aşamalarda anahtarı karıştırarak iki kez uygular. Bu çift geçiş yapısı, uzunluk uzantısı saldırılarına ve anahtarı karma öncesinde mesajla naif biçimde birleştirmekten kaynaklanan diğer güvenlik açıklarına karşı koruma sağlar. HMAC-SHA256 (temel karma olarak SHA-256 kullanan HMAC), en yaygın değişkendir ve 256 bitlik bir kimlik doğrulama kodu üretir.
HMAC, güvenlik protokollerinde yaygın biçimde kullanılır: JWT imzaları, API kimlik doğrulaması, webhook doğrulama, TLS kayıt koruması ve OAuth'ın tümü HMAC'e dayanır. Verimliliği, asimetrik imza şemalarının kabul edilemez gecikme getireceği ağ paketleri veya API istekleri gibi yüksek hacimli verilerin kimlik doğrulanmasını pratik kılar.
Sign a message with HMAC-SHA256
Edit either the key or the message and watch the signature change completely — the avalanche effect that makes HMAC forgery-resistant.
computing…
A verifier with the same key recomputes the HMAC over the received message; if it matches, the message was authored by someone who knows the key andwasn't modified in transit. Vaulted uses this exact construction to issue tamper-proof status-page tokens.
Vaulted HMAC nasıl kullanır
Vaulted, gizli bilgi durum sayfaları için güvenli token'lar üretmek amacıyla HMAC-SHA256 kullanır. Bir gizli bilgi oluşturulduğunda, sunucu tarafındaki bir anahtar kullanılarak gizli bilgi kimliği üzerinde HMAC hesaplanır. Bu HMAC token'ı, durum sayfası URL'sine dahil edilir; böylece gizli bilginin oluşturucusu, durum uç noktasına görüntüleme sayısı tüketme veya şifreli içeriğe erişim imkânı tanımadan, gizli bilgilerinin görüntülenip görüntülenmediğini veya son kullanma tarihinin geçip geçmediğini kontrol edebilir. HMAC, parola cümlelerinden anahtar türetirken PBKDF2 tarafından dahili olarak sahte rastgele fonksiyon olarak da kullanılır.