Şifreleri uygulamamda saklamak için
scrypt kullanacağım. Bu nedenle, SHA-256 ve Salsa20 kripto ilkellerini (PBKDF2 ile) kullanacağım.
Bunu göz önünde bulundurarak, ne kadar büyük tuz kullanmalıyım? SHA-256 çıktı boyutuna eşit olmalı mı: 256 bit mi yoksa bu şifre germe fonksiyonundan alacağım bit sayısına mı eşit olmalı: 512 bit?
OpenLDAP tarafından kullanılan SSHA'nın sadece 32bit tuz ve Linux crypt () 48bit tuz kullandığını düşünürsek, tuzlarım oldukça büyük görünecektir ...
Genel olarak: Tuz büyüklüğü için temel kural nedir?
İlişkili:
Tuzlar benzersiz olmalıdır; bu onların tek ve tek işi. Tuz değerini asla tekrar kullanmamak için mümkün olduğunca çaba göstermelisiniz; nadiren yeniden kullanım nadiren kritik ama yine de kaçınılmalıdır). Makul şekilde tasarlanmış şifre şemaları ile, benzersizliğin yanı sıra tuzlarda başka yararlı özellik yoktur; tam olarak aynı bit dizisini yeniden oluşturmadığınız sürece bunları seçebilirsiniz. Teklik dünya çapında anlaşılmalıdır.
(Kötü tasarlanmış parola karma şemalarında, tuzun bazı ek özellikleri olabilir, ancak kötü tasarlanmış bir parola düzeni kullanırsanız zaten daha büyük sorunlarınız olur. Tuzun ile tam olarak aynı olmadığını unutmayın. Önceden tahmin edilemeyen tekdüze rasgele gibi katı gereksinimlerin geçerli olduğu simetrik şifreleme için Başlatma Vektörü .)
A ortak yol az ya da çok benzersiz tuz değerlerine sahip olmak, bunları iyi bir üretici ile rastgele oluşturmaktır (örneğin,
/dev/urandom Gibi kriptografik kullanımlara uygun olanı) ). Tuz yeterince uzunsa, çarpışma riskleri (yani bir tuz değerini tekrar kullanma) düşüktür. n - bit tuzları kullanırsanız, 2 değerine ulaştığınızda çarpışma olasılığı ihmal edilemez hale gelir.n/2 üretilen değerler. Bu gezegende yaklaşık 7 milyar insan var ve bunların her birinin 1000'den az şifresi olduğunu varsaymak güvenli görünüyor, bu nedenle dünya çapında karma şifrelerin sayısı 2'den biraz daha az olmalıdır]42,7. Bu nedenle 86 bit tuz yeterli olmalıdır. Biz sözde "güvenlik marjları" gibi ve dahası, programcılar sadece love ikisinin gücü, 128 bit . Yukarıdaki analize göre, bu, dünyadaki tekliği yeterince yüksek olasılıkla sağlamak için fazlasıyla yeterli ve bir tuzdan benzersizlikten daha fazlasını istemiyoruz.
Benzersizlik, diğer yollarla da sağlanabilir, örn. tuz olarak sunucu adının birleştirilmesi (dünya çapında DNS sistemi zaten herkesin, gezegendeki herkesinkinden farklı olarak kendi sunucu adını almasını sağlar) ve sunucu çapında bir sayaç. Bu, bazı pratik sorunları ortaya çıkarır, örn. kötü zamanlanmış bir sunucu çökmesi ve yeniden başlatılması durumunda bile tekrarlanmayan bir sayaç değerinin ve/veya yük dengelemeli birkaç ön ucun korunması. Rastgele sabit uzunlukta bir tuz daha kolaydır.
"En az sekiz sekizli (64 bit) uzunluğunda olmalı." from: http://www.ietf.org/rfc/rfc2898.txt