HTTPS 证书认证流程

HTTPS通过TLS/SSL协议结合非对称加密、对称加密和散列函数确保数据安全传输。客户端使用服务端公钥加密对称密钥,服务端用私钥解密,之后双方使用对称密钥进行加密通信。数字证书认证涉及CA的公钥解密签名验证,确保证书合法性。
摘要由CSDN通过智能技术生成

前言

HTTPS 通过 TLS/SSL 协议实现 HTTP 的加密安全传输。而 TLS/SSL 协议主要依赖三种算法实现安全功能:

非对称加密:实现身份认证和密钥协商
对称加密:对数据加密
散列函数:验证信息的完整性
对称加密和非对称加密以及签名可以参考这篇文档

HTTPS 使用的是 对称加密和非对称加密 结合的方式。具体的做法是:
发送信息的一方(客户端)使用服务端的公钥加密 “对称密钥”,服务端使用私钥解密拿到 “对称密钥”。这样可以确保 “对称密钥” 的传输过程是安全的,后续就可以使用 “对称密钥” 进行数据加密传输。

数字证书认证的具体流程

在这里插入图片描述

向第三方机构 CA 提交服务器公钥、组织信息、个人信息(域名)等信息并申请认证。(实际操作中,往往需要提供私钥,它会自动从私钥中提取公钥)
CA 通过多种手段验证申请者提供信息的真实性,如组织是否存在、企业是否合法,是否拥有域名的所有权等。如信息审核通过,CA 会向申请者签发认证文件-证书。
证书包含以下信息:申请者公钥、申请者的组织信息和个人信息、签发机构 CA 的信息、有效时间、证书序列号等信息的明文,同时包含一个签名。 其中签名的产生算法:首先,使用散列函数计算公开的明文信息的信息摘要,然后,采用 CA 的私钥对信息摘要进行加密,密文即签名。
客户端向服务端发出请求时,服务端返回证书文件。
客户端读取证书中的相关的明文信息,采用相同的散列函数计算得到信息摘要,然后,利用对应 CA 的公钥解密签名数据,对比证书的信息摘要,如果一致,则可以确认证书的合法性。
客户端还会验证证书相关的域名信息、有效时间等信息; 客户端会内置信任 CA 的证书信息(包含公钥),如果 CA 不被信任,则找不到对应 CA 的证书,证书也会被判定非法。

HTTPS 工作流程

在这里插入图片描述

1.客户端发起一个 HTTPS 请求。
2.服务端把配置好的证书返回给客户端。
3.客户端验证证书:比如是否在有效期内,证书的用途是不是匹配 Client 请求的站点,是不是在 CRL 吊销列表里面,它的上一级证书是否有效等
4.客户端使用伪随机数生成对称密钥,并通过证书里服务器的公钥进行加密。后续使用该对称密钥进行传输信息。
5.服务端使用自己的私钥解密这个消息,得到对称密钥。至此,客户端和服务端都持有了相同的对称密钥。
6.服务端使用对称密钥加密“明文内容 A”,发送给客户端。
7.客户端使用对称密钥解密响应的密文,得到“明文内容 A”。
8.客户端再次发起 HTTPS 的请求,使用对称密钥加密请求的“明文内容 B”,然后服务器使用对称密钥解密密文,得到“明文内容 B”。
以此保持加密通信。

参考文档:https://github.com/ljianshu/Blog/issues/50

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值