0Pricing
Cryptology Academy · Ders

HMAC Yapısı ve Güvenlik İspatı

ipad/opad yapısını ve güvenlik özelliklerini adım adım inceleyin.

HMAC Yapısı ve Güvenlik İspatı, CoddyKit'te ücretsiz bir Cryptology Academy dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Cryptology Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Cryptology Academy kursu toplamda 4 dersten oluşur.

Hoş Geldiniz

HMAC, standart anahtarlı MAC yapısıdır. Çift özetleme tasarımı, uzunluk genişletme saldırılarını önler ve HMAC'in güvenliğini temel hash işlevinin güvenliğine indirgeyen biçimsel bir güvenlik kanıtına sahiptir.

HMAC Yapısı

HMAC(K, M) = H((K' ⊕ opad) || H((K' ⊕ ipad) || M)) Burada: - K' = K, blok boyutu B olacak şekilde sıfırlarla doldurulur (veya |K|>B ise H(K) kullanılır) - ipad = 0x36, B kez tekrarlanır - opad = 0x5C, B kez tekrarlanır

ipad ve opad neden kullanılır?

ipad (0x36) ve opad (0x5C), K' ⊕ ipad ≠ K' ⊕ opad olmasını sağlayan farklı sabitlerdir. Bunlar, K'den etkili biçimde iki farklı sözde rastgele anahtar üretir; bu anahtarlar iç ve dış özetleme için kullanılır.

HMAC Adım Adım

K=secret, M=message, H=SHA256 için: 1. K' = K, 64 bayta doldurulur 2. inner_key = K' XOR ipad 3. inner_hash = SHA256(inner_key || M) 4. outer_key = K' XOR opad 5. result = SHA256(outer_key || inner_hash)

Python'da HMAC

import hmac, hashlib key = b'my_secret_key' message = b'Hello, World!' mac = hmac.new(key, message, hashlib.sha256) print(mac.hexdigest()) # 64-char hex string (256 bits)

HMAC'te Uzunluk Genişletmesi Neden Başarısız Olur?

HMAC(K,M) = SHA256(outer_key || SHA256(inner_key || M)) verilsin. Saldırgan, SHA256(inner_key || M) = inner_hash değerini bilir. Ancak bu değeri genişletemez; dış özet, girdi olarak yalnızca inner_hash değerini değil, (outer_key || inner_hash) ifadesini alır. outer_key değerini bilmez.

HMAC Güvenlik Kanıtı (Bellare)

Bellare (1996) şunu kanıtlamıştır: H hash işlevi sözde rastgele bir işlevse (PRF), HMAC de bir PRF'dir. Pratikte bu, HMAC-SHA256'nın amaçlanan güvenlik özellikleri bakımından SHA-256 kadar güvenli olduğu anlamına gelir.

HMAC için Anahtar Uzunluğu

HMAC anahtarı: - En az L bayt olmalıdır (hash çıktısının uzunluğu) - Önerilen: tam olarak L bayt rastgele veri - Anahtar > block_size ise anahtar, block_size boyutuna önceden hash'lenir - HMAC-SHA256 anahtarları için os.urandom(32) kullanılır

HMAC Kesme

HMAC çıktısı, önemli bir güvenlik kaybı olmadan çıktı uzunluğunun yarısına kesilebilir. TOTP/HOTP, çıktıyı 4 bayta keser. TLS MAC'leri de kesilir. 80 bitin (10 bayt) altına hiçbir zaman kesmeyin.

Farklı Bağlamlarda HMAC

HMAC-SHA256 şu alanlarda kullanılır: - TOTP: kimlik doğrulama kodları (6 basamağa kesilir) - TLS 1.2: oturum MAC'leri (AEAD kullanılan TLS 1.3'te gerekmez) - JWT'ler: HS256 imzalama (simetrik) - API isteklerini imzalama: GitHub web kancaları, AWS SigV4

HKDF: HMAC Tabanlı Anahtar Türetme

HKDF(IKM, salt, info, L), HMAC'i iki kez kullanır: 1. Ayıklama: PRK = HMAC-SHA256(salt, IKM) 2. Genişletme: OKM = HMAC-SHA256(PRK, info || counter) TLS 1.3 anahtar çizelgesinde, Signal'da ve anahtar türetme amacıyla WireGuard'da kullanılır.

Kısa Kontrol

HMAC'te opad'ın (0x5C tekrarlı) amacı nedir?

Özet

HMAC yapısını ve kanıtını anladınız. Sırada HMAC'i API isteği imzalamada uygulayacak ve yeniden oynatma saldırılarını nasıl önleyeceğinizi göreceksiniz.

Sıkça Sorulan Sorular

“HMAC Yapısı ve Güvenlik İspatı” dersi ücretsiz mi?

Evet — “HMAC Yapısı ve Güvenlik İspatı” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Cryptology Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Cryptology Academy kursu toplamda 4 dersten oluşur.

“HMAC Yapısı ve Güvenlik İspatı” dersinde ne öğreneceğim?

ipad/opad yapısını ve güvenlik özelliklerini adım adım inceleyin. Cryptology Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Cryptology Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Cryptology Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.

“HMAC Yapısı ve Güvenlik İspatı” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Cryptology Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Cryptology Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. MAC Kavramları ve Uzunluk Genişletme Saldırıları
  2. HMAC Yapısı ve Güvenlik İspatı
  3. API'lerde HMAC: İstek İmzalama
  4. CMAC ve Poly1305: Blok Şifresi MAC'leri
← Cryptology Academy Sayfasına Dön