https之证书验证

1.中间人攻击

对于http协议,中间人攻击(man in the middle)是一种著名的攻击方式。
中间人攻击
图中John和Mary作为通信的双方,Frank为攻击者
1. John向Mary发送一段数据
2. Frank截获了John的包,窃取/修改数据后,伪装成John继续将包转发给Mary
3. Mary不知道Frank的存在,认为只是收到了来自John的数据,因为返回一段数据给John
4. Frank截获这段返回数据的包,窃取/修改数据后,发送给John

这样,Frank就成功窃取了John和Mary的通信数据,并且John和Mary都不知道Frank的存在。

2.SSL证书

从中间人攻击的方式可以看出,Frank攻击得以成功的关键是John和Mary没有一种既唯一标识自己,同时又能不被他人伪装的方式。SSL证书就是为了解决这个问题。
google证书
对于每一个使用https协议的网站,可以看到该网站的证书信息,图中是google使用的证书信息。

2.1证书链

证书以证书链的形式存在
1. 最上层为root,也就是通常所说的CA,用来颁发证书
2. 最下层为end-user,对应每个网站购买使用的证书
3. 中间一层为intermediates,是二级CA,这一层可以继续划分为多层,用来帮助root给end-user颁发证书,这样root只需向intermediates颁发证书

只有当整个证书链上的证书都有效时,才会认定当前证书合法

2.2证书信息

对于每个证书,会有一对公钥&私钥,公钥加密的数据只有私钥可以解密,私钥加密的数据只有公钥可以解密。私钥由证书所有者保留并且严格保密,公钥则公开使用。
此外,每个证书中还会包含很多信息,比如颁发机构,有效期等,其中最为重要的一个是签名
签名是指利用上一层证书的私钥,加密一些元信息(证书所有者的信息,包括基本信息,公钥,证书生效域名等)。这样,当收到签名证书时,只需要根据CA提供的公钥对签名解密,验证元信息是否一致,就可以判断当前证书是否合法。一句话来说就是,每个证书会对下一层的证书合法性做担保
签名及验证

3.根证书的合法性

既然每个证书会对下一层的证书合法性做担保,那么确保根证书的合法性就至关重要。
根证书是一种自签名证书。在浏览器或者操作系统中,会预安装一些证书,这些证书就是根证书,对于这些证书,在证书验证的过程中会直接选择相信。因此不要轻易安装其他网站的证书。

  • 11
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值