Skip to main content
Surveillance
Self-Defense

Ayrıntılarıyla Uçtan Uca Şifreleme Açık Anahtarlı Şifreleme Sistemleri Nasıl Çalışır?

Son güncelleme: January 01, 2025

This page was translated from English. The English version may be more up-to-date.

Burada belirtilen kavramların bazılarına aşinalık kazanmak adına, önce eğer henüz okumadıysanız aşağıdaki rehberleri okumanızı öneriyoruz: Şifreleme Hakkında Bilmem Gerekenler, Temel Şifreleme Kavramları, ve Anahtar Doğrulama.

Uçtan uca şifreleme doğru kullanıldığında, mesajlarınızın, metinlerinizin ve dosyalarınızın ilettiğiniz kişiler dışındaki kişilerce okunmasını önlemeye yardımcı olur. Uçtan uca şifreleme araçları hem mobil ağlara kulak misafiri olan kişilere hem de servis sağlayıcılarına mesajları okunmaz kılar. Aynı zamanda ilgili mesajın tek bir kişi tarafından ve değiştirilmeden iletilmesini sağlar.

Eskiden kurulumu karmaşık olan uçtan uca şifreleme araçlarının kullanımı şu an çok daha kolay.  Signal gibi güvenli bir mesajlaşma aracı, gönderici ve istenilen alıcı arasındaki mesajları uçtan uca şifreleyen ve kullanımı kolay uygulamaların iyi bir örneğidir. WhatsApp ve Facebook Messenger gibi büyük platformlar dahi, sizin önceden kurulum yapmanızı gerektirmeyecek şekilde uçtan uca şifrelemeyi destekler.

Bu rehberde bahsettiğimiz, uçtan uca şifreleme araçlarının dayandığı şifreleme türü açık anahtarlı şifreleme olarak tanımlanır.

Açık anahtarlı şifrelemenin esas özelliklerini kavradığınızda bu araçları güvenli biçimde kullanabilirsiniz. Açık anahtarlı şifrelemenin yapabilecekleri sınırlıdır ve bu sınırların ne olduğunu bilmek yararlı olacaktır.

Şifreleme Ne İşe Yarar?

Şifreleme, gizli bir mesajın gönderimi esnasında şöyle bir yol izler:

  1. Açıkça okunabilen bir mesaj önce gören kimsenin anlayamayacağı, karmakarışık bir mesaja dönüşür: “selam anne” mesajı “OhsieW5ge+osh1aehah6” olur.
  2. Bu şifrelenmiş mesaj internet üzerinden iletildiğinde, mesajı takip eden kulak misafirleri varsa yalnızca bu karmaşık yazıyı görürler (“OhsieW5ge+osh1aehah6”).
  3. Mesaj varış noktasına, yani yalnızca istenilen alıcıya vardığında, karmaşık karakterlerden oluşan şifre iletilen özgün mesaja dönecek şekilde çözülür: (“OhsieW5ge+osh1aehah6” böylece “selam anne” mesajına döner).

Simetrik Şifreleme: Tek Bir Anahtarla Gizli Notlar İletme Hikayesi

Tarihten bir örnekle başlayalım: Sezar şifrelemesi.

Julia, arkadaşı Sezar’a bir not iletmek ister: “Bahçede buluşalım.” Ancak notu sınıf arkadaşlarının görmesini istemez.

Eğer Julia notu olduğu haliyle iletmeye kalkarsa, not Sezar’a ulaşmadan önce aracı arkadaşlarının elinden geçecektir. Tarafsız ama meraklı aracılar, iletmeden önce mesaja çaktırmadan bakmaya çalışabilir. Aynı zamanda önce mesajın kopyasını çıkarabilir ve Julia’nın Sezar’a mesajını ilettiği zamanı kaydedebilir.

Bu sebeple, yazışmasının gizliliğini korumak isteyen Julia “üçlü anahtar ” kullanarak mesajındaki harflerin her birini alfabede o harften sonraki üçüncü harfle değiştirir. Örneğin A D’ye, B E’ye dönüşür.

Julia ve Sezar mesajlarını şifrelemek ve sonra şifreyi çözmek için üçlü anahtar kullandığında ortaya çıkan anlamsız yazı arkadaşlarını kandırmaya yetebilir - fakat şifreyi çözmek zor değildir. Arkadaşlarından herhangi biri zor da olsa, olası her kombinasyonu deneyip mesajın bir iki kelimesini çözebilir. Bir başka deyişle, ısrarla ve art arda tahmin yürüterek mesajın şifresini çözecek cevabı bulabilirler.

