HTTPS-01

HTTPS
1、超文本传输安全协议 secure
2、https默认端口号是 443 http默认是80端口

SSL/TLS
1、https是在http基础上使用了SSL/TLS来加密保温,对窃听和中间人提供合理的防护
2、SSL/TLS也可以使用在其他协议上
3、SSL[Secure Sokets Layer 安全套接层]和TLS【Tsnsport Layer Security 传输层安全协议】
4、工作在哪一层?【应用层和传输层中间握手层、记录层,不是传输层】

OpenSSL
1、是SSL/TLS协议的开源实现,支持不同平台Windows、Mac、Linux
2、常用名称
生成私钥:openssl genrsa -out mj.key
生成公钥:openssl rsa -in mj.key -pubout -out mj.pem
3、可以使用OpenSSL构建一套属于自己的CA,自己给自己颁发证书,称为:自签名证书

HTTPS的成本
1、证书的费用
2、加解密计算
3、降低了访问速度
4、包含敏感数据的请求使用HTTPS,其他的保持使用HTTP

HTTPS的通信过程

  • TCP的三次握手
  • TLS的三次连接
  • HTTP请求和响应

TLS 1.2的连接
1、Client Hello

  • TLS的版本号
  • 支持的加密套件列表【加密算法及秘钥长度】
  • 一个随机数

2、Server Hello

  • 服务器选择一种加密条件

3、Certificate

  • 服务器的公钥证书

4、Server Key Exchange

  • 用以实现ECDHE算法中的一个参数
  • ECDHE秘钥交换算法
  • 为了防止伪造,也需要服务器进行签名

5、Server Hello Done

  • Hello过程结束,告知客户端:协商部分结束
  • 客户端和服务端之间通过明文共享了
    Client Random/Server Random/Server Params
  • 客户端拿到了服务器的公钥证书、接下来,客户端会验证证书真实有效性

6、Client Key Exchange

  • 用以实现ECDHE算法的另一个参数(Client Prams)
  • 客户端、服务器都拥有了2个参数:Server Params、Client Params
  • 客户端、服务器都可以使用ECDHE算法
    生成随机秘钥串
    结合Client Random、Server Random、Pre-master Secret生成用以加密回话的会话秘钥

7、Change Cipher Spec

  • 告知服务器,之后的童话使用会话秘钥进行加密

8、Finished

  • 包含连接至今全部报文的整体校验值【摘要指】,加密之后发送给服务器
  • 这次握手协商是否成功,要以服务器是否能够正确解密该报文作为判定标准

9、Change Cipher Sepc
10、Finished

  • 到此为止,客户端、服务器都验证加密解密没问题,开始通信

你可能感兴趣的:(HTTPS-01)