'超詳細的5種用戶密碼加密方式介紹,選擇哪種最安全?'

黑客 信息安全 算法 數據庫 設計 並行計算 波波說運維 2019-08-30
"

概述

作為互聯網公司的信息安全從業人員經常要處理撞庫掃號事件(撞庫是黑客無聊的“惡作劇”,黑客通過收集互聯網已洩露的用戶+密碼信息,生成對應的字典表,嘗試批量登陸其他網站後,得到一系列可以登陸的用戶),產生撞庫掃號的根本原因是一些企業發生了信息洩露事件,且這些洩露數據未加密或者加密方式比較弱,導致黑客可以還原出原始的用戶密碼。

以京東之前的撞庫舉例,首先京東的數據庫並沒有洩漏。黑客只不過通過“撞庫”的手法,“湊巧”獲取到了一些京東用戶的數據(用戶名密碼),而這樣的手法,幾乎可以對付任何網站登錄系統,用戶在不同網站登錄時使用相同的用戶名和密碼,就相當於給自己配了一把“萬能鑰匙”,一旦丟失,後果可想而知。

今天主要分別介紹用戶密碼的加密方式以及主要的破解方法。

"

概述

作為互聯網公司的信息安全從業人員經常要處理撞庫掃號事件(撞庫是黑客無聊的“惡作劇”,黑客通過收集互聯網已洩露的用戶+密碼信息,生成對應的字典表,嘗試批量登陸其他網站後,得到一系列可以登陸的用戶),產生撞庫掃號的根本原因是一些企業發生了信息洩露事件,且這些洩露數據未加密或者加密方式比較弱,導致黑客可以還原出原始的用戶密碼。

以京東之前的撞庫舉例,首先京東的數據庫並沒有洩漏。黑客只不過通過“撞庫”的手法,“湊巧”獲取到了一些京東用戶的數據(用戶名密碼),而這樣的手法,幾乎可以對付任何網站登錄系統,用戶在不同網站登錄時使用相同的用戶名和密碼,就相當於給自己配了一把“萬能鑰匙”,一旦丟失,後果可想而知。

今天主要分別介紹用戶密碼的加密方式以及主要的破解方法。

超詳細的5種用戶密碼加密方式介紹,選擇哪種最安全?

彩虹表


用戶密碼加密方式

用戶密碼保存到數據庫時,常見的加密方式有哪些?以下幾種方式是常見的密碼保存方式:

1、明文保存

比如用戶設置的密碼是“123456”,直接將“123456”保存在數據庫中,這種是最簡單的保存方式,也是最不安全的方式。但實際上不少互聯網公司,都可能採取的是這種方式。

2、對稱加密算法來保存

比如3DES、AES等算法,使用這種方式加密是可以通過解密來還原出原始密碼的,當然前提條件是需要獲取到密鑰。不過既然大量的用戶信息已經洩露了,密鑰很可能也會洩露,當然可以將一般數據和密鑰分開存儲、分開管理,但要完全保護好密鑰也是一件非常複雜的事情,所以這種方式並不是很好的方式。

"

概述

作為互聯網公司的信息安全從業人員經常要處理撞庫掃號事件(撞庫是黑客無聊的“惡作劇”,黑客通過收集互聯網已洩露的用戶+密碼信息,生成對應的字典表,嘗試批量登陸其他網站後,得到一系列可以登陸的用戶),產生撞庫掃號的根本原因是一些企業發生了信息洩露事件,且這些洩露數據未加密或者加密方式比較弱,導致黑客可以還原出原始的用戶密碼。

以京東之前的撞庫舉例,首先京東的數據庫並沒有洩漏。黑客只不過通過“撞庫”的手法,“湊巧”獲取到了一些京東用戶的數據(用戶名密碼),而這樣的手法,幾乎可以對付任何網站登錄系統,用戶在不同網站登錄時使用相同的用戶名和密碼,就相當於給自己配了一把“萬能鑰匙”,一旦丟失,後果可想而知。

今天主要分別介紹用戶密碼的加密方式以及主要的破解方法。

超詳細的5種用戶密碼加密方式介紹,選擇哪種最安全?

彩虹表


用戶密碼加密方式

用戶密碼保存到數據庫時,常見的加密方式有哪些?以下幾種方式是常見的密碼保存方式:

1、明文保存

比如用戶設置的密碼是“123456”,直接將“123456”保存在數據庫中,這種是最簡單的保存方式,也是最不安全的方式。但實際上不少互聯網公司,都可能採取的是這種方式。

