Ders 1.13: Rastgelelik ve anahtarlar
Her anahtar, tuz, belirteç ve oturum kimliği, ancak geldiği rastgelelik kadar güçlüdür. Sıradan rastgele fonksiyonların ve zaman damgalarının neden tahmin edilebilir olduğu, kriptografik olarak güvenli bir rastgele sayı üretecinin (CSPRNG) ne olduğu, Linux'ta ve PHP'de nereden alınacağı ve anahtar uzunluğunun güvenlikle ilişkisi. Laboratuvarda mağazanın parola sıfırlama belirteçlerinin oluşturuldukları zamanın MD5'i olduğunu fark ediyor, günlükteki birini tek bir PHP satırıyla yeniden üretiyor, onu random_bytes ile değiştiriyor ve openssl rand ile karşılaştırıyorsun.
17 dk
Bu derste öğreneceklerin
- Anahtarların ve belirteçlerin neden tahmin edilemez rastgeleliğe ihtiyaç duyduğunu açıklamak
- Tahmin edilebilir belirteçleri tanımak (zaman, sayaçlar, rand())
- Bir CSPRNG kullanmak: PHP'de random_bytes, openssl rand
- Bit cinsinden anahtar uzunluğunu kaba kuvvet çabasıyla ilişkilendirmek
- Tahmin edilebilir bir belirteç üretecini düzeltmek
Temel terimler
- CSPRNG (kriptografik olarak güvenli rastgele sayı üreteci)
- Çıktısı, önceki çıktıları görmüş biri tarafından bile tahmin edilemeyen rastgele sayı üreteci.
- Entropi
- Bit cinsinden sayılan bir tahmin edilemezlik ölçüsü. n bit entropi, 2^n eşit olasılıklı seçenek demektir.
- Unix zamanı
- 1 Ocak 1970 00:00:00 UTC'den bu yana geçen saniyeler.
- Belirteç
- Bir şeyi kanıtlayan rastgele bir değer: bir parola sıfırlama bağlantısı, bir oturum, bir API erişimi.
- Anahtar uzunluğu
- Bir anahtarın bit cinsinden boyutu. Her ek bit kaba kuvvet çabasını ikiye katlar.
← İstekler, parametreler, çerezler ve oturumlar · Tüm dersler · Siber güvenlikte meslekler ve öğrenme yolun →