İçeriğe atla

Kriptografi derinlemesine inceleme

Nudge mesajlarınızı nasıl korur (ve neden önemli)

Nudge, yüksek riskli iletişim için oluşturulmuştur: uçtan uca şifreli mesajlaşma ve arama, düşmanlar ve yetenekler gelişse bile güvenli kalacak şekilde tasarlanmıştır. Bu sayfa, kriptografiyi ayrıntılı, teknik bir düzeyde açıklar—tüm kriptografik ilkeller, Swift paketleri ve birlikte nasıl çalıştıkları dahil.

Uçtan uca şifreleme

Mesaj içeriği cihazınızda şifrelenir ve yalnızca amaçlanan alıcılar tarafından şifresi çözülür. Sunucular veri aktarabilir, ancak okuyamaz.

İleri gizlilik

Gelecekte bir cihaz anahtarı ele geçirilirse, mesaj anahtarları sürekli geliştiği için geçmiş mesajlar korunmaya devam eder.

Ele geçirme sonrası güvenlik

Ele geçirmeden sonra, protokol yeni gizlilikler tanıtıldıkça "iyileşebilir"—bir saldırganın trafiği okumaya devam edebileceği süreyi sınırlar.

Swift Paketleri ve Mimari

Nudge'in kriptografik yığını, güvenli, kuantum sonrası mesajlaşma sağlamada her birinin belirli bir rolü olan birkaç açık kaynak Swift paketinden oluşturulmuştur.

📦

PostQuantumSolace

github.com/needletails/post-quantum-solace

Tüm kriptografik işlemleri yöneten üst düzey oturum yönetimi SDK'sı. PostQuantumSolace, oturum oluşturma, mesaj gönderme, cihaz yönetimi ve anahtar rotasyonunu işleme için PQSSession API'sini sağlar. İleri gizlilik ve ele geçirme sonrası güvenlik ile uçtan uca şifreli mesajlaşma sunmak için Double Ratchet protokol yürütmesini kuantum sonrası anahtar değişimi ile birleştirir.

Bağımlılıklar: DoubleRatchetKit, NeedleTailLogger, NeedleTailAlgorithms

🧷

DoubleRatchetKit

github.com/needletails/double-ratchet-kit

Post-Quantum X3DH (PQXDH) entegrasyonu ile Double Ratchet algoritmasını uygular. Bu paket, ileri gizlilik ve ele geçirme sonrası güvenlik için temel protokolü sağlar. Hibrit anahtar değişimini (Curve25519 + MLKEM1024), mesaj anahtarı türetimini, başlık şifrelemeyi ve güvenli mesajlaşma oturumları için durum yönetimini işler. DoubleRatchetStateManager aktörü ratchet durumunu yönetir ve thread-safe şifreleme/şifre çözme işlemleri sağlar.

Bağımlılıklar: NeedleTailCrypto, NeedleTailLogger, BinaryCodable

🔐

NeedleTailCrypto

github.com/needletails/needletail-crypto

Swift Crypto (swift-crypto) ve CryptoKit etrafında kapsamlı bir kriptografik sarmalayıcı. NeedleTailCrypto, anahtar üretimi (Curve25519, P256, P384, P521, MLKEM1024), simetrik şifreleme/şifre çözme (AES-GCM), anahtar anlaşması (ECDH), anahtar türetimi (HKDF) ve Apple platformlarında Keychain ve Secure Enclave aracılığıyla güvenli anahtar depolama için üst düzey API'ler sağlar. Bu paket, düşük seviyeli kriptografik işlemleri soyutlar ve tutarlı, üretime hazır bir arayüz sağlar.

Bağımlılıklar: swift-crypto (Apple), swift-collections

⚙️

NeedleTailAlgorithms

github.com/needletails/needletail-algorithms

Kriptografik yığın boyunca kullanılan algoritma uygulamalarını, kriptografik işlemler için veri yapıları ve yardımcı programlar dahil olmak üzere sağlar. Bu paket, PostQuantumSolace ve diğer NeedleTails paketleri tarafından kullanılan paylaşılan algoritmik bileşenleri içerir.

📝

NeedleTailLogger

github.com/needletails/needletail-logger

Hata ayıklama, izleme ve denetim izleri için kriptografik yığın boyunca kullanılan bir günlükleme çerçevesi. Yapılandırılabilir günlük seviyeleri ve thread-safe günlükleme işlemleri ile yapılandırılmış günlükleme sağlar.

