我有一些域/網站以及Bluehost的電子郵件。每當我需要支持時,他們都需要該帳戶主密碼的後4個字符。他們無法告訴我他們如何存儲密碼,所以我對他們如何安全地存儲我的密碼並仍然看到最後4個字符感到很感興趣。他們會以純文本形式看到完整的密碼嗎?
我有一些域/網站以及Bluehost的電子郵件。每當我需要支持時,他們都需要該帳戶主密碼的後4個字符。他們無法告訴我他們如何存儲密碼,所以我對他們如何安全地存儲我的密碼並仍然看到最後4個字符感到很感興趣。他們會以純文本形式看到完整的密碼嗎?
有多種可能性。
他們可能會以明文形式存儲完整密碼,並且只向支持人員顯示最後4個字符。
他們可能會兩次對密碼進行哈希處理。一旦對完整密碼進行哈希處理,然後僅對最後一個密碼進行哈希處理,則支持人員將鍵入最後四個密碼,以查看其是否與哈希值匹配。這樣做的問題在於,由於後4個字符位於單獨的哈希中,因此可以更輕鬆地強制使用完整密碼,從而減少了熵。並存儲最後4個inplaintext。顯然,如果可以訪問密碼數據庫的攻擊者知道後4位數字,那麼使用強行破解密碼就容易得多。
後4位字符存儲在其他地方發現能力的方式,例如Mike Scott在下面提到的加密。如果能夠找到解鎖這4個字符的秘密,就和純文本一樣糟糕。
所有方案都非常糟糕,大大降低了系統的安全性。不可能知道他們正在使用哪種方案,但是每種方案都缺乏對安全漏洞的考慮。如果這是您關心帳戶遭到破壞的網站,我建議您謹慎。
由於我們不是Bluehost的秘密,所以總是很難回答這樣的問題,所以我們只能猜測並做出假設。
但是,您描述的行為仍然可能,而無需存儲任何明文形式的密碼:
BlueHost建議使用強密碼的合理規則,因此他們可能僱用至少一個知道他在做什麼的人。
假設這樣,BlueHost可能正在使用 Shamir的秘密分享或該主題的變體。 Shamir的理論上是安全的,因此我不會立即得出結論(如其他答案所言),任何這樣做的方案本質上都不那麼安全。
另一方面,實現Shamir並非易事,因此,其他任何答案都可以同樣適用。由於安全性最終是關於信任的,因此,如果您對這種方案感到“不安全” ,建議您另找一個提供商!
我無法確切告訴您他們如何存儲密碼。但是從您對他們的過程的描述中,我們可以證明密碼必須以不安全的方式存儲。
我假設,當他們要求輸入最後四個字符時,他們實際上將能夠驗證正確性
這意味著他們擁有的數據將使他們能夠在短時間內驗證您告訴他們的字符。可以在蠻力攻擊中使用相同的數據來破壞密碼的後四個字符。四個字符肯定太短了,無法阻止堅定的攻擊者。
一旦攻擊者擁有最後四個字符,就可以在較早的字符上發起另一次攻擊。對於這種蠻力攻擊,密碼的後四個字符沒有任何安全性,因此充其量,您可以得到比實際短四個字符的等效密碼。
可以解決該問題。通過選擇一個安全密碼,然後附加四個完全獨立於最初選擇的密碼的附加字符來修復漏洞。如果他們只能驗證後四個字符而不是任意長度的後綴,那麼這將是安全的。
如果他們實際上能夠驗證任意長度的後綴,而不僅是四個字符的後綴,密碼存儲會更弱。這與將其存儲為明文一樣不安全,在這種情況下,您無法通過選擇更強的密碼來解決它。
您知道密碼在存儲之前應先經過哈希處理,因此您必須問自己是否天氣,為了語音授權目的,它們存儲的是後4個字符,然後在存儲之前對密碼進行哈希處理,否則只是將其存儲為純文本。
我猜是後者。
我認為這不可能,只是可能。
每次OP需要支持時,他們都會要求輸入他密碼的最後4位數字。他們對它進行加鹽和散列,並將鹽和散列以及足夠的信息存儲在特殊的支持表中以重建支持。
然後,當OP登錄(使用完整密碼)時,他們可以查看支持表並計算哈希。然後他們提交經過驗證的“支持”並否定偽造的“支持”。
這當然假設
支持是可以提交或廢除的東西在以後的時間
詢問後4個信息的過程不會洩漏信息(有人詢問您最後4個信息的資格不合格,因為我們無法可靠地擦除他們的記憶) 。
我無法想像這種情況具有商業意義。但是,如果這樣做的話,我想我應該為用戶提供一個特殊的4位“支持”密碼。
他們可以看到完整的密碼嗎?是的,他們絕對有可能會猜測密碼(如果最後4位數字是一個日期或一個單詞的一部分。如果密碼被完全散列,則知道4位數字就足以進行蠻力攻擊甚至嘗試對哈希函數進行試探以查看4位數字如何傳播回去,從而大大減少了可能的密碼範圍。
猜密碼:
** ******* ange
或者這個:
**** 1994
它他們有可能成為黑客並利用客戶支持API(如果有)來訪問用戶信息,知道4位數字甚至會使這項任務變得更加容易。
他們不應該這樣做,在任何情況下都不應給出將密碼的一部分提供給陌生人也是一個不錯的選擇(特別是,如果他被解雇了,他可能會試圖傷害用戶,並且有很多歷史例子),如果它是客戶支持的一部分。
客戶支持人員應該無法訪問原始密碼,應該通過臨時API進行操作nt做得不好(仍然支持人員不能訪問完整數據)。
此外,如果客戶支持人員要求輸入4位密碼,則不能向用戶發送警告,例如“從不輸入密碼”密碼,因為我們不這樣要求。”“因為您實際上是在要求並培訓用戶提供個人詳細信息,可能會幫助他們被網絡釣魚電子郵件捕獲。
如果他們真的想檢查用戶的機密性,則應該使用諸如SMS代碼,秘密問題或僅是電子郵件發送鍵之類的東西。
我仍然認為,發送電子郵件或SMS比花1-2分鐘執行相同操作的人要便宜得多(除非她/他確實是薪水低的人)。
如果服務真的需要檢查某人的重要身份,我可能會使用網絡攝像頭流,以便操作員可以看到用戶的臉部,然後要求其執行特定操作(例如在紙上寫一個字並顯示他回來),以防止他人使用錄製的視頻。
當然,由於隱私^^
,用戶當然不會喜歡它。正如其他人所說,此提供程序可以採用多種方法來保護密碼的“後四位數字”。但是,無論何時廣播甚至一部分密碼,您都在敞開心to讓自己的帳戶遭到破壞。似乎沒有人提到的一件事是,您輸入到聊天日誌中的密碼的後4位可能未加密。顯然,聊天記錄需要易於訪問。即使遵循基本的密碼複雜性規則,您也僅將密碼的有效長度減少了4個字符。現在想像一下,如果您在其他地方使用的密碼安全性較輕(不幸的是,很多人都這樣做)。
TL:DR這是一種荒謬的做法,我將不惜一切代價避免使用它們。
他們可能會存儲您整個密碼的哈希值,再加上最後四個字符的哈希值,然後是12個隨機生成的字符。如果它們生成隨機字符的方式與散列過程一樣安全,那麼它應該與自己存儲密碼一樣安全。