Yavuzlar
Ana sayfaTelegram
  • Yavuzlar
  • VulnLab
  • CodinLab
  • 📚EĞİTİM
    • PHP
      • XAMPP kurulumu
      • VS Code Kurulum
      • 1.0 PHP Nedir
      • 1.1 Dosya Oluşturma
      • 1.2 Syntax (Yazım Kuralları)
      • 1.3 PHP'de Echo ve Print
      • 1.4 PHP'deki yorumlar
      • 1.5 PHP Değişkenleri
      • 1.6 Operatörler (Operators)
      • 1.7 Veri Türünü Alma
      • 1.8 PHP'de String
      • 1.9 PHP'de Sabitler
      • 2.0 PHP'de If Else Elseif
      • 2.1 Switch Case
      • 2.2 PHP'de Döngüler
      • 2.3 PHP'de Diziler (Arrays)
      • 2.4 PHP'de Süper Global Değişkenleri
      • 2.5 PHP'de Cookie (Çerez) Ve Session (Oturum) Yöntemleri
      • 2.6 Form işlemleri
    • C++
      • 1.0 Temeller
        • 1.1 Dosya Oluşturma
        • 1.2 Syntax (Yazım Kuralları)
        • 1.3 Yorum Satırları
        • 1.4 C++ Değişkenleri
          • 1.4.1 Değişken Türleri
        • 1.5 Operatörler (Operators)
        • 1.6 Namespace
        • 1.7 Kullanıcı Girdisi (User Input)
        • 1.8 C++ Stringleri (C++ Strings)
        • 1.9 Matematik (Math) Fonksiyonları
        • 1.10 Booleans
        • 1.11 If Else
        • 1.12 Switch
        • 1.13 While Döngüsü
          • 1.13.1 Do While Döngüsü
        • 1.14 For Döngüsü
        • 1.15 Break/Continue
        • 1.16 Diziler
        • 1.17 Structures
        • 1.18 Enums
        • 1.19 References
        • 1.20 Pointers
      • 2.0 Fonksiyonlar
      • 3.0 Sınıflar
        • 3.1 OOP
        • 3.2 Sınıflar ve Objeler
        • 3.3 Sınıf Methodları
        • 3.4 Yapıcılar (Constructors)
        • 3.5 Erişim Belirleyicileri (Access Specifiers)
        • 3.6 Kapsülleme (Encapsulation)
        • 3.7 Inheritance
        • 3.8 Polimorfizm (Polymorphism)
        • 3.9 Dosyalar (Files)
        • 3.10 İstisnalar (Exceptions)
        • 3.11 Tarih ve Zaman (Date and Time)
      • 4.0 Veri Yapıları (Data Structures)
        • 4.1 Veri Yapıları ve STL
        • 4.2 Vektörler (Vectors)
        • 4.3 Listeler (Lists)
        • 4.4 Yığınlar (Stacks)
        • 4.5 Kuyruklar (Queues)
        • 4.6 Deque (Çift Uçlu Kuyruk)
        • 4.7 Küme (Set)
        • 4.8 Maps
        • 4.9 Iterator
        • 4.10 Algoritmalar
  • 🛠️ARAÇLAR
    • Aircrack-ng
    • Airgeddon
    • Arjun
    • BeEF
    • Bettercap
    • Docker
    • Gelişmiş Wireshark Kullanımı (Advanced Wireshark Usage)
    • Google Dorks
    • Hping3
    • John the Ripper
    • Metasploit Framework
    • Netcat
    • Nmap
    • OSINT Framework
    • PEASS-ng
    • Sublist3r
    • XSS Scanner
    • Wireshark
    • ZAP
    • HYDRA
  • 🖥️İŞLETİM SİSTEMLERİ
    • Linux101
    • MBR
  • 🔑KRİPTOLOJİ
    • Dijital Sertifika ve İmzalar
    • Sezar Şifrelemesi
    • Steganografi
    • Veri Şifreleme (Data Encryption)
  • 🔏Network
    • Domain Name Server (DNS)
    • Firewall Nedir? Nasıl Çalışır ?
    • Ortadaki Adam Saldırısı (Man In The Middle Attack)
    • OSI Modeli
    • Sanal Özel Ağlar (VPN)
    • World Wide Web (WWW)
  • 🔐PRIVILEGED
    • Docker Escape
  • 📨Protokoller
    • ARP
    • DHCP
    • FTP
    • HTTP/HTTPS
    • SSH
    • TCP/IP
    • UDP
    • Wİ-Fİ Güvenlik Protokolleri (WEP/WPA/WPA2/WPA3)
  • 💻SİBER TEHDİT İSTİHBARATI
    • Gelişmiş Siber Tehdit İstihbaratı Nedir?
  • 🔒WEB GÜVENLİĞİ
    • 403 ByPass
    • API Güvenliği (API Security)
    • Broken Access Control
    • Bulut Güvenliği (Cloud Security)
    • Command Injection
    • Cross Origin Resource Sharing
    • Cross Site Request Forgery (CSRF)
    • Cyber Kill Chain
    • DDoS Saldırıları
    • File Upload Zafiyeti Nedir?
    • HTTP Request Smuggling
    • Insecure Direct Object Reference (IDOR)
    • Incident Response
    • Local File Inclusion (LFI)
    • NoSQL Injection
    • Pentest 101
    • Race Condition
    • Server Side Request Forgery (SSRF)
    • Server Side Template Injection (SSTI)
    • Spring4Shell
    • Two Factor Authentication Bypass
    • XML External Entity Attack (XEE)
  • 🤖YAPAY ZEKA
    • ChatGPT for Hacking
    • Siber Güvenlik ve Yapay Zeka
    • Yapay Zeka ile Sahte Fotoğraf Tespiti
  • 🌐YAZILIM
    • Düzenli İfadeler (Regular Expressions)
    • Elasticsearch Nedir?
    • Front-end Teknolojileri
    • Golang'da Arayüzler (Interfaces)
    • Go'da Concurrency ve Uygulamaları
    • Güvenli Kodlama (Secure Coding)
    • Java Overloading vs Overriding
    • JSON Web Token (JWT)
    • Material-UI
    • NextJS Nedir?
    • ReactJS Kancalar (Hooks)
    • ReactJS Nedir?
    • Redux Toolkit
    • SOLID Yazılım Geliştirme Prensipleri
    • SQL 101
    • UI / UX Nedir?
    • Veri Taşıma Nedir? (Database Migration)
    • Versiyon Kontrol Sistemleri ve GIT
  • 🔷DİĞER
    • Bug Bounty (Hata Ödülü) Nedir?
    • Popüler Yazılımların Kurulumları
      • Ubuntu Server 24.04 LTS Kurulumu
      • Ubuntu için Güncel Docker Engine Kurlumu
    • Güvenlik Operasyonları Merkezi Nedir?
    • Honeypot (Bal Küpü)
    • IoT Güvenliği Nedir?
    • ShellShock Exploit
    • Yük Dengeleyici (Load Balancer) Nedir?
