Dosya Şifreleme (File Encryption)
SSH
SSH kullanarak Unix makinalarına giriş yapabiliyoruz, dosya kopyalayabiliyoruz. Bu program arka planda açık / kapalı anahtar çifti kullanıyor, ve yani bir anahtarla şifrelenen mesaj bir diğeri ile açılabiliyor, eğer mesajın benden geldiğine birini ikna etmek istiyorsam o mesajı göndermeden önce gizli anahtarımla şifrelerim, benim açık anahtarım herkes tarafından bilinir, mesajı alan açık anahtarımı kullanarak mesajı açar, benden olduğuna emin olur. Ya da direk bana mesaj göndermek isteyen mesajı göndermeden önce açık anahtarımla mesajı şifreler, ben gizli anahtarımla mesajı açarım, gizli anahtarımı kimseyle paylaşmam, bu sebeple bu mesajı benden başka kimse okuyamaz.
Bu mesajlaşma tekniğini ssh altyapısı üzerinden nasıl kullanırız?
Çünkü programcılar çoğunlukla ssh kurmuş olurlar, ssh-keygen -t rsa
ile $HOME/.ssh
altında açık / kapalı anahtarları vardır
(id_rsa.pub
ve id_rsa
dosyaları) başka şeylerle uğraşmasak olmaz
mı?
Bu mümkün. Diyelim ki birinin açık anahtarını biliyorum, bu anahtar bu
kişiye şifreli mesaj gönderilebilmesi için yayınlanır, mesela bana
mesaj gelmesi için siteme koyarım, onu herkes görür. Bu anahtar mypub
dosyasında diyelim. Onu pkcs8
formatına çevirmek lazım,
ssh-keygen -f pub1 -e -m pkcs8 > pub1.pkcs8
Simdi mesaj mesaj.txt
icinde diyelim,
cat message.txt | openssl rsautl -encrypt -pubin -inkey pub1.pkcs8 > message.enc
Böylece şifrelenmiş mesaj message.enç
içinde olacak. Bu mesajı email ile
artık o kişiye gönderebilirim, çünkü birisi bu mesajı yolda 'yakalaşa' bile
içeriğini çözmesi çok zor olacaktır.
Mesajı alan kişi onu çözmek için gizli anahtarını kullanabilir,
cat message.enc | openssl rsautl -decrypt -inkey ~/.ssh/id_rsa
Üstteki komut şifrelenmiş mesajın orijinal içeriğini gösterecektir.
Ccrypt
Emacs ile iyi entegre olmuş bir program ccrypt
. Kurma için Ubuntu
üzerinde apt install ccrypt
yapılabilir, Emacs için gereken dosya
[2]'deki zip, tar dosyalarında var, ps-ccrypt.el
. Bu dosyayı alıp
diğer Emacs tanım dosyalarının olduğu dizine koyup ana tanım içine
(setq load-path (cons "[DIZIN]" load-path))
(require 'ps-ccrypt "ps-ccrypt.el")
eklemek yeterli. Artık .cpt
ile biten dosyalar ccrypt ile
açılacaktır, sadece ilk seferde bir şifre sorulur, ardından, aynı
dosya Emacs buffer seviyesinde açık olduğu sürece takip eden kaydetme
işlemleri için şifre sorulmaz. Üzerinde çalışılan dosyayı sık kaydeden
kullanıcılar için (benim gibi) bu faydalı bir özellik.
Kaynak
[1] http://krisjordan.com/essays/encrypting-with-rsa-key-pairs
[2] http://ccrypt.sourceforge.net/
Yukarı