Açık Anahtar Şifrelemesi Gerçekte Nasıl Çalışır
Asimetrik şifreleme, anahtar çiftleri ve dijital imzaların pratik bir rehberi; matematiksel analoji oyunlarından arınmış.
SSH ile bir sunucuya bağlandığınız veya bir HTTPS sitesini yüklediğiniz her zaman, matematiksel olarak ilişkili iki anahtar ağır işi yapar. Biri açık, biri gizli; aralarındaki ilişki güvenilmeyen bir ağ üzerinde güvenli iletişimi mümkün kılan şeydir.
Temel fikir
Simetrik şifrelemede, tek bir anahtar verileri hem kilitler hem de açar. Her iki taraf zaten bir sırrı paylaşıyorsa iyi çalışır; ama o sırrı güvenli bir şekilde dağıtmak zor kısımdır. Açık anahtar (asimetrik) şifrelemesi bunu matematiksel olarak ilişkili bir çift oluşturarak çözer: herkese verdiğiniz bir açık anahtar ve hiç paylaşmadığınız bir gizli anahtar.
Açık anahtarla şifrelenmiş veri, yalnızca eşleşen gizli anahtarla çözülebilir. Gizli anahtarla imzalanmış veri, açık anahtara sahip herkes tarafından doğrulanabilir. Bu iki özellik neredeyse kullandığımız her şeyi kapsar: gizlilik ve kimlik doğrulama.
RSA, klasik örnek
RSA, iki büyük asal sayıyı çarpmak hızlı olduğu, ama ürünü geri o asal sayılara ayırmak ölçekte hesaplanması inanılmaz zor olduğu gerçeğine dayanır. 2048 bitlik bir RSA anahtarı, kabaca 1024 bit uzunluğunda iki asal sayıdan inşa edilir. Açık anahtar (n, e) dir — n asal sayıların ürünü, e 65537 gibi sabit bir üslü sayı. Gizli anahtar, n'nin totiyenti kullanılarak türetilir ve orijinal asal sayıları bilmeyi içerir.
Şifreleme modüler üs alma işlemidir: c = m^e mod n. Şifre çözme gizli üs d ile tersine çevrilir: m = c^d mod n. Pratikte hiç kimse büyük yükleri doğrudan RSA ile şifrelemez — yavaştır ve anahtar uzunluğuna bağlı boyut sınırlamalarına sahiptir. Bunun yerine, RSA tipik olarak simetrik bir oturum anahtarını (örneğin AES-256) sarmalanır ve simetrik şifre toplu verileri idare eder. Bu TLS'nin kullandığı melez yaklaşımdır.
Eliptik eğri şifrelemesi ve neden üstünlük kazanıyor
ECC size RSA'dan çok daha küçük anahtarlarla eşdeğer güvenlik sağlar. 256 bitlik bir ECC anahtarı (secp256r1 veya Curve25519 gibi) kabaca 3072 bitlik bir RSA anahtarına karşılaştırılabilir güçtedir. Daha küçük anahtarlar daha hızlı el sıkışma ve daha az bant genişliği demek — bu yüzden modern TLS yapılandırmaları, SSH uygulamaları ve Signal'ın protokolü ECC'ye yaslanıyor.
Matematik farklı — tamsayı faktorizasyonu yerine bir eliptik eğri üzerindeki noktalar üzerine ayrık logaritma problemine dayanır — ama açık/gizli anahtar ilişkisi ve garantiler kavramsal olarak aynıdır.
Dijital imzalar: denklemin diğer yarısı
Şifreleme verileri gizli tutar. İmzalar orijinalliği ve bütünlüğü kanıtlar. Bir mesajı imzalamak için, onu hashlemek (tipik olarak SHA-256) ve bu hashı gizli anahtarınızla şifrelemek gerekir. Açık anahtarınıza sahip herkes mesajı kendileri hashleyebilir, imzanızı çözebilir ve iki hashı karşılaştırabilir.
Bu tam olarak git commit -S ile bir GPG anahtarı çalıştırdığınızda veya bir Sertifika Yetkilisi bir TLS sertifikasını imzaladığında olur. CA'nın gizli anahtarı sertifikanızı imzalar; tarayıcılar CA'nın açık anahtarını önceden güvenilir olarak gömülü taşırlar, böylece CA'ya hiç konuşmadan sertifikanızın orijinalliğini doğrulayabilirler.
Günlük hayatta nerede ortaya çıkar
SSH anahtar doğrulaması doğrudan bir uygulamadır: ssh-keygen -t ed25519 bir anahtar çifti oluşturur, açık yarısını sunucuda ~/.ssh/authorized_keys içine düşürürsünüz ve kimlik doğrulama gizli anahtarı kullanarak bir meydan-yanıt üzerinden gerçekleşir, hiçbir parola iletilmez.
TLS el sıkışmaları asimetrik şifreyi kısaca kullanır, sadece paylaşılan simetrik anahtarı oluşturmak için (modern kurulumlarda ECDHE anahtar değişimi yoluyla), sonra fiili oturum için hızlı simetrik şifrelemeye geçer. PGP/GPG e-posta şifrelemesi de melez düzeni takip eder — mesajı rastgele bir AES anahtarıyla şifreleyin, sonra o AES anahtarını alıcının RSA veya ECC açık anahtarıyla şifreleyin.
Pratikte ne yanlış gider
RSA ve ECC'nin arkasındaki matematik klasik bilgisayar üzerinden kırılmamıştır. Yanlış giden neredeyse her zaman uygulama: anahtar oluştururken zayıf rasgele sayı üretimi (2008 Debian OpenSSL hatası ders kitabı örneğidir), ECDSA imzalarında yeniden kullanılan nonce'ler gizli anahtarları sızıtır veya zayıf uygulanmış RSA'ya karşı padding oracle saldırıları (PKCS#1 v1.5 padding'e karşı Bleichenbacher'ın saldırısı). Kuantum bilgisayarlar uzun dönem teorik tehdittir — Shor'un algoritması yeterince büyük bir kuantum bilgisayar varsa RSA'yı ve ECC'yi kıracaktır — bu yüzden NIST zaten ML-KEM (eski adıyla Kyber) gibi kuantum sonrası algoritmalar standardize etmiştir gelecek geçiş için.
Bunu daha ileri götürmek istiyorsanız, Korra Studio'nun şifrelemesi kursu anahtar değişimi protokolleri ve hash fonksiyonu iç işleyişini daha derinlemesine kapsar ve ağ segmentleri tüm bunun gerçek bir TLS el sıkışmasına bayt bayt nasıl uyduğunu gösterir.
AI yardımıyla yazıldı, Michal Pilch (CISSP), Korra Studio tarafından incelendi ve yayınlandı.
Bu, Korra Studio bilgi tabanından bir nottur — platform her konuyu 1-to-1 mentoring ile eşleştirir.
Ücretsiz başlaarrow_forward