昨天写的文章里了讨论了数据传输的安全性的问题,最后一部分提到了经过HTTPS解决数据传输安全性的方案。那么一个新问题又来了,实施全站HTTPS的过程当中,咱们可能会遇到哪些技术问题?因此我今天和你们一块儿来算一下这个帐,将技术成本理清楚。
算法
准备工做chrome
1.购买证书,网站使用HTTPS须要申请安全证书,目前来讲仍是比较繁琐的,并且对小公司来讲是有一些成本在。另外,必定要选正规的机构,不然你的网站之后使用主流浏览器,如chrome访问,会被提示大大的警告,告诉用户该证书有问题。浏览器
2.页面里全部资源都要改为走https,包括:图片、js、form表单等等,不然浏览器就会报警。缓存
3. 确保用到的CDN节点都支持HTTPS,若是是自建IDC, 必需要保证全国甚至世界范围的 idc 和 cdn 节点,都得覆盖到。安全
CDN 使用 https 常见的方案有:服务器
1 网站主提供私钥给 cdn,回源使用 http。微信
2 cdn 使用公共域名,公共的证书,这样资源的域名就不能自定义了。回源使用 http。网络
3 仅提供动态加速,cdn 进行 tcp 代理,不缓存内容。架构
4. 全部的开发、测试环境都要作https的升级,确保各级环境保持同一套网络协议。tcp
性能方面的挑战
作好以上的技术准备后,咱们还必须意识到实施HTTPS后带来的性能问题:
1.网络耗时增长,简单来讲须要多几回握手,网络耗时变长,用户从http跳转到https还要一点时间。
对于这一块的优化,有Session ticket或者Session Cache等优化方案,不过也是各有优缺点。
2.计算耗时增长,须要更好机器性能,https要多作一次RSA校验。
对于这一块的优化,主要的方式是采用最新的openssl协议,使用硬件加速,优先使用ECC密钥等等。
安全方面的挑战
关于这一块,常见的安全隐患包含:降级攻击和从新协商攻击。
对于前者,攻击者伪造或者修改"client hello "消息,使得客户端和服务器之间使用比较弱的加密套件或者协议完成通讯。对于从新协商攻击,是攻击者利用协商后安全算法偏弱,试图窃取传输内容,而且能够不断发起彻底握手请求,触发服务端进行高强度计算并引起服务拒绝。
固然,这一块,在基础厂商或者云产商的努力下,对于咱们通常的业务用户,几乎不用关心协议层上面安全的问题。我在这里提出的目的,仍是想说明一点,安全问题一直都不能放松。
最后一点总结
切换成HTTPS是必然趋势,相信会有愈来愈多的站点加入进来,并且完成后,它能给咱们带来的收益是巨大的。对于咱们技术团队而言,在实行以前,必定要考虑清楚它背后的技术成本,并作好对应的技术储备,作好HTTP切换为HTTPS的上线流程,确保万无一失。
扫描二维码或手动搜索微信公众号【架构栈】: ForestNotes
欢迎转载,带上如下二维码便可