Alfabede üç sıra kayarak uygulanan Sezar şifrelemesi, adını tarihte bu yöntemi kullanan Jül Sezar’dan alır. Yukarıdaki örnekte olduğu gibi şifrelemek ve şifreyi çözmek için tek bir anahtar kullanılan bu yönteme simetrik şifreleme denir.

Sezar şifrelemesi, zayıf bir simetrik şifreleme örneğidir. Neyse ki Sezar’dan bu yana şifreleme yöntemleri epeyce yol kat etti. Mesajlardaki harfleri birkaç sıra kaydırmak yerine, matematiğe başvurarak ve bilgisayarlar yardımıyla uzun ve çözmesi çok daha zor bir rakam dizilimi oluşturabilirsiniz.

Simetrik şifreleme pek çok kolaylık sağlamakla beraber aşağıdaki durumlarda işe yaramaz: Ya biri Julia ve Sezar’a kulak misafiri olup, anahtarı paylaşmalarını bekler ve sonra anahtarı ele geçirip mesajlarını çözmeye kalkarsa? Julia ve Sezar’ın arkadaşları, onların bir şekilde mesajlarını üçlü anahtar yöntemiyle çözdüklerini ifşa etmeleri için fırsat kollarsa?

Julia ve Sezar bu problemi nasıl aşabilir?

Bu sorunun en iyi cevabı açık anahtarlı şifreleme. Açık anahtarlı şifreleme yönteminde, şifreleme ve şifre çözme anahtarları farklı olduğundan, özel anahtar gizli tutulduğu müddetçe açık anahtarı paylaşmak tamamen güvenlidir.

Açık Anahtarlı Şifreleme: İki Anahtarın Hikayesi

Sorunu bir de yakından inceleyelim. Gönderici elindeki simetrik anahtarı, başkası yazışmasını izinsizce görmeden alıcıya nasıl iletebilir?

Açık anahtarlı şifreleme (diğer bir adıyla asimetrik şifreleme) etkili bir çözüm olacaktır. Yazışmadaki taraflardan her biri iki anahtar oluşturur: Açık anahtar ve özel anahtar. Belirli matematiksel özellikler içeren çok büyük rakamlardan oluşan bu iki “anahtar” birbirine bağlanır. Bir mesajı bir kişinin açık anahtarını kullanarak şifrelediğinizde, kişi o anahtarla eşleşen anahtarı kullanarak şifreyi çözebilir.

Artık Julia ve Sezar sınıfta birbirlerine kağıttan notlar iletmeyi bırakmış, bilgisayarlarında kullandıkları açık anahtarlı şifreleme sayesinde şifreli mesajlar yollamaya başlamıştır. Yukarıdaki örnekte mesajları birbirine uzatan sınıf arkadaşlarının yerini Julia ve Sezar arasındaki aracı bilgisayarlar almıştır: Julia ve Sezar’ın Wi-Fi noktaları, internet servis sağlayıcıları ve e-posta sunucuları. Gerçek hayatta Julia ve Sezar’ın sohbetini kolaylaştıran bilgisayarların sayısı yüzleri bulabilir, ve tıpkı meraklı sınıf arkadaşları gibi, bu aracılar da Julia ve Sezar’ın ilettiği her mesajı kopyalayıp depolar.

Julia ve Sezar aracıların onların iletişimde olduğunu görmelerini umursamaz, ancak mesajlarının içeriği gizli kalsın ister.

Julia önce Sezar’ın açık anahtarına ihtiyaç duyar. Sezar açık anahtarını şifrelenmemiş bir e-posta gibi güvenli olmayan bir kanaldan yollar. (İyi haber: Modern mesajlaşma uygulamaları bu manuel adımı gerektirmeden Sezar’ın yerine bu işlemi yürütür, fakat işleyişi açıklayan bu adımların üzerinden geçmek yararlı olacaktır.)

Sezar, aracıların açık anahtarı ele geçirmesinden endişe duymaz, çünkü bu anahtarı serbestçe paylaşmasında sakınca yoktur (gerçi anahtar benzetmesi burada sekteye uğrar; açık anahtarı bir anahtar gibi düşünmemek gerekir. Tekrar edelim: Anahtar, belirli matematiksel özellikler içeren çok büyük bir sayıdır ve genelde karakter dizilimi olarak şifrelenir). Temkinli davranan Sezar, açık anahtarını e-posta ve kısa mesaj olmak üzere birkaç kanal üzerinden iletir ve böylece aracıların kendi açık anahtarlarını Julia’ya yollaması zorlaşır.