2、對稱加密算法來保存

比如3DES、AES等算法,使用這種方式加密是可以通過解密來還原出原始密碼的,當然前提條件是需要獲取到密鑰。不過既然大量的用戶信息已經洩露了,密鑰很可能也會洩露,當然可以將一般數據和密鑰分開存儲、分開管理,但要完全保護好密鑰也是一件非常複雜的事情,所以這種方式並不是很好的方式。

超詳細的5種用戶密碼加密方式介紹,選擇哪種最安全?

3、MD5、SHA1等單向HASH算法

使用這些算法後,無法通過計算還原出原始密碼,而且實現比較簡單,因此很多互聯網公司都採用這種方式保存用戶密碼,曾經這種方式也是比較安全的方式,但隨著彩虹表技術的興起,可以建立彩虹表進行查表破解,目前這種方式已經很不安全了。

其實之前公司也是採用的這種MD5加密方式。

"

概述

作為互聯網公司的信息安全從業人員經常要處理撞庫掃號事件(撞庫是黑客無聊的“惡作劇”,黑客通過收集互聯網已洩露的用戶+密碼信息,生成對應的字典表,嘗試批量登陸其他網站後,得到一系列可以登陸的用戶),產生撞庫掃號的根本原因是一些企業發生了信息洩露事件,且這些洩露數據未加密或者加密方式比較弱,導致黑客可以還原出原始的用戶密碼。

以京東之前的撞庫舉例,首先京東的數據庫並沒有洩漏。黑客只不過通過“撞庫”的手法,“湊巧”獲取到了一些京東用戶的數據(用戶名密碼),而這樣的手法,幾乎可以對付任何網站登錄系統,用戶在不同網站登錄時使用相同的用戶名和密碼,就相當於給自己配了一把“萬能鑰匙”,一旦丟失,後果可想而知。

今天主要分別介紹用戶密碼的加密方式以及主要的破解方法。

超詳細的5種用戶密碼加密方式介紹,選擇哪種最安全?

彩虹表


用戶密碼加密方式

用戶密碼保存到數據庫時,常見的加密方式有哪些?以下幾種方式是常見的密碼保存方式:

1、明文保存

比如用戶設置的密碼是“123456”,直接將“123456”保存在數據庫中,這種是最簡單的保存方式,也是最不安全的方式。但實際上不少互聯網公司,都可能採取的是這種方式。

2、對稱加密算法來保存

比如3DES、AES等算法,使用這種方式加密是可以通過解密來還原出原始密碼的,當然前提條件是需要獲取到密鑰。不過既然大量的用戶信息已經洩露了,密鑰很可能也會洩露,當然可以將一般數據和密鑰分開存儲、分開管理,但要完全保護好密鑰也是一件非常複雜的事情,所以這種方式並不是很好的方式。

超詳細的5種用戶密碼加密方式介紹,選擇哪種最安全?

3、MD5、SHA1等單向HASH算法

使用這些算法後,無法通過計算還原出原始密碼,而且實現比較簡單,因此很多互聯網公司都採用這種方式保存用戶密碼,曾經這種方式也是比較安全的方式,但隨著彩虹表技術的興起,可以建立彩虹表進行查表破解,目前這種方式已經很不安全了。

其實之前公司也是採用的這種MD5加密方式。

超詳細的5種用戶密碼加密方式介紹,選擇哪種最安全?

4、PBKDF2算法

該算法原理大致相當於在HASH算法基礎上增加隨機鹽,並進行多次HASH運算,隨機鹽使得彩虹表的建表難度大幅增加,而多次HASH也使得建表和破解的難度都大幅增加。

在使用PBKDF2算法時,HASH一般會選用sha1或者sha256,隨機鹽的長度一般不能少於8字節,HASH次數至少也要1000次,這樣安全性才足夠高。一次密碼驗證過程進行1000次HASH運算,對服務器來說可能只需要1ms,但對於破解者來說計算成本增加了1000倍,而至少8字節隨機鹽,更是把建表難度提升了N個數量級,使得大批量的破解密碼幾乎不可行,該算法也是美國國家標準與技術研究院推薦使用的算法。

"

概述

