标签工具 文章 帮助 授权码.支付

用上https就一定安全了吗?

原创未经同意,请勿转载 2021-06-10 1375次阅读

我敢保证一些懂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,对于敏感数据,在客户端需要额外多加一次非对称加密。例如用户密码等非常重要的敏感数据,就算黑客们成功中间人攻击,最起码也保证用户密码没有泄漏。


关于安全的问题,多零程序猿还有很多话题,不过时间精力有限,这次分享到此为止。 虽然多零是做二维码网页的,但多零程序猿依然忍不住分享一些技术文章,如果对我们有什么疑问,给我留言admin@y56y.com或者狂点这里

最新文章 如何强制生成校验码什么是缓存、存档数据?如何使用存档数据功能如何制作标准尺寸的EAN/UPC条形码关于自动补全、纠正Ean13、Ean8、UPC、UPC-E、ITF14校验码如何查询、删除重复数据行2023-11-29 突发网络故障情况说明批量导出不宜超过3000个什么是EAN13的右侧空白区如何设置SC规格尺寸什么是EAN\UPC的SC规格尺寸?如何添加EAN\UPC的附加符号?如何添加GS1-128的分隔符FNC1EAN\UPC的附加符号:EAN5、EAN22023-09-10 多零故障处理公告