Daily Archives: August 28, 2013

PGP Kullanın

Bir uygulamayı nasıl kullanabileceğinize dair rehberler hazırlanırken, hazırlayan kişi -kaçınsa da- kendisi nasıl kullanıyorsa öyle anlatır. Bu bir hata değildir, bunda yanlış bir şey yoktur. Az bildiği anlamına da gelmez. Aynı şekilde alışkanlıklarının dışına çıkması onu anlatacağı şeyde hata yapmaya da götürebilir.

Böyle bir giriş yaptıktan sonra PGP üzerine hazırlanan bu rehberin, yazan kişinin kullanım çerçevesinde ilerleyeceği için “eksik” olduğu düşünülen noktalar aslında bilerek boş bırakılmıştır. Adım adım ilerleyecek olursak:

  1. PGP, e-posta ve dosyaların güvenliği için bir kriptolama ve doğrulama (matematiksel kısmı için aramaya inanın) aracıdır. Sizlere gönderdiğiniz dosyanın ya da e-postanın şifrelenmesini ve başkaları tarafından okunmamasını (ya da sadece gönderdiğiniz kişi tarafından okunabilmesini), gönderen kişinin kimliğini doğrulamayı ve gönderilen dosya ya da e-postanın yapısının bozulmadan size ulaşmasını (ya da bozulup bozulmadığını anlamanızı) sağlar.
  2. Kullandığınız e-posta sağlayıcı ne kadar güvenli olursa olsun e-posta mahremiyeti artık ayaklar altına alındığı için gönderdiğiniz e-postaları bu yöntemle göndermeniz güvenliğinizi kat kat arttıracak, e-posta içeriğiniz üçüncü şahıslar tarafından okunamayacaktır.
  3. PGP anahtarları oluşturmak için açık kaynak veya ticari yazılımlar mevcuttur. GNU/Linux kullanan biri olarak sadece GPG; GnuPrivacyGuard ve Terminal üzerinden gideceğim. O yüzden açık bir terminaliniz olursa hemen başlayabilirsiniz. Çünkü her şeyi onun üzerinde yapacağız. “#” komut, “>” ise terminal çıktısıdır.

Dağıtımınızın ne olduğunu bilmediğim ve bilemeyeceğim için paket yöneticinizden gnupg‘nin kurulu olup olmadığına bir bakın. Eğer kurulu değilse kurun. Her şeyin artık hazır olduğunu varsayarak;

# gpg --gen-key
> Please select what kind of key you want:
> (1) RSA and RSA (default)
> (2) DSA and Elgamal
> (3) DSA (sign only)
> (4) RSA (sign only)

Burada sizlere ne tür bir kriptolama yöntemi kullandığınız soruluyor. Varsayılan olan 1’i seçip (1 ve enter) yolumuza devam ediyoruz.

> RSA keys may be between 1024 and 4096 bits long.
> What keysize do you want? (2048)

Anahtarınız ne kadar güçlü olacak burada belirleyeceğiz. En büyük olanı iyidir diyoruz. 4096 yazın ve devam edin.

> Please specify how long the key should be valid.
> 0 = key does not expire
> = key expires in n days
> w = key expires in n weeks
> m = key expires in n months
> y = key expires in n years
> Key is valid for? (0)

Burada anahtarınızın ömrünü biçeceğiz. Bir nevi son kullanım tarihi. Sınırsız olmasını pek tavsiye etmiyorum. 3-5 gün sonra dolması da bana mantıklı gelen bir şey değil (eğer paylaşmayacaksanız). İdeal olarak 1-2 sene seçilebilir. 1y ya da 2y yazarak devam edebilirsiniz.

> GnuPG needs to construct a user ID to identify your key.
> Real name:
> Email address:
> Comment:
> Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit?

Adınız veyahut takma adınız, kullanacağız e-posta adresiniz, anahtarla ilgili -varsa- yorumunuz (bu daha çok neden kullandığınız, ne işi yaradığı ile ilgili olabilir), son olarak O yazarak devam ediyoruz. Karşınıza şifre belirlemeniz için bir pencere açılacak. Buraya büyük, küçük harf, rakam ve işaretler kullanarak en az 10 karakterlik bir şifre yazıyorsunuz. İleride unutmayacağınız fakat güçlü bir şifre yazmanız sizin yararınıza olacaktır.

Anahtarın oluşturulabilmesi için rastgele bytes’a ihtiyaç olacak. Bu yüzden film açın, tarayıcınızda sitelere girin, metin editörüne bir şeyler yazın. Anahtarın oluşması biraz zaman alacaktır. Oluştuğunda ise:

> gpg: key ******** marked as ultimately trusted
> public and secret key created and signed

Şeklinde bir çıktı alacaksınız. ******** (rakam ve harflerden oluşan 8 hane) sizin anahtarınızın ID’si olmaktadır. Bu ID ayrıca 40 hanelik fingerprint’in son 8 hanesidir.

