第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

最佳做法:添加密碼?

最佳做法:添加密碼?

米脂 2020-02-04 14:05:13
我遇到了一個(gè)討論,在那次討論中,我了解到我實(shí)際上并不是在給密碼加鹽,而是在給它們添加胡椒粉,從那時(shí)起,我就開始使用以下功能:hash_function($salt.hash_function($pepper.$password)) [multiple iterations]忽略選擇的哈希算法(我希望這是關(guān)于鹽和胡椒的討論,而不是特定算法的討論,但是我使用的是安全算法),這是安全的選擇還是我應(yīng)該做一些不同的事情?對(duì)于不熟悉的術(shù)語:甲鹽是通常存儲(chǔ)與設(shè)計(jì),使其不可能使用哈希表來破解密碼的數(shù)據(jù)庫中的字符串中的隨機(jī)生成值。由于每個(gè)密碼都有自己的特色,因此必須將所有密碼單獨(dú)強(qiáng)行破解。但是,由于鹽與密碼哈希一起存儲(chǔ)在數(shù)據(jù)庫中,因此數(shù)據(jù)庫泄密意味著同時(shí)丟失兩者。甲胡椒是從中旨在是秘密的數(shù)據(jù)庫(在應(yīng)用程序的源代碼通常硬編碼)分開存儲(chǔ)站點(diǎn)范圍靜態(tài)值。使用它是為了避免對(duì)數(shù)據(jù)庫的損害,不會(huì)導(dǎo)致整個(gè)應(yīng)用程序的密碼表都是蠻力的。我有什么想念的嗎?給密碼加鹽和胡椒粉是保護(hù)用戶安全的最佳選擇嗎?這樣做是否存在潛在的安全缺陷?注意:出于討論目的,假設(shè)應(yīng)用程序和數(shù)據(jù)庫存儲(chǔ)在單獨(dú)的計(jì)算機(jī)上,不共享密碼等,因此違反數(shù)據(jù)庫服務(wù)器并不意味著違反應(yīng)用程序服務(wù)器。
查看完整描述

3 回答

?
青春有我

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超8個(gè)贊

鹽和胡椒粉的要點(diǎn)是增加稱為彩虹表的預(yù)先計(jì)算的密碼查找的成本。

通常,很難為單個(gè)哈希找到?jīng)_突(假設(shè)哈希是安全的)。但是,如果哈希值很短,則可以使用計(jì)算機(jī)將所有可能的哈希值生成到硬盤上的查找表中。這稱為彩虹表。如果創(chuàng)建了彩虹表,則可以進(jìn)入世界,并快速找到任何(未加鹽的未配粉)哈希的合理密碼。

胡椒的重點(diǎn)是使破解您的密碼列表所需的彩虹表獨(dú)特。因此,浪費(fèi)了更多的時(shí)間來攻擊者來構(gòu)建彩虹表。

然而,重點(diǎn)在于使每個(gè)用戶的彩虹表對(duì)于用戶而言是唯一的,從而進(jìn)一步增加了攻擊的復(fù)雜性。

確實(shí),計(jì)算機(jī)安全的要點(diǎn)幾乎是從來沒有(在數(shù)學(xué)上)使其不可能,而在數(shù)學(xué)和物理上都不可行(例如,在安全系統(tǒng)中,它將利用Universe中的所有熵(甚至更多)來計(jì)算單個(gè)用戶的密碼)。


查看完整回答
反對(duì) 回復(fù) 2020-02-04
?
嗶嗶one

TA貢獻(xiàn)1854條經(jīng)驗(yàn) 獲得超8個(gè)贊

首先,我們應(yīng)該談一談胡椒粉的確切優(yōu)點(diǎn):


Pepper可以保護(hù)弱密碼免受字典攻擊,在特殊情況下,攻擊者可以讀取數(shù)據(jù)庫(包含哈希),但不能訪問Pepper的源代碼。

典型的情況是SQL注入,丟棄備份,丟棄服務(wù)器...這些情況并不像聽起來那樣罕見,并且通常不受您的控制(服務(wù)器托管)。如果您使用...


每個(gè)密碼唯一的鹽

像BCrypt這樣的慢速哈希算法

...強(qiáng)大的密碼受到了很好的保護(hù)。在那種情況下,即使知道了鹽,也幾乎不可能強(qiáng)行使用強(qiáng)密碼。問題是弱密碼,它是蠻力字典的一部分,或者是它們的派生產(chǎn)品。字典攻擊將很快顯示出這些信息,因?yàn)槟鷥H測(cè)試最常用的密碼。


第二個(gè)問題是如何使用胡椒粉?


通常推薦的應(yīng)用胡椒的方法是在將密碼和胡椒傳遞給哈希函數(shù)之前,將密碼和胡椒結(jié)合起來:


$pepperedPassword = hash_hmac('sha512', $password, $pepper);

$passwordHash = bcrypt($pepperedPassword);

不過,還有另一種更好的方法:


$passwordHash = bcrypt($password);

$encryptedHash = encrypt($passwordHash, $serverSideKey);

這不僅允許添加服務(wù)器端機(jī)密,還允許交換$ serverSideKey(如果需要)。這種方法需要更多的工作,但是如果代碼一旦存在(庫),則沒有理由不使用它。


查看完整回答
反對(duì) 回復(fù) 2020-02-04
  • 3 回答
  • 0 關(guān)注
  • 671 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)