我能想像到的幾乎每個Web服務都讓用戶選擇密碼。為什麼是這樣?系統無法選擇更好的密碼嗎?不必太複雜。參見此答案。用戶會發現自己的選擇更方便嗎?在為用戶選擇密碼時,您知道熵,而不是施加一些限制以 阻止他們使用低熵方案。
為什麼讓用戶選擇密碼?
我能想像到的幾乎每個Web服務都讓用戶選擇密碼。為什麼是這樣?系統無法選擇更好的密碼嗎?不必太複雜。參見此答案。用戶會發現自己的選擇更方便嗎?在為用戶選擇密碼時,您知道熵,而不是施加一些限制以 阻止他們使用低熵方案。
為什麼讓用戶選擇密碼?
為什麼呢?
讓我暫時忽略該問題,並回答您隱含的問題:應該嗎?
也就是說,我們是否應該繼續讓用戶創建自己的密碼(通常是弱密碼),而不是只是讓系統為他們生成一個強密碼?
好吧,我有一個有爭議的意見,即這裡存在一個非常強大的折衷方案-擁有安全的密碼,並且一方面知道(如您所指出的)密碼的安全性,並且另一方面是用戶對安全的感覺。在某種程度上“可用性”。
我認為這種安全感涉及多個方面:一些用戶希望確保自己擁有強密碼(例如,通過密碼管理器或diceware);一些用戶想選擇一個簡單的密碼;有些用戶希望在任何地方都使用相同的密碼。是的,無論出於何種原因,許多用戶只是簡單地期望即可設置密碼-因此,除了任何特定原因外,您仍然需要進行再教育之戰,這遠非易事。
此外,別忘了,一旦您為用戶獲得了一個很好的強密碼,(通常是非技術性的)用戶仍然需要弄清楚該怎麼做的,即使密碼短語也很難記住在前一打左右後,或者如果您每6個月只使用一次...非技術用戶很可能將其保存在桌面上的Word文檔或電子郵件中。 (當然,將OS密碼寫在屏幕上的便箋上)。
現在,不要輕視這些原因或使用弱密碼的這些原因-我們安全行業多年來為簡單人士創建了此方案。但這實際上歸結為:您的網站需要多安全。用戶可以決定承擔多少風險,其中多少是應該從用戶手中擺脫的系統風險。
最重要的是:是的,我認為大多數具有不可忽略的安全性要求的網站都應該提供密碼/口令生成。根據配置文件和體系結構,在註冊帳戶(或更改密碼等)時,您可以提供3個選項-只需確保僅在警告用戶不要進行網上沖浪後才顯示密碼:
事實上,這是我一段時間以來一直在建議的內容(具體取決於具體要求...)。
回到您最初的問題,為什麼以上操作沒有完成?教育不當(絕大多數站點仍然具有錯誤的密碼策略和建議);可能只是缺乏更好解決方案的意識。
是的,這是為什麼密碼很爛。 :-)
獲取用戶密碼
我僅有幾次看到設置用戶密碼的系統,它是通過電子郵件發送給用戶的(明文形式) ),這顯然是個壞主意[*](SMS,郵件等並沒有那麼好)。
因此創建帳戶時會留下顯示密碼的提示(這也可能是一個不好的主意)因為肩膀衝浪的想法)。我認為這將導致許多用戶忽略此點,或者沒有意識到這一點很重要。用戶在自己創建密碼時會習慣於記住/寫下/存儲密碼,但是在創建帳戶後,他們並不習慣於閱讀某些頁面;許多人很可能會忽略它。
[*],因為任何有權訪問用戶郵件帳戶(強行,用戶忘記註銷等)的人都將無權訪問。如果攻擊者使用密碼重置來獲取訪問權限,則用戶至少會注意到這一點。 sub>
讓用戶記住密碼
用戶需要知道他們的密碼。通常,他們為此有兩個選項(內存,將其寫下或存儲在文件或密碼管理器中)。主要的方法之一(內存)對於您的方法[*]不可行,我認為這是網站不為用戶生成密碼的主要原因。
[*]借助易於記憶的生成密碼,用戶仍然很難記住自己選擇的密碼。 sub>
用戶體驗
安全性不是大多數Web服務的主要業務。通常,讓用戶感到高興是很重要的,如果許多用戶無法選擇自己的密碼,他們也不會非常高興(因為他們不想記住生成的密碼,並且不想寫下來,他們也願意這樣做)不想使用密碼管理器)。用戶只想使用一項服務,而任何使其變得更複雜的事情都可能導致一定比例的人使用競爭性服務。
結論
密碼始終是可用性和安全性之間的一種折衷,不允許用戶選擇密碼會降低大多數服務的可用性(而且由於實際將生成的密碼提供給用戶的問題,它甚至可能無法添加所有密碼)那麼安全)。
組織希望用戶負責。
如果用戶選擇了密碼,則可以責怪他們選擇了錯誤的密碼。
不幸的是,在現實世界中,組織可能不得不更加擔心似乎要為入侵承擔一些責任,而不是確保它們不會發生。
用戶希望選擇自己能記住的東西
許多用戶不會寫下他們的密碼(不管這是一個好主意)。他們喜歡選擇自己認為可以記住的東西。 (這對於成千上萬個不需要密碼但會迫使用戶選擇一個密碼的站點尤為重要。)
一個受訪者回答了正確的答案,但沒有足夠的擴展,所以我會這樣做。
您是從以計算機或IT為中心的角度提出問題的。但是,為什麼它存在呢? 為客戶服務。讓我重複一遍:客戶不是在為您服務,而是在那裡做他們需要您做的事情。
因此請牢記這一點,讓我們重溫這個問題:為什麼我們仍然允許客戶選擇自己的密碼?我們為什麼不為客戶設置密碼?
因為如果我們將密碼強加給客戶,您認為他們會怎麼做?我們強加給他們一些難忘的東西,他們以後需要知道。我保證,他們將抓住一個便利貼並寫下該密碼。
您失敗了。在紙上寫下的密碼是安全失敗。 您永遠都不想發生這種情況。在這種情況下,在責怪客戶之前,您就是那些迫使他們使用自己無法創建的密碼的人。他們沒有機會紀念它。您告訴他們“記住'F82 $ fVq9',不要寫下來。”作為客戶,我的第一個反應是“ F ***您”。公司不會告訴客戶該怎麼做。客戶將找到叛逆的方法,包括寫下您的隨機密碼。不要與人性作鬥爭。您。將。丟失。
這就是我們讓客戶選擇密碼的原因。如果您的網站值得花錢,那麼今天大多數網站會這樣做,它會檢查所選的密碼強度。這樣可以確保密碼長度為8個字符,並包含兩位數字,一個大寫字符和一個符號。
您仍然沒有達到最初的目標,因為當今的計算機可以在幾秒鐘內暴力破解8個字符的密碼。
您想要客戶選擇的真正的密碼安全性,而您又對強度感到滿意嗎?您可以在這裡: https://xkcd.com/936/
這樣考慮,如果您為他們選擇用戶的密碼,他們會忘記它,而必須使用密碼重置系統。
“忘記密碼”通常不如密碼,這樣可以使密碼更安全,但導致更多密碼重置會降低整個系統的安全性,因為很難檢測到欺詐性的“忘記密碼”嘗試。
編輯:我假設您沒有不能為銀行或核武器倉庫工作。如果這樣做,請無視我的建議。
我沒有選擇自己的密碼。我使用的密碼管理器會為我生成隨機密碼。
但是,大多數網站都是基於用戶會記住其密碼的想法。用戶記住自己選擇的密碼比分配給他們的密碼要容易得多。同樣,實際上,用戶通常會在許多站點上使用相同的密碼,儘管小字樣會告訴他們不要這樣做,但是註冊過程無法阻止他們。
我強烈感到“記住您的密碼”密碼”模型存在缺陷,幾乎每個人都可以使用密碼管理器。但這不是現實。我沒有數字,但是即使是我的精通技術的朋友中,使用密碼管理器進行所有操作的情況也很少。
在許多情況下,由於系統用戶不是對系統的威脅,因此希望用戶成為自己的安全監視程序。對系統的威脅是管理員和員工級的操作員,這些人員和職位的管理者由於職位的原因而提高了系統內的曝光度和權限/權利。從他自己的比特和字節中產生400萬美元並添加到他的帳戶中。他或扮演他的人只能真正破壞自己的帳戶。真正的威脅來自內部的特權/權利較高的人。如果James Random Person的密碼為“ xxxx22”,並且他的帳戶被盜,那是他的責任,而不是你的責任。
是的,安全的密碼/密碼是一個好主意。但是,一旦您開始強迫用戶使用它們,用戶就會感到沮喪,而用戶將離開。
儘管這個問題已經有了十億個答案,但最近針對瀏覽器的建議卻值得一提。是的,當前的密碼解決方案很糟糕。但是,答案並不是更好地設置密碼。答案是放棄密碼。 W3C和Fido提出了一項新建議,以推動對外部用戶身份驗證的本機瀏覽器支持-硬件密鑰,生物特徵識別等。這裡只是幾篇文章:
https:// techcrunch .com / 2018/04/10 / fido-alliance-and-w3c-have-a-plan-to-kill-the-password / amp / https://fidoalliance.org/fido-聯盟和W3C在全球努力中實現了主要標準的里程碑是在Web上實現更簡單,更強的身份驗證/
顯然,這是一個漫長的過程從普遍使用的方式。還值得一提的是,像這樣的登錄選項完全替換密碼將需要很長時間(如果有的話)。密碼將存在很長時間。但是,如果我要構建一個需要一流用戶安全性的系統,那麼我就不會麻煩地提供備用的密碼生成選項。我將僅支持當前的密碼最佳實踐,並且在該技術可行後,將為上述替代身份驗證方案提供支持。
其他人以前曾提到過-但我認為希望用戶可以控制其帳戶的安全性。
話雖如此,我同意許多密碼不是很安全,應該由客戶端檢查(因此我們不會通過網絡發送原始密碼)檢查器的複雜性,以及密碼是否未得分足夠高,我們要求用戶創建一個更強的密碼。
即使密碼進行了必要的更改,用戶仍在提出更改,就像您所做的一樣總是在學校裡聽到“如果您寫的話,您就不會忘記它”,我認為在這種情況下創建密碼也是如此。
非主題,但我強烈建議 1Password供那些忘記密碼的用戶使用。
為用戶選擇密碼時,您會了解熵,而不是施加一些限制來防止他們使用低熵方案
在兩全其美的情況下,您還可以在他們輸入所選密碼時計算熵(或您認為合適的任何機制)。這是許多註冊頁面上使用的機制:
此方法有很多優點(用戶可以選擇他的密碼,他知道這是一個“好”或“壞”的密碼,...)。
只需確保您對構成好密碼和壞密碼的理解是有意義的,並且實施是對密碼管理器友好的(我只是討厭這些以“天知道的東西”的名字破壞了Lastpass的網站)
好,密碼太爛了。實際上,在將密碼作為計算機之前的訪問控制方法時,我發現比早期設計良好的密碼系統更能證明早期密碼失敗的證據。不幸的是,我看到了三種方法可以“解決”該問題。
成本風險分析:確定風險很小且成本很高,因此什麼也不做(有一個從這個角度來看,這個問題有很多答案。)
更好的密碼:您的問題的核心是尋找一種實現此目的的方法。不幸的是,這既困難又昂貴(機會成本最少)。例如,我花了幾個月的時間來努力設置一個密碼生成器,該密碼生成器使用pam集成到計算機的登錄密碼到期中。我沒有取得重大進展,並且已從我選擇的發行版中刪除了一些基本組件來解決錯誤。我的電腦,然後再推薦給我的老闆。我沒有找到任何人可以賣給我測試。希望這種情況在去年有所改變,但是上次我檢查它們在美國的可用性比以前更低。
我發現這種情況令人沮喪。