Zero-knowledge şifreleme, hizmet sağlayıcının sakladığınız içeriği okuyamaması demektir. İçerik cihazınızda şifrelenir; onu çözecek özel anahtar hizmet sağlayıcıya verilmez.
Peki “zero-knowledge” gerçekten ne anlama gelir?
Bir hizmet “zero-knowledge şifreleme” kullandığını söylüyorsa, bunun anlamı çok belirlidir: hizmeti yürüten şirketin verilerinizin içeriğine dair sıfır bilgisi vardır. Onu göremezler. Çözemezler. Anahtarlar onlarda yoktur.
Bu bir politika kararı değildir, “dosyalarınıza bakmayacağımıza söz veriyoruz” değildir. Bakmanın imkânsız olduğu teknik bir mimaridir. Şirketin, şifrelenmiş verilerinizi okunabilir biçime geri çevirme matematiksel yetisi yoktur. İsteseler bile yoktur. Mahkeme emir verse bile yoktur. Birisi sunucularına girip ellerindeki her veritabanını çalsa bile yoktur.
Bir sunucu ihlalinde şifreli içerik çalınabilir. İçeriği çözmek için gereken anahtarlar sunucuda yoksa, bu kopya tek başına okunamaz. Bu, bir ihlalin hiçbir zarar vermeyeceği anlamına gelmez; veriler silinebilir veya hizmet kullanılamaz hâle gelebilir.
‘Zero-knowledge proofs’ (sıfır bilgi ispatları) ayrı bir kavramdır: bir bilgiyi açıklamadan bildiğinizi kanıtlamaya yarar. Uygulamalardaki ‘zero-knowledge şifreleme’ ifadesi ise sağlayıcının şifreli içeriği çözecek anahtarlara sahip olmadığını anlatır.
Basit hâliyle
Bir kiralık depo tesisi düşünün. Bir bölme kiralarsınız, değerli eşyalarınızı içine koyarsınız ve kendi asma kilidinizle kilitlersiniz. Depo şirketi binayı tutar. Bölmenize kadar yürüyebilirler. Ama asma kilidinizin anahtarı onlarda yoktur. Birisi tesise girerse, açamayacağı kilitli bir bölmeyle karşılaşır. Depo şirketine bir mahkeme emri gelirse, bölmeyi teslim edebilirler, ama içindeki şey hâlâ kilitli kalır.
Zero-knowledge özetle budur. Hizmet kabı tutar. Tek anahtar sizdedir.
Şifreli sırları biz saklarız. Onları okuyacak özel anahtarlar sizde kalır.
Zero-knowledge olmayan hâli? Depo şirketi bölmenize kendi kilidini takar ve size anahtarın bir kopyasını verir. Tabii, içeri girebilirsiniz. Ama onlar da girebilir. Şirketin ana anahtar zincirini ele geçiren herkes binadaki her bölmeye girebilir.
Çoğu bulut hizmeti bu ikinci sürüm gibi çalışır. Şirket verilerinizi şifreler ama şifreleme anahtarlarını da o tutar. “Durağan halde” ve “aktarım sırasında” şifrelerler; bu, belirli saldırılara karşı koruma sağlar, ama şirketin kendisine, çalışanlarına ya da anahtar altyapısını ele geçiren herkese karşı korumaz.
Nasıl çalışır (matematiksiz)
Akış şöyle. Zero-knowledge bir hizmette bir hesap oluşturursunuz. Kurulum sırasında cihazınızda kriptografik bir anahtar üretilir. Bu anahtar seçtiğiniz bir şifreden, uygulamanın oluşturduğu bir kurtarma ifadesinden ya da bunların bir kombinasyonundan gelebilir. Önemli olan: bu anahtar yerelde oluşturulur ve saklanır. Asla sunucuya gönderilmez.
Veri sakladığınızda, şifreleme cihazınızda hiçbir şey çıkmadan önce gerçekleşir. Telefonunuz düz metni alır, yerel anahtarınızla şifreler ve şifrelenmiş sonucu sunucuya gönderir. Sunucu o şifrelenmiş veri yığınını saklar. İçinde ne olduğundan haberi yoktur.
# Setup: key is generated and kept on the device. const key = derive(passphrase) // stays local
# Store: encrypt content locally, upload the encrypted blob. const blob = encrypt(plaintext, key) upload(blob) → “server sees gibberish”
# Read: server returns the same blob; phone decrypts. const plain = decrypt(download(), key)
Geri alma işlemi tersinedir. Sunucu şifrelenmiş veri yığınını cihazınıza geri gönderir. Cihazınız onu, hiç ayrılmamış olan anahtarı kullanarak yerelde çözer.
Sunucunun rolü depolama ve teslimattır; şifrelenmiş veriyi tutar ve taşır, ama hiçbirini anlamlandırmak için ihtiyaç duyduğu şeye sahip değildir. Bunu, sunucunun hem şifrelemeyi hem de anahtar yönetimini yaptığı geleneksel şifrelemeyle karşılaştırın; bu da sunucunun (ve onu ele geçirenin) verilerinizi istediği zaman okuyabilmesi anlamına gelir.
Yine de gerçek bir tercih var. Hizmet anahtarınızı tutmadığı için, kaybederseniz size yardım edemez. Şifrelenmiş verilere erişimi geri getiren bir “şifremi unuttum” akışı yoktur. Anahtarınız gittiyse, verileriniz de gitmiştir. Bu bir hata değil; mimarinin doğru çalışmasının matematiksel sonucudur.
Kimler zero-knowledge şifreleme kullanıyor
Zero-knowledge mimari yeni ya da egzotik değildir. En saygın güvenlik araçlarının bazıları üzerine kurulmuştur.
Signal mesajları uçtan uca şifreler. Signal’ın sunucuları şifrelenmiş mesajları iletir ama onları okuyamaz. FBI Signal’a celp gönderdiğinde, şirket esasen yararlı hiçbir şey teslim etmedi, çünkü ellerinde yararlı hiçbir şey yoktu.
Proton Mail aynı fikri e-postaya uygular. Gelen kutunuz, Proton’un asla görmediği şifrenizden türetilen anahtarlarla şifrelenir. Şeffaflık raporları, yasal taleplere yanıt olarak ne kadar az veri sağlayabildiklerini tam olarak gösterir.
1Password ve Bitwarden birer zero-knowledge şifre yöneticisidir. Kasanız, ana şifrenizden türetilen bir anahtarla yerelde şifrelenir. Şirketler şifrelenmiş kasaları saklar ama onları çözemezler.
AbsentKey sır paylaşımı için zero-knowledge şifreleme kullanır. Sırlarınız yüklenmeden önce telefonunuzda şifrelenir. Sunucu şifrelenmiş veri yığınlarını saklar. AbsentKey de sakladıklarınızı okuyamaz.
Yine de “şifreleme” reklamı yapan her hizmet zero-knowledge değildir. Yıllarca Google Drive dosyaları sunucularında şifredi ve Google anahtarları tuttu. İçeriklere erişebiliyor (ve eriştiler) idi. O şifreleme dış saldırganlara karşı korudu, ama Google’ın kendisine karşı korumadı.
“Şifrelenmiş” kelimesi tek başına size çok şey söylemez. Asıl soru şu: anahtarları kim tutuyor?
AbsentKey zero-knowledge şifrelemeyi nasıl kullanıyor
AbsentKey bir zero-knowledge sistem olarak temelden inşa edildi. (Tüm güvenlik modeline daha derin bakmak için, AbsentKey Güvenli mi? yazımıza bakın.) Pratikte böyle görünüyor.
AbsentKey’in ücretsiz yerel kasasını hesap açmadan, çevrimdışı kurabilirsiniz. Cihazınızda 12 kelimelik bir BIP39 kurtarma ifadesi üretilir. İfade AbsentKey sunucularına gönderilmez. Telefonunuzdan ayrı, güvenli bir yerde saklamanız gerekir.
Bu ifadenin entropisinden HKDF-SHA256 ile X25519 anahtar çiftiniz türetilir. Özel anahtar Expo SecureStore içinde saklanır ve gerektiğinde uygulama belleğine alınır. Biyometri veya cihaz PIN’i uygulamanın kilidini açar; şifreleme anahtarlarını türetmez.
Her yeni sır için rastgele 32 baytlık bir içerik anahtarı ve 24 baytlık bir nonce üretilir. Sırlar XSalsa20-Poly1305 ile şifrelenir. Bu yöntem, şifreli içerikteki değişikliklerin de tespit edilmesini sağlar. İçerik anahtarı, sizin açık anahtarınızla sealed box içinde korunur; doğrudan kurtarma ifadesinden türetilmez.
Bir sırrı paylaştığınızda cihazınız içerik anahtarını, sizin özel anahtarınız ve alıcının açık anahtarıyla crypto_box_easy kullanarak şifreler. X25519 tabanlı bu işlemde özel anahtarlar sunucuya gönderilmez. Alıcı kendisine ait özel anahtarla içerik anahtarını açar, ardından sırrı cihazında çözer.
AbsentKey’in sunucuları şifreli içeriği, şifrelenmiş içerik anahtarlarını ve açık anahtarları saklar; hesap ve erişim kontrolü verilerini de yönetir. Sırları çözecek özel anahtarlara sahip değildir. Yedeklemeyi veya paylaşmayı seçmediğiniz yerel sırlar sunucuya ulaşmaz. Bekleme süreleri ve onay kuralları sunucuda uygulanır; kriptografik zaman kilitleri değildir.
Mobil istemci GitHub’da kaynak kodlu olarak yayımlanır, böylece şifreleme kodunu kendiniz okuyabilir ve sırların düz metin olarak ağa çıkmadığını teyit edebilirsiniz.
Sır paylaşımı için bunun neden önemi var
İnsanların dijital miras planlarının bir parçası olarak AbsentKey gibi hizmetler aracılığıyla neler paylaştığını düşünün. Banka hesaplarına şifreler. Gerçek paraya değer kripto para seed phrase’leri. İş kimlik bilgileri. Bir ihlalin yalnızca bir rahatsızlık değil, finansal kayıp, kimlik hırsızlığı ya da daha kötüsü anlamına geldiği türde bilgiler.
Şimdi bunu, okuyabilen bir hizmet aracılığıyla paylaştığınızı hayal edin. Veritabanına erişimi olan her çalışana güveniyorsunuz. Güvenlik ekiplerinin asla hata yapmayacağına güveniyorsunuz. Hiçbir hükümetin onları veri teslim etmeye zorlamayacağına güveniyorsunuz. Hiçbir saldırganın altyapılarını asla ihlal etmeyeceğine güveniyorsunuz.
En hassas bilgilerinizi tutan bir hizmet için bu çok fazla güvendir.
AbsentKey sırları çözecek özel anahtarları sunucuda tutmaz. Sunucudaki şifreli veriyi çalmak, tek başına bu içeriği okumaya yetmez. Yedeklerin erişilebilirliği ve erişim kurallarının doğru uygulanması yine hizmete bağlıdır; cihazınızın veya kurtarma ifadenizin ele geçirilmesi de içeriği riske atabilir.
Ana şifrelerinizi ya da kurtarma ifadelerinizi dijital mirasınızı hazırlamak için bir paylaşım hizmetine koyuyorsanız, o hizmetin onları okuyamaması gerekir. Veri bu kadar hassasken “bize güvenin” yetmez. Tek kabul edilebilir cevap “okuyamayız” olur.
Sık Sorulan Sorular
Zero-knowledge hizmetler şifremi kaybedersem verilerimi kurtarabilir mi?
Yalnızca hesap şifresini sıfırlamak, şifreli içeriği çözecek anahtarları geri getirmez. Bazı hizmetler kurtarma için ayrı yöntemler sunar. AbsentKey’de 12 kelimelik kurtarma ifadesine ve erişilebilir şifreli veriye ihtiyacınız vardır. E-posta ile giriş veya cihaz PIN’i bunların yerine geçmez.
Zero-knowledge şifreleme uçtan uca şifreleme ile aynı şey mi?
Birbiriyle ilişkili kavramlardır. Uçtan uca şifreleme, içeriğin gönderenin cihazında şifrelenip alıcının cihazında çözülmesini anlatır. Depolama hizmetlerindeki zero-knowledge iddiası ise sağlayıcının içeriği çözecek anahtarları tutmadığını söyler. İkisi de sağlayıcının hesap ve erişim verileri hakkında hiçbir şey bilmediği anlamına gelmez.
AbsentKey’de kurtarma ifademi kaybedersem ne olur?
Kurtarma ifadenizi ve cihazdaki özel anahtarınıza erişimi kaybederseniz AbsentKey sırlarınızı çözemez. İfade, X25519 anahtar çiftinizi yeniden oluşturur; rastgele içerik anahtarlarını ve kayıp dosyaları yeniden üretmez. Kurtarma için şifreli içeriğin ve şifrelenmiş içerik anahtarlarının da erişilebilir olması gerekir.
İçeriğin anahtarı sizde kalsın
Zero-knowledge şifreleme, sağlayıcının içerik anahtarlarını elinde tutma ihtiyacını kaldırır. Güvenli cihazlar, iyi anahtar yönetimi ve güvenilir bir hizmet yine önemlidir.
Hassas bilgileri herhangi bir hizmet aracılığıyla paylaşacaksanız, o hizmetin paylaştığınız şeyi okuyamadığından emin olun. “Bakmamaya söz veriyor” değil. Bakamıyor.
AbsentKey sırları telefonunuzda şifreler. Sunucu özel anahtarınızı veya kurtarma ifadenizi tutmaz; paylaşımda içerik anahtarı seçtiğiniz her alıcıya ayrı ayrı şifrelenir.
AbsentKey’i indirin, almak ücretsiz, iOS ve Android’de mevcut.