Tag Archives: openssl

Twister

Twitter sık sık erişeme engelleniyor mu? Twitter hesapları takip mi ediliyor? Twitter’a erişemezsek ne mi olacak? Bu soruların cevaplarını Twister’da bulabiliriz.

Twister; Miguel Freitas tarafından yazılmış ve merkezsizleştirilmiş özgür yazılım olan bir P2P mikroblog platformudur. Platform bağımsızdır. GNU/Linux, Windows, Android ve Mac OS için kurup kullanabilirsiniz. Bittorrent ve Bitcoin benzeri bir yapıda çalışmaktadır. Merkezsizleştirilmiş olması kimsenin erişime engelleyemeyeceği, sansürleyemeyeceği ve ifade özgürlüğünü elinizden alamayacağı anlamına gelmektedir. Bununla birlikte, noktadan noktaya şifreleme kullandığı için iletişim (tüm iletişim değil, özel mesaj) gizlice izlenemez. IP kaydınız tutulmaz. Ayrıca, açık kaynak ve ücretsizdir.

Twister nasıl çalışıyor?
Twister; 3 katmandan oluşan bir ağ yapısına sahiptir. Birinci katmanda kullanıcı hesaplarının oluşturulması ve doğrulanması için Bitcoin protokolü kullanılır. Aslında bu tamamen Bitcoin protokolünün kullanılmasından ziyade blok zincirini ifade eder. Bu da şu demektir; blok zincirleri noter görevi görürler ve oluşturulan kullanıcı adının kime ait olduğu ve hangi anahtar çiftine sahip olduğunu onaylarlar. Twister’da doğrulama ve şifrelemeyi oluşturan nokta burasıdır. İkinci katmanda DHT protokolü bulunmaktadır. DHT, üçüncü katman için istemcilerde kullanıcı kaynakları olarak anahtar/değer ve tracker konumlarını barındırır. Son katmanda ise birbirlerini takip eden kullanıcılar için Bittorrent yapısına dayanan bir bildirim (girdiler, uyarılar, cevaplar vs gibi) sistemi vardır. Daha detaylı bilgiye Miguel Freitas yazdığı makaleden ulaşabilirsiniz.

Kurulum
Kurulum GNU/Linux içindir ve oldukça basittir. Diğer sistemler için lütfen buraya bakın. İlk olarak terminali açalım ve derleme için gerekli paketleri kuralım:

sudo apt-get (pacman -S, emerge -av vs) openssl db boost miniupnpc

Daha sonra Twister çekirdeğini kuralım:

kame ~ $ git clone https://github.com/miguelfreitas/twister-core
kame ~ $ cd twister-core
kame ~ $ ./bootstrap.sh
kame ~ $ ./configure --enable-logging --enable-debug
kame ~ $ make
kame ~ $ sudo make install

Son olarak Twister için HTML kullanıcı arayüzünü kuralım:

kame ~ $ mkdir .twister
kame ~ $ cd .twister
kame ~ $ git clone https://github.com/miguelfreitas/twister-html.git html/

Çalıştırma
Kurulum sorunsuz bir şekilde tamamlandıysa aşağıdaki komut satırını herhangi bir değişiklik yapmadan çalıştırıyoruz:

kame ~ $ ./twisterd -daemon -rpcuser=user -rpcpassword=pwd -rpcallowip=127.0.0.1

Adres: http://127.0.0.1:28332/home.html

Blok zincirleri eski olduğu için bir süreliğine güncelleştirme yapacaktır. Ağ durumuna Network sayfasından bakabilirsiniz.

twister network

Görüldüğü üzere blok zinciri güncel ve Twister kullanılmaya hazır. Bu sayfanın alt kısmında tıpkı Bitcoin’de olduğu gibi madencilik yapabilirsiniz. Madenciliğin ne gibi bir katkısı var? Blok zincirlerinin zorluk derecesi arttıkça daha yüksek bir güvenlik sağlanıyor ve ne kadar çok kişi madencilik yaparsa o kadar çok yeni zincir oluşturularak kullanıcıların zincirlere kayıt süresi azalıyor. Güncelleştirme tamamlandıktan sonra Login sayfasından yeni bir kullanıcı oluşturabilirsiniz.

twister login

Kullanıcı oluşturduğunuzda kullanıcı adınıza ait ve saklamanız gereken bir adet anahtar da oluşturulacaktır. Böylece farklı sistemlerde veya cihazlarda Twister kullandığınızda kendi hesabınızı bu anahtar ile aktarabileceksiniz. Profil sayfasında profil fotoğrafı, mekan, website adresi gibi profilinize ait bilgileri girip kaydedeceksiniz. Burada dikkat etmeniz gereken kayıt bağlantısının belirli bir süre aktif olmamasıdır. Çünkü, blok zincirine kayıt olunması biraz zaman alıyor. Kullanıcı adınızı oluşturduktan sonra belirli bir süre bekleyin.

twister profil

Kullanıcı kaydı da gerçekleştirildikten sonra artık siz de mikrobloglama başlayabilirsiniz.

twister profil2

