Chinaunix首页 | 论坛 | 博客
  • 博客访问: 283524
  • 博文数量: 58
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 600
  • 用 户 组: 普通用户
  • 注册时间: 2015-11-27 08:37
个人简介

从linux了解世界

文章分类
文章存档

2017年(5)

2016年(51)

2015年(2)

我的朋友

分类: 网络与安全

2017-01-31 23:18:12

http协议传输过程中所有的数据都是明文的,https对数据进行加密保证安全性,具体思路演化如下:
1、数据使用对称加密,由浏览器随机生成对称加密使用的密码,发送给服务器
2、为了保证对称加密的密码不被劫持,使用非对称加密处理对称加密的密码
3、服务器生成非对称加密的公钥、私钥,将公钥发送给浏览器,浏览器使用公钥加密对称加密的密码,然后发送给服务器,服务器使用私钥解密获得对称加密的密码
4、使用3中的方法可以通过"传令官"形式的恶意中间人获取数据,也就是对拦截服务器的公钥,将自己的公钥给返回给浏览器,伪装成浏览器访问服务器,伪装成服务器返回数据给浏览器
5、服务器通过有公信力的机构(CA)颁发的数字证书,保证服务器的公钥安全发给浏览器。
CA制作证书最关键的步骤是:将服务器的公钥和其他信息经过hash,使用CA自己的私钥加密形成数字签名,由于"传令官"不可能知道CA的私钥,所以无法伪造数字证书。制作证书具体如下:

浏览器内置CA的公钥,对数字签名解密,并同公钥和其他信息的hash值进行对比:

根据上述原理,https的大体流程如下:

补充:数字证书的验证是一个证书链层层验证的过程,最终到根证书(浏览器内置)判断服务器是否可信。浏览器除了发送数据外,还会发送数据的hash值,以便服务器进行校验。
阅读(2460) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~