Powered by GitBook
On this page
  • Dijital Dünyada Güven
  • Dijital Sertifika Nedir?
  • Dijital Sertifikaların Ana Bileşenleri
  • 1. Özne Bilgisi (Subject Information)
  • 2. Genel Anahtar (Public Key)
  • 3. Verilen Kurum Bilgisi (Issuer Information)
  • 4. Geçerlilik Tarihleri (Validity Dates)
  • 5. Dijital İmza (Digital Signature)
  • Dijital Sertifikalar Nasıl Çalışır?
  • SSL ve TLS
  • SSL ve TLS Arasındaki Temel Farklar
  • 1. Protokol Evrimi
  • 2. Kriptografik Algoritmalar
  • 3. El Sıkışma Süreci (Handshake)
  • 4. Güvenlik Özellikleri
  • 5. SSL'in Kullanım Dışı Bırakılması
  • 6. Kullanım ve Terminoloji
  • Dijital İmzalar: Veri Bütünlüğünün Sağlanması
  • Dijital İmzalar için Kullanım Örnekleri
  • Dijital İmzalar Nasıl Çalışır
  • 1. Hashleme:
  • 2. Şifreleme:
  • 3. Doğrulama:
  • Sonuç
  • İleri Okuma ve Referanslar

Was this helpful?

  1. KRİPTOLOJİ

