TOR NASIL ÇALIŞIR ? TOR ÇALIŞMA MANTIĞI

Tor Nedir?

TOR, anonimlik temeline dayanarak internet veya extranet üzerinde işlem ve gezinti yapmayı sağlayan bir ağdır. Temel olarak “verileri şifreleyerek sanal tüneller arasında maskeleme yapma” mantığıyla çalışır. Çıkış noktası ABD Deniz Harp Araştırma Labaratuvarı’nın devletin haberleşmesini korumak için yaptığı çalışmalara dayanır. Ancak sonrasında gönüllü yazılımcılar sayesinde bugünkü halini almıştır. Günümüzde artık devletler ve devlet uzantılı gizli yapılanların (MIT, NSA vb) dışında, aktivist, ordu, gazeteci, sivil toplum kuruluşları, Indymedia ve Electronic Frontier Foundation (EFF) gibi eylemci yapılanmalar ve özel topluluklar tarafından aktif bir şekilde kullanılmaktadır. Son yıllarda ise Ortadoğu kaynaklı TOR kullanımında büyük bir artış vardır.

TOR’u güvenli kılan şeylerden biri, web sitelerinden gerçek anlamda IP’nizi saklayabilmesinin yanında ISP ‘inizden trafiğinizi Phorm  gibi kötücül uygulamalara karşı gizleyebilir olmasıdır.
Phorm, servis sağlayıcıların internet hattını DPI3 ile dinlemesini, gelen giden tüm verilerinizi analiz etmesini, internet kullanımını kontrol, ifşa ve denetim altında tutmasını sağlayan sistemdir.

The Onion Network, sadece web sayfaları için değil, anında mesajlaşma yazılımları, SSH, IRC gibi sistemler için de anonimlik sağlar. TOR ile kullanmak istediğimiz uygulamanın SOCKS desteğinin olması gerekmektedir. Ayrıca TOR sadece TCP protokolünü destekler. UDP desteği yoktur.

TOR kullanım alanı açısından geniş bir yelpazeye sahiptir. Bir TOR networkünün arkasında devlet veya bir istihbarat birimi olabileceği gibi, anonim kalmak isteyen bir vatandaş, baskıcı rejimin sansürlerini delmek isteyen bir şahıs, kendi veri tabanını korumak isteyen bir gazete şirketi, anonim olarak haberleşmek isteyen bir topluluk veya bu anonimliği kullanarak suç işleyen bir şahıs-zümre olabilir. TOR anonimlik temeline dayanan bir araçtır ve bu aracı iyi veya kötü yönde kullanmak, kullananın niyetine göre şekillenir. Bu aracı kötü yapmaz, kullananı kötü yapar. Örneğin televizyon, bilgisayar, internet faydalı icatlardır ancak kötüye de kullanılabilir. Bu sıradan bir alet (çekiç, bıçak v.b) için bile geçerlidir.
Peki, TOR’un sağladığı bu “anonimlik” nedir?

Anonimlik Nedir?

Anonimlik, 2000 yılında Pfitzmann ve Hansen tarafından “özne setleri içinde kimliğin saptanamaz olma durumudur” şeklinde tanımlanmış ve literatürü genelinde kabul edilmiştir. Yani anonimlik, bir öznenin başka özneler tarafından farkedilmeden anonim olarak işlemine devam etmesidir. Bu başka özneler bir düşman, bir rakip veya potansiyel saldırgan olabilir.
Bu tanım üzerinden baktığımızda, anonimliğin gerçekleşebilmesi için, anonim kalmaya çalışan tarafın kendisi hakkında bilgi toplanmasının da önüne geçilmesi gerektiği ortaya çıkmaktadır.
Bu yüzden “ya anonimsindir ya da değil” denemez, genel anlamda yanlış bir ifade olur. Çünkü anonimlik, ölçülebilir bir kavramdır. Kişisel tehlike modellerine dayanır. Kimsiniz? Kimden gizleniyorsunuz? Nerede anonim kalmak istiyorsunuz? Ne tür bir risk alıyorsunuz? Bunların cevabını anonim olmak isteyen özne verecektir ve bu doğrultuda anonimliği ölçeklendirilecektir.
Bu durumu açıklamak için bir örnek verelim:
Anonim kalınmak istenen bir platform olduğunu düşünelim. Bu platform ip adresimizi dahi gizlemek istediğimiz olası saldırganlara karşı anonim kalmaya çalıştığımız bir warez sitesi olabilir, bir topluluğa ait üyelik gerektiren ve gönderilen post-entry gibi iletilerde bilgiler barındıran bir site olabilir, bir protokol üzerinden (FTP-SSH-VPN) bağlantı yapmanız gereken başka bir network olabilir, iletişime geçilecek bir mail adresi veya sosyal bir medya olabilir. Yukarıda sorduğumuz soruları hatırlayalım. Şimdi anonim kalmak isteyen bu kişi, aldığı önlemlerle örneğin üyelik gerektiren ve post-entry girdiği bu platformda anonim kalmayı başarmış olabilir. Veya diğer saydığımız ortamlarda. Ancak aynı anonimlik örneğin abone olduğunuz ISP(Internet service provider) firması için de geçerli olur mu? Ya da devlet bazında veya küresel ölçüde bir izleme açısından anonimlik sağlar mı? İşte tüm bunlar anonim kalmak isteyen kişinin kim olduğu, kimden gizlendiği, nerede anonim olmak istediği, ne tür bir risk taşıdığı ve tüm bunların sonucunda ne tür bir önlem aldığıyla ilişkili. Bir platformda anonim olmanız, sizi tamamen hayalet yapmaz. Yine aynı şekilde siz sadece bir platform içerisinde anonim olmak istiyorsanız, bir ISP’den gizlenir gibi önlem almanız gerekmez. Bunlar anonimin kişisel tehlike modeline bağlı yapılacak işlemlerdir.

