Secure Messaging Scorecard

Hangi uygulamalar ve araçlar mesajlarınızı gerçekten güvende tutuyor?

Yaygın internet gözetimiyle karşılaştığımız bugünlerde, bilgisayarlarımız ve telefonlarımız aracılığıyla birbirimizle konuşabilmek için güvenli ve pratik yöntemlere ihtiyacımız var. Birçok firma "güvenli mesajlaşma" ürünleri sunuyor, ancak bu ürünler gerçekten güvenli mi? EFF'in Güvenli & Kullanılabilir Kripto kampanyasının ilk adımı olarak bu soruya cevap bulmaya çalıştık.

Bu karne kampanyanın sadece ilk aşamasını temsil ediyor. Daha sonraki aşamalarda, bu karneden yüksek not almış araçların güvenliğini ve kullanılabilirliğini daha yakından incelemeyi planlıyoruz. Bu yüzden, aşağıda yer alan karnedeki sonuçlar tekil araçların onaylandığı ya da güvenliklerinin garantilendiği şeklinde algılanmamalıdır; aşağıdaki liste sadece bu araçların doğru yolda olduklarının bir göstergesidir. Çevrimiçi haberleşmelerinizi nasıl koruyabileceğinizle alakalı pratik ipuçları ve öğreticiler için EFF'in hazırladığı Gözetim Meşru Müdafaa rehberine göz atabilirsiniz.

Hakkında

Gizlilik ve güvenlik uzmanları, haberleşmelerini korumak amacıyla halkı yıllardır güçlü, açık kaynak kodlu kriptografi kullanmaya davet etti. Snowden'ın açığa çıkardığı belgeler, korkularımızı doğruladı: devletler dijital yaşamlarımızı izliyor, açıktaki haberleşmelerimizi topluyordu.

Devletlerin yaygın bir şekilde yaptığı bu izlemeye rağmen, insanlar niçin rutin olarak haberleşmelerini şifrelemiyor? İzlenmenin gölgesinde olmadan biraz daha rahat bir şekilde haberleşemez miyiz?

Sorun iki şeyden ibaret: güvenlik ve kullanılabilirlik. Halkın kolayca kullanabileceği araçların çoğu, uçtan uca şifreleme ya da açık kaynak kodlu olma gibi önemli güvenlik uygulamalarına dayanmıyor. Gerçekten güvenilir olan mesajlaşma araçlarını kullanmak genellikle kolay değildir; sıradan bir kullanıcı teknolojiyi kurmakta, doğruluğunu onaylamakta, bir hesap yaratmakta zorlanabilir ya da aracı haberleşmelerini yanlışlıkla ortaya dökecek bir şekilde kullanabilir.

EFF olarak, ProPublica yazarı Julia Angwin ve Princeton Center for Information Technology Policy'den Joseph Bonneau ile birlikte güçlerimizi birleştirerek güvenli ve kullanışlı kripto için bir kampanya başlatıyoruz. Fazlasıyla güvenli ve kullanımı kolay olan teknolojileri savunuyoruz. Güvenli Mesajlaşma Karnesi, düzinelerce mesajlaşma teknolojisini inceler ve bunların her birini en iyi güvenlik uygulamalarını baz alarak derecelendirir. Kampanyamız haberleşme teknolojilerine odaklanmıştır -- bunlara chat uygulamaları, metin mesajı uygulamaları, email uygulamaları ve video arama teknolojileri dahildir. Bu araçları kullanarak insanlar her gün arkadaşlarıyla, aile üyeleriyle ve iş arkadaşlarıyla haberleşir, ve bu haberleşmeler için güvenli çözümlere ihtiyacımız var.

Gelişmiş güvenlik uygulamaları konusunda lider olan küçük firmaların yanında, büyük kullanıcı kitlelerine (ve dolayısıyla birçok kullanıcının haberleşmelerine sahip) olan teknolojileri seçiyoruz. Karnemizin bu firmalar arasında bir zirveye oynama rekabetini başlatmasını ve dijital haberleşmeler için güçlü kriptonun etrafındaki teknolojilerin gelişimini teşvik etmesini umut ediyoruz.

Metodoloji

Farklı haberleşme araçlarının güvenliğini değerlendirirken dikkat ettiğimiz kriterler şu şekildedir:

1. Haberleşmeleriniz taşıma sırasında şifreli mi?

Bu kriter, bir kullanıcının haberleşmelerinin tamamının haberleşme ağının tüm bağlantıları boyunca şifrelenmiş olmasını gerektirir. Verilerin şirket ağı üzerinde aktarılırken şifrelenmiş olması ideal olsa da, bunu gerekli kılmadığımızı belirtelim. Metaverinin (kullanıcının ismi veya adresi gibi) şifrelenmiş olmasını da şart koşmuyoruz.

2. Haberleşmeleriniz servis sağlayıcısının erişemeyeceği bir anahtarla mı şifrelenmiş?

