2013-01-02 52 views
3

我在必須滿足FISMA啓用FIPS系統要求的組織中工作。我試圖做的一件事是爲我們的密碼實現一個哈希算法。我有很多選擇:SHA-2,MD5,bcrypt(含Blowfish),RIPE等。符合FISMA /其他聯邦信息系統要求的散列算法

通過閱讀各種NIST出版物,沒有什麼FISMA聲明我必須使用特定算法來滿足他們要求。

但是,FIPS 180-4根據FISMA(SHA-1至SHA-512/256)指定WHICH散列算法被認爲是安全的。 NIST SP 800-132也推薦使用PBKDS2。

那麼這是否意味着: a)。我必須使用SHA作爲散列算法來通過FISMA審覈/要求?

...或...

b)。只要它比SHA好,我可以使用任何算法?即不要使用MD5,但可以使用bcrypt或RIPE。

回答

1

是的,你必須使用SHA。 SP 800-53引用FIPS 140-2遍佈整個地方,這意味着您必須使用SHA-256或SHA-512。 (Avoid SHA-1)。

它是由總統辦公廳明確規定在MEMORANDUM FOR HEADS OF EXECUTIVE DEPARTMENTS AND AGENCIES

11.在使用標準與技術研究院(NIST)出版物 研究所的要求?

是的。對於非國家安全計劃和信息系統,機構 必須遵循NIST標準和準則。 ...

12. NIST準則是否靈活?

是的。雖然機構需要根據OMB政策遵循 中的NIST標準和指導原則,但NIST指南 (特別是800系列)在機構應用這些指導原則方面存在靈活性。 但是,聯邦信息處理標準(FIPS)是強制性的。 ...

(想想。NIST並未公佈SHA作爲標準,這樣你可以去用別的東西代替...)

此外,SHA和Bcrypt AREN」真的可以直接比較。 SHA是一組哈希算法。 Bcrypt更多的是以Blowfish算法爲核心產生散列的過程。 Bcrypt的FIPS相當於PBKDF2,它使用SHA作爲其核心算法。

1

兩者如何?使用bcrypt對密碼進行散列/加密以充分利用其工作因子功能,以提供面向大規模並行暴力攻擊的未來防禦。然後SHA-512從bcrypt中得到結果並存儲它。

您從bcrypt中獲得保護,並檢查FISMA/FIPS框,因爲您正在存儲使用其接受的算法生成的散列。

即使有人可以蠻力使用SHA-512來查找生成相同​​散列的輸入,並將其存儲在數據庫中,但該輸入不是可將用戶登錄到系統中的工作密碼。