sayesinde uzaklık ölçülür.




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özkonusudur, 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.

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

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.

Ocak 2018 itibarıyla iki aktif GnuPG dalı var:


Farklı GnuPG 2.x sürümleri (ör. 2.2 ve 2.0 dallarından) aynı anda yüklenemez fakat herhangi bir GnuPG 2.x versiyonu ile birlikte bir "klasik" GnuPG versiyonu (yani 1.4 dalından) monte etmek mümkündür.

GnuPG 2.2'nin ("modern") piyasaya sürülmesinden önce, artık kullanımdan kaldırılan "kararlı" şube (2.0), ilk kullanım için 13 Kasım 2006'da yayımlanan genel kullanım için önerildi. Bu şube 31 Aralık 2017'de ömrünün sonuna ulaştı. Son versiyonu 29 Aralık 2017'de piyasaya sürülen 2.0.31 versiyonudur.

GnuPG 2.0'ın piyasaya sürülmesinden önce, tüm kararlı yayınlar tek bir daldan oluşturuldu. Diğer bir deyişle, 13 Kasım 2006'dan önce, birden fazla sürüm dalı paralel olarak muhafaza edilmemiştir. Bu eski, sırayla başarılı (1.4'e kadar) sürüm dalları şunlardır:


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.

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.

 gpg --version 
 gpg --gen-key
 gpg --fingerprint
 gpg --list-keys 
 gpg --output acik_anahtar.gpg --armor --export ABCDFE01
 gpg --import acik_anahtar.gpg
 gpg --list-secret-keys 
 gpg --output gizli_anahtar.gpg --armor --export-secret-key ABCDFE01
 gpg --allow-secret-key-import --import gizli_anahtar.gpg
 gpg --encrypt --armor -r ABCDFE01 metin_dosyasi.txt
 gpg metin_dosyasi.txt.asc
 gpg --verify metin_dosyasi.txt.asc
 gpg --clearsign metin_dosyasi.txt

"Verilen örneklerdeki 'ABCDFE01' ifadesi anahtarın kısa kodudur."
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.

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ü)