Linux’ta İndirilen Yazılımın PGP İmzası Nasıl Doğrulanır
PGP (Pretty Good Privacy), veri iletişimini şifrelemek ve imzalamak için kullanılabilen genel anahtarlı bir şifreleme yazılımıdır. Bu eğitimde, Linux’ta İnternet’ten indirilen yazılımın PGP imzasının nasıl doğrulanacağına bakacağız.
Linux kullanıcıları, yazılımları dağıtımlarının havuzlarından güvenli bir şekilde yükleyebilir. Ancak, bir web sitesinden yazılım indirmeniz ve yüklemeniz gereken zamanlar vardır. İndirdiğiniz yazılımın tahrif edilmediğinden nasıl emin olabilirsiniz?
Bazı yazılım yazarları, yazılımlarını, OpenPGP standardının ücretsiz bir yazılım uygulaması olan GPG (GNU Privacy Guard) gibi bir PGP programı kullanarak imzalar. Bu durumda, yazılımın bütünlüğünü GPG kullanarak doğrulayabilirsiniz.
İşlem nispeten basittir:
Yazılım yazarının genel anahtarını indirirsiniz.
Doğru anahtar olduğundan emin olmak için Public Key in fingerprint ini kontrol edin.
Doğru Public Key i GPG genel key lerinizin içine aktarın.
Yazılımın PGP imza dosyasını indirin. PGP imzasını doğrulamak için Public Key i kullanın.
İmza doğruysa, yazılıma müdahale edilmemiştir
VeraCrypt’i, indirilen yazılımın PGP imzasını nasıl doğrulayacağınızı göstermek için örnek olarak kullanacağız.
Örnek: VeraCrypt’in PGP İmzasını Doğrulayın:
VeraCrypt açık kaynaklı bir yazılım olmasına rağmen, Ubuntu deposuna dahil değildir. VeraCrypt Linux yükleyicisini resmi web sitesinden indirebiliriz. Ubuntu 20.04 masaüstü kullanıyorum, bu yüzden Ubuntu 20.04 için .deb dosyasını indiriyorum.
İndirme linki bu adreste https://veracrypt.fr/en/Downloads.html
VeraCrypt indirme sayfasında, PGP Public Key ve PGP Signature indirme bağlantısını da bulabilirsiniz. Bu iki dosyayı indirmek için bağlantıları tıklayın. VeraCrypt’in PGP Public Key anahtarını indirmek için aşağıdaki komutu çalıştırabiliriz.
wget https://www.idrix.fr/VeraCrypt/VeraCrypt_PGP_public_key.asc
Public Key ile herhangi bir şey yapmadan önce, doğru anahtar olup olmadığını görmek için her zaman key in fingerprint ını kontrol etmeliyiz. Aşağıdaki komutu kullanarak Key in fingerprint ını görüntüleyelim.
gpg --show-keys VeraCrypt_PGP_public_key.asc
Çıktının ikinci satırı, Key in fingerprint ıdır.
1.4.20 gibi çok eski bir GPG sürümü (gpg – sürüm) kullanıyorsanız, Fingerprint iı görüntülemek için aşağıdaki komutu kullananabiliriz.
gpg --with-fingerprint VeraCrypt_PGP_public_key.asc
VeraCrypt web sitesinde yayınlanan Fingerprint ile karşılaştırıyorum.
Gördüğünüz gibi, iki Fingerprint aynı, yani Public Key doğru. Böylece Public Key i GPG Public Key lerimize aktarabiliriz.
gpg --import VeraCrypt_PGP_public_key.asc
Şimdi aşağıdaki komutu kullanarak yazılım yükleyici dosyasının imzasını doğrulayın. İmza dosyasını (.sig) ve yazılım yükleyici dosyasını belirtmeniz gerekir. Bu ayrı bir imzadır, yani imza ve yazılımın ayrı dosyalarda olduğu anlamına gelir.
gpg --verify veracrypt-1.24-Update7-Ubuntu-20.04-amd64.deb.sig veracrypt-1.24-Update7-Ubuntu-20.04-amd64.deb
Çıktının anlamı :İmza İyi (Good Signature)
Yazılının Hash değeri, yazılım yazarının Private Key ile şifrelenmiştir. GPG, Hash değerinin şifresini çözmek için Public Key kullanır, ardından VeraCrypt yükleyicisinin hash değerini hesaplar ve ikisini karşılaştırır. Bu iki Hash değeri eşleşirse, imza iyidir ve yazılıma müdahale edilmemiştir.
GPG size bunun kötü bir imza olduğunu söylüyorsa, yazılım yükleyicisi tahrif edilmiştir veya bozulmuştur.
Güvenilir Bir Kaynaktan Public Key i İçe Aktarma:
Yazılım üretisicinin size web sitesinde yazılımının Public Key kimliğini söylerse, aşağıdaki komutla Public Key i içe aktarabileceğinizi, böylece PGP Public Key i manuel olarak indirip anahtarlığınıza aktarmanız gerekmediğini unutmayın.
gpg --recv-keys <key-ID>
Ardından fingerprint ı şununla görüntüleyin:
gpg --fingerprint <key-ID>
Ve çıktıdaki fingerprint i web sitesinde yayınlananla fingerprint ı karşılaştırın. Bu daha güvenlidir çünkü Public Key, varsayılan olarak ~ / .gnupg / gpg.conf dosyasında hkp: //keys.gnupg.net olarak ayarlanan bir Public Key sunucusundan içe aktarılır. Dünya çapında yüzlerce Public Key sunucusu var. Ubuntuda kendi anahtar sunucusu sahiptir. MIT’de de bir tane var.
Aşağıdaki hatayı görürseniz,
gpg: keyserver receive failed: No data
daha sonra bunun gibi farklı bir anahtar sunucusu deneyebilirsiniz:
gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys 0x680D16DE
Makalemiz bu kadar, umarım sizler için faydalı olur.Okuduğunuz için teşekkür ederim.