Sıra geldi oluşturduğumuz anahtarımızı nasıl kullanabilir, paylaşabiliriz, yedekleyebilir ve silebiliriz kısmına. Diyelim ki elinizde önemli bir dosya var ve kimsenin açık kurcalamasını istemiyorsunuz:

# gpg -e ******** dosya.txt

Dosyanızın kriptolanmış hali olan dosya..txt.gpg‘nin oluştuğunu göreceksiniz. Açmak isterseniz:

# gpg -d dosya.txt.gpg
# gpg --output dosya.txt --decrypt dosya.txt.gpg

Anahtarınızı paylaşmanızın iki yolu var. Biri anahtarınızı dışa aktarıp (ASCII-armored) göndermek, bir diğeri de anahtar sunucularına yollamak. ASCII-armored için:

# gpg --output anahtarım.asc --export -a ********

Böyle e-postanız üzerinden anahtarım.asc‘yi arkadaşlarınıza gönderebilirsiniz. Herhangi bir sunucuya göndermek için:

# gpg --send-key ********

Böylece arkadaşlarınız paylaştığınız anahtarınızı kullanarak sizlere kriptolanmış e-posta veya dosya gönderebilecekler. Şimdi size gönderilen bir anahtarı nasıl aktarabileceğinize bakalım:

# gpg --import arkadaşımınamahtarı.asc

Arkadaşınız eğer anahtarını sunuculardan birine göndermiş ve siz sadece ID’sini biliyorsanız:

# gpg --recv-key ********

Size gönderilen bir anahtarı doğrulamak isterseniz muhakkak fingerprint’ini karşılaştırın.

# gpg --fingerprint ********

Aynı şekilde anahtarınızı imzalamanız da anahtarı kullanan kişilere anahtarın sahibi olduğunuzu söyler.

# gpg --sign-key ********

Çok önemli bir adım olarak anahtarınızı nasıl yedeklersiniz? Öncelikle anahtar(larınızı) listelemek için:

# gpg --list-keys

Açık anahtarınız; pub 4096R/ ve gizli anahtarınız; sub 4096R/ ‘den sonraki 8 karakterlik kısımdır. Açık anahtarınızı yedeklemek için;

# gpg -ao açıkanaharım.key --export ********

Gizli anahtarınızı yedeklemek için;

# gpg -ao gizlianahtarım.key --export-secret-keys ********

Silinirse geri yüklemek için;

# gpg --import açıkanahtarım.key
# gpg --import gizlianahtarım.key

Bu yedekleri usb diskinizde saklayabilir, cd’ye yazdırabilirsiniz. Önemli olan bunları kaybetmemek. Bununla birlikte, anahtarı iptal etmek (revoke) bilmemiz gereken başka bir şeydir. Bir anahtar neden iptal edilire gelirsek (bu bilginiz olsun kısmı):

  1. Şifrenizi unutmuşsunuzdur ve hatırlama ihtimaliniz yoktur.
  2. Anahtarınızı kaybetmişsinizdir ve geri yükleyemiyorsunuzdur.
  3. Birileri tarafından kullandığınız şifre bulunmuştur.

Her türlü kötü durumları bu konuda kafanızda canlandırabilirsiniz. Ama temel olarak bu üç neden kafanızın bir yerinde bulunsun. İptal edilmiş bir anahtar ile karşılaştığınızda hatırlarsınız.

Revoke anahtarı oluşturmak için:

# gpg --gen-revoke ********

Anahtarı aktarmak için:

# gpg --import revoke.asc

Eğer anahtarı bir sunucuya göndermişseniz revoke edilmiş anahtarı tekrar göndermeniz o anahtarın iptal edildiğini gösterecektir.

Son olarak, oluşturduğunuz anahtarı ve sahip olduğunuz anahtarları silmek isterseniz:

# gpg --delete-secret-key ********
# gpg --delete-key 'arkadaşım@epostası'

O kadar uğraştık, bir e-posta göndereceğim ama nasıl diyorsanız, diyelim ki göndereceğiniz kişinin anahtarı sizde mevcut ve bir metin editörü ile (ben vim kullanıyorum bana bakmayın) e-postada anlatmak istediklerinizi yazdınız;

# gpg -e -u 'BenimanahtarIDim' -r 'ArkadaşımınanahtarIDsi' eposta.txt

Eklentiye eposta.txt.gpg‘yi koyun ve gönderin. Arkadaşınız yukarıda bahsettiğimiz şekilde e-posta.pgp.txt’yi açacak ve e-postayı okuyacaktır. Ben biraz eski kafalı olduğum için bu şekilde yapıyorum. Kullandığınız e-posta istemcisi (Thunderbird, Claws vs) ya da web tabanlı e-posta istemciniz bunu otomatik yapıyor olabilir. Onu sizin keşfetmeniz gerekecek.

Tekrar tekrar söylemeye gerek yok ama ben gene söyleyeyim. Kullandığınız e-posta servisi ne kadar güvenilir olduğunu iddaa ederse etsin, siz PGP kullanın!

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

Twitter’ın Karanlık Yüzü