Tor Devresi ve Çalışma Mantığı

Çalışma mantığını iyi anlatabilmek için ilk olarak örneklerden ve şemalardan yararlanacağız.
Evden çıktınız ve bir yere gideceksiniz. Ancak gideceğiniz yerin gizli kalmasını istiyorsunuz ve peşinizde sizi takip eden biri var. Siz de gideceğiniz yer belli olmasın diye ara sokaklardan geçerek izinizi kaybettirmeye çalışıyorsunuz. İşte Tor devresi, en kaba haliyle bu şekilde çalışır.
The Onion Router, işlemleri internet üzerindeki birden fazla alana dağıtarak riski en aza indirmeyi hedefler. 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.

Aşağıdaki görsel şemalar TOR projesinin resmi sitesinde kullanılan şemalardır. Şemada Alice “Tor İstemcisi” oluyor, yani bu durumda, anonim kalmak isteyen biz oluyoruz. Jane ve Bob varılmak istenen hedef sunucular. Orada bir web sitesi veya çok farklı bir platform olabilir. Tor Node olarak belirlenen semboller düğüm-relay diye adlandırabiliriz. Buraları izimizi kaybettirmek istediğimiz sokaklar olarak düşünebilirsiniz. Yeşil oklar şifreli bağlantıyı, kırmızı oklar şifresiz bağlantıyı temsil ediyor.

Şöyle bir listeleme yaparak daha anlaşılır bir hale getirelim:

Alice: Anonim olmak isteyen kişi, misal biz.
Jane & Bob: Varılmak istenen sunucular. Bu sunucularda bir web sitesi veya başka bir platform olabilir.
Yeşil Ok: Bağlantının şifrelenmiş olduğunu gösterir.
Kırmızı Ok: Şifresiz bağlantıyı gösterir.
Tor Node: Bu düğümleri, varmak istediğimiz yere giderken izimizi kaybettirmek için girdiğimiz bağlantılar olarak düşünebiliriz.
Dave: Karşı tarafa şifreli bir şekilde ulaşabilmek için gitmemiz gereken şifreli yolun haritasını bize veren dizin sunucusu.

Tor istemcimiz (Alice), ağa bağlandığında öncelikle dizin sunucusundan (Dave) şifreli bir bağlantı ile dolanacağı Tore node’larının listesini alır. Bu liste mevcut duruma göre rastgele oluşturulur. En kısa yolu bulmak, en hızlı yolu bulmak gibi bir algoritması yoktur. Alice bu node’lar vasıtasıyla hedef sunucuya (jane veya bob) kadar şifreli bir dolaşım kurar. Her node bir atlamaya sahiptir. Yani şifrelenmiş bağlantı node’a ulaştıktan sonra(yeşil oklar), sonraki node’a giderken farklı bir anahtarlamayla şifrelenir. Bir node’a ulaşırken kullanılan anahtarlama, bir başka node’a ulaşmak için kullanılamaz. Ve her node sadece hangi node’ın kendisine veriyi getirdiğini ve hangi node’a vereceğini bilir. Node’ların hiçbiri, tek başlarına tüm güzergahı bilmezler. Son node, “exit node”olarak adlandırılır.

 

Şekil üzerinden şöyle bir örnek verebiliriz: Alice(tor istemci), Jane’e(hedef sunucu) ulaşabilmek için Dave aracılığıyla rastgele bir dolaşım yolu belirler ve güvenli ara sokaklardan (şifrelenmiş yeşil ok) sadece bir kez geçerek Jane’e gider. Geçtiği ara sokaklar ise sadece hangi sokaktan geldiği ve hangisine gittiğini bilir. Tüm yolu bilemez ve ara sokakların hepsi farklı bir anahtar ile açılır.

Tor, daha etkili olabilmek için bir bağlantıya giden dolaşımı yaklaşık 10 dakika boyunca kullanır. Bu sürenin sonunda aynı bağlantıya farklı yollardan gider. Sonraki istekler, mesela yeni bir web sitesi ziyaret etmek isterseniz, örneğin Bob sunucusu, yeni bir dolaşım üzerinden yapılır. Bu yöntem, size ağda yaptığınız her farklı istek için farklı bir yol belirler. Örneğin ard arda iki farklı siteye giriş yaptığınızda birincisi ile ikincisi arasında kat ettiğiniz yol farklıdır. Böylece, bir önceki dolaşımla yaptıklarınızı yenisiyle ilişkilendirmek isteyenleri engellemiş olur.

Tüm bu anlattığımız çalışma prensibine “Tor devresi” denir.

Tor Devresi’nin nasıl çalıştığını daha iyi anlamak için, devre elemanlarını ve kullanılan yöntemleri daha ayrıntılı incelememiz gerekir.

Directory Server

Directory Serverlar TOR network içerisinde önceden belirlenir. Bir TOR ağı kurmak için gereken temel şartlardan birisidir. Tor client, hedefe gitmeden önce, bir Directory Serverdan yol haritası alır ve hedefe o aldığı yol haritasındaki Tor düğümleri(Tor Node) üzerinden gider. Bu alınan Tor Nodes listesi yaklaşık 700-800 KByte boyutundadır ve içerisinde Tor Network’ünü oluşturan tüm Tor Server’ların anahtarlarını, Exit Policy’leri gibi bir çok bilgiyi içerir.

