美文网首页
HTTP——认证机制

HTTP——认证机制

作者: 章鱼要回家 | 来源:发表于2019-06-21 17:03 被阅读0次

    某些web页面只对部分人可见,对其他人不可见,这就涉及到认证机制。服务器需要对访问者的身份进行核对。核对的信息通常有:

    • 密码
    • 动态令牌:本人持有的设备内显示的一次性密码
    • 数字证书:仅限本人(终端)持有的信息
    • 生物认证:指纹、虹膜等
    • IC卡等:仅限本人持有的信息

    HTTP使用的认证方式:

    • BASIC认证(基本认证)
    • DIGEST认证(摘要认证)
    • SSL客户端认证
    • FormBase认证(基于表单认证)
    BASIC认证

    一个从HTTP/1.0就定义的认证方式。
    认证步骤:

    1. 客户端发送请求
    2. 服务器返回状态码401告知客户端需进行验证
    3. 用户ID和密码以Base64方式编码后发送
    4. 认证成功返回code200,反之返回401

    Base64编码并不是加密处理,所以这种认证方式极不安全。并且无法实现认证注销操作。基于这两点,BASIC认证并不常用。

    DIGEST认证

    从HTTP/1.1起,为了弥补BASIC认证存在的弱点,有了DIGEST认证。DIGEST认证听防止密码被窃听的保护机制,但并不存在防止用户伪装的保护机制。与BASIC认证一样,使用上不便捷,安全等级达不到使用标准。

    SSL客户端认证

    SSL客户端认证可以防止登录名和密码的盗用。借用HTTPS客户端证书完成。
    在多数情况下,SSL客户端认证不会独自完成认证,一般需要和表单认证组合形成一种双因素认证来使用。

    基于表单认证

    由于便利性及安全性的问题,HTTP协议提供的BASIC及DIGEST认证不常使用。此外,SSL客户端认证虽然具有高度的安全等级,但由于操作复杂和费用的等问题,尚未普及。
    由于HTTP本身并未能提供一个满足安全食用级别且合乎标准的认证机制,所以只能由Web应用程序各自实现基于表单的认证方式。
    客户端会向服务器上的Web应用程序发送登录信息,按登录信息的验证结果认证。根据不同的应用程序,提供的UI及认证方式也各不相同。

    Session管理及Cookie运用

    表单认证尚未有标准规范,一般使用Cookie管理Session。
    认证步骤:

    1. 客户端发送登录信息(用户ID、密码)使用HTTPS通信
    2. 服务器收到请求后给用户发放一个用以区别用户的Session ID,验证登录信息,记录用户的认证状态,并与Session ID绑定后记录在服务器。
    3. 向客户端返回响应,将Session ID写入首部字段Set-Cookie。
    4. 客户端接收Cookie即Session ID,将其保存在本地,下次向服务器发送请求时,浏览器会自动发送Cookie。

    上述过程只是表单认证的一种应用,由于缺乏规范,还有其他不同方法。此外,服务器如何保存用户提交的密码等登录信息也没有标准化。

    相关文章

      网友评论

          本文标题:HTTP——认证机制

          本文链接:https://www.haomeiwen.com/subject/qfnyqctx.html