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

0
1087
views
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ı

Pentist: Sızma Testleri ve Bilgi Güvenliği Danışmanlık Hizmetleri

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.

Aynı özel anahtar ile aynı komut (formatı aynı olacak şekilde) her çalıştırıldığında oluşacak olan genel anahtarların özet değerleri aynı olur, yani değişmez.

 

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ı

 

 

Pentist: Sızma Testleri ve Bilgi Güvenliği Danışmanlık Hizmetleri

CEVAP VER

Yorumunuzu giriniz
İsminizi giriniz

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.