Kriptografi'ye Giriş
AES, Diffie-Hellman anahtar değişimi, karma, PKI ve TLS gibi şifreleme algoritmaları ile ilgili örnekler
KRİPTOGRAFİYE GİRİŞ
Merhabalar. Öncelikle odanın bize tanıtmak istediği kavramları inceleyelim.
AES (Advanced Encryption Standard; Gelişmiş Şifreleme Standardı)
Gizli mesajları veya bilgileri görmemesi gereken kişilerden korumanın bir yoludur. AES için şifreleme ve şifre çözme anahtarları aynıdır. DES'in zayıf yönleri kuvvetlendirilmiş halidir, DES’ten daha hızlıdır.
RSA Asimetrik Şifreleme
Zorluğunu çok büyük sayılarla işlem yapmasından alan asimetrik bir şifreleme algoritmasıdır. Simetrik şifrelemedeki gibi tek anahtar kullanılmasının yerine; biri gizli (Private Key) diğeri açık (Public Key) olmak üzere iki anahtar kullanılır. Güvenilirlik derecesi, şifrelemede kullanılan asal sayıların büyüklüğü ile orantılıdır.
Diffie-Hellman Anahtar Değişim
Gizli iletişimlerde kullanılabilecek ortak gizli anahtar üretir. Bu anahtar güvensiz açık ağlarda (internet) güvenli veri alışverişini sağlar. Ortak gizli anahtar üretilirken her iki taraf g ve p sayılarını belirler ve açık kanaldan iletirler. g ve p sayıları açık kanaldan iletilse de 3. Kişiler tarafından bilinmesinde mahsur yoktur. İletilen g ve p sayıları ortak gizli anahtarın hesaplanmasında kullanılacaktır.
HASH
Herhangi bir metnin şifrelenerek okunamaz veya önceden tahmin edilemez hale getirilmesi algoritması ve işlemidir.
PKI (Public Key Infrastructure) (Açık Anahtar Altyapısı)
HTTPS’teki Authenticity için kullanılan dijital sertifikaların üretilmesi, dağıtılması ve kimlik doğrulaması aşamasında kullanılabilmesi için gerekli altyapıyı sağlar.
Kavramları gördüğümüze göre sorulara geçebiliriz.
- Burada bir şifreli metinle karşı karşıyayız. Bu şifreli metin çeşitli tekniklerle şifrelenmiş olabilir. Bunu öğrenebilmek için bir “ipucu” na ihtiyacımız var. İpucunda ise “quipqiup'ı kullan” https://quipqiup.com/ sitesine gidelim ve şifreli metini yapıştıralım. Bu sayede şifreli metini çözmüş olduk.
2. Burada gpg ve openssl in kullanımını göreceğiz. Kullanacağımız komutlar;
gpg --output original_message.txt --decrypt message.gpg
openssl aes-256-cbc -pbkdf2 -iter 10000 -d -in encrypted_message -out original_message.txt
2.1) “quote01” dosyasındaki 3. Kelime sorulmakta. Daha sonrasında ise bize verilen şifreyi (s!kR3T55) girerek encode ediyoruz. Bu işlemi diğer encode işlemlerinde de tekrarlamamız gerekecek.
2.2) “quote02” dosyasındaki üçüncü kelime sorulmakta.
- 3) “quote03” dosyasındaki üçüncü kelime sorulmakta.
3) Bu görevde kullanacağımız komutlar şunlardır;
openssl rsa -in private-key.pem -pubout -out public-key.pem
openssl pkeyutl -decrypt -in ciphertext -inkey private-key.pem -out decrypted.txt
1) Bob , Alice'ten kendisine gönderilen dosyayı aldı . İhtiyacınız olan anahtarı aynı klasörde bulabilirsiniz. Orijinal düz metnin ilk kelimesi nedir? Sorumuz bu şekilde. Task03 e gidip yukarıda belirttiğim komutu yazıyoruz. Şifreli metnin orijinalini decrypted.txt dosyasına çıkartıyoruz ve okuyoruz.
3.2) Bob'un özel RSA anahtarına bir göz atın. p'nin son baytı nedir?
Bu soruda öncelikle kodumuzu çalıştırıyoruz.
Burada prime1 =p, prime2=q dur. Buna göre bu soruyu cevaplıyoruz.
3.3) Bob'un özel RSA anahtarına bir göz atın. q'nun son baytı nedir?
Bu sorunun cevabı da yukarıda verilmiştir.
4) Diffie-Hellman Anahtar Değişimi
Bu soruda openssl dhparam -in dhparams.pem -text –noout bu komutu kullanacağız. Task04 üç içerisinde bu komutu çalıştırıyoruz.
4.1) Dosyada bir dizi Diffie-Hellman parametresi bulunabilir dhparam.pem. Asal sayının bit cinsinden boyutu nedir?
Komutu çalıştırdığımızda parantez içerisinde bit sayısı yazmaktadır.
4.2) Asal sayının son baytı (en önemsiz bayt) nedir?
En son bayt aşağıda gösterilmektedir.
5) HASH (Karma)
5.1) Dosyanın SHA256 sağlama toplamı nedir order.json?
5.2) Dosyayı açın order.json ve miktarı olarak 1000 değiştirin 9000. Yeni SHA256 sağlama toplamı nedir?
Dosyayı nano ile açıyoruz ve 1000 yazısını 9000 ile değiştiriyoruz.
5.3) SHA256 ve anahtarı kullanarak 3RfDFz82, HMAC nedir order.txt?
Aşağıdaki komutu yazıyoruz.
6) PKI ve SSL/TLS
6.1) Burada aşağıdaki komutu çalıştırıyoruz.
openssl x509 -in cert.pem –text | less
6.2) Bu sertifika hangi yıla kadar geçerlidir?
Yukarıdaki çıktıda “Not after : Feb 25 11:34:19 2039 GMT” olarak verilmiştir.
7) Parolalarla Kimlik Doğrulama
Yönetici parolasının MD5 karmasının olduğunu keşfettiğinizde bir sistemi denetliyordunuz 3fc0a7acf087f549ac2b266baf94b8b1. Orijinal şifre nedir?
Burada bir md5 hash i verilmiş ve bunu kırmamız istenmekte. Bunun için https://www.md5online.org/md5-decrypt.html bu siteye gitmemiz öneriliyor. Hash i yazıyoruz ve kırılmasını bekliyoruz.
8) Kriptografi ve Veri – Örnek
Burada verilen metni okumamız gerekmekte.
9) Çözüm
Kriptografi geniş bir konudur. Bu odada, kriptografide yaygın olarak kullanılan terimleri anlamanıza yardımcı olacak temel kavramlara odaklanmaya çalıştık. Bu bilgi, şifreleme ve karma oluşturma kullanan sistemlerin yapılandırma seçeneklerini anlamak için çok önemlidir.
Söylendiği üzere Kriptografi çok geniş bir konudur ve çok fazla araştırma yapmak gerekir. Umarım sizler için faydalı bir yazı olmuştur. Okuduğunuz için teşekkür ederim :)