GNU Privacy Guard

GNU Privacy Guard (GnuPG ya da GPG), şifreleme yazılımı PGP yerine GPL lisanslı bir özgür yazılım alternatifidir. Özgür Yazılım Vakfı'nın GNU projesinin bir parçası olarak geliştirilmektedir ve en önemli maddi yardımını Alman hükümetinden almıştır. GPG, IETF'nin OpenPGP standartıyla tamamen uyumludur. PGP'nin güncel sürümleri GPG ve diğer OpenPGP uyumlu sistemlerle uyumluluk göstermektedir. Aynı zamanda bazı eski sürümlerde de bu uyumluluk söz konusudur, fakat güncel sürümün tüm özellikleri eski sürümlerce desteklenmemektedir. Kullanıcıların bu uyum sorunlarını anlamaları ve bunları göz önünde bulundurarak çalışmaları gerekmektedir.

Genel Bakış

GnuPG, geleneksel simetrik anahtar şifrelemesini hızlı yapması ve tek seferlik kullanılan bir oturum anahtarını şifrelerken alıcının açık anahtarlı şifreleme kullanması nedeniyle bir hibrit-şifreleme yazılımıdır.
GnuPG 1.x serisi entegre bir şifreleme kütüphanesi kullanır, GnuPG 2.x serisi ise bunu Libgcrypt ile değiştirmiştir.
GnuPG, GnuPG kullanıcıları tarafından ayrı ayrı oluşturulan asimetrik anahtar çiftlerini kullanarak mesajları şifreler. Ortaya çıkan ortak anahtarlar, diğer kullanıcılar ile İnternet anahtar sunucuları gibi çeşitli yollar vasıtasıyla değiştirilebilir. Bu anahtarların değişimi çok büyük önem taşımaktadır çünkü "Açık anahtar" ↔ "Açık anahtarın sahibi" ilişkisi kaybolursa kimlik sahteciliği(kendini farklı bir kişi gibi gösterme) yapılabilir, o nedenle bu değişim işlemi dikkatli bir şekilde yapılmalıdır. Gönderilen bir mesaja kriptografik dijital imza eklemek de mümkündür, böylece göndericinin doğrulaması yapılabilir. Bu şekilde, kimlik sahteciliği saldırılarının da önüne geçilmiş olunur. Ayrıca, dijital imza kullanılarak belirli bir yazışmanın gönderim esnasında bozulması durumuna karşın mesaj bütünlüğü kontrolü yapılarak mesajın bütünlüğü de doğrulanabilir.
GnuPG ayrıca simetrik anahtar algoritmalarını da destekler. Varsayılan olarak ise CAST5 simetrik algoritmasını kullanır. GnuPG patentli veya başka şekilde kısıtlanmış yazılım veya algoritmalar kullanmaz. Bunun yerine, GnuPG, çeşitli patentli olmayan algoritmalar kullanır.
GnuPG Uzun bir süredir PGP'de kullanılan IDEA(Uluslararası Veri Şifreleme Algoritması)'yı desteklemiyordu. Aslında bir eklenti indirerek IDEA'yı GnuPG'de kullanmak mümkündür, ancak IDEA'nın patentlendiği ülkelerde bazı kullanımlar için lisans gerektirebilir. 1.4.13 ve 2.0.20 sürümleriyle başlayan GnuPG, IDEA'nın son patentinin 2012'de sona ermesi nedeniyle IDEA'yı desteklemektedir. IDEA'nın desteği, "Kullanıcılardan gelen sorulardan kurtulmak için ya eski veriler şifrelenmeli ya da anahtarlar PGP'den GnuPG'ye taşınmalı" amacıyla tasarlanmıştır, bu nedenle düzenli kullanım için önerilmez.
GnuPG, 2.0.26 ve 1.4.18 sürümlerinde aşağıdaki algoritmaları desteklemektedir:
Açık anahtarlı şifreleme
RSA, ElGamal, DSA
Simetrik Anahtarlı Şifreleme
3DES, IDEA (versiyon 1.4.13 ve 2.0.20'den itibaren), CAST5, Blowfish, Twofish, AES-128, AES-192, AES-256, Camellia-128, -192 and -256 (versiyon 1.4.10 ve 2.0.12'den itibaren)
Özet(Hash) Fonksiyonu
MD5, RIPEMD-160, SHA-1, SHA-256, SHA-384, SHA-512, SHA-224
Sıkıştırma
ZIP, ZLIB, BZIP2

Tarihi

