Category Archives: Güvenlik

Yeni 5651 ve Sansürün İşleyişi

5651 yumuşatılarak geçmişken Internet sansürünün Türkiye’deki yumuşak yerine bir bakalım.

5651 sayılı Internet Ortamında Yapılan Yayınların Düzenlenmesi ve Bu Yayınlar Yoluyla İşlenen Suçlarla Mücadele Edilmesi Hakkında Kanun sözde yumuşatılarak meclisten geçti. Bizleri ilerleyen süreçte neler bekliyor, Türkiye’nin sansür konusunda dünyadaki yeri nedir, 5651 sayılı kanun sonrası ne olur, dünyada sansürlenen içeriklerin dağılımı ve bizdeki yansımaları ne olur tüm bunları merak etmekteyiz. İlk olarak, Türkiye’nin dünya Internet sansürü haritasında nerede yer aldığına bir bakalım.

Internet_Censorship_World_Map_suggestedYukarıda gördüğünüz harita 2013 yılı dünya sansür haritasıdır. Haritanın kaynağı için buraya bakabilirsiniz. Ek olarak, diğer haritalar yerine renkleri için bu haritayı seçtim. Renklerin ifade ettiklerine gelirsek; radikal, oldukça, seçici, gözetim altında, düşük (ya da yok) ve veri yok şeklindedir. Haritaya Türkiye’de seçici bir sansür olduğu işlenmiştir. Bununla ilgili de hatırlarsanız çeşitli kelimelerin (haydar, mini etek, liseli vs.) filtrelendiği ve bunun üzerinden de sitelere erişimin yasaklandığını, TİB’in ise 2014 yılı itibariyle (muhtemelen bahsettikleri sistemin otomatik olarak engellediği siteler) 35702 siteyi, Türkiye’de ise toplamda 40124 sitenin engellediğini biliyoruz. Fakat, 5651 sayılı kanun ile muhtemelen 2014 yılında Türkiye’de sansür oldukça veya radikal olarak renklendirilebilir bir hale gelebilir.

sansürlenen içeriklerİkinci olarak, bizleri ilgilendiren diğer bir nokta dünyada sansürlenen içeriklerin ne olduğudur. Bu konundaki yüzdesel dağılım (birincil kaynak: opennet initiative) yukarıda görüldüğü gibidir. Yoğunluğun bloglar ve siyasi partilerde olması -bence- çok önemli bir noktadır. Özellikle 5651 sayılı kanun ile Türkiye açısından değerlendirdiğimizde, ilerleyen süreçte muhalefet partilerine ve bloglara, ardından bağımsız basına doğru çok ciddi bir sansür dalgasının yayılabileceğini (bu kısmı benim öngörüm olarak alırsanız memnun olurum) söyleyebiliriz.

sansür işleyişiYeni 5651 sayılı Internet Ortamında Yapılan Yayınların Düzenlenmesi ve Bu Yayınlar Yoluyla İşlenen Suçlarla Mücadele Edilmesi Hakkında Kanun‘un içeriğini yukarıdaki sansür işleyişi şeması üzerinden anlatalım. Devlet, yasal düzenlemelerin yanında İSS’larını direkt olarak kontrol edebilmek için tüzüğünü kendi onayladığı Erişim Sağlayıcıları Birliği adında bir birliğe üye olmaya zorlamaktadır. Bununla birlikte, bu birliğe üye olmayan servis sağlayıcıların faaliyette bulunamayacaklarını da ayrıca belirtmektedir. Böylece, erişim engelleri ve veri takibi (phorm, dpi vs.) taleplerinin bu birliğe yapılacağı, bunun bir sonucu olarak da taleplerin İSS’lere de yapılmış varsayılacağı söylenmektedir. Kısaca devlet, Erişim Sağlayıcıları Birliği ile İSS’leri direkt olarak kontrol edebileceği bir yapıya kavuşturmaktadır.

Ayrıca, yapılan erişim engelleri ve veri takibi için yasal bir koruma kalkanı da mevcuttur. Bu koruma kalkanına göre; “TİB Başkanlığı personelinin, yaptıkları görevin niteliğinden doğan veya görevin yerine getirilmesi sırasında işledikleri iddia olunan suçlardan dolayı haklarında ceza soruşturması açılmasına TİB Başkanı için ilgili Ulaştırma Denizcilik ve Haberleşme Bakanı, diğer personel için ise Bilgi Teknolojileri ve İletişim Kurumu Başkanı’nın izni aranacak.” Bunu yukarıdaki veri takibi araçları ile ilişkilendirirsek sonucun ne kadar vahim bir boyutta olduğu çok net görebiliriz. Yani devlet, veri takibi için İSS’leri kontrol altında tuttuğu bir yapı içinde olmaya ve bu takipler sonucu doğabilecek suçların soruşturulması için de kendinden izin almaya zorluyor. Kısaca, beni bana şikayet edin demektedir.

Bir diğer nokta, yer sağlayıcıların (hosting firmaları) yasal düzenleme ile trafik kayıtlarını saklama süresi en az 6 ay en fazla 2 yıl olacak şekildedir. 5651 sayılı kanun TİB (MİT kökenli Ahmet Çelik) başkanına sansür için doğrudan yetki vererek -sözde- kanuna aykırı (örneğin, kişilik hakları bahanesi ile) fakat herhangi bir içeriğe erişim 4 saat içinde engellenebilecek (24 saat içinde mahke karar verecek) ve yer sağlayıcı kendisine bildirilen içeriği derhal çıkartmak zorunda kalacaktır. Gayri hukuki talepler ise tam bu noktada devreye girmektedir. Kendisiyle ilgili yapılan eleştiriden memnun olmayan bir “bakan” içerik hukuka uygun olsa bile (örneğin, özel hayatı bahane ederek) erişimi engelleyebilme yolu açılmış olacaktır. Burada sadece bakanla sınırlamamak gerekir. İktidar, kendisini eleştiren tüm içeriklere ve bu içeriklerin birçoğu hukuka uygun olsa bile (örneğin, özel hayatı tekrar bahane ederek), erişime engelleyebilecektir. Diğer yandan, kayıt bilgilerinin nerede tutulduğu bu noktada çok önemli değildir. Kayıtların uzun süre tutulması ve istendiği takdirde (hukuka uygun olsa bile) devlete verilecek olması asıl problemdir. Fakat, Ulaştırma Bakanı Lütfi Elvan, “kayıtlar devlette tutulmayacakdiyerek insanları yanlış yönlendirmektedir. Kendisine tabi yaptığı sağlayıcılar, istendiği takdirde tüm kayıtları vermek mecburiyetindedir.

