Register Now

Login

Lost Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Login

Register Now

Canyoupwn.me ~

TR | How to use GPG

a

the gnu privacy guard

GnuPG veya GPG olarak bilinen GPL lisanslı şifreleme ve imzalama yazılımıdır.Özgür Yazılım Vakfının(Free Software Foundation) GNU projesinde yer alarak geliştirilmektedir.Bu projede yer alan yazılım çoğu Linux dağıtımında ön yüklü olarak gelmektedir. TrueCrypt yazımızda belirttiğimiz gibi güvenlik,gizlilik gün geçtikçe önemini arttırmakta ve bu konulara olan talep her geçen gün biraz daha önemli hale gelmektedir. Verilerin saklanmasında,önemli verilerimizin transferinde gizliliği sağlamak amacıyla kullanılan GnuPG kullanışlı ve güvenilir yazılımlar arasında yerini almıştır. Kullanım alanları genellikle text dökümanları,e-postalar,dosya ve klasörler,disk bölümleridir.Bunları şifrelemek veya imzalamak için kullanılmaktadır. GnuPG’den bahsederken pgp ve Phil Zimmermann’a değinmeden geçemeyiz.Pgp(Pretty Good Privacy-Oldukça iyi mahremiyet) çok popüler olan ve dünyada yaygın şekilde kullanılan e-posta kriptolama yazılımıdır.1991 yılında Phil Zimmermann tarafından geliştirilen yazılım büyük bir başarı sağlamıştır. Bu başarı Phil Zimmermann’a 3 yıl boyunca fbi soruşturması ve nsa takibi gibi sıkıntıları da beraberinde getirmiştir.Zimmermann’ın aslında yaptığı sıradışı bir şey yoktur.Zimmermann önde gelen şirketlerin ve askeri amaçla kullanılan kriptografi teknolojilerini bireysel kullanıcıların hizmetine sunmuştur. Pgp ve Zimmermann konularına da şöyle bir değindikten sonra artık GnuPG kullanımına yavaş yavaş geçelim.

Varsayılan olarak komut satırında kullanıma sahip olan GnuPG çoğu GNU/Linux dağıtımlarında kurulu olarak gelmektedir.GPG ayrıca MAC OS X ve Microsoft Windows işletim sistemleri içinde derlenebilir.Her ne kadar komut satırında kullanım varsayılan olsada grafiksel arayüz ile kullanım için bir çok yardımcı yazılım geliştirilmiştir.Bu yazılımların birkaçını ve GnuPG hakkında daha çok bilgiyi aşağıdaki linkten inceleyebilirsiniz.
https://tr.wikipedia.org/wiki/GNU_Privacy_Guard
Ayrıca indirme,kurulum,kullanım gibi soru işaretlerinizde GPG nin kendi dökümanı olan Türkçe çeviri yapılmış kaynaklarını da şu adresten bulabilirsiniz:
https://www.gnupg.org/howtos/tr/GPGMinikNasil.html
İlk olarak çalışma mantığından bahsedelim.
GnuPG genel anahtar kriptografisini kullanmaktadır.Peki nedir bu genel anahtar kriptografisi?
Genel anahtar kriptografisi kullanılan bir sistemde kullanıcı bir anahtar çiftine sahiptir.Yani açmak gerekirse sistem bize bir özel(gizli tutulması gereken) anahtar ve birde genel anahtar sunar.Private Key(özel anahtar) ve Public Key(Genel anahtar)’e sahip oluruz. Public Key güvendiğimiz ve haberleşeceğimiz kişilerle paylaşılabilir.Private Key paylaşılmaz ve güvenlik açısından açığa çıkarılmaz.Anahtar oluşumu sırasında kullanıcının root yetkisine sahip olması tercih edilir.
GnuPG’nin kullandığı kriptolama algoritmalarına bir göz atalım:
-Blok Şifreleme(simetrik şifreleme algoritmaları):CAST5,Camellia,Üçlü Des,AES,Blowfish,Twofish.
-Asimetrik-anahtar şifrelemeleri:ElGamal ve RSA.
-Kriptografik sağlamalar:RIPEMD-160,MD5,SHA-1,SHA-2 ve Tiger.
-Dijital imzalar:Dijital imza algoritması ve RSA.
Bu algoritmaları birde ekran çıktısını göstererek doğrulayalım.

  • “gpg –version” komutu ile hem gpg yazılımımızın versiyonunu hemde kullandığı algoritmaları görebiliriz.

a

 

  • Bu algoritmalarıda gördükten sonra anahtar oluşturmaya başlayalım.
    “gpg –gen-key” komutu ile anahtarımızı oluşturmaya başlayabiliriz.Bu komutu girdiğimizde bizden hangi algoritma ile anahtar oluşturacağımızı sormaktadır.

a

 

  • Burdan anahtar tipimizi varsayılan 1 olarak seçip devam edelim.Bizden anahtar boyutunu istemektedir.Onada varsayılan olarak 2048 diyerek devam edelim.

a

 

  • Daha sonra karşımıza gelecek seçenekte iste oluşturacağımız anahtarın geçerlilik süresini belirlememizi istemektedir.0 yaparsak geçerliliğini hiç yitirmeyecek olan anahtar üretmiş oluruz. Diğer seçenekler zaten gün,ay,yıl olarak belirtilmiştir.0 diyerek devam ediyoruz ve ardından onay ekranından “y” ile onaylayarak devam ediyoruz.