Tor düğümleri kendi hakkında imzalanmış veriyi tespit edebilmek için tıpkı bir HTTP Server gibi davranırlar. Bu sayede Tor istemcileri bu veriyi indirerek verinin ulaşması gerektiği yere ulaşmasını sağlarlar.
Dizin sunucuları tarafından dağıtılan veriler imzalanmıştır. Bu imzaları doğrulamak için lazım olan anahtarlar Tor yazılımında dizin sunucularının listesinin yanına önceden yüklenmiştir. Bu dizin sunucuları ve Tor istemcileri arasında güven anlamına gelir.
Önceden aktif kullanılan “Onion Routing” anonim ağında bu sistem yerine, in-band status updates) olarak adlandırılan, güvensiz dağılmış bir düğüm keşif mekanizması kullanıyor. Bu durum güncellemesi esnasında her düğüm, bilinen düğümü bir komşusuna yayınlararak ağ dağılımı sağlanıyor. Bu yüzden Orjinal Onion Router network’unde ağ dağılımı yavaştır. Ağ dağılımı böyle olduğu zaman ise bir saldırgan, zararlı düğümler aracılığıyla bağlantıyı zorlayarak, istemci bilgilerine ulaşabilir hale geliyor. Bu nedenle TOR daha gelişmiş bir yöntem olarak Directory Server ile ağ dağılımını yapmaktadır.

 

Tor Nodes (Tor Düğümleri)

Tor network’unü oluşturan yapıtaşlar düğümlerdir. Ağdaki yönlendirmeler, relay nodes olarak da bilinen düğümler tarafından yapılır ve her düğüm, TLS bağlantısıyla başka bir düğüme bağlıdır.

Directory Server’dan alınan her devrenin 3 tip Tor düğümü vardır. Bunları inceleyecek olursak;

– Entry Node(Giriş Düğümü)
Direkt proxye bağlıdır ve başlangıç noktası olarak bilinir.

– Relay Node
Ortadaki düğümdür. Giriş düğümü ve çıkış düğümünü birbirine bağlar.

– Exit Node(Çıkış Düğümü)
Bu düğüm hedef sunucuya bağlantı sağlayacak son noktadır. İstemcinin son durağını belirleyebilen tek düğümdür. Ayrıca bu düğümler hedefe şifresiz gittiklerinden, bu düğümü çalıştıran kimse gelen ve giden verileri okuyabilir. İletişimlerin bu noktasında dinleme (eavesdropping) olabilmektedir. O yüzden “end-to-end encryption” kullanmak önemlidir.

Yukarıdaki resim ile sistemi özetleyecek olursak;

İlk olarak User, Directory Server’dan dizin isteğinde bulunur ve verilen Directory Server yardımı ile kesik çizgiler içerisindeki harita oluşturulur.

Sırasıyla Entry Node – Relay Node – Exit Node üzerinden geçilerek Internet erişimi sağlanır.

Şifreleme

Bu konudan Anahtar Değişimi (Key Exchange) ve Şifreleme olarak iki başlık altında bahsedebiliriz. Düğümler için aşağıdaki görsel üzerinden gidelim.

Anahtar Değişimi

İlk olarak X düğümüne bağlanılarak ‘Diffie Hellman Key Exchange’ algoritmasına göre bir key belirlenir. Bu durumda X düğümüne doğrudan bağlandığımız için, X düğümü bizim kimliğimizi bilir.

Daha sonrasında Y düğümüne, X düğümü üzerinden erişerek ortak anahtar oluştururuz ve Y düğümünün bizim kimliğimizden haberi olmaz. Çünkü Y düğümü konuşmasını X düğümü ile yapmıştır diye düşünebiliriz.2.3.2 Şifreleme

Gönderilecek data, son düğümden başlanarak (Z node), düğümlerin public keyleri ile şifrelenir. Bu işlem yapıldığında şifreli verinin başına ‘header’ eklenir.

Public ve private keyler kullanıldığı için asimetrik bir şifrelemedir fakat her düğüm verinin başına kendine ait bir header eklediği için yapısı simetrik olan blok şifrelemeye benzer ama değildir.

Şifrelemeyi formülize edecek olursak;

En( En( En( mesaj, pKZ ), pKY ), pKX )

şeklinde olacaktır. Burada  “En“, şifreleme fonksiyonumuz, “mesaj” verimiz ve “pKX”, “pKY”, “pKZ” ler ise düğümlere ait public keylerimizdir. Bu şekilde kapsüllenerek şifreleme yapılır.

Bu işlem sonucunda veri en son X düğümünün public key‘i ile şifrelenmiş olacaktır. Neden böyle olduğunun cevabını ise, şifrenin çözüm aşamasında anlatacağım.

Aşağıdaki görsel ile şifreleme yapısı daha iyi oturacaktır.

 

 

Decrypt (Şifre Çözümü)

Tahmin edeceğiniz şekilde şifrelenme mantığının tam tersi işlenerek yapılır. İlk olarak şifrelenen paket ilk düğüme(Entry Node) gider ve düğümün sahip olduğu private key ile şifrelenen paket çözülür. Asimetrik şifrelemeden bileceğimiz üzere, bir düğümün public key‘i ile şifrelenmiş bir veriyi ancak o düğümün private key‘ini kullanarak açabiliriz.

