libsodium: Yanlış Kullanıma Dayanıklı Kriptoğrafi Kütüphanesi
Güvensiz parametreleri seçmenizi zorlaştıran, görüş belirten libsodium API'sini keşfedin.
libsodium: Yanlış Kullanıma Dayanıklı Kriptoğrafi Kütüphanesi, CoddyKit'te ücretsiz bir Cryptology Academy dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Cryptology Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Cryptology Academy kursu toplamda 4 dersten oluşur.
libsodium Felsefesi ve Kökeni
libsodium, Daniel Bernstein, Tanja Lange ve Peter Schwabe tarafından geliştirilen NaCl (Ağ ve Kriptografi kitaplığı) kitaplığının taşınabilir ve platformlar arası bir derlemesi olarak Frank Denis tarafından oluşturuldu. Temel felsefe, doğru kriptografik kullanımı mümkün olduğunca kolay, yanlış kullanımı ise mümkün olduğunca zor hâle getirmektir. Güvenli varsayılanlar, basit API'ler ve özenle seçilmiş algoritmalar, daha alt düzey kitaplıklarda sık görülen yaygın hataları önler.
Gizli Anahtarlı Kimlik Doğrulamalı Şifreleme
crypto_secretbox, XSalsa20-Poly1305 kullanarak gizli anahtarlı kimlik doğrulamalı şifreleme sağlar. API bir iletiyi, rastgele oluşturulan 24 baytlık bir tek kullanımlık değeri ve 32 baytlık bir anahtarı alır. Çıktı, hem şifrelenmiş hem de kimlik doğrulaması yapılmış bir şifreli metindir. crypto_secretbox_open, kimlik doğrulama etiketini atomik olarak doğrular ve şifreyi çözer; kurcalama algılanırsa hata döndürür. Bu, bozulmuş veya kötü amaçlı biçimde değiştirilmiş şifreli metinlerin şifresinin çözülmesini engeller.
Açık Anahtarlı Kimlik Doğrulamalı Şifreleme
crypto_box, X25519-XSalsa20-Poly1305 kullanarak iki taraf arasında açık anahtarlı kimlik doğrulamalı şifreleme sağlar. Göndericinin özel anahtarı ve alıcının açık anahtarı verildiğinde iletiyi şifreler ve kimlik doğrulamasını yapar; böylece yalnızca hedeflenen alıcı iletinin şifresini çözebilir ve alıcı göndericinin kimliğini doğrulayabilir. crypto_box_seal anonim çeşididir: gönderici gizlenir ve yalnızca şifreleme sağlanır; göndericinin kimlik doğrulaması yapılmaz.
Ed25519 ile Sayısal İmzalar
crypto_sign, Ed25519 kullanarak sayısal imzalar oluşturur. Anahtar oluşturma işlemi, 64 baytlık bir özel anahtar (aslında bir tohumun açık anahtarla birleştirilmesi) ve 32 baytlık bir açık anahtar üretir. İmzalama işlemi 64 baytlık bir imza oluşturur. Doğrulama hızlıdır ve sabit sürede gerçekleşir. Ed25519 imzaları belirlenimlidir (aynı ileti ve anahtar her zaman aynı imzayı üretir); bu da bazı uygulamalarda ECDSA'yı etkileyen rastgelelik arızalarından kaynaklanan güvenlik açıklarını ortadan kaldırır.
BLAKE2b ile Özetleme
crypto_generichash, BLAKE2b kullanarak genel amaçlı özetleme sağlar. SHA-256'nın aksine BLAKE2b, anahtarlı özetleme için ayrı bir HMAC yapısı gerektirmez; isteğe bağlı bir anahtarı doğrudan kabul eder. Çıktı uzunluğu 16 ile 64 bayt arasında yapılandırılabilir. BLAKE2b, eşdeğer veya daha iyi güvenlik özellikleri sunarken modern 64 bitlik işlemcilerde SHA-256 ve SHA-512'den daha hızlıdır.
BLAKE2b ile Anahtar Türetme
crypto_kdf, BLAKE2b kullanarak bir ana anahtardan anahtar türetme sağlar. 32 baytlık bir ana anahtar, amacı tanımlayan 8 baytlık bir bağlam dizesi ve bir alt anahtar kimliği (64 bitlik sayı) verildiğinde, yapılandırılabilir uzunlukta kriptografik olarak bağımsız bir alt anahtar türetir. Bu, türetilen anahtarlar arasında herhangi bir ilişki oluşturmadan, farklı amaçlar için tek bir ana anahtardan birden çok bağımsız anahtar türetmenize olanak tanır.
Argon2id ile Parola Özetleme
crypto_pwhash, Parola Özetleme Yarışması'nın kazananı olan Argon2id'i kullanarak parola özetleme sağlar. Argon2id, GPU saldırılarına dirençli bellek açısından zorlayıcı hesaplamayı ASIC saldırılarına dirençli zaman açısından zorlayıcı hesaplamayla birleştirir. Parametreler arasında, güvenlik gereksinimlerine göre ayarlanabilen işlem sınırı (zaman maliyeti) ve bellek sınırı bulunur. crypto_pwhash_str, algoritmayı ve parametreleri içeren, depolamaya uygun standart bir dize üretir.
Anonim Şifreleme için Mühürlü Kutular
crypto_box_seal, göndericiyi açığa çıkarmadan bir iletiyi alıcı için şifreler. Geçici bir anahtar çifti oluşturur, alıcının açık anahtarıyla anahtar değişimi gerçekleştirir ve ardından geçici özel anahtarı siler. Alıcı, kendi özel anahtarını kullanarak iletiyi çözebilir ancak göndericiyi belirleyemez. Bu yöntem, anonim gönderim sistemleri ve tek yönlü şifrelenmiş kanallar için uygundur.
libsodium Dil Bağlayıcıları
libsodium, neredeyse tüm başlıca programlama dilleri için bağlayıcılara sahiptir. PyNaCl, Python'a uygun istisnalar ve bayt nesneleriyle deyimsel Python bağlayıcıları sağlar. libsodium-wrappers, JavaScript/Node.js bağlayıcıları sunar (tarayıcılar için WASM). libsodium.js, yalnızca JavaScript ile yazılmış bir uyarlamadır. Bağlayıcıların kalitesi değişiklik gösterir: algoritmaları yeniden uygulamak yerine C kitaplığını saran, resmî olarak sunulan veya yaygın biçimde bakımı yapılan bağlayıcıları tercih edin.
OpenSSL Düşük Düzeyli API'siyle Karşılaştırma
OpenSSL'in düşük düzeyli API'si; algoritmalar, anahtar boyutları, kipler, dolgulama ve IV yönetimi hakkında açıkça karar vermenizi gerektirir. Yanlış birleşimler sessizce kabul edilir. libsodium, her kullanım senaryosu için yapılandırma gerektirmeyen tek bir doğru uygulama sağlar. Örneğin OpenSSL ile şifreleme yaparken şifreleme algoritmasını, kipi, anahtar türetmeyi, IV oluşturmayı ve dolguyu seçmeniz gerekir; libsodium'un crypto_secretbox işlevinde ise bir anahtar, tek kullanımlık değer ve ileti sağlamanız yeterlidir, geri kalan işlemler doğru biçimde gerçekleştirilir.
Yeni Projeler için libsodium Seçimi
libsodium, desteklenen dillerde kriptografik işlemler gerektiren her proje için önerilen başlangıç noktasıdır. Küçük API yüzeyi yanlış kullanım olasılığını azaltır, algoritmaları moderndir ve kapsamlı biçimde incelenmiştir; ayrıca çapraz platformlu C uygulaması titizlikle sınanmıştır. OpenSSL gibi daha düşük düzeyli bir kitaplığa geçmek yalnızca libsodium'da bulunmayan belirli algoritmalara ihtiyaç duyduğunuzda veya FIPS 140-2 doğrulaması gerektiğinde gerekli olmalıdır.
libsodium İşlemleri
Bir parolayı veritabanında depolamak üzere özetlemek için hangi libsodium işlevini kullanmalısınız?
libsodium Özeti
libsodium özeti: güvenli varsayılanlara ve yanlış kullanılmasını zorlaştıran bir API'ye sahiptir; Bernstein ve çalışma arkadaşlarının NaCl ilkelleri üzerine kuruludur. Gizli anahtarlı şifreleme için crypto_secretbox (XSalsa20-Poly1305), açık anahtarlı şifreleme için crypto_box (X25519), Ed25519 imzaları için crypto_sign, BLAKE2b özetleme için crypto_generichash, Argon2id parola özetleme için crypto_pwhash, anonim şifreleme için mühürlü kutular ve başlıca platformların çoğu için dil bağlayıcıları sunar.
Yapay zeka eğitmeniyle Cryptology Academy öğren — ücretsiz
Tarayıcında gerçek kod yaz ve çalıştır, 7/24 yapay zeka eğitmeninden anında yardım al; web'de ya da uygulamada kaldığın yerden devam et.
- Kurslar
- 67
- Dersler
- 261
Sıkça Sorulan Sorular
“libsodium: Yanlış Kullanıma Dayanıklı Kriptoğrafi Kütüphanesi” dersi ücretsiz mi?
Evet — “libsodium: Yanlış Kullanıma Dayanıklı Kriptoğrafi Kütüphanesi” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Cryptology Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Cryptology Academy kursu toplamda 4 dersten oluşur.
“libsodium: Yanlış Kullanıma Dayanıklı Kriptoğrafi Kütüphanesi” dersinde ne öğreneceğim?
Güvensiz parametreleri seçmenizi zorlaştıran, görüş belirten libsodium API'sini keşfedin. Cryptology Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Cryptology Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Cryptology Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.
“libsodium: Yanlış Kullanıma Dayanıklı Kriptoğrafi Kütüphanesi” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Cryptology Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Cryptology Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- libsodium: Yanlış Kullanıma Dayanıklı Kriptoğrafi Kütüphanesi
- OpenSSL API'si: Temel Yapılar ve Tuzaklar
- Google Tink: Güvenli Üst Düzey Kriptoğrafi
- Kriptografik Bağımlılıkları Denetleme ve Seçme