Bu kriter, tüm haberleşmelerin uçtan uca şifrelenmiş olmasını gerektirir. Bu, mesajların şifrelerinin çözülmesi için gereken anahtarların uç noktalarda (kullanıcılar tarafından, sunucu tarafından değil) yaratılması ve saklanması anlamına gelir. Yedekleme veya iki cihaz arasında senkronizasyon gibi net bir kullanıcı müdahalesi gerektiren işlemler haricinde, anahtarlar uç noktalardan ayrılmamalıdır. Kullanıcıların açık (public) anahtarlarının değiş tokuşunun merkezi sunucularda yapılmasında bir sakınca yoktur.

3. Görüştüğünüz kişinin kimliğini bağımsız bir şekilde doğrulayabiliyor musunuz? Bu kriter, servis sağlayıcısı ya da üçüncü partilerin güvenliği ihlal edilmiş olsa bile, kullanıcıların görüştükleri kişinin kimliğini ve görüştükleri kanalın bütünlüğünü (integrity) doğrulayabilecekleri yerleşik bir yöntemin varlığını şart koşar. Kabulü mümkün iki farklı yöntem:

  • Kullanıcıların şahsen ya da bant dışı doğrulayabilecekleri, kendilerinin ve görüştükleri kişilerin parmak izini (hash) görebileceği bir arayüz.

  • Sosyalist Milyoner protokolü gibi bir kısa kimlik doğrulama dizisine (short authentication string) sahip bir anahtar değiş tokuş protokolü.

Diğer çözümler de mümkündür, ancak tüm çözümler kullanıcılar ve kriptografik kanallar arasında kurulan bağlantıyı doğrulamalıdır. Karne için, mekanizmanın uygulanmış olmasını gerekli kılıyoruz ve bu uygulamanın kullanılabilirliğini ya da güvenliğini değerlendirmiyoruz.

4. Anahtarlarınız çalındıysa geçmişteki haberleşmeleriniz güvende mi?

Bu kriter, uygulamanın mükemmel iletme gizliliği (perfect forward secrecy) sağlamasını şart koşar. İletme gizliliği, tüm haberleşmelerin (anahtarları yaratan rastgele değerlerle birlikte) rutin olarak silinen kısa süreli anahtarlarla şifrelenmesini zorunlu kılar. Anahtarların bu işlemden sonra, iki tarafın uzun süreli gizli anahtarlarına erişimi olsa bile, herhangi biri tarafından tekrardan oluşturulamaması gerekir. Kullanıcıların görüşmelerinin yerel kopyalarını silmeyi tercih etmeleri durumunda, bu işlem görüşmelerinin kalıcı olarak silindiğini garantiler. Bu kriterin 2. kriteri, yani uçtan uca şifrelemeyi zorunlu kıldığını dikkate alın.