Julia Sezar’ın açık anahtar dosyasını alır. Şimdi Julia ona yollayacağı mesajı şifreleyecektir. “Bahçede buluşalım.” yazar.

Şifrelediği mesajı yollar. Mesaj yalnızca Sezar’a şifrelenmiştir.

Julia ve Sezar’ın anlayabildiği mesaj, mesajı okumaya çalışan herhangi birine tamamen anlamsız görünecektir. Fakat aracılar konu satırı, tarihler, gönderici ve alıcı gibi meta verileri görebilir.

Mesaj Sezar’ın açık anahtarında şifrelendiği için, yalnızca Sezar ve göndericinin (Julia) şifreyi çözüp mesajın içeriğini okuması hedeflenmiştir.

Sezar mesajı özel anahtarını kullanarak okuyabilir.

Özetle:

  • Açık anahtarlı şifreleme sayesinde açık anahtar güvenli olmayan, açık bir kanal üzerinden iletilebilir. Günümüzdeki mesajlaşma uygulamaları bu adımı sizin adınıza atmaktadır.
  • Arkadaşınızın açık anahtarına sahipseniz, onlara mesajlarınızı şifreleyerek iletebilirsiniz.
  • Özel anahtarınız ise size gönderilen şifreli mesajların şifresini çözmenizi sağlar.
  • E-posta hizmet sağlayıcıları, internet hizmet sağlayıcıları ve onların ağlarında yer alan diğer kişilerin dahil olduğu aracılar bütün bu süreç boyunca meta verileri görebilir. Bu veriler, kimin kime ne yolladığı, mesajın ulaştığı zaman, konu başlığı, mesajın şifrelenmiş olduğu ve buna benzer bilgileri içerir.

Bir Sorun Daha Var: Taklit

Julia ve Sezar örneğinde aracılar süreç boyunca meta verileri görebiliyor.

Ama bir de, aracılardan birinin kötü amaçlı aktör olduğunu varsayalım. Kötü amaçlı aktör derken, bilgilerinizi çalıp içeriğine müdahale ederek size zarar vermek isteyen kişileri kastediyoruz. Kötü amaçlı bir aktör Julia’nın Sezar’a yolladığı mesajı izinsizce görmek istemiş olsun.

Diyelim ki Julia’yı kandırarak, Sezar’a ait olmayan, yanlış bir açık anahtar dosyasını ona iletti. Julia, elindeki açık anahtarın Sezar’a ait olmadığını bilmiyor. Böylece Sezar yerine kötü amaçlı aktör Julia’nın mesajını alır, mesaja bakar ve sonra Sezar’a iletir.

Kötü amaçlı aktör bu esnada mesajı Sezar’a iletmeden önce içeriğini değiştirmek isteyebilir. Örneğin “Bahçede buluşalım.” sözcükleri “Kafede buluşalım.” ifadesine dönüşebilir.

Ancak çoğu zaman kötü amaçlı aktör içeriği olduğu gibi bırakır. Sonrasında kötü amaçlı aktör Julia’nın mesajını sanki hiçbir şey olmamış gibi Sezar’a iletir, Sezar Julia’yla buluşmak için bahçeye gider ve bir de ne görsünler, kötü amaçlı aktör de oradadır!

Bu eyleme “ortadaki adam saldırısı ” ya da “ortadaki makine saldırısı” denir.

Neyse ki, açık anahtarlı şifreleme bu tür ortadaki adam saldırılarına karşı “parmak izi doğrulama” adlı bir yönteme başvurur. Bu yöntem, şartlar izin verdikçe, en iyi gerçek hayatta işe yarar. Açık anahtar parmak iziniz varsa, arkadaşınız açık anahtar parmak izinizdeki her bir karakteri, kendilerinde bulunan ve size ait açık anahtar parmak iziyle eşleştirir. Biraz sıkıcı bir iş de olsa katlanmaya değer.

