创造HTTPS的是个神

HTTP 是一个明文传输的协议,很多网络监听工具都可以轻易窃取网络中传输的用户信息,如密码,信用卡, 直到后来发明HTTPS, 世界一下子安静了

 

Why HTTPS?

HTTPS可以保证用户提交的信息,其它人即使拿到,也没有用,因为他没有密码,不能解密,

 

Why the post info cannot be decrypt by hacker?

因为提交的信息是用Server给的Public Key加密的,只有用相对应的Private Key才可以解密,而只是Server才知道这个Private Key

 

Why the server response can be decrypt by hacker?

Server返回的信息虽然是加密的,但容易被窃取,因为只要访问 一个这个网站,网站就会告诉你public key, 大家都知道public key, 所以大家都可以解密Server返回的信息

 

How to ensure the server is the correct one I want to talk with?

其实想获取用户提交的信息,还有其它一些办法,比如说DNS劫持,把DNS映射到自己的一台Server, 自己做一个certificate, 显示一个的表单给用户,用户提交以后,自己当然是知道Private Key的,当然可以解密,创造HTTPS的神已经想到这点,所以不是任何certificate都能被浏览器信任的,只有从国际上几个受信的certificate 签发公司生成的certificate才会被浏览器认为可信任,那我把那个证书拿过来放到我自己的服务器上不就可以了吗?No, 因为你不知道这个证书里面的Public Key所对应的Private Key, 不知道private Key, 你就是无法解密用户提交的信息,白忙一场哦

 

Why the browser know the certificate is a valid or not?

浏览器收到证书后,会做几步,

1. 看证书里的域名和目前访问的域名是否对应, 所以你不可能申请到别人域名相关的证书,不然你装Google, 再加个域名劫持

2. 看证书有没有过期 (for money)

3. 看证书有没有被改动过,根据证书里的签发机构找到在浏览器中内置的这个机构对应的Public Key去对文件的签名(一组编码)解密,再去扫描文件,生成文件的hash编码,如果Hash编码和用解密后的编码一致,就认为文件没有被改动过, 这点就防止你去改文件里的域名信息和Public Key

 

If you're a compnay has lot internal system, and also want to use HTTPS, What's the solution?

内部系统当然不能去官方申请一个证书,上千个系统,上千个证书,再加个各种测试环境,每年得上交多少钱哦,解决方案简单,3步走

1. 你就像官方一样,自己生成一个根证书 (就是一个public Key)和Private Key, 把private Key 想办法保存好,如果是银行,可能得把生成根证书的机器和Private Key一起锁在保险库里

2. 把根证书添加在各个系统的信任库中,这样当调用其它系统的时候,Server传来一个证书,系统就会用这个public key去验证证书的有效性

3. 各个系统上站点上使用的证书可以由一个系统生成 (应该有开源的生成证书的系统) 生成的过程大概就是,生成 一个Public key A和对应的Private key A, 再使用根证书对应的Private Key root 去把证书文件的hash code 加密,最后打包成一个最终文件

 

转载于:https://www.cnblogs.com/DataFlow/p/8892832.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值