Devlet, içerik kaldırma ve kullanıcıya ait veri taleplerini içerik sağlayıcılarından istemekteydi. Fakat, bununla ilgili olarak her zaman istediği sonucu alamamakta bazen de reddedilmekteydi. Artık, içerik kaldırma ya da veri talebi ile uğraşmak yerine IP ve URL bazlı engelleme getirerek, kuracağı birlik üzerinden İSS’lerin hizmetlere erişimi engellemesini sağlayacaktır. Bu şu demek oluyor; örneğin, Twitter’ın (https://twitter.com) tamamen erişime engellenmesi yerine Twitter kullanıcılarından herhangi birinin (https://twitter.com/songuncelleme) içeriğinin erişime engellenmesi veya tamamen erişime engellenen bir sitenin DNS (VPN veya proxy hariç) değiştirilse bile erişilememesidir. Böylece, devlet yapmış olduğu erişim engeli ya da veri isteği taleplerinde reddedilse bile içeriğe ya da tamamen yer sağlayıcıya erişimi engelleyebilecektir.

Yukarıda anlattıklarımı en basit şekliyle bir kolunu şemaya uygun olarak kısaca tekrar anlatayım. Devlet, yasal bir düzenleme ile İSS’leri oluşturacağı birliğe üye yapmaya mecbur ederek İSS’lerin direkt kontrolünü sağlar. Böylece veri takibi ve erişim engelini de kendine yani tekele yükler. Bu da içeriğin kaldırılmasından engellenmesine, veri takibinden kullanıcının Internetteki hareketlerinin izlenmesine kadar çok geniş çaplı bir alanı kapsar. Tüm bunları toparlayacak olursam, devlet kendi denetiminde ve üyeliği zorunlu tuttuğu bir birlik kurarak Internet’te veri takibi ve erişim engelinin gayri hukuki yolunu açmış, ayrıca bunu yasal bir düzenleme ile yapmıştır. Bununla birlikte, Türkiye’de zaten radikal bir sansür mevcuttur. Bu konuda bir örnek (çoğaltılabilir elbette) göstermem gerekirse, hiç düşünmeden Guillaume Apollinaire Davası diyebilirim. 5651 sayılı kanun ile oluşturulacak yeni birlik ve işleyiş de Internette “seçici” olan sansürü “radikal” sansüre çevirecektir.

Şimdi soruyorum, sizce sansür haritasında 2014 yılı sonu için Türkiye’nin yeni rengi (benim ifademi bunun dışında tutarak) ne olacaktır?

Ekleme (17.01.2014): Bugün t24’te ‘Emniyet ve yargıdaki görevden almaların merkez üssü TİB’ başlıklı bir haber yayımlandı. Haberde TİB’e MİT kökenli Ahmet Çelik’in atanmasından sonra cemaate yakın kamu görevlilerinin listelerine yönelik çalışma başlatıldığı ve teknik takiplerin TİB’in “ana dinleme sistemi” araclığı ile kontrol edildiği söyleniyor. Yazıyla tamamen tutarlı olması açısından önemli bir haberdir.

Ekleme (17.01.2014): Yeni bir haber daha. ‘Dinlemenin merkezi’ TİB’de tüm daire başkanları görevden alındı başklı bu haberde de 5 TİB daire başkanın görevden alındığı ve yerlerine MİT kökenli isimlerin geleceği söylenmiş. Türkiye’yi artık radikal olarak boyayabiliriz.

Ekleme (24.01.2014): Vimeo erişime engellendi.

Ekleme (24.01.2014): Soundcloud erişime engellendi.

Ekleme (27.01.2014): Vagus.tv erişime engelledi. (Özgür basın)

Ekleme (31.01.2014): Bilgi Teknolojileri İletişim Kurumu ile Telekomünikasyon İletişim Başkanlığı, T24‘e CHP’nin soru önergesi haberini yayından kaldırması için tebligat yolladı. Haberin ayrıntıları burada. Özgür basın demiştim değil mi? Buna dolaylı yoldan siyasi partiye ait haber ve içeriği de ekleyebiliriz.

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

DNSCrypt

Veri trafiğini daha iyi şifrelemenin en iyi yollarından biri de DNSCrypt kullanmaktır. Sizleri küresel dinleme ve yapacağınız hatalardan korumayacak ama DNS trafiğiniz şifreli bir hale dönüşecektir.

DNSCrypt kısaca, bir istemci ile DNS çözücü arasındaki iletişimi şifreleyen bir araçtır. Diğer bir deyişle, DNSCrypt proxysi doğrudan yerel çözücü olarak kullanabileceğiniz ya da DNSCrypt protokolü olarak DNS isteklerini gönderen, şifreleyen ve doğrulayan yerel bir servis sağlamaktadır. Bununla birlikte, DNSCrypt yüksek hızlı ve yüksek güvenlikli elliptic-curve kriptosu kullanmakta ve istemci ile birinci-seviye çözücü arasındaki iletişimi korumaya odaklanmaktadır.

DNSCrypt’i bu kadar farklı kılan şeylere bakarsak eğer, SSL nasıl HTTP web trafiğini HTTPS şifreli web trafiğine çeviriyorsa DNSCrypt de sıradan bir DNS trafiğini şifreli DNS trafiğine dönüştürmektedir. Bu da kullanıcıya dinleme ya da man-in-the-middle saldırıları gibi durumlarda koruma sağlamaktadır. Ayrıca, DNSCrypt platform bağımsız bir uygulamadır ve GNU/Linux, Windows ya da iOS (jailbreak şartı var) sistemlerde rahatlıkla kullabilirsiniz. Örneğimiz GNU/Linux üzerinde olacak fakat sizler farklı platformlar için en altta verilmiş bağlantılar üzerinden hareketle gidebilirsiniz.  Bununla birlikte, dağıtımınızın ne olduğunu bilmiyorum. Eğer, kullandığınız dağıtımın depolarında dnscrypt paketi yok ise direkt 2. yönteme bakabilirsiniz.

1. Depodan kurulum

İşlemlerimizi terminal üzerinden root olarak gerçekleştireceğiz. Hemen bir tane açın ve:

kame ~ $ apt-get install dnscrypt-proxy (pacman -S dnscrypt-proxy veya dağıtımınız neyse onun paket yöneticisi ile kurulumu gerçekleştirin.)

Kurulum tamamlandıktan sonra dnscrypt-proxy servisini başlatın. Debian ve türevi dağıtımlarda bu otomatik olarak gerçekleşecektir. Eğer başlamazsa:

kame ~ $ /etc/init.d/dnscrypt-proxy start

systemd kullanan farklı bir dağıtımda:

kame ~ $ systemctl enable dnscrypt-proxy
kame ~ $ systemctl start dnscrypt-proxy

yaparak başlatabilirsiniz.

2. Elle kurulum

Eğer depolarınızda yok ise aşağıdaki adımları gerçekleştirin.

kame ~ $ wget -c http://download.dnscrypt.org/dnscrypt-proxy/dnscrypt-proxy-1.3.3.tar.gz
kame ~ $ tar xzf dnscrypt-proxy-1.3.3.tar.gz
kame ~ $ cd dnscrypt-proxy-1.3.3
kame ~ $ ./configure
kame ~ $ make
kame ~ $ sudo make install

Bu aşamaların herhangi birinde (make install hariç) hata alırsanız mevcut hatayı aratarak eksik kütüphane veya paketleri kurmanız gerekebilir.

3. Kullanım

Kurulum aşamalarını tamamlamış iseniz artık kullanıma geçebiliriz. Statik IP ayarları yaparak kullanımını göstereceğim. Sadece DNS sunucusuna yazarak da kullanabilirsiniz. Seçim size kalmış.

kame ~ $ sudo ifconfig

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.3  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::52e5:49ff:feda:8b5a  prefixlen 64  scopeid 0x20
        ether 50:e5:49:da:8b:5a  txqueuelen 1000  (Ethernet)
        RX packets 345058  bytes 405146897 (386.3 MiB)
        RX errors 0  dropped 8  overruns 0  frame 0
        TX packets 231282  bytes 53324829 (50.8 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Görüldüğü üzere eth0 kullanmış olduğum bağlantım. inet değeri ise bilgisayarımın ip’si. Ağ yöneticiniz NetworkManager veya başka bir şey olabilir. Ağ yöneticinizinde düzenlemek üzerekullandığınız bağlantıyı (eth0, wlan0 vs.) açın (örneğin Edit connections -> Ethernet (eth0) -> Edit -> IPv4 Settings) ve:

Adress: 192.168.1.3
Netmask: 255.255.255.0
Gateway: 192.168.1.1

şeklinde düzenleyin. Son olarak DNS Servers (DNS sunucusu) kısmına 127.0.0.1 yazın, kaydedin ve ağ yöneticinizi tekrar başlatın. 127.0.0.1, bizim yerel DNSCrypt proxymizdir. Bundan sonraki süreçte artık trafiğimiz şifreli bir şekilde akmaya başlayacaktır.

Dikkat etminiz gereken en önemli nokta DNSCrypt erişime engelli siteleri aşmak için bir araç olmadığıdır. Veri trafiğini en iyi şekilde şifrelemeye çalışmakta fakat bu süreçte IP’niz gizlenmiyor, yeriniz değişmiyor, Internete çıkış noktanız farklılık göstermiyor. Bunu kesinlikle aklınızdan çıkarmayın. Diğer platformlar için indirme bağlantıları aşağıdadır:

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

Anonim Hesapların Korunması

Üye olduğunuz bir sitenin hiç Privacy Policy kısmını okuyor ya da sizi yasal süreçte neler bekliyor farkında mısınız? Gelin küçük bir inceleme yapalım.

İddiam şu; hemen hemen hiçbirimiz üye olduğumuz sosyal medya sitelerinin gizlilik politikaları (Privacy Policy) bölümünü okumuyoruz. Okumuyoruz ve eğer bizimle ilgili herhangi bir yasal süreç işlerse, bu noktada üyesi olduğumuz sosyal medya sitelerinin nasıl tepki verebileceğini, bizimle ilgili nerenin/hangi yasalara uygun olarak ifşalarda bulunabileceğini de bilmiyoruz. Diyelim ki, benim (çok kullanılan hesaplardan biri olarak) bir last.fm hesabım var (siz başka sitelerin Privacy Policy kısımlarını inceleyebilirsiniz, iyi de olur.), bununla birlikte bir de anonim kimliğim “X“‘e ait, aktivistlik yaptığım bir Twitter hesabım var. Ayrıca, Twitter daha önce Türkiye hükümetinin yapmış olduğu bilgi paylaşımı isteğini reddettiği için üzerime de bir rahatlık çökmüş durumda.

Öncelikle last.fm’in Privacy Policy sayfasının 16 numaralı, yasal olarak mecbur kalınan ifşalar anlamına gelen “Legally-Compelled Disclosures” bölümüne bakalım:

We believe in privacy and therefore will take all reasonable measures to ensure that your personally identifiable information remains private. However, in the event that we are required to disclose personally identifiable information by a court, the police or other law enforcement bodies for their investigations, regulation or other governmental authority we will make such a disclosure without being in violation of this Policy.

Diyorlar ki, bizler gizliliğe inanıyoruz ve kişisel kimliğinizi saptayabilecek bilginizin gizli kalaması için tüm sorumlulukları alacağız. Fakat, bir olayda bizden kişisel kimliği saptayacabilecek bilginin mahkeme, polis ya da kanun uygulayıcının araştırmaları, düzenlemeleri ya da  devletin diğer bir yetkilisi tarafından istenirse bu politikayı ihlal etmeden bir ifşada bulunuruz. İddiamın olasılığını merak edip last.fm ile iletişime geçtim. Soru olarak da:

Örneğin, ben bir internet akvisitiyim ve ayrıca last.fm hesabım da var. Bir şekilde devlet, Twitter’da yazdıklarım için ifşa edilebilir kişisel bilgilerimi Twitter’dan istedi ve Twitter reddetti. Daha sonra last.fm hesabımı farkettiler (tweet’lerden) ve sizden benim kişisel bilgilerimi istedi. Bu noktada siz ne yaparsınız?

dedim. Sorduğum bu soru için bana 25 Kasım‘da “bunu hukuki olarak kabul ettiklerini ve konuyla ilgili bir araştırma yapacaklarını” söyledir. Tabi tüm bunları söylerken de tam bir açıklama olmadığını, bu açıklama üzerinden hiçbir hak talep edilemeyeceğini ve şirkete çemkirilemeyeceğini de belirttiler. Bunu belirtmezsem ben de last.fm’e ayıp etmiş olurum.

2 gün sonra, 27 Kasım‘da gelen yeni cevapta ise last.fm’in ilgili ülkenin tatbik edilebilir kanunları  ile birlikte “Legally-Compelled Disclosures“‘a uygun olarak yükümlüğünü yerine getireceğini ve bireysel sorunlar üzerine daha fazla yardımcı olamayacaklarını belirttiler. Yani, eğer sizin kişisel bilgileriniz last.fm’in belirttiği doğrultuda (mesela mahkeme kararı, devlet yetkilisinin isteği gibi) istenirse (muhtemelen diyelim biz gene) kanun uygulayıcı ile paylaşılacaktır.

Örnek senaryo; yukarıda bahsettiğim iddiama uygun olarak bir senaryo oluşturayım. Diyelim ki ben anonim kimliği “X” olan bir internet aktivistiyim (aktivist olmanız şart değil). Twitter üzerinde iktidar karşıtı söylemlerde (küfür de ediyor olabilirsiniz) bulunuyorum. Bir yandan last.fm profilimle ilgili bir şeyler paylaşıyorum (tekrar diyeyim last.fm şart değil, sadece bir örnek!). Diğer yandan Hayyam rt’leri yapıyorum (hahah). Eğer, benim hesabımın bir savcı tarafından polise (ya da başkasına) takibinin yapılması için bir istekte bulunulmuşsa polis, önce Twitter’a gidecektir. Twitter, polisi reddeder, işbirliğinde bulunmayacağını, kullanıcı bilgilerini paylaşmayacağını söylerse, polis; bu sefer takip ettiği hesabımın başka hesaplarla ilişkili olup olmadığını inceleyecektir. Çünkü (felix‘e teşekkürler), mecra (Twitter, last.fm vs) farketmeyecek (mecra sadece nerenin savcılığının soruşturacağı noktasında anlamlı), savcılık resen veya şikayet doğrultusunda benim profilimi inceleyip kanun uygulayıcıya vermişse, kanun uygulayıcı incelemesi için önce Twitter’a, sonra eğer ben diğer hesaplarımı burada paylaşmışsam oradan hareketle gidecektir. Bunun bir sonucu olarak, benim anonimliğim tehlikeye girmiş, ayrıca önümde bir yasal süreç olacaktır.

Sonuç, anonim hesaplarınızı ve sizi ifşa edebilecek diğer sosyal medya hesaplarınızı birbirleri ile ilişkilendirmeyin. Anonim kimliğinize ait hesaplarınızla yapmak istediğiniz şey neyse sadece onu yapın. Diğer sosyal medya hesaplarınızı da bu yaklaşımla kullanırsanız, anonim ve gerçek hesaplarınızı birbirinden ayrı tutmada ilerleme kadedersiniz. Bunu sansür olarak da algılamayın lütfen. Diğer sosyal medya hesaplarınızı silmeniz için bir neden olarak da düşünmeyin. Vurgulamak istediğim şey iddiamda da söylediğim üzere kendimizi sosyal medyanın içine atıp orada kayboluyor, başımıza bir şey gelene kadar da üyelik sözleşmesi olsun, gizlilik politikaları olsun hiçbirini okumuyor ve incelemiyoruz. Dikkatli olmakta ve hesapları temiz tutmakta fayda var! Çünkü kullandığınız servis tarafından anonim hesabınıza ait kişisel bilgileriniz paylaşılmasa bile bu hesapta üzerinde paylaştığınız diğer servisler sizin bilgilerinizi ifşa edebilir.

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

Şifreler, Şifreler Ve Şifreler

Basit ve etkili bir şifrelemeden bahsettim fakat bir şifrenin nerede saklandığı, nasıl saklandığı, bu şifrelerin nasıl kırıldığında dair bir yazım yoktu. En azından temel kriptografi bilgisi ve basit bir Hashcat örneği ile bu eksikliği giderebilirim. Yazının eksik kaldığı noktalar elbette vardır ve herhangi bir grubu tatmin etme amacı yoktur. Bu yazı bunun ve bunun derlenmiş halidir.

  • Şifreler nerede saklanıyor?

Veritabanlarında. İlk bakışta dalga geçiyorum gibi gelecek ama durum bu. Unix ve Unix benzeri işletim sistemlerinde şifreler tek bir metin dosyasında, Windows’ta ise binary dosyasında saklanmaktalar. Elbette şifrelerin kriptosuz hallerini herhangi bir metin dosyasında bulundurmak mantıklı değildir. Bu dosyayı eline geçiren bir saldırgan şifrelerinize de sahip olacaktır. Bu nedenden dolayı bütün işletim sistemleri şifreleri bir hash algoritması ile çalıştırır, sonuç olarak veritabanlarında kriptografik hash olarak saklarlar. Bu ise şunu sağlar; eğer bir saldırgan bu veritabanını bir şekilde eline geçirirse, hash olarak saklanmış şifreleri bakarak çözemeyecektir.

Örneğin, GNU/Linux’ta kullanıcı için bir şifre oluşturduğunuz zaman bu şifre sha-512 algoritması ile hashlenerek /etc/shadow dosyası içinde yerini alır (AES ve Rijndael şifrelemesini de ekleyelim). Bu dosyaya baktığımız zaman;

kame:$6$7gNvdbpz$c6fb024a22c4db9101ea1d20596034../:15758:0:99999:7:::

$6 = Sha-512 hash algoritması.
$7gNvdbpz = Salt değeri.
$6fb024a22c4db9101ea1d20596034.. = Şifre.
:15758= Son şifre değişikliği tarihi (gün sayısıdır, başlangıç tarihi 1 Ocak 1970).
:0 = Şifre değişiklikleri arasındaki minimum süre.
:99999 = Şifrenin maksimum geçerlilik süresi (gün sayısıdır).
:7 = Hesap kapatıldıktan sonra şifrenin dolma süresi.

  • Peki hash nedir?

Hash, bir hashing algoritmasının (md5, sha-1, sha-2 vs.) kriptografik çıktısıdır. Bir hashing algoritması açık metin ile şifrelenmiş metin arasında tek yönlü bir dönüşüm sağlar. Bu şu demektir; eğer ben herhangi bir açık metni bir hashing algoritması ile şifrelenmiş metne dönüştürmüşsem, hashing algoritmasını tekrar kullanarak şifrelenmiş metinden açık metne ulaşamayacağım. Herhangi bir hashing algoritması tarafından boyutu standart olmayan bir girdinin şifrelenmiş çıktısı hashing algoritmasına göre eşit uzunluktadır. Diğer bir deyişle, bir e-kitabın boyutu ya da bir filmin boyutu ya da bir metnin boyutu ne olursa olsun, çıktının uzunluğu algoritmaya göre sabittir. Bunun kriptografide önemli olmasının sebebi, eğer bütün algoritmalar kendi türleri içinde aynı uzunlukta çıktıyı verirse, girdinin boyutunu ya da türünü belirlemek mümkün olamaz.

  • Salting, biz buna tuzlama mı desek?

Salting‘in türkçeye nasıl çevrildiğini ya da ne denildiğini bilmiyorum. Nedir noktasına gelirsek eğer, Salt rastgele verilen bir değer olup gizli değildir ve rastgele oluşturulur, şifre hashi ile birlikte saklanır. Büyük boyutlardaki salt değeri önceden hesaplanmış saldırılarını, mesela rainbow tablousu, her şifreyi eşsiz olarak hashleyerek engeller. Yani Ali ile Ayşe, aynı veritabanında saklanan tıpatıp aynı şifrelere sahip olsa bile, salt değerleri ile birbirinden farklı hash değerlerine sahip olacaklar ve bir saldırgan veritabanına erişse bile bu iki kişinin şifresinin aynı olduğunu bilemeyecektir.

Saldırganın başarılı olabilmesi için her salt değerini de ayrı ayrı hesaba katması gerekmektedir. Salting’in kullanılmasının nedeni şifrelerdeki entropi düzeyini arttırmaktır. Bir diğer deyişle, bizlere fazladan koruma sağlar.

Kripto fonksiyonunda iki girdi vardır. Bunlar $salt ve $key’dir, crypt($salt, $anahtar). Eğer salt değerimizin “0Z” ve şifremizin “kame” olduğunu varsayarsak $salt + $şifre;

0Zkame

Artık bu hashlenecek ve şifre veritabanında saklanacaktır. Bu şifrenin eğer bir kullanıcı şifresi olduğunu varsayarsak, /etc/shadow altında hash ile birlikte saklandığını görebiliriz. Örneğin, sisteme giriş yapmak istediğimizde, doğrulama yapmamız gerekecektir. Doğrulama, kullanıcı adı ve şifresi girildiğinde önce salt değerini alacak ve girilen şifre ile birlikte kripto fonksiyonunu çalıştıracaktır. Ardından, eğer şifreniz doğru ise hashler birbirini tutacak ve sisteme girebileceksiniz.

  • Birkaç örnek

En popüler hashing algoritmalarından biri (bugünlerde zayıf olduğu sıkça tekrarlansa da) MD5‘tir. MD5 hashing algoritması 128 bit yani 16 byte’tır. Çıktısı 32 haneli, onaltılı (0,…,9, a,…,f) (hex) sayıdan oluşur. Yani, 2 hex = 1 byte, 16 byte = 128-bit.

kame” dizisini MD5’e dönüştürürsek;

kame ~ % echo -n 'kame' | md5sum | cut -f 1 -d " "
366b18ce0695e44bfc30423b9eb8a793

İçinde sadece “test” yazan “test.txt” dosyasını MD5’e dönüştürürsek;

kame ~ % md5sum test.txt
098f6bcd4621d373cade4e832627b4f6  test.txt

MD5’e göre daha güçlü ve NSA tarafından tasarlanan bir diğer hashing algoritması ise SHA-2‘dir. SHA-2, 224, 256, 386 ve 512 gibi çeşitli bit uzunluklarında 4 farklı seçenek sunar.

kame ~ % echo -n 'kame' | sha256sum | cut -f 1 -d " "
be45d72f76fc702161620f5d5462443cb038fffd5b839d28d5c85dcf3b46cac5

kame ~ % sha256sum test.txt
9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08  test.txt

256/128 = 2 > 32 x 2 = 64! Yani, algoritma, 64 hex haneli hash üretir.

Hashing algoritmaları ayrıca bir veriyi doğrulamak için de kullanılmaktadır. Örneğin, Internet üzerinden indirmek istediğiniz herhangi bir dosya için yayınlayan kişi bu dosyaya ait bir hash bilgisi de vermektedir. Böylece indirdiğiniz dosya ile Internette verilen hashleri karşılaştırıp doğrulama yapabilirsiniz.

Hashlere saldırılar ikiye ayrılmaktadır. Birincisi çevrimiçi saldırılar, yani elinizde kırmak isteyeceğiniz bir hash listesi yoktur, Internet üzerinden bulunan bir uygulama ya da servise, veritabanlarında bulunan hashlerle karşılaştırması için çoklu şifre tahminlerinde bulunursunuz. İkincisi ise çevrimdışı olan saldırılardır. Bunlarda ise elinizde bulunan veya bir yerlerden elde ettiğiniz hash listesini çeşitli saldırı türleri ile kırmaya çalışırsınız. Bu saldırı türlerinden en bilinenleri, bruteforce, rainbow tablosu ve sözlük saldırılarıdır.

  • Bruteforce

Varolan bütün kombinasyonların denenmesi anlamına gelmektedir. Kullanılan karakterlere göre değişmektedir. Örneğin sadece a,z aralığı ya da a,z ve A,Z aralıkları veya A,Z,0,9 aralığı gibi çok çeşitli kombinasyonlar oluşturabilirsiniz. En yavaş yöntem olabilir fakat sadece kombinasyon oluşturmaz. Ayrıca her kombinasyon için hash de oluşturur ve bunları karşılaştırır.

Elbette 4 hanelik bir şifrenin hash’ini kırmak çok uzun sürmez fakat hanesi sayısı artarsa, bunu kırmak için geçecek süre de artacaktır.

  • Rainbow Tablosu

Bir Rainbow (gökkuşağı) tablosu, daha önceden hesaplanmış hash’leri içermektedir. Yani, diğer bir deyişle, hash’ler hazır ve karşılaştırılmayı beklemektedir. En önemli artısı, işlemci yükünü azaltarak küçük boyutlu işlerde çok etkili sonuç verir. Sözlük saldırılarında, önce hash oluşturup ardından bunu kırmak istediğimiz hash ile karşılaştırırız. Gökkuşağı’nda ise hashlere zaten sahibiz ve tek yapmamız gereken bunları karşılaştırmak. İyi bir gökkuşağı tablosu oluşturmak vakit alacak bir iştir fakat etrafta çok büyüt boyutlu ve işe yarar tablolar da dolanmaktadır.

Gökkuşağı tablosunun etkisini azaltmak için yukarıda bahsettiğim salt yöntemi etkili bir yöntemdir.

  • Sözlük

Sözlük, kelimelerden, karakterlerden ve bunların kombinasyonlarından oluşan basit bir metin dosyasıdır. Sağda solda gördüğünüz “wordlist” ya da kelime listeleri de aynı anlama gelmektedirler. Sözlük, genel olarak kullanıcının basit şifreler kullanması fikrine dayanır. Bu yüzden herhangi bir sözlük metin dosyasına baktığınız zaman “12345678”, “qwerty” gibi ya da “home”, “pass” gibi dizilerden oluştuğunu görebilirsiniz.

Sözlük saldırıları şu şekilde olur; kırmak istediğiniz hash’e karşılık sözlükteki her dizinin bir hash karşılığı oluşturulur ve bununla karşılaştırılır. Eğer iki hash de birbirini tutarse, kırılmış demektir. Günümüzde artık CPU’lar epey güçlü olduğu için 1-2 dakika içerisinde 14 milyon girdi test edilebilir.

Bu saldırıları gerçekleştirebileceğimiz çevrimdışı bir uygulama arıyorsak eğer Hashcat bu iş için biçilmiş kaftan.

  • Hashcat

Hashcat, çok hızlı ve çok yönlü hash kırıcısı (cracker)’dır. Dağıtımlarınızın repolarında muhtemelen vardır, kurarsanız altta vereceğim örnek üzerinde nasıl çalıştığını daha iyi anlayabilirsiniz.

kame
dizisinin MD5 çıktısı “366b18ce0695e44bfc30423b9eb8a793” olduğunu yukarıda söylemiştik. Bunu bir metin dosyası içine, örneğin test.txt, yapıştırın ve kaydedin. Bu örneğimiz için bize bir sözlük lazım;

1ANORMUSWL
RockYou

İstediğinizi indirebilirsiniz. Bu örnekte 1ANORMUSWL dosyasını kullanacağım.

kame ~ % hashcat -m 0 -a 0 -o /home/kame/hashcat/sonuc.txt /home/kame/hashcat/test.txt /home/kame/hashcat/pass/1aNormusWL.txt
Initializing hashcat v0.46 by atom with 8 threads and 32mb segment-size...

Added hashes from file /home/kame/hashcat/test.txt: 1 (1 salts)
Activating quick-digest mode for single-hash


NOTE: press enter for status-screen

366b18ce0695e44bfc30423b9eb8a793:kame

All hashes have been recovered

Input.Mode: Dict (/home/kame/hashcat/pass/1aNormusWL.txt)
Index.....: 1/5 (segment), 3498468 (words), 33550338 (bytes)
Recovered.: 1/1 hashes, 1/1 salts
Speed/sec.: - plains, 33.39M words
Progress..: 3428536/3498468 (98.00%)
Running...: --:--:--:--
Estimated.: --:--:--:--

Started: Tue Oct 29 20:49:48 2013
Stopped: Tue Oct 29 20:49:49 2013

Görüldüğü üzere “-m“, seçtiğim hash algoritmam, 0, yani MD5, “-a” ise saldırı türüm , 0, yani doğrudan (burada sözlüğe bakıp her dizi için hash karşılaştırması yapıyor).

Herhangi bir sözlük kullanmadan bu saldırıyı yapmak istersek;

kame ~ % hashcat -m 0 -a 3 -o /home/kame/hashcat/sonuc.txt /home/kame/hashcat/test.txt ?l?l?l?l

Terminal çıktısı çok uzun olduğu için onu koymadım. Burada, farklı olarak saldırı türünü 3, yani bruteforce olarak belirledik ve sözlük yerine “?l” parametresini, yani sadece küçük harfleri (a,…,z) kullanmasını söyledik. 4 tane koymamın nedeni 4 haneden (kame) oluşması. Hangi şifrenin kaç haneden oluştuğunu, hangi karakterleri içerebileceğini bilemeyeceğimiz için saldırı modellerini kendiniz geliştirmeniz gerekmektedir.

Hashcat, çok başaralı ve hızlı bir hash kırıcısıdır. Burada çok temel bir örnek vererek anlatmam, sizlerin sağda solda denk getirdiğiniz herhangi bir hash algoritmasını oturup kırsın diye değildir. Daha fazla ayrıntılı bilgi almak isterseniz Hashcat’in wikisi, özellikle mask saldırısı ya da RTFM ve internette bulabileceğiniz sayısız döküman var.

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

Ccrypt İle Şifreleme

Platform bağımsız ve kullanması kolay bir uygulama olarak, ccrypt, dosya şifrelemede kullanmak için gayet basit ve güvenli, ayrıca sistem kaynaklarını da bir o kadar az tüketen bir araç olarak durmakta. Bu basit rehberi en azından denemeniz ve hatta kalıcı olarak kurup kullanmanız için hazırladım.

ccrypt, dosyaları şifrelemek ve şifresini çözmek için kullanılan, Rijndael Blok Şifresi üzerine kurulu açık kaynak, özgür yazılım bir uygulamadır. ccrypt’in sahip olduğu algoritma simetrik değildir. Bununla birlikte, ccencrypt ile dosya şifrelerken ccdecrypt ile şifre çözemektedir (ccrypt -e ya da ccrypt -d ile de yapabilirsiniz). Ayrıca ccat ile şifresiniz çözdüğünüz dosyayı sadece terminal ekranına yazdırabilir ve bilgisayarınızda geçici dosyalar bırakma riskinizi düşürebilirsiniz.

  • ccrypt güvenliği

ccrypt 256-bitlik bir şifrelemeye sahiptir. AES’in de seçtiği Rijndael Blok Şifresi‘ni kullanmaktadır. ccrypt’in AES ile farkı ise, AES 128-bit blok boyutu kullanırken kullanırken, ccrypt, Rijndael’in izin verdiği 256-bit blok boyutu kullanmaktadır. Bu onu elbette AES’ten daha az güvenli yapmamaktadır. Sadece AES standartına sahip değildir. Ayrıca, bu şifreleme eğer kırılırsa duyulması da o kadar çabuk olacaktır.

ccrypt ile bir dosyayı şifrelerseniz eğer, ccrypt o dosyanın üzerine yazacak, yeni bir dosya oluşturmayacaktır. Bununla birlikte, artık harddiskinizde orjinal dosya olmayacaktır. Fakat, siz bu dosyayı silseniz dahi donanım ataklarında harddiskiniz/ram’iniz/takasınız bu dosyanın izini taşıyabilir. Eğer bu izleri silmek isterseniz, bunun için çeşitli araçlar mevcut. Bunlardan bir tanesi GNU/Linux için wipe.

Eğer, şifreleme esnasında “–tmpfiles” parametresi kullanırsanız, orjinal dosyanın üzerine yazmak yerine geçici bir dosya oluştabilir, ardından da wipe ile silebilirsiniz.

kame ~ % ccencrypt --tmpfiles sifrelenecekdosya && ls

sifrelenecekdosya
sifrelenecekdosya.cpt

  • Dosya ve dizin şifreleme, şifre çözme

ccrypt ile herhangi bir dosyayı sorunsuz bir şekilde şifreleyebilirsiniz. Fakat, sizinleri şifrleyemezsiniz. Dizin için farklı bir yol izleyeceğiz.

Dosya şifreleme;
kame ~ % ccencrypt sifrelenecekdosya
Enter encryption key:
Enter encryption key: (repeat)

Gördüğünüz üzere ccencrypt (ya da ccrypt -e sifrelenecekdosya) ile dosyamızı anahtarımız ile şifrelemiş olduk. Anahtarı ise unutmamanız çok önemli. Tamamen unutursanız eğer şifrelenen dosyayı kurtarmanız mümkün olmayacaktır.

Dizin şifreleme;
kame ~ % tar -zcvf sifrelenecekdizin.tar.gz dizin/
kame ~ % ccencrypt sifrelenecekdizin.tar.gz

İlk komutumuz dizin adındaki dizinimizi (balık adındaki balık, komik değil biliyorum.) tar.gz formatında sıkıştırmak olacaktır. Ardından arşiv dosyamızı ccrypt ile sorunsuz bir şekilde şifreleyebilirsiniz.

Şifre çözme;
kame ~ % ccdecrypt sifrelenmisdosya.cpt
Enter decryption key:

ccrypt’in şifrelediği dosyaların uzantısı “.cpt” olarak değiştirmektedir. Eğer şifreyi çözmek isterseniz kullandığınız ccdecrypt ile (ya da ccrypt -d sifrelenmisdoya.cpt) anahtarınızı girerek dosyanızın şifresini çözebilirsiniz.

  • Anahtarımı unuttum, ne yapmalıyım?

Eğer anahtarınızı unutmuşsanız, şifrelediğiniz dosyaya erişmeniz mümkün olmayacaktır. Fakat, ccguess ile şifrenizi yanlış yazmış olabileceğinizi düşünerek ne olabileceğine dair bir kalıp deneyebilirsiniz.

Diyelim ki, şifrenizi “abcdefg” yaptınız (ben yaptım siz yapmayın), ve aklınızda sadece a, b, c, d ile e’yi içerdiği kalmış;

kame ~ % ccguess sifrelidosya.cpt
Enter approximate key: abcde


Generating patterns...1..2..3..4..5..sorting...done.

Possible match: abcdefg (2 changes, found after trying 1890639 keys)

Burada şu unutulmamalı; anahtarınız ne kadar çok karakter içerirse doğru tahmin için o kadar çok karakteri doğru hatırlamak zorundasınız, yoksa çabalarınız boşuna olacaktır.

  • Şifreleme esnasında sistem çöktü, peki şimdi ne olacak?

Örneğin, elinizde 100mb bir dosya var ve tam bunu şifrelerken ya da şifreyi çözerken sisteminiz kitlendi, elektrikler gitti vs. Ayrıca, bu dosyanın yedeğini şifrelemeden önce almadınız ve tek kopya şifrelemeye çalıştığınız dosya. Öncelikle yapmanız gereken şifrelenen dosyayın şifresini “-m” parametresi ile çözmek olacaktır.

kame ~ % ccdecrypt -m bozukdosya.cpt

Bu yöntemle dosyanın çözülen şifrelenmiş kısmı ile bozuk kısmından oluşan 2 ayrı dosya oluşturacak. Orjinal dosyayı bu iki kısmı birleştirerek tekrar oluşturabilirsiniz, fakat şifreleme ve çözümün birleştiği noktadaki 32-63 byte’lık bölümü malesef kaybedeceksiniz.

  • Anahtar oluştururken neleri kullanmamalı?

Yazdırılabilir ASCII karakterlerin hepsini kullanabilirsiniz. Sadece ‘\n’, ‘\r’ ve ”’ı kullanamazsınız. Bunların dışında, işletim sisteminiz eğer bazı özel karakterleri yazdıramıyorsa, doğal olarak onları da anahtar oluştururken kullanamayacaksınız.

  • Windows’ta şifreledim, GNU/Linux veya Mac Os’ta açabilir miyim?

Evet! ccrypt, platform bağımsız bir uygulamadır.

  • Şifrelenecek dosyanın boyutu önemli mi?

Hayır! İstediğiniz büyüklükte bir dosyayı ccrypt ile şifreleyebilirsiniz. Önemli olan sisteminizin bunu kaldırabilmesi.

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

DNS Leak Tehlikesi

Kullandığımız anonim ağlara ya da VPN tünellerine aldanıp anonim olduğumuzu zannederken, aslında tüm Internet aktivitelerimizin İSS tarafından rahatça izlenip kaydedilebilmesi, bir DNS sızıntısı ile o kadar kolay ki.

  • DNS Sızıntısı (Leak) Nedir?

what-is-a-dns-leak
Anonim bir ağ ya da VPN servisi kullandığınız zaman, bilgisayarınızdan geçen tüm trafiğin bu anonim ağ ya da  servis üzerinden güvenli bir şekilde gönderildiği varsayılır. Tor veya VPN kullanmanızdaki temel neden, trafiğinizi İSS’nizden ve diğer üçüncü kişilerden gizlemek, anonimliğinizi arttırmaktır. Fakat bazı durumlar vardır ki, siz güvenli bir VPN bağlantısı kurduğunuzu düşünseniz bile, İSS’niz Internet trafiğinizi izleyebilir ve çevrimiçi aktivitelerinizi monitörleyebilir. Yani, bir nedenle sorgularınız VPN bağlantınız ya da anonim ağ yerine İSS’nizin DNS sunucularına da yönleniyorsa, burada bir DNS sızıntısı (leak) var demektir. Şema üzerinden anlatırsak; bir VPN tüneline sahipsiniz ve EFF için bir sorguda bulundunuz. Normal olarak sorgunuz tünelden VPN servisine, VPN servisinin DNS sunucusu ve oradan da EFF’ye ulaşmalı. Fakat, sorgunuza İSS’niz DNS sunucusu da cevap vermektedir. Bu da şu anlama gelmektedir; İSS’niz İnternet aktivitilerinizi bir bir kaydetmekte, sizleri rahatça izlemektedir.

Anonimliği tehdit eden en büyük tehlikelerden biri DNS sızıntısıdır. Çünkü, anonim bir ağa bağlı olsanız bile (mesela Tor), işletim sisteminiz anonim servis tarafından atanan anonim DNS sunucuları yerine kendi varsayılan sunucularını kullanmaya devam etmektedir. Bu da kullanıcılara sahte gizlilik hissi vermekte ve sonuçları üzücü olmaktadır.

Etkilenenler;
VPN sunucuları
Socks proxyleri (Tor gibi)

Etkilenmeyenler;
CGI Proxyleri
SSH tünel ile HTTP proxyleri

  • Transparan DNS Proxyleri

transparent-dns-proxy

Günümüzde bazı İSS’lerin Transparan DNS Proxysi adında bir teknoloji kullandığı bilinmektedir. Bu şu işe yarıyor; siz eğer bir DNS sorgusu yaparsanız, İSS bunu sadece kendi DNS’leri üzerinden (TCP/UDP port 53) yapılmaya zorluyor. Bir örnek vererek anlatalım. Siz DNS sunucusu olarak OpenDNS‘i kullanmaktasınız ve EFF için bir sorgu yapacaksınız. Transparan DNS Proxysisi sizin isteğiniz OpenDNS sunucularına ulaşmadan araya girip akışı keserek İSS’nin kendi DNS sunucusuna yönlendirmekte ve OpenDNS sunucusu yerine İSS DNS sunucusu cevap vermektedir. Siz tabi bu noktada “Ben VPN kullanıyorum, güvendeyim.” veya “Tor kullanıyorum, güvendeyim.” diyebilirsiniz. Fakat, sonuçlar sizin beklediğiniz yönde gerçekleşmemektedir (şemalar DNS leak test’ten alıntıdır).

  • Tehlikenin Boyutlarına Dair

Bir tehlike modeli üzerinde (Modeller çoğaltılabilir. Mesela ücretsiz anonim socks proxyler üzerinden modeller oluşturulabilir, denemesi size kalmış.) sizlere DNS sızıntısı göstereyim. Modelimiz şu; Amerika lokasyonlı bir VPN servisi kullanıldığınızı düşünün. Ayrıca tarayıcınız da Tor üzerinden internete (exit-node da Amerika’da) girdiği farzedilmekte. Fakat, dinamik ip kullanmaktasınız ve özel bir DNS ayarına sahip değilsiniz;

2013-10-20-002934_1920x1080_scrot

Tor veya VPN servisinizin DNS sunucularını görmeniz (görmezseniz daha iyi) doğal olarak beklenendir. Sizin tek görmek istemeyeceğiniz şey ise, trafiğinizi ondan gizlediğinizi sandığınız İSS’niz olacaktır. Fakat, sonuca bakarsak;

2013-10-20-014138_1920x1080_scrot

Tam bir facia! En üstte VPN servisinizi görüyorsunuz. Daha da kötüsü, siz Tor kullanmanıza ve VPN tüneli oluşturmanıza rağmen, ve tüm bunların üzerine kendinizi tamamen güvende (tamamen olmasa da bir nebze) hissederken, farkında olmadığınız bir DNS sızıntısına sahipsiniz. Diğer enteresan nokta, Firefox, socks proxy (Tor) yerine işletim sisteminin bağlı olduğu ağ (İSS) üzerinden DNS sorgusu gerçekleştirip, Tor’u tamamen atlamış. Tabi burada benim aklımı daha çok kurcayalayan şey, TTNet’in ya da Türkiye’de hizmet veren herhangi bir İSS’nin transparan dns proxysine ya da proxlerine sahip olup olmadığı. Gerçi, TTNet pişkin pişkin Phorm kullanmaya devam edip ve DPI ile paket analizlerine dalmış olduğu için bunu sormak (gene de şunda veya bunda vardır diyemiyorum) abesle iştigaldir.

  • DNS Sızıntı Testi

Böyle bir durumla karşıya karşıya olup olmadığınızı anlamak için;

– DNS Leak Test: https://www.dnsleaktest.com
– IP Leak: http://ipleak.net/

  • İSS’nin DNS Gaspı (Ekleme: 19.11.2013)

Buradaki işlemleri terminalden gerçekleştireceğiz. Önce, varolmayan bir domain adresine ping atalım;

kame $ % ping yokboylebirdomain.ltd
PING yokboylebirdomain.tld (195.175.39.75): 56 data bytes
64 bytes from 195.175.39.75: icmp_seq=0 ttl=236 time=336 ms
64 bytes from 195.175.39.75: icmp_seq=1 ttl=236 time=292 ms
64 bytes from 195.175.39.75: icmp_seq=2 ttl=236 time=274 ms

İşte aradığımız! Var olmayan bir domain’e 195.175.39.75 IP’si üzerinden yanıt geliyor. Yani İSS’niz (örnekte gerçek) sahte bir adres üzerinden sorgularınıza yanıt veriyor.

kame $ % nslookup yokboylebirdomain.tld
Server: 192.168.2.1
Address: 192.168.2.1#53

Non-authoritative answer:
Name: yokboylebirdomain.tld
Address: 195.175.39.75
Name: yokboylebirdomain.tld
Address: 195.175.39.71

Sahte IP’yi sonunda yakaladık; 195.175.39.71!

  • Ne Yapmalı?

Öncelikle, testi yaptığınızı ve kötü sonuçla karşılaştığınızı varsayarak; bir, statik ip ayarını yapmayı öğrenin. Internette bununla ilgili girilmiş tonlarca yazı, alınmış ekran görüntüsü ve nasıl yapacağınızı anlatan videolar bulunmakta. Bir aramanıza bakar. Hangi işletim sistemini kullanırsanız kullanın, bunu yapın.

İki, iyi bir DNS servisi bulun. Benim bu konudaki önerim aşağıda. Eğer, sizin farklı görüşleriniz varsa, ben sadece Google DNS’i kullanmamanızı tavsiye ederim. Onun yerine OpenDNS‘i gönül rahatlığıyla (dediğime pişman olmam umarım) kullanın, kullandırın.

Üç, Firefox’unuzu aşağıda anlattığım şekilde ayarlayabilirsiniz. Ayrıca, kötü bir VPN servisi kullanmayın, para veriyorsanız da paranızı ziyan etmeyin.

Dört, eğer Windows kullanıyorsanız, öncelikle Toredo‘yu Windows cmd üzerinden kapatın (netsh interface teredo set state disabled). İyi bir firewall kurabilirsiniz. Son olarak, DNS Leak Test’in şu önerilerini uygulayın.

Beş, GNU/Linux’ta alternatif olarak Polipo kurup kullanabilirsiniz.

Altı, Dnscrypt kurup kullanabilirsiniz (Platform bağımsız!).

  • Hangi DNS Servisi?

Ben OpenNIC Project‘in DNS sunucularını kullanmaktayım. Beni kullanmaya iten en önemli ayrıntısı, ücretsiz, sunucuların kayıtlarını bir süre sonra (saatte bir, 24 saatte bir ya da hiç tutmayarak) silmesi (anonimleştirmesi), birçok ülkeden, istediğiniz DNS sunucusunu kullanmanıza olanak vermesi. Şimdilik, sicili gayet temiz ve sunucuları da performans olarak üzmeyecek düzeyde.

  • Firefox Ayarı

Firefox’ta bu dertten kolayca kurtulmak isterseniz eğer, adres çubuğuna about:config yazarak Firefox’un ayarlarını açabilirsiniz. Açtıktan sonra;

network.proxy.socks_remote_dns bulun ve onu true yapın. Böyleyece Firefox bağlı olduğu ağ üzerinden değil socks proxy üzerinden (ayarladıysanız Tor) DNS sorgusu yapacaktır. Eğer kullandığınız uygulamalar DNS ön yüklemesi yapıyorsa, ayarlarında DNSPrefech var mı yok bu bir bakın. Firefox için network.dns.disablePrefetch bulun ve true yapın.

  • Sonuç

DNS sızıntısı basit ve küçümsenecek bir durum değildir. Bunu iyice anlamak lazım. Bir diğer nokta da, “ben Tor’la yasaklı siteye girebiliyorsam nasıl isteğim İSS’me gitsin?” sorusu. Burada bir hataya düşüyorsunuz; Tor’la siteye girmek farklı bir şeydir, siteye girmek için gönderdiğiniz isteğin aynı anda İSS’nize de gitmesi (İSS üzerinden girmeseniz dahi) farklı bir şeydir. Sizin kaçınmanız gereken, konunun da özü, isteğin İSS’nin DNS  sunucularına da gitmesi. “Onu kullanmayı bilen zaten şunu da ayarlar.” yanlış bir bakış açısıdır. Ayarladığını zannedersiniz, güncellersiniz ayarlarınız sıfırlanır, değişir, “VPN kullanıyorum ya, n’olcak.” dersiniz, böyle bir olasılıktan haberdar değilsinizdir ya da iyi bir tehlike modeliniz yoktur, zor duruma düşersiniz.

Anonimlik sizin tehlike modelinize dayanır ve anonimlik düzeyiniz ölçülebilir (bunu her yazımda tekrarlayacağım). Bunun bilincinde olun!

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

Tor’a Giriş

Çok temel ve bir giriş yazısı olarak Tor’la ilgili yarım kalan bu yazıyı tamamlayayım istedim. Öncelike yazının ne son kullanıcıyı ne de ileri düzey kullanıcıyı tatmin etmek gibi bir amacı yok. Birçok şeyin gayet net, anlaşılır olduğunu düşünüyorum. Kullandığınız program vs. burada örnek verilmedi diye desteklenmediğini düşünmeyin. Bu yazı tamamen GNU/Linux temellidir.

  • Kısaca Tor Nedir?

Tor (eski adıyla onion router), ilk olarak Amerikan Donanması ile beraber, devlet içi iletişimleri korumak için geliştirilmiştir. Günümüzde ise herkesin kullanabildiği (aktivist, ordu, gazeteci, kanun uygulayıcı vs.), sanal tünellerden oluşan, kişi ve grupların Internet üzerindeki gizliliklerini ve güvenliklerini sağlayan, geliştiren ve özgür yazlım olan bir anonimlik ağıdır.

  • Arkasında Kimler Var?

Sıklıkla raslatladığım ve çok eleştirilen -haklı- noktalardan biri de bu. Arkasında kimler var, kimler destekliyor, kim bunlar diyorsanız; Tor, senelik şeffaflık raporları yayımlıyor. Okumak isterseniz;

2012 yılı olağan raporu
2011 yılı finansal raporu
Baştan sona okumak isteyenlere, Tor and Financial Transparency e-posta listesi tartışması var.

Bilindik isimlerden;
Jacob Applebaum
EFF desteği (tam destek olmasa da) ve;
EFF ile birlikte geliştirdikleri HTTPS-Everywhere eklentisi.

Kaçamak cevap veriyorum gibi olmasın. Bu konudaki araştırmayı kullanacak insana bırakıyorum. Özellikle e-posta listesindeki tartışmadan ayrı birkaç yazı bile çıkabilir. Çok detaylı bilgiler içermekte.

  • Tor Nasıl Çalışır?

htw1

İster basit, isterse karmaşık trafik analizi olsun, Tor; işlemlerinizi Internet üzerindeki birden fazla alana dağıtarak riski düşürmeye yardımcı olur. Temel fikir şudur; peşinizde sizi takip eden birini, dolambaçlı yollara sokarak hem takip edilmenizi engeller, hem de arkanızda bıraktığınız izleri (fingerprint) periyodik olarak temizlersiniz. Kaynaktan hedefe doğrudan bir yol seçmek yerine, Tor ağındaki veri paketleri birkaç relay üzerinde rastgele bir yol izler. Böylece, verinin nerden geldiği ve nereye gittiği belli olmaz. Sahip olduğunuz Tor istemcisi (Ayşe), dizin sunucusundan (Ali) şifreli bir bağlantı ile dolaşım oluşturacağı Tor node’larının listesini alır (bağlantıya şemada kısa olsun diye link dedim).

Bir örnek vererek kafanızda durumu daha da netleştirelim. Ayşe, elinde güvenli ara sokakların olduğu bir listeyle (Tor node) onu takip eden ailesine izini belli ettirmeden Oya’ya (hedef sunucu) gitmek ister.

htw2
Tor; (Ayşe’nin istemcisi) ağ üzerinde bulunan relay’ler vasıtasıyla hedef sunucuya kadar şifreli bir dolaşım kurar. Dolaşım, her seferinde bir atlamaya (Tor Node’lardaki yeşil linkler) sahiptir, ve her relay sadece hangi relay’in kendisine veriyi verdiğini ve hangi relay’e vereceğini bilir. Relay’lerin hiçbiri bireysel olarak verinin aldığı tüm yolu bilemez. İstemci, dolaşım boyunca her atlamanın iletişimi takip edememesi için farklı anahtar setlerine sahiptir.

Örneğimize devam edelim; Ayşe, Oya’ya (hedef sunucu) ulaşabilmek için rastgele bir dolaşım yolu hazırlar (circuit) ve güvenli ara sokaklardan (şifreli link) sadece bir kez geçerek Oya’ya gider. Geçtiği ara sokaklar ise sadece hangi ara sokaktan geldiği ve hangisine gittiğini bilir fakat tüm güzergahı bilemez ve ara sokakların hepsi farklı bir anahtar ile açılmaktadır.

Bu dolaşımdaki son relay, Exit Node olarak adlandırılır, ve hedef sunucuyla (Oya) asıl bağlantıyı kuran bu relay’dir. Tor’un kendisi, ve tasarım olarak da, Exit Node ile hedef sunucu arasındaki bu bağlantıyı (kırmızı) şifreleyemez. Bu şekildeki Exit Node’lar geçen her trafiği yakalayabilme durumundadırlar. Ayrıca, bu Exit Node’u çalıştıran kimse gelen ve giden verileri okuyabilir. İletişimlerin bu noktasında dinleme (eavesdropping) olabilmektedir. O yüzden devamlı “end-to-end encryption” kullanın diyoruz. Bu konuda da herkesi teşvik ediyoruz.

Örneğimize devam; son ara sokak (Exit Node) ile Oya’nın evi arasındaki yol açık bir yoldur ve bu yol istenirse son ara sokak tarafından izlenebilir, hatta Ayşe’nin ailesine (eğer kötücül ise) bile bilgi verebilir veyahut kızınız şuraya kaçtı diyerek polisi arayabilir.

htw3
Tor, daha etkili olabilmek için aynı dolaşımı yaklaşık 10 dakika boyunca kullanır. Sonraki istekler, mesela yeni bir websiteyi ziyaret etmek isterseniz (Işık) ise yeni bir dolaşım üzerinden yapılır. Böylece, bir önceki dolaşımla yaptıklarınızı yenisiyle ilişkilendirmek isteyenleri engellemiş olur (şemalar ve açıklamalar Tor’dan, dinleme ise Tails’tan alıntıdır.). Son olarak, Tor sadece TCP’den ve SOCKS desteği olan uygulamalarda kullanılabilir (SOCKS desteği yoksa Polipo kısmına bakın).

Örneğimizi bitirelim; Ayşe, eğer bir süre sonra fikrini değiştirir ve Oya’ya değil de Işık’a (farklı hedef sunucu) gitmek isterse, bu sefer de farklı güvenli ara sokaklardan (Tor Node) oluşan bir dolaşım yolu hazırlar ve izini belli ettirmeden Işık’a (hedef sunucu) gider.

Tor’u, dağıtımınızı bilmediğim için nasıl kuracağınızı yazmıyorum. Paket yöneticinizden tek bir komutla ve tıklamaya kurabilirsiniz. Basit bir örnek vermem gerekirse;

apt-get install tor
pacman -S tor

Eğer grafik arayüzlü bir Tor kontrolcüsü isterseniz Vidalia‘yı da kurabilirsiniz. Vidalia; Tor’u başlatıp durdurmaya, ne kadar bandwidth harcadığınızı, aktif olarak hangi dolaşıma sahip olduğunuzu, bu dolaşımları harita üzerinde göstererek Tor’un durumuyla ilgili mesajlar yayımlar ve sizlere basit bir arayüz üzerinden Tor’u ayarlamanıza, köprü, ve relay oluşturmanıza olanak verir.

  • Temel Tor Ayarları

Dağıtımınız ne olursa olsun (Debian, Arch, Gentoo, Ubuntu denediklerim) Tor kurulumda kendi basit ayarlarıyla (dağıtıma da özgü olarak) geliyor. Bu ayarlar da Tor’un gayet güvenli ve sorunsuz çalışmasını sağlıyor. Bu arada, servis olarak çalıştırmayı unutmayın. Yukarıda da belirttiğim üzere eğer Exit Node’larının bazılarında bir dinleme varsa, veya gizli servislerin veri örnekleri aldıkları Exit Node’lar varsa Tor buna engel olamaz (HTTPS kullanın!). Belki güvendiğiniz ya da bildiğiniz Exit Node fingerprint’lerine sahipseniz sadece bunları kullanmasını da ayarlar üzerinden sağlayabilirsiniz (ama uzun vadede kimliğinizin bulunmasını kolaylaştırabilir). Farklı bir port (9050, Vidalia için 9051) kullanmadığınızı varsayarsak basitçe (örnektir) Firefox’u şu şekilde ayarlayabilirsiniz;

Seçenekler -> Gelişmiş -> Ağ -> Ayarlar -> Vekil sunucuyu elle ayarla

SOCKS = 127.0.0.1
Port = 9050 (9051)

Tor Browser Bundle varken Firefox veya başka bir tarayıcı kullanmak mantıklı mıdır? Bana sorarsanız, Tor’u kullandığınız tarayıcı ile (ya da TBB) normal olarak kullandığınız tarayıcıyı ayrı tutarsanız daha mantıklı olacaktır. Ayrıca, tarayıcınız ile ilgili test yapmak isterseniz, Panopticlik ve JonDonym var. Tarayıcınızı TBB ile kıyaslarsanız, biraz fikir sahibi olabilirsiniz.

  • Tor Ve Polipo

Polipo, basit ve hızlı bir web cache, HTTP proxy ve proxy sunucusudur. Kullanım ve ayarları gayet basit, özellike Privoxy ile kıyaslarsak, ondan çok daha hızlıdır. Polipo’nun tek sıkıntısı disk önbelleğini herhangi bir kısıtlama yapmadan devamlı olarak arttırmasıdır. Harddisk dolmaya başladığında burayı bir kontrol ederseniz iyi olur.

“/etc/polipo/config” ayar dosyası (örnek);
daemonise=false
diskCacheRoot=/var/cache/polipo/
proxyAddress=127.0.0.1
proxyName=localhost
serverSlots=4
serverMaxSlots=8
cacheIsShared=true
allowedClients=127.0.0.1
socksParentProxy = localhost:9050
socksProxyType = socks5

http-proxy‘yi localhost:8123 üzerinden kullanabilirsiniz. Polipo’yu sadece SOCKS desteklemeyen bir uygulamanız varsa (mesela Uzbl, Dwb gibi tarayıcılar) kullanmanız tavsiye. Diğer durumlarda SOCKS üzerinden sadece Tor’u kullanın.

  • Tor Ve Freenode (IRC)

Eğer Freenode‘a (OFTC‘de ekstra bir ayara gerek yok!) Tor üzerinden bağlanmak isterseniz (bu örnek Weechat için);

/proxy add tor socks5 127.0.0.1 9050
/server add freenode-tor p4fsi4ockecnea7l.onion
/set irc.server.freenode-tor.proxy "tor"
/set irc.server.freenode-tor.sasl_mechanism dh-blowfish
/set irc.server.freenode-tor.sasl_username "kullanıcı adınız"
/set irc.server.freenode-tor.sasl_password "şifreniz"
/set irc.server.freenode-tor.nicks "kullanıcı adınız"
/connect freenode-tor

  • Tor Ve Pidgin

Eğer Pidgin’de herhangi bir servise Tor üzerinden bağlanmak isterseniz (Hepsini denemeyin bence, desteleyen Jabber sunucuları için yapabilirsiniz örneğin.);

Ayarlar -> Proxy
Proxy türü SOCKS5
Host 127.0.0.1
Port 9050

Bunun yanında bence OTR eklentisi de kurulabilir. OTR’de dikkat etmeniz gereken şeylerden birincisi iletişimde bulunan her iki tarafta da OTR eklentisi kurulu olmalıdır. Bir diğer şey de siz ve karşı taraf log tutmasın, gerekirse karşı taraftan bunu rica edin.

  • Köprüler

İSS’niz ve devlet eğer sizin trafiğinizi inceliyorsa ve varsayılan ayarları ile Tor kullanıyorsanız bunu öğrenebilirler. Bridge (köprü)’ler de bu noktada devreye girereler. Köprü kullanımı şu nedenlerle olabilir:

  1. Tor kullanımı sansür ile engellenmiştir.
  2. Ülkenizde Tor kullanımı tehlikelidir, yasaktır, yasal yaptırımları vardır.

Tor Köprü Relayleri açık olarak listelenmeyen Tor ağına giriş noktalarıdır ve köprüler İSS’nizin Tor kullandığınızı anlamasını zorlaştırır. Köprüler açık olarak listelenmedikleri için öğrenmenin yolu Gmail veya Yahoo gibi e-posta hesapları ile mesaj konu ve gövdesine “get bridges” yazıp bridges[at]bridges dot torproject dot org adresine e-posta atmak olacaktır. Yanıt olarak gelen köprüleri ise Tor Browser’ın açılında Configure diyip:

2014-03-28-145224_1920x1080_scrot

Buraya kopyaladıktan sonra Connect diyoruz.

  • Tor Çalışıyor Mu?

Test etmek istiyorsanız; https://check.torproject.org

  •  Hidden Services

Deep web, dark internet, Internetin karanlık yüzü, buz dağının görünmeyen kısmı gibi bir sürü tamlama yapıp çok detaya girmeyi pek planmadığım bir nokta. Tor kullanıcısı şunun her zaman bilincinde olmalı; Tor’u neden kullanıyor, nerede kullanıyor? Bu sorular doğrultusunda hidden services profillerinizi clear web üzerinde kesinlikle ilişki kurulabilecek şekilde bağlamayın. Javascript’i deep web’de kapatın. Freedom Hosting’in FBI baskınından sonra sunucuları gittiği için gördüğünüz sadece %50’sidir. Hidden services’ten bir şeyler indirecek ya da yükleyecekseniz bunu iş yerinizden yapmamanız tavsiyedir.

  • Dikkat Edilmesi Gereken Birkaç Nokta

Tarayıcınızın bir parmakizi (fingerprint)’i vardır, kullandığınız her şeyin kendine özgü ve “eşsiz” fingerprint’leri vardır. Şöyle bir örnek vereyim sizlere; kullandığınız tarayıcıyı tam ekran kullanmanız, onun araç çubuğunun boyutu ile ilgili eşsiz bir bilgi sızdırabilir ve ziyaret ettiğiniz siteye sizinle birlikte görüntüleyen diğer tarayıcılar arasında farklı bir konuma düşebilir. Bu da sizin gerçek kimliğinizin ortaya çıkmasını kolaylaştırır. Dahası, günümüzdeki çöznürlükler dikkate alındığında bu ayrım giderek belirginleşmektedir. Bu yüzden TBB, tarayıcı tam ekran yapıldığında kullanıcılarını uyarmak için bir uyarı mesajı tasarlamaktadır.

Bir diğer nokta, diyelim ki sizler Internette flash video izliyorsunuz ve bir yandan da bunun için Tor kullanıyorsunuz (pornocular dikkat). Hiçbir çerez tutmayın, geçmişi silin, ne yaparsanız yapın webgl (HTML5’te de bu durum vardı ne oldu son durum bilmiyorum.) sizin ekran kartı bilginizi cache’leyecektir. Yani Büyük Birader sizleri evinizde ziyaret etmek isterse o ekran kartı benim değil deme şansınız var mı?

  • Son Sözler

Daha önce söylemiştim ama yinelemekte fayda var. Anonimliğiniz sizin kişisel tehlike modelinize dayanır. Kimsiniz ve kimden gizleniyorsunuz? Neden ve ne tür bir risk almayı hedefliyorsunuz? Öncelikli olarak sizin cevaplamanız gereken soruların başında bu gelmektedir. Bir diğer durum da Tor, anonim olmayan bir Internet üzerinde kendi anonim ağını oluşturmaya çalışmaktadır. Burada %100 bir sonuç alma ihtimaliniz yoktur. Gmail gibi servislere Tor üzerinden girmeniz pek mantıklı olmayacaktır (şifre yenileme talebi gönderecek). Torrent için kullanmayın (yavaş ve bilgi sızdırabilir). Eğer kullandığınız servis Tor’u desteklemiyorsa ya da kara listeye almışsa ısrarla Tor’la bağlanmayı denemeyin. Sonun sonu, gerçek kimliğinizle (mesela Facebook profiliniz) Tor üzerinden oluşturacağınız herhangi bir profil (mesela Twitter’daki takma adlı profiliniz) arasında ilişki kuracak/kurduracak (Twitter’ı Facebook profili ile ilişkilendirmek) hatalar yapmayın.

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