Çözülen veride sadece geride bırakılan paketin hangi düğüme gönderileceği görülebilir. Veri içeriğine dair görüntülenebilecek hiç bir şey yoktur.

Daha sonra private key’ini kullanarak şifreyi çözmüş olan düğüm, şifreyi çözdüğünde açığa çıkmış olan ip adresine şifreli veriyi gönderir. Paketi alan düğümde kendi private key’ini kullanarak şifreyi çözer ve bu döngü son düğüme kadar devam eder. En son açığa çıkacak olan şey tahmin ettiğiniz üzere “veri” olacaktır.

Bu işlemi de aşağıdaki resim ile özetleyebiliriz.

 

 

 

Hidden Service Protokolü

Protokü anlatmadan önce Hidden Service nedir kısaca ondan bahsedelim. TOR networkü, bizim bildiğimiz internet sunucuları dışında, Hidden Service olarak adlandırılan farklı bir protokolle haberleşen sunuculara da erişim sağlar. Hidden Service, bilinen diğer adıyla deepweb bağlantıları, Tor devresi ve buna ek olarak tor kaynaklı bazı protokoller ile artırılmış güvenlik sağlar.

Hidden Service sunucuları bildiğimiz internetten ayrılmış, arama motorlu tarafından bulunamayan, hiçbir botun erişemediği, normal tarayıcılarla girilemeyen (firefox, chrome, explorer, opera, safari vs), tor anahtarlama gerektiren bağlantılardır. Pseudo-top-level Domain’e sahiptirler. Yani belirli bir isimleri yoktur. Domainler aylık, haftalık, günlük hatta saat başı değişebilir ve genelde tamamen rastgele sayı ve harf anahtarlarından oluşurlar. Uzantıları. com, .net, .org gibi bildiğimiz satın alınan uzantılardan değil, .onion’dur. Bu sunucular, ister bir web sitesi barındırsın ister başka bir sistem, devletler tarafından kapatılamaz, sansürlenemez ya da erişimi engellenemez.

Örnek olarak bir hidden service sitesi paylaşalım: kpvz7ki2v5agwt35.onion

Bu site(hidden wiki) yapısı gereği herkes tarafından rahatlıkla bulanmak istendiğinden Pseudo-TLDomain’e sahip olmasına rağmen ismini değiştirmez. Şimdilik daha fazla Hidden Service içeriği üzerinden durmuyorum. Bu makalede HSP için yalnızca teknik açıdan incelemeye yer vereceğiz.

Hidden Service Porotocolünü şemalar yardımıyla anlatalım. Bu şemalarda ana nokta şu:  Gördüğünüz tüm yeşil bağlantı okları aslında biraz önce anlattığım “tor devresini” temsil ediyor. Yani her yeşil bağlantıda aslında veri doğrudan gönderilmeyor. Veri şemada görünmeyen ancak yukarıda anlattığımız tor devresi üzerinden gidiyor. Bu bağlantıda arada en az 3 node daha var ve bu nodelar kendi aralarında anahtarlama yaparak iletişim kuruyorlar. Yani yeşil okların, yukarıda nasıl çalıştığını anlattığımız tor anahtarlama kullanan güvenli bağlantılar olduğunu bilerek şemaları takip edelim.


Kendisinde çalıştırılacak bir hidden service ( deep web)  bulunan BOB kendisine bir kaç tanışma noktası seçiyor ve onlara birer tor devresi kurarak ulaşıyor.

Seçtiği tanışma noktalarının listesini + public keyini + 16karakterrandom.onion adresini TOR’uüun ana veri tabanına yolluyor. Ve yine bu işlemleri (yeşil bağlantılar) tor devresi kurarak yapıyor, bu sayede kimliği belli olmuyor.

Bir yerlerden 16karakterrandom.onion domaininin deep web de bulunduğunu öğrenen (arkadaşı söylemiş olabilir ya da hidden wiki de bulmuş olabilir) ALİCE veri tabanına gidip 16karakterrandom.onion adresinin public keyini ve tanışma noktalarının listesini alıyor, ayrıca kendi kafasından bir randevu noktası belirleyip onu da hafızasında tutuyor.
Burada yapılan tüm yeşil bağlantılar da tor devresi, yani +3 bilgisayar içeriyor.

Tanışma noktalarından birisine gidiyor ve oraya, BOB’un public keyi ile şifrelediği, kendi belirlediği randevu noktası + cookie’sini bırakıyor. Tanışma noktalarını zaten dinleyen BOB, bu mesajı alıp kendi private keyi ile açıyor ve randevu noktasının adresini öğreniyor.

Bu randevu noktasına, ALİCE den aldığı cookie ile gidiyor ve orada buluşuyorlar.

Artık birbirleri arasındaki iletişime normal bir ağda olduğu gibi devam ediyorlar. Ancak iki taraf da randevu noktasına tor devresi ile ulaştığı için aradaki 3+3 toplam 6 adet daha bilgisayar oluyor ve bu sayede iki tarafında IP adresi gizli kalmış oluyor birbirlerine karşı.

HSP Güvenlik Analizi

