SSL必要与否(1)

王志勇 发表于 2021年02月03日 22:41

这是新建的栏目,因为SSL是建站当中很大的网站性能瓶颈,所以之前栏目的主旨仍然是不主张https的。那个SSL绿锁存在的本质不是为了网络安全,而为了广泛销售他们的SSL证书。发了《详解99.9%的网站没必要用https(续4):SSL的原始动机》之后,经过反思,终于大概分析出了某浏览器给https打上“不安全”真正的含义是什么。

那就是SSL证书相当于国外版的ICP备(隔开)案。我们国内的ICP备(隔开)案是始于哪一年?可能很多站长还有印象,是始于2005年。那时候,虽然有点麻烦,但是大部分人还是很乐于ICP备(隔开)案的,网站也多一个可信的认证,当时的ICP备(隔开)案也有一个证书文件,需要放在网站的/cert/目录。那时候有网站空间的人,99%以上的人都不会使用国外收费空间,全是国内空间,所以接近100%的网站都有ICP备(隔开)案。

但是在2009年前后,随着大量的博客、个人网站迁出了国外,大家也渐渐彻底抛弃了ICP备(隔开)案。除非使用国内主机,或者阿里妈妈(淘宝客)、百度联盟、百度推广要求网站需要有ICP备(隔开)案,很多人不得已做了备(隔开)案。

由于备(隔开)案手续一年比一年繁琐,所以这个备(隔开)案的可信度认证,稍微懂行的人,都不会认为它有可信度,是可有可无的东西。原因是手续繁琐,经常会被无故注销,限制也特别多,比如不允许开留言板、评论、论坛,博客也不允许评论,不能从事经营活动(如网页制作规定为经营活动,必须注册公司,注册资金以前是规定最低必须100万,现在可能有所放宽,并申请ICP证),申请ICP备(隔开)案期间网站需要关闭15天左右,所以现在建站、建博客大部分人已经使用非大陆空间。

SSL和ICP备(隔开)案不同的是,SSL是各种第三方收费认证;国内的ICP备(隔开)案是地方ZF机构做的免费登记。

SSL绿锁是否具有权威?
提供SSL的服务有很多平台。假设某个域名在某个SSL服务平台A购买了SSL,但后来网站的内容出现某些问题,被服务平台A封杀,那么这个域名,会换到另一家SSL服务平台B,一般情况下不会再出现同样的问题。

因为SSL的价格较高,主流价格国内SSL保护单个域名每年1000元、2000多元、4000多元、1万元人民币。

国内的SSL销售价格,大致相似。国外的SSL价格,比国内低很多,但仍然价格不菲,大约是国内的1/5~1/2。上述这些,是现行的SSL主流在售价格。

SSL服务平台能得到很多的收益,所以如果没有特殊的原因,肯定是不会轻易封杀他们的客户的。

这个绿锁就是给钱就立刻能安装,而不去考虑网站的资质,也不验证网站所有者的资质

因此,SSL绿锁不具有权威。如果这类颁发机构开发SSL时强调SSL是可信网站,那么整个SSL存在的模式,就是一个彻头彻尾的骗局,大家是被他们骗了。

这种骗局,暂时没有找到一个合适的名词来形容它,之前肯定有相同的历史典故。

如果用皇帝的新衣来形容,有80%恰当。但它的隐蔽性比皇帝的新衣高得多,皇帝的新衣是谁都能看得出来是骗局。但是SSL,需要在网站的开发实践中,才能发现它的不合理之处。

浏览的用户,可能容易把这个绿锁(可信网站)和ISO9001之类的认证等同起来。

SSL证书究竟保护什么?
SSL在技术上的原理和业务的实质,在《详解99.9%的网站没必要用https》已经分析过。SSL的销售页上,保护一个域名2100元/年。那么究竟保护什么?如果问网站的客服,他们当然都答不上来。

