Junior Onur UNURLU

HMAC HASH MESSAGE AUTHENTICATION CODE FUNCTION

HMAC Hash Message Authentication Code Function Hakkında;

HMAC Yöntemi;
Hash-based message authentication code kelimelerinin kısaltmasıdır

Bu algoritma iki parametre ile çalışır, birincisi key dediğimiz sadece sunucu ve istemci tarafından bilinen gizli anahtardır. İkinci parametre ise asıl kriptolayacağımız mesajdır. Kriptolama işleminde ise servis tarafından sağlanan gizli anahtar, şifreleme algoritması(MD5,SHA1 vb.) ve hmac algoritması kullanılarak mesaj bir hash”a dönüştürülür. Sunucuya veriler iletildiğinde sunucu verilere aynı işlemi uygular ve hash”leri kontrol eder. Key parametresi timespan olarak belirlenirse zamana bağlı hash üretilmiş olur veya bu tip benzer yöntemler kullanılarak tek kullanımlık hash üretilebilir.

Bu algoritmayı kendimiz kolaylıkla yazabiliriz ya da kullandığımız programlama dili içerisinde bu kriptolama sınıfı varsa iki satır kod ile Hmac algoritmasını uygulayabiliriz.

Neden HMAC kullanmalıyım?

Hmac genel olarak bir MAC fonksiyonunun tüm özelliklerine sahiptir. Bu demektir ki HMAC gönderici ve alıcı arasındaki veri bütünlüğünü garanti eder. Ayrıca HMAC hesaplanması kolay ve oldukça hızlıdır. Kullanılacak hash algoritmalarına olan güveni de yanına alıp, hızlı ve kompak çalışarak şifreleme işlemlerini gerçekleştirir. Ayrıca HMAC, kullanılacak programlama dili Api,sınıf vb. bir şekilde HMAC algoritmasını içermese bile kolaylıkla yazılarak uygulanabilecek kadar basit. Ayrıca HMAC gönderici ve alıcı haricinde başkası tarafından hesaplanamaz, yani HMAC göndericinin verileri alıcıya teslim ettiğini garanti etmez, göndericideki ve alıcıdaki verilerin birebir olduğunu garanti eder.

Formül:

HMAC (K,M) = H[(K+opad) | | H [(k+ipad) | | M]]

M = Mesaj, H = Kullanılacak hash fonksiyonu(MD5,SHA1 vb.) , K = Gizli anahtar , opad hex(0x36) [ascii olarak "6" karakteri] değerinin tekrarlanmasıyla oluşan byte dizisi, ipad = hex(0x5C)[ascii olarak "" karakteri] değerinin tekrarlanmasıyla oluşan byte dizisi, | | = birleştirme işlemi , + = XOR operatörü. b (bloksize) bitlerin bloklanacağı büyüklüktür. SHA-1, MD5, RIPEMD-128/160 vb. fonksiyonlarda 64 bit olarak kullanılır.

  1. K(key)”nın uzunluğu b(bloksize)”den büyükse H(hash) algoritması ile şifrelenerek küçültülür.
  2. K”nın uzunluğu b”den küçükse b”ye eşit olana kadar hex(0x00) ile doldurulur.
  3. Yine b”nin uzunluğunda ipad (tamamen hex(0x36) ile doldurularak) ve opad (tamamen hex(0x5C) ile doldurularak) oluşturulur.
  4. K XOR ipad işlemi ile k_ipad oluşturulur.
  5. K XOR opad işlemi ile k_opad oluşturulur.
  6. k_ipad”e M(mesaj)”yi eklenir.
  7. 6.Adım da üretilen akışa H uygulanır.
  8. 7.Adım da oluşturulan hash değerine 5.adımda üretilen k_opad değeri eklenir.
  9. 8.Adımda oluşan ifadeye H uygulanır ve sonuç gönderilir.

https://www.inploid.com/post/hmac-nedir-nasil-kullanilir/31059/#:~:targetText=Hash%2Dbased%20message%20authentication%20code,veri%20b%C3%BCt%C3%BCnl%C3%BC%C4%9F%C3%BCn%C3%BC%20sa%C4%9Flamak%20i%C3%A7in%20kullan%C4%B1l%C4%B1r.&targetText=Key%20parametresi%20timespan%20olarak%20belirlenirse,kullan%C4%B1larak%20tek%20kullan%C4%B1ml%C4%B1k%20hash%20%C3%BCretilebilir.
Facebook

   SON EKLENEN 6 LİNK