Uçtan uca şifrelenmiş farklı uygulamalarda da parmak izi kontrolleri olmakla birlikte, işleme verdikleri isim ve uygulama biçimleri değişiklik gösterir. Bazılarında, parmak izinizdeki her bir karakteri okuyup, ekranınızda gördüğünüz karakterlerle arkadaşınızın ekranında gördüklerinin eşleştiğinden emin olmanız gerekir. Bazılarında ise başka bir kişinin telefonundaki karekodu okutarak cihazlarını “doğrulamanız” gerekebilir. Aşağıdaki örnekte, Julia ve Sezar bizzat buluşarak telefonlarının parmak izlerini kameralarıyla karekodu okutarak doğrulamaktadır.

Bu yöntemin nasıl uygulandığını görmek için Signal'in "Güvenlik numarasını doğrula" seçeneğini veya WhatsApp'in "Güvenlik kodunu doğrula" özelliğini inceleyebilirsiniz.

Yüz yüze buluşma lüksünüz yoksa, parmak izinizi uçtan uca şifrelenmiş başka bir mesajlaşma uygulaması ya da görüntülü konuşma gibi güvenli bir kanal yoluyla paylaşabilirsiniz.

Aşağıdaki örnekte Sezar açık anahtar parmak izini akıllı telefonundaki başka bir uçtan uca şifrelenmiş uygulama yoluyla Julia’ya iletir.

Gözden geçirelim:

  • Ortadaki adam saldırılarında ilettiğiniz mesajınızı iletim esnasında birileri ele geçirir. Saldırgan mesajın içeriğini değiştirip alıcıya iletebilir ya da sadece içeriği okumakla yetinebilir.
  • Ortadaki adam saldırılarına karşı korunmak için açık anahtarlı şifreleme yöntemiyle, alıcı ve göndericilerin kimliklerini doğrulayabilirsiniz. Bu işlem “parmak izi doğrulama” yoluyla yapılır.
  • Arkadaşınıza ait açık anahtar, ona yollayacağınız mesajı şifrelerken size “açık anahtar parmak izi ” de verir. Parmak izi sayesinde arkadaşınızın kimliğini doğrulayabilirsiniz.
  • Özel anahtar, mesajları şifrelemenin yanı sıra mesajların sizden geldiği sinyalini de dijital olarak iletir (ayrıntılar aşağıda).

İmzalar

Bir mesajı belirli bir açık anahtarla şifrelediğinizde, yalnızca o anahtarla eşleşen bir özel anahtar yoluyla şifrenin çözüleceğini biliyoruz. Aksi de geçerlidir: Bir mesajı belirli bir özel anahtarla şifrelediğinizde, şifre yalnızca o anahtarla eşleşen bir açık anahtar yoluyla çözülebilir.

Peki bunun yararı nedir? Diyelim ki şöyle bir mesaj yazdınız: “Aazul’a 100$ ödeyeceğime söz veriyorum.” Sonrasında bu metni özel anahtarınızla gizli bir mesaja dönüştürdünüz. Bu mesajın şifresini herkes çözebilir. Ancak bu mesajı yalnızca bir kişi yazmış olabilir: Özel anahtarınıza sahip olan kişi. Özel anahtarınızı güvende tutmayı başardığınız müddetçe, bu mesaj yalnızca sizden gelebilir. Mesajı özel anahtarınızla şifrelediğiniz zaman mesajın yalnızca sizden iletildiğini temin etmiş olursunuz.

Bir başka deyişle, bu dijital mesajda gerçek hayatta bir metne attığımız imzaya benzeyen, dolayısıyla “imzalama” adını alan bir işlem yürütmüş oldunuz.

İmzalama yöntemi aynı zamanda mesajların içeriğinin değişmesini engelleyen yöntemlerdendir. Biri “Aazul’a 100$ ödeyeceğime söz veriyorum.” mesajınızı “Ming’e 100$ ödeyeceğime söz veriyorum.” şeklinde değiştirmeye kalktığında, özel anahtarınızı kullanarak tekrar imza atamaz. Mesaj imzalı iletildiğinde ise, doğru kaynaktan geldiği ve iletim esnasında değiştirilmediği kesinleşir.

Gözden geçirelim: Açık Anahtarlı Şifreleme Kullanımı

Tekrar bir bakalım. Açık anahtarlı şifreleme sayesinde, mesajlarınızı şifreleyerek açık anahtarını bildiğiniz herkese güvenli biçimde yollayabilirsiniz.

