SORU
26 Temmuz 2011, Salı


Nasıl bcrypt-dahili tuzları olabilir?

Coda Hale'in makale "How To Safely Store a Password" iddia:

bcrypt tuzları dahili gökkuşağı tablo saldırıları önlemek için vardır.

bcrypt OpenBSD uygulaması olduğunu söylüyor this paper, o değinir:

OpenBSD bir arcfour 128-bit bcrypt tuz oluşturur (arc4random(3)) anahtar akımı, rasgele veri ile seribaşı çekirdek cihaz zamanlamaları toplar.

Bu nasıl çalıştığını anlamıyorum. Tuz: benim anlayışı

  • Gökkuşağı ayrı bir tablo her biri için oluşturulan olurdu, böylece her saklı şifre için farklı olmak gerekiyor
  • İhtiyacı için saklı bir yerde o da tekrarlanabilir: ne zaman bir kullanıcı oturum açmaya çalıştığında, biz onların parola girişimi, tekrar aynı tuz-ve-karma yordam yaptığımız zaman aslında biz kendi saklanan parola ve karşılaştırın

Vasiyet (Raylar giriş yöneticisi) bcrypt ile kullanıyorum, kafam çok karışık veritabanında tuz sütunu var. Eğer tuzu rastgele ve herhangi bir yerde saklı değil, ne kadar güvenilir bir karma işlemi tekrar edebilir miyiz?

Kısacasınasıl bcrypt-dahili tuzları olabilir?

CEVAP
26 Temmuz 2011, Salı


Bu bcrypt

Rastgele bir tuz oluşturur. Bir "maliyet" faktörü ön yapılandırıldı. Bir şifre toplamak.

Parola şifreleme anahtarı tuz ve maliyet faktörü kullanılarak elde. Bu iyi bilinen bir dize şifrelemek için kullanın.Mağazagenel olaraktuz,ve şifreli bir metin. Bu üç unsurun bilinen bir uzunluğa sahip olduğundan, kolayca bunları bir arada ve tek bir alanda saklamak için, ama onların dışında daha sonra split edebilmek.

Birisi kimlik doğrulaması çalıştığında, saklı mal ve tuzu alın. Türetmek giriş parola anahtarı. Tanınmış aynı dize şifrelemek. Eğer oluşturulan şifre metni saklı şifre metin ile eşleşirse, parola ile eşleşti.

Bcrypt PBKDF2 gibi algoritmalara göre daha geleneksel düzenleri çok benzer bir şekilde çalışır. Bilinen düz metin şifrelemek için türetilmiş bir anahtar; diğer düzenleri (makul) kullanımı konusunda temel fark, anahtar elde edilmesini işlevi geri döndürülemez olduğunu kabul edip, doğrudan türetilmiş anahtar deposu.


Veritabanı, bcrypt bir saklı "" böyle bir şey olabilir: . karma

$2a$10$vİ8aWBnW3fİD.ZQ4/zo1G.q1lRps.9cGLcZEiGDMVr5yUP1KUOYTa

  • 2a kullanılan bcrypt algoritma sürümünü tanımlar.
  • 10 maliyet faktörü; 210anahtar elde edilmesini işlevi yineleme kullanılır yeterli değil. ( 12 veya daha fazla bir maliyet öneririm.)
  • vI8aWBnW3fID.ZQ4/zo1G.q1lRps.9cGLcZEiGDMVr5yUP1KUOYTa tuz ve şifre metni ve modifiye ederiz kodlanmış Base-64. İlk 22 karakterleri tuz için 16-bayt bir değer için kod çözme. Kalan karakterleri metin kimlik doğrulaması için karşılaştırılacak şifre.
  • $ karma üstbilgi bölümü için sınırlayıcı olarak kullanılır.

Bu örnek documentation for Coda Hale's ruby implementation. dan alınmıştır

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • alex maybury

    alex maybury

    20 Aralık 2007
  • MuscleProdigyTV

    MuscleProdig

    8 Ocak 2011
  • Orson Wang

    Orson Wang

    28 EKİM 2006