因为这是一种错误的描述,SSL并不会保护网站安全。如果网站有后门或漏洞,https并不防止,没有任何的检测能力;早期的网页病毒主要是用VBScript传播,当时的IE5.5、IE6.0很容易感染,在2005年以前,大家的浏览器都是IE,直到2005年出现了火狐浏览器,才彻底阻止了这类网页病毒。

这类网页病毒非常可怕,可以劫取用户的银行登录密码。不像现在的网银,有各种验证、短信验证,安全性比2005年时提高了无数倍。

这种安全性,并非是由于SSL而提升的。而是浏览器内核的功劳(如火狐浏览器),火狐浏览器屏蔽了很多病毒、弹窗。所以,真正保护网络安全的是浏览器、网银自身的安全认证技术手段、杀毒软件这3重保护。

SSL并没有起到相关的作用,反而是把别人的功劳占为己有

如果说SSL有一定的安全方面的事宜,就是多了一个加密传输,在实际应用中,大多数的网页都是不需要加密传输的。https也不能从根本上防止GF*。

这个保护,就是销售上的误导宣传,以刺激用户消费。

HTTP不安全吗?
从archive.org可以查到,国外有知名度的网站约99.5%以上在2014年年底以前都是http,甚至包括Google旗下的所有站点。

现在的Linux间的传输,也大部分是http。

HTTP“不安全”只是个别浏览器的严重误导。在上述的小标题《SSL究竟保护什么?》里,https同样无法防止网页后门、漏洞,也无法防止网页病毒,安全性和http是一模一样的

所不同的是https多了一个加密传输,但是大多数网页并不需要加密传输。

网站后门的制作是比较容易的事情。比如一些博客的皮肤,只要是任何的动态文件如php文件,都可以写入后门,这个万能的后门程序可以小到100字节以内。(这里并不是说PHP不安全,这个功能正是它的强大之处,但如果被第三方PHP开发者恶意使用,就会出现网站安全问题,比如篡改网页。目前这类事情几乎没有发生过。)

总之,http和https的安全级别几乎是一样的,HTTP“不安全”是严重误导。如果说http不安全,那么https一样不安全;如果说https安全,那么http一样安全,没有多少区别。

http/https和密码安全
这个问题是https的核心问题,所以在前面的栏目《详解99.9%的网站没必要用https》(将简称为“详解没必要”栏目),几乎每篇都谈到这个问题和替代方案。

如之前谈到的:前文1前文2前文3

在http上,可以用JavaScript等技术手段,做前后端加密(JavaScript现在是唯一的前端Web编程语言),即前端的input密码框发送前加密,并运用动态的方式,每次刷新的加密公式都不一样,存储的密码再加密,而且JavaScript完全是可以隐藏的,这种方式只要算法公式不特意公开专门讲解,任何黑(隔开)客永远都无法破解,比https+无前后端加密(密码明文存储)还安全。

前端的input密码框发送前加密,因为加密规则是保密的,即使电脑里被中了病毒,这个密码也不会被泄露。

有了这种替代方案,就不能说http不安全,也不能说https安全

这种替代方案,可以自行设计。而且,前端必须使用JavaScript来加密,因为JavaScript现在是唯一的前端Web编程语言。比如Paypal在很多年以来,一直没有使用数字证书,而且在几年前都是http。这是什么原因呢?肯定有做前后端加密。

在很长时间里,支付宝一直有数字证书。现在也有数字证书,但是我们发现即使开启了数字证书,每次重装系统之后,这时候没有安装数字证书,也能正常登录、支付。这个业务上存在一点瑕疵,但是支付宝估计应该是和Paypal一样存在类似的前后端加密。

什么是前后端加密?
前端,就是用户在注册、登录等任何需要输入密码的网页,发送的密码不是明文,无论是http、还是https,都可以实现,可以通过JavaScript编程来实现,这个编程设计并不难,密码的input一定要放在<form>之外,这样明文密码就不会发送。

