(Johns Hopkins’te öğretim üyesi olan Matthew Green’in 5 Eylül 2013’de yayınladığı bu blog yazısını kaldırması istenmişti)
Yılın en büyük kripto haberine naçizane katkımı anlatayım müsaadenizle.
Birkaç hafta önce ProPublica‘dan muhabir beni aradı ve şifreleme [encryption] (1) hakkında genel sorular sordu. Bunun tuhaf bir görüşme olacağını hemen anladım, çünkü bu bey NSA’in şifrelemeyi [encryption] yenebilecek muazzam yetenekleri olduğuna ikna olmuşa benziyordu. Ve ‘hey ahbap ne dersin NSA’in şifrelemeyi [encryption] yenebilecek muazzam yetenekleri var mı ha?’ tarzında değildi bu. Hayır, yenilgiyi çoktan kabullenmişti. Sadece detayların pazarlığını yapıyorduk.
Tuhaflık bir yana (kısa da olsa) eğlenceli bir konuşmaydı, çoğunlukla hipotezler üzerine. NSA bunu yapabiliyorduysa, nasıl yapabilirdi? Etkisi ne olurdu? Kabul etmem gerekir ki bu noktada en büyük dertlerimden biri takıntılı biri olarak gözükmemekti. Ne de olsa NSA komplo teorici çatlaklara fazlaca benzeyecek konuşmalarım aktarılsa iş arkadaşlarım bana gülerdi. O zaman belki havalı güvenlik partilerine davet edilmeyebilirdim.
Bütün bunları şu yüzden anlatıyorum: Bugün bomba gibi düşerek NSA’in şifrelemeyi [encryption] yenme çabalarını açıklayan sızıntılar karşısında tamamen hazırlıksızdım. Hesaba kattığım hipotezlerin en kötüsü doğru çıkmanın ötesinde, aklıma hayalime gelmeyecek ölçeklerde doğrulanıyordu. Artık takıntılı falan değildim. Takıntının yanına bile yaklaşamamıştım.
Ve NYT/ProPublica haberinin kaynak gösterdiği belgeleri görme imkanı bulamadığım için –ki onları görmek için neler vermezdim– bu eksikliği tamamen spekülasyonla doldurmakta kararlıyım. İşte bu blog yazısı tam olarak bu olacak.
‘Bullrun’ ve ‘Dandik İsim’
ProPublica/NYT veya Guardian‘ın haberlerini okumadıysanız, muhtemelen okumanız lazım. Uzun geldiği için okuyamadıysanız, özetle: NSA çok kötü şeyler yapıyormuş. Yılda toplam 250 milyon $ maliyetle şunlar dahil:
- Kriptografinin zayıf ya da kırılgan olması için ulusal standartların kurcalanması (özellikle NIST‘ten bahsediliyor).
- Protokollerin zayıflatılması için standart komiteleri üzerinde nüfuz kullanılması.
- Şifrelemeyi [encryption] ve rastgele sayı üreteçlerini zayıflatmak için donanım ve yazılım sağlayıcılarla işbirliği yapılması.
- ‘Yeni nesil 4G telefonlar‘ için kullanılan şifrelemeye [encryption] saldırılması.
- ‘Büyük bir internet peer-to-peer ses ve metin iletişim sisteminden’ (Skype?) açık metin erişimi sağlanması.
- Kırılgan anahtarların tespit edilerek kırılması.
- Küresel telekomünikasyon sektörüne sızmak üzere İnsan İstihbarat birimi kurulması.
- Ve hepsinden kötüsü (bence): SSL bağlantıların şifrelerinin bir şekilde çözülmesi [decrypt].
Bütün bu programlar farklı kod adlarıyla anılıyor, ama NSA’in şifre çözme [decryption] programı ‘Bullrun’ ismiyle geçtiğinden burada bu ismi kullanacağım.
Kriptografik bir sistem nasıl kırılır
Kısa bir blog yazısına göre çok fazla şey var, o yüzden birkaç genel fikirle başlayacağım. Bu blogun okurları bilir, kriptografik bir sistemi kırmanın temelde üç yolu vardır. Rastgele sıralarsak şunlardır:
- Kriptografiye saldırmak. Kullandığımız standart algoritmalar karşısında bu zordur ve etkili olması pek muhtemel değildir (RC4 gibi istisnalar dışında). Ancak kriptografide birçok karmaşık protokol vardır ve bazen bunlar kırılgan olabilirler.
- Altyapıyı hedef almak. Kriptografi hemen hemen her zaman yazılım altyapısına dayanır -ve yazılım bir faciadır. Donanım da ondan çok iyi değildir. Etkin yazılım istismarları maalesef sadece hedefli saldırılarda işinize yarar. Amacınız kitlesel gözetimse inşa edilen sisteme güvensizliği daha en başından dahil etmeniz lazımdır. Yani sağlayıcılarla anlaşarak arka kapılar ekletmeniz lazımdır.
- İnsansal tarafa erişim. Anahtarı vermesini sağlayabiliyorsanız bilgisayarını hack’lemeye ne gerek var?
Bruce Schneider, belgeleri görmüş olarak diyor ki ‘matematik iyi‘, ama ‘kodları bozmuşlar‘. Ayrıca NSA ‘hile yapıyor‘muş. Belgelere güvenebileceğimizi varsayarsak, bu içimizi rahatlatan bir haber. Ama bu aynı zamanda bol bol (2) ve (3) göreceğimiz anlamına geliyor.
O zaman hangi koda dair kaygı duymalıyız? Hangi donanım?
Sorabileceğimiz en yerinde soru heralde bu. Ticari şifreleme [encryption] kodlarından bahsediyorsak, bunların hepsinin aslan payı toplamda birkaç kütüphane kullanır. Bunların en yaygın olanları muhtemelen Microsoft CryptoAPI (ve Microsoft SChannel) ve OpenSSL kütüphanesidir. Yukarıdaki kütüphaneler arasında en çok şüphe çeken muhtemelen Microsoft oluyor. Microsoft’un algoritmaları iyi (ve paranoyak!) insanların elinden geçiyorsa bile ekosistemleri bilindiği gibi baştan aşağı kapalı kaynaklıdır. Microsoft’un kodunu (yeterince lisans anlaşması imzalarsanız) görmeniz mümkündür ama o kodu asla kendiniz derleyemezsiniz. Ayrıca pazarda payları var. Şifreleme [encryption] sistemlerini zayıflatanlar ticari sağlayıcılarsa, bunlardan en olağan şüpheli heralde Microsoft’tur.
Ve bu bir sorun, çünkü İnternet üzerindeki web sunucularının yaklaşık %20’si -ve SSL sunucuların yaklaşık yüzde kırkı!- Microsoft IIS kullanıyor. Dahası, Windows’da çalışan üçüncü-taraf şifreleme [encryption] programları bile, rastgele sayı üreteçleri dahil olmak üzere genelde CAPI bileşenlerine dayanıyor. Yani bu programlar bir anlamda Microsoft’un insafına kalmış oluyor.
En muhtemel ikinci adayımız OpenSSL. Açık kaynaklı ve ortaklaşa geliştirilen OpenSSL gibi bir kütüphanenin kırılgan olabileceğini ima etmem sapkınlık gibi gelebilir. Ama muazzam miktarda İnternet trafiğinin güvenliği bu yolla sağlanıyor. Sadece Apache SSL‘in egemenliği nedeniyle değil, OpenSSL’in her yerde kullanılıyor olması nedeniyle. Birçok ‘ticari’ şifreleme [encryption] ürününün OpenSSL etrafında ince bir ambalaj olduğunu fark etmek için FIPS SMVP doğrulama listelerine bir bakmanız yetecektir.
OpenSSL açık kaynaklı olmasına rağmen maalesef belirli aralıklarla kırılganlıklar tükürmekte. Bunun bir sebebi, yamalı bohça bir kabus olması, ki ilk halini geliştiren programcı açısından Bignum division (2) öğrenmesinin eğlenceli bir yoluydu. Diğer sebebi ise crypto’nun inanılmaz karmaşıklığı. Sonuç itibariyle, çok az kişi kodların tamamını anlayabiliyor.
Donanım tarafındaysa (hazır asılsız suçlamalara başlamışken) yakında bütün Intel işlemcilere eklenecek olan Intel Güvenli Anahtar ve ona bağlı rastgele sayı üreteçlerine tekrar göz atmak korkunç yararlı olacak. Sorun olmasa bile bugünkü haberden sonra bunları uluslararası çapta satmak korkunç zor bir iş olacaktır.
Hangi standartlar?
Bana sorarsanız bugünkü sızıntının en ilginç ve en endişe verici kısmı heralde budur. Yazılımlar tamam hep bozuktur, ama standartları -teoride- herkes tarafından okunuyor. Bir standardı kimseye fark ettirmeden zayıflatmanın aşırı zor bir iş olması gerekir. Ama Guardian ve NYT haberlerinde NSA’in standartları zayıflattığına dair çok kesin iddialar var.
Guardian özellikle Ulusal Standartlar ve Teknoloji Enstitüsü‘nü (NIST) ve 2006’da yayınladıkları bir standardı işaret ediyor. Kriptografların NIST hakkında hep karmaşık duyguları olmuştur ve bunun en büyük nedeni NIST’in NSA’le olan karmaşık ilişkisidir.
Mesele şu: NSA görünüşte hem savunmacı hem saldırgan misyonlar taşıyor. Savunmacı misyon oldukça basit: ABD bilgi sistemlerinin faka basmamasını garanti altına almak. Bu misyonun önemli bir kısmı NIST ile verimli bir işbirliği içerisinde gerçekleşiyor ve bu yolla Federal Bilgi İşlem Standartları (FIPS) ve NIST Özel Yayınları gibi güvenlik standartlarının desteklenmesi sağlanıyor.
Kriptografların NIST hakkında karmaşık duyguları vardır demiştim, çünkü hepimiz biliriz ki NSA’in NIST’i isterse iyiye isterse kötüye kullanma gücü vardır. Bugüne kadar, zaman zaman yaşanan arızalara -ve NIST kriptografik standartlarından bir tanesinde arka kapı olabileceğine dair ilginç kanıtlara– rağmen, kötü niyeti gösteren kesin kanıtlarımız yoktu. Ama şimdi belki bu ilişkiyi yeniden gözden geçirmemiz gerekecek. Bu iş ne kadar delice görünürse görünsün.
Maalesef, rastgelemsi [pseudo-random] sayı üreteçlerinden hash işlevlerine ve cipher’lara, hatta SSL/TLS için kullandığımız özel eliptik eğrilere kadar, NIST’e fazlasıyla bağlıyız. Bu bileşenlerin herhangi birinde arka kapı bulunma ihtimali uzak görünse de, güven ihlal edilmiştir. Bunu bertaraf etmek akıl almaz bir kabus olacak.
Hangi insanlar?
Muhtemelen bütün bunların içinde en büyük dert, NSA ve belirtilmemiş ‘telekom sağlayıcılar’ arasındaki işbirliğinin kanıtları. ABD’nin (ve uluslararası) büyük telekom taşıyıcılarının fiberoptik kablolarından NSA’in veri toplaması için rutin destek verdiklerini zaten biliyoruz. Ama bu veriler şifreliyse [encrypted] hiçbir işe yaramaz.
Yazılımdan verilen tavizler ve zayıf standartlar NSA’in işlerini halletmesini kolaylaştırabilse dahi, şifreli [encrypted] verilere erişmenin bilinen en kolay yolu anahtarları istemektir -veya çalmaktır. Hücresel şifreleme gibi basit (her taşıyıcıda tek bir anahtar veritabanı ile korunan) şeylerden, görece kısa birkaç RSA anahtarıyla korunan SSL/TLS’e kadar bu durum böyledir.
Google, Facebook, Yahoo gibi dijital çevrimiçi hizmetlerin çoğuna evsahipliği yapan ulus olarak iyi ve kötü olan bir durum, bütün bu önemli anahtarların burada ABD topraklarında bulunması. Bununla birlikte, bu hizmetlerle iletişim kuran insanlar -yani ‘hedefler’- belki yabancıdırlar. Veya ABD vatandaşıdırlar. Veya kim olduklarını bilmeyerek bütün trafiklerini toplayıp şifrelerini kaldırıp [decrypt] anahtar kelimelerini aratırsın.
Bu demek oluyor ki NSA ve GCHQ, tamamen tesadüfi olarak, ya doğrudan Sertifika Yetki anahtarlarına (3) erişiyor, ya da ABD’li sağlayıcılardan gidip anahtarları çalıyor ve mümkündür (veya muhtemeldir) ki müdürleri de bunu bilmiyor. Bu işler için sadece sunuculara fiziki veya elektronik erişimi olan az sayıda kişiye ihtiyaç var, yani oldukça uygulanabilir (4). Birkaç gün önce bu işleri hesaba katmıyorduysam bunun tek sebebi, böyle bir şeyin yasadışı değilse bile basbayağı ahlaksızca gözükmesi ve dahası NSA’in PRISM gibi programlarla belirli kullanıcıların verilerine ulaşabilmek için güya uyması gereken denetim ve dengelere devasa bir tehdit oluşturmasıydı.
Bence bu programın varlığı muhtemelen bugünkü bütün haberlerin en beklenmedik parçasıydı. Bir anlamda en üzücü parçasıydı.
Peki bütün bunlar ne demek?
Keşke bilseydim diyebiliyorum. Bir yandan, ya bütün güvenlik sektörü olarak birkaç gün bunları konuşup sonra hep birlikte normal yaşantımıza dönersek, ya bir daha bunları düşünmezsek diye endişeliyim. Umarım böyle olmaz tabi. Şu anda olayları kendi haline bırakamayacağımız kadar çok cevapsız soru var.
Yakın vadede en olası etki, güvenlik sektörüne çok daha az güven duyulması olacaktır. Ve ABD ve ihraç ettiği yazılımlara çok daha az güven duyulacak. Belki bu iyi bir şeydir. Kapalı kod ve desteklenmeyen standartlara güvenilmemesi gerektiğini yıllardır söylüyoruz: artık insanların doğrulaması gerekecek.
Daha iyisi, açığa çıkan bu bilgiler, bir dizi yeni araştırma başlamasını ve yeni kriptografik yazılımlar tasarlanmasını tetikleyebilir. OpenSSL gibi açık kodların dahi daha uzman ellerden geçmesi gerektiğini söylüyorduk. Ne yazık ki bu konuya fazla ilgi olmadı çünkü alanımızdaki akıllı araştırmacılar bu sorunları nedense ‘çözülmüş’ sayıyor ve ilginç bulmuyorlar.
İşte bugün öğrendik, bayağı bayağı çözülmüşler. Tabi bizim sandığımız gibi değil.
Notlar:
1: [ÇN] “encryption/decryption” terimlerini şifreleme diye çevirdim, ama her seferinde [encryption] [decryption] diye belirtme gereği duydum, bu terimlerin encipherment/decipherment ile karıştırılmaması için.
2: Bu yazının ilk halinde Eric Young’ın C öğrenmek üzere OpenSSL yazdığına dair (güvenilir bir kaynaktan!) duyduğum bir öyküyü aktarmıştım. Aslında C değil Bignum division öğrenmek için yazmış, ki bu çok daha havalı! Kusura bakma Eric!
3: Yazının ilk halinde Sertifika Yetkisi yolundan bahsetmemişim, gözümden kaçmış -bu noktayı gösterdiği için Kenny Patterson’a teşekkürler- ama ben hala (aktif olarak ortacı saldırısı yapmayı gerektirmeyen) pasif kulakmisafirliği için bunun daha az uygulanabilir bir saldırı olduğunu düşünüyorum. Ve burada yapılan kulakmisafirliğinin çoğu pasif gibi gözüküyor.
4: Google burada önemli bir istisna, çünkü birçok bağlantısında Mükemmel İleri Gizlilik uyguluyor, böylece anahtar hırsızlığı burada işe yaramaz. Bunu aşmak için NSA’in yazılımı bozması veya şifrelemeyi [encryption] başka bir yolla kırması gerekir.
Yazar hakkında
Matthew Green: Kriptograf, Johns Hopkins Üniversitesinde araştırmacı profesör. Kablosuz ağlar, ödeme sistemleri ve dijital içerik koruma platformlarında kullanılmak üzere kriptografik sistemler tasarladım ve analiz ettim. Araştırmamda kriptografinin kullanıcı gizliliğini desteklemek için kullanılma yollarına bakıyorum.
(Çeviren: Işık Barış Fidaner)