Dijital İmza Oluşturma ve Kullanma

 

Giriş

Günümüzde elektronik belgelerin güvenilirliği, bütünlüğü ve kaynağının doğrulanması kritik öneme sahiptir. Bir PDF sözleşmesi, yazılım paketi, yedekleme dosyası veya resmi belge, gönderildikten sonra değiştirilmiş olabilir. Bu değişikliği tespit etmenin en güvenilir yöntemlerinden biri dijital imzadır.

Dijital imza;

  • Belgenin gerçekten belirtilen kişi tarafından oluşturulduğunu,

  • Belgenin sonradan değiştirilmediğini,

  • Gönderenin belgeyi inkâr edemeyeceğini

kanıtlayan kriptografik bir mekanizmadır.

Bu eğitimde OpenSSL kullanarak sıfırdan dijital imza oluşturacak, belgeleri imzalayacak, doğrulayacak ve belge üzerinde yapılan küçük bir değişikliğin bile imzayı nasıl geçersiz hale getirdiğini uygulamalı olarak göreceğiz.


Laboratuvar Hedefleri

Bu laboratuvar sonunda aşağıdaki işlemleri yapabiliyor olacaksınız.

✅ Dijital imza mantığını anlamak

✅ RSA anahtar çifti oluşturmak

✅ OpenSSL ile belge imzalamak

✅ Dijital imzayı doğrulamak

✅ Belgenin değiştirilmesi durumunda doğrulamanın neden başarısız olduğunu görmek

✅ Dijital imzanın gerçek hayatta nasıl kullanıldığını öğrenmek


Ön Bilgiler

Birçok kişi dijital imzayı elektronik imza ile karıştırır.

Aslında dijital imza;

  • Matematiksel algoritmalar kullanır.

  • Private Key ile oluşturulur.

  • Public Key ile doğrulanır.


Dijital İmzanın Sağladığı Güvenlik

Bir dijital imza dört önemli özelliği garanti eder.

1. Kimlik Doğrulama (Authentication)

Belge gerçekten imzalayan kişiye mi ait?


2. Veri Bütünlüğü (Integrity)

Belge imzalandıktan sonra değiştirildi mi?


3. İnkâr Edememe (Non-Repudiation)

İmzayı atan kişi daha sonra

"Ben imzalamadım."

diyemez.


4. Güven

Alıcı belgenin değiştirilmediğinden emin olur.


Dijital İmza Nasıl Çalışır?

Belge
Hash Fonksiyonu
Belge Özeti (Hash)
Private Key
Dijital İmza

Karşı tarafta ise

Belge
Hash Hesapla
Public Key
İmzayı Aç
Hash Karşılaştır

İki hash aynıysa

✓ Belge değiştirilmemiştir.


Dijital İmza ile Şifreleme Arasındaki Fark

Şifreleme        Dijital İmza
Gizlilik sağlar        Kimlik doğrular
Public Key ile şifrelenir        Private Key ile imzalanır
Private Key ile açılır        Public Key ile doğrulanır
Veriyi gizler        Veriyi doğrular

Laboratuvar Ortamı

Bu laboratuvar;

  • Linux

  • macOS

  • Windows (OpenSSL kurulu)

üzerinde uygulanabilir.

Kurulumu doğrulayın.

openssl version

Örnek

OpenSSL 3.2.2

Laboratuvar 1

RSA Anahtar Çifti Oluşturma

Önce özel anahtar oluşturuyoruz.

openssl genpkey \
-algorithm RSA \
-out private.pem \
-pkeyopt rsa_keygen_bits:4096

Dosya oluşacaktır.

private.pem

Public Key oluşturuyoruz.

openssl rsa \
-in private.pem \
-pubout \
-out public.pem

Dosyalar

private.pem
public.pem

oluşmuştur.


Anahtarları İnceleme

Private Key

openssl pkey \
-in private.pem \
-text \
-noout

Public Key

openssl pkey \
-pubin \
-in public.pem \
-text \
-noout

Laboratuvar 2

Belge Oluşturma

Yeni belge hazırlayalım.

nano belge.txt

İçerik

Bu belge Nuri tarafından oluşturulmuştur.
Tarih:
28 Temmuz 2026
Dijital imza laboratuvarı.

