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

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

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

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

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

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

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

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

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

你可能感兴趣的文章
Python中特殊函数和表达式 filter,map,reduce,lambda
查看>>
python中用socket检测端口_Python 用socket模块实现检测端口和检测web服务
查看>>
python中用于列表操作的plus和append有什么区别?
查看>>
python中用递归求和
查看>>
python中的@staticmethod
查看>>
python中的array函数作用_NumPy 数组使用大全
查看>>
python中的isinstance判断多个对象类型
查看>>
python中的keys、values、items
查看>>
Python中的lambda和apply结合使用
查看>>
python中的map函数
查看>>
Python中的numpy模块解析
查看>>
Python中的pickle
查看>>
Python中的signal模块和Ctrl+C操作
查看>>
python中的sort方法
查看>>
Python中的threading
查看>>
python中的urlencode和urldecode
查看>>
python中的with学习
查看>>
python中的write和read的用法,有无换行符
查看>>
Python中的“真“和“假“
查看>>
PYTHON中的主体对象标识
查看>>