PRISM konusu patladıktan sonra Twitter nasıl oluyor da bu kadar temiz ve dokunulmamış kalabilir hep şüpheli yaklaşmıştım. Bu hizmetin elbet bir karanlık yüzü olmalıydı. Aradan geçen süre içerisinde bilin bakalım ne oldu?

Polonyalı bir aktivist olan Alexander Hanff kendi gizlilik temelli projelerini yayımlamak için bir site hazırlarken ziyaretçi istatistikleri üzerine Apache’nin GeoIP modülünü kullanmak istiyor. Bu konudaki temel düşüncesi ziyaretçilerin IP bilgilerini –daha doğrusu gizliliklerini ihlal etmeden– kaydetmeden onlar hakkında ülke ve IP bilgisi almaya çalışıyor. Ne oluyorsa da tam bu noktada oluyor. Birden fazla Twitter hesabı olduğu için (kendi diyor) birinden kendi hesabına Tweetdeck üzerinden bir DM (özel mesaj) atıyor;

http://mydomain.com/stats.php?ref=twitter

ref dizisinin amacını veri tabanına kaydedilmek üzere test amaçlı kullandığını çünkü sponsorlarıyla ilişkili bazı kayıtları geri yüklemek istemesi olduğunu belirtiyor. Şöyle bir sonuçla karşılaşıyor;

8 » 2013-08-25 19:44:07 » stats.php?ref=twitter » US
9 » 2013-08-25 19:44:07 » stats.php?ref=twitter » US
10 » 2013-08-25 19:44:07 » stats.php?ref=twitter » US
11 » 2013-08-25 19:44:14 » stats.php?ref=twitter » PL
12 » 2013-08-25 19:44:14 » stats.php?ref=twitter » US
13 » 2013-08-25 19:45:06 » stats.php?ref=twitter » PL

Sonuç beklendiği gibi pek gizliliğe zarar verici gibi gözükmemekte. Fakat 8, 9, 10 ve 12. satırlara bakarsanız ülke kodunun Amerika olduğunu göreceksiniz. Özellikle 8 ve 10 özel mesaj gönderildikten hemen sonra oluşmuş. İşin ilginci bu bir özel mesaj ve URL’sinin gizli olması, yani teorik olarak “US” girdilerine sahip olmaması gerektiği. Hanff, Apache’nin erişim kayıtlarına baktığı zaman US satırlarında Twitter’ın kendisini Twitterbot/1.0 olarak tanıtmak ve URL’ye GET isteği göndermek için 199.16.156.126 IP’sini kullandığını görüyor. Bunun bir özel mesaj olduğu düşünülecek olursa Twitter’ın aslında bunu görmemesi ve kendine GET isteği üzerinden bir kopya oluşturmaması gerekmektedir.

Buna kısaca Twitter’ın özel mesajları taraması demek daha doğru olacaktır. Bu açık bir gizlilik ihlalidir. Twitter bu konuda iyi niyetli olduklarını, kullanıcıyı düşündüklerini söylese de GET ve kopya oluşturması niyetleri ile tamamen çelişmektedir. Yazının tamamını buradan okuyabilirsiniz.

Twitter’la ilgili başka bir haber de Glendale okul yetkilileri Hermosa Beach adlı bir sosyal medya şirketi ile anlaşarak öğrencilerinin Twitter, Facebook, Youtube ve Instagram paylaşımlarını takip ettirdiği ortaya çıktı. Günlük raporlar, öğrencilerin şiddet, nefret, saldırganlık vs. üzerine olan eğilim frekanslarından oluşuyor. Geçen sene Hermosa Beach şirketine 40,500$ ödenmiş, toplam 13,000 orta ve lise öğrencisi monitörlenmiş. Okul yetkililerinin “niyeti” ise öğrencilerinin kendilerine ve başkalarına zarar vermeden önceden tespit edilebilmesiymiş. İnsanın aklına Minority Report gelmiyor değil. Tabi öğrencilerin hesaplarının nasıl tespit edildiği ise başka bir konu. Monitörleme kadar bu hesapların tespitinin nasıl yapıldığı da bilinmeli ve paylaşılmaya değer olduğunu düşünüyorum.

Görüldüğü üzere, bazı sosyal medya şirketleri zaten çok uzun bir süredir monitörleme işini yapmaktaydılar. Bunlar firmalar için ürün, marka değerlendirmeleri içerirken bazıları da Glendale okulu gibi “öğrencilerinin iyiliği” altında paylaşımlarının incelenmesini içermekte. Her ne olursa olsun, yapılan paylaşımların birilerinin süzgeçinden geçtiği ve bunların sadece iyi niyetli olmadıklarıdır. Twitter, T.C. devleti ile kullanıcı bilgisi paylaşımına yanaşmamış olabilir, belki hiç yanaşmayacak da olabilir ama dikkat edilmesi gereken şey gizliliğiniz ve güvenliğiniz için özel şirketlere bel bağlamamanız gerekliliğidir. Gizlilik bir insan hakkıdır. Bunun seçimi, bu hakkın birilerine devredilmesi söz konusu bile olamaz.

Tagged , , , , , , ,