HTTPS 协议
HTTPS 协议
由于 HTTP 协议使用明文在互联网传送数据,易被不法分子监听和截获。我们又引入了 HTTPS 协议取而代之,默认端口 443。
HTTPS 协议在应用层下方增加了 SSL 层,使用 TLS 协议来加密和解密数据包,这样在互联网上传送的数据将经过加密。
加密方式
建立连接后的数据交互采用对称加密:加密密钥和解密密钥相同。
建立连接时协商密钥采用非对称加密:加密密钥和解密密钥不同,两个密钥互相能解密对方的加密内容。
服务器会公开一个非对称加密密钥(公钥),并保留一个非对称加密码密钥(私钥)。
证书认证
服务器公钥由数字认证机构 CA 统一认证。CA 会用自己的私钥加密服务器公钥和相应信息,生成数字证书。在客户端向 CA 查询时将证书发送给客户端核对。
CA 根证书(包含公钥)存储在用户的浏览器中,访问网址时会自动比对服务器公钥。
客户端向服务器发送信息:请求连接,说明自己支持的加密算法,并给出随机数 A。
服务器向客户端发送信息:同意连接请求,确认合适的加密算法,并给出数字证书和随机数 B。
客户端向 CA 核对数字证书,确认有效后得到服务器公钥。
建立连接
客户端向服务器发送公钥加密信息:给出随机数 C。
服务器通过私钥解密信息,对信息 Hash 得到数字签名;然后向客户端发送私钥加密信息:返回数字签名。
客户端通过公钥解密信息,核对数字签名,确认服务器收到随机数 C。
之后双方就可以按照约定的对称加密方法,使用三个随机数生成的密钥进行数据交互。
版权声明: 本文为 InfoQ 作者【武师叔】的原创文章。
原文链接:【http://xie.infoq.cn/article/8cae527fe032690a1e7f8d705】。文章转载请联系作者。
评论