首页 存档 技术 查看内容

https上线一周年总结-证书的信任和业务上线

2018-3-30 13:00 |来自: 互联网 276 0

摘要: 架构师(JiaGouX)我们都是架构师! 证书的信任 坏人太多,我们不得不防。如果出现下面这种中间人攻击,怎么处理? 我们即使通过https连接,但是我们可能连接的是坏人的服务器,他们也开启了https,作为客户端 ...

架构师(JiaGouX)
我们都是架构师!


证书的信任

坏人太多,我们不得不防。如果出现下面这种中间人攻击,怎么处理?

我们即使通过https连接,但是我们可能连接的是坏人的服务器,他们也开启了https,作为客户端如何区分是不是坏人的服务器。这个时候就看客户端对服务端的证书的是否信任了。

产生证书的途径有两种,自签名证书和CA机构颁发。我们的电脑里面,会保存一份受信任的CA机构的根证书,浏览器就信任电脑这份CA列表颁发的证书,Firefox信任自带的CA列表。

下面问题来了?

如何区分是不是CA机构颁发的证书呢?

证书里面含有很多信息,比如使用者是谁,使用的域名,有效期等。最重要的还有一个数字签名。


  • 先创建一个证书请求,然后上传到CA结构。

  • CA机构会检查上传者的信息以及域名等信息,如果通过进行下一步。

  • CA机构,把证书请求的信息,进行哈希,得出一个值,然后通过他的私钥计算出来数字签名。

  • 最后产生数字证书给请求者。

  • 网站管理员会把证书部署到服务器上面,用户访问的时候,服务端会发送到浏览器。

  • 浏览器根据证书信息,哈希出来一个值,我们称为A。

  • 浏览器使用CA机构根证书,里面有公钥。然后解密数字签名,得出一个值,我们称为B。

  • 对比A和B,是否一致,如果一致的话,那就代表是CA机构颁发的。

如果CA机构的私钥泄露的话,其他人都可以伪造证书颁发了。

仅仅检查是不是CA机构颁发的就可以了吗?

肯定不是的呀,还得检查有效期,域名信息是否一致等。

服务端使用https,用户一定是安全的吗?

左图是正常的连接。右图也是一个中间人攻击,你可能使用http连接方式连接坏人的网站,没有任何的警告,所以说,如果重要的信息,非HTTPS页面不要乱填。

页面是HTTPS,域名也正确,一定是安全的吗?

答案也是否定的,有可能坏人在你的电脑里面安装了一个根证书,导致即使是自签名证书,浏览器也信任这个证书,没有任何的报警。

我们为什么要上https

我说为了保护用户隐私,你们相信吗?我们就是这么一个目的,电商网站里面有不少页面,涉及到用户电话,地址的信息。

上线前的疑问

我们的业务是在很多国家下面都有的,每一个国家的基础设施不一样,导致访问网站的速度还是不一样的。

所以问题来了?

  • 所有的国家都上,还是部分国家上?

  • 全站上?还是部分页面上?

  • 所有的终端上,还是PC端,M站,APP分别上?

这些问题如果不解决,是不能随便上线的,所以我们进行了数据调研。

数据调研

我们买了一些基调数据以及页面埋点(幸亏用户前端性能检测是我负责的),可以得知不同国家的网络速度。一些国家或者地区网速太慢,就暂时不上https。

另外调研了国内以及国际的一些主流的网站,全站上的有,部分页面上的也有,最后我们对不涉及用户隐私信息的页面,暂时不上https。

上线前的目标

  • 可以灰度上线(部分国家,用户,终端等)

  • 可以快速上下线(设置一个开关,可以快速的开启或者暂停某个国家https)

  • 可以协议检测纠正(涉及用户隐私的页面,不允许走http,进行302纠正)

除了开发还做了什么


  • 页面梳理,哪些页面需要走https,提前需要和前端开发的同学定义好,尽量不走302。

  • 静态资源梳理。

  • 服务器配置。

  • 证书购买。

这里面最困难的是静态资源梳理。Https页面,要求静态资源以及Ajax请求也都必须走https,对于http资源是拒绝加载的。部分的移动浏览器是没有这个限制的,但是最好我们都是https。

静态资源来源很多地方,常见的有:


  • 开发需要的JS,CSS,图片

  • 运营通过CMS上传的图片

  • 其他服务的图片

我们对于静态资源资源做了很多,总结了一下常用的


  • 协议自适应。平常的资源是http://开头,我们现在变成了//,浏览器可以根据当前的协议,自动的加载相同协议的资源。

  • 保存转化。修改一些相应系统,保存图片的时候,协议地址更改成为//

  • 动态转化。一些其他系统,不太愿意或者改动的地方比较麻烦,我们需要在后端转化完成给前端。

做了这些,总有可能失误,想不到的地方,所以我们防止万一这种情况的出现,就添加了一个header头部。

保全之策-CSP

Content-Security-Policy:upgrade-insecure-requests
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

相关分类

返回顶部