之后,用JavaScript对这个密码的input进行乱码加密,并分解成多个乱码,使用onkeyup事件,以及document.all.abc.value=document.all.def.value,把这几个乱码传给<form>里的几个<input>。

后端加密,是服务器端存储的密码信息,不要存明文,同样是乱码存储。

我在2016年时花了好长时间做的项目,当时完成了这个前后端加密的设计。2019年完成了开发,应用到实际的项目中,比如Eonval帐号、Feedval单机密码的登录和存储。

依然没有使用https的大平台
截止到2021年2月4日,建行、农行的网站首页都使用http,但是登录页他们都使用https。

这种模式,才是应该倡导的。

为什么SSL证书会卖得这么贵?
除了少量SSL平台的价格很低,比如Let’s Encrypt完全免费,国内的west.cn最低有1元/年,或8元/年,腾讯有免费提供一年,均无流量限制。

国内的主流价格在上述已经提到了,是以单个域名/年计费,单个域名的SSL价格国内是1000元/年~1万多元/年,国外的SSL价格,比国内低很多,但仍然价格不菲,大约是国内的1/5~1/2。

之所以能炒得这么贵,主要是和宣传有关,特别是某些浏览器给http打上“不安全”的标签,使https成为刚需。

因为https会影响网页速度,严重增加不稳定性,即使是免费的,我个人也尽量不想用。只有注册、登录等需要输入密码的二级域名,才使用https。

32条评论:
1   wys 2021-02-03 23:39
为了鼓吹的形象,划不来。我都有点动摇了。

自由勇 2021-02-03 23:47
是的,博客的影响还暂时不大。建网站、多域名,维护比较麻烦,影响速度。

2   自由勇 2021-02-04 08:04
更新,新增副标题:
http/https和密码安全
依然没有使用https的大平台
为什么SSL会卖得这么贵?
3   自由勇 2021-02-04 08:32
更新:
原因是手续繁琐,经常会被无故注销,限制也特别多,比如不允许开留言板、评论、论坛,博客也不允许评论,不能从事经营活动(如网页制作规定为经营活动,必须注册公司,注册资金以前是规定最低必须100万,现在可能有所放宽,并申请ICP证),申请ICP备(隔开)案期间网站需要关闭15天左右,所以现在建站、建博客大部分人已经使用非大陆空间。
4   Glan 2021-02-04 09:17
我从另外一个角度看哈,其实现在很多VPS的性能和带宽足以减少掉SSL的占用“资源”

自由勇 2021-02-04 09:45
ping值100ms以内,基本看不出影响。
要是ping值在150ms,影响就明显喽。最近的网络好一些,访问会多延迟1秒~3秒,有时没有多延迟。前段时间会多延迟2秒~5秒。访问别的国外网站也一样,甚至更慢。

我刷新测试过很多次。

https,在国内访问亚洲主机,看不出影响。
在欧美访问美国主机,看不出影响。
(流量大到一定程度时,应该会有明显的影响。)

在国内访问美国主机,或者在美国访问亚洲主机,https和http的稳定性差别很大。慢主要是因为增加了握手次数,一旦出现丢包,会慢很多,同样差的网络环境,http会比https快很多。还有国内的GF*系统,使https变慢。

5   colin 2021-02-04 16:07
不太懂技术,就是看到大部分主流网站都是https了,就跟风也配置了https了。
6   老张博客 2021-02-04 21:04
我看别人都做了,我也就跟着上了SSL证书。至于为什么,反正大家都上了,错不了。
7   青山 2021-02-05 19:38
不给钱也能安装ssl

自由勇 2021-02-06 08:41
个人博客基本上都用免费的。
本文提到的收费版,指的是国内外企业应该有不少会选择收费版的,只要稍微宣传一下,企业就会投入,何况现在是特别大力地宣传。当然,也有企业会选择免费版。

