SSL/TLS协议运行机制
问题
不采用TLS协议带来的后果
- 信息有可能被篡改
- 信息可能被暴露
- 可能被冒充身份
协议运行机制
第一步:客户端:协议版本号 + 加密请求协商 + 随机数
第二步:服务端:协商结果 + 证书(包含服务器的公钥+证书基本信息)+ 随机数
第三步:客户端:验证证书的有效性 + 一个随机数(pre-master key、将pre-master key使用公钥加密)+ hash(协商内容)
第四步:服务端:hash(协商内容)
加解密过程
- 根据三个随机数生成会话密钥
- 会话密钥加密对话内容
- 公钥加密会话密钥
整个握手协商的过程都是不加密的,所以第三步产生的随机数是需要使用公钥进行加密的
浏览器是如何检查证书是否可信任的?
- 用户申请CA证书的流程
- 用户需要把自己的公钥、身份信息、公司材料提交给CA机构进行申请证书
- CA机构拿到用户的这些信息,CA机构对这些信息进行摘要,并使用私钥进行签名
- 并生成一个证书(key、pem和cert文件),证书中包含CA机构的公钥
- 然后服务器上进行配置
- 浏览器验证CA证书的流程
- 浏览器拿到服务器的证书后,检查证书的有效期
- 浏览器CA机构的公钥对签名信息进行解密获得信息摘要
- 最后判断这两个摘要是否一致就可以了
- 浏览器如何获取CA机构的公钥
- 服务器出了需要部署CA颁发的证书外,还需要部署CA机构的证书,此证书包含CA机构的公钥信息
- 证明CA机构的合法性
- 操作系统中会内置一些CA机构的证书
- 如何判断是否为伪造的CA机构
- 可以沿着证书链追溯到根证书,中间CA机构是有根CA机构颁发的
- 如果某个CA机构根证书在操作系统中,则认为是合法的
CA机构颁发的证书中包含:中间CA机构的证书(公钥、证书基本信息)、服务器的证书(公钥、证书基本信息)、服务器的私钥
参考链接:
SSL/TLS协议运行机制
http://example.com/2024/12/31/2024-12-31-SSLTLS协议运行机制/