Tag Archives: windows

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.

Unbound

Bugün, Google da Türk Telekom’un hukuki bir dayanak olmadan DNS sunucularını yönlendirdiğini ve Türkiye’deki Internet kullanıcılarının fişlendiğini belirten bir değerlendirme yaptı. İletişim özgürlüğüne ve özel hayatın gizliliğine yapılmış sayısız ihlale bir yenisinin daha eklenmesinin yanında henüz TİB ve Türk Telekom’dan da konuyla ilişkili bir bilgi verilmedi. Türkiye’de Google ve Open DNS sunucuları hukuka aykırı ve hiçbir dayanağı olmadan Türk Telekom’a yönlendiriledursun, bu durumu aşabilmek için çeşitli yöntemler de mevcuttur. Bunlardan biri GNU/Linux altında Unbound kurarak kullanıcı kendini DNS önbellek zehirlemesinden ve sahte yönlendirmelerden koruyabilir. Ayrıca, özellikle DNS sorgusunda araya girilmediği ve yapılan sorguların bu şekilde elde edilmediği takdirde de gayet iyi bir yöntem olacaktır.

Unbound; önbelleğe sahip ve DNSSEC doğrulaması yapan bir DNS çözümleyicisidir. Harici bir DNS sunucusuna ihtiyaç olmadan DNS çözümleme işlemini yerine getirir. İstenildiği takdirde harici DNS sunucusu da kullanılabilir. Bununla birlikte, DNSSEC ise Türkiye örneğindeki gibi kullancıyı ve uygulamayı manipüle edilen DNS verilerinden sahip olduğu dijital imza ile koruyan bir özelliktir. Biz ise örneğimizde DNSSEC doğrulaması yapan ve yerel bir DNS çözümleyici için Unbound kurup ayarlayacağız. İlk olarak, Türkiye’deki OpenDNS, Google DNS ve İSS’lerin kendi DNS sunucularının verdiği çıktıya bakalım:

nslookup twitter.com
Server:    192.168.1.100
Address:   192.168.1.100#53

Non-authoritative answer:
Name       twitter.com
Address:   195.175.254.2

nslookup twitter.com 8.8.8.8
Server:    8.8.8.8
Address:   8.8.8.8#53

Non-authoritative answer:
Name       twitter.com
Address:   195.175.254.2

nslookup twitter.com 208.67.222.222
Server:    208.67.222.222
Address:   208.67.222.222#53

Non-authoritative answer:
Name       twitter.com
Address:   195.175.254.2

Görüldüğü üzere iki DNS sunucusu ile İSS engelli sayfayı sahte bir DNS sunucusuna yönlendirilmekte ve kullanıcı sahte DNS sunucusunda bekletilmektedir. Bu, Google’ın değerlendirmesi ve ayrıca daha önceden de bu konuya ilişkin yazılmış yazılar da doğrulamaktadır.

Şimdi, Debian ve türevi dağıtımlar için Unbound kuruluma geçecek olursak (Windows için buradan indirebilir ve yönergeler için el kitabına bakabilirsiniz. Gayet basitçe anlatılmış.):

kame ~ $ apt-get install unbound unbound-anchor
kame ~ $ sudo cp /etc/unbound/unbound.conf /etc/unbound/unbound.conf.save
kame ~ $ sudo wget -c ftp://FTP.INTERNIC.NET/domain/named.cache -O /etc/unbound/root.hints
kame ~ $ sudo cp /var/lib/unbound/root.key /etc/unbound/root.key
kame ~ $ sudo chown -R unbound:unbound /etc/unbound/root.key

/etc/unbound/unbound.conf:

