總以為自己密碼很安全?那是你還不懂這些密碼儲存的操作

2021-01-09 還能說晚安咩

大多數Web應用程式要求其用戶通過詢問用戶名和密碼來對自己進行身份驗證。他們將用戶提供的憑據與存儲在其資料庫中的數據進行比較,如果憑據匹配,則授予用戶訪問權限。聽起來不錯!但是,如果網站存儲密碼的資料庫遭到破壞,將會發生什麼?本文介紹了在資料庫中存儲密碼的各種技術。

大多數網站中有55%的網絡用戶使用相同的密碼!這意味著,如果以純文本形式存儲您的密碼的網站遭到破壞,黑客不僅可以訪問該網站上的帳戶,還可以訪問您使用相同密碼的所有社交媒體,電子郵件,論壇等帳戶!

好吧,許多人一定想知道,如果資料庫暴露給黑客,那該怎麼辦?黑客有權訪問所有信息。錯誤!有很多方法可以使黑客從資料庫中檢索密碼變得很麻煩。即使這樣,開發人員還是傾向於忽略基本準則,而是以純文本形式存儲密碼。有超過30%的網站以純文本形式存儲您的密碼(也包括一些知名網站)。如果網站以純文本形式存儲您的密碼,那麼無論您選擇多強的密碼,都不安全!

在資料庫中存儲純文本密碼是一種罪過:可能還會有人認為,如果不是純文本,那麼我們必須對密碼進行加密然後再存儲。這也是一個可怕的想法。加密功能提供輸入和輸出之間的一對一映射,並且它們始終是可逆的。如果黑客獲得了密鑰,他將能夠解密密碼。更好的方法是使用單向加密哈希函數。散列函數在輸入和輸出之間提供多對一映射,實際上不可能反轉輸出。好的加密哈希函數具有較少的衝突(即,對於函數的不同輸入值,很難獲得相同的輸出)。由於鴿洞原理,無法完全避免碰撞。對於哈希密碼,我們可以假設哈希函數將生成唯一的輸出,即對於沒有兩個不同的密碼,我們將獲得相同的哈希值。

一些流行的加密哈希函數是MD5和SHA1。代替將純文本密碼存儲在資料庫中,一種方法是存儲密碼的哈希。您可能會想,如果我們無法從哈希中找回實際密碼,那麼我們將如何驗證用戶輸入的憑據?很簡單,對用戶輸入的密碼應用相同的哈希函數,然後將其與資料庫中存儲的哈希進行比較。如果兩個哈希都匹配,則對用戶進行身份驗證(因為相同輸入的哈希將提供相同的輸出)。現在,如果攻擊者能夠訪問資料庫,則他將只能查看哈希輸出,而不能查看實際密碼。

使用加密哈希功能比存儲純文本密碼更好:黑客是聰明人,一旦他們知道開發人員正在存儲哈希密碼,便會預先計算大量單詞(從常用單詞列表或詞典單詞中)的哈希值。他們創建了一個單詞表及其相應的哈希表。該表被稱為Rainbow Table,可隨時在線獲得。他們可以使用此表通過比較從資料庫獲得的哈希值來反向查找實際密碼。因此,擁有一個強大的密碼非常重要,因為密碼出現在單詞列表中的可能性越來越小。

隨著GPU和CUDA,OpenCL庫的引入,處理能力大大提高。快速的GPU可以在一秒鐘內生成數百萬個MD5 / SHA1哈希。因此,黑客可以通過暴力破解各種可能的組合輕鬆地生成大量哈希,並將其與存儲在資料庫中的哈希進行比較以提取實際密碼。

甚至哈希密碼也不安全!驚訝嗎不要失去希望!開發人員仍然可以採取一些措施來防止您的密碼被黑客竊取。加入一些鹽使密碼更美味!鹽是隨機數據,在將其作為哈希函數的輸入發送之前,已與您的密碼連接在一起。例如:如果您的密碼是abc,鹽是!ZaP0#8,則hashFunction('abc!ZaP0#8')的結果將存儲在資料庫中,而不是hashFunction('abc')。因此,彩虹表攻擊現在將不再有效,因為彩虹表包含「 abc!ZaP0#8」散列的概率很小(因為通常彩虹表是由常用詞,字典詞等構成的)。鹽不存儲在資料庫中,而僅存在於外部用戶無法訪問的應用程式配置文件中。獲得對源文件的訪問比獲得對資料庫的訪問困難。上述加鹽方法是靜態的。我們為所有密碼設置了一個固定的位數。要驗證用戶身份,請先將固定鹽連接到用戶提供的輸入(密碼),然後將值傳遞給哈希函數,然後將其與資料庫中存儲的值進行比較。但是,這種方法仍然容易受到暴力攻擊,如果攻擊者能夠獲得靜態鹽,則可以通過將鹽串聯在每個單詞中來使用舊的攻擊方法。

更好的方法是使用動態鹽。對於每個用戶,加密強度高的隨機字符串生成器都會生成新的鹽。用戶輸入的密碼與隨機生成的鹽和靜態鹽串聯在一起。連接的字符串作為哈希函數的輸入傳遞。獲得的結果存儲在資料庫中。由於動態鹽對於不同用戶而言是不同的,因此需要將其存儲在資料庫中。當要驗證用戶身份時,首先從資料庫中獲取該用戶的動態鹽的值,然後將其與用戶提供的輸入和靜態鹽連接起來。將結果與存儲在資料庫中的哈希進行比較。

如果資料庫遭到入侵,黑客不僅會獲取您的密碼哈希,還會獲取所使用的動態鹽。您可能想知道,如果攻擊者擁有動態鹽,那麼動態鹽比靜態鹽有什麼優勢?即使攻擊者擁有動態鹽,他也需要為資料庫中存在的每個用戶(根據動態鹽)創建一個新的哈希表(或Rainbow表)。這比為所有用戶只創建一張表要昂貴得多。

