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:
- 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.
- 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.
- 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ı):
- Şifrenizi unutmuşsunuzdur ve hatırlama ihtimaliniz yoktur.
- Anahtarınızı kaybetmişsinizdir ve geri yükleyemiyorsunuzdur.
- 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!