Dijital İmza
Digital Signature
- İngilizcesi
- Digital Signature
- Türkçe karşılığı
- sayısal imza
- Okunuşu
- dicitıl signıçır
Kısaca
Dijital imza, özel anahtarla üretilen, bir mesajı ya da dosyayı kimin oluşturduğunu ve imzalandığından beri değişmediğini kanıtlayan kriptografik değerdir.
Dijital imza nedir?
Dijital imza, veri için kâğıt üzerindeki ıslak imzanın ve müdahale belli eden mührün yaptığını matematiksel güvencelerle yapar. İmzalayan kişi, belirli bir mesaj, dosya veya yazılım sürümü için özel anahtarıyla bir imza üretir. Eşleşen açık anahtara sahip herkes imzayı doğrulayabilir; bu da iki şeyi kanıtlar: veri özel anahtarın sahibinden gelmiştir ve imzalandığından beri tek bir bit bile değişmemiştir.
İmzalama, açık anahtarlı kriptografiye ve hashing'e dayanır. Yazılım tipik olarak verinin bir hash'ini, yani kısa bir parmak izini hesaplar ve imzayı üretmek için özel anahtarı bu hash'e uygular; doğrulama ise imzanın alınan verinin yeni bir hash'iyle eşleştiğini denetlemek için açık anahtarı kullanır. Yaygın algoritmalar arasında Ed25519, ECDSA ve RSA bulunur; gelecekteki kuantum bilgisayarlara dayanmak için ML-DSA gibi kuantum sonrası algoritmalar da benimseniyor. Yalnızca özel anahtar geçerli bir imza oluşturabildiğinden imzalar inkâr edilemezliği (non-repudiation) de destekler; yani imzalayan, imzaladığını kolayca inkâr edemez.
Dijital imzalar her yerdedir: sertifika otoriteleri TLS sertifikalarını imzalar, sunucular claim'lerine sonradan güvenebilmek için JWT'leri imzalar, işletim sistemleri ve uygulama mağazaları yazılım güncellemelerindeki imzaları denetler ve Git commit'leri ile paketler nereden geldiklerini kanıtlamak için imzalanabilir. Eşsiz bir yüzükle basılmış bir mum mührü düşünün: mührü herkes tanıyabilir, yalnızca yüzüğün sahibi yapabilir ve kırık bir mühür mektubun açıldığını gösterir.
Dijital imza sıklıkla şifrelemeyle karıştırılır. Şifreleme içeriği yalnızca amaçlanan okuyucunun görebileceği biçimde gizler; imza ise içeriği okunabilir bırakır ve kökenini ile bütünlüğünü kanıtlar; ikisi çoğu zaman birleştirilir. İmza ayrıca, kazara değişiklikleri saptayan ama verinin kim tarafından oluşturulduğunu kanıtlamayan düz bir hash'ten veya checksum'dan ve tek bir ortak gizli anahtar kullandığı için her iki tarafın da oluşturmuş olabileceği bir HMAC'ten farklıdır.
Önemli noktalar
- Dijital imza, verinin kim tarafından imzalandığını ve değiştirilmediğini kanıtlar.
- Özel anahtarla oluşturulur ve eşleşen açık anahtarla doğrulanır.
- İmzalama genellikle özel anahtarı verinin bir hash'ine uygular.
- TLS sertifikalarında, JWT'lerde, yazılım güncellemelerinde ve imzalı commit ile paketlerde kullanılır.
- Şifreleme gizlilik sağlar; imza ise özgünlük ve bütünlük sağlar.
Örnek
from cryptography.hazmat.primitives.asymmetric.ed25519 import Ed25519PrivateKey
from cryptography.exceptions import InvalidSignature
private_key = Ed25519PrivateKey.generate() # kept secret by the signer
public_key = private_key.public_key() # shared with everyone
message = b"release v2.4.0, sha256=9f86d08..."
signature = private_key.sign(message)
public_key.verify(signature, message) # passes silently: authentic and unchanged
try:
public_key.verify(signature, b"release v2.4.0, sha256=tampered")
except InvalidSignature:
print("Rejected: the data was changed or signed by someone else")Sık sorulan sorular
Dijital imza ile şifreleme arasındaki fark nedir?
Şifreleme, veriyi yalnızca doğru anahtara sahip olanın okuyabilmesi için gizli tutar. Dijital imza ise veriyi okunabilir bırakır ancak kimin imzaladığını ve değişmediğini kanıtlar; imzalayan özel anahtarını kullanırken, bir alıcıya şifreleme alıcının açık anahtarıyla yapılır.
Dijital imza ile elektronik imza arasındaki fark nedir?
Elektronik imza, yazılmış bir ad ya da Kabul ediyorum düğmesine tıklama gibi, elektronik ortamdaki her türlü onay işaretini kapsayan geniş bir hukuki terimdir. Dijital imza ise kimliği ve bütünlüğü matematiksel olarak kanıtlayan belirli bir kriptografik tekniktir ve çoğu zaman elektronik imzaları daha güvenilir kılmak için kullanılır.
Bir dijital imza taklit edilebilir mi?
Sağlam algoritmalar ve düzgün korunan anahtarlarla hayır; çünkü taklit etmek özel anahtarı gerektirir. Pratikte imzalar, özel anahtarlar çalındığında veya zayıf olduğunda başarısız olur; anahtarların güvenli donanımda tutulmasının ve döndürülmesinin nedeni budur.
İlgili sayfalar
- Açık Anahtarlı KriptografiGüvenlik, s. 1Açık anahtarlı kriptografi, veriyi şifreleyip imzalamak için herkesin görebildiği bir açık anahtar ile gizli tutulan bir özel anahtardan oluşan çift kullanır.
- HashingGüvenlik, s. 12Hashing, bir girdiyi tek yönlü bir fonksiyonla sabit uzunlukta bir değere dönüştürmektir; veri bütünlüğünü doğrulamaya ve parolaları güvenle saklamaya yarar.
- Sertifika OtoritesiGüvenlik, s. 35Sertifika otoritesi, bir açık anahtarın belirli bir web sitesine, şirkete veya kişiye ait olduğunu doğrulayan dijital sertifikalar veren güvenilir kuruluştur.
- JWTGüvenlik, s. 17JWT, kullanıcı kimliği ve son kullanma zamanı gibi bilgileri taşıyan, imzalı ve kompakt bir token'dır; sunucunun oturum aramadan istekleri doğrulamasını sağlar.
- ŞifrelemeGüvenlik, s. 42Şifreleme, veriyi bir anahtarla karıştırarak yalnızca doğru anahtara sahip olanın onu özgün ve okunabilir hâline geri çevirebilmesini sağlama işlemidir.
- Tedarik Zinciri SaldırısıGüvenlik, s. 43Tedarik zinciri saldırısı, uygulamanın kendisini değil, açık kaynak paketi, derleme aracı veya güncelleme sunucusu gibi dayandığı bir bileşeni ele geçirir.
Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin