İçeriğe atla
HexaTransfer
Bloga dön
Sifreleme ve guvenlik

Açık anahtar kriptografisi temelleri: güvenli paylaşım

Açık anahtar kriptografisinin temellerini ve güvenli paylaşımı nasıl sağladığını öğrenin. RSA, Diffie-Hellman açıklandı.

Açık anahtar kriptografisi, asimetrik kriptografi olarak da bilinir; birbirine matematiksel olarak bağlı iki anahtar kullanır: serbestçe dağıtabileceğiniz bir açık anahtar ve koruduğunuz bir özel anahtar. Açık anahtarımla bir şeyi şifrelerseniz yalnızca özel anahtarım okuyabilir. Bu, kriptografinin en eski sorununu çözer: hiç tanışmamış iki yabancı, açık bir kanal üzerinden nasıl sır paylaşabilir? 1976'da Diffie ve Hellman tarafından icat edilen ve bir yıl sonra RSA ile pratik hale getirilen bu yöntem, TLS 1.3, Signal, SSH, Ed25519 kod imzalaması ve kullanıcıların kimliğini doğrulayan her dosya aktarım hizmetinin temelidir. İşte gerçekte nasıl çalıştığı.

Matematiksel kapı tuzağı

Tüm açık anahtar kriptografisi, "tuzak kapı" fonksiyonlarına dayanır; ileriye doğru hesaplamak kolay, ancak ek bilgi olmadan tersine çevirmek etkin biçimde imkânsız olan hesaplamalar. İki aile baskın:

  • Tam sayı çarpanlara ayırma (RSA): iki büyük asal sayıyı çarpmak önemsizdir; çarpımlarını çarpanlara ayırmak üstel biçimde zordur. 2048 bitlik RSA anahtarı, iki yaklaşık 1024 bitlik asal sayı kullanır. Bilinen en iyi saldırı olan Genel Sayı Alanı Eleme, yaklaşık 2^112 işlem gerektirir; erişim dışındadır.
  • Eliptik eğriler üzerinde ayrık logaritmalar (ECDH, ECDSA, Ed25519): bir eğri üzerinde nokta çarpımını hesaplamak hızlıdır; çarpanı bulmak için tersine çevirmek zordur. Curve25519 gibi 256 bitlik eğriler 3072 bitlik RSA'ya eşdeğer güvenlik sağlar.

Her iki sorun da, NIST'in 2024'te FIPS 203-205'te kuantum sonrası alternatifler (ML-KEM ve ML-DSA) standartlaştırmasının nedeni olan Shor algoritması aracılığıyla kuantum bilgisayarlar için kolaydır.

RSA uygulamada

Ron Rivest, Adi Shamir ve Leonard Adleman RSA'yı 1977'de yayımladı. Şema zariftir:

  1. İki büyük asal sayı p ve q seç.
  2. n = p × q (modül) ve φ(n) = (p-1)(q-1) hesapla.
  3. φ(n) ile aralarında asal olan e seç; genellikle 65537.
  4. e × d ≡ 1 (mod φ(n)) olacak şekilde d hesapla.
  5. Açık anahtar: (n, e). Özel anahtar: (n, d).

Şifreleme: şifreli metin = mesaj^e mod n. Şifre çözme: mesaj = şifreli metin^d mod n. Matematik, Euler teoremi sayesinde işe yarar.

Gerçek dünya RSA, seçilmiş şifreli metin saldırılarını önlemek için OAEP dolgusu (RFC 8017) kullanır. Ders kitabı RSA, yıkıcı biçimde güvensizdir. RSA-2048, yeni sistemler için güncel minimumdur; uzun ömürlü her şey için RSA-3072 veya 4096.

Diffie-Hellman: anahtar göndermeden paylaşılan sırlar

RSA, bilinen bir alıcıya şifreleme yapmanızı sağlar. Diffie-Hellman ise daha ince bir şey yapar: iki tarafın hiçbirinin sırrı göndermesine gerek kalmadan açık bir kanal üzerinden paylaşılan sır türetmesine olanak tanır.

