一文讀懂如何安全地存儲密碼

目錄

引言

明文存儲

基本哈希存儲

加鹽哈希存儲

適應性哈希算法

密碼加密存儲

小結


引言

密碼是最常用的身份驗證手段,既簡單又高效。密碼安全是網絡安全的基石,對保護個人和組織信息的安全具有根本性的作用。然而有關密碼泄漏的安全問題一再發生,大部分都是因為密碼的存儲不安全導致的,那么該如何安全地存儲密碼呢?接下來就詳細講解一下各種密碼存儲方案以及對應的優缺點,通過各種方案的對比來選擇出最佳的方案。

明文存儲

明文存儲密碼是指在數據庫或其他存儲系統中直接存儲用戶密碼的原始形式,沒有進行任何加密或散列處理。這種方式意味著密碼以可讀形式保存,任何可以訪問存儲系統的人都能直接看到明文密碼。

這種方式在早期的 Web 應用里面非常常見,一來是為了實現簡單,二來是那個時候安全問題不是特別突出,開發人員沒有對應的安全意識。隨著安全問題日益增多,開發人員安全意識也日益提高,當下這種方式已經很少見了,但是依然有很多缺乏安全意識的同學還這么干。這種方式的缺點就是極其不安全,主要是以下幾個方面:

  • 安全性極低:如果數據庫遭到未授權訪問,攻擊者可以立即獲取所有用戶的密碼。不僅危害用戶在當前系統中的安全,還威脅用戶在其他系統中賬戶的安全(因為許多用戶會在不同的系統中使用同樣的密碼)。
  • 違反合規性:多數現代的數據保護法規和標準,如歐盟的通用數據保護條例(GDPR)和支付卡行業數據安全標準(PCI DSS),都要求對敏感數據進行加密處理,明文存儲密碼已經違反了這些法規。
  • 內部威脅:即使外部攻擊者無法訪問數據庫,公司內部的員工也可能無意或有意地泄露密碼,增加了內部安全問題發生的風險。

因為這些缺點,明文存儲密碼是絕對不能使用的方法。

基本哈希存儲

基本哈希存儲密碼是指使用哈希函數(如 MD5、SHA-1 或 SHA-256)將密碼轉換成固定長度的字符串存儲在數據庫或其他存儲系統中。哈希函數是單向函數,理論上不能從哈希值逆向推導出原始密碼。這種方式雖然比明文存儲安全性高一些,但仍然有一些明顯的缺點:

  • 容易產生哈希碰撞:基本的哈希算法例如 MD5 和 SHA-1,已經被證明存在哈希碰撞的問題,即不同的輸入可能產生相同的輸出,降低了安全性。
  • 易被破解:因為相同的密碼總是產生相同的哈希值,使得攻擊者可以使用彩虹表(預先計算的哈希值表)來反向查找密碼。另外由于基本哈希函數的計算速度很快,攻擊者可以在短時間內嘗試大量可能的密碼,使用暴力攻擊或字典攻擊方法來找到原始密碼。

這種方式最好不要使用。

加鹽哈希存儲

加鹽哈希存儲密碼是指在對密碼散列過程中加入一個額外的隨機值(稱為“鹽”),這個鹽是在用戶每次注冊或更改密碼時隨機生成的,與密碼一起被哈希處理。然后將鹽和哈希值一起存儲在數據庫中或其他存儲系統中。當用戶嘗試登錄時,取出這個鹽并與用戶輸入的密碼一起哈希,然后比較這個哈希值與存儲的哈希值是否匹配。加鹽哈希的目的是為了增加密碼存儲的復雜性和安全性,用于抵御彩虹表攻擊。因為即使兩個用戶使用相同的密碼,由于鹽的不同,對應的哈希值也會不同。這種方式雖然可以抵抗彩虹表攻擊,但如果使用的哈希函數計算速度很快(如 MD5、SHA-1),則依然容易被暴力破解。使用這種方式需要注意以下幾點:

  • 鹽的管理:鹽必須獨特且隨機,同時需要安全地存儲。如果鹽的生成不夠隨機或者存儲不當,那么安全性就會大打折扣。
  • 使用方式:對于每個用戶都要使用不同的鹽并且在服務器端進行哈希,如使用相同的鹽或者在客戶端進行哈希,安全性會大大降低。
  • 使用強哈希函數:由于弱哈希函數例如 MD5、SHA-1 等已經被證明不夠安全,建議至少選擇使用 SHA256 算法。

這種方式目前被廣泛使用,但是還有更優的方式。

適應性哈希算法

適應性哈希算法是針對密碼存儲做了特別設計的算法,設計時考慮了計算時間,可以調整計算復雜度,以適應硬件性能的提升,使得即使在計算能力增強的情況下,破解密碼的難度也能保持在一個較高的水平。

這類算法比較有代表性的是 bcrypt、scrypt、Argon2 等,其中?bcrypt 是使用最廣泛的,關于 bcrypt 的詳解可以參考之前的文章 《安全高效又易用的密碼哈希神器-bcrypt 算法解析》。

