zoukankan      html  css  js  c++  java
  • HTTP认证机制

    HTTP的询问/应答机制

    如下图:

    一个实例的图:

    1.客户端请求资源

    2.服务器对用户进行询问,在WWW-Authenticate首部中指明在哪里,如何进行认证

    3.客户端会在Authentication首部附上用户名,密码及其他信息

    4.认证完成,服务器发送200响应码;可能还会有Authentication-Info首部一起返回。

    realm:这个参数是安全域。受保护的资源往往会以安全域的形式存在,一个服务器往往有多个安全域。通过该参数,用户可以清楚自己所访问的是哪个域中的资源。

    基本认证

    Basic是最为普遍的认证机制。

    用户进行资源请求之后,服务器会返回一个401状态码和WWW-Authente首部,首部中指明了安全域;

    然后用户发送包含Authentication首部的报文,其中包含该域的用户名和密码。

    拓展:用户名和密码会被浏览器用“:”间隔起来并用base64进行编码,之后再放到Authentication首部中发送到server。

    使用代理服务器进行认证

    python实现base64

    >>> b = b64encode(a)
    >>> b
    b'bGVvOjk5OQ=='
    >>> from base64 import b64decode
    >>> b64decode(b)
    b'leo:999' 

     基本认证的优点是简单但是缺点也是简单,他并不安全,因此在需要认证时,会采用将SSL+基本认证或者摘要认证的方式。

    摘要认证

    安全的HTTP

    目前流行的HTTP安全机制为基本认证+SSL/TLS组合的解决方案。

    SSL:安全套接字层

    TLS:传输层安全,是SSL的升级版

    数字加密

    密码:对文本进行编码,使偷窥者无法识别的算法

    秘钥:改变密码行为的数字化参数

    对称秘钥加密:编码/解码使用相同的秘钥算法

    非对称秘钥加密:编码/解码使用不同的秘钥算法

    公开秘钥加密:一种能使百万计算机便捷的发送机密报文的系统

    数字签名:用来验证报文未被修改或者伪造的校验和

    数字证书:由一个可信的组织验证和签发的识别信息

    明文:原始的报文(plaintext/cleartext)

    密文:加密的报文(ciphertext)

    密码机需要正确的密码参数才能算出正确的报文。这里,密码参数就是秘钥。

    公共秘钥加密系统最为著名要数RSA了,由MIT发明的一套系统。

    公共秘钥加密系统性能没有对称秘钥加密系统来的快,所以有了混合加密系统

    先通过公共秘钥加密系统建立安全的通道,之后再采用对称加密系统来传输数据。

  • 相关阅读:
    元素类型
    PS
    盒模型
    文本样式
    WebStorm、IntelliJ IDEA、JetBrains、PhpStorm、RubyMine、PyCharm
    微信iOS WKWebview 网页开发适配指南
    js取url参数
    windows 80 端口占用
    前端Demo常用库文件链接
    MAC下利用Github 、hexo、 多说、百度统计 建立个人博客指南
  • 原文地址:https://www.cnblogs.com/leomei91/p/7678147.html
Copyright © 2011-2022 走看看