Açık anahtarınızı bilen kişiler:

  • Size açık anahtarla eşleşen özel anahtarınızı kullanarak şifresini yalnızca sizin çözebileceğiniz gizli mesajlar yollayabilir.
  • Özel anahtarınızla mesajlarınızı imzaladığınızda alıcılar mesajların yalnızca sizden gelmiş olabileceğini bilir.
  • Günümüzde açık ve özel anahtarlarınızı yöneten mesajlaşma uygulamalarında anahtarları doğrulama mekanizmalarını kullanmak kolaylaşmıştır. Böylece herhangi biri kolayca, farkında dahi olmadan açık anahtarlı şifreleme kullanabilir.

Siz birinin açık anahtarını biliyorsanız:

  • İmzaladıkları bir mesajın şifresini çözüp mesajın gerçekten o kişiden geldiğinden emin olabilirsiniz.

Açık anahtar şifrelemesi , anahtarınızı bilen kişi sayısı arttıkça daha da yararlı hale gelir. Açık anahtarınızı kimin gördüğü fark etmez, dolayısıyla sizinle iletişim kurmak isteyen herkesle paylaşabilirsiniz.

Açık anahtar özel anahtar adlı bir dosyayla eşleşerek işler. Özel anahtarı korumanız ve güvende tutmanız gereken gerçek bir anahtar gibi düşünebilirsiniz. Özel anahtarınız mesajlarınızın şifrelenmesi ve şifrelerin çözülmesi için kullanılır.

Özel anahtarınız cihazınızdan yanlışlıkla silinirse, şifrelenmiş mesajlarınızın şifresini çözemezsiniz. Biri özel anahtarınızın kopyasını çıkardığında, başkaları şifrelenmiş mesajlarınızı okuyabilir. Kopyalama işlemini bilgisayarınıza fiziksel erişim yoluyla, cihazınızdaki bir kötü amaçlı yazılımla veya yanlışlıkla özel anahtarınızı biriyle paylaştığınızda yapabilirler. Sizi taklit ederek, mesajları sizin yazmış olduğunuz iddiasıyla imzalayabilirler.

Devlet kurumlarının, önemli kişilerin bilgisayarlarını ele geçirip veya fiziksel erişim ya da kimlik avı saldırılarıyla kötü amaçlı yazılım yükleyerek özel anahtarları çaldığı görülmüştür. Bu yöntemler özel anahtarlı şifrelemenin sağladığı korumayı ortadan kaldırır.

Bu tıpkı, açılması imkansız bir kilit taktırdığınız kapının anahtarının cebinizden çalınması, çoğaltılması ve gizlice tekrar cebinize bırakılmasına benzer. Hırsızlar böylelikle kilidi kırmakla uğraşmadan evinize girebilir.

Güvenlik planınızla ilgili bir konudan bahsediyoruz. Risklerinizi saptayın ve bu risklere göre harekete geçin. Birinin onca zahmete girip özel anahtarınızı çalacağından şüpheleniyorsanız, tarayıcı üzerinde çalışan bir uçtan uca şifreleme çözümü işinize yaramayabilir. Özel anahtarınızı bulut veya bir sunucu üzerinden başkasının bilgisayarında değil, kendi bilgisayarınızda veya telefonunuzda saklayabilirsiniz.

Açık Anahtarlı Şifrelemenin İşleyişi

Simetrik şifreleme ve açık anahtarlı şifrelemeyi ayrı ayrı açıkladık, ancak açık anahtarlı şifreleme de simetrik şifrelemeyi kullanmaktadır. Açık anahtarlı şifreleme yöntemi simetrik bir anahtar kullanarak mesajı şifreler, sonrasında da anahtar bu mesajın şifresinin çözülmesi için kullanılır.

Pretty Good Privacy (Oldukça İyi Gizlilik - PGP ) artık çok az kullanılmakla beraber, hem simetrik şifreleme hem de açık anahtarlı (asimetrik) şifreleme kullanan bir protokoldür. PGP gibi uçtan uca şifreleme araçları kullandığınızda bazı adımları bizzat kendiniz atmanız gerektiğinden, açık anahtarlı şifreleme uygulamasının nasıl işlediğini yakından fark edersiniz. Günümüzdeki iletişim araçlarında PGP’nin işleyişinin büyük bir kısmı kullanıcıların bilgisi dışındadır, ancak yine de pek çok adımın manuel atılması gerektiği için uçtan uca şifrelemenin işleyişini anlatmak yararlı olacaktır.

Anahtarlar Tam Nedir ve Birbirleriyle Nasıl Eşleşir?

