分類
CISSP

瀏覽器向 Web 服務器提交用戶密碼最可行的方法-原始密碼(Raw password )

“原始密碼(Raw password)”和“散列密碼(hashed password)”是可行的解決方案。但是,HTTPS 下的原始密碼更常用,例如 Google 和 Facebook。以下原因解釋了為什麼原始密碼更可行,因為信息安全應該與業務需求保持一致:
. 在瀏覽器中,散列密碼是通過自定義 JavaScript 模塊計算的;如果客戶關閉 JavaScript 功能或防病毒軟件干擾操作,則無法正常工作。這將對市場份額、客戶滿意度和客戶服務成本產生負面影響。
. 如果攻擊者可以破壞 HTTPS 連接,發送原始密碼或散列密碼沒有任何區別,因為他可以竊取訪問令牌並劫持會話。剩餘風險幾乎相同。
. 此外,發送散列密碼意味著用戶的密碼必須被散列或加鹽,並且變得不可逆轉。但是,有些網站可能需要支持“找回密碼”功能,對密碼進行加密,客戶可以查詢自己忘記的密碼。

鹽密碼(Salted Password)
加鹽密碼是指根據原始密碼和鹽的串聯計算得出的哈希值,鹽是“作為輔助輸入合併到單向或加密函數中的隨機變量,用於派生密碼驗證數據”。(ISO/IEC 11770-4:2017) 加鹽通常在服務器端生成並且對客戶端保密,因此客戶端不可能提交加鹽密碼。

電子簽名(Digital Signature)
數字簽名在技術上是可行的,但對於電子商務網站要求客戶安裝數字證書進行身份驗證來說實際上是不可行的。
參考
為什麼客戶端對密碼的散列如此不常見?
為什麼幾乎沒有網頁在提交之前在客戶端散列密碼(並在服務器上再次散列它們),以“防止”密碼重用?
你(可能)做錯了登錄系統

資料來源: Wentz Wu QOTD-202104018

PS:此文章經過作者同意刊登 並且授權可以翻譯成中文

作者: stevencho

從事資訊工作二十多年,對資安極具熱情,在 Network Security, Endpoint Security, 及 Mobile Security 等資安領域有超過十年以 上的經驗。曾任職精誠資訊資安產品代理部門技術經理,負責 資安產品之技術支援與大型企業導入專案。此外,他也取得了 ISO 27001 主導稽核員證書及 Check Point 的 CCSA 與 CCSE 等防 火牆產品等專業證照。此外,平常除了喜歡透過ITHelp平台及個人部落格分享文章,亦常擔任社群活動主辦者及志工,連結資安同好聯誼及共好學習,並協助對於CISSP有興趣的同學與同好準備認證考試。