Pretty Good Privacy

**Pretty Good Privacy (PGP)**, 1991 yılında Phil Zimmermann tarafından geliştirilen, OpenPGP standardını kullanarak veri şifrelemek, şifreli veriyi çözmek veya veriyi imzalamak için kullanılan, gönderilen ya da alınan verinin gizliliğini ve kimlik doğrulamasını sağlayan bir bilgisayar programıdır. Genellikle text dokümanlarını, e-postaları, dosyaları, klasörleri ve disk bölümlerini şifrelemek ve imzalamak için kullanılır.

## PGP ile e-posta güvenliği
E-Posta güvenliği öncelikli olarak elektronik postanın hedefe güvenli iletimini temin eder. Buradaki güvenlikten kasıt; gizlilik, bütünlük, kimlik doğrulama ve inkâr edilemezliği garanti etmektir. Başka bir ifadeyle insanlar e-postalarının güvenli bir şekilde iletileceğine güvenmeyecekleri bir e-posta sistemini kullanmak istemezler. E-Posta ile bir sipariş alındığında bu e-postanın doğru kaynaktan gelen ve herhangi üçüncü bir şahıs tarafından içeriği okunamayan ya da değiştirilemeyen bir sipariş olduğuna veya sahte olmadığına nasıl güvenebiliriz? Eğer kullanılan e-posta sistemi şifreleme, kimlik doğrulama ve elektronik imza gibi güvenli iletim teknikleri kullanmıyorsa bundan kesinlikle emin olamayız. Güvenli ve şifreli bir şekilde gönderilmeyen e-postalar herkese açık olan internet ortamından geçtiklerinden dolayı şifrelenmemiş olan her türlü verinin bilgisayar korsanları veya kötü niyetli kişiler tarafından elde edilebileceğini de unutmamak gerekir. Bu güvenlik problemlerini ortadan kaldırmak için kullanılan yöntem  ise Kriptografi (Şifreleme)'dir.

PGP ile şifreleme genel olarak kriptografik ozet fonksiyonu, veri sıkıştırma, simetrik anahtar algoritmalari ve açık anahtar şifrelemenin kombinasyonundan oluşan hibrit bir yapıya sahiptir. Bu yöntemle e-posta alıcının posta kutusuna gelene kadar şifrelidir ve içeriği yetkisiz kişilere karşı korunmuş olur.

### Mesaj kimlik doğrulama ve bütünlük
PGP mesaj kimlik doğrulama ve bütünlük kontrolü gibi hizmetler de sunuyor. PGP blok şifreleme algoritması kullandığından dolayı bir uçtan diğer uca mesaj gönderimi sırasında mesajda bir bitlik bozulma veya değişiklik dahi olursa aynı oturum anahtarına sahip olan alıcı şifre çözme işlemini gerçekleştiremez. Böylelikle gönderilen mesajda bozulma ya da değişiklik olduğu anlaşılır. Mesajın doğru kişiden geldiğini garanti eden mesaj kimlik doğrulama işlemi ise RSA Algoritması ve Kriptografik Özet Fonksiyonu yardımıyla yapılır. Mesaj özeti alındıktan sonra gönderenin özel anahtarı ile RSA algoritmasına sokulur. Alıcı tarafta gönderenin açık anahtarı vasıtası ile doğrulama yapar. Farklı kişilerden alınan mesajlar anahtar uyuşmazlığı yüzünden kimlik doğrulamayı sağlayamaz. Bu yöntem sayesinde normal mesaj kimlik doğrulamasından farklı olarak inkâr edilememezlik özelliği de sağlanmış olur.

Kimlik Doğrulama: Gelen e-postanın doğru kişiden geldiğini garanti eder.

Mesaj Bütünlüğü: Alıcıya mesajın iletimi esnasında değişikliğe uğramadığını garanti eder.

İnkâr Edilememe: Gönderilmiş olan bir mesajın gerçekte kimin tarafından gönderildiğinin garanti altına alınmasını temin eder.

