Foruma hoş geldin 👋, Ziyaretçi

Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.

Bcrypt

bullvar_katip

Administrator
Katılım
21 Mayıs 2024
Mesajlar
532,105
Bcrypt, ve David Mazières tarafından Blowfish şifreleme yöntemi esas alınarak geliştirilmiş ve ilk kez ’te, 1999 yılında sunulmuş bir parola özet fonksiyonudur. saldırılarına karşı kullanmasının yanı sıra adaptif bir fonksiyon olma özelliğine sahiptir. İterasyon sayacı arttırılarak yavaşlatılabilir ve bu sayede karşı dirençli kalabilmektedir. Bcrypt fonksiyonu OpenBSD’nin varsayılan parola özetleme algoritmasıdır ve gibi bazı Linux dağıtımlarında da kullanılmaktadır. Ayrıca, bcrypt’in C, C++, C#, Elixir, Go, Java, JavaScript, Perl, PHP, Python ve Ruby gibi dillerde de uygulamaları mevcuttur. ArkaPlan Blowfish, blok şifreleme yöntemleri arasında yavaş anahtar hazırlama evresiyle bilinmektedir. Standart durumda alt anahtarlarla başlar, bu durumdaki alt anahtarların bir bölümünde blok şifreleme yapar ve oluşan şifreleri bazı alt anahtarlarla değiştirir. Daha sonra modifiye edilmiş yeni durumda anahtarın bir başka bölümünü şifreler ve oluşan sonucu başka alt anahtarlarla değiştirmede kullanır. Bu şekilde, tüm alt anahtarlar belirlenene dek devam eder. Provos ve Mazières bu yöntemden yararlanmış ve onu daha da ileriye götürmüştür. Blowfish için yeni bir anahtar oluşturma algoritması geliştirip “Eksblowfish” (“maliyetli anahtar planlama Blowfish”) olarak adlandırmışlardır. Anahtar hazırlama aşaması, Blowfish gibi tüm alt anahtarları belirlemede salt ve parola kullanılarak başlar. Ardından standart Blowfish anahtar oluşturma evreleri bunu takip eder ve bu evrelerde bir önceki evredeki alt anahtardan başlanarak, anahtar olarak sırayla salt ve parola kullanılarak devam edilir. Teoride bu standart Blowfish anahtar oluşturma takviminden pek de farklılık gösteriyor değildir. Fakat, bu süreç yeniden anahtar oluşturma evrelerinin ayarlanabilir olması sayesinde istenen ölçüde yavaşlatılabilir. Bu sayede salt veya özete yönelik yapılan kaba kuvvet saldırıları engellenebilir. Açıklama Gölge parola dosyasında bulunan bir özet stringdeki "$2a$" veya "$2b$" (veya "$2y$") ön ekleri özet string’in modüler şifre formatındaki bir bcrpyt özeti olduğunu belirtir. Özetin geri kalanı ise maliyet parametresi, 128-bit salt (Radix-64 ile şifrelenmiş 22 karakter) ve 184 bit sonuç özet değeri (Radix-64 ile şifrelenmiş 31 karakter) içerir. Radix-64 unix/crypt alfabesi kullanır ve standart Base-64 değildir. Maliyet parametresi anahtar ilerleme iterasyon sayacı değerini belirtir. 2’nin katları olarak gösterilir ve şifreleme algoritmasının bir girdisidir. Örneğin gölge parola kaydı maliyet parametresinin 10, yani 2 anahtar ilerleme evresi olduğunu gösterir. Salt ise 'dir ve sonuç özet değeri ise 'dir. Kullanıcının parolası ise standart uygulamada kaydedilmez. Sürüm geçmişi $ 2 $ (1999) Orijinal Bcrypt tanımlarına göre ön ek olarak kullanılır. Bu tanımlara göre OpenBSD şifre dosyalarında parolaların kaydedilmesinde Modular CryptFormat takip edilir. : MD5 tabanlı şifreleme ('md5crypt') : Balon balığı tabanlı şifreleme ('bcrypt') : SHA-1 tabanlı şifreleme ('sha1crypt') : SHA-256 tabanlı şifreleme ('sha256crypt') : SHA-512 tabanlı şifreleme ('sha512crypt') $ 2a $ Orijinal tanımlarda non-ASCII karakterlerin veya sıfır sonlayıcıların nasıl değerlendirileceği belirtilmemiştir. Tanımlar aşağıdaki yönergeler dahil edilecek şekilde revize edilmiştir: String UTF-8'e göre kodlanmış olmalıdır null terminator dahil edilmelidir Bu değişikliklerle birlikte versiyon olarak değiştirilmiştir $ 2x $, $ 2y $ (Haziran 2011) Haziran 2011’de BCrypt’in bir PHP uygulaması olan crypt_blowfish’te bir hata keşfedildi. Bu, 8. bit setindeki karakterlerin yanlış değerlendirilmesiyle alakalı bir hataydı. Sistem yöneticilerinin ellerindeki mevcut parola veri tabanlarını 'dan 'e geçerek güncellemeleri önerildi. Aynı zamanda crypt_blowfish’in sabit algoritmalarla üretilen özetler için 'yi yayınlaması fikri de ortaya atıldı. Kanonik OpenBSD de dahil olmak üzere kimse 2x/2y fikrini benimsemedi. Bu versiyon yalnızca crypt_blowfish ile sınırlı kaldı. $ 2b $ (Şubat 2014) Bcrypt’in OpenBSD uygulamasında bir hata tespit edildi. String uzunlukları unsigned char (i.e. 8 bit ) olarak tutuluyordu. Eğer parola 255 karakterden uzunsa taşma meydana geldiği ve 255’te sınırlandığı görüldü. BCrypt OpenBSD için oluşturulduğu için, bu kütüphanedeki hatadan sonra versiyon numarasının yükseltilmesine karar verildi. Algoritma Bcrypt algoritması “OrpheanBeholderScryDoubt” metninin Blowfish kullanılarak 64 defa şifrelenmesinin sonucudur. Bcrypt’te standart Blowfish anahtar hazırlama fonksiyonu, daha yavaş anahtar hazırlama fonksiyonuyla (EksBlowfishSetup) değiştirilmiştir: bcrypt cost: Number (4..31) salt: array of Bytes (16 bytes) password: array of Bytes (1..72 bytes) hash: array of Bytes (24 bytes) state EksBlowfishSetup(cost, salt, password) ctext (64) ctext EncryptECB(state, ctext) Concatenate(cost, salt, ctext) Maliyetli anahtar oluşturma Bcrypt algoritması aşağıdaki mantıkta çalışan “Eksblowfish” anahtar hazırlama algoritmasına bağlıdır: EksBlowfishSetup cost: Number (4..31) salt: array of Bytes (16 bytes) password: array of Bytes (1..72 bytes) state: opaque BlowFish state structure state InitialState state ExpandKey(state, salt, password) (2) state ExpandKey(state, 0, password) state ExpandKey(state, 0, salt) state Expand Key ExpandKey fonksiyonu aşağıdaki işlemleri yapar: ExpandKey(state, salt, password) state: Opaque BlowFish state structure salt: array of Bytes (16 bytes) password: array of Bytes (1..72 bytes) state: opaque BlowFish state structure n 1 18 P P password[32(n-1)..32n-1] block Encrypt(state, salt[0..63]) P block[0..31] P block[32..63] n 2 9 block Encrypt(state, block salt[64(n-1)..64n-1]) P block[0..31] P block[32..63] i 1 4 n 0 127 block Encrypt(state, block salt[64(n-1)..64n-1]) S[2n] block[0..31] S[2n+1] block[32..63] state Böylelikle, tüm XOR’lar ve sıfır salt değerleri etkisiz olduğu için standart Blowfish anahtar zamanlamasıyla aynıdır. için de benzer şeyler söylenebilir, fakat bu fonksiyon salt değerini 128 bit anahtar olarak kullanır. Kullanıcı girdisi Bcrypt’in birçok uygulaması OpenBSD’de olduğu gibi parolayı ilk 72 baytı kalacak şekilde kırpar. Matematiksel algoritma ise 18 adet 32 bit alt anahtar ile (72 octet/byte’a eşdeğer) başlamaya hazır hale gelir. Bcrypt’in orijinal tanımlarında metin tabanlı şifreleri userland’den nümerik değerlere eşleştirmek için önerilen belirli bir metod yoktur. Metinde geçen kısa bir yorum string karakterlerini ASCII olarak şifreleyerek tutmaktan (zorunlu tutmaksızın) bahseder ve şöyle devam eder: “Sonuç olarak, buradaki anahtar argümanı, kullanıcı tarafından seçilen 56 byte’tan küçük(eğer anahtar ASCII string’i ise sonuçlandırma sıfır byte’ı da dahil olmak kaydıyla) bir gizli şifreleme anahtarıdır. Bu alıntıda geçen “56 byte’tan küçük parolalar” ifadesi önemlidir (zira algoritma 72 byte’a kadar kullanıyor). Provos ve Mazières kısıtlamayla ilgili bir açıklama yapmıyor olsa da, Bruce Schneier’ın Blowfish’in orijinal tanımlamalarındaki ifadesini düşünerek hareket etmiş olabilirler: “Anahtar boyutundaki 448 [bit] limiti, her alt anahtarın her bitinin, anahtarın bir bitine bağlı olmasını sağlamaktadır.” Bcrypt’in farklı uygulamaları birbirinden, parolaları nümerik değerlere ilk dönüştürmelerinde kullandıkları yöntem farklılıklarıyla ayrışmıştır. Ayrıca bakınız bcrypt aynı zamanda, 2002'de Blowfish tarafından geliştirilen cross-platform dosya şifreleme sistemi aracının da adıdır. Argon2 (2015'te Pasword Hashing Competition'ın kazananı) <a href="./Crypt%20(C)#Blowfish-based%20scheme" rel="mw:WikiLink" title="Crypt (C)" class="cx-link" data-linkid="127">Crypt (C)#Blowfish</a> tabanlı şema şifreleme – şifre saklama ve doğrulama şeması – Blowfish <a href="./Key%20stretching" rel="mw:WikiLink" title="Key stretching" class="cx-link" data-linkid="129">Key stretching</a> PBKDF2 (Parola Tabanlı Anahtar Türetme İşlevi 2) scrypt Kaynakça Dış bağlantılar crypt_blowfish, Openwall tarafından sağlanan uygulama Kategori:Şifreleme yazılımları Kategori:Şifreleme
 

Tema özelleştirme sistemi

Bu menüden forum temasının bazı alanlarını kendinize özel olarak düzenleye bilirsiniz.

Zevkine göre renk kombinasyonunu belirle

Tam ekran yada dar ekran

Temanızın gövde büyüklüğünü sevkiniz, ihtiyacınıza göre dar yada geniş olarak kulana bilirsiniz.

Izgara yada normal mod

Temanızda forum listeleme yapısını ızgara yapısında yada normal yapıda listemek için kullanabilirsiniz.

Forum arkaplan resimleri

Forum arkaplanlarına eklenmiş olan resimlerinin kontrolü senin elinde, resimleri aç/kapat

Sidebar blogunu kapat/aç

Forumun kalabalığında kurtulmak için sidebar (kenar çubuğunu) açıp/kapatarak gereksiz kalabalıklardan kurtula bilirsiniz.

Yapışkan sidebar kapat/aç

Yapışkan sidebar ile sidebar alanını daha hızlı ve verimli kullanabilirsiniz.

Radius aç/kapat

Blok köşelerinde bulunan kıvrımları kapat/aç bu şekilde tarzını yansıt.

Foruma hoş geldin 👋, Ziyaretçi

Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.

Geri