Açık anahtarlı şifreleme iki anahtarın varlığına dayanır: Biri şifreleme, diğeri şifre çözümü işlemi için. Açık anahtarınızı internet gibi güvenilir olmayan bir kanal üzerinden yollayabilirsiniz. Bu açık anahtarı herkese açık herhangi bir yerde paylaşmanızda sakınca yoktur. Şifrelenmiş mesajlarınızın güvenliğini tehlikeye atmış olmazsınız.

Açık anahtar özel anahtar adlı bir dosyayla eşleşerek işler. Özel anahtarı korumanız ve güvende tutmanız gereken gerçek bir anahtar gibi düşünebilirsiniz. Özel anahtarınız mesajlarınızın şifrelenmesi ve şifrelerin çözülmesi için kullanılır.

Yaygın kullanımda olan açık anahtarlı şifreleme algoritması RSA’da (Rivest–Shamir–Adleman) sürecin nasıl işlediğine bakalım. RSA genellikle PGP ile şifrelenmiş e-postalar için birbiriyle eşleşen iki anahtar oluşturmak için kullanılır.

Açık anahtar ve özel anahtar üretilip birbirine bağlanır. Her ikisi de aynı gizli asal sayıya dayanır. Özel anahtar iki gizli asal sayıyı temsil eder.

Bir benzetmeyle açıklamak gerekirse, açık anahtar ürün numarasına benzer. Özel anahtarı oluşturan iki çok büyük asal sayının aynısıdır. Açık anahtarı oluşturan bu iki büyük asal sayıyı bulmak çok zordur.

Bu sorun “asal çarpanlarına ayırma” olarak bilinir. Bazı açık anahtarlı şifreleme uygulamaları bilgisayarlar için zor olan bu işlemden hareketle bileşenlerdeki asal sayıları çözmeye çalışır. Modern şifreleme uygulamaları ise hem insanların, hem bilgisayarların tahmin etmesi güç, rasgele seçilmiş, absürt uzunlukta asal sayılar kullanmamıza olanak verir.

Uygulamanın güçlü yanı, anahtarların güvenli olmayan kanallardan paylaşılıp karşılıklı şifreleme işlemlerine olanak tanımasıdır. Süreç esnasında kişiler özel anahtarlarını (gizli asal sayıları) asla ifşa etmezler, çünkü zaten mesajların şifrelerinin çözülmesi için özel anahtarlarını iletmeleri gerekmez.

Açık anahtarlı şifrelemenin uygulanabilmesi için, göndericide ve alıcıda birbirilerinin açık anahtarlarının olması gerekir.

Bir başka deyişle, açık anahtar ve özel anahtar tıpkı bir ying-yang sembolü gibi birlikte üretilir. İç içe geçmişlerdir.

Açık anahtar aranabilir ve paylaşılabilir. İstediğiniz kişiye verebilirsiniz. Sosyal medya hesabınızda (eğer e-posta adresinizin varlığını ifşa etmesi sizin için sorun değilse) paylaşabilirsiniz. Kişisel web sitenize koyabilirsiniz.

Özel anahtar ise güvenilir ve size yakın bir yerde bulunmalıdır. Elinizde yalnızca bir adet bulunur. Kaybetmemeniz, paylaşmamanız ve çoğaltmamanız gerekir. Aksi takdirde özel mesajlarınızın özel kalma ihtimali düşer.

Günümüzde Açık Anahtarlı Şifrelemenin İşleyişi: Signal’in Double-Ratchet (Çift Dişli) Algoritması

Mesajlaşma protokolleri zaman içerisinde ek özellikler sunarak daha güvenli ve kullanışlı hale gelmiştir. Böylece yıllar içinde şifreleme deneyimimiz de değişerek, şeffaf ama hantal bir deneyimden bizim farkına bile varmadığımız, arka planda yürüyen bir işleme dönüşmüştür. Signal’e ait “double ratchet (çift dişli) algoritması” bunun bir örneğidir. Algoritmanın nasıl çalıştığını en iyi biçimde anlayabilmek için önceki protokollerin ana hatlarını gözden geçirelim.

Oldukça İyi Gizlilik (PGP)