Dijital Sertifika ve İmzalar

Dijital Sertifika ve İmzalar Nasıl Çalışır ve Onlara Nasıl Güvenebiliyoruz?

PreviousMBRNextSezar Şifrelemesi

Last updated 3 months ago

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 Dünyada Güven

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 Nedir?

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.

Dijital Sertifikaların Ana Bileşenleri

1. Özne Bilgisi (Subject Information)

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.

2. Genel Anahtar (Public Key)

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.

3. Verilen Kurum Bilgisi (Issuer Information)

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.

4. Geçerlilik Tarihleri (Validity Dates)

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.

5. Dijital İmza (Digital Signature)

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 Nasıl Çalışır?

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.

SSL ve TLS

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:

  1. Client Hello: Tarayıcınız güvenli bir bağlantı ister.

  2. Sunucu Sertifikası: Web sunucusu dijital sertifikasını sunar.

  3. 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.

SSL ve TLS Arasındaki Temel Farklar

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:

1. Protokol Evrimi

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.

2. Kriptografik Algoritmalar

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

3. El Sıkışma Süreci (Handshake)

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.

4. Güvenlik Özellikleri

SSL:

  • Downgrade saldırılarını açıkça ele almamıştır.

TLS:

  • Güvenli müzakere kullanarak protokol downgrade saldırılarına karşı korumalar içerir.

5. SSL'in Kullanım Dışı Bırakılması

6. Kullanım ve Terminoloji

"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.

Özellik
SSL
TLS

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 İmzalar: Veri Bütünlüğünün Sağlanması

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:

  1. Gerçeklik (Authenticity): Gönderenin gerçek/doğru olduğunu doğrular.

  2. 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.

Dijital İmzalar için Kullanım Örnekleri

  • Yazılım indirme doğrulaması

  • E-posta kimlik doğrulaması

  • Yasal belge imzalama

  • Uygulamalar için kod imzalama

Dijital İmzalar Nasıl Çalışır

Dijital imza oluşturma ve doğrulama süreci üç ana adımı içerir:

1. Hashleme:

  • 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.

2. Şifreleme:

  • 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.

3. Doğrulama:

  • 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.

Sonuç

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.

İleri Okuma ve Referanslar

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ı ().

TLS daha güçlü algoritmalarla donatıldı ve güvensiz olanları kaldırdı. Modern kriptografik şifreler (AES, ) 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 kullanımını zorunlu kıldı.

, ve gibi çeşitli saldırılara karşı savunmasızdır.

Mesaj bütünlüğü için (Hash-Based Message Authentication Codes) gibi mekanizmalar tanıtılmıştır.

TLS 1.3, gibi saldırıları önlemek için yeniden müzakere (renegotiation), RC4 ve sıkıştırma gibi güvenli olmayan özellikleri kaldırdı.

SSL 2.0, 2011 yılında tarafından kullanım dışı bırakılmıştır.

SSL 3.0, 2015 yılında 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.

🔑
POODLE attack on SSL 3.0
ChaCha20
Perfect Forward Secrecy (PFS)
POODLE
BEAST
DROWN
HMAC
CRIME
RFC 6176
RFC 7568
NIST Special Publication on Digital Signatures
RFC 5280 — Internet X.509 Public Key Infrastructure Certificate
Internet Engineering Task Force (IETF) TLS Documentation
OWASP Transport Layer Security Cheat Sheet
NIST Cryptographic Standards and Guidelines
RFC 6960: Online Certificate Status Protocol (OCSP)
Source
Illustration of steps to verify a digital signature
burkocyigit - OverviewGitHub
Bu yazı Burak Koçyiğit tarafından hazırlanmıştır.
Logo