用上https就一定安全了吗?

转自:https://y56y.com/article/detail/17

我敢保证一些懂ssl原理的技术宅看到这个标题首先会火冒三分,心想竟敢质疑https的安全性,然后大概率会点击进来,跑个流程快速粗略看一遍文章内容,但这不是重点,重点是想找到文章最下方的评论区发表一番观点回击:https没有安全问题!为什么我如此清楚,因为多零程序猿从前也是那个少年。

 

 

 

职业病发作,贴上两张ssl流程原理图,但是多零程序猿并不打算介绍ssl的原理,有兴趣的朋友可以网络搜索一番。 无可否认,从ssl原理来看,确实找不出漏洞,也无法破解,也确实目前https是主流趋势,越来越多网站都装上ssl,搞网络窃听的从业人员也就越来越难混。ssl主要考虑是数据传输安全,解决数据传输过程中数据被窃取的问题。也确实ssl中数据的加密和解密是整个ssl体系中最坚固城墙。所以,很多技术牛人才会坚定地拥护https。 然而,避其锐气,击其惰归,机智的黑客们会这样想:为何要硬碰硬专攻加解密这座城墙呢,找出ssl的薄弱环节实施攻击会不会效率更高?有这种想法的黑客们,不会从上面那两张图中寻找攻击方法。以下就讲述ssl一些薄弱环节,也是使用ssl需要注意的一些地方,需要加固的地方。

1,中间人攻击

中间人攻击是黑客们在用户和真正服务器中间伪造一个服务器,从中转发数据,就可以顺利获取数据和篡改数据。 为了不被中间人攻击,有朋友可能这样做:关闭80端口(http),只开启443(https),增加Strict-Transport-Security、30X转跳、js判断转跳等。 30X转跳、js判断转跳等方式并没有明显的防御效果,中间服务接收的是http,转发给真正服务器的是https,服务端无法判断是否应该使用30X转跳、js转跳,而且中间服务器完全可以过滤或者替换转跳的报文内容。 Strict-Transport-Security效果较明显,浏览自动判断自动转跳到https,但Strict-Transport-Security也有短板,中间服务器也可以过滤掉Strict-Transport-Security,而且旧版浏览器不支持,再而且是基于缓存后才生效。 如果用户清空缓存或首次访问,也刚好访问不带s的http,那么中间人攻击的条件就成立了。可怕的是,这种情况,现在还没有可行的防御方法。

2,dns与ssl证书

无法理解,dns到现在还是明文传输的!明文传输!明文!(这样做可能是为了性能的考虑)也就是无论你访问的是http还是https,dns服务器返回的都是明文的ip地址,经常听到的dns污染,就是网络窃取到dns的明文ip,再篡改为有恶意的ip,例如你想访问baidu.com,dns本应该告诉你baidu.com的服务器在39.156.69.**,但黑客们却篡改为66.66.66.**,然后你就顺利地访问了黑客的服务器。虽然DNSSec有意识地对dns加签名防篡改,但依然无法解决最后一站的DNS攻击,即递归DNS服务器到用户电脑依然是无签名明文ip。

 

dns明文,跟https攻击有什么关系? 没有关系!就算dns污染了,在验证ssl证书这一步就被中断了,因为黑客服务器上根本没有ssl证书,无法取得用户浏览器的信任。 那么,然而,但是,如果黑客们拥有了ssl证书呢?!情况就完全改变了,拥有ssl就能局部小规模中间人攻击。拥有ssl再加上dns污染,就能够大规模实施中间人攻击。 黑客们怎么才能拥有ssl证书? 目前绝大部分国内用户(根据多零程序员的观察,甚至还包括一些国内大型金融机构、国有银行),都在使用国外的ca机构颂发的ssl证书!

那么ssl证书在国外,会有什么问题吗?相当于你们家里的开门钥匙寄存在邻居,虽然邻居口头承诺不开你的门,但是你会放心吗?

如果国外的ca机构人品不好,或者他们的数据安全防御做得不好,那么dns+ssl大规模中间人攻击条件就成立了。

3,https嵌入http

此前一段很长的时间,https网页中是可以混入http资源的,例如https打开的网页,可以外链插入一张http的图片。这其中的风险在于,黑客们通过篡改http的明文资源文件,例如插入一段js代码,加载到https网页,那么整个https网页数据都可以通过js代码获取到。不过,现在新版的浏览器已经堵上这个漏洞了,但是旧版的浏览器依然存在问题。所以建议大家尽量使用新版的浏览器,多零也不再支持旧版浏览器访问。

-------------------

回到主题,用上https就一定安全了吗?

数据传输大部分情况是安全的,但没有绝对的安全,网络安全防御只是大幅度提高攻击成本,并不能做到滴水不漏。就算你的网站主动防御武装到牙齿,外部因素都会影响到你网站的安全,正如以上说的第一、二两点。只是实施这样的攻击需要更高的成本,如果收益不远超成本,攻击者一般不会实施。

另外,多零程序猿还是要建议:

1,ssl依然是有必要的,所有网站都应用用上https;

2,最关键,保护好ssl证书;

3,对于数据安全非常敏感的网站(例如银行网站),需要开发浏览器插件,在插件中判断域名对应的ip是否正常,这是有效防御dns污染的方法。没有dns污染,黑客们就难于实施大规模的中间人攻击(不过局部小规模依然有可能);

4,对于敏感数据,在客户端需要额外多加一次非对称加密。例如用户密码等非常重要的敏感数据,就算黑客们成功中间人攻击,最起码也保证用户密码没有泄漏。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值