GnuPG şifreleme amaçlı çok güçlü bir yazılım ancak temel işlevi kendisine verilen parametreler doğrultusunda verilerinizi şifrelemek ya da çözmek olan bu yazılımın çıplak halini sadece komut satırından kullanabilirsiniz ve orada yazmanız gereken parametreleri de ancak ilgili man sayfalarından ya da Internet üzerindeki dokümantasyonundan öğrenebilirsiniz. Oysa GnuPG'den faydalanmak için komut satırındaki pek çok parametreyi hatırlamak ve sürekli komut satırını kullanmak zorunda değilsiniz: Kullanabileceğiniz pek çok GKA (Grafik Kullanıcı Arayüzü) mevcut. Bunların listesine http://www.gnupg.o rg/(en)/related_software/frontends.html.en adresinden ulaşabilir ve dilediğinizi kullanabilirsiniz (ya da sisteminiz en çok hangisi için elverişli ise). Benim ev bilgisayarımda çalışan işletim sistemi Debian GNU/Linux 3.0 (Woody) olup burada anlatacağım ve arka planda gpg yazılımını kullanan GKA ise yine GNU projesi kapsamında geliştirilen GPA - Gnu Privacy Ass istant isimli yazılım.
Bu yazılımın kaynak kodunu yukarıdaki adreste belirtilen "download" linkine bağlanıp çektikten sonra (yaklaşık 400 KB) sisteminizde derleyip kullanabilirsiniz. Bur ada değinmek istediğim iki nokta var: Birincisi, açık kaynak kod şu anda ilgilendiğimiz bağlamda çok önemli. Neden? Çünkü bir güvenlik yazılımını kullanan bir arabirim çekip derleyip kullanacaksınız ve eğer gerçekten güvenliğe önem veriyorsanız (söz gelimi bu konuda çok hassas olan bir kurumda çalışıyorsanız) işte o zaman elinizdeki yazılımın sizin arkanızdan iş çevirmediğinden ve yazılımda geliştiriciler tarafından bilinçli olarak bırakılmış herhangi bir "gizli kapı" (backdoor) bulunmadığından emin olmanız mümkün. Gnu Privacy Assistant isimli görsel gpg arabiriminin tüm kaynak kodu elinizin altında ve siz C/C++ dilinde uzman olmasanız bile eğer güvenlik konusunda ciddi bir yatırım yapmış bir ortamda iseniz o zaman size yardımcı olabilecek bir C/C++ uzmanı bulmanız zor olmayacaktır (aslında düşündüğünüzden biraz daha zor olacaktır ama bu yüzden GNU projesini suçlayamayız ;-). Tabii ki eğer benim gibi bir "ev kullanıcısı" iseniz biraz daha gevşek davranabilirsiniz ancak bu tip yazılımların ordu, gizli servis, devlet organizasyonları, banka gibi yerlerde de kullanıldığını ve/veya kullanılabileceğini lütfen unutmayın. Ayrıca GPA için son söylediğime benzer şeylerin tamamı elbette işin çekirdek ve önemli kısmını yapan GnuPG (gpg) için de aynen geçerlidir. İkinci olarak değinmek istediğim nokta ise derleme esnasında benimkine benzer sorun yaşayabilecek olan Debian GNU/Linux kullanıcılarına yönelik: eğer
./configure
komutunu verip ilk aşamada "gtk-conf bulunamadı, GTK+ ile ilgili
sorun var, vs." gibi bir hata mesajı ile karşılaşırsanız bunun sebebi
çok büyük ihtimalle sisteminizde GTK+ fonksiyon kitaplığının bulunmuyor
olmasıdır. libgtk1.2-dev paketini yükleyerek bu problemi kolayca çözebilirsiniz.
Bu paketi yüklemek için yapmanız gereken
apt-get install libgtk1.2-dev
komutu ile paketin yüklenmesini
sağlamaktır. Debian paket yöneticisi gerekli işlemleri otomatik olarak
halledecektir (yani paketi ya Internet üzerinden indirip ayarlayacak
ya da eğer varsa elinizdeki cd'lerden birini isteyecek ve gerekli ayarlamaları
yapacaktır). Artık sorunsuz bir şekilde sırası ile ./configure
,
make
ve make install
ile GPA'yı derleyip kurabilirsiniz.
Yukarıdaki aşamaları geçtikten sonra komut satırından
gpa
komutu
ile GPA'yı çalıştırdığınızda karşınıza bu şekildeki gibi bir
görüntü çıkacaktır. İlk seferde sadece tek bir pencere açılması sizi
şaşırtmasın, File Manager isimli ikinci pencereye karşınıza çıkan
ilk penceredeki (Keyring Editor) ana menüye erişip "Windows" başlığı
altındaki "Filemanager" seçeneğine tıklayarak erişebilirsiniz. Karşınıza
çıkan ilk pencere hem kendiniz hem de sisteminizdeki diğer insanlarla
ilgili anahtarları yönetmenizi, düzenlemenizi, vs. sağlarken diğer
pencere yani File Manager penceresi de elinizdeki her türlü hassas (!)
dosyayı istediğiniz kişiye özel olarak şifrelemenizi veya çözmenizi
sağlar. Yani bu iki pencereyi kullanarak hem anahtar yönetimi hem de
dosyalarla üzerinde şifreleme/deşifreleme/imzalama/onaylama ile ilgili
hemen her türlü işlemi kolayca gerçekleştirebilirsiniz. Bunlara ek olarak
eğer farklı bir kimlik ya da e-posta adresi için apayrı bir anahtar çifti yaratmak isterseniz yine Keyring Editor penceresindeki ana menüden
"Keys" maddesinin altındaki "Generate Keys..." maddesini seçerek ve
size sorulan basit soruları cevaplayarak kolayca yeni bir anahtar
çifti oluşturabilirsiniz.İlk iki bölümü dikkatli şekilde okumuş ve kavramış olan okuyucular yukarıda dediklerimi anlamakta ve sunduğum ekran görüntüsünü yorumlamakta güçlük çekmeyecekir diye tahmin ediyorum. Bunun sebebi GPA'nın sunduğu görsel arabirimdeki her işlemin aslında komut satırındaki belli bir gpg komut dizisine karşı geliyor olmasıdır. Temel kavramları ve uygulamaları çıplak hali ile uygulamış olan kişiler görsel arabirimdeki seçenekleri kavramakta da zorlanmayacaktır.
Daha önce de belirttiğim gibi GNU/Linux dünyasındaki pek çok iş için geliştirilen yazılımda olduğu gibi burada epey çok sayıda seçeneğiniz var. GPA dışında farklı grafik kullanıcı arayüzlerini de deneyebilir, bunların haricinde doğrudan kullandığınız e-posta istemcisi ile tümleşik olarak çalışan sistemleri de verdiğim adreslerden çekip kurcalayabilirsiniz. Bu tür denemeler yapıp kendi sistemlerindeki tecrübelerini bize aktaracak arkadaşlara şimdiden teşekkürler ;-) Şimdi biraz daha genel ve güvenliğin "ürün"den çok "süreç" ile ilgili kısımlarına bakalım ve yavaş yavaş yazı dizimizi sonladıralım.
Şifreleme Kullanırken Dikkat Etmeniz Gereken Birkaç Nokta
Birkaç dediğime bakıp rahatlamayın ;-) Dikkat edilmesi gereken nokta sayısı "birkaç" sözcüğünün çağrıştırdığından çok daha fazla ancak ben burada sadece en önemli olan birkaç tanesine değineceğim.
1) Oluşturduğunuz anahtar boyuna dikkat edin. GnuPG normalde 1024 bitlik anahtar üretmenizi sağlar ve bu çoğu iş için güvenlidir. Ancak üzerinde çalıştığınız projede insanlar kuracağınız güvenliğin hassasiyetine bağlı olarak daha da ileri seviyeli bir güvenlik isteyebilirsiniz. Bu durumda bir güvenlik ve şifreleme uzmanı ile konuşmanızda fayda var.
2) Anahtarlarınızı daha doğrusu gizli anahtarınızı çok ama çok iyi koruyun! Mümkünse CD'ye yazıp güvenli bir yerde saklayın. Unutmayın ki eğer bir şekilde bu gizli anahtarın başına bir şey gelirse ve elinizde başka bir kopyası da yoksa o zaman sizin adınıza şifrelenmiş hiçbir dosyayı çözemezsiniz (mantıklı şartlar altında çözebileceğinizi iddia ediyorsanız lütfen benimle temas kurun, kısa sürede epey meşhur olmanızı sağlayabilirim ;-)
3) Parola ifadenizi (passphrase) sakın, asla, kesinlikle, kat'i surette unutmayın, bir yerlere yazmayın! Gizli anahtarınız her türlü kötü ihtimal düşünülerek olduğu gibi hard diske yazılmaz, bunun yerine bu gizli anahtar parola ifadeniz kullanılarak şifrelenir ve şifrelenmiş hali diske yazılır. Yani eğer kötü niyetli biri tüm ağ güvenlik önlemlerini aşıp bir şekilde bilgisayarınıza girse, şifreli belgelerinize, e-postanıza ve hatta gizli anahtarınızın bulunduğu dizindeki ilgili dosyalara ulaşsa bile parola ifadenizi bilmeden gizli anahtarınızı deşifre edemez, dolayısı ile gizli belgelerinizi okuyamaz. "Ne kadar güzel, %100 güvenlik, içim rahatladı" dediğinizi duyar gibiyim. Böyle diyeceksiniz ve sonra da kalıbımı basarım ki çoğunuz parola ifadesi olarak ismini, sevdiği takımla ilgili en meşhur sloganı, kız arkadaşının adını, en sevdiği romandaki en çok sevdiği cümleyi, vs. kullanacak! Üzgünüm ama henüz namlusunu beyninize dayayıp tetiğe bastığınızda sizi öldürmeyecek bir silah icat edilmedi. Benzer şekilde aptalca uygulamalara direnebilecek bir şifreleme algoritması da henüz ufukta görünmüyor. Kısaca: Tahmin edilebilecek bir sözcük ya da cümle kullanmaktan kaçının!
4) Bir anahtarı imzalamak ne demektir, bir arkadaşınız tarafından imzalanmış üçüncü bir şahsın anahtarına nasıl olur da güvenirsiniz, bütün bu anahtar halkası (keyring) ya da güven ağı (web of trust) hikayesi, vs. nedir bunları iyice öğrenin, kurcalayın, anlayın. Biliyorum hepsini anlatmadım ama kaynakça diye de bir bölüm ekledim yazıların sonuna değil mi? En azından ilk iki bölümün sonuna ;-)
Üçüncü ve son bölüm de burada bitiyor. Sürç-ü lisan ettiysem affola. Siz gene de izlenimlerinizi ve eleştirilerinizi benimle paylaşmaktan lütfen çekinmeyin. Dilerim ki "bilgisayar güvenliği" denilen okyanustaki "şifreleme" alt başlığına dair pratik/teorik bir miktar bilgi edinmenizi sağlamışımdır.
CVSBEBFODPLLVMMBOJMBOIBSGB
Not: Bu yazı (birkaç dakika ;-) önce ileriseviye.org isimli sitede yayınlanmıştır.