GnuPG başlangıçta Werner Koch tarafından geliştirildi. İlk üretim versiyonu olan Versiyon 1.0.0, ilk GnuPG sürümünden (versiyon 0.0.0) sonra neredeyse iki yıl sonra 7 Eylül 1999'da piyasaya sürüldü. Alman Federal Ekonomi ve Teknoloji Bakanlığı 2000 yılında belgeleri ve girişi Microsoft Windows'a finanse etti. GnuPG, OpenPGP standardına uyumlu bir sistemdir. Başlangıçta Phil Zimmermann tarafından tasarlanan ve geliştirilen PGP, e-posta şifreleme programı ile birlikte çalışmak üzere tasarlanmıştır.

GnuPG'nin kullanımı

GPG kararlı, kaliteli bir yazılımdır. neredeyse tüm GNU/Linux dağıtımları ve FreeBSD, OpenBSD, NetBSD gibi özgür işletim sistemlerine sıklıkla dahil edilir.
Her ne kadar temel GPG yazılımı bir komut satırı arayüzüne sahipse de, grafiksel kullanıcı arayüzü ile kullanılmasını sağlayan pek çok yazılım vardır. Örneğin, en popüler Linux masaüstü yöneticileri GNOME ve KDE'nin elektronik posta işlemcileri Evolution ve KMail'e entegre edilmiştir. GNOME için, Seahorse adlı bir grafik son kullanıcı arayüzü mevcuttur. II. Dünya Savaşı'nda Almanların kullandığı ENIGMA şifreleme tekniğinin isminden esinlenerek Enigmail olarak adlandırılmış bir eklenti, Linux'un yanı sıra Microsoft Windows ve diğer işletim sistemlerinde de çalışan Mozilla ve Thunderbird yazılımlarıyla entegrasyonunu sağlar. Horde gibi web tabanlı yazılımlarla da kullanılması mümkündür. Ancak unutulmamalıdır ki, eklenti mekanizmaları, GPG'nin ya da OpenPGP standardının bir parçası olmadığı ve ne GPG ne de OpenPGP geliştiricileri tarafından geliştirildikleri için, bu eklentilerin kullanımı güvenlik riskleri yaratma potansiyeline sahiptir.
GPG ayrıca Mac OS X ve Microsoft Windows gibi platformlar için de derlenebilir. Mac OS X için, MacPGP denen özgür bir GPG portu bulunmaktadır. MacPGP, OS X kullanıcı arayüzüne ve yerel sınıf tanımlarına uyarlanmıştır. Platformlar arası derleme küçük bir iş değildir, en azından güvenlik risklerini ortadan kaldırmak için çok fazla efor gerekmektedir.

Yöntemler

Temel GnuPG programının bir komut satırı arayüzü olmasına rağmen, grafiksel kullanıcı arayüzü sağlayan çeşitli ön uçlar bulunmaktadır. Örneğin, GnuPG şifreleme desteği, en popüler Linux masaüstü bilgisayarları olan KDE ve GNOME'da bulunan grafik e-posta istemcileri olan KMail ve Evolution'a entegre edilmiştir. Ayrıca grafik GnuPG ön uçları, örneğin GNOME için Seahorse ve KDE için KGPG vardır.
macOS için, GPG Suite projesi, şifreleme ve anahtar yönetimi için OS entegrasyonu ve Installer paketleri aracılığıyla GnuPG kurulumları için bir dizi Aqua ön uç sağlar. Ayrıca, GPG Suite Installer, GnuPG tabanlı şifrelemeyi kullanmak için ilgili tüm OpenPGP uygulamalarını (GPG Keychain Access), eklentileri (GPGMail) ve bağımlılıkları (MacGPG) yükler.
GnuPG kurulup yapılandırıldığında, Psi ve Fire gibi anlık mesajlaşma uygulamaları otomatik olarak güvenlik sağlamaktadır. Horde gibi web tabanlı yazılımlar da bundan yararlanmaktadır. Çapraz platform uzantısı Enigmail, Mozilla Thunderbird ve SeaMonkey için GnuPG desteği sağlar. Benzer şekilde Enigform, Mozilla Firefox için GnuPG desteği sağlar. FireGPG, 7 Haziran 2010 tarihinde durduruldu.
2005 yılında g10 Code GmbH ve Intevation GmbH şirketleri, Windows için GnuPG, GNU Privacy Assistant ve son olarak Windows Explorer ve Outlook için GnuPG eklentilerini içeren bir yazılım paketi olan Gpg4win'i piyasaya sürdü. Bu araçlar standart bir Windows yükleyicisine eklenerek, GnuPG'nin Windows sistemlerine yüklenmesini ve kullanılmasını kolaylaştırır.
2018'de, Sevenuc Danışmanlık Şirketi, Mac App Store'da Guard7 isimli bir program yayınladı. Bu program GnuPG ile günlük çalışmayı macOS'ta kolay ve basit hale getirdi. Bu program GPG için bazı ek özelliklere sahip(Örn. "Kişileri gruplara ayırın", "Farklı anahtarlıklar değiştirin") grafiksel bir ön uç. Guard7, MacOS'un yerleşik Mail uygulamasıyla sorunsuz bir şekilde bütünleşir ve e-posta mesajı için düzinelerce alıcıyı kolayca düzenleyebilir. Dosya şifrelemek veya şifresini çözmek sadece Finder'dan Guard7'ye dosya sürüklemeyi gerektirir, bu çok kullanışlı ve basittir.