相關焦點

  • 你以為越複雜的密碼越安全?小心那些錯誤認知
    你以為越複雜的密碼越安全?例如,當被問到『是否越複雜的密碼也就越安全』這一問題時,相信絕大多數的人會回答是,然而答案卻是否定的(怎麼會!)。 這樣的誤區你有嗎?   另一方面,隨著網絡社會的快速發展,帳號多了密碼也隨之增多,為了方便記憶,很多人都會為不同的帳號設置相同或相似的密碼,這些使用相似密碼的帳號,其安全隱患無疑是顯而易見的
  • 未來存錢指南,密碼安全與身份認證漫談
    最近春節,已是個大孩子的你,放鞭炮之類的娛樂估計也玩不了,所以最熱衷的事情,不外乎葛優躺搶紅包集五福了。人緣夠好,說不定也達成了某個「小目標」。不管攢到的是現金還是電子紅包,你總需要把這些錢放在一個地方,比如銀行、支付寶、理財或者基金帳戶甚至是保險箱。無一例外,最終大家都繞不開一樣東西:密碼。是的,密碼不僅是我們保障財產安全的大門,也是保護個人隱私的工具。
  • 你的密碼被我猜到了!
    隨著科技的不斷進步,各種APP、銀行密碼、某寶等註冊,信息安全的重要性更加凸顯重要。而你的註冊的各種信息密碼是否安全呢?1.秋:這位先生,你的這方子上的就缺一味海馬,但是明天就可以到貨。餘:那你先把別的抓上,海馬以後再說。2.某:先生不喝酒嗎?餘:有阿司匹林嗎?
  • 微信又有騷操作?摩斯密碼在線密聊,再也不怕秘密被發現
    你們也知道小雷我上班摸魚已成習慣,刷個朋友圈、刷個微博、找朋友吹個水那都是基操了。今天跟朋友吹水的時候發生了一件令人懵逼的事。那就是本來聊得好好的,他突然給我發來了一段神秘的代碼,啊這就讓我瞬間愣住了,心裡直呼:什麼鬼!
  • 帳戶密碼被猜中?教你一份密碼設置指南丨大東話安全
    大東:某國領導人的個人推特帳戶自他2017年1月就任總統以來,就一直非常活躍,但也數次爆出密碼被安全研究員猜中。小白:某國領導人的推特帳號,這也太不小心了。大東:不僅如此,猜中密碼的研究人員還透露,某國領導人沒有為此帳戶啟用兩步驗證。也就是說,猜出密碼的任何人都能夠登錄帳戶、做出更改、發送自己想推的任何言論。小白:太危險了!
  • 原來登錄密碼不是密碼?《密碼法》頒布一周年,這些內容你需要了解!
    提到「密碼」你會想到什麼……然而你知道嗎?那到底什麼是密碼?《密碼法》與我們的社會生活有何關聯?密碼分為核心密碼、普通密碼和商用密碼。核心密碼、普通密碼用於保護國家秘密信息,屬於國家秘密。商用密碼用於保護不屬於國家秘密的信息。公民、法人和其他組織可以依法使用商用密碼保護網絡與信息安全。
  • 她是「密碼女王」,破譯美國最安全密碼,獎金711萬卻不出國科研
    談及密碼,你我並不陌生。在日常生活中,保護著人民群眾的信息、財產的安全。因而,密碼都一直在破譯與更新。那一段時間裡,王小雲自學密碼學同時也帶研究生,都以為她會分身乏力的時候,她交上了一張令他人滿意的答卷。
  • 你的密碼是多麼容易被我猜到,好了本文以後設置密碼無煩惱
    建設公司內部的信息系統時,為了員工更方便的記憶自己的用戶名,統一採取員工工號作為用戶名,又為了員工登陸體驗,很多業務系統都取消了驗證碼,如此,用戶事實上只要記一個密碼就可以登錄信息系統了,但仍然有很多用戶將自己的密碼設置成123456、12345678、Ab123456這樣的簡單密碼。
  • iPhone鎖屏密碼可隨意破解,還安全嗎?
    蘋果還聲明表示「我們並沒有留後門!」言外之意就是他們自己也破解不了。據報導稱,蘋果為了堅定自己的立場,已經召集了好幾名高級顧問為與美國司法部進行的法律戰做準備。雖說蘋果此次的表現依舊很剛,但事情似乎也沒那麼複雜,有安全專家表示,其實FBI有能力在無需蘋果幫助的情況下對iPhone進行解鎖。
  • 600萬密碼洩露之後,我們該如何保護自己的密碼?
    目前大麥網已確認用戶信息洩露消息的真實性,並緊急發布公告,通知大麥網用戶及時修改自己的密碼,另外也提前預防多出相同密碼造成的撞庫風險。什麼是拖庫? 拖庫意味著什麼?拖庫,又叫「脫褲」,往往是由於一些小的網站伺服器安全措施不到位,被黑客入侵,拖出資料庫,導出用戶名及密碼,然後在別的地方使用。例如以一定的價格售賣給網上的「好事者」。
  • 揭秘-你的密碼是如何被盜的
    網站洩密 這個是很多人都容易犯的錯,比如你註冊一些小網站,然後這個網站後臺數據洩露,就會把你在該網註冊的相關信息洩密 比如你在那個網站註冊的帳號密碼洩密,黑客們就會舉一反三的用這個帳號關聯到你的QQ、YY、甚至支付寶等登陸 我的建議就是不要隨便在小網站註冊,就算要註冊,也不要把密碼設置得和QQ
  • 密碼太多不好記?這款「一個密碼」APP打救你
    如果這些ID都用同一個密碼,顯然是不安全的;但如果設置了不同的密碼,那對密碼的記憶或者管理,又是個大挑戰。怎麼辦?這就來為大家介紹一款號稱可以解決問題的APP「一個密碼」,一起來看看吧。一個密碼軟體版本:1.7.1Android軟體立即查看這款一個密碼APP來自於個人開發者,體積只有2M多,申請了4個權限,還是比較乾淨的。
  • 蘋果手機怎麼設置鎖屏密碼?教你一招解決手機安全問題
    如果沒有鎖屏密碼的保護,無疑是公開了自己的個人隱私和財產安全,因為現在手機裡的很多應用都支持行動支付。為了保護大家的手機安全,今天小編就為大家介紹一下:蘋果手機如何設置鎖屏密碼!教你一招解決手機安全問題。第一步:打開你的蘋果手機,找到一個齒輪圖標,這就是我們手機的【設置】管理功能。手機裡的大部分功能都能在這裡進行管理設置。
  • 都說量子計算下密碼都是渣,所以清華突破後量子密碼硬體加速技術
    可以這麼說,現有的一切傳統計算機在量子計算機(由當前理論研究推演)面前都是小弟,一切密碼——哪怕你再複雜位數再長——在量子計算下都會被秒成渣。顯然,在這一點,我們不謀而合,都不願意看到這一幕:誰都不希望自己的密碼變得透明,當你的密碼對外人(特別是別有用心的人、對手、敵人的時候)是透明的時候,你就不再有密碼,你的一切都可能拱手於人,更遑論一個企業一個國家?
  • 《TNT》帳號安全有保障 二級密碼功能上線
    帳號安全是玩家們快樂遊戲的前提,這也是《TNT》一直相當重視的問題。10月31日,《TNT》在遊戲中加入了二級密碼功能,只需設置成功就能讓安全指數全面上升,有效避免遊戲內不必要的財產損失。設置密碼 鎖定角色有保障自10月31日起,玩家可以在進入《TNT》後設置長度為6位的二級密碼。
  • 蘋果id密碼忘了怎麼辦?AppleID密碼找回、重置方法
    很多人用了很久Android手機之後用回iPhone,發現蘋果ID的密碼給忘記了,這可該怎麼辦呢?蘋果id密碼忘了怎麼辦?蘋果對於AppleID有專門的保護機制,也提供了專業的密碼管理系統。如果忘記AppleID密碼,可以到AppleID管理頁面進行重置密碼操作。具體操作如下:前往AppleID帳戶頁面,然後點按「忘記了AppleID或密碼」。
  • 無線路由器的無線安全密碼忘記了怎麼辦
    無線路由器的無線網密碼修改需要知道無線路由器登錄管理密碼,只要登錄無線路由器界面修改無線安全密碼就很簡單了。不同路由器,默認管理員密碼也不一樣,請以你自己路由器底部標籤上給出的信息為準。 二、重置路由器 1、目前市面的家用無線路由器,基本上都是沒有默認管理員密碼了。路由器底部標籤上,並沒有給出默認的管理員密碼,如下圖所示。
  • 那些容易猜到的密碼,你中招了嗎?-虎嗅網
    構造一個好用的密碼實在不容易。在理想情況下,它必須很好記又獨特。不幸的是,世俗卻束縛了我們思維的翅膀,所以有時我們以為獨一無二的密碼,同時也是其他人的獨一無二。英國國家網絡安全中心公布了「我是不是被騙了?」
  • 為了安全,必須要更改TP-LINK路由器密碼
    但有不少用戶還是使用了TP-LINK路由器默認的帳戶和密碼,而且兩者都是最簡單的「admin」。假如使用TP-LINK路由器不對默認的帳戶或者密碼進行更改,簡直就是完全暴露了路由的安全問題。只要破解連接了路由,就能知道路由的IP位址192.168.1.1,然後就能通過默認的帳號密碼登錄路由器中,修改或者監控你的路由使用狀況,從而帶來上網安全。
  • 密碼箱怎麼設置自己密碼 密碼箱密碼正確打不開怎麼辦
    密碼箱是出行的必備物品,不僅可以盛放衣物,還能夠上鎖保障物品的安全,因此是非常受人歡迎的。不過,由於日常生活中需要記住的密碼太多了,因此人們常常會忘記密碼箱的密碼。下面就和小編一起來看看密碼箱的密碼忘記了怎麼打開,順便來說說密碼箱怎麼設置自己密碼以及密碼箱密碼正確打不開怎麼辦。