###
server:
	auto-trust-anchor-file: "root.key"
	interface: 127.0.0.1
	interface: ::1
	root-hints: "root.hints"
	num-threads: 2
	hide-identity: yes
	hide-version: yes
	msg-cache-size: 16m
	msg-cache-slabs: 8
	rrset-cache-size: 32m
	rrset-cache-slabs: 8
	infra-cache-numhosts: 20000
	infra-cache-slabs: 8
	key-cache-slabs: 8
	key-cache-size: 8m
	jostle-timeout: 250
	so-rcvbuf: 4m
	so-sndbuf: 4m
	harden-short-bufsize: yes
	harden-large-queries: yes
	harden-glue: yes
	harden-dnssec-stripped: yes
	harden-below-nxdomain: yes
	prefetch-key: yes
	prefetch: yes
	unwanted-reply-threshold: 10000000
	rrset-roundrobin: yes
	outgoing-range: 8192
	num-queries-per-thread: 4096
	do-udp: yes
	do-ip4: yes
	do-ip6: no
	do-tcp: yes
python:
remote-control:
forward-zone:
###

Kopyalayıp kaydedin. Ağ yöneticinizdeki DNS sunucuları ayarını 127.0.0.1 yapın ve Unbound servisini çalıştırın (systemd ve openrc için iki örnek aşağıda).
kame ~ $ systemctl enable unbound.service
kame ~ $ systemctl start unbound.service

kame ~ $ /etc/init.d/unbound start

Yukarıdaki ayarlar hemen hemen bütün dağıtımlarda çalışacaktır. Herhangi bir sıkıntı yaşayacağınızı düşünmüyorum. DNSSEC kontrolü yapalım:

kame ~ $ dig sigok.verteiltesysteme.net @127.0.0.1

; <<>> DiG 9.9.5 <<>> sigok.verteiltesysteme.net @127.0.0.1
;; global options: +cmd
;; Got answer:
;; HEADER opcode: QUERY, status: NOERROR, id: 5409
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 4

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;sigok.verteiltesysteme.net.	IN	A

;; ANSWER SECTION:
sigok.verteiltesysteme.net. 60	IN	A	134.91.78.139

;; AUTHORITY SECTION:
verteiltesysteme.net.	3600	IN	NS	ns1.verteiltesysteme.net.
verteiltesysteme.net.	3600	IN	NS	ns2.verteiltesysteme.net.

;; ADDITIONAL SECTION:
ns1.verteiltesysteme.net. 3600	IN	A	134.91.78.139
ns2.verteiltesysteme.net. 3600	IN	A	134.91.78.141

;; Query time: 1070 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Tue Apr 01 11:49:29 2014
;; MSG SIZE  rcvd: 167

Bu şekilde A çıktısı alıyorsanız DNSSEC doğrulaması yapılmakta olduğunu söyleyebiliriz. Bununla birlikte, DNSSEC doğrulaması yapabileceğiniz siteler de mevcuttur:

Şimdi, Unbound’un sorunsuz çalıştığını ve DNSSEC doğrulaması yapıldığını farzederek Twitter çıktımızı tekrar kontrol edelim:

nslookup twitter.com 127.0.0.1
Server:         127.0.0.1
Address:        127.0.0.1#53

Non-authoritative answer:
Name:   twitter.com
Address: 199.59.148.82
Name:   twitter.com
Address: 199.59.149.230
Name:   twitter.com
Address: 199.59.149.198

Her şey yolunda gözüküyor. Yerel DNS çözümleyicimiz sayesinde İSS’nin yapmış olduğu yönlendirmeye takılmadan kullanabiliriz. Diğer yandan, adres/IP manipülasyonlarında da sahip olunan dijital imza ile kullanıcı korunabilecektir. Unbound, yerel DNS çözümleyici ve DNSSEC ile doğrulama gerçekleştirerek yaşanabilecek sıkıntıların engelleyebilmektedir. Türkiye’de Internetin gelmiş olduğu noktaya bakacak olursak herhangi bir sosyal medya üzerinde verilen DNS sunucularını kullanmak yerine Unbound iyi ve güvenli bir çözüm gibi durmaktadır. Açıkçası, Türk Telekom ve TİB’in bundan sonra ne tür bir yöntem ile Internet üzerinde kullanıcı takibi, sorgu denetimi yapabileceğini, SSL sertifikalarında mitm yapıp yapmayacağını, sahte sertifika üretip üretmeyeceğini de kestiremediğim için kesin bir şey söyleyemiyorum. Aceleci bir yapım olmadığı için bekleyip görmeyi tercih ediyorum.