使用適應性哈希算法存儲密碼是目前的最佳實踐,這些算法專門為密碼存儲而設計,提供了鹽值的自動管理和計算強度的調整能力,以此來抵御各種攻擊手段。唯一缺點可能就是兼容性問題了,在一些受限環境中,可能沒有對應的實現。使用這種方式時需要注意的一點是要適當配置好工作因子,不然仍然可能受到攻擊。

密碼加密存儲

密碼加密存儲是指使用加密算法(對稱算法或非對稱算法)對用戶密碼進行加密后存儲在數據庫中或其他存儲系統中。與哈希方式不同的是加密是一個可逆的過程,可以通過解密得到原始密碼。這通常涉及到一個密鑰,只有知道這個密鑰的人才能解密密碼。

使用對稱或非對稱加密算法對密碼進行加密,然后存儲加密后的值。缺陷主要是以下幾點:

  1. 密碼加密的安全性極大地依賴于密鑰的安全性。如果密鑰被泄露,所有的密碼都將以明文形式泄露。
  2. 存儲可逆形式的密碼可能會違反某些隱私和安全標準,如 GDPR 或 PCI DSS。
  3. 即使外部攻擊者無法訪問數據庫,公司內部的員工也可能無意中或有意地使用秘鑰解密密碼,進而泄露密碼,增加了內部安全問題發生的風險。

在現代的密碼存儲實踐中,是不推薦使用可逆的加密算法存儲的,所以這種方式不推薦使用。

小結

每種密碼存儲方法都有其優缺點,但最佳實踐是使用適應性哈希算法,適應性哈希算法專門為密碼存儲而設計,提供了鹽值的自動管理和計算強度的調整能力,以此來抵御各種攻擊手段。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/167510.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/167510.shtml
英文地址,請注明出處:http://en.pswp.cn/news/167510.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

生物動力葡萄酒和有機葡萄酒一樣嗎?

農業維持了數十萬年的文明,但當人類以錯誤的方式過多干預,過于專注于制造和操縱產品時,農業往往會失敗。如果我們的目標是獲得最高質量的收成,并長期堅持我們的做法,我們就必須與土地打交道。 當我們開始尋找生物動力…

應用內測分發平臺如何上傳應用包體?

●您可免費將您的應用(支持蘋果.ios安卓.apk文件)上傳至咕嚕分發平臺,我們將免費為應用生成下載信息,但咕嚕分發將會對應用的下載次數進行收費(每個賬號都享有免費贈送的下載點數以及參加活動的贈送點數)&a…

UVA1025 城市里的間諜 A Spy in the Metro

UVA1025 城市里的間諜 A Spy in the Metro 題面翻譯 題目大意 某城市地鐵是一條直線,有 n n n( 2 ≤ n ≤ 50 2\leq n\leq 50 2≤n≤50)個車站,從左到右編號 1 … n 1\ldots n 1…n。有 M 1 M_1 M1? 輛列車從第 1 1 1 站開…

【電路筆記】-分壓器

分壓器 文章目錄 分壓器1、概述2、負載分壓器3、分壓器網絡4、無功分壓器4.1 電容分壓器4.2 感應分壓器 5、總結 有時,需要精確的電壓值作為參考,或者僅在需要較少功率的電路的特定階段之前需要。 分壓器是解決此問題的一個簡單方法,因為它們…

【Vue】filter的用法

上一篇&#xff1a; vue的指令 https://blog.csdn.net/m0_67930426/article/details/134599378?spm1001.2014.3001.5502 本篇所使用指令 v-for v-on v-html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"&…

在vscode下將ipynb文件轉成pdf的方法

正常情況下&#xff0c;可以在vscode的ipynb界面點擊上面的三個點&#xff0c;里面有export&#xff0c;可以選擇直接輸出html和pdf&#xff0c;但是需要latex&#xff0c;由于按扎u安裝麻煩&#xff0c;所以我換了一種方法。 ----------------------------------------------…

記一次docker服務啟動失敗解決過程

環境&#xff1a;centos 7.6 報錯&#xff1a;start request repeated too quickly for docker.service 由于服務器修復了內核漏洞&#xff0c;需要重啟&#xff0c;沒想到重啟后&#xff0c;docker啟動失敗了 查看狀態 systemctl status docker如下圖 里面有一行提示&…

網絡互聯與IP地址

目錄 網絡互聯概述網絡的定義與分類網絡的定義網絡的分類 OSI模型和DoD模型網絡拓撲結構總線型拓撲結構星型拓撲結構環型拓撲結構 傳輸介質同軸電纜雙絞線光纖 介質訪問控制方式CSMA/CD令牌 網絡設備網卡集線器交換機路由器總結 IP地址A、B、C類IP地址特殊地址形式 子網與子網掩…

[NOIP2013 提高組] 積木大賽

