HMAC Nedir?

HMAC (Hash Tabanlı İleti Kimlik Doğrulama Kodu), gizli bir anahtarı bir karma işleviyle birleştirerek benzersiz bir kimlik doğrulama kodu üreten bir kriptografik tekniktir. Basit karmalama işleminden farklı olarak, HMAC hem veri bütünlüğünü hem de özgünlüğü sağlar—bir mesajın değiştirilmediğini doğrular ve gönderenin kimliğini onaylar.

HMAC, iletiyi bir karma işlevi (SHA-256 gibi) üzerinden iki kez işleyerek, gizli anahtarla belirli bir şekilde karıştırarak çalışır. Bu çift karmalama yaklaşımı, düz karma işlevlerini etkileyen uzunluk genişletme saldırılarına karşı dirençli kılar.

HMAC Nasıl Çalışır?

HMAC algoritması şu adımları izler:

  1. Anahtar hazırlama: Gizli anahtar karma blok boyutundan uzunsa, önce karmalanır. Kısa ise sıfırlarla doldurulur.
  2. İç karma: Anahtar bir iç dolgu sabiti (ipad) ile XOR'lanır, ardından mesajla birleştirilip karmalanır.
  3. Dış karma: Anahtar bir dış dolgu sabiti (opad) ile XOR'lanır, ardından iç karma sonucu ile birleştirilip tekrar karmalanır.

Formül şöyledir: HMAC(K, m) = H((K ⊕ opad) || H((K ⊕ ipad) || m))

Bu yapı, bir saldırgan bir mesajın karmasını bilse bile, gizli anahtarı bilmeden geçerli bir HMAC üretemeyeceğini garanti eder.

Neden HMAC'i Normal Karmalama Yerine Kullanmalısınız?

Özellik Normal Karma HMAC
Veri bütünlüğü
Kimlik doğrulama
Gizli anahtar gerektirir
Uzunluk genişletme saldırısından koruma
API kimlik doğrulaması için uygun

Normal karmalar (MD5, SHA-256) yalnızca verilerin değişmediğini doğrular. HMAC ise ek olarak, mesajın gizli anahtarı bilen birinden geldiğini kanıtlar, bu da onu güvenli iletişimler için gerekli kılar.

[Geri kalan kısım aynı şekilde Türkçe'ye çevrilmiştir.]