YaCy – P2P Arama Motorunuz

Twitter‘ın erişime engellemesi ile ilgili mesajım için buraya tıklayabilirsiniz.

YaCy, p2p mantığı üzerine kurulu ücretsiz, açık kaynak, özgür bir arama motoru yazılımdır. Genel olarak Java dili ile yazılmıştır ve platform bağımsızdır. Yani, illa GNU/Linux kullanmanıza gerek yoktur. P2P ağlarda olduğu gibi YaCy’de de birçok istemci vardır. Her YaCy-istemcisi birbirlerinden bağımsız olarak bir Internet sayfasını tarayabilir, analiz edebilir, sonuçları YaCY-istemcilerinin erişebilmesi için ortak bir indeks veritabanında tutup paylaşabilir. Tüm YaCy-istemcileri eşittir ve arama portallarında (Google, Bing, Yandex vs) merkezi bir sunucusu yoktur. Kısaca, YaCy için merkezsizleştirilmiş arama motoru da denilmektedir.

Merkezsizleştirilmiş arama motoru nedir?

merkezsizleştirme

Özel mülkiyet bir arama motoru düşünün. Bir merkezi ve yönetici(leri) mevcuttur. Bu arama motorunun sizin kontrolünüz dışında olan özel sunucularının bir merkezi vardır, sizin aramalarınızla ilgili bilgi toplar, sonuçları çeşitli gerekçelerle (telif vs.) sansürleyebilir, sizin arama sorgularınız ve eriştiğiniz sonuçlarla ilgili profil oluşturup bunu reklam için kullanabilir veya satabilir. YaCy’de ise bu durum tamamen farklıdır. Öncelikle, böyle bir merkeze bağlı değilsiniz. Kendi arama motorunuzun hem yöneticisi hem de kullanıcısısınız. Diğer yandan arama portallarındaki gibi içeriğiniz sansürlenmez, yöneticiler tarafından gözetlenmez ve herhangi bir reklam yoktur. Kendi içeriğinizi oluşturabilir, istediğiniz siteleri indeksleyebilir ve 600’den fazla istemcinin düzenli olarak katkı yaptığı 1.4 milyardan fazla dökümana sorunsuz, herhangi bir engele ve kısıtlamaya takılmadan erişebilirsiniz.

Kurulum ve ilk çalıştırma

İlk önce sistemimize Java kurmalıyız. Ardından YaCy’i kurabilir ve çalıştırabiliriz. Windows kullanıcıları buradan MacOS kullanıcıları da buradan indirip kurabilirler. Paket yöneticiniz ve dağıtımınız ne olduğunu bilmediğim için Debian türevi dağıtımlara uygun bir Java kurulumu gösterdim. Diğer kurulum ve çalıştırma dağıtım bağımsızdır.

kame - $ apt-get install openjdk-7-jre
kame ~ $ wget -c http://yacy.net/release/yacy_v1.68_20140209_9000.tar.gz
kame ~ $ tar xzv yacy_v1.68_20140209_9000.tar.gz && mv yacy ~/.yacy
kame ~ $ cd ~/.yacy && sh startYACY.sh

Temel ayarlar

Tarayıcınızdan localhost:8090‘a girdiğinizde YacY’nin durum (status) ana sayfasını göreceksiniz. Şimdi ilk olarak yanındaki Basic Configuration‘a tıklayarak bizi ilgilendiren birkaç ayarı yapalım. 1. seçenek dil seçeneği. Buradan size uygun olan bir dili seçebilirsiniz. 2. seçenek kullanım amacı. Üç seçenek mevcut. İlki, topluluk tabanlı arama. YaCy-istemcileri üzerinden arama yaparsınız. İkincisi, YaCy’i diğer YaCy-istemcilerinden bağımsız olarak yapılandırır, kendi indekslediğiniz ve robotlarla taradığınız siteler üzerinde arama yapılacak şekilde yapılandırabilirsiniz. Üçüncüsü, kendi ağınız ve siteniz için bir arama moturu oluşturabilirsiniz. 3. seçenek kullanıcı adınız. Herhangi bir şey yazabilirsiniz. 4. seçenek ise diğer YaCy istemcilerinin de erişebilmesi için port ayarı. Çok şart değil, port erişilebilir olursa hem performans açısından hem de diğer istemcilere indeks katkısı açısından biraz daha iyi olacaktır. Ayarlarınız tamamsa Set Configuration diyerek kaydedebilirsiniz. iptables’da port açmak isterseniz:

