Şifreleme işlemlerinde temel kaygı şifreleme yapan anahtar ve deşifreleme yapan anahtar aynı olduğu zamanlarda birisi anahtarı ele geçirirse, şifreli metni deşifreleyebileceğidir. Yani bu durumda en başta anahtarın güvenliğinin sağlanması gerekir. Açık anahtarlı şifreleme algoritmalarında ise bu probleme çözüm olarak bir anahtar ya sadece şifreleyebilsin, ya da sadece deşifreleyebilsin olmuştur. Biz de geçen hafta derste açık anahtarlı şifreleme algoritmalarından biri olan RSA'yı işledik. Bu işlemde kişi kendi belirlediği iki asal sayıyı belirli işlemlerden geçirip bir açık anahtar bir de gizli anahtar üretmektir. Açık anahtarı kendisine şifreli metin gönderilebilmesi için herkese verir. Sonra kendisine gelen şifreli metinleri kendi gizli anahtarı ile açar.
Bu şekilde açık ve gizli anahtarlar oluşturmak için çeşitli araçlar vardır. E-posta istemcileri, Seahorse gibi. Ben burada terminalden gpg ile gizli ve açık anahtarın nasıl üretibileceğinden bahsettim. gpg zaten dağıtımlarda genelde kurulu geliyor. Bu arada GPG (GNU Privacy Guard), GPL ile lisanslanmış bir şifreleme yazılımı.
Terminalden aşağıdaki gibi parametresiyle gpg komutunu verelim:
$ gpg --gen-key
gpg (GnuPG) 1.4.11; Copyright (C) 2010 Free Software Foundation,Inc. This is free
software: you are free to change and redistribute it. There is NO WARRANTY, to the
extent permitted by law.
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)
Your selection? 1
Burada RSA'yı seçip diğer sorularıda geçtikten sonra karşımıza anahtarların üretilmesi için şöyle bir yazı çıkacak:
We need to generate a lot of random bytes. It is a good idea to perform some other action
(type on the keyboard, move the mouse, utilize the disks) during the prime generation;
this gives the random number generator a better chance to gain enough entropy.
Ben bu işlem için "ls -R /" diyorum :) Sonra bir yerde kesiyorum tabi listelemeyi. Anahtarlar üretildikten sonra anahtarların parmak izi bilgisini ekranda görebiliriz.
Aslında gpg daha bir çok kullanışlı parametreye sahip. Çok da sevdim kendisini. Ama ben burada bu kadar bahsedebildim. Afiyet olsun :)
(1) RSA and RSA (default)
(2) DSA and Elgamal
(3) DSA (sign only)
(4) RSA (sign only)
Your selection? 1
Burada RSA'yı seçip diğer sorularıda geçtikten sonra karşımıza anahtarların üretilmesi için şöyle bir yazı çıkacak:
We need to generate a lot of random bytes. It is a good idea to perform some other action
(type on the keyboard, move the mouse, utilize the disks) during the prime generation;
this gives the random number generator a better chance to gain enough entropy.
Ben bu işlem için "ls -R /" diyorum :) Sonra bir yerde kesiyorum tabi listelemeyi. Anahtarlar üretildikten sonra anahtarların parmak izi bilgisini ekranda görebiliriz.
Key fingerprint = D9F2 4673 D60E 47EE EB46 1BB3 1EDE B418 711C B3B7
uid Ebru Akagunduz (Açıklama)
sub 2048R/07684591 2013-03-14
Daha sonra bir dosyadaki metni aşağıdaki gibi açık anahtarımızla "--encrypt" diyerek şifreleyebiliriz.
$ gpg --encrypt -r ebru.akagunduz@gmail.com duzmetin.txtAçarken de "--decrypt" parametresini kullansak yeterli olur.
$ gpg -ao public.key --export 711CB3B7Açık anahtarı elde etmek için
$ gpg -ao private.key --export-secret-keys 711CB3B7Gizli anahtarı elde etmek için kullanılır. Burada -a parametresi düz metin formatında almak için, -o parametresi de dosyaya yazıdrmak için kullanılır.
Aslında gpg daha bir çok kullanışlı parametreye sahip. Çok da sevdim kendisini. Ama ben burada bu kadar bahsedebildim. Afiyet olsun :)
yazı için eline sağlık.
YanıtlaSilgpg konsol çıktılarını aynen kopyalamışsın ya, satırlar bölünmemiş çok kötü görünüyor tarayıcıda.
Yazalı uzun zaman oldu, tam hatırlamıyorum kopyalarken dikkat etmemiş olabilirim. Ancak kimi zaman düzgün görünüyor, kimi zaman dediğiniz gibi. Şuan düzgün görünüyor ben de mesela.
Sil