Twister’la ilgili bilemeniz gereken bir kaç nokta var. Bunları sıralayacak olursak:

  • Twister’ın yapısı gereği sizleri takip eden kullanıcıları göremiyorsunuz. Ama takip ettiğiniz kullanıcılar görülmektedir.
  • Kullanıcı adınız için oluşturulan anahtarı kaybederseniz kullanıcı adınızı geri alma şansınız kalmaz.
  • Unutulmaması gereken nokta da Internet trafiğiniz gözetim altında ise Twister sizlere gizlilik sağlayamaz.
  • Twister, secp256k1 adında Bitcoin ile aynı eliptik eğri parametresini kullanmaktadır. NSA’in sec256r1 parametresini kırdığı biliniyor. Fakat, aynı durum Bitcoin ve Twister’da kullanılan parametre için -şimdilik- geçerli değildir.

Son olarak, Twister Türkçe dile de sahiptir. Daha çok ilgi görmeyi hakediyor ve özellikle engellemeler yüzünden gittikçe yalama olan Twitter gibi platformlar yerine tercih edilebilir. Bir diğer durum da Twitter kullanıcılarının ifade özgürlüğü haklarını mahkemelerde savunsa da, NSA ve PRISM ile işbirliği yapmasa da ifade özgürlüğünü bir şirketin eline bırakmak yanlış olacaktır. Bu yüzden bireylerin Twistter gibi uygulamalara önem vermeleri ve desteklemeleri gerekmektedir.

Tagged , , , , , , , , , , , , , , , , , , , ,

Heartbleed

SSL/TSL protokolü Internet üzerinde web sunucuları, tarayıcılar, e-posta, anlık mesajlaşma araçları ve VPN gibi uygulamaların şifreli bir şekilde haberleşmeleri için geliştirilmiştir. Temel amacı gizlilik ve güvenlik sağlamaktır. Açık ve gizli anahtara sahiptir. Açık anahtar ile şifrelenen veri gizli anahtar tarafından çözülür. Böylece iletilen verinin şifresinin doğru adreste ve doğru alıcı tarafından çözülmesi sağlanır. İşleyiş yapısına Wiki‘den (Türkçe) bakalabilirsiniz. Kısaca anlatacak olursak:

  • Ali -> Selam -> Ayşe diye bir mesaj yolladı. Bu mesaj desteklenen en yüksek TSL protokolü, rastgele bir sayı, doğrulama, şifreleme, mesaj doğrulama kodu (MAC) içeren şifreleme yöntemi ve bir sıkıştırma yöntemi ile yollandı.
  • Ayşe -> Selam -> Ali diye cevap verdi. Bu cevap da Ali tarafından seçilen TSL protokolü, rastgele sayı, doğrulama, şifreleme, mesaj doğrulama kodu (MAC) içeren şifreleme yöntemi ve sıkıştırma yöntemine uygun olarak verildi.
  • Ayşe -> Sertifika -> Ali mesajı yolladı. Bu mesaj şifreleme yöntemine uygun olarak şeçildi.
  • Ayşe -> SelamTamamlandı -> Ali diye bir mesaj daha yolladı.
  • Ali -> AnahtarDeğişimi -> Ayşe mesajı yolladı. Bu mesaj açık anahtarı (PreMasterSecret veya hiçbir anahtar) içermektedir. Bu değişimle artık üzerinden iletişim kurabilecekleri ortak bir sır belirleyebilecekler.
  • Ali ve Ayşe rastgele sayılar ve anahtar ile doğrulama ve şifrelemede kullanacakları ortak bir sır oluşturdular.
  • Ali -> ŞifrelemeYönteminiDeğiştir -> Ayşe mesajı gönderdi. Bu mesaj “Ayşe, bundan sonra sana göndereceğim her mesaj doğrulanacak ve şifrelenecek.” anlamına gelmektedir.
  • Ali -> Bitti -> Ayşe mesajı gönderdi. Bu mesaj  oluşturulan sır ile doğrulanmış ve şifrelenmiştir.
  • Ayşe Bitti mesajının şifresini çözmek isteyecektir. Eğer, oluşturdukları sıra uygun değilse el sıkışma gerçekleşmeyecektir.
  • Ayşe -> ŞifrelemeYönteminiDeğiştir -> Ali mesajı gönderdi. Bu mesaj da “Ali, bundan sonra sana göndereceğim her mesaj doğrulanacak ve şifrelenecek” anlamına gelmektedir.
  • Ayşe -> Bitti -> Ali mesajı gönderdi. Aynı şekilde oluşturulan sır ile doğrulandı ve şifrelendi.
  • Ali de Bitti mesajının şifresini çözecektir.
  • Son noktada, el sıkışma işlemi tamamlanmış olacaktır.