Yukarıda belirttiğimiz gibi, PGP asimetrik ve simetrik şifrelemenin tek seferde uygulanmasıdır ve genellikle e-posta ile mesajlaşma işlemlerinde kullanılır. PGP’de asimetrik şifreleme yoluyla simetrik bir anahtar şifrelenir, ve sonrasında yazılan mesaj bu anahtarla şifrelenir. PGP eş zamanlı olmayan iletişime olanak tanır, ancak anahtarın tek bir kez bile ele geçirilmesiyle geçmiş ve gelecekteki bütün mesajların içeriği ifşa edilebilir. Yani eğer biri anahtarınıza erişirse, gönderdiğiniz (veya göndereceğiniz) bütün mesajlara erişim kazanır.

PGP eskisi kadar popüler olmasa da, bazı mesajlaşma uygulamaları benzer bir şifreleme kullanmaya devam etmektedir. Bu uygulamalarda genellikle, e-posta versiyonunda da görülen, izinsiz erişimden kurtarma ve izinsiz erişim arşiv gizliliği sorunları devam etmektedir.

Off the Record (Kayda Geçmeyen Mesajlaşma - OTR)

Pidgin gibi ilk mesajlaşma-sohbet hizmeti kullanıcılarının başvurduğu popüler bir eklenti olan OTR , Google Hangouts gibi hizmetlerde iletişim için kullanılıyordu. OTR iletişim kuracak tarafların çevrimiçi olarak oturum açmasını gerektirdiğinden kullanımı sınırlıydı.

OTR’de karşılıklı iletilen her mesaj “oturum” olarak tanımlanır. Yani eğer tek bir anahtar sızdırılırsa, yalnızca ilgili oturumdaki mesajların güvenliği kaybolur, önceki ve sonraki mesajlar zarar görmez. Eğer kullanıcı art arda birkaç mesaj yollarsa, tek bir anahtar sızıntısı bu mesajların tamamını ifşa eder, ama önceki ve sonraki mesajlar saklı kalır. Anahtarlar mesajlara eklendiği için, sürekli yeni anahtarlar üretilir.

Güvenlik açısından bakıldığında bu harika bir özelliktir. Çünkü bir saldırgan o anahtara bir şekilde erişirse, yalnızca tek bir mesaja erişmiş olur. Ancak OTR çok da kullanışlı değildir. Her iki tarafın da çevrimiçi olması gerektiği için, oturum açıldıktan sonra tek taraftan bir dizi mesaj yollanıp karşı taraftan cevap gelmeyince yeni bir anahtar üretilmez. Böylece diğer taraf cevap verene dek anahtarın korunması gerekir. Ayrıca, mesajlaşma hizmeti kullanıcılarının, mesajları gönderildikleri ve alındıkları zamana göre doğrusal sırada tutmasına yarayan sırasız mesaj takibi de zorlaşır. Mesajların sırası sadece sohbetin okunmasını kolaylaştırmak için değil, şifrelemenin de işe yaraması için çok önemlidir. Eğer bir mesajın yollanma sırası değişirse, alıcının uygulaması mesajın şifresini çözmek için hangi anahtarı kullanacağını bilemeyebilir.

Silent Circle Anlık Mesajlaşma Protokolü (SCIMP)

SCIMP “double ratchet” (çift dişli) kullanımına öncülük eden bir ara protokoldü. Bu protokolde her göndericinin kendi kişisel anahtarlığı bulunur ve her bir anahtar bir öncekine dayanarak üretilir. Böylelikle bir mesaj iletildiğinde o mesajın anahtarı güvenli biçimde terk edilebilir.

Gözlerinizin önüne bir dişli getirin. Dişliyi her döndürdüğünüzde, her bir mesaj için yeni bir anahtar üretir. Eğer bir saldırgan bir şekilde anahtarlardan birine ulaşırsa, önceki mesajları okuyamaz, çünkü yollanan her mesajın ardından dişli dönmeye devam edip yeni bir anahtar üretir. Ancak saldırgan o anahtarı kullanıp dişlinin bir kopyasını çıkarabilir, böylelikle sonrasında gelecek tüm mesajları okuyabilir. Sohbete dahil olan her iki tarafta da, her bir mesajda dönen birer kişisel dişli bulunur. Bu tasarım sayesinde, taraflardan biri bir dizi mesajı art arda yollamış bile olsa, saldırgan sohbetin geçmişine dönüp önceki mesajları okuyamaz.