Klasik sürüm (büyük bir asal modulo tam sayılar üzerinde DH):

  1. Her iki taraf da büyük p asal sayısı ve üreteç g üzerinde anlaşır.
  2. Alice, gizli a seçer ve A = g^a mod p gönderir.
  3. Bob, gizli b seçer ve B = g^b mod p gönderir.
  4. Alice, B^a mod p = g^(ab) mod p hesaplar.
  5. Bob, A^b mod p = g^(ab) mod p hesaplar.

Her ikisi de a veya b göndermeden g^ab mod p'ye ulaşır. Bir dinleyici g, p, A, B görür; ancak A ve B'den g^ab hesaplamak ayrık logaritma problemini çözmeyi gerektirir.

Modern DH, eliptik eğriler kullanır (ECDH). X25519 standart seçimdir: 32 baytlık anahtarlar, 32 baytlık paylaşılan sırlar, zamanlama saldırılarına karşı güçlendirilmiş uygulama.

Eliptik eğriler ve neden kazandılar

RSA eski hissettiriyor; çünkü büyük ölçüde öyle. Eliptik eğri kriptografisi üç pratik nedenden ötürü yerini aldı:

  • Daha küçük anahtarlar. 256 bitlik EC anahtarı, 3072 bitlik RSA anahtarının güvenliğini verir. Bu 32 bayt karşı 384 bayt demektir.
  • Daha hızlı işlemler. Curve25519 üzerinde ECDH, modern CPU'da yaklaşık 70 mikrosaniye alır. RSA-3072 anahtar üretimi saniyeler alır.
  • Daha iyi rastgelelik dayanıklılığı. Ed25519 deterministiktir; imzalar mesaj başına rastgele nonce gerektirmez. Bu, sabit bir nonce'un ana anahtarı sızdırdığı 2010 Sony PS3 ECDSA felaketini önler.

NIST eğrileri (P-256, P-384, P-521) yaygın desteklidir; ancak bazı kriptograflar açıklanamayan sabitler nedeniyle tarihsel olarak bunlara güvenmez. Daniel Bernstein'ın tasarladığı Curve25519 ve Ed25519, TLS 1.3, WireGuard, Signal ve SSH'de kullanılan modern varsayılanlardır.

İmzalar: kimin neyi gönderdiğini kanıtlamak

Açık anahtar kriptografisi, simetriğin yapamayacağı bir şey yapar: yazarlığı kanıtlar. İmzalama, şifreleme rollerini tersine çevirir; özel anahtarınızla "şifrelersiniz" (imzalarsınız) ve açık anahtarınıza sahip olan herkes "şifresini çözebilir" (doğrulayabilir). Doğrulanırsa, özel anahtarı tutmuş olmalısınız.

Gerçek imzalar, isteğe bağlı boyutlu mesajları işlemek için karma fonksiyonları kullanır:

  1. h = SHA-256(mesaj) hesapla.
  2. h'yi özel anahtarla imzala (RSA-PSS, ECDSA veya Ed25519).
  3. Doğrulayıcı, alınan mesajı karma oluşturur, açık anahtarla imzaya karşı kontrol eder.