Kaydedin.


Dosyayı görüntüleyin.

cat belge.txt

Laboratuvar 3

Dijital İmza Oluşturma

Belgeyi private key ile imzalıyoruz.

openssl dgst \
-sha256 \
-sign private.pem \
-out belge.sig \
belge.txt

Oluşan dosya

belge.sig

aslında şifrelenmiş hash değeridir.


Dosyaları kontrol edin.

ls -l

Çıktı

belge.txt
belge.sig
private.pem
public.pem

İmzanın Boyutunu İnceleme

hexdump -C belge.sig

veya

xxd belge.sig

İmza okunabilir değildir.


Laboratuvar 4

İmzayı Doğrulama

Belgeyi doğruluyoruz.

openssl dgst \
-sha256 \
-verify public.pem \
-signature belge.sig \
belge.txt

Başarılı ise

Verified OK

çıktısını görürüz.


Bu ne anlama gelir?

  • Belge değişmemiştir.

  • Doğru private key ile imzalanmıştır.

  • Public key doğrulamıştır.


Laboratuvar 5

Belgeyi Değiştirme

Şimdi belgeye yalnızca tek satır ekleyelim.

nano belge.txt

Ekleyin

Yeni satır eklendi.

Dosya artık farklıdır.

Bu belge Nuri tarafından oluşturulmuştur.
Tarih:
28 Temmuz 2026
Dijital imza laboratuvarı.
Yeni satır eklendi.

Tekrar Doğrulama

Aynı komutu çalıştırın.

openssl dgst \
-sha256 \
-verify public.pem \
-signature belge.sig \
belge.txt

Sonuç

Verification Failure

veya

Error verifying data

Sebebi

Belgenin hash değeri değişmiştir.

İmza eski hash'e aittir.

Dolayısıyla doğrulama başarısız olur.


Hash Değerlerini Karşılaştırma

Belge değiştirilmeden önce

openssl dgst -sha256 belge.txt

Örnek

SHA2-256(belge.txt)=
4d1f...

Belge değiştirildikten sonra

openssl dgst -sha256 belge.txt
SHA2-256(belge.txt)=
ab67...

Hash tamamen değişmiştir.


Dijital İmza Neden Hash Üzerinden Oluşturulur?

1 GB'lık dosya düşünelim.

Doğrudan RSA ile imzalamak:

  • Çok yavaş

  • Çok maliyetli

Bunun yerine

Dosya
SHA-256
32 Byte Hash
RSA İmzalama

Bu nedenle tüm dijital imzalar hash üzerinden oluşturulur.


OpenSSL Komutlarının Açıklaması

Anahtar üretme

openssl genpkey

RSA anahtarı oluşturur.


Public Key üretme

openssl rsa -pubout

Private key'den public key çıkarır.


Hash oluşturma

openssl dgst

Digest hesaplar.


SHA-256

-sha256

Hash algoritmasını belirtir.


İmzalama

-sign private.pem

Private key kullanılır.


Doğrulama

-verify public.pem

Public key kullanılır.


Dijital İmzanın Kullanıldığı Yerler

Yazılım Güncellemeleri

Linux paketleri

Windows Update

Android APK

iOS


Git Commit Signing

Kodun gerçekten geliştirici tarafından gönderildiğini doğrular.


PDF Belgeleri

Sözleşmeler

Mahkeme kararları

Resmî belgeler


SSL/TLS Sertifikaları

Sunucuların kimliğini doğrular.


Blockchain

Kripto para transferleri

Wallet doğrulaması


E-Devlet Sistemleri

Resmî başvurular

Elektronik belgeler

Vergi işlemleri


Güvenlik Tavsiyeleri

✔ Private key hiçbir zaman paylaşılmamalıdır.

✔ Public key güvenle paylaşılabilir.

✔ Private key parola ile korunmalıdır.

✔ SHA-256 veya SHA-3 tercih edilmelidir.

✔ RSA için en az 3072 bit, tercihen 4096 bit anahtar kullanılmalıdır.

✔ Özel anahtarlar güvenli donanımlarda (HSM, TPM veya akıllı kart) saklanmalıdır.

