zoukankan      html  css  js  c++  java
  • HTTPS协议,SSL协议及完整交互过程

    转自:https://blog.csdn.net/dfsaggsd/article/details/50910999

    SSL

    1.        安全套接字(Secure Socket Layer,SSL)协议是Web浏览器与Web服务器之间安全交换信息的协议。

    2.    SSL协议的三个特性

    Ø  保密:在握手协议中定义了会话密钥后,所有的消息都被加密。

    Ø  鉴别:可选的客户端认证,和强制的服务器端认证。

    Ø  完整性:传送的消息包括消息完整性检查(使用MAC)。

    3.    SSL的位置

    HTTPS

    1.     HTTPS基于SSL的HTTP协议。

    2.     HTTPS使用与HTTP不同的端口(,一个加密、身份验证层(HTTP与TCP之间))。

    3.     提供了身份验证与加密通信方法,被广泛用于互联网上安全敏感的通信。

    交互过程

    客户端在使用HTTPS方式与Web服务器通信时有以下几个步骤,如图所示。

    1)    客户端请求建立SSL连接,并将自己支持的一套加密规则发送给网站。

    2)    网站从中选出一组加密算法与HASH算法,并将自己的身份信息以证书的形式发回给浏览器。证书里面包含了网站地址,加密公钥,以及证书的颁发机构等信息

    3)    获得网站证书之后浏览器要做以下工作:

    Ø  验证证书的合法性

    Ø  如果证书受信任,浏览器会生成一串随机数的密码,并用证书中提供的公钥加密。

    Ø  使用约定好的HASH计算握手消息,

    Ø  使用生成的随机数对消息进行加密,最后将之前生成的所有信息发送给网站。

    4)    网站接收浏览器发来的数据之后要做以下的操作:

    Ø  使用自己的私钥将信息解密取出密码

    Ø  使用密码解密浏览器发来的握手消息,并验证HASH是否与浏览器发来的一致。

    Ø  使用密码加密一段握手消息,发送给浏览器

    5)    浏览器解密并计算握手消息的HASH,如果与服务端发来的HASH一致,此时握手结束。

    6)    使用随机密码和对称加密算法对传输的数据加密,传输。

    4.     密与HASH算法如下:

    1)     非对称加密算法:RSA,DSA/DSS,用于在握手过程中加密生成的密码。

    2)     对称加密算法:AES,RC4,3DES,用于对真正传输的数据进行加密。

    3)     HASH算法:MD5,SHA1,SHA256,验证数据的完整性。

    5.     HTTP与HTTPS的区别:

    1)     https协议需要申请证书。

    2)     http是超文本传输协议,明文传输;https使用的是具有安全性的SSL加密传输协议。

    3)     http端口80,;https端口443。

    4)     http连接简单无状态;https由SSL+HTTP协议构件的可进行加密传输、身份验证的网络协议。

  • 相关阅读:
    关于在MAC上进行 LARAVEL 环境 Homestead 安装过程记录
    js 贷款计算器
    js 实现阶乘
    js 两点间距离函数
    composer Your requirements could not be resolved to an installable set of packages
    vue 项目优化记录 持续更新...
    vue 项目打包
    vue 真机调试页面出现空白
    vue 真机调试
    谈谈-Android状态栏的编辑
  • 原文地址:https://www.cnblogs.com/coolYuan/p/8662859.html
Copyright © 2011-2022 走看看