Dijital Sertifika ve İmzalar
Dijital Sertifika ve İmzalar Nasıl Çalışır ve Onlara Nasıl Güvenebiliyoruz?
Last updated
Was this helpful?
Dijital Sertifika ve İmzalar Nasıl Çalışır ve Onlara Nasıl Güvenebiliyoruz?
Last updated
Was this helpful?
Modern dijital çağda, çevrimiçi iletişimi güvence altına almak kritik bir öneme sahiptir. Kredi kartı bilgileri, kişisel veriler ve iş sırları gibi hassas bilgilerin İnternet üzerinden aktığı bir dünyada, bu bilgilerin güvenliğini nasıl sağlarız? Cevap, dijital sertifikalar ve dijital imzalarda yatmaktadır. Bu teknolojiler, özellikle SSL (Secure Sockets Layer) ve TLS (Transport Layer Security) gibi protokoller aracılığıyla güvenli iletişimin temelini oluşturur. Şimdi bu kavramları basit benzetmeler ve gerçek hayattan senaryolarla açıklayalım.
Dijital sertifikalar ve imzalar, çevrimiçi güvenli iletişimin görünmez koruyucularıdır; İnternet üzerinde kimlik doğrulama ve veri bütünlüğü sağlayan dijital pasaportlar gibi çalışır. Nasıl ki devlet tarafından verilen bir pasaport, uluslararası sınır kapılarında bir kişinin kimliğini doğruluyorsa, dijital sertifikalar da dijital dünyada web sitelerini, e-posta gönderenleri ve yazılım yayıncılarını doğrular.
Dijital sertifika, bir genel anahtarın sahipliğini kanıtlayan elektronik bir kimlik belgesidir. Bir kafede yeni biriyle tanıştığınızı düşünün. Bu kişi ünlü bir yazar olduğunu iddia ediyor, ama bunu nasıl doğrulayabilirsiniz? Güvenilir bir otorite (örneğin bir devlet kurumu) tarafından verilen bir kimlik kartı gösterirse, ona inanmanız daha olasıdır. Dijital dünyada, dijital sertifika bu kimlik kartı görevi görür. Web sitelerinin, yazılımların veya diğer varlıkların kimliğini doğrular.
Bu bölüm, sertifikanın kime verildiğiyle ilgili bilgileri içerir. Örnekler:
Web siteleri için: Alan adı (domain name).
Organizasyonlar için: Organizasyonun adı, konumu ve e-posta adresi.
Bireyler için: Kişinin adı ve diğer kişisel tanımlayıcılar.
Bu, kimlik kartınızdaki isim ve adres gibi düşünülebilir; başkalarına sizi tanıtır.
Genel anahtar, şifreleme ve dijital imzaları doğrulama için kullanılan bir kriptografik anahtardır. Bu anahtar, sertifika sahibinin güvenli bir şekilde sakladığı bir özel anahtarla (private key) birlikte çalışır.
Genel anahtar ile şifrelenen veri, yalnızca ilgili özel anahtar kullanılarak çözülebilir. Bunu, herkesin içine mektup atabileceği (veriyi şifreleme) bir posta kutusu olarak hayal edin, ancak yalnızca kutunun anahtarına sahip olan kişi mektupları alabilir.
Sertifikayı veren Sertifika Yetkilisi (Certificate Authority - CA) hakkında bilgiler içerir. Örnekler:
CA’nın adı.
CA’nın dijital imzası.
İletişim bilgileri.
Dijital sertifikalar, yalnızca belirli bir süre için geçerlidir. Geçerlilik başlangıç ve bitiş tarihleri ile belirtilir. Sertifika süresi dolduğunda, sahibinin yenileme yapması gerekir.
Dijital imza, sertifikayı veren CA tarafından eklenen bir kriptografik mühürdür. Şunları kanıtlar:
Sertifikanın gerçekliği (sahtecilik yapılmadığının göstergesi).
Sertifikanın bütünlüğü (verildikten sonra değiştirilmemiş olması).
Dijital imza, CA'nın özel anahtarı kullanılarak oluşturulur ve tarayıcıların varsayılan olarak güvendiği CA'nın genel anahtarı kullanılarak doğrulanır.
Bir noterin bir belgeye resmi bir damga eklediğini düşünün. Damga, belgenin meşru olduğunu ve kurcalanmadığını gösterir.
Dijital sertifikalar Sertifika Yetkilileri (CA) tarafından verilir. Bu CA'lar, fiziksel dünyadaki noterler gibi güvenilir üçüncü taraflar olarak hareket eder.
Sertifika Yetkilisi, dijital sertifikalar veren güvenilir bir kuruluştur. Popüler CA'lar şunlardır:
Let's Encrypt: Ücretsiz, otomatik ve açık CA.
DigiCert: Çok çeşitli seçeneklere sahip önde gelen bir ticari CA.
GlobalSign: Yüksek güvenceli sertifikalar sunar.
CA'lar, sertifikayı talep eden kuruluşu şunları kontrol ederek doğrular:
Alan adı sahipliği.
Kuruluş ayrıntıları.
Sertifika türüne bağlı olarak diğer doğrulama süreçleri.
Bir web sitesi sahibi, bir CA'dan sertifika başvurusunda bulunur. Ardından CA, web sitesinin kimliğini doğrular. CA, web sitesinin güvenli bağlantılar kurmak için kullandığı bir dijital sertifika verir.
Güvenli web siteleri (URL'lerinde "https" olanlar) bağlamında SSL (Secure Sockets Layer) ve TLS (Transport Layer Security) kavramlarını duymuş olabilirsiniz. Her iki protokol de tarayıcınız ve bir sunucu arasında aktarılan verileri güvence altına alırken, TLS, SSL'in daha yeni ve daha güvenli sürümüdür.
SSL/TLS, bilgisayar ağları üzerinden güvenli iletişim sağlayan kriptografik protokollerdir. https://www.example.com adresini ziyaret ettiğinizde, şunlar olur:
Client Hello: Tarayıcınız güvenli bir bağlantı ister.
Sunucu Sertifikası: Web sunucusu dijital sertifikasını sunar.
Sertifika Doğrulaması:
Tarayıcı sertifikanın geçerliliğini kontrol eder.
Güvenilir bir Sertifika Yetkilisi (CA) tarafından verildiğini doğrular.
Alan adının sertifikayla eşleştiğini doğrular.
4. Anahtar Değişimi: Güvenli bir oturum anahtarı sağlanır.
5. Şifrelenmiş İletişim: Sonraki tüm veriler şifrelenerek iletilir.
TLS, gelişmiş güvenlik ve performans sunan SSL'in daha güvenlikli bir sürümüdür. Temel farkları ve teknik iyileştirmeleri inceleyelim:
SSL (Sürüm 1.0 ila 3.0): SSL 1.0 güvenlik açıkları nedeniyle hiçbir zaman genel kullanıma sürülmedi, SSL 2.0 ve 3.0 ise yaygın olarak kullanıldı ancak sonunda güvenlik açıkları nedeniyle kullanımdan kaldırıldı (POODLE attack on SSL 3.0).
TLS (Sürüm 1.0 ila 1.3): TLS, zayıflıkları giderilerek SSL 1.0 sürümüyle değiştirildi. En son sürüm olan TLS 1.3, 2018'de tamamlandı ve hem güvenlik hem de hız açısından önemli iyileştirmeler getirdi.
SSL
SSL, birçoğu artık güvensiz kabul edilen daha zayıf kriptografik algoritmalara dayanıyordu. Her ikisi de çarpışmalara (collision) karşı savunmasız olan MD5 ve SHA-1 hashing algoritmalarını kullanıyordu. Saldırılara karşı hassas olan RC4 gibi güncel olmayan şifrelerin kullanımına izin veriyordu.
TLS
TLS daha güçlü algoritmalarla donatıldı ve güvensiz olanları kaldırdı. Modern kriptografik şifreler (AES, ChaCha20) için destek sağladı, SHA-256 ve diğer güvenli hashing algoritmalarının kullanımını getirdi. TLS 1.3, ECDHE gibi güvenli anahtar değişim yöntemleriyle Perfect Forward Secrecy (PFS) kullanımını zorunlu kıldı.
El sıkışma süreci, şifreleme anahtarlarını değiştirerek istemci ve sunucu arasında güvenli bir bağlantı kurar. TLS el sıkışmayı daha modern hale getirdi:
SSL: El sıkışma daha fazla gidiş-dönüş içeriyordu ve bu da onu daha yavaş hale getiriyordu.
TLS: TLS 1.2 ve öncesi el sıkışma gecikmesini biraz azaltırken, TLS 1.3 bunu daha da optimize etti:
TLS 1.3, el sıkışma için yalnızca bir gidiş-dönüş (1-RTT) gerektirir.
İsteğe bağlı 0-RTT modu, oturumların neredeyse anında devam ettirilmesine olanak tanıyarak performansı artırır.
SSL:
Downgrade saldırılarını açıkça ele almamıştır.
TLS:
Mesaj bütünlüğü için HMAC (Hash-Based Message Authentication Codes) gibi mekanizmalar tanıtılmıştır.
TLS 1.3, CRIME gibi saldırıları önlemek için yeniden müzakere (renegotiation), RC4 ve sıkıştırma gibi güvenli olmayan özellikleri kaldırdı.
Güvenli müzakere kullanarak protokol downgrade saldırılarına karşı korumalar içerir.
SSL 2.0, 2011 yılında RFC 6176 tarafından kullanım dışı bırakılmıştır.
SSL 3.0, 2015 yılında RFC 7568 tarafından kullanım dışı bırakılmıştır. Modern tarayıcılar ve sistemler artık SSL'i desteklememektedir ve bu da TLS'i güvenli iletişim için tek geçerli protokol haline getirir.
"SSL" hala günlük dilde kullanılsa da ("SSL sertifikası"), pratikte tüm modern uygulamalar TLS kullanır. Örneğin:
HTTPS bağlantıları SSL değil TLS kullanır.
OpenSSL, BoringSSL ve diğerleri gibi kütüphaneler yalnızca TLS protokolünü uygular.
Desteklenen Sürümler
SSL 2.0, SSL 3.0
TLS 1.0, 1.1, 1.2, 1.3
Kriptografik Algoritmalar
Zayıf (MD5, RC4 gibi)
Güçlü (AES, SHA-256 gibi)
El Sıkışma Gecikmesi
Yüksek
Az (1-RTT ya da 0-RTT)
Perfect Forward Secrecy
Yok
Var (TLS 1.2+)
Downgrade Attack Koruması
Kısıtlı
Güçlü (TLS 1.2+)
Dijital imzalar, elektronik belgelerin, mesajların ve yazılımların gerçek olduğundan ve kurcalanmadığından/bozulmadığından emin olmak için geliştirilmiş modern kriptografinin temel bir bileşenidir. Güvenli iletişimlerde, yazılım dağıtımında ve dijital sertifikalarda yaygın olarak kullanılırlar. Nasıl çalıştıklarını, teknik temellerini ve neden güvenilir olduklarını inceleyelim.
Dijital imza, bir belgeye veya mesaja iliştirilen ve iki şeyi kanıtlayan bir kriptografik mühürdür:
Gerçeklik (Authenticity): Gönderenin gerçek/doğru olduğunu doğrular.
Bütünlük (Integrity): İçeriğin aktarım sırasında değiştirilmediğinden emin olmamızı sağlar.
Dijital imzalar gelişmiş elektronik mühürler gibi çalışır:
Kriptografik karma kullanarak bir belgenin benzersiz bir "parmak izini (fingerprint)" oluşturur.
Belgeyi özel bir anahtarla imzalar.
Herkes, ilgili genel (public) anahtarı kullanarak imzayı doğrulayabilir.
Herhangi bir kurcalama/bozma imzayı geçersiz kılar.
Yazılım indirme doğrulaması
E-posta kimlik doğrulaması
Yasal belge imzalama
Uygulamalar için kod imzalama
Dijital imza oluşturma ve doğrulama süreci üç ana adımı içerir:
Belge veya mesaj, sabit boyutlu bir hash değeri üreten bir hashing fonksiyonundan (ör. SHA-256) geçirilir, buna "mesaj özeti" de denir.
Bu hash, belgeye özgüdür; içerikte küçük bir değişiklik bile tamamen farklı bir hash üretilir.
Hash değeri, gönderenin özel (private) anahtarıyla şifrelenerek dijital imza oluşturulur.
Özel anahtar, yalnızca gönderenin bu imzayı oluşturmuş olmasını sağlar.
Alıcı, imzayı şifresini çözmek ve orijinal hash değerini elde etmek için gönderenin genel anahtarını kullanır.
Alıcı daha sonra alınan belgeyi hash haline getirir ve sonucu şifresi çözülmüş hash ile karşılaştırır. İkisi eşleşirse imza geçerlidir.
Dijital sertifikalar ve imzalar, çevrimiçi ekosistemimizdeki güvenin omurgasını oluşturur. Kimlik doğrulama, şifreleme ve bütünlük doğrulaması sağlayarak, giderek daha fazla birbirine bağlı hale gelen bir dünyada güvenli küresel iletişimi mümkün kılarlar.