🔢

BinaryCodable

github.com/needletails/binary-codable

Kriptografik veri yapıları için verimli ikili kodlama ve kod çözme sağlar. Anahtarları, mesajları ve protokol durumunu kompakt, platformdan bağımsız bir formatta serileştirmek için kullanılır.

🍎

swift-crypto

github.com/apple/swift-crypto

Temel kriptografik ilkelleri sağlayan Apple'ın platformlar arası kriptografik kütüphanesi. Bu paket MLKEM1024 (Kyber), Curve25519, AES-GCM, SHA-256, SHA-512, HKDF, HMAC ve diğer standart algoritmaları uygular. NeedleTailCrypto ve tüm yığını güçlendiren düşük seviyeli kriptografik motordur.

Kriptografik İlkeller

Nudge, belirli güvenlik özellikleri, performans özellikleri ve hem klasik hem de kuantum saldırılarına direnç için seçilmiş dikkatle seçilmiş bir kriptografik ilkel seti kullanır.

MLKEM-1024 (Kyber-1024)

Nedir: MLKEM-1024, Kyber algoritmasına dayalı NIST standartlaştırılmış kuantum sonrası anahtar kapsülleme mekanizmasıdır (KEM). Hem klasik hem de kuantum bilgisayarlardan gelen saldırılara direnmek için tasarlanmıştır.

Ne yapar: MLKEM-1024, iki tarafın güvenli olmayan bir kanal üzerinden paylaşılan bir gizli anahtar kurmasını sağlar. Bir taraf ortak/özel anahtar çifti oluşturur ve diğer taraf paylaşılan bir gizliliği kapsüllemek için ortak anahtarı kullanır. Özel anahtar sahibi daha sonra gizliliği kapsülden çıkarabilir. Bu, kuantum bilgisayarlara sahip düşmanlara karşı bile güvenlik sağlar.

Neden önemli: Klasik anahtar değişim algoritmaları (RSA, ECC gibi) büyük ölçekli kuantum bilgisayarlar tarafından kırılacaktır. MLKEM-1024 "şimdi topla, daha sonra şifresini çöz" koruması sağlar—bir saldırgan bugün şifreli trafiği kaydetse bile, gelecekte kuantum bilgisayarlar kullanarak şifresini çözemez.

Uygulama: swift-crypto (Apple) tarafından sağlanır, PQXDH el sıkışmasında kullanılır

Curve25519

Nedir: Curve25519, Elliptic Curve Diffie-Hellman (ECDH) anahtar anlaşması için tasarlanmış yüksek performanslı bir eliptik eğridir. 128 bit güvenlik sağlar ve modern kriptografik sistemlerde yaygın olarak dağıtılmıştır.

Ne yapar: İki tarafın ortak anahtarları değiştirerek paylaşılan bir gizlilik kurmasını sağlar. Her taraf, aynı paylaşılan gizliliği türetmek için özel anahtarını diğerinin ortak anahtarı ile birleştirir. Curve25519, Nudge'de hem anahtar anlaşması (ECDH) hem de dijital imzalar (Ed25519) için kullanılır.

Neden önemli: Kuantum dirençli olmasa da, Curve25519 klasik saldırganlara karşı anında güvenlik sağlar ve son derece hızlıdır. Nudge'in hibrit PQXDH tasarımında, Curve25519 bugün güvenlik sağlarken MLKEM-1024 gelecekteki kuantum tehditlerine karşı güvenlik sağlar. Bir saldırganın oturumu ele geçirmesi için her ikisinin de kırılması gerekir.

Uygulama: swift-crypto (Apple) tarafından sağlanır, PQXDH el sıkışmasında ve cihaz anahtarı imzalama işleminde kullanılır

HKDF (HMAC tabanlı Anahtar Türetme Fonksiyonu)

Nedir: HKDF, tek bir paylaşılan gizlilikten veya yüksek entropi girişinden güvenli bir şekilde birden fazla anahtar türeten bir anahtar türetme fonksiyonudur. Temel ilkel olarak HMAC (Hash tabanlı Mesaj Kimlik Doğrulama Kodu) kullanır.