Not: Kampanyanın bu aşamasında, karma bir iletme gizliliği yaklaşımını kabul ediyoruz. Yani şu an için, taşıma katmanında iletme gizliliğini (örneğin Diffie-Hellman cipher suite'ine sahip bir TLS bağlantısı), iletme gizliliğine sahip olmayan uçtan uca şifrelemeyi ve ek olarak şifreli metinlerin (ciphertext) servis sağlayıcısı tarafından kayıt altına alınmadığının açık bir garantisini talep ediyoruz.

5. Uygulamanın kodu bağımsız incelemeye açık mı?

Bu kriter, uyumlu bir uygulamanın bağımsızca derlenebilmesi (compile edilebilmesi) için yeteri kadar kaynak kodunun yayınlanmış olmasını gerektirir. Her ne kadar tercih sebebi olsa da, kodun herhangi bir açık kaynak kod lisansı altında yayınlanmasını gerekli görmüyoruz. Bug'ların, arka kapıların ve yapısal problemlerin incelenebilmesi için, yalnızca uygulama tarafından gerçekleştirilen şifrelemeyi ve haberleşmeyi etkileyebilecek kodun elde edilebilir olmasını şart koşuyoruz.

Not: Araçlar işletim sistemi üreticisi tarafından sağlanıyorsa, işletim sisteminin değil, yalnızca aracın kodunun erişilebilir olmasını şart koşuyoruz. Burada ödün veriyoruz, çünkü işletim sistemlerinin ve işletim sistemlerine gelen güncellemelerin güvence altına alınması görevi bu projenin kapsamı dışındadır.

6. Kripto tasarımı iyice belgelenmiş mi?

Bu kriter, uygulama tarafından kullanılan kriptografinin izahının detaylı ve net bir şekilde yapılmış olmasını gerektirir. Bu belgelenmenin, white paper olarak profesonal bir kriptocu kitlesi tarafından incelemesi için yazılmış olması tercih sebebidir. Bu dökümanın aşağıdaki sorulara cevap vermesi beklenir:

  •  Doğrulama ve şifrelemenin her adımında hangi algoritmalar ve parametreler (anahtar boyutu, eliptik eğri grupları gibi) kullanıldı

  •  Anahtarlar nasıl yaratılıyor, nasıl saklanıyor ve kullanıcılar arasında nasıl değiş tokuş edilebiliyor

  •  Anahtarların kullanım süresi ve kullanıcıların anahtarlarının değişim ve iptal edilmesi süreci

  •  Yazılımın sağlamayı amaçladığı özelliklerin ve korumaların net bir beyanı (bu dolaylı olarak bir tehdit modeli sağlar, ancak net bir tehdit modeline ayrı olarak sahip olmak da iyidir). Ayrıca bu beyanda protokolün ne tür koşullarda güvenli olmadığını da belirtmelisiniz.

7. Yakın bir zamanda bağımsız bir güvenlik denetimi yapıldı mı?

Bu kriter değerlendirmeden 12 ay önce bağımsız bir güvenlik incelemesinin yapılmış olmasını gerektirir. Bu inceleme yazılımın tasarımını ve uygulamasını kapsamalıdır ve aracın ana geliştirme takımından bağımsız bir isme sahip bir denetim grubu tarafından gerçekleştirilmelidir. Bu denetimin büyük bir organizasyonun içinde yer alan bir güvenlik ekibi tarafından yapılması yeterlidir. Yayınlanmamış denetim raporlarının değerli olduğunun farkındayız ve bu yüzden bu raporun sonuçlarının herkese duyurulmasını gerek görmüyoruz. Ancak denetimi yapan grubun denetimin gerçekleştiğini doğrulamasını şart koşuyoruz.

Bu kriteri bir Deeplink yazısında derinlemesine konuştuk (İngilizce): What Makes a Good Security Audit?

Changelog

Güvenli Mesajlaşma Karnesi'ndaki girdiler, listelenmiş projeler ve şirketlerle birlikte karne yayınlandığında (06-11-2014) kontrol edildi. Listelenenler veya başkaları bir değişiklik veya yanlışlık olması durumunda bizi uyardıklarında, düzeltmeler yapılacaktır. Bu anlamda yapılan değişikliklerin kayıtları aşağıdadır:

  • 12-06-2015:
  • 06-03-2015:
    • Dahili bağımsız güvenlik denetimini tamamladığı için QQ'ya gereken notu verdik ().
  • 17-02-2015:
    • ✓Şubat 2015'te kod denetiminden (gizli ve normal modu için) geçen Telegram'a gereken notu verdik ( ✓ ).
  • 29-01-2015:
    • Taşıma sırasında mesajları şifrelediği için QQ'ya gereken notu verdik ( ✓ ). QQ, en iyi uygulama yöntemi olarak görülen TLS/SSL'i kullanmamasına rağmen, taşıma sırasında mesajların şifrelenmesi için özel bir protokol kullanmaya başladı.
    • İletme gizliliğiyle ilgili skor verme yöntemimizi netleştirdik (4 numaralı kriter).
  • 05-01-2015:
    • Telegram'a verdiğimiz skoru iki satıra ayırdık: Temel Telegram ve Telegram gizli sohbetler (secret chats). Temel Telegram sohbetleri, servis sağlayıcısının okuyamayacağı bir şekilde uçtan uca şifreli değil. (✘ ).
    • ). Telegram gizli sohbetleri, Telegram'a ek olarak mükemmel iletme özelliğini destekleyerekmesajlarınızın güvenli bir şekilde silinmesine olanak sağlar (✓ )
    • Wickr, anahtar parmak izlerini açığa çıkarma özelliğini getirerek, kişi listesindeki kimliklerin doğruluğunu sağlamaya olanak tanımaya başladı. Bu doğrulama bant dışı veya bant içi yapılabilir. (✓)
  • 14-11-2014:
    • RIM, BlackBerry Messenger Protected'ın kimlik doğrulaması için bant dışı şifre değiş tokuşunuve EC-SPEKE'yi kullandığını bize iletti. (✓) RIM bize ayrıca BBM Protected'ın dahili bir güvenlik ekibi tarafından güvenlik incelemelerinin yapıldığını söyledi. (✓)
    • Viber'ın EY Advanced Security Center tarafından harici güvenlik denetimi yapıldı. (✓)
    • Pidgin, Cisco Talos tarafından yapılmış statik analiz araçlarının sıradan kullanımı ve kontrolüyle ilgili birçok sayıdaki denetim işlemlerini belgeledi. Pidgin geliştiricileri bu denetimlerin ne denli dikkatli ve eksiksiz olduğunu bize belirtmediler ancak yine de bu denetimler bizim kriterlerimize uyuyor. (✓) Pidgin'in denetimi, Pidgin'le ilişkili Adium projesinin güvenliğini arttırıyor olsa da (iki proje de libpurple, libotr ve libxml2 gibi birçok bileşeni ortaklaşa kullanıyor), Adium geliştiricileri, geliştiricilerin kendileri tarafından yapılmış sıradan bir statik analizin dışında Adium'a özel kodun denetimiyle ilgili bağımsız bir incelemeden haberdar olmadıklarını belirttiler. Proje bu yüzden şu an için bizden denetim onayını almayacak.
  • 10-11-2014: Skype'ın uçtan uca şifreleme onay imi kaldırıldı. (✘)
  • 04-11-2014: Snapchat'in denetimleri dahili bir güvenlik ekibi tarafından gerçekleştiriliyor. (✓)