a

 

  • Sonraki aşamada bizden ismimizi istemektedir.Girelim ve devam edelim.Daha sonra email adresimizi istemektedir onuda girelim.Bir sonraki aşamada ise bizden açıklama istemektedir.Daha sonradan hatırlayabileceğimiz ve anlayabileceğimiz bir açıklama girilmesi tavsiye edilir.Son aşamada değiştirmek istediğimiz alan olursa değiştirebiliriz.Her şey tamamsa (O)KAY seçeneği ile anahtar oluşumunu tamamlamaktayız.Son aşamada ise bizden passphrase oluşturmamızı istemektedir.Bu passphrase’i asla unutmayalım ve kaybetmeyelim verilerimizi decrypt ederken lazım olacaktır.Ayrıca passphrase’imizin uzun olması,harf veya karakter içermesi,kolay olmaması tavsiye edilir.Deneme olarak ‘canyoupwnme1’ vererek devam ediyoruz.Anahtar oluşturulmaya başlanmıştır.Ekran çıktılarına bir göz atalım.

a

 

  • Burda gördüğümüz gibi sürekli geçerli olacak anahtar onay aşamasından sonra bizden isim istemektedir(Real name kısmı).Daha sonra bizden email adresi istemektedir onuda girerek devam ettik.Daha sonra açıklama kısmımızıda yukarıda bahsettiğimiz şekilde doldurduk.Ve (O)kay ile anahtarımızı oluşturmaya başladık.
    Burda dikkat edilmesi gereken nokta ekran görüntüsündeki açıklamada belirttiği gibi anahtar oluşturma işlemi sırasında faremizi rasgele hareket ettirmeliyiz,tarayıcımızda gezebiliriz,boş bir ekranda klavyeden random girişler yapabiliriz.Peki bu bize neyi sağlar?Böyle bir uygulamayı TrueCrypt uygulamasında da anlatmıştık.Bu hareketler ile oluşturmak istediğimiz anahtara güçlü hashler sağlarız.Rasgele sayı üretiminde programa kaynak sağlar ve sistemin kararlı çalışmasında etkilidir.Gerekli işlemleri(hareketleri) yaparken ki ilerleyişimizde karşımıza şöyle bir ekran çıktısı gelmektedir.

 

a

 

  • Görüldüğü gibi ilk başta ihtiyacımız olan 208 byte hareketlerle 85 byte ihtayaca kadar düşürülmüştür.Bu aşamada belirttiğimiz aktiviteleri yapmaya aşağıdaki ekran çıktısını görene kadar devam ediyoruz.

a

  • Bu ekran çıktısını gördüğümüzde anahtar çiftimiz başarıyla oluşturulmuştur.
    Oluşturduğumuz anahtar çiftlerinin bilgilerini “gpg –list-key” komutu ile gözden geçirelim.

a

 

  • Oluşturduğumuz anahtar çiftinden public key tarihi ve açıklaması ile birlikte görmekteyiz.Şimdide gizli anahtarlarımızı “gpg –list-secret-keys” komutu ile görelim.

a

 

  • Şimdide sistemimizdeki anahtarı dışarıya aktaralım.
    “gpg –armor –output publickeyimiz.txt –export ‘canyoupwnme’ ” komutu ile public keyimizi çıktı olarak txt dosyasında oluşturduk.“gpg –output gizli_anahtar.gpg –armor –export-secret-key canyoupwnme” komutu ile de private keyimizi gpg türünde dosya olarak oluşturduk.Txt ve gpg dosya uzantılarını belirlememiz bizim elimizdedir bu yüzden 2 farklı örnekle göstermiş olduk.Şimdi oluşturduğumuz çıktılara bir göz atalım.a

 

  • Şimdide oluşturduğumuz anahtarları dosya kriptolamada kullanalım ve kriptoladığımız dosyayı decrypt edelim.
    “gpg –encrypt –armor -r canyoupwnme deneme.txt” komutu ile metin dosyamızı kriptoladık.

a

 

  • Bize “deneme.txt.asc” asc uzantılı kriptolanmış bir dosya olşturdu.Artık “deneme.txt” dosyamızı silebiliriz.Verilerimiz kriptolanmış asc uzantılı dosyamızda mevcut.
    Şimdi kriptolanmış dosyamızı decrypt edelim.Kullanacağımız komut çok basit.”gpg deneme.txt.asc” komutu ile decrypt etmeye başlarken bizden anahtarlama işlemi sırasında oluşturduğumuz önemli olarak belirttiğimiz passphrasemizi sormaktadır.”canyoupwnme1” olarak oluşturmuştuk giriyoruz ve dosyamızı decrypt ediyoruz.Sırasıyla ekran görüntülerine göz atalım.

a

 

  • Passphraseimizi girdikten sonra deneme.txt dosyamız decrypt edilecektir.

a

 

  • Görüldüğü üzere deneme.txt dosyamızı tekrar elde ettik. Yazımızda gpg anahtar oluşturma,anahtarları dışarıya aktarma,dosya kriptolama ve decrypt etme gibi örnekleri anlattık.

About Murat TORAMAN

Süleyman Demirel Üniversitesi Bilgisayar Mühendisliği 4.sınıf öğrencisi

Follow Me