✔ Düzenli anahtar rotasyonu uygulanmalıdır.


Gerçek Hayat Senaryosu

Bir yazılım şirketi müşterilerine bir güncelleme yayınlıyor.

Şirket;

  • Yazılımı oluşturur.

  • SHA-256 hash hesaplar.

  • Private Key ile imzalar.

  • Yazılımı ve imzayı yayınlar.

Kullanıcı;

  • Yazılımı indirir.

  • Public Key ile doğrular.

Sonuç:

✓ Yazılım orijinaldir.

✓ Değiştirilmemiştir.

✓ Gerçek üretici tarafından yayınlanmıştır.


Laboratuvar Özeti

Bu laboratuvarda aşağıdaki işlemler başarıyla gerçekleştirildi:

  • RSA 4096 bit anahtar çifti oluşturuldu.

  • Özel anahtardan açık anahtar üretildi.

  • Metin belgesi hazırlandı.

  • SHA-256 kullanılarak dijital imza oluşturuldu.

  • İmza açık anahtar ile doğrulandı.

  • Belge üzerinde değişiklik yapıldı.

  • Doğrulamanın başarısız olduğu gözlemlendi.

  • Dijital imzanın veri bütünlüğü ve kimlik doğrulama açısından önemi uygulamalı olarak öğrenildi.


Sonuç

Dijital imza, modern bilgi güvenliğinin temel yapı taşlarından biridir. Şifreleme ile birlikte kullanıldığında; hem verinin gizliliğini hem de kimliğini ve bütünlüğünü korur. OpenSSL gibi açık kaynaklı araçlar sayesinde dijital imza süreçleri kolayca uygulanabilir ve gerçek dünya senaryolarında güvenilir yazılım dağıtımı, elektronik belge yönetimi ve güvenli iletişim için güçlü bir altyapı sağlar. Bu laboratuvar, dijital imza oluşturma ve doğrulama sürecini adım adım deneyimleyerek, teorik bilgilerin pratikte nasıl uygulandığını göstermektedir. Sonuç olarak, dijital imza teknolojisini etkin kullanmak; kurumların ve bireylerin dijital ortamlardaki güvenini artıran en önemli kriptografik mekanizmalardan biridir.



Dijital dünyada bir belgenin "gerçekten o kişiden geldiğinden" ve "bize ulaşana kadar kimse tarafından değiştirilmediğinden" nasıl emin olabiliriz? İşte dijital imza (digital signature) tam olarak bu iki sorunu çözen matematiksel bir tekniktir.


Amacı, dijital iletişimde yapılabilecek tahrifatı (veri bütünlüğünün bozulması) ve kimlik sahteciliğini önlemektir. ABD de dahil olmak üzere birçok ülkede dijital imzalar, ıslak imzalı geleneksel belgelerle aynı hukuki statüye sahiptir. Öyle ki devlet kurumları bütçeleri, yasaları ve kritik önergeleri dijital imzalı elektronik versiyonlarla yayınlamaktadır.


Dijital İmza Nasıl Çalışır?

Dijital imza mimarisi temelde asimetrik şifreleme (iki farklı anahtarın kullanıldığı yapı) ve hash (özetleme) algoritmalarının birleşimidir. Süreç şu şekilde işler:

  1. İmzalayan (Gönderici): Kendisine ait, kimseyle paylaşmadığı bir Private Key (Özel Anahtar) kullanarak belgeye ait benzersiz bir matematiksel imza üretir.

  2. Doğrulayan (Alıcı): İmzalayanın herkesle paylaştığı Public Key (Açık Anahtar) yardımıyla, belgenin gerçekten o kişiden geldiğini ve yolda bozulmadığını kontrol eder.

Aşağıdaki laboratuvar çalışmasında, standart bir Linux terminali üzerinden OpenSSL kullanarak bu sürecin uçtan uca nasıl gerçekleştiğini simüle edeceğiz.


Laboratuvar Uygulaması: Adım Adım Dijital İmza

Bu laboratuvarda temel Linux komut satırı becerileri ve sistemde OpenSSL'in kurulu olması yeterlidir.


