Python’da kriptografiyi doğru kullanmak
cryptography kütüphanesiyle şifreleme, imza, parola saklama ve anahtar yönetimini doğru kurar, sık yapılan hataları kendi gözünle görürsün.
Seviye 201 · 15 ders · 12 pratik lab
Dersler
Temel taşlar
- secrets ile güvenli rastgelelik; random neden yetmez
- HMAC ile mesaj bütünlüğü
- Sabit süreli karşılaştırma ve zamanlama sızıntısı
- Kısa görev: imzalı ve süreli bir bağlantı belirteci üret
Şifreleme
- Fernet ile kolay ve güvenli simetrik şifreleme
- AES-GCM: nonce, ek veri ve doğrulama
- Sık hatalar: ECB modu ve nonce tekrarı
- Büyük dosyaları parça parça şifrelemek
- Kısa görev: hatalı şifreleme kodunu bul ve düzelt
Anahtarlar, imzalar, parolalar
- Ed25519 ile imzalamak ve doğrulamak
- RSA anahtarları ve X.509 sertifikalarını okumak
- argon2 ve scrypt ile parola saklamak
- Anahtarları kodda değil, doğru yerde saklamak
- Kısa görev: eski MD5 parola özetlerini güvenle argon2’ye taşı
Kapanış
- Bitirme görevi: parola ve dosyalar için küçük bir şifreli kasa aracı
Pratik lablar
- Tahmin edilebilir sıfırlama kodları: Parola sıfırlama kodlarını random modülüyle üreten işlevi secrets ile yeniden yaz ve yeni kodların uzunluk ve karakter kümesi gereksinimini karşıladığını testle göster.
- MD5 parolalarını argon2’ye taşı: Eski MD5 özetleriyle çalışan giriş kodunu, kullanıcı başarılı giriş yaptığında parolasını argon2 ile yeniden özetleyecek şekilde değiştir ve iki tür hesabın da girebildiğini testle göster.
- Küçük şifreli kasa: Ana paroladan scrypt ile anahtar türeten, kayıtları AES-GCM ile saklayan ve dosya değiştirildiğinde açılmayı reddeden komut satırı kasası yaz ve anahtarın hiçbir yerde düz metin durmadığını göster.
- Webhook imzasını doğrula: Gelen webhook isteklerini paylaşılan anahtarla HMAC-SHA256 üzerinden doğrulayan bir işlev yaz, sabit süreli karşılaştırma kullan ve değiştirilmiş isteğin reddedildiğini göster.
- İmzalı ve süreli indirme bağlantısı: Kervan Seyahat bilet indirme bağlantıları için kullanıcı, dosya ve bitiş zamanını imzalayan bir belirteç üret ve süresi geçmiş veya değiştirilmiş bağlantının reddedildiğini göster.
- Karşılaştırmada zaman sızıntısı: API anahtarını == ile karşılaştıran lab servisinde yanıt sürelerini ölçüp farkı göster, kodu hmac.compare_digest ile düzelt ve ölçümün artık ayırt edici olmadığını kanıtla.
- Ayar dosyasındaki parolaları şifrele: Düz metin parolalar içeren ayar dosyasını Fernet ile şifreleyen ve uygulama açılışında çözen bir yardımcı yaz, yanlış anahtarla çözmenin anlaşılır hata verdiğini göster.
- ECB kipinde şifrelenmiş kayıtlar: Müşteri kayıtlarını AES-ECB ile şifreleyen kodda aynı alanların aynı şifreli metni ürettiğini göster, kodu AES-GCM’e taşı ve eski kayıtları yeniden şifreleyen bir geçiş betiği yaz.
- Üç hatalı şifreleme kodu: Sabit nonce kullanan, ek veriyi doğrulamayan ve anahtarı paroladan tek SHA-256 ile türeten şifreleme modülündeki hataları düzelt ve her biri için başarısız olan bir test yaz.
- Sürüm dosyasını imzala: Oakmere Studios güncelleme paketini Ed25519 ile imzalayan ve indirildikten sonra doğrulayan iki küçük betik yaz ve değiştirilmiş paketin reddedildiğini göster.
- Sertifika dosyalarının envanteri: Bir klasördeki PEM sertifikalarını ve RSA anahtarlarını okuyup konu, bitiş tarihi, anahtar boyu ve hangi anahtarın hangi sertifikaya ait olduğunu gösteren bir tablo üret.
- Büyük dosyayı parça parça şifrele: Yedek dosyalarını belleğe sığmadan parça parça AES-GCM ile şifreleyen, parça sırası değiştirildiğinde veya bir parça silindiğinde çözmeyi reddeden bir araç yaz.
Kurs hakkında
cryptography kütüphanesiyle şifreleme, imza, parola saklama ve anahtar yönetimini doğru kurar, sık yapılan hataları kendi gözünle görürsün.
Ne öğreneceksin
- Temel taşlar
- Şifreleme
- Anahtarlar, imzalar, parolalar
- Kapanış
Ön koşullar
Aynı yolun 101 düzeyindeki kurslarını bitirmiş olmak ya da o konuları biliyor olmak yeterlidir.
Lab ortamı
Dersler, tarayıcında açılan sana özel bir Kali Linux terminalinde geçer. Kurulum gerekmez; lab her derste temiz başlar.
Sık sorulan sorular
- Bu kurs benim düzeyime uygun mu?
- Kurs 201 düzeyindedir; daha düşük düzeydeki kursların konularını bildiğin varsayılır.
- Kurulum gerekir mi?
- Hayır. Her ders tarayıcında açılan sana özel bir lab ortamında geçer.
- Dersler nasıl işleniyor?
- Her ders 8 ile 10 adımdan ve bir kısa sınavdan oluşur. İlk adımlarda yazman gereken komut gösterilir, sonraki adımlarda yardım azalır; iki denemede takılırsan çözüm açılır.
- Ücretsiz deneyebilir miyim?
- Evet. Her kursun ilk üç dersi ücretsizdir.