Açık Anahtar Altyapısında (Public Key Infrastructure) sayısal imza bir anahtar çifti (açık ve özel anahtarlar) ile elektronik ortamda iletilen veriye vurulan bir mühürdür. Sayısal imzalar göndericinin kimliğinin kesin bir biçimde teyit edilmesini ve elektronik dokümanın bütünlüğünün kontrolünü mümkün kılar. Sayısal İmza inkâr edilemez özelliktedir (Non-repudiation).
Sayısal imza, imzalanacak metin ve imzalayacak kişinin gizli anahtarı kullanılarak elde edilen bir dizi karakterden oluşur. Elle atılan imzanın elektronik ortamdaki karşılığıdır. Sayısal imza, doğru şekilde kullanıldığında, mesajın bütünlüğünün korunmasını, kaynağın doğruluğunun ispatlanmasını ve reddedilemez olmasını sağlar.
Sayısal İmzanın İşleyişi
Sayısal imzanın nasıl işlediğini anlamak için yeni bir kriptografik algoritmadan, özet fonksiyonundan (hash function) bahsetmek gerekir. Asimetrik (açık anahtarlı) şifreleme yöntemleri şifreleme ve şifre çözme için farklı anahtarlar, simetrik (gizli anahtarlı) şifreleme yöntemleri ise iki işlem için de aynı anahtarı kullanır. Özet fonksiyonları ise sadece şifreler. Özet fonksiyonu bir mesajın 16 veya 20 bitlik parmak izini çıkarır. Belli bir mesaj aynı özet algoritması kullanıldığında, aynı mesaj özetini verir. Eğer iyi bir özet fonksiyonu kullanılıyorsa, mesajda yapılan tek bitlik bir değişim bile mesaj özetinin değişmesine sebep olur. Özet fonksiyonu kullanarak, kimlik denetimi amacıyla gizli anahtarla bütün mesajı şifrelemek zorunluluğu ortadan kalkar. Özet fonksiyonları verilen mesajı şifreler, ancak bunun geri dönüşü yoktur, yani eldeki mesaj özeti kullanılarak orijinal mesaj elde edilemez.
Bir mesajı imzalamak, öncelikle mesajın, özet fonksiyonundan geçirerek özetini çıkarmak ve çıkan özeti şifrelemek anlamına gelir.
Sayısal İmzanın Çalışma Mantığı
Bir iletinin sayısal olarak imzalanabilmesi için iletiyi imzalayacak kişinin anahtar çiftine (açık ve özel anahtarlar) sahip olması gerekmektedir. İletinin sayısal imzalanması ve imzanın doğrulanması işlemleri için gereken adımlar aşağıda sıralanmıştır:
İletinin İmzalanması
- İletinin hash(özet) değeri hesaplanır. Hash değerinin hesaplanması için SHA-1 veya MD5 gibi algoritmalar kullanılmaktadır. Hash değerininden orijinal iletinin elde edilmesi mümkün değildir ve orijinal iletide küçük bir değişim (bir bit’in veya karakterin değişmesi) iletinin hash değerinde büyük değişikliklere neden olmaktadır. Bu hash değerinin diğer adı da “message digest”‘dır.
- Elde edilen hash değeri (message digest) imzayı atacak kişinin özel anahtarıyla asimetrik olarak şifrelenmektedir. Şifreleme işlemi RSA veya benzeri asimetrik şifreleme algoritmaları kullanılarak yapılmaktadır. Özel anahtarla şifrelenen veriyi ancak anahtar çiftini oluşturan ikinci anahtar olan açık anahtar deşifre edebilmektedir. Özel anahtar sadece imzayı atan kişide saklı tutulur, açık anahtara ise herkesin erişmesi mümkündür.
- İletinin hash değerinin özel anahtarla şifrelenmiş hali iletinin sayısal imza bloğudur ve bu değer iletinin sonuna eklenir, böylece ileti sayısal olarak imzalanmış olur.
İletinin İmzasının Doğrulanması
İletinin sayısal imzasının doğrulanabilmesi için iletiyi imzalayan şahsın açık anaharına ihtiyaç duyulmaktadır. Açık anahtarlar Sertifika Otoritesi tarafından halka açık yerlerde yayınlanmaktadırlar (Active Directory, LDAP …). Doğrulama işlemi için gereken adımlar şunlardır:
- Orijinal iletinin (iletinin sayısal imza blogu hariç olan kısmı) hash değeri hesaplanır. Bu işlem için kullanılan algoritma imzalarken kullanılan algoritmayla aynı olmalıdır.
- İletinin sonuna eklenen imza blogu imzalayan kişinin açık anahtarıyla deşifre edilir, elde ettiğimiz sonuç orijinal iletinin imzalama esnasında hesaplanan hash değeridir. İletinin deşifre etme işlemi için kullanılan asimetrik algoritma şifreleme işlemi için kullanılan algoritmayla aynı olmalıdır.
- 1. ve 2. adımlarda elde edilen değerlerin eşit olması iletinin bozulmamış olmasını ve bu iletiyi imzalayan kişinin de deşifre işleminde kullanılan açık anahtarın sahibi kişi olduğunu göstermektedir.
- 1. ve 2. adımlarda elde edilen değerlerin farklı olması durumunda ise sayısal imzanın geçersiz olduğunu ve iletinin bozulmuş olduğunu göstermektedir.
Şekil 2: Sayısal imza ile şifrelenmiş mesajın doğrulanamsı
Sayısal İmzanın İnkâr Edilemez Özelliği (Non-repudiation)
Sayısal imzanın inkar edilemez özellikte olmasını imza doğrulama işleminin 2. adımında sayısal imza bloğunun şifresini çözmek için kullanılan açık anahtar sağlamaktadır. Bu adımda özel anahtarla şifrelenen veri açık anahtarla deşifre edilmektedir. Sayısal imzalama işleminde kullanılan asimetrik algoritmanın doğası gereği özel anahtarla şifrelenen veri sadece ve sadece anahtar çiftini oluşturan diğer anahtar olan açık anahtarla deşifre edilebilmektedir (aynı şekilde açık anahtarla şifrelenen veri sadece ve sadece özel anahtarla deşifre edilebilmektedir). Eğer bu adımda açık anahtar imza bloğunu başarıyla deşifre etmekteyse, imza bloğunu imzalayan kişinin açık anahtarın sahibi kişi olduğu kanıtlanmaktadır. Aksi halde, imza blogunun açık anahtar tarafından deşifre edilememesi durumunda, imza bloğu bozulmuştur (değiştirilmiştir) veya ileti açık anahtarın sahibi kişi tarafından imzalanmamıştır.
Bölüm 1: Kriptoloji Nedir?
Bölüm 2: Kriptografide Kullanılan Teknikler ve Kriptografik Uygulamalar
Bölüm 3: Gizli Anahtarlı Kriptografi
Bölüm 4: Açık Anahtarlı Kriptografi
Bölüm 5: Sayısal İmza
Bölüm 6: Şifreleme Algoritmaları
Bölüm 7: SSL (Secure Socket Layer) Nedir?
Not: Bu yazı dizisindeki bilgiler güncelliğini yitirmiş olabilir. Bu yazıları hazırladığım zaman kaynakları yazmadığım için burada belirtemedim.
Merhabalar,
Sanırım ilk yorumu ben yazıyorum 2010daki makaleye :) teşekkür ederim, gerçekten çok güzel yazmışsınız. Diges’tin ne demek olduğuna kadar belirtmişsiniz. Çok değerli bir yazı ilgilenenler için. Birçok yazı okudum, ingilizce/türkçe ama sizin yazınızdaki gibi açık ilişkisel ve tam yerinde belirtilmiş ifadeler yok. Tekrar çok teşekkür ederim :)
Cem