1.RSA Anahtar Çiftinin Oluşturulması:Özel ve Açık Anahtarlar.

Öncelikle, imzalama işleminde kullanacağımız 2048 bitlik güçlü bir RSA özel anahtarı (private key) üretiyoruz. Terminali açın ve şu komutu girin:

Bash

openssl genrsa -out ozel_anahtar.pem 2048

 

Özel anahtarımız oluştu. Şimdi bu anahtardan, doğrulamayı yapacak kişilere dağıtacağımız açık anahtarı (public key) türetmeliyiz:

Bash

openssl rsa -in ozel_anahtar.pem -pubout -out acik_anahtar.pem

 

Artık elimizde kimseyle paylaşmamamız gereken ozel_anahtar.pem ve herkesin görebileceği acik_anahtar.pem dosyaları var.

2.Örnek Belgenin Hazırlanması:İmzalanacak verinin oluşturulması.

İmzalayacağımız örnek bir metin belgesi oluşturalım. Bu, gizli bir anlaşma veya değiştirilmemesi gereken bir sistem konfigürasyonu olabilir.

Bash

echo "Bu belge çok önemli ve gizli bir anlaşma metnidir." > belge.txt

 

cat belge.txt komutu ile belgenin içeriğini görüntüleyerek doğru oluştuğundan emin olabilirsiniz.

3.Belgenin İmzalanması:Hash ve şifreleme işlemi.

Belgeyi imzalamak için SHA-256 özetleme algoritmasını ve kendi özel anahtarımızı kullanacağız. Bu işlem, belgenin dijital parmak izini alır ve özel anahtarla şifreleyerek imza.bin adında bir imza dosyası oluşturur.

Bash

openssl dgst -sha256 -sign ozel_anahtar.pem -out imza.bin belge.txt

 

Şu an belgemiz (belge.txt) ve bu belgeye ait dijital imzamız (imza.bin) doğrulanmaya hazır. İletişim sırasında karşı tarafa hem belgeyi hem de imza dosyasını göndeririz.

4.İmzanın Doğrulanması (Gerçeklik Testi):Veri bütünlüğünün kanıtlanması.

Karşı tarafın (veya denetçinin) elinde bizim acik_anahtar.pem dosyamız, belge.txt ve imza.bin var. Sistemin bütünlüğünü doğrulamak için şu komut çalıştırılır:

Bash

openssl dgst -sha256 -verify acik_anahtar.pem -signature imza.bin belge.txt

 

Eğer belge yolda hiç değişmemişse ve gerçekten bizim özel anahtarımızla imzalanmışsa, terminalde şu onay mesajı görüntülenir:

Verified OK

5.İhlal Simülasyonu:Belgenin değiştirildiğini tespit etme.

Peki ya araya giren kötü niyetli bir kişi (Man-in-the-Middle) belgeyi değiştirirse ne olur? Bunu test edelim. Belgenin sonuna sahte bir metin ekliyoruz:

Bash

echo "Bu madde sonradan hacker tarafından eklenmiştir." >> belge.txt

 

Belge artık orijinal halinde değil. Alıcı, aynı doğrulama komutunu tekrar çalıştırdığında:

Bash

openssl dgst -sha256 -verify acik_anahtar.pem -signature imza.bin belge.txt

 

Terminal bu kez bütünlüğün bozulduğunu anlar ve şu uyarıyı verir:

Verification Failure

Bu sayede belgenin güvenilirliği reddedilir ve tahrifat engellenmiş olur.

Öğrenme Çıktısı

Bu senaryo sayesinde, sadece teorik bir kavram olan dijital imzanın arka planda nasıl çalıştığını gözlemlemiş oldunuz. Dijital imzanın geçerli olabilmesi için orijinal belgenin tek bir baytının bile değişmemesi gerektiği, Verification Failure mesajı ile uygulamalı olarak kanıtlanmıştır.

 

Yorumlar

Bu blogdaki popüler yayınlar

Android Telefon/Tablet Ekranını Pardus ETAP 23 Yüklü Akıllı Tahtaya Yansıtma

Pardus Etap 23’de Unutulmuş Etap Yetkili Parolasını Sıfırlama

Pardus Etap 23 Yazıcı Kurulumu