Pretty Good Privacy (PGP) Şifreleme

*Mujaahed*

KF Ailesinden
Özel Üye
Pretty Good Privacy (PGP) Şifreleme
PGP, veri iletişimi için kimlik doğrulama ve mahremiyeti sağlayan bir veri şifreleme ve şifre çözme yöntemidir [1]. PGP genellikle dosya imzalama; metin, e-posta, dosya, hard disk ve dizin şifreleme gibi iletişim güvenliğini artırma yöntemlerinde kullanılır. Bu makalede öncelikle PGP'nin tarihçesine yer verilecek, devamında bu şifreleme yönteminin nasıl çalıştığı anlatılacak, daha sonra kullanım alanları ile ilgili detaylı bilgiler sunulacak ve sonunda PGP şifreleme yöntemini kullanan örnek bir uygulamadan bahsedilecektir.
[h=2]PGP Şifreleme Yönteminin Tarihçesi[/h] PGP'nin tarihsel sürecinden önce, bu yöntemde kullanılan diğer ilişkili şifreleme yöntemlerin tarihine göz atmakta fayda var:
PGP şifreleme yönteminin dayandığı şifreleme yöntemlerinden biri olan "açık anahtarlı şifreleme", 1976 yılında Whitfield Diffie ve Martin Hellman adlı bir avukat ve mühendisin icadıyla ortaya çıktı. 1977 yılında ise diğer önemli bir şifreleme yöntemi bulunmuştu. Bu yöntem asimetrik şifreleme mantığına dayalı bir sistemdi. Yöntemi bulan Ron Rivest, Adi Shamir ve Len Adlemen üçlüsünün isimlerinin ilk harflerinin kullanılmasıyla bu yönteme RSA denecekti. Bu yöntemin Amerikan Milli Güvenlik Ajansı (NSA) tarafından tehdit olarak algılanması sonucu, NSA tarafından RSA'yı bulan bu üçlüye, bu yöntemi açıklamamaları yönünde baskı geldi. Ne var ki, Rivest ve arkadaşları bu baskıya boyun eğmediler ve 1977 yılında "New Directions in Cryptography" adlı bir makale ile bu yöntemi duyurmuş oldular. Diğer önemli bir yöntem olan IDEA ise Xuejia Lai ve James Massey tarafından geliştirilmişti. IDEA bir simetrik şifreleme yöntemiydi (bu algoritmanın PGP bünyesinde RSA ile birlikte ilişkili bir rolü vardır).
PGP bünyesinde yer alan yukarıdaki algoritma ve şifreleme yöntemlerinden sonra, zamanla, her bir yöntem kendi içerisinde geliştirildiler. Genel olarak şifreleme bilgi birikiminde de dünya önemli bir yere gelmişti. PGP'nin 1991 yılında bulunması sırasında genel olarak durum böyle idi. Şimdi de PGP'nin gelişim sürecine ve çeşitli etkenlere bakalım:
1991 yılında, Amerikan Senatosu bir yasa tasarısı hazırladı. Bu tasarıya göre, bütün şifreleme yazılımları kendi bünyelerinde bir arka kapı bırakmalıydılar. Bu durum Phil R Zimmermann'ı tetiklemiş ve PGP'yi icat etmesine zemin oluşturmuştu. Phil R Zimmermann şöyle diyordu: "17 Nisan 1991'de New York Times, Amerikan Senatosunun terör karşıtı bir yasa tasarısı teklifini duyurdu. Eğer bu bağlayıcılığı olmayan çözüm zorunlu bir yasaya dönüşürse, güvenli iletişim cihazları üreten firmalar yazılımlarında açık kapı bırakmak zorunda kalacaklar ve bu da hükümetin bütün insanların şifreli mesajlarını okuyacağı manasına geliyor." [2] PGP'yi icat eden Phil R Zimmermann, RSA asimetrik şifreleme yöntemi ile beraber, simetrik bir şifreleme yöntemi olan Bass-O-Matic adlı kendi oluşturduğu şifreleme algoritmasını kullandı. PGP'nin diğer sürümlerinde ise Bass-O-Matic yerine IDEA adlı şifreleme yöntemini kullanmaya başladı. Zaman içerisinde popülaritesi arttı ve bütün dünya tarafından bilinen ve kullanılan bir şifreleme algoritması haline geldi.
[h=2]PGP Şifreleme Yönteminin Mekanizması[/h] PGP, klasik şifreleme ve açık anahtarlı şifrelemenin en iyi özelliklerinin birleşimini kullanır. Dolayısıyla PGP bir hibrid (melez) kripto sistemdir [1]. Bir orijinal metnin PGP ile şifreleme ve çözüm süreci aşağıdaki gibidir;

  • PGP ile düz bir metinin şifrelenmesi durumunda, PGP öncelikle düz metin üzerinde sıkıştırma operasyonu gerçekleştirir. Sıkıştırma operasyonun sağladığı yararlar; modem veri aktarımı zamanının azalması, diskte kapladığı alanın azalması, ve daha önemlisi şifreleme güvenliğinin artmasıdır. Şifre analiz yöntemlerinin çoğu, şifreyi kırmak için düz metin içindeki paternlerden yararlanır. Sıkıştırma ise bu düz metinlerdeki paternleri azaltarak, şifre analiz yöntemlerine karşı savunmayı artırmış olur.
  • Sıkıştırma işleminden sonra, PGP tek seferlik kullanımı olan bir oturum anahtarı (session key) oluşturur. Bu oturum anahtarı rastgele oluşturulmuş bir anahtardır. Kullanıcı fare hareketlerine ve klavye tuş basılmalarına göre üretilen rastgele değerler ile oluşturulan bu anahtar, çok güvenli ve düz metinleri hızlı bir şekilde şifreleyen anahtar olarak kabul edilir. Bu işlem, yukarıda bahsedilen klasik şifreleme ayağını oluşturur. IDEA klasik şifreleme metoduyla oturum anahtarı kullanılarak metin şifrelemeye tabi tutulur. Bu işlem sayesinde klasik şifrelemenin hızından yararlanılmış olunur.
  • Veri şifreleme işlemi gerçekleştirildikten sonra, oturum anahtarı RSA açık anahtarlı şifreleme yöntemi ile şifrelenir. Bu sayede açık anahtarlı şifrelemenin güvenliliğinden de yararlanılmış olunur. Bu şifrelenmiş oturum anahtarı da şifreli metin ile karşı tarafa yollanır. (Şekil 1)