作為互聯網公司的信息安全從業人員經常要處理撞庫掃號事件(撞庫是黑客無聊的“惡作劇”,黑客通過收集互聯網已洩露的用戶+密碼信息,生成對應的字典表,嘗試批量登陸其他網站後,得到一系列可以登陸的用戶),產生撞庫掃號的根本原因是一些企業發生了信息洩露事件,且這些洩露數據未加密或者加密方式比較弱,導致黑客可以還原出原始的用戶密碼。

以京東之前的撞庫舉例,首先京東的數據庫並沒有洩漏。黑客只不過通過“撞庫”的手法,“湊巧”獲取到了一些京東用戶的數據(用戶名密碼),而這樣的手法,幾乎可以對付任何網站登錄系統,用戶在不同網站登錄時使用相同的用戶名和密碼,就相當於給自己配了一把“萬能鑰匙”,一旦丟失,後果可想而知。

今天主要分別介紹用戶密碼的加密方式以及主要的破解方法。

超詳細的5種用戶密碼加密方式介紹,選擇哪種最安全?

彩虹表


用戶密碼加密方式

用戶密碼保存到數據庫時,常見的加密方式有哪些?以下幾種方式是常見的密碼保存方式:

1、明文保存

比如用戶設置的密碼是“123456”,直接將“123456”保存在數據庫中,這種是最簡單的保存方式,也是最不安全的方式。但實際上不少互聯網公司,都可能採取的是這種方式。

2、對稱加密算法來保存

比如3DES、AES等算法,使用這種方式加密是可以通過解密來還原出原始密碼的,當然前提條件是需要獲取到密鑰。不過既然大量的用戶信息已經洩露了,密鑰很可能也會洩露,當然可以將一般數據和密鑰分開存儲、分開管理,但要完全保護好密鑰也是一件非常複雜的事情,所以這種方式並不是很好的方式。

超詳細的5種用戶密碼加密方式介紹,選擇哪種最安全?

3、MD5、SHA1等單向HASH算法

使用這些算法後,無法通過計算還原出原始密碼,而且實現比較簡單,因此很多互聯網公司都採用這種方式保存用戶密碼,曾經這種方式也是比較安全的方式,但隨著彩虹表技術的興起,可以建立彩虹表進行查表破解,目前這種方式已經很不安全了。

其實之前公司也是採用的這種MD5加密方式。

超詳細的5種用戶密碼加密方式介紹,選擇哪種最安全?

4、PBKDF2算法

該算法原理大致相當於在HASH算法基礎上增加隨機鹽,並進行多次HASH運算,隨機鹽使得彩虹表的建表難度大幅增加,而多次HASH也使得建表和破解的難度都大幅增加。

在使用PBKDF2算法時,HASH一般會選用sha1或者sha256,隨機鹽的長度一般不能少於8字節,HASH次數至少也要1000次,這樣安全性才足夠高。一次密碼驗證過程進行1000次HASH運算,對服務器來說可能只需要1ms,但對於破解者來說計算成本增加了1000倍,而至少8字節隨機鹽,更是把建表難度提升了N個數量級,使得大批量的破解密碼幾乎不可行,該算法也是美國國家標準與技術研究院推薦使用的算法。

超詳細的5種用戶密碼加密方式介紹,選擇哪種最安全?

5、bcrypt、scrypt等算法

這兩種算法也可以有效抵禦彩虹表,使用這兩種算法時也需要指定相應的參數,使破解難度增加。

在密碼學中,scrypt(唸作“ess crypt”)是Colin Percival於2009年所發明的金鑰推衍函數,當初設計用在他所創立的Tarsnap服務上。設計時考慮到大規模的客制硬件攻擊而刻意設計需要大量內存運算。

Scrypt不僅計算所需時間長,而且佔用的內存也多,使得並行計算多個摘要異常困難,因此利 用rainbow table進行暴力攻擊更加困難。Scrypt 沒有在生產環境中大規模應用,並且缺乏仔細的審察和廣泛的函數庫支持。但是,Scrypt 在算法層面只要沒有破綻,它的安全性應該高於PBKDF2和bcrypt。


各個算法的特性

"

概述

作為互聯網公司的信息安全從業人員經常要處理撞庫掃號事件(撞庫是黑客無聊的“惡作劇”,黑客通過收集互聯網已洩露的用戶+密碼信息,生成對應的字典表,嘗試批量登陸其他網站後,得到一系列可以登陸的用戶),產生撞庫掃號的根本原因是一些企業發生了信息洩露事件,且這些洩露數據未加密或者加密方式比較弱,導致黑客可以還原出原始的用戶密碼。

