R10.NET Uygulamaları
Kullanıcılar
Yükleniyor, lütfen bekleyiniz..

    MD5 Şifreleme

    MD5 (Message Digest 5), Profesör Ron Rivest tarafından 1991 yılında geliştirilen bir şifreleme methodudur. Bu yöntem ile gizlenmek istenen verilere şifre konulur. Böylelikle gizlenen verinin güvenliği artırılmış olmaktadır.

    MD5 sık kullanılan bir şifreleme algoritmasıdır. MD5, veri boyutu fark etmeksizin 128 bit özet bir değer üretir. Veri bütünlüğünün teyidi için bir sağlama değeri (cheksum) oluşturur. MD5 ilk olarak kriptografik özet fonksiyonu olarak geliştirilmiştir. Ancak sonrasında güvenlik açıklıkları ortaya çıkmıştır. Yalnızca kasıtsız olarak meydana getirilen değişiklikler için elverişlidir.

    MD5 algoritması genel yapısı nasıldır?

    MD5, sık tercih edilir. Standart kriptografik özet fonksiyonu olarak kullanılır. “128 bit özet” değeri üretir ve bu değer veri boyutuna göre değişmez. MD5 öncelikli olarak kriptografik özet fonksiyonu olarak geliştirilmiştir. Ancak sonrasında geniş çaplı güvenlik zaafiyeti saptanmıştır. MD5, veri bütünlüğünün sağlandığını tespit eder. Bunu yaparken de bir sağlama değeri (cheksum) kullanır. MD5, kasıtsız olarak gerçekleştirilen değişiklikler açısından oldukça elverişlidir. Çoğu kriptografik özet fonksiyonu gibi şifrelemede algortima içermez. Siber saldırı ile kırılması mümkündür. MD5 bu sebeple geniş çaplı bir güvenlik zaafiyetine sahiptir.

    MD5, Ron Rivest tarafından tasarlanmıştır. MD5’tan önce onun yerine “MD4 versiyonu” vardı. 1991 yılında da MD5 geliştirildi. MD5, “RFC 1321’de” de yer alan kaynak kodu olan “RSA lisansına” sahiptir. ‘MD5’ın açılımı da “Mesaj Özeti 5” anlamına gelmektedir.

    MD5, güvenlik zaafiyeti problemi sebebiyle güvenilirliğini büyük ölçüde kaybetmiştir. MD’in güvenlik zaafiyetlerine sahada da yer verilmiştir. 2012’de çıkan “Flame malware”, bu çalışmaların en önemlisidir. "CMU Yazılım Mühendisliği Enstitüsü", MD5 hakkında açıklama yapmıştır. Enstitünün yaptığı açıklama “kriptografik olarak kırılması mümkündür, kullanıma elverişli değildir” şeklindedir.

    MD5 algoritması

    MD5 farklı uzunluktaki mesajları, 128 bitlik uzunlukta sabit bir çıktı olarak işler. Giriş mesajı da 512 bitlik blok parçalara ayrılır. Bunlar da on altı tane 32 bitlik kelimeler halindedir. Mesaj, uzunluğu 512 ile bölünecek uzunlukta doldurulur. Bu doldurma işlemi de şöyle ilerler: 

    • Önce mesajın sonuna bir bit 1 eklenir. 
    • Daha sonra mesajın uzunluğu 512'nin katından 64 bit eksik olacak şekilde 0 ile doldurulur. 
    • Kalan 64 bite, orijinal mesajın uzunluğu ‘mod 264’te yazılır.

    Ana MD5 algoritması, A, B, C ve D olmak üzere dört tane 32 bitlik kelimeye ayrılmış 128 bitlik parçalar üzerine işler. Bunlar birer sabit değer ile başlatılır. Daha sonra ana algoritma kullanılır. Her 512 bit mesaj bloğununun durumu, 128 bit olarak değiştirilir. 

    Bir mesaj bloğunun değiştirilmesi, “tur” isminde dört benzer kademeden oluşur. Doğrusal olmayan fonksiyon, modüler toplama ve bit bazında sola kaydırma işlemleri gerçekleştirilir. Toplam olarak 16 tur vardır.Aşağıdaki tabloda, her tur içinde yapılan işlemler yer alır. Dört olası F fonksiyonu vardır. Her turda değişik bir fonksiyon kullanılır.

    F (B, C, D) = (B ^ C) v (-B ^ D)
    G (B, C, D) = (B ^ D) v (C ^ -D)
    H (B, C, D) = B * C * D 
    I (B, C, D) = C * (B v -D) 
    * = XOR, ^ = AND, v = OR - = No Toperalarını temsil eder.

    MD5 kullanım alanları ve faydaları nelerdir?

    MD5, MySQL gibi algoritma oluşturucu gibi kullanılır. Veritabanına şifre, kredi kartı bilgileri gibi özellikler saklama açısından elverişlidir. PHP, ASP programcılar tarafından tercih edilir. MySQL, SQL, MariaDB, Postgress gibi veritabanlarını geliştirenler tarafından kullanılır. Elverişli bir çevrimiçi kaynaktır. 

    MD5 algoritması ile aynı dizenin kodlanması, daima 128 bit algoritma çıkışı ile sonuçlanır. Şifre, kredi kartı numarası gibi bilgiler MySQL benzeri veritabanlarında depolanır. MD5 algoritmaları, burada minik dizelerle sık olarak kullanılır. 256 bit uzunluğa kadar, basit bir dizeden MD5 algoritması kodlamak hızlı ve kolaydır.

    MD5 algoritmaları, bir dosyaya veri bütünlüğü sağlamak için de tercih edilir. MD5 algoritması daima aynı giriş için aynı çıktıyı üretir. Kullanıcılar da verinin sağlam ve orijinal olduğunu tespit etmek için algoritma değerlerini karşılaştırır. Kaynak dosyanın algoritma değeri ile hedefteki dosyanın algoritma değeri kıyaslanır.

    MD5 bir şifreleme algoritması değildir. Verilen girdinin bir parmak izine benzetilmesi mümkündür. MD5 tek yönlü bir işlemdir. Orijinal dize için MD algoritmanın zıttında çalışan bir teknoloji imkansız görülmektedir.

    MD5 dezavantajları nelerdir?

    MD5 güvenilirliği ciddi olarak sarsılan bir özet fonksiyonudur. 2,6 GHz Pentium 4 işlemcili bir bilgisayarda, saniyeler içerisinde çarpışmalara yol açan çarpışma saldırısı mevcuttur. Ayrıca  “chosen-prefix collision attack” ile belirli ön eklere sahip girdilerde, çakışma meydana gelmesi mümkündür. Bu çakışmalar genelde birkaç saat içerisinde gerçekleşir. Çakışmaları bulmak, hazır GPU'ların kullanımı ile mümkündür. “NVIDIA GeForce 8400GS” grafik işlemcisinde saniyede16-18 milyon özet değeri hesaplanır. “NVIDIA GeForce 8800 Ultra” ise, saniyede 200 milyondan fazla özet değeri hesaplar.

    Bu dosyaların çakışması, sayısal sertifikaların (digital certificates) çakışması kullanıcılara duyurulmuştur. 2015'ten beri, MD5'in sıklıkla kullanıldığı, güvenlik araştırmaları ve antivirüs şirketleri tarafından belirtilmektedir.

    1996 yılında MD5'ın tasarımında bir hata bulunmuştur. O dönem için çok önemli bir güvenlik açığı sayılmamıştır Ancak kriptografçılar, güvenlik zaafiyeti tespit edilen MD5 yerine başka algoritmaların kullanılmasını önermiştir. 

    2004’te MD5'in çakışmalara karşı güvenli olmadığı tespit edilmiştir. SSL sertifikaları, dijital imza benzeri dijital güvenliğe dayanan uygulamalar için elverişli değildir. 2004’te algoritmanın güvenilirliğini sarsan daha ciddi açıklar tespit edilmiştir. Bir grup araştırmacı, MD5 sağlama değerini üreten bir tür dosya geliştirdiklerini açıklamıştır. 2005, 2006 ve 2007 yıllarında MD5'i kırma yolunda ilerlemeler kaydedilmiştir. 2008 yılında ise bir grup araştırmacı bunu sahte SSL sertifikası elde etmek amaçlı kullanmıştır.

    2010’da CMU Yazılım Mühendisliği Enstitüsü, MD5 için açıklama yapmıştır. Açıklamasında "kriptografik açıdan kırılabilir daha fazla kullanım için uygun değildir"  demiştir. ABD hükümet uygulamalarında genellikle, “SHA-2” ailesi özet fonksiyonları kullanılır. 2012'de, Flame malware ile MD5'ın güvenlik zaafiyetleri, sahte Microsoft dijital imzası için kullanılmıştır.

    Yazıyı Paylaş
    İçeriği Faydalı Buldunuz mu?
    MD5 Şifreleme
    Tasarımcı

    Ronald Rivest

    İlk Yayın Tarihi

    Nisan 1992

    Versiyonları

    MD2, MD4, MD5, MD6

    Özet Boyutu

    128 Bit

    Blok Boyutu

    512 Bit

    Size daha iyi hizmet sunabilmek
    için çerezleri kullanıyoruz.

    Çerez Politikası Kabul Et