博客
关于我
HTTPS连接过程以及数字证书的理解
阅读量:511 次
发布时间:2019-03-07

本文共 651 字,大约阅读时间需要 2 分钟。

HTTPS协议中的加密过程是为了解决HTTP明文传输的安全问题。在传输过程中,数据可能会经过多个中继节点,这使得信息在劫持时会被完全泄露。因此,HTTPS通过对称加密和非对称加密相结合的方式,确保数据传输的安全性。

对称加密与非对称加密的结合是HTTPS的关键。对称加密的特点是双方使用相同的密钥进行加密解密,但如果密钥被中间节点窃取,后续数据传输就会不安全。非对称加密通过使用一对有向的密钥(公钥+私钥)来解决这一问题。服务器向客户端发送其公钥,客户端用公钥加密数据后发送给服务器。服务器用私钥解密后,可以与客户端使用对称加密的方式进行后续数据传输。

然而,非对称加密也存在安全隐患。中间节点可能替换服务器的公钥,通过伪装成合法服务器来窃取数据。在这种情况下,数字证书的作用显现出来。数字证书由权威证书颁发机构(CA)签名,确保客户端收到的公钥是服务器真正发出的。数字证书包含服务器的公钥、颁发机构信息、持有者信息、有效期等内容,并通过电子签名加密指纹,防止证书被篡改。

在实际通信中,客户端首先验证服务器的数字证书,获取服务器的公钥后,随机生成一个对称加密密钥,用公钥加密后发送给服务器。服务器用私钥解密后,与客户端使用对称加密进行数据传输。

关于数字证书的防伪,电子签名能够有效防止证书被篡改。中间节点即使修改了证书内容,客户端仍能通过CA的公钥解密电子签名,发现证书内容不符,从而拒绝连接。

关于数字证书的防替换,客户端可以通过对比证书中的持有者信息与实际请求的服务器地址,判断证书是否被替换。

转载地址:http://gdejz.baihongyu.com/

你可能感兴趣的文章
php 代码混淆
查看>>
PHP 使用 $_SERVER['PHP_SELF'] 获取当前页面地址及其安全性问题
查看>>
Redis系列之如何避免缓存击穿
查看>>
php 内存分析
查看>>
PHP 函数名前面加&
查看>>
redis报错
查看>>
php 删除包含某一字符的数组元素
查看>>
Redis学习总结(19)——Redis 5种集群方式对比
查看>>
php 反射
查看>>
php 处理 大并发
查看>>
php 大文件上传
查看>>
php 子进程监听消息,swoole学习笔记之多线程端口监听问题记录 多进程epoll模式...
查看>>
PHP 学习笔记 (四)
查看>>
Redis入门概述
查看>>
php 实现Iterator 接口
查看>>
PHP 实现N阶矩阵相乘
查看>>
php 实现进制转换(二进制、八进制、十六进制)互相转换
查看>>
PHP 实现页面跳转的三种方式及详细解析
查看>>
php 将XML对象转化为数组
查看>>
PHP 工具
查看>>