以京東之前的撞庫舉例,首先京東的數據庫並沒有洩漏。黑客只不過通過“撞庫”的手法,“湊巧”獲取到了一些京東用戶的數據(用戶名密碼),而這樣的手法,幾乎可以對付任何網站登錄系統,用戶在不同網站登錄時使用相同的用戶名和密碼,就相當於給自己配了一把“萬能鑰匙”,一旦丟失,後果可想而知。

今天主要分別介紹用戶密碼的加密方式以及主要的破解方法。

超詳細的5種用戶密碼加密方式介紹,選擇哪種最安全?

彩虹表


用戶密碼加密方式

用戶密碼保存到數據庫時,常見的加密方式有哪些?以下幾種方式是常見的密碼保存方式:

1、明文保存

比如用戶設置的密碼是“123456”,直接將“123456”保存在數據庫中,這種是最簡單的保存方式,也是最不安全的方式。但實際上不少互聯網公司,都可能採取的是這種方式。

2、對稱加密算法來保存

比如3DES、AES等算法,使用這種方式加密是可以通過解密來還原出原始密碼的,當然前提條件是需要獲取到密鑰。不過既然大量的用戶信息已經洩露了,密鑰很可能也會洩露,當然可以將一般數據和密鑰分開存儲、分開管理,但要完全保護好密鑰也是一件非常複雜的事情,所以這種方式並不是很好的方式。

超詳細的5種用戶密碼加密方式介紹,選擇哪種最安全?

3、MD5、SHA1等單向HASH算法

使用這些算法後,無法通過計算還原出原始密碼,而且實現比較簡單,因此很多互聯網公司都採用這種方式保存用戶密碼,曾經這種方式也是比較安全的方式,但隨著彩虹表技術的興起,可以建立彩虹表進行查表破解,目前這種方式已經很不安全了。

其實之前公司也是採用的這種MD5加密方式。

超詳細的5種用戶密碼加密方式介紹,選擇哪種最安全?

4、PBKDF2算法

該算法原理大致相當於在HASH算法基礎上增加隨機鹽,並進行多次HASH運算,隨機鹽使得彩虹表的建表難度大幅增加,而多次HASH也使得建表和破解的難度都大幅增加。

在使用PBKDF2算法時,HASH一般會選用sha1或者sha256,隨機鹽的長度一般不能少於8字節,HASH次數至少也要1000次,這樣安全性才足夠高。一次密碼驗證過程進行1000次HASH運算,對服務器來說可能只需要1ms,但對於破解者來說計算成本增加了1000倍,而至少8字節隨機鹽,更是把建表難度提升了N個數量級,使得大批量的破解密碼幾乎不可行,該算法也是美國國家標準與技術研究院推薦使用的算法。

超詳細的5種用戶密碼加密方式介紹,選擇哪種最安全?

5、bcrypt、scrypt等算法

這兩種算法也可以有效抵禦彩虹表,使用這兩種算法時也需要指定相應的參數,使破解難度增加。

在密碼學中,scrypt(唸作“ess crypt”)是Colin Percival於2009年所發明的金鑰推衍函數,當初設計用在他所創立的Tarsnap服務上。設計時考慮到大規模的客制硬件攻擊而刻意設計需要大量內存運算。

Scrypt不僅計算所需時間長,而且佔用的內存也多,使得並行計算多個摘要異常困難,因此利 用rainbow table進行暴力攻擊更加困難。Scrypt 沒有在生產環境中大規模應用,並且缺乏仔細的審察和廣泛的函數庫支持。但是,Scrypt 在算法層面只要沒有破綻,它的安全性應該高於PBKDF2和bcrypt。


各個算法的特性

超詳細的5種用戶密碼加密方式介紹,選擇哪種最安全?


總結

採用PBKDF2、bcrypt、scrypt等算法可以有效抵禦彩虹表攻擊,即使數據洩露,最關鍵的“用戶密碼”仍然可以得到有效的保護,黑客無法大批量破解用戶密碼,從而切斷撞庫掃號的根源。

後面會分享更多devops和DBA方面的內容,感興趣的朋友可以關注下~

"

概述

作為互聯網公司的信息安全從業人員經常要處理撞庫掃號事件(撞庫是黑客無聊的“惡作劇”,黑客通過收集互聯網已洩露的用戶+密碼信息,生成對應的字典表,嘗試批量登陸其他網站後,得到一系列可以登陸的用戶),產生撞庫掃號的根本原因是一些企業發生了信息洩露事件,且這些洩露數據未加密或者加密方式比較弱,導致黑客可以還原出原始的用戶密碼。