Hidden Service Protolü, web sitelerden IP’nizi saklayabilir veya ISS’inizden trafiğinizi Phorm gibi kötücül uygulamalara karşı gizleyebilir. Tabi devamlı kullanımda ISS’iniz trafiğinizi göremediği için rahatsız olacaktır. Fakat küresel ölçekte bir izleme, dinleme, takip olduğu zaman, Tor bunun için yetersiz kalacaktır. Ayrıca, bu Tor’un hatası veya eksik olmasından kaynaklanmamaktadır. Çünkü anonim olmayan bir internet üzerinde kendi anonim networkünüzü kullanıyorsunuz. Burada ne kadar çok şey denerseniz deneyin %100 başarılı bir sonuç elde edemezsiniz. Bu noktada başta belirttiğim anonimlik ölçeklemesi çok önemli bir etkendir.

Tor’da eskiye nazaran “relay” oluşturmak ve çalıştırmak giderek kolaylışmış durumda. Tabi aynı hızla bunların “dinlenmesi” de arttı. Bununla ilgili olarak, Freedom Hosting’e yapılan FBI baskını, ardından Hidden servis’te zararlı javascript bulunması en güncel örnektir.
Ayrıca, Tor kullanıcılarının gerçek kimliklerinin “relay gönüllüleri” tarafından ele geçirilmesi bunlara paralel olarak daha basite indirgenmiş durumda. Bu relay gönüllülerine, Tor’un sosyal mühendisleri olarak bakabilirsiniz. Bir Tor kullanıcısı günümüzde, eğer 3 ay boyunca düzenli Tor kullanırsa, örneğin IRC’ye bağlanmak, internette sörf yapmak gibi, bu relay gönüllüleri tarafından gerçek kimliğinin öğrenilme olasılığı %50, eğer 6 ay düzenli kullanırsa bu olaslılık %80′lere çıkmaktadır. Tabi bunlar sadece olasılık. Yıllarca düzenli Tor kullanıp anonim kalabilirsiniz de. Bu konuyla ilgili Cryptome tarafından yazılmış “Users Get Routed: Traffic Correlation on Tor by Realistic Adversaries” raporlarını incelemenizi tavsiye ediyorum.
Tor’un böyle bir sorununu ortadan kaldırmak için “traffic padding“‘i öneren kullanıcılar mevcut. Kısaca traffic padding’i anlatmak gerekirse; bir veri akışındaki paketlerinizi gizlemektir. Günümüzdeki problem basitçe şudur; X paketini gönderirken beraberinde Y paketini alıyorsunuz ve bu işlem devamlı birbiriyle bağlantılı haldedir. Bu veri transferleri her zaman ve gerçek trafiğinizin bir kısmını içeren verilere sahiptir. Traffic padding ise bu noktada devreye girer ve sahte veri yığını göndererek trafiğinizi izleyen 3. şahıslar için X paketi ile Y paketi arasındaki bağlantıyı kolayca anlayamamasını sağlar. Watermarking saldırıları, eğer trafik yapısına gömülmüşse, onun alıcısını eşsiz olarak tanımlar. Daha sonra ise bu alıcı ile orjinal gönderen de eşsiz olarak tanımlanır. Bu saldırının başarılı olabilmesi için de saldırganın potansiyel göndericiler ve alıcılardan oluşan veri akışını monitörlemesi ve sarsıma uğratması gerekir. Bunu yapabilen saldırgan ise büyük bir yapılanma olabilir ancak. Bir devlet veya bir teşkilat. Yine burada anonimlik ölçeklemesi bize ışık tutuyor.
Traffic padding beraberinde çeşitli sıkıntıları da getirir. Sörf gibi, chat gibi low-latency işlemleri için büyük bir yüktür. Tahmin edildiği gibi çok büyük bir yardımı olmayabilir. Burada belki i2p modeli işe yarayabilir. i2p’de herkes node’dur. Böylece kendi trafiğinizi sizin bilgiyarınıza gelen ve giden diğer trafik akışı içinde gizleyebilirsiniz. Açıkçası, Tor ve genel olarak bu durum gerçekten zor ve akademik düzeyde bir problemdir. Bir çözüm olarak, günümüz Internet’i yerine Meshnet gibi kendi internetimize ihtiyacımız vardır. Çünkü, şu anki Internet boğulma noktalarından devamlı izlendiği, takip ediliği, kaydedildiği ve kullanıcıları fişlediği için Tor gibi anonim network’lerin %100 başarılı olması zordur. Günümüz Internetinin trafik akışı çoklu sekmelerden ve her adımı kriptolanmış ve anonimleştirilmiş yollardan akmamaktadır.
Buraya kadar HSP dahil hiçbir sistemin, mevcut internet anlayışı içerisinde yüzde yüz güvenlik sağlayamayacağını, anonimliğin kişi-kurum bazında ölçeklenebilir bir kavram olduğunu anladık. Şimdi ise doğrudam Hidden Service Protokolü üzerinde güvenlik analizi yapacağız.

Exit Node Sniffing

Tor networkü üzerinde en zayıf halka diyebileceğimiz nokta exit nodelardır. Çünkü illk noktadan, son TOR düğümüne kadar iletişim şifrelidir. Her bir TOR düğümünden veri iletilirken şifrelenir ve bir düğüm sadece kendisine veriyi yollayan ve o veriyi göndereceği düğümü bilir. Yolun tamamını bilemez. Ancak TOR çıkış düğümlerinde (exit node), hedef sunucuya ulaştırılacak veri decrypt edileceği için, çıkış düğümü üzerindeki trafik izlenirse verilere ulaşabilmek mümkündür. Ek olarak, isteyen herkesin kendi sistemini TOR çıkış düğümü (exit node) olarak TOR ağına dahil etmesi mümkün olduğu için potansiyel olarak çok ciddi güvenlik ve gizlilik sorunları mevcuttur.Pek çok exit node oluşturularak decrypt olmuş tor verilerine ulaşılabilir. Ulaştıkları veriler tüm haritayı çözmelerine, kimlik tespiti gibi işlemlere elbette yetmeyecektir ancak gönderilen verilerin şifresiz bir şekilde elde edilip okunabilmesi büyük bir risktir.

