22 Ocak 2013 Salı

“RSA Şifreleme Algoritmasının Uygulaması”


“RSA Şifreleme Algoritmasının Uygulaması”

 

Arş. Gör. Halife KODAZ

Bilgisayar Mühendisliği Bölümü, Selçuk Üniversitesi, Alaeddin Keykubad Kampüsü,Konya- 2003

ÖZET
           
Şifreleme/deşifreleme (encryption-decryption) bir bilgisayar ağında veya kişisel bilgisayarlarda haberleşme ya da dosya güvenliğini sağlamak için kullanılır. Bu nedenle günümüzde bilgisayarlarda ya da bilgisayar ağlarında şifrelemenin önemi gün geçtikçe artmaktadır.

Bu çalışma da genel olarak şifreleme teknikleri hakkında bilgi verildikten sonra RSA şifreleme algoritmasına uygun olarak şifreleme ve deşifreleme işlemi yapan bir simulasyon tasarlanmıştır. Simulasyonu gerçekleştirmek için programlama dili olarak java seçilmiştir. Algoritma gereği kullanılan sayıların boyutları çok büyük olması nedeniyle java programlama dili kullanılmıştır.
           
Anahtar Kelimeler:

Şifreleme, şifre çözme, açık anahtar, gizli anahtar, düz metin, şifreli metin, kriptografi


1.      Giriş


İnternette yollanan veri paketleri birçok halka açık networklerden geçer, bu da bu paketlere ulaşmayı mümkün kılar. Son derece gizli bilgiler internette nakil olurken, bu durum önemli bir kaygı halini alır. Bu tür bilgileri korumak mümkün olmadıkça, internet iş yapmak veya gizli, şahsi yazışmalarda bulunmak asla güvenli bir yer olmayacaktır. Bilgi güvenliği başkası tarafından dinlenme, bilginin değiştirilmesi, kimlik taklidi gibi tehditlerin ortadan kaldırılması ile sağlanır ve bu amaçla kullanılan temel araç kriptografidir. Kriptografi bilgi güvenliğini inceleyen ve anlaşılabileni anlaşılamaz yapan bir bilim dalıdır. Güvenilirlik, veri bütünlüğü, kimlik doğrulama gibi bilgi güvenliği konularıyla ilgilenen matematiksel yöntemler üzerine yapılan çalışmalar kriptografinin önemli konularıdır.

Kriptografi genel olarak şu ana konularla ilgilenir:
Gizlilik: Bilgi istenmeyen kişiler tarafından anlaşılamamalı.
Bütünlük: Bir iletinin alıcısı bu iletinin iletim sırasında değişikliğe uğrayıp uğramadığını öğrenmek isteyebilir; davetsiz bir misafir doğru iletinin yerine yanlış bir ileti koyma şansına erişmemelidir. Saklanan veya iletilmek istenen bilgi farkına varılmadan değiştirilememeli.
Reddedilemezlik: Bilgiyi oluşturan ya da gönderen, daha sonra bilgiyi kendisinin oluşturduğunu veya gönderdiğini inkar edememeli. Bir gönderici daha sonrasında bir ileti göndermiş olduğunu yanlışlıkla reddetmemelidir. 
Kimlik belirleme: Gönderen ve alıcı, birbirlerinin kimliklerini doğrulayabilirler. davetsiz bir misafir başkasının kimliğine bürünme şansına erişmemelidir.

2.      Şifrelemenin Temel Elemanları


Bir göndericinin bir alıcıya açık ağlar üzerinden bir ileti göndermek istediği zaman, açık ağlardan gönderilen iletiler üçüncü şahıslar tarafından dinlenme ve değiştirilme tehdidi altındadırlar. Burada söz konusu ileti düz metindir. Bazı kullanımlarda plaintext adı da verilir. Bir iletinin içeriğini saklamak üzere yapılan gizleme işlemi de şifrelemedir (encryption). Bu işlem düz metini şifreli metine dönüştürür. Bilginin içeriğinin başkalarının anlamayacağı hale gelir. Bu bilgi bir yere iletilmek amacıyla şifrelenen bir mesaj veya saklanmak amacıyla şifrelenen bir bilgi olabilir. Şifrelenmiş bir ileti şifreli metindir (ciphertext). Şifreli metini düzmetine geri çevirme işlemi şifre çözümüdür (decrypt). Bu işlemler Şekil 1’de gösterilmektedir.  
İleti güvenliğini sağlama bilimi kriptografidir. Matematiğin hem şifrebilimi hem de şifreanalizini kapsayan dalı kriptolojidir ve şifrebilimciler tarafından icra edilir.

Eğer bir algoritmanın güvenliği bu algoritmanın çalışma biçimini gizlemeye dayalıysa, bu bir sınırlandırılmış algoritmadır. Sınırlandırılmış algoritmalar günümüzün şartlarına pek uymamaktadır; bir gruba ait kullanıcılar bunları kullanamamaktadır, çünkü gruptan bir kullanıcının her çıkışında geri kalan herkesin başka bir algoritmaya geçmesi gerekmektedir. İçlerinden birisi yanlışlıkla gizleneni açığa vurduğunda, diğer herkesin algoritmalarını değiştirmeleri gerekmektedir. Daha da kötüsü, sınırlandırılmış algoritmalar kalite kontrolüne ve standartizasyona olanak tanımamaktadır. Her bir grup kullanıcının kendisine ait bir algoritması olmalıdır. Bu tür bir grup hazır şifre çözüm anahtarının yazılım veya donanım ürünlerini kullanamaz; davetsiz bir misafir aynı ürünü alıp algoritmayı öğrenebilir. Kendi algoritmalarını ve gerçekleştirimlerini kendileri yazmaları gerekir. Günümüz kriptografisi bu sorunu bir anahtar ile çözmektedir. Bu anahtar çok çeşitli değerler alabilen herhangi bir anahtar olabilir. Günümüzde kullanılmakta olan modern ve güçlü şifreleme algoritmalaları artık gizli değildir. Bu algoritmalar güvenliklerini kullandıkları farklı uzunluk ve yapılardaki anahtarlarla sağlarlar. Bütün modern algoritmalar şifrelemeyi ve şifre çözmeyi kontrol için anahtarları kullanır. Bir anahtar ile şifrelenmiş bilgi, kullanılan algoritmaya bağlı olarak, ilgili anahtar ile çözülebilir. Genel olarak anahtarın kullanımı şu şekildedir (şekil 2):

Kullanıcı bir mesajı (m) göndermeden önce bir anahtar (k1) kullanarak şifreler. Şifreli metin (c) yasadışı dinleyicilere açık olan bir kanaldan gönderilir. Mesajı okumak için alıcı bir anahtar (k2) kullanarak şifreyi çözer ve m mesajını elde eder. Aktif düşmanlar araya girip iletişimi dinleyebilir. Eğer k1 ve k2 eşitse, sistem simetriktir. Aksi takdirde bu sistem asimetrik olarak nitelenir. Güvenliğin garantilenmesi için k2 her zaman gizli olmalıdır, ancak k1’i kullanarak k2’yi elde etmek mümkün olmadığı sürece k1 açıklanabilir. Bu durumda sisteme açık anahtarlı sistem (public key system) adı verilir.