Uygulamalar: TLS sertifikaları (CA, sitenin açık anahtarını imzalar), kod imzalama (Apple'ın notarizasyonu, Microsoft Authenticode), Git commit imzalama, yazılım paket yöneticileri (apt, Homebrew, npm).

Dosya aktarımında açık anahtar kriptografisi nerede kullanılır

Anonim link tabanlı aktarımlar için (SwissTransfer, HexaTransfer), açık anahtar kriptografisi genellikle doğrudan görünmez; URL parçasındaki rastgele simetrik anahtar her şeyi halleder. Ancak hesap tabanlı hizmetlerde açık anahtarlar önemlidir:

  • TLS 1.3 sunucu kimlik doğrulama. Her HTTPS bağlantısı, bir CA zincirine karşı doğrulanan sunucu sertifikasıyla başlar. Geçici ECDHE anahtar değişimi ardından oturum anahtarını türetir.
  • Hesaptan hesaba şifreleme. Tresorit, Proton Drive ve Mega, kayıt sırasında her kullanıcıya bir anahtar çifti verir. Hesaplar arasında paylaşılan dosyalar, alıcının açık anahtarıyla sarmalanır.
  • İmzalı istemciler ve güncellemeler. Masaüstü uygulamaları, tedarik zinciri saldırılarını önlemek için güncellemeleri Ed25519 veya RSA imzalarıyla doğrular.
  • Parolasız kimlik doğrulama. WebAuthn ve Passkey'ler, güvenli donanımda saklanan EC anahtarlarını kullanır (Touch ID, Windows Hello, YubiKey).

Anahtar dağıtımı: kalan zor sorun

Açık anahtar kriptografisi bir anahtar dağıtım sorununu çözer ama başka birini yaratır: bir açık anahtarın gerçekten iddia ettiği kişiye ait olduğunu nasıl bilirsiniz? Üç model:

  • PKI (Açık Anahtar Altyapısı). Sertifika otoriteleri açık anahtarları imzalar. Chrome, Firefox ve Safari'deki köklerle TLS tarafından kullanılır.
  • Güven ağı. PGP'nin yaklaşımı; kullanıcılar birbirlerinin anahtarlarını imzalar. Esnek ama ölçekleme sorunları benimsemeyi niş tuttu.
  • İlk Kullanımda Güven (TOFU). SSH'ın yaklaşımı; anahtarı ilk seferinde kabul et, değişirse uyar. Basit ama ilk ele geçirmeye karşı savunmasız.
  • Anahtar şeffaflığı. Tüm açık anahtarların kamuya denetlenebilir olduğu Merkle ağacı günlükleri. WhatsApp, iMessage İletişim Anahtarı Doğrulama ve modern passkey sistemleri tarafından kullanılır.

Bilinmeyen alıcılarla dosya aktarımı için, URL parçası paylaşımı bunu tamamen atlatır; gönderici, alıcıya anahtarı link üzerinden doğrudan verir ve gerçeklik, linki paylaşmak için kullanılan kanala bağlıdır.

Kuantum bilişiminin değiştirdiği şeyler

Shor algoritması çalıştıran büyük ölçekli bir kuantum bilgisayarı hem RSA'yı hem de eliptik eğri kriptografisini kırar. Mevcut tahminler zaman çizelgesini 10-20 yıl olarak belirtiyor; ancak uzun raf ömrüne sahip veriler için risk anlıktır: "şimdi topla, sonra çöz" saldırıları bugün şifreli trafiği kaydeder ve 2040'ta şifresini çözer.

NIST'in 2024 kuantum sonrası standartları:

  • FIPS 203 (ML-KEM) — anahtar değişimi için Diffie-Hellman / ECDH'ın yerini alır. Kafes problemlerine dayanır.
  • FIPS 204 (ML-DSA) — imzalar için RSA/ECDSA'nın yerini alır.
  • FIPS 205 (SLH-DSA) — karma tabanlı imza yedekleri.

Cloudflare ve Google artık TLS 1.3 anahtar değişiminde ML-KEM'i destekliyor. Dosya aktarım hizmetleri önümüzdeki birkaç yılda bunu takip edecek. Simetrik şifreleme (AES-256-GCM) büyük ölçüde etkilenmez; Grover algoritması yalnızca etkin gücünü yarıya indirir.

Her şeyi bir araya getirmek

Hassas paylaşımlar için: TLS 1.3 ve X25519 anahtar değişimi bağlantıyı korur, AES-256-GCM toplu şifrelemeyi üstlenir ve hesap tabanlı hizmetler için Curve25519 ile ECDH, dosya başına anahtarları sarar. Link tabanlı hizmetler hesap katmanını atlayarak basitlik kazanır. Her iki model de doğru uygulandığında güçlü güvenlik sağlar.

hexatransfer.com'da deneyin — ücretsiz, hesap gerekmez, 10 GB'a kadar.

Uçtan uca şifreleme ile büyük dosyaları güvenle gönderin

Uçtan uca şifreleme ile 10 GB'a kadar dosya ücretsiz aktarın. Hesap gerekmez. Dosyalarınız yüklenmeden önce tarayıcınızda şifrelenir — başka kimse okuyamaz.

Dosya gönder