SSL/TSL’e kısa bir giriş yaptıktan sonra dün Heartbleed adıyla bir OpenSSL hatası keşfedildi. Heartbleed adı ise TSL/DTSL’de olan heartbeat (RFC6520) uzantısındaki hatadan geliyor. Bu hata normal şartlar altında şifreli bir şekilde korunun verinin çalınmasına sebep olabilmektedir. Bununla birlikte, gizli anahtar ile şifreli verinin çözülmesi, kullanıcıların sahip oldukları kullanıcı adı ve şifre gibi içeriklerin elde edilmesi, iletişimin dinlenebilmesi, verilerin servis veya kullanıcılardan hiçbir şekilde farkında olmadan çalınmasına olanak sağlamaktadır. Diğer yandan, yapılabilecek herhangi bir saldırının kolaylığı ve iz bırakmaması kullanıcıları büyük bir risk altına sokmaktadır. Yukarıdaki işleyiş örneğine de bakacak olursanız Ali ile Ayşe arasında geçen şifreli iletişim bu hata yüzünden saldırganların iletişimde kullanılan şifrelere sahip olmalarına ve mesaj içeriğini çok kolay bir şekilde elde edebilmelerine neden olmaktadır.

Nelerin sızmış olabileceğine dair olarak dört kategori oluşturulmuş. Bunlar; birinci anahtarlar, ikincil anahtarlar, şifreli veriler ve hafıza içerikleridir. Kısaca özetlersek; birincil anahtarlar şifreleme için kullanılan açık ve gizli anahtarları içermektedir. Saldırganın servisler tarafından şifrelenen trafiğin arasına girilebileceği, şifreyi çözebileceği, özellikle geçmiş trafiğin hatanın yamalansa bile şifresinin çözülebileceğidir. İkincil anahtarlar, servislerde kullanılan kullanıcı adı ve parola gibi kullanıcı içerikleridir. Şifreli veriler, servislerde tutulan verilerdir. Bunlar iletişime konu olan veriler, e-postalar, belgeler veya şifrelemeye konu olan herhangi bir içerik olabilmektedir.  Hafıza içerikleri de hafıza adreslerinde tutulan teknik detaylar olabildiği gibi çeşitli saldırılara karşı alınan güvenlik önemleri de olabilmektedir.

Ben de etkileniyor muyum?

Malesef etkileniyorsunuz. OpenSSL Internet üzerindeki trafiği şifrelemek üzere en çok kullanılan açık kaynak şifreleme kütüphanesi olduğu için en çok kullanılan sosyal medya siteleri, kurduğunuz SSL içerikli bir uygulama, ağ uygulamaları, hatta devlet siteleri bile gizlilik ve işlemleri (trafik, giriş vs.) korumak adına bu protokolü kullandığı için etkilenmektedir. Bu yüzden sizler de doğrudan veya dolaylı olarak etkilenmektesiniz. Ayrıca, ilk keşfedenlerin bu hatayı bulanlar olmadığını da unutmamalısınız. Hatayı duyuran Codenomicon ve Google‘dan Neel Mehta yaptıkları test saldırılarında durumun çok ciddi olduğunu ve bu açığın çoktan kullanılmış olabileceğini belirtmektedirler.

Hangi OpenSSL sürümleri etkilenmekte?

  • OpenSSL 1.0.1 ve 1.0.1f etkilenmekte,
  • OpenSSL 1.0.1g etkilenmiyor,
  • OpenSSL 1.0.0 etkilenmiyor,
  • OpenSSL 0.9.8 etkilenmiyor.

Hangi GNU/Linux dağıtımları etkilenmekte?

  • Debian Wheezy, (OpenSSL 1.0.1e-2+deb7u4) etkilenmekte,
  • Ubuntu 12.04.4 LTS, (OpenSSL 1.0.1-4ubuntu5.11) etkilenmekte,
  • CentOS 6.5, (OpenSSL 1.0.1e-15) etkilenmekte,
  • Fedora 18, (OpenSSL 1.0.1e-4) etkilenmekte,
  • OpenBSD 5.3 (OpenSSL 1.0.1c 10 Mayıs 2012) ve 5.4 (OpenSSL 1.0.1c 10 Mayıs 2012) etkilenmekte,
  • FreeBSD 8.4 (OpenSSL 1.0.1e) ve 9.1 (OpenSSL 1.0.1c) etkilenmekte,
  • NetBSD 5.0.2 (OpenSSL 1.0.1e) etkilenmekte,
  • OpenSUSE 12.2 (OpenSSL 1.0.1c) etkilenmekte.

Ne yapmalı?

Servis tarafını ilgilendiren duruma biz herhangi bir şey yapamıyoruz. Sadece, onların SSL sertifikalarını güncellemelerini bekleyeceğiz. Ardından, bir önlem olarak kullandığımız parolalarımızı değiştireceğiz. Bununla birlikte, bizi ilgilendiren tarafta ise ilk olarak dağıtımlarınızda kurulu olan OpenSSL paketinin sürümünü kontrol edin. Kontrol ettiğimde bende yüklü olan 1.0.1f olan sürümü 1.0.1g‘ye düşürüldü. Eğer, bu açıktan etkilenen bir sürüme sahipseniz ilk iş olarak etkilenmeyen sürümlere geçin. Muhtemelen, bir güncelleme çıkmıştır.

Tagged , , , , , , , , , , , , , ,