TOR Çıkış Düğümü üzerinde bir saldırıya uğramamak için yapılması gereken şey, TOR üzerinden yönlendirmesini yaptırdığınız protokol seviyesinde mümkün olduğunca şifreleme kullanmak. Web trafiği için HTTPS, FTP trafiği için FTPS gibi. Alınabilecek önlemler 
üzerinde daha sonra durağım.


Tor Relay Node Kayıtları

TOR sunucularının kayıt (log) tutmayacağı en genel yanlış algılardan birisidir. Evet tor yönlendirmesini yapan yazılım ve devreler log tutmamaktadır lakin bu sistem üzerinde loglamanın yapılamayacağı anlamına gelmemektedir.

TOR yönlendirme trafiği şifreli olduğu için sadece bir önceki düğüm ve bir sonraki düğümün bilgisi ele geçirilebilir. TOR çıkış düğümündeki trafiğin tamamen şifresiz olduğunu bir önceki adımda söylemiştik. Eğer bir TOR devresini (bir noktadan diğer noktaya giderken trafiğin üzerinden geçtiği bütün TOR düğümleri) oluşturan bütün düğümler aynı gücün kontrolü altında ise, bütün düğümlerde loglama ve çıkış düğümünden trafiği geriye doğru takip ederek hedeflenen trafiğin kimliğinin açığa çıkartılması mümkün olabilmektedir.

Kendi sisteminizi TOR networküne düğüm olarak dahil etmek ve sonradan networkü loglamak yeterli. Söz konusu TOR networku tarafından sağlanan yazılım üzerinde log tutulmasa bile, kendi sisteminiz ya da networkunuzu izleyerek, trafik hakkında minimum düzeyde de olsa bilgi sahibi olabilir ve bunu kayıt altına alabilirsiniz.

Binlerce düğümün olduğu bir ağdan rastgele seçilen düğümlerin tamamını elde etmek kolay bir şey değildir. Elde edilen veriler de şifrelenmiş olduğu için, bu verileri birleştirip bir ağ analizi yapmak çok güç bir durumdur. Buna rağmen bir güvenlik riski olarak tanımlayabiliriz.

Agent Entry Node

TOR giriş düğümünün kötü niyetli birine ait olması durumunda o giriş düğümü üzerinden TOR ağını kullanan bütün bireylerin İP adresleri açığa çıkacaktır. Trafiğin içeriği, TOR trafiğinin şifreli olması sebebiyle anlaşılmasa bile zamanlama, profil çıkarmak, farklı noktalarda toplanan bilgilerin korelasyonu gibi ekstra metodlar ile bunu daha da ileri götürmek mümkündür.

 

Bu durumun olasılığını düşürmek için TOR “Entry Guard” adında bir sistem kullanmaktadır. Kabaca TOR istemci uygulaması bir kaç rastgele TOR düğümü seçer ve giriş düğümü olarak hep bu düğümleri kullanır. Bu binlerce düğüm arasından seçilen bir kaç tane düğümde sorun yok ise bu tehdit sizin için ortadan kalkmış demektir. Ama düşük ihtimal gerçekleşir ve şansınıza kötü niyetli biri tarafından kontrol edilen bir sistem gelirse bu maddede anlatılan sorundan etkilenebilirsiniz.

 

Tor Networküne Eklenti Dopingi

Tor Browser kullanırken anonimliğinizi artırmak ve bunun yanı sıra başka ihtiyaç duyulabilecek işlemleri yapmak için bazı eklentilerden kısaca bahsedeceğim. Tor networküne servis olarak değil de browser ile bağlananlar için özellikle gerekli olabilecek eklentiler mevcut.


Adblock Edge

Adblock Edge, Adblock Plus’ın forklanmış halidir. Kendi tanımında da yazdığı üzere farkı; Plus maddi kazanç sağlamak için bazı reklamlara (acceptable ads) izin vermektedir, Edge’de ise izin yoktur. Reklamlar görüntülenebilmek için bazı bilgilere ihtiyaç duyarlar. Bunların tamamiyle engellenmesi anonimlik için önemlidir.

Cryptocat

Tarayıcı üzerinden şifreli ve gizli mesajlaşmak ve sohbet (OTR) için şimdilik en iyi eklenti. Ayrıca, grup özelliğine sahip olduğu için birden fazla kişi ile bir grupta toplu yazışma yapabilirsiniz. Bilinmesi gereken en temel şey, normalde Cryptocat kullanırken IP adresiniz gizlenmiyor ve bu yüzden takip edilebilme olasılığınız vardır. Tor ağı üzerinden Cryptocat kullanarak bunu da aşabilirsiniz. Bunun için custom server’dan Tor Hidden Service’i seçebilirsiniz.

FoxyProxy Standard

Tor’a özel olmayan standart bir eklentidir aslında. Ancak Tor’u servis olarak kurduysanız ve tarayıcınız üzerinden tor ile çıkış yapmak istiyorsanız, kullanabileceğiniz en iyi eklentilerden biridir.

HTTPS-Everywhere

