密码学协议详解
1. 密码学协议概述
密码学协议是两方或多方之间为实现特定安全目标而交换一系列消息所定义的规则。其中,两个重要的目标分别是密钥协商(各方希望通过交换公开可见的消息来就一个秘密值达成一致)和实体认证(一方希望向另一方证明自己的身份)。在实际应用中,这两个目标通常结合为认证密钥协商。
2. 密码相关内容
2.1 用户名/密码协议
用户名/密码协议是最简单且应用最广泛的认证协议。在该协议中,应用程序会要求用户输入用户名和对应的密码以进行身份验证。用户名可能是公开可知的,如用户的电子邮件地址,但密码应保密。该协议可用于本地(如登录设备的操作系统)或远程(如在Web应用中进行客户端认证)。在远程认证时,密码应仅通过加密连接传输,以防止被窃听者获取。
以下是Web应用中用户名/密码协议的工作流程:
1. 当Web应用发出请求时,Web浏览器会打开一个输入表单,用户可在其中输入用户名和密码。
2. 这对信息会通过HTTPS传输到Web服务器。
3. 服务器接收到用户名/密码对后,以用户名作为请求查询内部数据库。
4. 如果用户名存在于数据库中,会返回该密码的哈希值 $h_{UN}$。
5. 服务器计算接收到的密码的哈希值 $h’$,并与 $h_{UN}$ 进行比较。
6. 如果两个值匹配,则授予用户对请求资源的访问权限。
为了提高安全性,密码不应以明文形式存储,而应只保存其哈希值。简单的哈希方式 $h_{UN} \leftarrow H(password)$ 容易受到字典攻击,因此可使用盐值来增强安全性。具体做法是在数据库中添加一个盐字段,为每个用户名
超级会员免费看
订阅专栏 解锁全文
3120

被折叠的 条评论
为什么被折叠?



