浏览器向 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
My Blog: https://choson.lifenet.com.tw/


<<:  LINE BOT聊天机器人-查询天气资讯

>>:  使用javascript动态代入资讯至下拉选单(drop-down menu)

Day 30 敏捷开发最後的结果会是什麽?

敏捷开发最後的结果会是什麽? 最後我想跟大家分享一段小故事,故事大约是这样的: 男主角丹,因为车祸的...

JS 38 - 实作 Tab 页签

大家好! 样式 .tabs { width: 100%; max-width: 60em; disp...

[day-9] 认识Python的基本资料型别!

认识Python的基本资料型别吧!   每个程序语言都有各自独特的资料型别,让我们快速认识Pytho...

Day 9— 物品借用纪录系统 (1) 基础建构

今天我们要来制作新的专题:物品借用纪录微服务! 在学校,尤其是行政处室,最常出现的状况应该就是「借物...

创建App-简单更改密码&教师代码

创建App-简单更改密码&教师代码 由於App的简单更改密码&教师代码的延伸界面没有...