8   自由勇 2021-02-06 08:45
如果在国内访问,使用美国主机,https对速度的影响还是很明显的。就是刚打开浏览器窗口的时候,会有一段网页空白的时间,这段空白时间,https比http长。
9   anonymous 2021-02-11 05:06
请问替代方案中用的是什么加密方法呢?
- 首先忽略中间人可以篡改流量,只考虑中间人可以截获流量
* 如果是对称加密,那么毫无安全性可言,如果有中间人窃听流量,那么他完全可以解密流量,你问我他怎么知道密钥?我相信如果是JS写的加密流程的话:若没有混淆,那挖出来简直是轻轻松松;若混淆,要么一步步分析,有的时候干脆直接黑盒调用,即利用node.js一类的环境直接调用你JS里的加密解密函数。
* 如果是公钥体系,你的客户端公钥私钥存在哪里?只要私钥通过某种方式向外请求了,那么就等价于对称加密的情况。
- 接着考虑中间人可以篡改流量
那就基本上就无解了,你怎么知道和你进行的通信的一方是真的服务端?我完全可以伪装成服务端,用你的那一套流程跟客户端通信,然后再发给真正的服务端。你的内容我也可以任意篡改,塞一些JS可以直接把客户端的各种东西都拿到,或者直接跳转其它页面。

所以告诉你,SSL不光保证了通信的安全,由于证书需要签发,所以CA证书链的方式保证了身份的可信。

现在完全应该提倡全站HTTPS,如果登录页上有什么资源没有走HTTPS,那么这个资源也会被中间人攻击,当然了,现代浏览器一般都设置了策略禁止HTTPS上的HTTP内容,为了防止内容被审计、篡改,HTTPS还是有必要的。

自由勇 2021-02-11 06:44
替代方案是用JS进行混淆,可以设计多种方案,如这里:http://www.auiou.com/relevant/00001513.jsp#password

需要对JS程序进行隐藏,所以混淆数据无法被逆向还原,如这里:http://www.auiou.com/relevant/00000899.jsp#2

本系列文字之所以不主张https,是因为https会影响速度,而且很普遍。

中美间访问(VPS在美国,访客在中国;或者VPS在亚洲,访客在欧美),如果使用了https,速度都会不同程度地慢,一出现丢包就慢很多。(尤其是刚打开浏览器时,窗口有一段空白的时间,使用了https,这个空白时间为0.5秒~5秒,多为1秒~3秒;如果没有使用https,这个空白时间为0.2秒~1秒,我做过很多次刷新测试。)

如果想达到速度极限,https是很大的瓶颈。

VPS和访客的距离,ping值100ms以内,几乎看不出速度的影响。ping值150ms以上,影响很大。

10   林羽凡 2021-03-10 15:07
这篇文章是对ssL讲解说明最中立,也最清楚的。确实是这样,现在国内不少所谓的安全公司,打着安全的名义在销售ssl证书,而且还成立了专门的团队做这个,这是一本万利的事,和各大浏览器厂商合作,证书生成基本没什么成本,他们当然要大肆吆喝了。

另外你说的加密的问题,的确是这样,网站安全了,http也安全,漏洞百出,3级SSL也没用。这个只是一个协议加密,并不会对网站本身的安全提高多少,如果有需要传输加密信息,完全可以用你上面说的前后端加密方法解决,我之前也考虑过这个问题。

但现在的问题是,各浏览器厂商,会特意把没ssl的网址标为风险、或者不安全,做为一个小博客或小网站,没办法不做ssl,普通人根本不懂这回事。

自由勇 2021-03-10 15:46
谢谢支持!:)

11   anonymous 2021-03-10 19:41
不知道为什么您没有显示我的评论,不过我还是真诚地建议您学习一下SSL所采用的现代公钥密码体系,以及计算机网络中最最最简单的IPv4路由知识,只要你的内容确确实实地传输到了客户端,哪怕后端动态脚本各种判断HTTP头,或者动态生成JavaScript,那么它就是有办法获取的,从信道中间,我完全可以进行MITM中间人窃听/替换你的**任何数据**