kame ~ $ iptables -I INPUT -p tcp --dport 8090 --syn -j ACCEPT
kame ~ $ iptables -I INPUT -p udp --dport 8090 -j ACCEPT

Bir arama gerçekleştirelim

yacy_arama

Görüldüğü üzere çok kapsamlı bir sonuç (daha devam ediyordu fakat ben yarıda kestim) elde edemedik. Bunun temel nedeni çok taze bir konuyu aratmak istememdi, ayrıca daha çok robotlarla taramaya ve indekslemeye ihtiyacı olduğundandır. Diğer bir deyişle, YaCy’nin birçok istemciye ihtiyacı vardır. Fakat, bu arama YaCy’nin yetersiz olduğu fikri oluşturmasın. Şu ana kadar beni pek üzdüğünü söyleyemem. Sorgularıma verdiği yanıtlar hep yeterliydi.

Arama motoruma herkes erişebilir mi?

Evet. Herkes erişebilir. Bu ister YaCy istemcisi olsun, ister Internette arama moturunuzun açık 2014-03-21-170646_1920x1080_scrotadresini bilen olsun veya diğer arama portallarının örümcekleri olsun erişebilirler. Status sayfasında, sağ köşede bir kutu göreceksiniz. Address kısmına baktığınızda sunucu (host), açık adres (public adress) ve YaCy adreslerinizi (yacy address) görebilirsiniz. Açık adresinize herkes (örümcekler dahil ve adresinizi dağıttığınız sürece) erişebilir. Bu yüzden Account ayarlarında Acces only with qualified account seçeneği ile bir yönetici (admin) şifresi belirleyebilirsiniz. Local robots.txt bölümünden de örümceklerin neye erişemeyeceklerini de ayarlayabilirsiniz.

2014-03-21-170630_1920x1080_scrotBen de indeks yapmak istiyorum

Sol menüde Index Production alt menüsünü göreceksiniz. Crawler/Harvester‘a tıkladığınızda açılan sayfa üzerinden indekslemek istediğiniz sayfanın linkini girerek bu işlemi gerçekleştirebilirsiniz.

Son sözler

YaCy çok detaylı ve kapsamlı bir arama motorudur. Burada çok temel birkaç şeyden bahsettim. Genel anlamda dört temel özelliği vardır. Tarama (crawl), indeksleme, arama ve yönetici arayüzü ve veritabanı. Merkezi bir sunucusu yoktur, sansür, reklam, gözetim gibi durumlardan arındırılmıştır. Yüksek derecede gizlilik sağlar. Çeşitli sıkıntılara sahip olsa da kesinlikle desteklenmelidir. Son olarak, YaCy ne kadar çok istemci sahibi olursa o kadar çok etkin, güvenli, sansürsüz, reklamsız bir arama motoru olacaktır.

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.

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!

Arka Kapı

Eğer işlemcinizin üreticisi (AMD, Intel, Qualcomm vd.) NSA tarafından arka kapı bırakmaya zorlanmışsa ya da herhangi bir donanımızda bu tarz gizlilik ihlalleri yapılmışsa, kendinizi nasıl korumaya çalışırsanız çalışın NSA sizinle ilgili her şeyi görebilir.