## PGP'nin tasarımı
PGP ile şifreleme genel olarak kriptografik özet fonksiyonu, veri sıkıştırma, simetrik anahtar algoritmaları ve açık anahtar şifrelemenin kombinasyonundan oluşan hibrit bir yapıya sahiptir. Bu yöntemle e-posta alıcının posta kutusuna gelene kadar şifrelidir ve içeriği yetkisiz kişilere karşı korunmuş olur. Tüm açık anahtarlar sahibinin kullanıcı adı ya da e-posta adresine bağlanmış durumdadır. PGP'nin ilk versiyonlarında Web of Trust olarak bilinen bu sistem daha sonra daha sonra sertifika otoritesinin hiyerarşik yapısını kullanan X.509 sistemiyle desteklenmiştir. PGP'nin güncel versiyonu her iki seçeneği de desteklemektedir.

PGP'de her kullanıcının bir açık anahtarı bir de özel anahtarı vardır. Açık anahtarlar sunucular vasıtasıyla yayınlanır ve göndericinin veriyi şifrelemesi için kullanılır, özel anahtarlar ise kullanıcı tarafından gizli tutulur ve gelen şifreli veriyi çözmek için kullanılır. Ancak, gönderilecek veri simetrik anahtar algoritmalarıyla şifrelenir. Bunun sebebi ise simetrik anahtar algoritmalarının açık anahtar şifreleme algoritmalarına oranla çok daha performanslı olmasından kaynaklanıyor. Burada kullanılan simetrik anahtar ise her seferinde sadece bir kez kullanılır ve bu anahtar oturum anahtarı olarak adlandırılır. Açık anahtar şifreleme ise oturum anahtarının alıcıya güvenli bir şekilde iletilmesinde kullanılır. Bu işlem oturum anahtarının, alıcı tarafın açık anahtarı ile şifrelenmesi ve sadece özel anahtarın sahibinin (yani alıcının) bu şifreyi çözebilmesi ve oturum anahtarını elde edebilmesi ile gerçekleşir. Böylece anahtar alışverişi güvenli bir şekilde tamamlanmış olur.
  

Açık ve gizli anahtar şifrelemelerinin beraber kullanılması sayesinde alıcı ve göndericinin daha öncesinde anahtar paylaşma gereksinimleri yoktur. Aynı zamanda gizli anahtarlama sisteminin sağlandığı hızdan faydalanılır. Gizli anahtarlama sistemleri anahtar boyutunun da az olmasından dolayı çok daha hızlıdır. Beraber kullanıldığında anahtar paylaşımı ve performans, güvenlikten ödün vermeden artırılmış olur.

### PGP'de anahtar yönetimi
#### Web of trust
Web of trust ilk olarak 1992 yılında Phil Zimmerman tarafından 1992 yılında açık anahtarların güvenli bir şekilde dağıtılması için tasarlanmış bir alt yapıdır. Bu sistemde her kullanıcının açık anahtarı başka kullanıcılar tarafından imzalanır ve anahtarın sahte olup olmadığına dair bir güven derecesi oluşturulur. Bu sayede e-posta göndermek istenilen kişinin açık anahtarının sahte olmadığına bu güven derecesine göre karar verilir. Yani güvenli anahtar kullanımı için merkezi olmayan bir güven ağı oluşturulur.

 
#### X.509
X.509, ITU-T tarafından geliştirilen ve açık anahtar sertifikalarının, sertifika iptal listelerinin, sertifika hiyerarşisinin ve bunun gibi benzer açık anahtar alt yapısının belirli bileşenlerinin formatını oluşturan bir internet standardıdır. Web of trust'a alternatif olarak geliştirilen bu sistem günümüz güvenli haberleşme alt yapısının temelini oluşturur. Burada güvenilir üçüncü şahıslar olarak adlandırılan sertifika otoriteleri tarafından açık anahtarların imzalanması ile bir güven ortamı oluşturulur.