自由勇 2021-03-10 20:12
因为有家事太忙,没时间给你回复。你的回复全都是抨击的,也不留网名。隐藏JS在大约2年已经公布过源代码,不知道当时是不是你。以后把这个源代码做成测试页。

自由勇 2021-03-10 21:07
请开博客发表您的观点吧。你之前的意思我明白的,这些观点不同是因为经历和需求不同。

12   angel2018 2021-03-11 15:45
勇哥,从昨天开始,发现virmach帐号登陆时,进不去管理页面,会重新跳,再登也一样。你那边登陆会不会吗?billing+virmach+com这个地址的。

自由勇 2021-03-11 16:48
我现在在外地出差陪床,手边没有电脑。

自由勇 2021-03-17 12:42
我边也一样登录不了,换了新一点的浏览器,也不行。

13   angel2018 2021-03-11 18:14
好的
14   angel2018 2021-03-17 14:45
勇哥,是不是被wall了?
我博客的vps到期了,忘了续费,给停了,3月4号左右到期的,不知道有多少宽限期给续费,现在登陆不了。
哈哈,哎。。。。。。
只能用我1月份备份的数据在另一台vps上。

自由勇 2021-03-17 14:52
应该是他的网站bug,等一下我切到Win7更新一点的浏览器试一下,估计还是一样。

15   angel2018 2021-03-17 15:12
我前几天,用另一个邮箱册了一个帐号,也是一样,登陆不了,哈哈。
勇哥,你如果有测试出来问题原因,发一下留言,谢谢!

自由勇 2021-03-17 17:32
因为电脑有将近一个月没开机,刚才无法进入Win7,修复了很久。进入系统系统后,有线、无线怎么都上不了网(设置都正确),XP下正常。前后折腾了一个多小时。唉……

自由勇 2021-03-17 21:08
刚才在Win7下试了几个浏览器,都登录不了,Virmach的网站bug。这样会导致主机无法续费。

16   angel2018 2021-03-17 22:22
谢谢勇哥!
17   angel2018 2021-03-18 01:50
勇哥,我找到这个登陆问题的原因的,登陆后不断加载的原因,真的跟wall有关。
选择v(隔开)p(隔开)n通道上网(比如走荷兰的网络环境),就可以登陆了,顺便把我的停权问题给提交了,也重新提交了续费票单。[个人认为是登陆页面后,要加载机器人识别,而机器人识别的页面可能被wall了,以致于加载不入]

哎,但愿数据都在吧。

自由勇 2021-03-18 06:52
恭喜!这原因都能排查出来,强!
我这边,V(隔开)P(隔开)N和S(隔开)S全都不能上网。实在紧急的时候,以前是用VPS的远程桌面上网。

18   angel2018 2021-03-18 09:54
勇哥,我交了续费,博客数据还在,太好了。
哈哈。!!!
谢谢勇哥,帮忙排除。

自由勇 2021-03-18 10:02
恭喜!!

发表评论:
名字: (*必填)
博客: (可省)

正文:

  记住信息?

王志勇:1980-09-26 (44周岁)
程序设计,前端设计。

版权声明:本博客所有文章,均符合原创的定义,禁止转载,违者将必究;正确的方法是贴原文的标题和网址即可。

与此相关的链接
自由勇专栏

Blog存档 Archives

2022年07月
2022年06月(15)
2022年05月(20)
2022年04月(16)
2022年03月(9)
2022年02月(9)
2022年01月(10)
2021年 +

2020年 +
2019年 +
2018年 +
2016年-2017年(9)
2014年06月-09月(10)
2013年 +
2012年 +
2011年 +
2010年 +
2009年 +
2008年 +
2007年 +
2006年 +
2005年09月(4)

Copyright © 2006-2024 auiou.com All rights reserved.
此Blog程序由王志勇编写