Daha ayrıntılı bir açıklama yapmam gerekirse; kullandığınız donanımın geliştirme aşamasında, Büyük Birader sizleri izleyebilmek için üreticileri arka kapı bırakması için zorlamış, çip geliştirmesinde doğrudan veya dolaylı olarak katkıda bulunmuşsa kendinizi gizleyebilmeniz pek de mümkün olmayacaktır. Buradaki izleme daha çok sizin yaptığınız her şeyi kaydetmek değil de kendilerine bir arka kapı bırakmak, zamanı geldiğinde ya da ihtiyaç duyulduğunda buna başvurarak gerekli bilgiyi temin etmektir.

Bu tarz bir veri temini her şeyi kaydedip samanlıkta iğne aramaktan çok değerli veriyi almaya yarar. Kendini mükemmel bir şekilde kamufle etmiş böyle bir yöntem, kullandığınız herhangi bir cihazın rahatça izlenmesine olanak sağlayacaktır. Bir diğer deyişle, NSA kendi işleri için hazırlattığı özel çiplere sahip olacak, tüketici ise bu çiplere sahip donanımları bunun farkında bile olmadan satın alarak kullanmaya başlayacak. Her şey uzaktan bir komplo teorisi gibi durmaktadır. Fakat son sızan bilgilere göre buna benzer, daha doğrusu bunu ima edecek bir çalışma 2007 yılında başlamış. Google ise bu dönemde kendine ait her servis için noktadan noktaya (man in the middle yok demek) kriptolanmış iletişim için çalışmaktaydı ve Snowden’dan sonra bu işi iyice hızlandırdı. Bu, şu işe yarayacak; eğer biri verileri bir şekilde Google’dan temin etmek isterse Google istese bile bu verileri veremeyecek.

Bu noktada, Windows ve Mac OS kullanıcıları ciddi anlamda tehlikede olduğu varsayılabilir. GNU/Linux kullanıcıları nispeten daha az, *BSD kullanıcıları ise daha da az tehlikedeler. Art niyetli bir firmware, işlemci (donanım) üzerindeki bu tarz arka kapıları aktive edebilir ve bundan istediği gibi faydalanabilir. Siz ise işletim sisteminizi, donanım yazılımınızı güncelleştirdiğinizi zannedebilirsiniz. Kulağa çok çılgınca geldiği doğru. Böyle bir şeyin yapılmış olabileceğini ise ancak ileri düzey bir elektron mikroskobu ve ileri düzey teknik aletlerle işlemcinizi inceleyerek görebilirsiniz.Böyle bir şeyi test etmek ise tüketicilerin boyunu aşmaktadır.

Bir Kernel hacker’ı olan Theodore Ts’o, Intel’in /dev/random’ı sadece RDRAND’e dayanması gerekliliğindeki ısrarını neden reddetiğini de bu üstte anlattığım “komplo teorisi“‘ne dayanarak söylüyor. Diyor ki; “Denetlenmesi kesinlikle mümkün olmayan, bir çipin içine gizlenmiş uygulama demek olan sadece donanımsal RNG‘ye güvenmek, KÖTÜ bir fikirdir.” Örneğin, eğer Intel, RNG’yi doğrudan işlemcileri içine yerleştirirse kullanıcıların yazılımı kullanması yerine yazılımın kullanıcıları kullanmasına olanak sağlamış olacaktır. Başka bir deyişle, eğer RNG bir anahtar ile dağıtılmakta ise bunu tespit edebilmek imkansız olacak. Fakat kullanıcı yazılıma dayanarak RNG’yi gerçekleştirirse, yazılımdaki buna benzer bir arka kapı ise kolaylıkla farkedilebilecektir.

Ne yapalım, harddiskimizi kriptoladıktan sonra bilgisayarımızın üzerine benzip döküp yakalım mı?” dediğinizi duyar gibiyim. “NSA beni ne yapsın?” diyerek espri yaptığınızı biliyorum. Fakat bunu her normalleştirdiğinizde size dönüşü daha kötü olacak, daha çok gizlilik ihlali içerecek, sizleri aptal yerine koyacak ve birer köleye çevirecektir. Farkında olun, uyanık olun, hakkınıza sahip çıkın!