以京東之前的撞庫舉例,首先京東的數據庫並沒有洩漏。黑客只不過通過“撞庫”的手法,“湊巧”獲取到了一些京東用戶的數據(用戶名密碼),而這樣的手法,幾乎可以對付任何網站登錄系統,用戶在不同網站登錄時使用相同的用戶名和密碼,就相當於給自己配了一把“萬能鑰匙”,一旦丟失,後果可想而知。

今天主要分別介紹用戶密碼的加密方式以及主要的破解方法。

超詳細的5種用戶密碼加密方式介紹,選擇哪種最安全?

彩虹表


用戶密碼加密方式

用戶密碼保存到數據庫時,常見的加密方式有哪些?以下幾種方式是常見的密碼保存方式:

1、明文保存

比如用戶設置的密碼是“123456”,直接將“123456”保存在數據庫中,這種是最簡單的保存方式,也是最不安全的方式。但實際上不少互聯網公司,都可能採取的是這種方式。

2、對稱加密算法來保存

比如3DES、AES等算法,使用這種方式加密是可以通過解密來還原出原始密碼的,當然前提條件是需要獲取到密鑰。不過既然大量的用戶信息已經洩露了,密鑰很可能也會洩露,當然可以將一般數據和密鑰分開存儲、分開管理,但要完全保護好密鑰也是一件非常複雜的事情,所以這種方式並不是很好的方式。

超詳細的5種用戶密碼加密方式介紹,選擇哪種最安全?

3、MD5、SHA1等單向HASH算法

使用這些算法後,無法通過計算還原出原始密碼,而且實現比較簡單,因此很多互聯網公司都採用這種方式保存用戶密碼,曾經這種方式也是比較安全的方式,但隨著彩虹表技術的興起,可以建立彩虹表進行查表破解,目前這種方式已經很不安全了。

其實之前公司也是採用的這種MD5加密方式。

超詳細的5種用戶密碼加密方式介紹,選擇哪種最安全?

4、PBKDF2算法

該算法原理大致相當於在HASH算法基礎上增加隨機鹽,並進行多次HASH運算,隨機鹽使得彩虹表的建表難度大幅增加,而多次HASH也使得建表和破解的難度都大幅增加。

在使用PBKDF2算法時,HASH一般會選用sha1或者sha256,隨機鹽的長度一般不能少於8字節,HASH次數至少也要1000次,這樣安全性才足夠高。一次密碼驗證過程進行1000次HASH運算,對服務器來說可能只需要1ms,但對於破解者來說計算成本增加了1000倍,而至少8字節隨機鹽,更是把建表難度提升了N個數量級,使得大批量的破解密碼幾乎不可行,該算法也是美國國家標準與技術研究院推薦使用的算法。

超詳細的5種用戶密碼加密方式介紹,選擇哪種最安全?

5、bcrypt、scrypt等算法

這兩種算法也可以有效抵禦彩虹表,使用這兩種算法時也需要指定相應的參數,使破解難度增加。

在密碼學中,scrypt(唸作“ess crypt”)是Colin Percival於2009年所發明的金鑰推衍函數,當初設計用在他所創立的Tarsnap服務上。設計時考慮到大規模的客制硬件攻擊而刻意設計需要大量內存運算。

Scrypt不僅計算所需時間長,而且佔用的內存也多,使得並行計算多個摘要異常困難,因此利 用rainbow table進行暴力攻擊更加困難。Scrypt 沒有在生產環境中大規模應用,並且缺乏仔細的審察和廣泛的函數庫支持。但是,Scrypt 在算法層面只要沒有破綻,它的安全性應該高於PBKDF2和bcrypt。


各個算法的特性

超詳細的5種用戶密碼加密方式介紹,選擇哪種最安全?


總結

採用PBKDF2、bcrypt、scrypt等算法可以有效抵禦彩虹表攻擊,即使數據洩露,最關鍵的“用戶密碼”仍然可以得到有效的保護,黑客無法大批量破解用戶密碼,從而切斷撞庫掃號的根源。

後面會分享更多devops和DBA方面的內容,感興趣的朋友可以關注下~

超詳細的5種用戶密碼加密方式介紹,選擇哪種最安全?

"

相關推薦

推薦中...