Ne yapar: Paylaşılan bir gizliliği (anahtar değişiminden) alır ve şifreleme, kimlik doğrulama ve diğer kullanımlar için amaç odaklı anahtarlar türetir. HKDF, farklı amaçlar için farklı anahtarların türetildiğinden emin olmak için bir tuz (alan ayrımı için) ve isteğe bağlı bağlam bilgileri kullanır. Nudge, PQXDH paylaşılan gizliliklerinden oturum anahtarlarını türetmek için SHA-512 ile HKDF kullanır.

Neden önemli: Anahtar türetimi, farklı bağlamlarda anahtar yeniden kullanımını önler, bu güvenlik için kritiktir. Her türetilen anahtar kriptografik olarak bağımsızdır, bu nedenle bir anahtarın ele geçirilmesi diğerlerini etkilemez. HKDF ayrıca Double Ratchet protokolünde zincir anahtarlarından mesaj anahtarlarını türetmek için kullanılır.

Uygulama: swift-crypto'dan HKDF<SHA512> ve HKDF<SHA256>, protokol boyunca kullanılır

AES-GCM (Gelişmiş Şifreleme Standardı - Galois/Sayaç Modu)

Nedir: AES-GCM, tek bir işlemde hem gizlilik (şifreleme) hem de bütünlük (kimlik doğrulama) sağlayan kimlik doğrulanmış bir şifreleme algoritmasıdır. Galois/Sayaç Modunda AES blok şifresini kullanır.

Ne yapar: Mesaj içeriğini şifreler ve mesajın değiştirilmediğini kanıtlayan bir kimlik doğrulama etiketi oluşturur. AES-GCM, Nudge'deki tüm mesaj yüklerini şifrelemek için kullanılır, böylece mesajların saldırganlar tarafından okunamayacağını veya değiştirilemeyeceğini sağlar.

Neden önemli: Kimlik doğrulanmış şifreleme hem dinleme hem de değiştirmeyi önler. Bir saldırgan şifreli bir mesajı değiştirirse, kimlik doğrulama etiketi geçersiz olur ve şifre çözme başarısız olur. Nudge, 256 bit güvenlik sağlayan AES-256-GCM kullanır.

Uygulama: swift-crypto (Apple) tarafından sağlanır, NeedleTailCrypto aracılığıyla tüm mesaj şifreleme için kullanılır

SHA-256 ve SHA-512 (Güvenli Hash Algoritmaları)

Nedir: SHA-256 ve SHA-512, keyfi girişlerden sabit boyutlu çıkışlar (sırasıyla 256 ve 512 bit) üreten kriptografik hash fonksiyonlarıdır. Tek yönlü fonksiyonlardır—hesaplamak kolaydır ancak hesaplamalı olarak tersine çevirmek mümkün değildir.

Ne yapar: Çeşitli amaçlar için kriptografik yığın boyunca kullanılır: SHA-256, Double Ratchet'te zincir anahtarı türetimi için HMAC'de kullanılır, SHA-512, PQXDH paylaşılan gizliliklerinden oturum anahtarı türetimi için HKDF'de kullanılır ve her ikisi de bütünlük doğrulama ve anahtar türetimi için kullanılır.

Neden önemli: Hash fonksiyonları temel yapı taşlarıdır. Anahtarların deterministik olarak türetildiğini, veri bütünlüğünün doğrulanabileceğini ve kriptografik işlemlerin tutarlı sonuçlar ürettiğini sağlarlar. SHA-512, anahtar türetme işlemleri için ek güvenlik marjı sağlar.

Uygulama: swift-crypto (Apple) tarafından sağlanır, HKDF, HMAC ve anahtar türetiminde kullanılır

HMAC (Hash tabanlı Mesaj Kimlik Doğrulama Kodu)

Nedir: HMAC, bir mesajın hem gerçekliğini hem de bütünlüğünü doğrulayan bir etiket üretmek için gizli bir anahtarla birleştirilmiş bir kriptografik hash fonksiyonu (SHA-256 gibi) kullanan bir mesaj kimlik doğrulama kodudur.

Ne yapar: Nudge'de, HMAC-SHA256, Double Ratchet protokolünde zincir anahtarlarını ve mesaj anahtarlarını türetmek için kullanılır. Her ratchet adımı, anahtar zincirini ilerletmek için HMAC kullanır, böylece anahtarların deterministik ve güvenli bir şekilde gelişmesini sağlar.