### Veri şifreleme
Verinin açık kanallardan iletimi sırasında okunabilir durumda olması güvenlik zafiyeti oluşturduğundan buna önlem olarak Kriptografi'den yararlanılmıştır. İki çeşit şifreleme tekniği kullanılır: Simetrik ve A-Simetrik anahtarla şifreleme.
### Simetrik anahtar şifreleme
Simetrik anahtar şifreleme ile gönderici bir mesajı alici ile önceden kararlaştırılmış bir anahtar ile şifreler ve şifreli metin herkesin kullanımına açık olan bir hattan iletilir. Alıcı aynı anahtar ile şifreli metni çözer ve metni okuyabilir. Her iki kullanıcının da metni şifrelemek ve şifre çözmek için kullandıkları anahtarın aynı olduğu bu sistem simetrik anahtarlama teknolojisidir. Simetrik anahtarlama teknolojisinde anahtarın kolaylıkla istenmeyen kişilerin eline geçebilecek olması tehlikesi anahtarın sürekli olarak kullanılmasını engeller ve her işlem için yeni anahtar oluşturulması zorunluluğunu doğurur. 
### Açık anahtar şifreleme
Açık anahtar şifrelemede her iki kullanıcıda da (gönderici ve alıcı) iki ayrı anahtardan oluşan birer anahtar çifti vardır ve anahtarlardan biri kullanılarak diğeri elde edilemediği sürece anahtarlardan birinin açıklanmasında bir sakınca yoktur.
Bilgiyi şifrelemekte kullanılan anahtara açık anahtar (public key) denir ve herkese yayınlanabilir. Şifrelenmiş bilgiyi açmak için kullanılan anahtar da özel anahtar (private key) olarak adlandırılır ve gizli tutulur. Birisine bir mesaj gönderildiğinde alıcının açık anahtarı ile mesaj şifrelenir. Alıcı bu mesajı kendi özel anahtarı ile açıp okuyabilir. Genellikle simetrik anahtar şifrelemede kullanılan oturum anahtarının karşı tarafa iletilmesinde güvenli bir hat oluşturmak için kullanılır.

## PGP'nin Tarihçesi
Phil Zimmerman tarafından 1991 yılında geliştirilen program adini o döneme ait ünlü bir radyo programı sunucusu olan Garrison Keillor'in anlattığı bir hikâyedeki küçük bir bakkalın ismi olan "Ralph's Pretty Good Grocery"den esinlenmistir. Zimmerman tasarladığı bu ilk versiyonda yine kendi tasarladığı BassOmatic adlı bir simetrik anahtar algoritmasını kullanmıştır. Anti-nükleer aktivist olarak bilinen Zimmerman PGP'yi kendi gibi düşünen diğer siyasi aktivistler ile güvenli bir şekilde haberleşmek için çıkarmıştı. Ticari olmayan bu sürüm herhangi bir lisans gerektirmeden kullanılabilindiği gibi kaynak kodu da insanlara açıktı.

Ancak internet üzerinden dünyanın çeşitli ülkelerindeki liberaller tarafından da kullanılmaya başlaması Phil Zimmerman'i lisanssız silah ihracatı yapmaktan dolayı suçlu konumuna düşürdü. O dönemde 40 bit anahtar uzunluğundan daha büyük anahtar uzunluğuna sahip şifreleme programlarının ihracatı silah ihracatı ile aynı yasal düzenlemelere tabiydi. Fakat PGP hiçbir zaman 128 bitten daha küçük anahtar boyutları kullanmadı. Bu arada dava birkaç yıl sonra düştü.

Yıllar içinde ticarileşen ve çeşitli şirketlerde el değiştiren PGP en son 7 Haziran, 2010 tarihinde yapılan açıklama ile Symantec Corp. 300 milyon dolara satın aldı.

## Kaynakça