Description 春春幼兒園舉辦了一年一度的“積木大賽”。今年比賽的內容是搭建一座寬度為 n 的大廈&#xff0c;大廈可以看成由 n 塊寬度為 1 的積木組成&#xff0c;第 i 塊積木的最終高度需要是 hi?。 在搭建開始之前&#xff0c;沒有任何積木&#xff08;可以看成 n 塊高度…

使用rsync從OpenShift的pod復制文件

環境 Red Hat Enterprise Linux release 8.6 (Ootpa)OCP 4.12.22 準備 安裝rsync&#xff1a; yum install rsync 查看pod&#xff1a; [rootapi.kai1123.cp.fyre.ibm.com ~]# oc get pod -n cpd-instance | grep dmc ...... ibm-dmc-1700727413211000-monitor-0 …

DCDC電感發熱嘯叫原因分析

一、電感發熱嘯叫原因解析 發熱原因&#xff1a;電感飽和&#xff0c;實際使用的電感值<理論電感計算值 原因1&#xff1a;電感選擇過小&#xff0c;計算值不合理。 原因2&#xff1a;PCB布局不合理&#xff0c;屏蔽型電感下方應設禁止鋪銅區。 嘯叫原因&#xff1a; 人耳的…

Log4j2.xml不生效:WARN StatusLogger Multiple logging implementations found:

背景 將 -Dlog4j.debug 添加到IDEA的類的啟動配置中 運行上圖代碼&#xff0c;這里log4j2.xml控制的日志級別是info&#xff0c;很明顯是沒生效。 DEBUG StatusLogger org.slf4j.helpers.Log4jLoggerFactory is not on classpath. Good! DEBUG StatusLogger Using Shutdow…

小數化分數

【問題描述】 任何小數都能表示成分數的形式&#xff0c;對于給定的小數&#xff0c;編寫程序其化為最簡分數輸出&#xff0c;小數包括簡單小數和循環小數。 【輸入形式】 第一行是一個整數N&#xff0c;表示有多少組數據。 每組數據只有一個純小數&#xff0c;也就是整…

Camera Raw v16.0.0(PS Raw增效工具)

Camera Raw 16是一款允許攝影師處理原始圖像文件的軟件PS增效工具。原始圖像文件是未經相機內部軟件處理的數碼照片&#xff0c;因此包含相機傳感器捕獲的所有信息。Camera Raw 為攝影師提供了一種在將原始文件轉換為更廣泛兼容的格式&#xff08;如 JPEG 或 TIFF&#xff09;之…

搭建SRS視頻服務器

去官方網站下載FFmpeg6.1 https://ffmpeg.org/download.html拷貝到CentOS7.9中的/opt目錄下&#xff0c;解壓并重命名 tar -xvf ffmpeg-6.1.tar.xz 解壓后編譯安裝 ./configure make make install從github下載SRS4.0release 解壓后 如果ffmpeg的路徑不在/usr/local/bin/ffmpe…

【MATLAB】全網入門快、免費獲取、持續更新的科研繪圖教程系列2

14 【MATLAB】科研繪圖第十四期表示散點分布的雙柱狀雙Y軸統計圖 %% 表示散點分布的雙柱狀雙Y軸統計圖%% Made by Lwcah &#xff08;公眾號&#xff1a;Lwcah&#xff09; %% 公眾號&#xff1a;Lwcah %% 知乎、B站、小紅書、抖音同名賬號:Lwcah&#xff0c;感謝關注~ %% 更多…

LeetCode二叉樹小題目

Q1將有序數組轉換為二叉搜索樹 題目大致意思就是從一個數組建立平衡的二叉搜索樹。由于數組以及進行了升序處理&#xff0c;我們只要考慮好怎么做到平衡的。平衡意味著左右子樹的高度差不能大于1。由此我們可以想著是否能用類似二分遞歸來解決。 如果left>right,直接返回nul…

IO多路轉接之epoll

目錄 一. epoll的實現原理 二. epoll的相關接口 2.1 epoll_create -- 創建epoll模型 2.2 epoll_ctl -- 對epoll模型進行控制 2.3 epoll_wait -- 等待epoll所關注的事件就緒 2.4 epoll相關接口的使用方法 三. Epoll服務器的模擬實現 3.1 EpollServer類的聲明 3.2 Epoll…

網工內推 | 美的、得力集團,包吃包住,IE認證優先,14薪

01 美的 招聘崗位&#xff1a;網絡工程師 職責描述&#xff1a; 1.負責IT網絡設備、IDC機房的日常維護巡檢、監控和管理&#xff1b; 2.負責路由、交換、防火墻、無線控制器、AP等網絡設備的開通、調整、優化升級&#xff1b; 3.負責公司OT、IT網絡規劃&#xff0c;項目實施以…

路由VRRP配置例子

拓樸如下&#xff1a; 主要配置如下&#xff1a; [R1] interface GigabitEthernet0/0/0ip address 10.1.1.1 255.255.255.0 vrrp vrid 1 virtual-ip 10.1.1.254vrrp vrid 1 priority 200vrrp vrid 1 preempt-mode timer delay 20 # interface GigabitEthernet0/0/1ip address …