SCIMP ise “geçmişe yönelik gizlilik” sağlar, yani bir anahtarın ele geçirilmesiyle önceki mesajlar ifşa edilir. İleri bir tarihte herhangi bir anahtar sızdırıldığında geçmiş mesajların okunması engellenir. Ancak SCIMP, anahtar sızdırıldıktan sonra yollanan mesajların okunmasını engellemek için kullanılan “geleceğe yönelik gizlilik” veya “izinsiz erişimden kurtarma” güvencelerini sunmaz. Ayrıca, mesajların sırası karışarak gelmesi ihtimaline karşı anahtara bir süre sahip çıkmak gerekir.

Signal’in Double-Ratchet (Çift Dişli) Algoritması

Signal, eş zamanlı olmayan mesajlaşmayı desteklemek üzere OTR ve SCIMP’i bir arada kullanır. Signalblogunda bu işleyişin ardında yatan tasarım felsefesini şöyle açıklar: “Her iki uygulamanın da en iyi yönlerini bir araya getirmek istedik: SCIMP gibi bir karma iterasyon dişlisinin sağladığı ve en iyi düzeye çıkardığımız geçmişe yönelik gizlilikle, OTR gibi bir DH (Diffie-Helman) protokolü dişlisinin sağladığı ileriye yönelik gizlilik özelliklerini, her ikisinin de olumsuz taraflarını olabildiğince hariç tutarak birleştirdik.

Signal’de her kullanıcının her yeni mesaj yolladığında (karşı taraf henüz cevap vermeden) çevirdiği SCIMP-tarzı bir dişlisi bulunur. Öte yandan, her karşılıklı mesaj alışverişiyle birlikte OTR’de gördüğümüz gibi yeni bir oturum açılır.

Her iki teknolojiyi bir arada kullanan bu uygulamada, saldırganların her bir mesajı tek tek çözmesi gerekecektir. Teknik açıdan düşünüldüğünde, eğer A kullanıcısı bir dizi mesaj iletirken ve henüz B kullanıcısı cevaplamadan elindeki anahtar sızdırılırsa, saldırgan, B mesajları cevapladığında yeni bir oturum açılana dek iletilecek yeni her mesajı görebilir.

Signal’in çift dişli algoritması, kişinin seri halinde yolladığı mesajların her birini koruyan SCIMP anahtarlığı özelliğini alıp, OTR dişlisinin her bir parçasına takılı mini anahtarlıklara dönüştürür. Böylelikle, sohbet boyunca karşılıklı her mesaj iletimi esnasında yeni bir anahtar oluşur. Ayrıca, üçüncü bir “kök anahtarlık ” oluşturulmasıyla meydana gelecek bilgi alışverişi de azalır.

Signal’in getirdiği en büyük inovasyonlardan biri, çevrimdışı anahtar alışverişiyle eş zamanlı olmayan sohbetlerin başlatılabilmesiydi. Bir sonraki mesaj şifreleme anahtarının üretilmesi üç yerine yalnızca iki adım gerektirdiği için, bu adımlardan biri önden atılıp Signal’in sunucusuna kaydedilebiliyor. Gizli anahtarlar ise, yalnızca kullanım anında paylaşmak üzere yapılan hesaplamayla üretildiği için, ilk adımın önden atılmasında sakınca yoktur. Singal bu ilk adımda üretilen anahtara “ön anahtar” adını verir. İleri seviyesi için buraya ya da kuantum sonrası versiyonu için buraya tıklayabilirsiniz.

Meta Veri: Açık Anahtarlı Şifrelemenin Yapamadıkları

Açık anahtarlı şifreleme yalnızca her mesajın gizli, özgün ve müdahaleden uzak kalmasını sağlar. Ancak gizlilik yalnızca bunlarla sınırlı değildir. Yukarıda da belirttiğimiz gibi, mesajlarınız hakkındaki bilgiler yani üst veriler sizi en az içerik kadar ifşa edebilir.

Eğer ülkenizde tanınan bir muhalifle şifrelenmiş mesajlaşma yoluyla iletişim kuruyorsanız, mesajların şifresi çözülmese dahi yalnızca bu kişiyle iletişim kurduğunuz için bile tehlikeye girebilirsiniz. Bazı ülkelerde şifrelenmiş mesajları çözmeyi reddetmek hapis cezasıyla sonuçlanabilir. Her şifrelenmiş mesajlaşma aracı farklı türde meta veri toplar. Örneğin, WhatsApp uygulaması da uçtan uca şifrelenir, ancak Signal'den daha fazla meta veri toplar.

Açık anahtarlı şifrelemenin işleyişini artık bildiğinize göre Signal gibi bir uçtan uca şifreleme aracı kullanabilirsiniz.