Birçok website https yapısına sahip olsa bile ziyaretçileri http üzerinden karşılamaktadır. Bu eklenti ise güvenli olmayan http bağlantısını -eğer website sahipse- https olarak yeniden yazar ve kullanıcıları şifreli bir bağlantı ile karşılamaya zorlar. Tor için olmazsa olmazdır. Özellikle exit relay saldırıları için en temel ihtiyaçtır. Fakat hala ısrarlar birçok website https kullanmamakta ve SSL sertifikası için para ödememektedir. Ayrıca, tavsiye olarak SSL Oberservation özelliğini aktif edin. Bu sizlere eğer bir man-in-the-middle saldırısı varsa bilgi verecek ve eklentinin daha iyi geliştirilmesi için EFF‘ye anonim rapor gönderecektir.

Mailvelope

Tarayıcı üzerinden OpenPGP şifreli e-posta göndermek için en iyi eklenti. Grafik arayüzü, hazır gelen servisler (Gmail, Yahoo vs.), anahtar yönetimi ile son kullanıcıya yönelik ve bu işi de en basit şekilde yerine getiriyor. Artık günümüzde şifreli e-posta göndermek bir zorunluluk olduğu için denenmesinde fayda var.

NoScript

Websiteleri üzerinde gelen JavaScript, Java, Flash, Silverlight ve diğer çalıştırılabilir eklentilerin kontrolünü ve iznini kullanıcıya bırakarak bu eklentilerden gelebilecek veri toplama ve saldırıları engeller. Freedom Hosting baskını sonrası kesinlikle olmazsa olmaz bir eklentidir.

RequestPolicy

Şöyle düşünün, bir websiteye herhangi bir makaleyi okumak için girdiniz, bu site üzerinde sunulan içerik olarak bir Youtube videosu da var, bu videoyu izlemeseniz dahi tarayıcınız Youtube’dan gelen isteği yanıtladı, ayrıca bir de Analytics mevcut. Böylelikle Google, Analytics ve Youtube ile sizin girdiğiniz siteyi ve okumak istediğiniz makaleyi, bu site üzerinde ne kadar vakit harcadığınızı öğrenerek sizin profilinizi çıkarmaktadır. RequestPolicy ise bu websitelerden gelen istekleri otomatik olarak engelliyor. Yönetim işini kullanıcıya bırakıyor. Diğer yandan XSS veya CSRF gibi saldırıları da bu şekilde engellemektedir. NoScript ile birlikte müthiş bir ikili oluşturur.

Secret Agent

Cookieless Cookies adlı yöntemle, bir sayfayı “çerezler ve JavaScript kapalı, VPN üzerinden” ziyaret ettiğiniz zaman bile takip edilebilirsiniz. Kısaca Etag (entity tag) kavramını açıklayayım. Etag, http’nin parçası olan bir protokol olup, bir URL’de gelen içeriklerin (gif, jpeg, js vs.) değişip değişmediğini doğrular ve her içeriğe özgü bir etag (checksum, sağlama toplamı) atar. Eğer URL’deki içerik değişmişse yeni bir etag atanır. Bir örnek verelim; bir sayfaya girdiniz, sayfada bir jpeg var. Bu jpeg’in kendine ait bir etag’ı mevcut. Tarayıcı jpeg’i açtığı ve etag’ı öğrendiği zaman sunucuya doğrulama için bilgi gönderir. Sunucu jpeg’de bir değişklik olup olmadığını kontrol eder. Eğer yoksa jpeg’i yeniden almaya gerek kalmaz ve böylece gereksiz veri akışından kurtulunur. Ziyaretçilerin takibi ise bu yöntemle olmaktadır. Çünkü sunucu her tarayıcıya has bir etag verecek ve veritabanından da bunu kontrol edecektir. Bunu aşmada Self-Destructing Cookies’in yanısıra Secret Agent eklentisi de işe yaramaktadır. Tarayıcının useragent’ını düzenli olarak değiştirerek devamlı farklı etag’ların oluşturulmasını sağlar ve bunlar üzerinden gerçekleştirilecek takibi aşmaya çalışır. Whitelist’e sahip, böylece güvendiğiniz websitelerini buraya ekleyebilir ve sorunsuz kullanabilirsiniz.

Self-Destructing Cookies

Otomatik olarak kullanılmayan çerezleri temizleyen bir eklenti. Ayrıca bir whitelist’e de sahip. Buraya güvendiğiniz websiteleri girerek diğer sitelerden gelen çerezlerin belirli bir zaman aralığında otomatik ve kalıcı olarak silinmesini sağlayabilirsiniz. Böylelikle farkında olmadan çerezler tarafından gözetlenmenin de önüne geçersiniz.

TinEye Reverse Image Search

Bir imajın sahte olup olmadığını anlamanın en iyi yolu bu eklentiden geçiyor. Örneğin Twitter’da paylaşılan bir fotoğrafın o ana ait olup olmadığını merak ettiniz. Bu eklenti ile fotoğrafa sağ tıklayarak TinEye’ın devasa veritabanında aratabilir, daha önce kullanılmışsa hangi sitelerde ve ne zaman kullanıldığını görebilirsiniz. Dezenformasyona karşı ilaç gibi gelecektir.

WebPG

WebPG’de tıpkı Mailvelope gibi GnuPG/PGP şifreli e-postalar göndermenizi sağlayan gayet kullanışlı bir eklenti. Bazı web arayüzleri ile sıkıntıları giderilebilmiş değil ama basit bir kullanıma sahip. Sisteminizde ekli olan size ve arkadaşlarınıza sahip tüm anahtarları otomatik olarak almakta.