Sınırlamalar

Komut satırı tabanlı bir sistem olarak GnuPG 1.x, başka bir yazılıma eklenebilecek bir API olarak yazılmaz. Bunun üstesinden gelmek için, GnuPG'nin çıktısını ayrıştıran ve bileşenler arasında kararlı ve sürdürülebilen bir API sağlayan GPPME (GnuPG Made Easy'den kısaltılmıştır), GnuPG etrafında bir API eklemesi olarak oluşturulmuştur. Bu, şu anda birçok GPGME API çağrısı için GnuPG yürütülebilir dosyasına bir işlem dışı çağrısı gerektiriyor. Sonuç olarak, bir uygulamadaki olası güvenlik sorunları, işlem engeli nedeniyle gerçek kripto koduna yayılmamaktadır. GPGME'ye dayanan çeşitli grafik ön uçlar oluşturulmuştur.
GnuPG 2.0'dan beri, birçok GnuPG fonksiyonu, Libgcrypt'de doğrudan C API'leri olarak kullanılabilir.

Zaafiyetler

OpenPGP standardı, mesajların dijital olarak imzalanması için çeşitli yöntemleri belirtir. 2003'te, bu yöntemlerden birini daha verimli hale getirmeyi amaçlayan GnuPG'ye yapılan bir değişiklik nedeniyle bir güvenlik açığı ortaya çıkmıştır. Sadece GnuPG'nin (1.0.2 - 1.2.3 arası) bazı sürümleri için yalnızca dijital olarak imza mesajlarının bir yöntemini etkilemiştir ve anahtar sunucularda 1000'den daha az sayıda anahtar bulunmaktadır. Çoğu insan bu yöntemi kullanmadı, bu nedenle meydana gelen hasar (eğer varsa, hiçbiri kamuya bildirilmediğinden) asgari düzeyde görünmektedir. Bu yöntem için destek, bu keşif sonrasında yayımlanan GnuPG sürümlerinden kaldırılmıştır (1.2.4 ve üstü).
2006 yılının başında iki tane daha fazla güvenlik açığı keşfedilmiştir; birincisi, GnuPG'nin imza doğrulaması için komut dosyalarının kullanılması yanlış pozitif sonuçlara yol açabilir, ikincisi ise MIME olmayan mesajların, dijital imzanın kapsamadığı ancak imzalı mesajın bir parçası olarak rapor edilen veri enjeksiyonuna karşı savunmasız oluşudur. Her iki durumda da GnuPG'nin güncellenmiş versiyonları duyuru sırasında hazırlanmıştır.
Haziran 2017'de, Bernstein, Breitner ve diğerleri tarafından Libgcrypt içinde bir güvenlik açığı (CVE-2017-7526) keşfedildi: GnuPG tarafından kullanılan, RSA-1024 için bütün anahtarların ve RSA-2048 anahtarlarının 1/8'inden fazlasının geri üretilmesini sağlayan bir kütüphane. Bu yan kanal saldırısı, Libgcrypt'in üslenme bitleri için kayan bir pencere yöntemi kullanması ve bu durumun, sonuçta bitlerin bitiminden ve tam anahtar kurtarılmasından kaynaklandığı gerçeğinden yararlanmaktadır. Yine, GnuPG'nin güncellenmiş bir sürümü duyuru sırasında hazırlandı.
Ekim 2017'de, genellikle PGP / GPG ile kullanılan YubiKey 4 jetonlarında üretilen RSA anahtarlarını etkileyen ROCA güvenlik açığı açıklandı. Birçok yayınlanmış PGP anahtarının hassas olduğu bulunmuştur.

Medyadaki Yansıması

Mayıs 2014'te The Washington Post, anon108 adında bir kullanıcı tarafından Ocak 2013'te Vimeo'ya gönderilmiş 12 dakikalık bir video rehberi "Gazeteciler için GPG" haberi yayınladı. The Post gazetesi, sesi dijital bir şekilde gizlenen ve amacı gazeteci Glenn Greenwald'e e-posta şifrelemesini öğretmek olan anon108'i, konuşma şeklinin Snowden'a benzemesi üzerine, kaçak NSA ihbarcısı Edward Snowden olarak tanımladı. Greenwald, videonun yazarlığını doğrulayamadığını söyledi.