OpenSSL Kullanarak Oluşturulan Özel ve Açık Anahtarlar ile Asimetrik Şifreleme, Veri İmzalama ve Doğrulama Teknikleri

Günümüzde verinin gizliliğini ve bütünlüğünü sağlamak önemli bir konudur. Bu yazıda asimetrik şifreleme için kullanılacak anahtarlar oluşturulacak, özel anahtar ile imzalanan özgün metnin açık (genel) anahtarla doğrulandığı, açık anahtar ile şifrelenen özgün metnin özel anahtar ile okunabildiği görülecektir.

1) Özel Anahtar ve Açık Anahtarın Oluşturulması

Asimetrik şifreleme için ilk olarak özel anahtar oluşturulmalıdır. Bu amaçla OpenSSL komut satırı aracı kullanılabilir. OpenSSL yazılımı kendi sayfasından (https://www.openssl.org/source/) elde edilebilir. Bu yazılımın kurulum dosyalarının C:\ ana dizinine yapıldığını varsayalım.

Özel anahtarı oluşturmak için komut satırından OpenSSL’e ait dizine gidilir (C:\OpenSSL-Win64\bin) ve aşağıdaki komut yazılır:

openssl.exe genrsa -out OzelAnahtar.pem 1024

Bu komutta OzelAnahtar.pem, özel anahtar üretildikten sonra kaydedileceği dosya adıdır ve 1024 değeri ise anahtar uzunluğunu temsil eder, kullanıcı tercihine bağlı olarak 2048 veya 4096 olarak değiştirilebilir. Bu komut ve çıktısına ait ekran görüntüsü aşağıda verilmiştir.

Şekil - 1: Özel Anahtar Oluşturma

Şekil – 1: Özel Anahtar Oluşturma

 

Bu komuttan sonra ilgili dizin (C:\OpenSSL-Win64\bin) içerisinde OzelAnahtar.pem isminde bir dosya oluşturulmuş ve özel anahtar bu dosya içerisine kaydedilmiştir.

Not: Eğer “Warning: can’t open config file: C:\Openssl \bin\openssl.cfg” şeklinde bir uyarı alınıyorsa, konfigürasyon dosyası gösterilmelidir. Bu amaçla,

set OPENSSL_CONF=C:\OpenSSL-Win64\bin\openssl.cfg

komutu çalıştırılmalıdır.

İkinci aşama olarak, yukarıda oluşturulan OzelAnahtar.pem dosyasından açık anahtar elde edilecektir. Bu işlem için gereken komut;

openssl.exe rsa -in OzelAnahtar.pem -out GenelAnahtar.pem -outform PEM -pubout

şeklindedir. Komut çıktısı aşağıdaki gibidir.

Şekil - 2: Özel Anahtardan Genel Anahtarı Elde Etme

Şekil – 2: Özel Anahtardan Açık Anahtarı Elde Etme

 

Bu komut sonrasında ilgili dizin içerisinde GenelAnahtar.pem isminde bir dosya oluşturulduğu gözlenecektir.

 

2) Metin Dosyası Şifreleme ve Şifresini Çözme

Açık ve özel anahtarlar oluşturulduktan sonra şifreleme, şifre çözme, imzalama ve doğrulama aşamaları vardır. Bu aşamalar için aynı dizinde test.txt isimli bir metin dosyası oluşturulur ve içerisine www.bilgiguvenligi.gov.tr yazılır.

Şekil - 3: Metin Dosyası Oluşturma

Şekil – 3: Metin Dosyası Oluşturma

 

Şifreleme aşamasında,

openssl.exe rsautl -encrypt -inkey GenelAnahtar.pem -pubin -in test.txt -out sifreliTest.enc

komutu ile şifrelenecek olan dosya (test.txt), şifreleme işleminin yapılacağı açık anahtar ve şifrelemeden sonra oluşturulacak olan şifreli dosya adı (sifreliTest.enc) parametre olarak verilmiştir. Bu komutun çalışmasına dair ekran görüntüsü aşağıdaki gibidir.

Şekil - 4: Bir Dokümanın Şifrelenmesi

Şekil – 4: Bir Dokümanın Şifrelenmesi

 

Bu işlem öncesinde test.txt içeriği www.bilgiguvenligi.gov.tr iken, şifreleme sonrasında oluşan dokümana ait ekran görüntüsü aşağıda verilmiştir.

Şekil - 5: Şifreli Dokümana Ait İçerik Bilgisi

Şekil – 5: Şifreli Dokümana Ait İçerik Bilgisi

 

Deşifre işleminde ise;

openssl.exe rsautl -decrypt -inkey OzelAnahtar.pem -in sifreliTest.enc

komutu verilirse aşağıdaki ekran görüntüsü elde edilecektir.

Şekil - 6: Şifre Çözme İşlemi

Şekil – 6: Şifre Çözme İşlemi

 

Not: Şifrelenmiş metnin çözülmüş halinin çıktısını bir dosyaya yazdırmak için ‘>’ kullanılır.

 

3) Metin Dosyası İmzalama ve Doğrulama

İmzalama işlemi için;

openssl.exe rsautl -sign -inkey OzelAnahtar.pem -in test.txt > imzaliTest.txt

komutu yazılırsa ilgili dizine imzaliTest.txt isminde imzalanmış bir dosya oluşturulur. Bu işleme ait ekran görüntüsü aşağıdaki gibidir.

Şekil - 7: İmzalama İşlemi ve Çıktısı

Şekil – 7: İmzalama İşlemi ve Çıktısı

 

Bu işlem sonrası imzaliTest.txt içeriğine ait ekran görüntüsü aşağıda verilmiştir.

Şekil - 8: İmzalı Dokümana Ait İçerik Bilgisi

Şekil – 8: İmzalı Dokümana Ait İçerik Bilgisi

 

İmzalanan dosyanın doğrulanması için aşağıdaki komut kullanılır.

openssl.exe rsautl -verify -inkey GenelAnahtar.pem -pubin -in imzaliTest.txt

Şekil - 9: Doğrulama İşlemi ve Çıktısı

Şekil – 9: Doğrulama İşlemi ve Çıktısı

 

 

Yazarın Bilgileri

Ertuğrul BAŞARANOĞLU
Ertuğrul BAŞARANOĞLU

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Kullanabileceğiniz HTLM etiketleri ve özellikleri: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

Bu sayfada incelenen konulardan doğacak sorunlar kişinin kendi sorumluluğundadır.