Tor Filtering

Bu konfigürasyonda amaç, tüm veri akışlarını tor üzerinden yapmaya zorlamak ve tor hariç gelen ve giden tüm bağlantıları keserek tamamen tor networküne odaklı bir yapı oluşturmak. Bunu tor için bir entry, relay ya da exit node oluşturmak istiyorsanız veya kişisel bir tor bağlantı çıkışı yapmak istiyorsanız kullanabilirsiniz. 
Ancak bu işlemin anonimlik seviyesini oldukça artırdığını söyleyebilirim. Freedom Hosting saldırısındaki gibi istemciniz exploit edilse dahi bilgisayarınızın başka bir sunucuyla doğrudan bağlantıyı engelleyeceği için gizliliğinizi korumuş oluyorsunuz.
Konfigürasyonlar için ben Ubuntu kullanacağım. Tüm debian tabanlı dağıtımlar için aynı ayarlama geçerlidir.
Tüm işlemleri terminal üzerinden yapacağız. CTRL + ALT + T kısayolu ile terminali açıp komutları giriyoruz:


sudo iptables –F
sudo iptables -P INPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
sudo iptables -P OUTPUT ACCEPT
sudo iptables -P INPUT DROP
sudo iptables -P OUTPUT DROP


sudo iptables -I INPUT -j ACCEPT -i lo -p tcp –dport 8118:9050 –sport 1:65000
sudo iptables -A OUTPUT -j ACCEPT -o lo -p tcp –dport 1:65000 –sport 8118:9050
sudo iptables -A OUTPUT -p tcp -j ACCEPT -m owner –uid-owner earas -o lo
sudo iptables -A OUTPUT -p tcp -j ACCEPT -m owner –uid-owner root -o lo

sudo iptables -A OUTPUT -p tcp -j ACCEPT -m owner –uid-owner proxy -o lo

NETDEVICES=`ifconfig -a | grep Ethernet | cut -d’ ‘ -f 1 | xargs`

for DEVICE in $NETDEVICES

do

iptables -A OUTPUT -p tcp -j ACCEPT -o $DEVICE -m owner –uid-owner debian-tor

iptables -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT

done

Artık bu bilgisayar üzerinden sadece tor ağına erişim mevcut. Firewall üzerinde oluşturduğumuz kuralları incelediğinizde daha anlaşılır olacaktır. 
Kuralları kısaca şöyle özetleyelim:
8118 (privoxy) ve 9050 (TOR socks proxy) portları arasınındaki tüm portlara lo (loopback) arayüzü üzerinden erişilebilmesini ve bu portların da kendilerine erişen diğer istemcilere yanıt verebilmesini sağlıyor.

earas, privoxy ve root kullanıcılarının processlerine de yine loopback arayüzü üzerinde istedikleri porta paket yollayabilmelerini sağlıyor. Bu kural sayesinde örneğin çalıştırdığımız Firefox yazılımı 8118’den çalışan privoxy yazılıma erişebiliyor, bir önceki kural itibariyle de privoxy TOR’a erişebiliyor.

En alttaki döngü içerisinde de sadece debian-tor kullanıcısına ait olan process’lerin (TOR uygulaması) diğer interface’ler üzerinden paket yollayabilmesine izin veriliyor

Ek bilgi olarak, aşağıdaki betikle tüm IPTables kurallarını sıfırlayabilirsiniz:

iptables –F
iptables –X
iptables -t nat –F
iptables -t nat –X
iptables -t mangle –F
iptables -t mangle –X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT

 

Tor Paket Analizi

Tor üzerinden geçen paketlerin şifrelenerek gittiğini söylemiştik. Ancak bu şifreleme örneğin bir VPN şifrelemesinden çok daha farklı bir yapıdaydı. Öyle ki verinin üzerinden geçtiği nodelardan birine sahip bile olsak, yolun tamamını bile öğrenemiyorduk. Bu nedenle iç networkte olan veya doğrudan node üzerinde erişime sahip olan birisi bile verileri izleyemiyordu. Bir VPN bağlantına dışarıdan erişilemese de içeride olan biri networkü izleyebilir. Ancak Tor için bu durum geçerli değildir. Bunu daha iyi görebilmek için Fedora makinemizin üzerindeki paketler Wireshark ile analiz ettik.

İlk olarak normal bir bağlantıyı izlediğimizde çıkan sonuçlara bakalım:

 

Görüldüğü gibi girdiğim siteler, dns sorguları, kullandığım tarayıcı, kullandığım işletim sistemi, sistemin dil ayarları, çerezlerden çektiği parolalar gibi pek çok şey görünüyor. Ayrıca sadece bizimle ilgili değil, karşıdaki sunucuyla ilgili de pek çok bilgi mevcut. Sunucun IP adresi, uğradığı yerler, hangi klasörün içinde ne olduğu, içeriye hangi portlar girdiği hatta web sitenin CSS bilgisine kadar pek çok konuda bilgi toplayabilmiş.

Şimdi bu analizi tor üzerinden web sitelere giderken yapalım:

Gördüğünüz gibi içeride dönüp duran TCP sorguları dışında hiçbir şey yok. Bırakın verileri okumayı bir HTTP protokü olduğunu bile tanımlayamıyor.

M.Fevzi Çelik

M.Fevzi Çelik

Seo geek by day, blutbad by night.

Bir yorum yap

520+ Abone Arasına Katıl !