第八章:确认访问用户的身份认证

  1. 何为认证
    计算机本身无法判断坐在显示器前的使用者的身份。进一步说,也无法确认网络的那头究竟有谁。可见,为了弄清究竟是谁在访问服务器,就得让对方的客户端自报家门。就算正在访问服务器的对方声称自己是ueno,身份是否属实这点却也无从谈起。为确认 ueno 本人是否真的具有访问系统的权限,就需要核对“登录者本人才知道的信息”、“登录者本人才会有的信息”。
    核对的信息:
    • 密码 :只有本人才会知道的字符串信息;
    • 动态令牌:仅限本人持有的设备内显示的一次性密码;
    • 数字证书:仅限本人(终端)持有的信息;
    • 生物认证:指纹和虹膜等本人的生理信息;
    • IC 卡等:仅限本人持有的信息;
  2. HTTP 使用的认证方式
    • BASIC 认证(基本认证)
    • DIGEST 认证(摘要认证)
    • SSL 客户端认证
    • FormBase 认证(基于表单认证)
  3. BASIC 认证
    在这里插入图片描述
    缺点:
    1. 在 HTTP 等非加密通信的线路上进行 BASIC 认证的过程中,如果被人窃听,被盗的可能性极高;
    2. 一般的浏览器却无法实现认证注销操作;
      BASIC 认证使用上不够便捷灵活,且达不到多数 Web 网站期望的安全性等级,因此它并不常用。
  4. DIGEST 认证
    质询响应方式 : 一开始一方会先发送认证要求给另一方,接着使用从另一方那接收到的质询码计算生成响应码。最后将响应码返回给对方进行认证的方式;
    在这里插入图片描述
    发送给对方的只是响应摘要 及由质询码产生的计算结果,所以比起 BASIC 认证,密码泄露的可能性就降低了。
    在这里插入图片描述
    使用上不那么便捷灵活,且仍达不到多数 Web 网站对高度安全等级的追求标准。
  5. SSL 客户端认证
    SSL 客户端认证采用双因素认证: 在多数情况下,SSL 客户端认证不会仅依靠证书完成认证,一般会和基于表单认证(稍后讲解)组合形成一种双因素认证(Two-factorauthentication)来使用。所谓双因素认证就是指,认证过程中不仅需要密码这一个因素,还需要申请认证者提供其他持有信息,从而作为另一个因素,与其组合使用的认证方式。
    第一个认证因素的 SSL 客户端证书用来认证客户端计算机,另一个认证因素的密码则用来确定这是用户本人的行为。
  6. 基于表单认证
    认证多半为基于表单认证 ?
    1. 由于使用上的便利性及安全性问题,HTTP 协议标准提供的 BASIC 认证和 DIGEST 认证几乎不怎么使用。
    2. SSL 客户端认证虽然具有高度的安全等级,但因为导入及维持费用等问题,还尚未普及。
      在这里插入图片描述
  7. 一种安全的保存方法是,先利用给密码加盐(salt)的方式增加额外信息,再使用散列(hash)函数计算出散列值后保存。但是我们也经常看到直接保存明文密码的做法,而这样的做法具有导致密码泄露的风险。
    在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/ChrisSen/article/details/88293177