capture1.jpg
Şekil 1 - PGP Şifreleme Mekanizması

  • Alıcı şifrelenmiş paketleri aldığından itibaren yukarıdaki işlemlerin tersi süreç işletilir. Şifrelenmiş oturum anahtarını ve şifreli metni alan alıcı taraf, kendi özel anahtarını kullanarak, açık anahtarlı şifreleme metoduyla oturum anahtarının şifresini çözer ve oturum anahtarını açığa çıkarır.
  • Oturum anahtarı elde edilince, klasik metotla oturum anahtarı kullanılarak şifrelenmiş metin çözülür ve orijinal metni açığa çıkarılır. (Şekil 2)
capture2.jpg
Şekil 2 - PGP Şifre Çözme Mekanizması
PGP iki farklı şifreleme algoritmasını bir araya getirerek, geleneksel şifreleme algoritmalarının hızı ile açık anahtarlama algoritmalarının cazibesini bir araya getirmiş oldu. Geleneksel şifreleme algoritmaları, açık anahtarlama şifreleme algoritmalarına göre çok daha hızlı kabul edilir. Açık anahtarlama yöntemleri ise anahtar dağıtımına ve veri transferi problemlerine çözümleri ile ön plana çıkar. Bu iki mekanizmayı beraber kullanarak PGP, güvenlikten taviz vermeden performansı artırmıştır.
[h=2]PGP Şifreleme Yönteminin Kullanım Alanları[/h] [h=2]Anahtar İşlemleri[/h] PGP kullanarak RSA anahtarları yaratmak mümkündür. Bu şekilde gizli anahtar ve ona karşılık gelen açık anahtar yaratılır. RSA anahtarlarının boyu kullanıcının güvenlik gereksinimine bağlı olarak 512 ile 2048 bit arasında değişebilir. Gizli anahtarları ezberlemek ve her gerektiğinde klavyeyi kullanarak girmek neredeyse imkansızdır. O yüzden PGP'de gizli anahtarlar şifrelenerek bir dosyada saklanır ve gerektiğinde bu dosyadan okunarak işlem yapılır. Bu dosyanın adı "secring.pgp"dir. Gizli anahtarı şifrelemek için IDEA algoritması kullanılır. Şifreleme anahtarı 128 bit uzunluğundadır. Söz konusu anahtar kullanıcının belirlediği bir şifre cümlenin (passphrase) MD5 kullanılarak çıkartılan özüdür. Şifre çözücü ataklara karşı koyabilmek için bu şifre cümlenin mümkün olduğunca uzun ve anlamsız olması önerilir. Gizli anahtarın ele geçirilmesini önleyecek diğer bir önlem ise, secring.pgp dosyasının sabit disk üzerinde değil de taşınabilir disketler üzerinde tutulması ve bu disketin sıkı bir şekilde korunmasıdır. Kullanıcı isterse birden fazla gizli anahtar yaratıp şifreleyerek secring.pgp dosyası içinde saklayabilir. PGP'de bir gizli anahtarı secring.pgp'den silmek de mümkündür. Bundan başka, kullanıcı bir gizli anahtarı ayrı bir dosya olarak da tutabilir, gerektiğinde ayrı bir dosyadaki gizli anahtarı secring.pgp içine taşıyabilir. PGP'de gizli anahtara ait kullanıcı bilgilerini ve şifre cümleyi değiştirme özellikleri de vardır.
PGP, açık anahtarları "pubring.pgp" isimli bir dosyada saklar. Açık anahtarların gizlilik gibi bir gereksinimleri olmadıkları için şifrelenmelerine de gerek yoktur. Açık anahtarlarla ilgili tek sorun yanlış açık anahtar sorunudur. Gönderenin veya alıcının şifreleme ve imza kontrollerinde yanlış açık anahtar kullanmaları yanlış sonuçlara sebep olabilir. PGP bu sorunu aşmak için açık anahtar imzalama (public key signatures), başka bir deyişle kefalet (certification) mekanizmasını kullanır. Aslında en iyi açık anahtar edinme yolu sahibinden doğrudan edinmektir. Bu şekilde elde edilen açık anahtarlar kullanıcı tarafından imzalanarak pubring.pgp dosyasına kaydedilir. Bunun imkansız olduğu durumlarda ise kefalet yöntemi kullanılır. Kefalet, bir açık anahtarın doğruluğuna bir başkasının verdiği garantidir. Bu garanti, açık anahtar ve sahibinin kimliğinden oluşan bir bilginin kefaleti verenin gizli anahtarıyla imzalanması ile verilir. Bir açık anahtar ve bu anahtara atılan imzalar (kefaletler) birarada pubring.pgp dosyası içinde tutulur.
[h=2]E-Posta Şifreleme[/h] Günümüzün en yaygın haberleşme yöntemlerinden biri de e-posta kullanımıdır. Günde yaklaşık olarak 300 milyar e-posta atılmaktadır. Bu postaların da önemli bir kısmı dünya çapında popüler birkaç şirket tarafından yönetilmektedir ve onların sunucularında bu e-postalar saklanmaktadır. Bu e-postalar üzerinde mahremiyet kapsamında kabul edilecek bilgileri kullanıcılar birbirlerine göndermektedirler. Bazen bir kredi kartı numarası, bazen bir telefon numarası, bazen kişiler arasında kalması ve üçüncü kişilerin duymaması gereken bilgiler ve hatta bazen de önemli bir parola bilgisi bu e-postalar üzerinde yerlerine alabilmektedir. Başka önemli bir nokta da, atılan her e-posta birçok ağ üzerinden geçerek ve her ağ üzerinde izler bırakarak alıcıya varmaktadır. Bu durumlar dikkate alındığında, e-posta güvenliği ayrı bir önem kazanmaktadır.
E-posta güvenliğini sağlamanın en önemli yollarından birisi, belki de birincisi, posta içeriğindeki mesajların şifrelenmesidir. PGP'nin kullanım alanlarından biri de e-posta şifrelemedir. PGP kullanarak e-posta şifreleme yöntemini kısaca açıklamak gerekirse; e-posta atacak kişi, postayı göndereceği kişinin açık anahtarı ile posta içeriğini şifreler ve karşı tarafa öyle gönderir. Karşı taraf da kendi özel anahtarı ile göndericiden gelen şifreli metni çözer. Bu çözme işlemini yalnızca postayı alan kişi yapabilir.
Günümüzde kullanılan birçok e-posta sistemi, PGP e-posta şifreleme yöntemine entegre olabilmektedir. "Enigmail" eklentisi ile Thunderbird, "Crypto Anywhere" eklentisi ile Microsoft Outlook ve bilgisayarınıza kuracağınız PGP yazılımlarıyla ücretsiz e-posta hizmeti veren gmail, hotmail, yahoo gibi popüler e-posta yönetim ara yüzleri ve hizmet sağlayıcıları PGP e-posta şifreleme hizmeti sunabilmektedir.
[h=2]Disk Şifreleme[/h] Disk şifreleme işlemi, disk içerisinde bulunan bilgilerin üçüncü kişiler tarafından ya da zararlı kullanıcılar tarafından ele geçirilmesini engellemek amacıyla, disk şifreleme yöntemleriyle okunamaz hale getirilmesidir. Full disk şifreleme kavramı ise "Master Boot Record" (MBR) kısmı hariç bütün diskin şifrelenmesi manasına gelmektedir.
Full disk şifreleme yöntemi ile sürücünün başlangıç noktası değiştirilir. PGP Full Disk Şifreleme sistemi, bilgisayar sistemi boot olmadan araya girer ve bir ön-boot mekanizmasını devreye sokar. Bu ön-boot kullanıcıdan passphrase (cümleye benzer uzun parola) formatındaki kimlik bilgilerini ister. Kimlik doğrulaması başarıyla sonuçlanırsa, sistem gerçek boot operasyonunu gerçekleştirir ve kullanıcı bilgisayarını kullanmaya başlar. Kullanıcının gördüğü şifresiz bilgiler ya da dosyalar aslında hard diskte her zaman şifreli durmaya devam eder. Yalnızca kullanıcı isteğine göre araya giren PGP yazılımları tarafından şifreleri çözülür ve ön belleğe yazılır. Eğer dosyalarda kullanıcılar tarafından değişiklikler meydana gelirse, PGP yazılımı tekrar ön bellekte şifreleme işlemini gerçekleştirir ve ilişkili disk bölümlerine bu değişiklikleri yansıtır.
[h=2]Dosya İmzalama[/h] Dosya imzalama ya da diğer adıyla dijital imza, dosyalara entegre olan ve dosyaların güvenliği için oluşturulmuş elektronik işaretlerdir. Bir dosyanın yazarının ya da göndericisinin işleminden sonra dosyanın herhangi bir değişikliğe maruz kalmadığını ispatlamak üzere kullanılır. Eğer dosyanın bir dijital imzası yoksa, dosyanın gerçekten gönderildiği iddia edilen kaynaktan gelip gelmediği ya da değiştirilmediği ispat edilemez.
Bir dosyanın imzalanması süreci önce dosyanın özet (hash) değerini bulmakla başlar. Oluşturulan bu özet değeri imzalayıcının özel anahtarı ile şifrelenir ve dosyaya eklenir. Bu dosya artık dijital olarak imzalanmış kabul edilir. Dosyanın iddia edilen taraftan geldiğinin ispatı için de ters bir yöntem uygulanır. Gönderilen dosyanın üzerindeki imzayı eklemeksizin özet değeri bulunur. Şifrelenmiş özet değeri ise imzalayıcı kişinin açık anahtarı ile çözülür. Eğer bu iki değer birbirlerine eşit ise, dosyanın iddia edilen kişiden geldiği ispatlanmış olur. (Şekil 3)
capture3.jpg
Şekil 3 - Dosya İmzalama
[h=2]PGP Şifreleme Yöntemini Kullanan Örnek Bir Uygulama[/h] Bu bölümde PGP'nin pratik bir uygulaması anlatılacak, ekran görüntüsü verilecektir. Bu çalışmada, popüler olarak mail amaçlı kullanılan PGP için Thunderbird mail istemci programına yukarıda bahsedilen "Enigmail" [3] eklentisi kurulmuştur. Bu eklenti anahtar yönetimi, mail şifreleme ve mail şifresi çözme yönetimlerini yapar. Ancak PGP mekanizmasını işletmez. PGP mekanizmasını işletmesi adına bir PGP sürümü bilgisayarda bulunmalıdır. Bu çalışmada "GnuPG" [4] adlı sürüm kullanılmıştır. Kurulumlar yapıldıktan sonra Thunderbird programının üst sekmesinde OpenPGP isimli bir alan gelir. Bu alan anahtar yönetimi yapmak amaçlıdır. Bu alan sayesinde mail adreslerimiz için genel ve gizli anahtar üretebilir, mail göndermek istediğimiz kişilerin genel anahtarlarını bu alan sayesinde içeri aktarabiliriz. Aşağıdaki şekilde örnek bir şifre üretimi gösterilmektedir.
capture4.jpg
Şekil 4 - Genel ve gizli şifre üretimi
Mail gönderilecek kişinin genel şifresi direkt kendisinden ya da bir sertifika kurumundan edinildikten sonra mail gönderilebilir. Bu örnekte iki mail adresi de lokal bilgisayardan erişilebilmektedir. İkisinin de anahtar yönetimi lokalde yapılmaktadır. Bir mail adresinden diğerine mail şifrelenerek gönderilecek (Şekil 5), diğer mail adresinde "passphrase" girilince Thunderbird programında mail deşifre edilecektir (Şekil 6, Şekil 7). Web sunucusuna direkt erişildiğinde mail içeriğinin şifreli olduğu görülecektir. Bu da sunucu tarafında mail, kötü niyetli insanların eline geçse de mail içeriğinin anlaşılamaması demektir.
capture5.jpg
Şekil 5 - Şifreli mail gönderimi
capture6.jpg
Şekil 6 - Passphrase ile mail deşifre edilmesi
capture7.jpg
Şekil 7 - Deşifre edilmiş mail



 
Üst