Açık anahtarlı sistemler pek çok ilginç olanaklar sunar; örneğin herkes online bir mağazaya mağazanın açık k1 anahtarını kullanarak şifrelenmiş bir kredi kartı numarası gönderebilir. k2 anahtarını sadece mağaza bildiği için, kartın numarasını sadece mağaza öğrenebilir. Eğer simetrik sistem kullanılsaydı, mağaza potansiyel müşterilerinin her biriyle önceden ve gizlice ayrı ayrı anahtarlar belirlemek zorunda kalırdı. Açık anahtarlı sistemlerin güvenliği her zaman belirli matematiksel problemleri çözmenin zorluğuna dayanır, simetrik sistemler daha çok tek kullanımlık, geçici yapıdadırlar. Açık anahtarlı sistemlerin en büyük dezavantajı matematiksel yapıları nedeniyle simetrik sistemlerden daha yavaş olmalarıdır; özellikle açık anahtarlı sistemlerdeki anahtarların boyutları simetrik sistemlerin anahtarlarının boyutlarından çok daha büyüktür. Kısaca, kullanılacak şifreleme yöntemi gerçekleştirilecek uygulamaya bağlı olarak seçilir. (Şekil 3)
Algoritmalardaki bütün güvenlik anahtara (veya anahtarlara) dayalıdır, hiçbiri algoritmanın ayrıntılarında yer almaz. Bu, algoritmanın yayınlanabildiği ve incelenebildiği anlamına gelir. Bu algoritmayı kullanan ürünler seri üretilebilir. Bir davetsiz misafirin sizin algoritmanızı bilmesi önemli değildir; sizin özel anahtarınızı bilmedikçe, o şahıs iletilerinizi okuyamaz.

Şifreleme algoritmaları anahtar kullanma yöntemlerine göre genel olarak iki kategoriye ayrılmaktadır. Bu yöntemler:

- Gizli-Anahtar (Simetrik) yöntemleri (Geleneksel kriptolama sistemleri)
- Açık-Anahtar (Asimetrik) yöntemleri (Açık anahtar kriptolama sistemleri)

3.      Açık-Anahtar (Asimetrik) Şifreleme Yöntemleri


Bu şifreleme yöntemi iki ayrı anahtar kullanan yöntemdir. İki anahtar kullanımının; güvenirlik, anahtar dağıtımı ve onaylama alanlarında önemli sonuçları vardır. Bu kriptografi yapısında, açık ve gizli anahtar olarak adlandırılmış olan bir anahtar çifti kullanılmaktadır. Asimetrik algoritmalar da denilen açık anahtarlı algoritmalarda şifreleme için kullanılan anahtar ile şifre çözme için kullanılan anahtar birbirinden farklıdır. Anahtar çiftlerini üreten algoritmaların matematiksel özelliklerinden dolayı açık-gizli anahtar çiftleri her kişi için farklıdır, diğer bir deyişle her kullanıcının açık-gizli anahtar çifti yalnızca o kullanıcıya özeldir. Ayrıca şifre çözüm anahtarı (en azından makul bir zaman dilimi içerisinde) şifre anahtarından hesaplanamaz. Bu algoritmalara açık anahtarlı algoritmalar denmesinin sebebi şifre anahtarı halka (kamuya/genel kullanıma) açılabilir: Bir yabancı bir iletiyi şifrelemek için şifreleme anahtarını kullanabilir, ancak sadece ilgili şifre çözüm anahtarına sahip bir kişi iletinin şifresini çözebilir. Bu sistemde, şifre anahtarına genellikle açık anahtar denir, şifre çözüm anahtarı da genellikle gizli anahtar olarak adlandırılır. Gizli anahtar kimi zaman özel anahtar olarak da adlandırılır, ancak simetrik algoritmalarla karışmaması için bu terim genelde kullanılmaz. 

Bir kullanıcının açık anahtarıyla kilitlenen bir mesajı yalnız ve ancak ona ait gizli anahtar çözebilir. Aynı şekilde, herhangi bir kullanıcının gizli anahtarıyla attığı sayısal imzanın doğrulanabilmesi, yalnızca onun açık anahtarını kullanarak mümkün olabilir. Açık anahtar kamuya açıktır, elektronik kimlik belgelerinin içinde diğer kişisel bilgilerle birlikte tutulur ve herkes birbirinin açık anahtarını e-kimliklerine ulaşmak süretiyle istediği zaman elde edebilir.

Sayısal Şifreleme :Şifreleme açık ağlardan gönderilen bilginin başkaları tarafından görülmesinin (dinlenmesinin) istenmedigi zaman yapılır. Bunun için çift anahtarlı bir kriptografik algoritma kullanılabilir. Buna göre, mesajı gönderen taraf, gönderilen bilginin sayısal içeriğini, mesajı alacak tarafın açık anahtarını, sayısal şifrelemede kullanır. Mesajı alan taraf da, şifreli mesajı çözmek için şifreli mesajın sayısal içeriği, kendisinin gizli anahtarına gereksinim duyar.
           
Burada dikkat edilecek olursa, şifreli mesajın üçüncü taraflar tarafından dinlenebilmesi ancak “gizli anahtara” sahip olmaları ya da şifreli mesajı matematiksel yollarla deşifre etmeye çalışmaları ile mümkün olabilir. “Güvenlik açısından iyi bir şifreleme” algoritması, gizli anahtar olmadan şifreli mesajı deşifre etmeye imkan tanımıyan bir algoritmadır.

Sayısal İmza : Sayısal imza elektronik mesaja eklenmiş bilgidir. Çift anahtarlı bir kriptografik algoritmayla hazırlanan sayısal imza, hem gönderilen bilginin sayısal içeriğinin değiştirilmediğinin hem de gönderen tarafın kimliğinin ispatlanması için kullanılır ve gönderilecek mesajdan üretilen “mesaj özetinin” sayısal içeriği, gönderen tarafın kendi gizli anahtarına bağlı olarak oluşturulur. Sayısal imzanın doğruluğunu kanıtlamak için mesaji alan taraf, kendisine gelen mesajin ve sayısal imzanın sayısal içeriği, gönderen tarafın açık anahtarını kullanır.

Açık-anahtar şifreleme için pek çok algoritma bulunmaktadır. En yaygın olan iki tanesi RSA (Ron Rivest, Adi Shamir, Leonard Adleman) algoritması ve DSA (Digital Signature Algorithm - Dijital İmza Algortiması) dır. RSA pek çok uygulamada kullanılan bir algoritmadır. Mesajları şifrelemek için kullanılabileceği gibi dijital imzalarda da kullanılabilir. DSA sadece dijital imza kullanımı içindir. Mesajları şifrelemek için kullanılmaz.

3.1.    Rsa Algoritması


1976 yılında Stanford Üniversitesinden Diffie ve Hellman adlı iki araştırmacı farklı  bir şifreleme sistemi önerdiler, bu sistemde bir tane şifreleme için(encryption key) ve bundan farklı olarak  bir tanede şifre çözmek için(decryption key) anahtar bulunmaktaydı ve decryption key encryption key den elde edilememekteydi.

RSA Algoritmasının içeriği ve çalışması aşağıdaki gibidir:

RSA Public Key Sistemi
Örnek
Hem p’nin hem de q’nun asal olduğu p ve q seçilir.
P =11; q=13;
Mod alınacak değer hesaplanır n = pq.
N = 11*13 = 143.
Euler's totient fonksiyonu uygulanır t = (p-1)(q-1).
t = (11-1)*(13-1) = 120.
T değeri ile en büyük ortak böleni 1 olan bir e değeri hesaplanır.
e = 7. (7<120, ve 7 ve 120 nin en büyük ortak böleni 1 dir
e*d = 1 mod t olacak şekilde d değeri hesaplanır
7*d = 1 mod 120 => d = 103,
çünkü
7*103 = 721 = 1 mod 120.
public key (e, n).
public key (7, 143).
Private key (d, n).
private key (103, 143).
Plaintext M olsun.
M = 5 kabul edelim.
ciphertext C = M^e mod n.
Ciphertext:
C = 5^7 mod 143= 47
Şifre çözme işlemi =>
plaintext = C^d mod n = (M^e)^d mod n = M.
Plaintext:
47^103 mod 143 = 5
47^103 = (5^7)^103 = 5^721
= 5*[5^720] =5*[(5^120)^6]
= 5*[ 1^6] = 5.
5^120 = 5^t = 1 mod 143 (Euler teoremi)veya,
daha basitçe,
x^(e*d) = x; bu sebepten, 5^721 = 5’tir.

3.2.    RSA Algoritmasının Önemli özellikleri


RSA nın yasal kullanımı ile kolayca hesaplanabilenler;
-           Birbirine uyan public/private anahtar çifti oluşturulabilir.
-           Eğer public-key varsa ,encryption ve signature verification işlemleri yapılabilir.
-           Eğer private-key varsa, decryption ve signing işlemleri yapılabilir.

RSA nın yasalara aykırı kullanımı ile hesaplaması çok zor olanlar;

-           public-key varken private-key in oluşturulması.
-           private-key yokken şifreli mesajın çözülmesi.

RSA şifreleme algoritmasının güvenli olmasını şu şekilde açıklanabilir:

Bu algoritmaya zarar vermek için bilinen en etkin yol N'in asal çarpanları olan P ve Q nun bulunmasıdır. Ancak P ve Q çok büyük asal sayılar olduğundan ötürü bulunmaları neredeyse imkansızdır. Ayrıca public key {E,N} belli iken D yi, P ve Q olmadan bulmak çok zordur.

 

4.      Sonuç


RSA açık anahtarlı şifreleme algoritması kullanılarak çeşitli anahtar uzunluklarında anahtarlar oluşturulmuş ve şifreleme işlemleri gerçekleştirilmiştir.  Ayrıca anahtar oluşturma süreleri ve şifreleme süreleri tablo1 de gösterilmiştir. Test süreleri uygulamanın Pentium 4 1.7Ghz Cpu’ya sahip bir bilgisayarda çalıştırılmasıyla elde edilmiştir.

Uygulamanın gerektirdiği güvenlik seviyesine bağlı olarak kullanılacak bit sayısı ayarlanabilir. Normal şartlarda 1024 bitlik anahtar kullanarak şifreleme sistemi oluşturmak yeterli güvenliği sağlamaktadır.

Tablo 1 RSA algoritmasında Farklı bit uzunluklarında anahtar oluşturma ve şifreleme süreleri
Bit Sayısı
Anahtar Oluşturma Süresi (saniye)
Şifreleme
Süresi (saniye)
64
0.021
0.011
128
0.026
0.013
256
0.083
0.015
512
0.307
0.018
1024
2.985
0.106
2048
50.432
0.766
4096
798.625
18.687


5.      Kaynakça


1.         Kodaz, 2002, Veri İletiminde Güvenlik İçin Şifreleme, Yüksek Lisans, S.Ü.
2.         Erhan, 1993, RSA algoritmasını kullanan şifreleme/deşifreleme yazılımının tasarımı (Data encyption/decryption methods and software design of RSA algorithm), Yüksek Lisans, İTÜ
3.         Gül, 1997, RSA tabanlı halka açık anahtarlı kripto sisteminin uygulanması (Implementation of on RSA based cryptosystem), Yüksek Lisans, ODTU
4.         Uysal, 1998, RSA, DES ve MD5 tabanlı halka açık bir kripto sisteminin geliştirilmesi (Implementation of a public key cryptosystem using RSA, DES and MD5 algorithms), Yüksek Lisans, ODTU
5.         Bellovin, 1998, "Cryptography and the Internet", In Proceedings of CRYPTO '98, August 1998
6.         Aslan, 1999, Sayısal imza sistemlerinin incelenmesi (Digital signature schemes), Yüksek Lisans, İTÜ.
7.         Saka, 2000, Bilgisayar ağ güvenliği ve şifreleme (Network security and cryptography), Yüksek Lisans, MUĞLA
8.         http://www.olympos.org, 20.03.2002
9.         http://e-kimlik.bilten.metu.edu.tr/,14.04.2002
10.       http://security.nyg.ege.edu.tr/, 15.04.2002
11.       http://www.rsa.com, 17.04.2002



21 Ocak 2013 Pazartesi

Açık Anahtarlı Şifreleme Teknikleri ve RSA şifreleme Algoritması


Açık Anahtarlı Şifreleme Teknikleri ve RSA şifreleme Algoritması

Kazım TEMUR, 2001510035, ktemur@gmail.com


Şifreleme/deşifreleme bir bilgisayar ağında veya kişisel bilgisayarlarda haberleşme yada dosya güvenliğini sağlamak için kullanılır. Bu nedenle günümüzde bilgisayarlarda ya da bilgisayar ağlarında şifrelemenin önemi gün geçtikçe artmaktadır.

Her açık anahtar tabanlı şifreleme sistemi matematiksel zor problemlere dayanır. Örneğin RSA sisteminin güvenliği büyük sayıların faktorizasyonun zorluğuna dayanmaktadır. Bu yazıda açık anahtarlı şifreleme teknikleri ve RSA şifreleme algoritması hakkında bilgi verilmiştir.

            İnternet üzerinden yolladığımız veri paketleri halka açık networklerden geçtiği için herkesin erişimine açıktır. Gizli bilgilerimizi internet üzerinden iletmek istediğimizde bu durum önemli bir sorun halini alır. Bilgi güvenliği başkası tarafından dinlenme, bilginin değiştirilmesi, kimlik taklidi gibi tehditlerin ortadan kaldırılması ile sağlanır ve bu amaçla kullanılan temel araç kriptografidir. Kriptografi bilgi güvenliğini inceleyen ve anlaşılabileni anlaşılamaz yapan bir bilim dalıdır.

            Eğer bir algoritmanın güvenliği bu algoritmanın çalışma biçimini gizlemeye dayalıysa, bu bir sınırlandırılmış algoritmadır. Sınırlandırılmış algoritmalar günümüzün şartlarına pek uymamaktadır; bir gruba ait kullanıcılar bunları kullanamamaktadır, mesela gruptan bir kullanıcının her çıkışında geri kalan herkesin başka bir algoritmaya geçmesi gerekmektedir. Daha da kötüsü, sınırlandırılmış algoritmalar kalite kontrolüne ve standartizasyona olanak tanımamaktadır. Her bir grup kullanıcının kendisine ait bir algoritması olmalıdır. Bu tür bir grup hazır şifre çözüm anahtarının yazılım veya donanım ürünlerini kullanamaz; istenmeyen kişiler aynı ürünü alıp algoritmayı öğrenebilir. Kendi algoritmalarını ve gerçekleştirimlerini kendileri yazmaları gerekir. Günümüz kriptografisi bu sorunu bir anahtar ile çözmektedir. Bu anahtar çok çeşitli değerler alabilen herhangi bir anahtar olabilir. Günümüzde kullanılmakta olan modern ve güçlü şifreleme algoritmalaları artık gizli değildir. Bu algoritmalar güvenliklerini kullandıkları farklı uzunluk ve yapılardaki anahtarlarla sağlarlar. Bütün modern algoritmalar şifrelemeyi ve şifre çözmeyi kontrol için anahtarları kullanır. Bir anahtar ile şifrelenmiş bilgi, kullanılan algoritmaya bağlı olarak, ilgili anahtar ile çözülebilir.

            Kullanıcı bir mesajı göndermeden önce bir anahtar (k1) kullanarak şifreler. Şifreli metin (c) yasadışı dinleyicilere açık olan bir kanaldan gönderilir. Mesajı okumak için alıcı bir anahtar (k2) kullanarak şifreyi çözer ve mesajı elde eder. İstenmeyen kişiler araya girip iletişimi dinleyebilir. Eğer k1 ve k2 eşitse, sistem simetriktir. Aksi takdirde bu sistem asimetrik olarak nitelenir. Güvenliğin garantilenmesi için k2 her zaman gizli olmalıdır, ancak k1’i kullanarak k2’yi elde etmek mümkün olmadığı sürece k1 açıklanabilir. Bu durumda sisteme açık anahtarlı sistem adı verilir.

            Açık anahtarlı sistemlerin güvenliği her zaman belirli matematiksel problemleri çözmenin zorluğuna dayanır, simetrik sistemler daha çok tek kullanımlık, geçici yapıdadırlar. Açık anahtarlı sistemlerin en büyük dezavantajı matematiksel yapıları nedeniyle simetrik sistemlerden daha yavaş olmalarıdır; özellikle açık anahtarlı sistemlerdeki anahtarların boyutları simetrik sistemlerin anahtarlarının boyutlarından çok daha büyüktür. Kısaca, kullanılacak şifreleme yöntemi gerçekleştirilecek uygulamaya bağlı olarak seçilir.
            Algoritmalardaki bütün güvenlik anahtara(veya anahtarlara) dayalıdır, hiçbiri algoritmanın ayrıntılarında yer almaz. Bu, algoritmanın yayınlanabildiği ve incelenebildiği anlamına gelir. Bu algoritmayı kullanan ürünler seri üretilebilir. Bir davetsiz misafirin sizin algoritmanızı bilmesi önemli değildir; sizin özel anahtarınızı bilmedikçe, o şahıs iletilerinizi okuyamaz.

Asimetrik algoritmalar da denilen açık anahtarlı algoritmalarda şifreleme için kullanılan anahtar ile şifre çözme için kullanılan anahtar birbirinden farklıdır. Anahtar çiftlerini üreten algoritmaların matematiksel özelliklerinden dolayı açık-gizli anahtar çiftleri her kişi için farklıdır, diğer bir deyişle her kullanıcının açık-gizli anahtar çifti yalnızca o kullanıcıya özeldir. Ayrıca şifre çözüm anahtarı şifre anahtarından hesaplanamaz. Bu algoritmalara açık anahtarlı algoritmalar denmesinin sebebi şifre anahtarı halka açılabilir. Bir yabancı bir iletiyi şifrelemek için şifreleme anahtarını kullanabilir, ancak sadece ilgili şifre çözüm anahtarına sahip bir kişi iletinin şifresini çözebilir. Bu sistemde, şifre anahtarına genellikle açık anahtar denir, şifre çözüm anahtarı da genellikle gizli anahtar olarak adlandırılır. Bir kullanıcının açık anahtarıyla kilitlenen bir mesajı yalnız ve ancak ona ait gizli anahtar çözebilir.

            Açık-anahtar şifreleme için pek çok algoritma bulunmaktadır. En yaygın olan iki tanesi RSA (Ron Rivest, Adi Shamir, Leonard Adleman) algoritması ve DSA (Digital Signature Algorithm - Dijital İmza Algortiması) dır. RSA pek çok uygulamada kullanılan bir algoritmadır. Mesajları şifrelemek için kullanılabileceği gibi dijital imzalarda da kullanılabilir. DSA sadece dijital imza kullanımı içindir. Mesajları şifrelemek için kullanılmaz.


RSA Algoritması

            1976 yılında Stanford Üniversitesinden Diffie ve Hellman adlı iki araştırmacı farklı  bir şifreleme sistemi önerdiler, bu sistemde bir tane şifreleme için(encryption key) ve bundan farklı olarak  bir tanede şifre çözmek için(decryption key) anahtar bulunmaktaydı ve decryption key encryption key den elde edilememekteydi. Bu algoritmanın güvenliği, çok büyük sayıları çarpımlarına ayırmanın zorluğuna dayanmaktadır.

Ø  Hem p’nin hem de q’nun asal olduğu p ve q seçilir.
Ø  Mod alınacak değer hesaplanır n = pq.
Ø  Euler's totient fonksiyonu uygulanır t = (p-1)(q-1).
Ø  T değeri ile en büyük ortak böleni 1 olan bir e değeri hesaplanır.
Ø  e*d = 1 mod t olacak şekilde d değeri hesaplanır
Ø  public key (e, n).
Ø  Private key (d, n).
Ø  Şifrelenecek M olsun.
Ø  Şifreli metin C = M^e mod n.
Ø  Şifre çözme işlemi => Şifrelenen metin = C^d mod n = (M^e)^d mod n = M.

Örnek:
Ø  P =11; q=13;
Ø  N = 11*13 = 143.
Ø  t = (11-1)*(13-1) = 120.
Ø  e = 7. (7<120, ve 7 ve 120 nin en büyük ortak böleni 1 dir
Ø  7*d = 1 mod 120 => d = 103,
Ø  çünkü
Ø  7*103 = 721 = 1 mod 120.
Ø  public key (7, 143).
Ø  private key (103, 143).
Ø  M = 5 kabul edelim.
Ø  Şifreli metin: C = 5^7 mod 143= 47
Ø  Şifrelenen metin: 47^103 mod 143 = 5
47^103 = (5^7)^103 = 5^721
= 5*[5^720] =5*[(5^120)^6]
= 5*[ 1^6] = 5.
5^120 = 5^t = 1 mod 143 (Euler teoremi) veya
                             x^(e*d) = x; bu sebepten, 5^721 = 5’tir.


Bu algoritmaya zarar vermek için bilinen en etkin yol N'in asal çarpanları olan P ve Q nun bulunmasıdır. Ancak P ve Q çok büyük asal sayılar olduğundan ötürü bulunmaları neredeyse imkansızdır. Ayrıca public key {E,N} belli iken D yi, P ve Q olmadan bulmak çok zordur.

Matematikçiler çok büyük sayıların çarpanlarına ayrılabilmesinin gerçekten zor bir problem olduğu konusunda hemfikirdirler. Ancak bilgisayar hızlarındaki artış, p ve q sayılarını seçerken bizleri çok dikkatli olmaya zorlar. Örneğin 512 ikillik bir mod (n) kullanmak, artık çok güvenli sayılmamakta, 1024 ikil şu anki standart olarak kabul edilmektedir.



Algoritmanın Önemli Özellikleri:

v  Birbirine uyan public/private anahtar çifti oluşturulabilir.
v  Eğer public-key varsa ,encryption ve signature verification işlemleri yapılabilir.
v  Eğer private-key varsa, decryption ve signing işlemleri yapılabilir.
v  public-key varken private-key in oluşturulması çok zordur.
v  private-key yokken şifreli mesajın çözülmesi çok zordur.

Kaynaklar:
1.       Kodaz,H.; 2002, Veri İletiminde Güvenlik İçin Şifreleme, Yüksek Lisans, S.Ü.
2.       www.turkmia.org/file/452guvenlik_ teknikyonleri_baykal.doc, Güvenliğin Teknik Yönleri
3.       eros.science.ankara.edu.tr/~ozbek/kripto1.htm, Kriptografiye Giriş
4.       http://edergi.linux.org.tr/?~p=dergi&action=show&which=76, Açık Anahtarlı Kriptografi
5.       Özcan,M; Açık Anahtar Tabanlı Şifreleme Neden Zordur, Sabancı Üniversitesi

DES(Data Encryption Standard)

DES(Data Encryption Standard)

Bu yazımızda askeri amaçlı olmayan çalışmalarının ilki ve şifreleme algoritmalarının yeni bir boyut kazanmaya başladığı nokta olarak kabul edilen DES(Data Encryption Standard)' i inceleyeceğiz. 1970lerde Kriptoloji üzerine askeri olmayan çalışmalar yapan çok az akademisyen ve araştırmacı vardı. Oysa günümüzde kriptoloji ve kriptografi üzerine yapılan askeri olmayan çalışmalar yadsınamayacak boyutlara ulaşmıştır. Kriptolojinin ve kriptoanalizin askeri olmayan çalışmalarının başlangıcı olarak DES kabul edilmektedir.
Bu yazımızda askeri amaçlı olmayan çalışmalarının ilki ve şifreleme algoritmalarının yeni bir boyut kazanmaya başladığı nokta olarak kabul edilen DES(Data Encryption Standard)' i inceleyeceğiz. 1970lerde Kriptoloji üzerine askeri olmayan çalışmalar yapan çok az akademisyen ve araştırmacı vardı. Oysa günümüzde kriptoloji ve kriptografi üzerine yapılan askeri olmayan çalışmalar yadsınamayacak boyutlara ulaşmıştır. Kriptolojinin ve kriptoanalizin askeri olmayan çalışmalarının başlangıcı olarak DES kabul edilmektedir.
1972'de NBS Institute for Computer Sciences and Technology (ICST) bilgisayar güvenliği için bir proje geliştirmeye başladı. Projenin en önemli amacı verilerin aktarımı ve belleklerde saklanması sırasında kullanılabilecek bir şifreleme algoritması geliştirmekti. NBS bu girişimine kadar veri şifreleme sadece askeri ve istihbarat teşkilatlarının ilgilendikleri bir alandı. ICST öncelikle geliştirilen algoritmanın federal standartı olarak değerinin ölçülmesi için NSA(National Security Agency[Uluslararası Güvenlik Ajansı])' dan ölçü kriterlerinin belirlenmesini istedi. Ardından ilk denemede istenen standartlarda bir algoritma geliştirilemedi. İkinci denemede, 17 Ağustos 1974'ta IBM Corp. tarafından finansal uygulamalar için geliştirmiş olduğu bir şifreleme ailesi(LUCIFER) duyuruldu. Amerikan hükümetiyle ortaklaşa yürütülen çalışmalar sonucu istenen algoritmanın teknik gereksinimleri ve özellikleri 17 Mart 1975'te detaylı olarak çıkartıldı. Ardından NBS'ye bir çok öneri ve düşünce iletildi. Uzun süren analiz ve çalışmalardan sonra, IBM'in önerdiği şifreleme ailesi NBS tarafından geliştirildi ve 23 Kasım 1977'te NBS, Data Encrypiton Standard (DES)'i Federal Information Processing Standard (FIPS) 46 olarak duyurdu. 1981'de ANSI standardlarına da dahil edilen DES algoritması uzun süre finansal bilgilerin korunması için kullanılanılan şifreleme algoritması olarak kalmıştır.  
DES algoritması bir Block Cipher algoritmasıdır. Yani şifrelenecek metin bloklar halinde şifreleme işleminden geçirilir. Ayrıca DES algoritması simetrik şifreleme prensibine dayanmaktadır. Yani DES, veri bloklarını şifrelemek ve deşifrelemek için aynı anahtarları kullanmaktadır. DES 64 Bitlik düz metin blokları üzerinde işlem yapmaktadır. 64 bitlik veri blokları, 56 bitlik bir anahtarın kontrolünde şifrelenerek yine 64 bitlik şifrelenmiş metin bloklarına dönüştürülür. Deşifrelenirken de 64 bitlik şifrelenmiş veri blokları, 56 bitlik bir anahtarın kontrolünde deşifrelenerek yine 64 bitlik deşifrelenmiş metinlere(düz metne) dönüştürülür.
DES' de  şifreleme ve deşifreleme için yer değiştirme, permütasyon gibi bir dizi işlem yürütülerek gerçeklenmektedir. Bu işlemlerin sırası şifreleme ve deşifreleme için birbirlerinin tam tersi şeklindedir. Şimdi DES algoritmasını basit olarak inceleyelim;
1. IP(Initial Permutation) şifreleme işleminde kullanılacak ilk permütasyondur. Verilen bir düz metin(x) üzerine ilk permütasyon uygulanarak x0 elde edilir.
x0= IP(x)=L0R 0
L0= x'in ilk 32 biti
R0=x'in son 32 biti

2. Ardından 16 defa tekrarlanan bir fonksiyonla yeni değerler hesaplanır. LiRi(1<=i<=16) aşağıdaki kurala göre hesaplanır:
Li=Ri-1
Ri=Li-1 f(Ri-1,Ki)
: iki bit stringinin Exclusive-or işlemine tabi tutulacağını gösterir.

3. En son olarak da R16L16'ya IP -1 uygulanarak şifreli metin elde edilir. 
Şimdi de f fonksiyonunu inceleyelim. f fonksiyonu iki parametre alır. Birincisi 32 bitlik bir bitstring(A), ikincisi de 48 bitlik bir bitstring(J). Sonuç olarak 32 bitlik bir bitstring oluşturulur.





S1, ... S8 ile gösterilen kısma SBox denir. Bu kısımda 48 bitlik bir bitstringinden 32 bitlik bir bitstringi oluşturulur. DES'te 8 tane SBox vardır. SBoxlar 6 bitlik bir bitstringten 4 bitlik bitstringler elde ederler. Bunların detayına burada girmeyeceğiz. Ancak şunu da belirtmek de fayda var ki, SBoxlar DES'in en zayıf olduğu noktalardır. Zaten DES bu SBoxlardaki açıklar yüzünden kırılabilmektedir.

Sonuç olarak, DES askeri amaçlı olmayan çalışmalarının ilki ve şifreleme algoritmalarının yeni bir boyut kazanmaya başladığı noktadır. DES'in kırılabilirliği ve algoritmasındaki eksiğinin SBoxlardan kaynaklandığını gördük. Ama bu demek değildir ki DES zayıf bir şifreleme algoritmasına sahiptir. DES'in algoritmasından kaynaklanan bu sorunlar "Triple DES" ya da "DES-3" olarak bilinen yeni bir algoritma ile düzeltilmiştir. SSH gibi günümüzde kullanılan çoğu uygulama 3DES'i kullanmaktadır. Bu konu hakkında daha detaylı bilgileri ilerleyen makalelerimizde bulabilirsiniz.

DES'in hiç de kolay olmayan bir implementasyonu olduğu da bir gerçek. Şükür ki, artık bu kadar karışık işlemler uğraşmak zorunda değiliz. Daha önceki yazımızda da bahsettiğimiz gibi .NET Framework DES implementasyonu kendi bünyesinde içermektedir. Zaten bir sonraki yazımızda .Net ile DES kullanarak verilerimizi nasıl şifreleyebileceğimizi sizlerle paylaşacağız. Ama DES'in nasıl çalıştığını bilmemiz yararımıza olacaktır. Bir sonraki yazımızda görüşmek üzere...


Yunus Emre ALPÖZEN – Suphi UÇAR

Üniversiterde Akıllı Kart Destekli PKI Uygulaması ve e-kimlik





Tolga KILICLI

Üniversiteler sahip oldukları birimlerin çokluğu ve yayıldıkları alan bakımından karmaşık ve kontrolu zor olan bir yapıdadırlar. Bütün bu birimlerin gereksinimleri farklı olduğundan öğrencilere bir çok kimlik ve kart verilir. Bunlara örnek olarak, öğrenci kimligi, kütüphane kartı, yemek fişi ve otobüs kartı sayılabilir. Yazımda okul yönetimi tarafından verilen bütün kimlik ve kartların yerine tek bir akıllı kart (Smart Card) ve açık anahtar altyapısı (PKI) kullanarak bir çözüm yolu önermekteyim. Ve bu örnekten yola çıkarak, yazıda daha geniş alanda akıllı kart ve PKI uygulanamasi olan e-kimlik projesi de incelenmektedir.

PKI Nedir?

Tek anahtarlı simetrik şifreleme sistemlerinde, şifrelemek için kullanılan anahtar ile şifrelenmiş belgeyi okunabilir duruma getirmek için ayni anahtar kullanılmaktadır.  Birbiri ile şifreli haberleşmek isteyen taraflar simetrik şifreyi paylaşmak zorundadırlar. Açık anahtarlı şifreleme sisteminde ise açık anahtar ve özel anahtar bulunmaktadır.  Bu anahtarlar tek yönlü çalışmaktadırlar fakat birbirlerini tamamlarlar. Açık anahtar şifrelemek için, özel anahtar da açık anahtarın şifrelediğini deşifre etmek için kullanılır.Özel anahtar sadece ait olduğu kişide bulunmakta ancak açık anahtar çeşitli sekilerde insanlara iletilebilmektedir, yani açık olarak dağıtılır.
Açık anahtar altyapısının temel görevi, internet üzerinde haberleşen, çalışan kişiler veya kurumlar arasında güvenilen dijital birimler oluşturmaktır. Bu birimler daha sonra şifreleme mekanizmaları ile kullanıldığında kimlik doğrulama, yetkilendirme ve dijital imzanın kontrolü gibi güvenlik hizmeti verebilirler. Böylece bu hizmeti kullanan kullanıcıların kendilerinde karşı tarafa olan güven oluşturulmuş olur. Ancak bu güven için öncelikle kullanıcının bahsedilen “Güven Birimi”’ne güvenmesi gerekir.
Açık anahtar altyapısı kişilerin sahip oldukları açık ve özel anahtarları kullanarak oluşturulan bir bilgi altyapısıdır. Bu altyapıda anahtarların oluşturulması, yetkili bir kurum tarafından onaylanması, sertifikaların saklanması ve dağıtılması, gerektiği durumlarda onayın geri alınması, sonlandırılması gibi işlemler vardır. Bu işlemler, her ne kadar karmaşık gibi görünse de sistemin sağlıklı olarak çalışması için gereklidir.

Akıllı Kart Nedir?

Kredi kartı boyutlarında ve bir yüzünde, kenara yakın olarak altın kaplamanın altına gömülmüş elektronik devre bulunduran bir karttır. Bileşenlerine ve iletişim biçimlerine göre ikiye ayrılır.
Bileşenlerine göre mikro-islemcili ve bellek tipleri vardir. Bellek tipi kartlar ilk üretilen akıllı kart tipidir, ucuzdur ve piyasada kolaylıkla bulunur. Üzerinde sadece basit 8-bit mikro-işlemci ve EEPROM bulunmaktadir. Mikro-işlemci PIN kodunu ve EEPROM uzerindeki bilgiye erişimi kontrol eder. Bellek tipi kartlar manyetik ATM kartlarına benzetilebilir fakat daha gelişmişlerdir.
Mikro-islemcili kartlarda ise daha fazla bileşen bulunmaktadir. Bir mikro-işlemci yine kartta bulunan EEPROM’a erisimi kontrol eder ancak PIN korumasi disinda farkli koruma sistemleri de kullanabilir. Bunları yapabilmesini sağlayan bir isletim sistemi kart uzerinde bulunmaktadir. İşletim sistemi kartta bulunan ROM’da bulunur. Hem isletim sistemi hem de karta sonradan yüklenen uygulamalar kartta bulunan RAM uzerinde calışırlar. Bazi kartlarda ek olarak şifreleme hızlandırıcısıda bulunmaktadır. Bütün bu bileşenler ve işlevleri ile incelenecek olursa mikro-işlemcili kartlar küçük bir bilgisayar gibi düşünülebilir.
Okuyucu ile iletisimi acisindan bir akıllı kart, temaslı (contact) ve temassız (contactless)  olarak ikiye ayirilir. Contact kart okuyucunun içine takıldıktan sonra üzerinde bulunan temas noktaları ile doğrudan okuyucu ile bağlantı kurar. Contact kart ihtiyacı olan enerjiyi de bu yolla sağlar. Contactless kartlarda ise kartın içinde küçük bir sarım bulunur. Bu sarım hem bir anten hem de bir güç kaynağı olarak işlev görür.  Veri ve komutlar okuyucuda radyo sinyallerine gömülür. Kartta bulunan sarım radyo sinyalleri ile kartın ihtiyacı olan enerjiyi sağlar ve veri ve komutlar mikro-işlemciye iletilir. Her ne kadar bu kartların okunabilmesi için okuyucuya yakın olması gereksede ilgi çekici ve uygulama alanı geniş bir teknolojidir. Temaslı ve temassız kartın birleştirildiği “Combo” kartlarda hem temas yüzeyi hem de sarım bulunmakta ve iki kartın özelliklerini de taşımaktadırlar.
Akıllı kartların temel birçok özelliğinin tanımlandığı ISO7816 standardında bir dosya sistemi tasarlanmıştır. Bu dosya sistemi ile birden çok veri farklı dosyalarda saklanabilir. Bu da bir kartın birden fazla uygulamada kullanılmasına olanak sağlamıştır. 

PKI Uyesi Olarak Akıllı kartlar

PKI tabanlı uygulamalarda güvenliğin sağlanabilmesi için anahtarların güvenli bir ortamda oluşturulması ve korunması gerekir. Böyle bir ortam akıllı kartlar ile sağlanabilir çünkü bilgisayardan ayrı olarak çalışırlar ayrıca bilgisayarlar ile olan iletişimleri de şifrelidir. Akıllı kart üreten firmalar artık PKI icin özel kartlar üretmektedirler. Bu kartlarda özellikle etkili rastgele sayi uretici (Random Number Generator – RNG) modülleri vardir ve üretilen açık ve özel anahtar çiftinden sadece açık anahtar bilgisayara gönderilir. Daha fazla güvenlik istenirse özel anahtar kart uzerinde simetrik şifreli olarak da saklanabilir. Genellikle açık anahtar kart üzerinde sertifika olarak saklanır.
Özel anahtar gerektiren her işlemin kart üzerinde yapılmasına gerek yoktur. Örnek olarak bir belgenin dijital imzalanmasi sırasında, belgenin “hash”i bilgisayarda oluşturulup imzalanmasi için karta gönderilmelidir, aksi halde 1 megabyte lık bir dosyanin sadece karta aktarılması half-duplex 9600bps bir okuyucu arabiriminde 15 dakida alır.
Uygulamada aksaklık çıkaran başka bir işlem de yığın halindeki bilginin simetrik şifrelenmesidir. Örneğin internet sunucusunda yada tarayıcınızda SSL oturumu sırasında gerçekleştirilen simetrik şifrelemenin kart üzerinde yapılması durumunda baglantı hızı kart ile bilgisayar arası bağlantının yarısına kadar inecektir (4800 bps).
Bunların dışında birçok PKI tabanlı işlemde akıllı kartlar kullanılabilir. Büyük dosyaların hash değerleri bilgisayarda üretilip, kart üzerinde imzalanıp, imzalanmış hash değeri de bilgisayara geri gönderilir. Benzer bir yöntem ile SSL kullanan sunucuda kendi açık anahtarınız ile şifrelenmiş oturum simetrik anahtarı, kart üzerinde açılarak kullanılır. Bu şekilde hiçbir zaman bilgisayar üzerine özel anahtarınız hiç geçmemiş olur.
Akıllı kartların yapılarının taşınmaya uygun olduğu için, ürettiğiniz özel anahtarlarınızı ve dijital sertıfikalarınızı cüzdanınızın içinde gittiğiniz heryere yanınızda götürebilirsiniz.

Uygulama Alanı Olarak Üniversiteler

Üniversiteler dünyanın her yerinde yönetim ve bürokrasi açısından karmaşık olarak görülürler ve karmaşıktırlar. Örnek olarak ODTÜ verilebilir. ODTÜ’de öğrencilere girişte kimlik kartı ve sağlık merkezi için bir defter verilir. Daha sonra kütüphane için bir kart, yurtlara kayıt yaptırırken bir yurt kartı çıkartırsınız. Yemekhanede yemek icin öğünlük fiş alırsınız. Cüzdanınız ehliyetiniz, öğrenci kimliğiniz, otobüs kartlarınız, yemek fişleriniz, biraz para, bir banka hesap kartı ve kredi kartı, nüfus cüzdanı, telefon kartı ve daha bir çok şey ile dolacaktır.
Akıllı kartların ve açık anahtarlı altyapının özelliklerini birleştirirsek cüzdanınızda daha az kart veya belge taşımanız sağlanır.

ÖN ÖDEMELİ SİSTEMLER

Telefon kartı, yemek fişi, kantinlerde yapılan harcamalar aslında bir kontör uygulamasi olarak düşünülebilir. Tatil köylerinde kullanılan boncuk sistemini biraz değiştirecek ve güncelleştirecek olursak, akıllı kartların özellikleri sayesinde bütün bunlari tek bir kartta toplayabiliriz.
Öncelikle ögrenciler anlaşmalı bir banka yada öğrenci saymanlığına bir miktar para yatırmalıdır. Bundan sonrası ise kullanacağınız teknolojiye göre farklılaşmaktadır. Network altyapınız iyi ise, öğrencinin yatırdığı miktar ağ üzerinde tutulan bir veritabanında tutulur ve harcama yapılacak noktalara terminal kurularak ağ üzerinden harcama miktari hesabından düşülür. Yada ögrencinin yatirdigi miktar kart üzerine yazılır. İkinci durumda harcama miktari anında kart üzerindeki miktardan düşülür. Güvenlik açısından bakacak olursak terminal ile veritabanı sunucusu arasında şifreli bağlanti kurulmalidir. Akıllı kartlarının kendi özelliği olan içindeki dosya sistemi kullanilmasi durumunda ise kart ile terminal arasinda kartlarda bulunan seri numarasi ve terminallere verilebilecek seri numaraları ile karşılıklı birbirini tanima gerçekleştirilmiş olur ve kart içindeki dosyada tutulan miktar azaltılır. Ayrıca, kullanilacak olan combo kartlar ile de kartın bir yere takılması da ortadan kaldırılmış ve işleme hız kazandırılmış olur.
Ön ödemeli olmayan fakat kartlarda bulunan eşi olmayan seri numarasını kullanan bir sistem de kapi girişlerinde ki turnike sistemidir. Bu sistemde de seri numarası kullanilir, ancak her hangi bir baglantı kurulması gerekmez. Tek yapılan işlem kartın uzerindeki seri numarasinin kontrolüdür. Yapılacak olan eklentiler ile giriş cıkışların kaydının tutulması da sağlanabilir.
Bu tip bir sistemin örnegi, contactless akıllı kartlar kullanılan İzmir Belediyesi’nin Toplu Taşım Sistemidir. Ankara’da ise benzeri bir sistem manyetik kartlar ile uygulanmaktadır. Türk Telekom ve German Telekom tarafından kullanılan kontör kartları da aynı tekniği kullanmaktadır.

KİMLİK OLARAK AKILLI KARTLAR

ODTÜ’ye girişte, kütüphanede kitap alişverisinde kimlik kullanılır ve bütün işlemler kütüphanenin kendi veritabanında tutulur. Kütüphanenin otomasyon sistemine bir PKI arayüzü yazılarak, öğrencilerin akıllı kartlarında bulunan dijital sertifika kontrol edilir ve işlem kütüphanenin yerel veritabanında yapılır.
Aynı şekilde öğrenci bilgisayar labaratuvarlarında bulunan bilgisayarlara akıllı kart okuyucusu ekleyecek olursak (bir dış okuyucu yada klavye ile tümleşik okuyucu) ögrencilerin kampus içindeki sunuculara erişimini de kolaylastırmış oluruz. Böyle bir sistemde öğrenci kartını okuyucuya taktığında kartta bulunan sertifika SSL oturumunu başlatmak için kullanılır. Ögrencinin vermesi gereken tek bilgi ise kendi PIN numarasıdır. Bu yöntem ile hem SSL güvenligi sağlanmış olur hem de sunucuya baglanan kişinin kimliği tespit edilmiş ve doğrulanmış olur.
Burada kullanılan kimlik sistemi tamamen bir PKI uygulamasıdır. Öğrencinin yerel sertifika kurumu tarafindan onaylanan açık anahtarı, sertifikasi, bütün kimlik işlemlerinde (kütüphane ve sunuculara karsi taninma gibi …) kullanilabilir.

Sistemin Kuruluşu

Yerel olarak da olsa böyle bir sistemin kurulabilmesi için bir “Sertifika Birimi” (Certificate Authority) oluşturulması gereklidir. Bu sertifika birimi öğrencilerin açık anahtarlarını onaylamak (kendi özel imza anahtarı ile imzalaması), verdigi onaylari geri almak (revoke) ve onayladigi sertifikalarin ve geri alinan onaylarin listesinin dagitilmasini sağlamak (CRL ‘Certificate Revocation List’ Publishing) ile yükümlüdür.
Kurulma aşamasında serifika biriminin güvenlik politikası belirlenmelidir çünkü bu birim kampüs içindeki önemli noktalar ile olan bağlantılarda, iletişimde, kimlik doğrulama açısından güvenliğini sağlamak ile görevlidir. Ayrıca güvenlik politikasının önceden belirlenmesi daha sonradan insanlar arasında olan çekişmelerden etkilenmemesini sağlar, çünkü güvenilir tek bir yetki biriminin olması açık anahtarlı altyapının yönetilmesi ve çalışması için gereklidir. Yerel olduğu için de bu birimin bir yönetim organına (Bilgi güvenliği grubu, Sistem grubu, Network grubu, bilgi işlem yada rektörlük gibi) bağlı olup olmaması gerektiği, bağlı ise hangi gruba bağlı olduğunun kararlaştırılması gerekir.
Birimin kendi güvenliğinin sağlanabilmesi için fiziksel güvenliğin sağlanması, işletim sisteminin, kullanılan yazılım ve donanımın dikkatli seçilmesi gerekir. Sertifika kurumunun CA sunucusu sadece kullanıcıların açık anahtarları imzalanacağı zaman kullanılacağı için çoğu zaman kapalı kalabilir. İmza için gerekli olan özel anahtar da bir smart card üzerinde saklanır. Ayrıca bu kartı kullanma yetkisi karışıklığı engellemek için tek bir kişiye verilmeli yada iyi bir kayıt sistemi kurulmalıdır.
Kullanılacak olan yazılımlar, Internet X.509 standardında sertifika saklayabilen ve bu standartta iletişim kurabilecek olan yazılımlar olmalıdır. Açık kayaklı OpenCA Linux üzerinde çalışan ve OpenSSL tabanlı bir yazılımdır. Fakat LDAP desteğinde sorunlar vardır ve smart card desteği bulunmamaktadır. OpenCA dışında da açık kaynak kodlu CA yazılımları vardır fakat, çoğunun bir takım eksiklikleri bulunmaktadır. Bunun yanında, Windows 2000 Sunucuları ile gelen ve kurumsal PKI için yeterli olabilecek bir CA yazılımı da kullanılabilir fakat gerektirdiği donanım maliyeti yüksektir ve her akıllı kart ve okuyucusu ile uyumluluğu yoktur.
Hangi yazılım kullanılırsa kullanılsın, bu yazılımın düzenli olarak kontrol edilmesi, test edilmesi ve verilerin yedeklemesinin yapılması gerekir. İşletim sistemi açısından Linux, hem geliştirilebilmesi hem de açıklarının hızla kapatılabilmesi bakımından tercih edilebilir. OpenLDAP projesinin ürünü olan LDAP’da sertifikaların ve sonlandırma listelerinin dağıtıldığı sunucu olarak kullanılabilir.
Kullanılacak olan kartlar konusunda pek fazla bir seçim şansı yoktur ancak her kartın kendine özgü iyi yanları ve kötü yanları olduğu için bu seçimin dikkatli ve her ürünü deneyerek yapılması gerekir. Kartın Avrupa’da ITSEC/6 standardına ulaşmış kart işletim sistemi kullanan MULTOS olması artı bir özelliktir. Ve kartta farklı epoxy katmanları kullanılmamış olmaması da dışarıdan donanıma gelecek olan saldırıları kolaylaştırdığı için eksi bir özelliktir.

Daha Sonrası …

Üniversite içinde kullanılabilecek bu sistem ufak değişikliklerle, cok daha geniş kapsamlı ve cok daha büyük kitlelere hitap edebilecek hale getirilebilir.
Benzer bir uygulama, Almanya’da sosyal sigorta uygulamasıdır. Doğumda Alman vatandaşlarına bir adet akıllı kart verimekte ve bu kart sigorta işlemlerinde kimlik olarak kullanılmaktadır.
Türkiye’de MERNİS Projesi ile birlikte, kullanıcılara akıllı kart verilebilir ve bu kartlar üzerinde nüfus cüzdanı bilgileri ile birlikte ehliyet, SSK veya BAĞKUR bilgileri gibi gerekli bilgilerin hepsi tutulabilir. Kartlar üzerindeki işletim sistemleri ve dosya sistemleri bu bilgileri saklamaya yeterlidir.
Bu sistemin kuruluşu sırasında bağlanacak olan kurumların altyapılarını değiştirmek zorunda kalacaklardır. Fakat bu altyapı değişikliği düşünüldüğü gibi ölü bir yatırım değildir. Yatırımda en çok tutan harcama, kartlar, okuyucuları ve gerekli donanım olacaktır. Kartların, okuyucu ve yazıcıların Türkiye’de imali mümkündür. Bu konuda destek olunmalıdır. Diğer bir harcama da network altyapısı ve sisteme bağlanacak kurumlarda ki çalışanların eğitimleridir. Ağ altyapısı Türk Telekom tarafından yapılabilir. Eğitim ise kurumların kendi hizmet içi eğitimlerinde verilebilir.
Önemli olan başka bir konu da, PKI’da kullanılan güven birimidir. Herkesin kabul ettiği ve güvendiği bir kurumun oluşturulması gerçekten zordur. Dünyada gözlenen en büyük sebebi de politik çekişmeler ve kişisel çekememezliklerdir.
Yapılması gereken diğer ön çalışmalar da, halkın biliçlendirilmesi ve gerekli olan yasal düzenlemelerin yapılmasıdır. Bu sistemin kullanıcıları oldukları için sistemin nasıl işlediğini ve nasıl kullanıldığını bilmelidirler. Yasal düzenlemeler ile de kurulacak olan kurumun çalışma politikası ve güvenlik politikası belirlenmelidir.

Sonuç

Yazıda örnek verilen uygulamalar ve daha fazlası açık anahtar altyapısı ve akıllı kartlar kullanılarak gerçekleştirilebilir. Akıllı kartlar bu tip uygulamalarda anahtarlar için üretim ve saklama alanı olarak kullanılır. Bütün bu uygulamaların temelinde PKI olduğu için gelişmeye açık bir sistemdir. Ancak hızlı geliştiği ve tek bir konuya saplanıp kalınmaması gerektiği de bu noktada belirtilmelidir. Tabii ki sistem kurulurken bir AR-GE grubu da kurulmalı ve konu üzerindeki son çalışmaları takip etmeli ve kendisi de bu çalışmalarda yer almalıdır.
Dikkat çekmek istediğim bir nokta da PKI kullanarak kurulacak olan e-devlet yapısının yurt dışında denendiği ve adım adım geçildiğidir. Amerika Birleşik Devletleri dijital imzayı senatoda kabul etmiştir. Böylece kağıt üzerine attığınız imza ile internet üzerinde yolladığınız belgeleri özel anahtarınızla imzalamanız hukuksal açıdan aynı olarak ele alınmaktadır.
Yurt dışında hızla adımlar alan, e-devlet ve e-kimlik projelerinin bir sebebide hantal bürokratik işlemlerden kaçmak ve tasarruf sağlamaktır. Teknolojisine sahip olduğumuz e-kimlik, temelinde basit bir PKI uygulamasıdır ve adım adım kolaylıkla e-devlet’e geçişte kullanılabilir. Her adımda bir kurum bu projeye bağlanır ve en sonunda, her kurum bağlandığında, e-devlet projesi gerçekleştirilimiş olur.