Neden önemli: HMAC, anahtar türetiminin güvenli ve deterministik olduğunu sağlar. İleri gizlilik sağlamak için Double Ratchet'te yaygın olarak kullanılır—her mesaj önceki anahtardan türetilen benzersiz bir anahtar kullanır, bu nedenle bir anahtarın ele geçirilmesi geçmiş veya gelecekteki anahtarları açığa çıkarmaz.

Uygulama: swift-crypto'dan HMAC<SHA256>, Double Ratchet anahtar türetiminde kullanılır

Hepsi Birlikte Nasıl Çalışır

1) Kuantum sonrası el sıkışma (PQXDH)

İki kullanıcı bir konuşma başlattığında, Nudge hibrit bir anahtar değişimi gerçekleştirir:

  1. Curve25519 ECDH: Her iki taraf Curve25519 ortak anahtarlarını değiştirir ve eliptik eğri Diffie-Hellman kullanarak paylaşılan bir gizlilik türetir
  2. MLKEM-1024 kapsülleme: Bir taraf, paylaşılan bir gizliliği kapsüllemek için diğerinin MLKEM-1024 ortak anahtarını kullanır
  3. Gizlilik birleştirme: Curve25519 paylaşılan gizliliği ve MLKEM-1024 paylaşılan gizliliği birleştirilir
  4. HKDF türetimi: HKDF-SHA512, birleştirilmiş gizliliklerden kök anahtarı ve başlangıç zincir anahtarlarını türetir

Bu hibrit yaklaşım, hem klasik saldırganlara (Curve25519) hem de kuantum saldırganlarına (MLKEM-1024) karşı güvenlik sağlar. Oturumu ele geçirmek için her ikisinin de kırılması gerekir.

2) Sürekli anahtar evrimi (Double Ratchet)

El sıkışmadan sonra, Double Ratchet protokolü ileri gizlilik sağlar:

  1. Simetrik ratchet: Her mesaj, HMAC-SHA256 kullanarak bir zincir anahtarını ilerletir, benzersiz bir mesaj anahtarı türetir
  2. Mesaj şifreleme: Mesaj anahtarı, mesaj yükünü şifrelemek için AES-256-GCM ile kullanılır
  3. DH ratchet: Periyodik olarak, yeni Diffie-Hellman anahtar değişimleri kök anahtarı günceller ve yeni zincir anahtarları oluşturur
  4. Anahtar rotasyonu: Eski anahtarlar atılır, ileri gizliliği sağlar—mevcut anahtarların ele geçirilmesi geçmiş mesajları açığa çıkarmaz

Double Ratchet, her mesajın benzersiz bir şifreleme anahtarı kullandığını ve anahtarların ele geçirme sonrası güvenlik sağlamak için sürekli geliştiğini sağlar.

Ne şifrelenir (ve ne şifrelenmez)

Güçlü kriptografi mesaj içeriğini korur. Tüm mesajlaşma sistemleri gibi, bazı ağ seviyesi meta veriler (ör. IP yönlendirme) hala var olabilir. Nudge'in yığını ayrıca trafik analizi sinyallerini azaltmak için şifreli başlıklar gibi meta veri koruma tekniklerini de destekler.

  • Şifrelenmiş: mesaj içerikleri, oturum gizlilikleri, hassas meta veriler (desteklendiğinde)
  • Azaltılmış maruz kalma: başlık şifreleme yoluyla sayaçlar/anahtar tanımlayıcıları (uygulanabilir olduğunda)
  • Hala mümkün: ağ koşullarına bağlı olarak taşıma seviyesi gözlemleri (zamanlama, uç noktalar)

Güvenlik Özellikleri

Nudge'in kriptografik tasarımı birden fazla güvenlik katmanı sağlar:

  • Kuantum sonrası güvenlik: MLKEM-1024 gelecekteki kuantum saldırılarına karşı korur
  • İleri gizlilik: Mevcut anahtarlar ele geçirilse bile geçmiş mesajlar güvenli kalır
  • Ele geçirme sonrası güvenlik: Oturumlar anahtar ele geçirmeden kurtulabilir
  • Kimlik doğrulanmış şifreleme: AES-GCM hem dinlemeyi hem de değiştirmeyi önler
  • Meta veri koruması: Başlık şifreleme trafik analizini azaltır

Özel bir Nudge topluluğu ister misiniz?

NeedleTails, özel dağıtım, yönetişim kontrolleri ve operasyonel sorumluluk gerektiren kuruluşlar için ücretli sunucu uygulama hizmetleri sunar.

Bağış yapmak