详解99.9%的网站没必要用https;http与https涉及的名誉问题;https安全吗?

简述:连CCTV、php.net的官网都还只支持http,国内还有很多大网站都以http为主,谷歌浏览器就贸然将所有的http网站标为“不安全”,会让人误以为有病毒。https只是提高了安全级别,http并非不安全。(2018-09-29 07:28更新)

前几天用最新版的谷歌浏览器(Chrome),测试自己的站点。发现所有的HTTP网址,已经被打上了灰色的“不安全”,会让人误以为有病毒,如下图:

Google之前宣布,这一举措从2018年7月开始实施。再过些时间,这个灰色的“不安全”(英文浏览器显示:Not secure),将会变成红色。

多年来,我对Google一直很崇敬,但由于这个事件,对Google的崇敬跌到了谷底这一次是Google向所有的HTTP网站开炮,一刀切,所有的HTTP网站标为不安全

HTTPS安全吗?安全是相对的,没有任何技术是绝对永久安全的。所不同的是,被攻破的机率不同。

用户访问一个HTTP、HTTPS网页,过程都是:客户端(浏览器)A→路由服务器B→路由服务器C→路由服务器D……网页服务器E→路由服务器F、路由服务器G……客户端A。

上述的这些过程,用A、B、C、D表示,其中A就是我们的任意浏览器,E是网页的服务器,这些路由服务器都是运营商的服务器。HTTPS,主要是从A开始产生、发送密文hash数据,此hash数据经过的所有路由服务器,必然是处于加密的hash数据,无法被逆向还原;网页服务器E,收到的数据,必须有与相应的SSL证书的数据,才可以将这hash数据还原,网页服务器必须将这些hash数据还原,否则将无法工作──用户看到的全是乱码。

HTTP也可以模拟HTTPS的这个过程,甚至产生类似的hash数据。

上述的过程中,所有的路由服务器,如B、C、D、F、G,假设HTTP在遇到不安全的拦截时,这个不安全理论上是在路由服务器当中产生,也就是骨干线路的路由设备。

客户端(浏览器),在发送和接收时显示的明文数据,安全性是一样的。也就是说,万一电脑中了专项的病毒、木马,无论是HTTPS还是HTTP,安全性是一样的,都有可能被获取,它是针对本机电脑。即使用了HTTPS,往远程发送hash数据,但是在产生hash数据之前的明文数据已被截获,这种情况下,无论是HTTPS,还是将来更加安全的协议,都并非完全安全。

HTTPS另一个不安全的场景,在于网页服务器E。由于网页服务器E必须根据SSL证书,将hash数据还原,才能将用户发送的内容进行处理,否则全是乱码,在网页服务器端,同样万一被后门漏洞截取,那么HTTPS仍然是不安全的,此时它的安全级别与HTTP相同。
后门漏洞通常与网页程序类型无关,而是用户使用别人开发的第三方插件、或者如博客主题的php文件里隐藏着后门程序,这种后门程序容易编写,却较难察觉,无任何病毒提示,因为它本身是标准的程序。

HTTPS,比HTTP安全的地方在于,如果在客户端、网页服务器端没有被截获,那么在所有的路由服务器当中万一被截获,也无法还原,因为没有SSL证书的信息作为钥匙。

因此,只要骨干线路没有被攻击,那么HTTP和HTTPS的是一样安全的。如果电脑中了病毒,HTTPS和HTTP同样可能不安全。

经过上述的这些对比,能够看出是否有必要使用HTTPS,因为HTTPS架设较为繁琐。在这个过程中:
客户端(浏览器)A→路由服务器N个→……网页服务器E→路由服务器N个……客户端A

理论上,只要在网页服务器事先产生一个SSL证书即可完成上述的安全加密功能,通过shell命令直接安装SSL,即自签名证书,也能正常工作,然而访问时首先会出现下列的页面:

或者这样的页面:

上述2个截图是现在国内的最顶级的电视台网站的截图,这是正确地安装了SSL,仍然出现严重的警告提示:此连接不受信任,立即离开/我已充分了解可能的风险。

上述的这个截图这六、七年中常常看到,多年来一直以为网站可能有病毒,或者存在着大风险。但由于是重要的网站,还是经常会点击“我已充分了解可能的风险”。

前段时间,在尝试安装SSL时,发现出现这一提示,并非是由于网站存在风险、或者病毒,而仅仅是因为SSL未经第三方认证(第三方认证本身是多余的,后面会谈到)。第三方认证的SSL是收费的,我们看一下国内外的SSL收费情况:

万网:
GeoTrust:保护1个域名 ¥2191元/年起,保护5个域名 ¥4250元/年起
Symantec:保护1个域名 ¥4250元/年起,保护5个域名 ¥21250元/年起
GMO GlobalSign:保护1个域名 ¥11090.8元/年
中国金融认证中心(CFCA)证书:保护1个域名 ¥3400.00元/年起

西部数据west.cn:
Symantec 企业型(OV):保护1个域名 ¥3880/年
GeoTrust 企业型(OV):保护1个域名 ¥2137/年
TrustAsia 域名型(DV):保护1个域名 ¥8/年

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

如果你有多个域名、多个二级域名,SSL将是很大的一笔开支,已经是服务器费用的10倍以上;一个大的站点,如果有多个二级域名,本来1000多~2000元的总成本,如果全部加上SSL,一年就是几万元

博客大家现在普遍用免费SSL,我还没有尝试。

绕了一圈,再回到HTTPS安全与否的问题。HTTPS主要涉及密码问题,最高安全级别的密码,是网银、支付平台、域名登录后台、电子邮件,等等。除此之外,大多数的网站,并不需要涉及到这样的安全级别(HTTPS)。也就是说,99.99%的网站,如果仍然像过去一样使用HTTP,并不会发生想象中的安全事故,如果想提升安全级别,只需自行开发相应的加密技术,发送数据前,<input>一定要放在<form></form>,经过用JavaScript加密,或者开发如支付宝安全控件这样的插件,将加密后的数据传给<form></form>里的一个隐藏的<input>,这样,即使是用HTTP发送,被破解的机率也无限接近于0,其安全级别也和HTTPS一样。

国内外SSL如此高的费用,其本身并不需要多少的硬件、开发投入。难道是相关部门在收取高额认证费?

再说到这个第三方认证。国外对SSL的认证,记得在2004年左右,我就见过Verisign的带有一个勾的认证,那就是SSL认证、可信网站认证,在很多年前就有这种认证。国内与SSL相关的,现在也是各式各样的可信网站认证,各种眼花缭乱的“权威”名词

其实这个可信网站认证,只是买了他的SSL,给他交钱了,于是你的网站瞬间变成可信网站

由上述的对比,SSL的作用,只是为了解析hash数据成为网页服务器上可读的明文数据,防止在路由服务器、骨干线路被获取明文数据。可信网站与SSL,本来并无联系,如今SSL成了收取保护费的新形式,只要你交了保护费,就是可信网站。
恶意的网站,购买了SSL,同样会显示安全、可信网站。

HTTP并非不安全,HTTPS并非很安全。安全与否,取决于用户电脑系统的安全,以及网站程序的安全设计。Google这次强行给所有HTTP网站打上“不安全”的标签,是很不妥的做法,重大失误,也许会影响很多HTTP网站的名誉。

国外很多大网站确实已经全面使用HTTPS。但是国内很多大网站、门户网站,包括顶级的电视台网站,各电视台网站,现在网站内部仍然有很多HTTP。有很多首页是https,但是二级域名是http。

明文传送的隐私问题
HTTPS由于是hash密文传输,经过的路由无法获取实际数据。但是由于互联网数据庞大,如果所有的HTTP数据,都被拦截下来读取,那是永远读不完的,没有人会闲到去拦截。我们发布的博客、论坛、微博等等,最终都以明文呈现在相应的平台,对于这些在网页上本身是明文显示的,用加密传输本身意义不大。除非是需要登录之后才能看到的重要机密内容,这时,加密传输有一定的重要意义,但是通常很少会用到。

密码终极安全方法
无论是任何平台,不太重要的网站,设置一个密码,重要的网银密码、支付密码、电子邮件密码,使用另外不同的密码。不能在某些网站平台的密码,设置和电子邮件密码相同,会引起自己的域名被盗。

这个话题其实已经是第4篇。去年写了第1篇,至今挂了一年多。当时写这篇,用这样鲜明的标题,是对应于Google从2018年7月,在Chrome浏览器里轻率地将所有http网站标注为“不安全”(Not secure),如下截图,并非针对任何人;同时呼吁挽回http的尊严。

我明白这样的标题,有一定的争议性。但是它事关每个人的利益,所以无法避免这个问题。使用https,原本是每个人的自由,想用就用,不想用也可以不用。这样贴近每个的利益,又有争议性的话题,只能尽量深度去解析它,最后再得出结论。没有人会和自己的利益过不去,所以当一个人发现某样东西的好处时,争议便不存在了。

好在第1篇挂了这一年多以来,没有任何人对这篇提出反对的立场,因为文章也是用客观的数据,来阐述事实。也有很多人,在这之前,本身就是处于相同的立场。

这个新发现是,这几年来,每天晚上的国外网站特别慢,比白天慢了几倍~10倍以上,比如访问Godaddy、name.com、networksolutions这些域名管理的网站,很多网页需要十几秒以上才能打开。晚上访问国内、亚洲的网站,速度依然很快。

这是为什么呢?

在晚上访问自己的美国VPS上的站点(http),速度也很慢,但是不会慢到十几秒以上才能打开,比如白天0.5秒打开,晚上大概1-3秒打开。

原因就是国外网站启用了https,造成在中国访问很慢。

同国的传输速度
如果访客和服务器之间的ping值在100 ms以内,路由也少很多,那么无论是白天、还是晚上,无论是http、还是https,访问速度都会很快。

ping值在100 ms或160 ms以上,中间经过更多的路由,如果当中有某个路由线路遇到带宽瓶颈,会使速度暴降。比如在同国的美国VPS间传输,前几天发现速度经常在150 MB/s以上,比如173 MB/s;但是在中国下载美国VPS的文件在晚上只有5 KB~20 KB/s。

https的速度变化
从上述的同国的传输速度规律来看,实践中,发现一位博友用国内主机,https的访问速度特别快。(当然,此时如果用http访问,其实会更快)

由于https比http多了几次握手,原本http并不快的国外服务器,用https慢了很多很多。

尤其是到了晚上的网络高峰期,在国内,访问国内的https网站,感觉不到速度下降;但是,国外的https网站,慢了5-10倍以上。

同样的,在西方国家访问他们国内的https网站,无论白天还是晚上,都感觉不到速度下降。

总之,结论就是:
1. 同国,或者ping值在100 ms以内的服务器,https无论白天还是晚上,速度都快。
2. 国外服务器,用https会有明显的速度下降,晚上特别慢,慢了5-10倍以上。

也有一些线路较好的cn2美国服务器,晚上用https访问,速度还是快的。

https究竟安全在哪里?
防止传输中,被路由服务器监听;防止运营商在web页中添加广告(即劫持)。劫持,在我们这边不多见,只有宽带快到期时,会在web页添加续费的提示。

防止传输中,被路由服务器监听,这个无法彻底避免。无论是post,还是web实体页,只要有数据传输,都会有对应的方法获取。例如web实体页,假设路由服务器记录了经过的URL,服务器在自身用wget命令,或者wget+修改UA的方式,就可以模拟客户端,从而获取web页

防止密码被获取明文?
“防止”的目的,是假设万一有损害利害的对象存在。
https并不能彻底防止密码被获取明文,只能降低传输中,post数据被路由服务器监听的机率。

假设万一正好客户端存在着病毒传播者事先针对浏览器种下的病毒,能够获取明文密码,那么这种情况下,无论是http,还是https,都能够获取,和传输方式没有关系。为了解决这个问题,我在前年设想了一个方案,今年已经在帐号系统里完成了该方案,即:

例如密码是123456,让JavaScript产生动态数据如afds62,323s,adfsaf2,65fs4,sa6df4a。每刷新一次,这些动态数据都是不同的。

还有一个至关重要的步骤,明文的密码的input框,必须放在<form></form>这外。而经过加密的input框,是用JavaScript从明文框获取的,用onchange、document.all.abc.value的方法。

JavaScript代码完全可以隐藏,隐藏的方法是将JavaScript程序写在(动态的扩展名)的JS文件中,该JS文件中写入不缓存到浏览器、并用访问来源判断,只限本域名内访问。

这种自行设计的加密规则,自身可以防止任何病毒的威胁,就是即使是在有病毒的机器里,依然永远不会受病毒的影响。所以加强数据安全,在这方面就是如此容易。如果您愿意的话,在这个基础上,还可以再进一步加强验证,或者开发“数字证书”。

防止数据被监听的方案设计
https的方式是对数据进行hash加密。
我们完全可以用自行设计数据加密的方式,其运行效率可能要比https高100-10000倍以上。因为https确实额外地增加了服务器CPU资源,有一个流传甚广的数据是40%。

无论是5%,还是10%,还是40%,都是不小的数据。它对较高流量的站点的影响,并不是对应的5%、10%、40%这样的影响。有可能无影响,也可能会有很大的影响。这个数值会一直变化,有可能会慢几倍,也可能会低于10%。

自行设计数据加密,方法可以有无限种。下列分享几个我常用的方式,只要您的加密规则不专项去公布、不深度公开解析算法,那么自行设计的加密方式,哪怕是世界顶尖的黑客,他也永远无法还原。因为这是一种捉迷藏的游戏,和技术含量无关。由于还原很消耗精力,所以没有人会闲到去还原这些数据。即使他用了30年终于还原了,这些数据对他也没有用处。

1. 半角字符,例如This is my coat. 这句话,用自定义加密法后是:jZubpd!zn!tj!tiU
2. 中文字符的加密有无数种。
a) 如果出于避开敏感词,只需打乱文字的排列顺序,然后在客户端用JavaScript还原。
打乱顺序的方法有很多种,比如整体倒着来,或者用穿插的顺序。例如“都是不小的数据”这句话:
倒写法:据数的小不是都
穿插法:都的是数不据小
还可以用 倒写法+穿插法。
b) 如果想彻底完全加密,可用一定规则的替换法,将所有文字替换,看到的文字全是乱码。

经过这种加密,能看到“都是不小的数据”这句话,只有客户端,任何路由服务器看到的都是乱码。

自行设计数据加密程序的CPU占用率
相对于大量的hash算法和反解析,自行设计的加密算法,上述的几个实例,建议写入数据库时直接写入加密后的数据,而不要写入 加密+还原 的数据。这样,读取数据时,会直接提取加密后的数据,此时提取数据不额外占用CPU资源;否则如果是 写入 加密+还原 的数据,则提取数据时需要重新再做一次加密,会占用一点CPU资源,但是资源占用远比hash算法要少得多,约不到1/100~1/10000。

提取服务器里加密后的数据后,传给客户端。在客户端,用JavaScript进行还原,还原的过程中会占稍微用一点客户端浏览器的资源,这个资源的占用也可以几乎忽略不计,因为它相对应的JavaScript程序,一旦运行完毕,便不再重复运行,此时不再占用客户端的CPU资源

https并不是唯一的出路
上述列举了这些没有https时,数据的加密方法,是想说明https并不是唯一的出路。并且,也有很多站点采用了https,但是密码是明文存储的。
所以,https对于安全级别的提升,是有限的,并非是终极的安全方式。

SSL并非是新鲜事物。2003年、2004年我在浏览很多国外网站的时候,就看到一些站点有 √ 符号的Verisign的标志,那就是SSL认证、可信网站认证。2015年、2016年我的博客更新很少,回来之后,发现有很多中文博客都突然转用了https。在这之前,大部分中文博客还是使用http。

经过大量的搜索、数据对比,最终得到了标题的结论:99.9%的网站没必要用https。

喜欢用https,有很多是博客的博主,也有老博主;
喜欢用http,有很多是站长,或者老博主。

因为对于站长来说,用处不大的https,安装、维护https是一项繁琐的工作,尤其是域名、二级域名多的时候,需要一个域名一个域名地一一安装,一一定期维护。而且会降低访问速度,增加服务器CPU资源的损耗,站长当然不喜欢https。
对于站长来说,安装https唯一的好处是:顺应潮流、好看、增加网站的可信度。

https真的提高了网站的可信度?
很多第三方的https,大部分是不需要任何审核,安装了就能直接用,然后在浏览器呈现绿锁。
这个审核,其实本身就是一种“伪命题”,审核时,只要网站不太离谱,都能通过审核
即使这种审核真的存在,审核者巴不得赶快完成、结束他的这项工作,会很快给通过审核。总之,审核的原则是只要网站不太离谱。
因此,https、SSL并不具有权威。这种“权威”,不过是SSL销售商做的宣传,或者有的用户自己骗自己(因为最终的结果是导致更好用的http会被群体废弃)。

https能加速吗?
我做了HTTPS的多组站外响应测试HTTPS的多路复用跑分测试。测试的结果,http总是比https快。在多路复用中,https并没有传说中的快,反而是多图片加载中,http比https稍快一点。

如果主机使用大陆、香港或者亚洲的机房,https基本上速度影响不大。但是使用美国主机在白天,或者美国主机在晚上的网络高峰,大家可以去掉301跳转,分别测试http、https,http明显比https快、稳定很多,而且不是一、两倍的差距,总体可能慢了4~10倍以上。

服务器上自建第三方PHP程序,使用https
这类第三方PHP程序,例如YOU2PHP这类,最好使用https,防止GF*。
最好使用自签名https,和第三方认证https的区别是少了第三方认证,其余都是一样的。这种情况,使用自签名https的理由是,自签名https安装特别方便,安全级别和第三方认证https又完全一样,只是首次访问有个安全提示。

与此同时,最好不要使用自己的博客主域名。可以用IP访问,或者备用域名,或者用hosts建立一个虚拟域名。

自签名https的安装方法如前文 http://www.auiou.com/relevant/00001512.jsp

https能否防止GF*?
不能,只能减少机率。确实能减少流量当中,中招的机率,但是不能完全防止。
因为博客页中的文字,最终是明文呈现,检测方可以获得博客、网站中的明文。(也有很多人在博客中使用https,是为了防止这一点,其实不能防止。)

网站帐号、会员系统、登录页面是否必须用https?
IT圈内目前较公认的观点是网站帐号、会员系统、登录页面,最好用https;网站可用、可不用https。所以,建网站时,可以参考这个原则,至少网站帐号、会员系统,可以让人看起来在心理上至少有可信度

但是如果从技术方面稍微深入思考、对比一下,从上述的“https究竟安全在哪里”和“防止数据被监听的方案设计”的这2个副标题以下的文字部分来看,https无法彻底防止客户端里<form></form>里的明文密码框被专项病毒获取,解决的办法是无论是http还是https,都将明文密码框放在<form></form>之外,或者开发者使用更复杂的自定义规则,能够很大地降低不安全的机率。

所以在密码传输方面,https是否真的安全,是需要分情况的。

实质上,http发送的密码如果事先在客户端加过密,那么安全级别和https是完全一样的。
如果http、https都发送明文密码,那么https的安全级别比http好一些,但是都不完全安全。

80端口和443端口哪个安全?
80端口的历史非常久远,目前我们大家尚未看到80端口不安全的大规模新闻。
http除了使用默认的80端之外,可以自定义使用任意端口(已经被占用的端口如21、22、110、465、443等除外)。
https默认用443端口。

各个端口不安全、或者潜在的不安全,我个人尚未有这方面的资料和数据。

但是这里可以从另一个侧面来说,有些web动态语言,如PHP,可以把任意的字符串,转化成可执行的语句。这本是web动态语言的一个重要功能,有了这个功能可以让程序更加强大。但如果这个功能被某些第三插件非法利用,如博客第三方插件、博客皮肤,只要是任意的php文件,那么他可以轻松写入这个语句,这就是后门,而且任何杀毒软件都查不出来,因为这个语句本身是符合正确语法的程序语句。

我试验了一下,这个后门,最短可以做到仅为21字节,即:函数(@$_GET['x'])

是哪个函数,为了公共安全,无法公布。在第三方插件、博客皮肤里,写入这个后门后,可以通过get来实现入侵者想要实现的任意功能,几乎可以控制服务器上的所有站点。

基于这个原理,一旦程序中存在后门,那么所有的端口都是不安全的,哪怕是443端口。因为443端口,可以和80端口一样运行web动态语言。

几个月前国内出现一次某面板是否有后门的风波。后门可以在任意的web动态语言里植入,而且可以用很短的字节,由于它是捉迷藏的游戏,通常很难让人发现,而且任何杀毒软件也查不出来。所以,是否存在后门,完全取决于程序作者的良心,或者有的人没有这方面的技术。

很多程序很多时候只有程序作者一个人懂。这是因为程序开发的工作量很大,比如一个几万行代码的程序,光是里面的几百行、1000行代码,一般人也没有兴趣去解读。完全解读整个项目的程序,可能还要花费开发时3倍以上的时间。这就造成了程序里的后门,是很难被发现的。

在大约17-18年前,PHP 5刚出来不久的前后,那时的web编程教程,有一章是web动态语言的安全性对比,当时是用ASP、PHP、CGI、JSP做比较。当时的比较是ASP安全性最低,PHP中等,CGI高。如今随着年代的推移,动态语言自身有了很大变化,凡是功能越多的语言,那么它的安全性,实质上会越低,例如上述提到的仅为21字节的万能后门。在这一层面上,功能和安全,是存在一定的矛盾取舍。

安全和隐私
从上述的功能和安全的规律来看,我们时刻处在一个潜在的不安全的网络环境。我们无法知道哪个软件不安全,哪个系统不安全,只能用一些杀毒软件来检测,只要杀毒软件不报有毒,基本可以放心,但是有很多不安全代码是杀毒软件查不出来的,因为它自身是符合正确语法的程序语句。

前些天有网友曾说,“在网络上,隐私是最不值钱的东西”,当时一下触动了我多年来自身对隐私保护的观点。这好比在现实中,人穷的时候,周围的人不会尊重自己的自尊,也不尊重自己的隐私。

隐私,对于每个人都是不同的。有的人,有些事情不想让人知道,有些事情让人知道了无所谓。
当然,有很多“隐私”不必刻意去宣扬,保持低调不会有错。

在网络上,帐号、密码,财务的帐号、密码,都是属于最高级别的隐私;涉及人身安全、个人名誉、或者会破坏人际关系的信息,也是最高级别的隐私。

除此之外,并没有太多不可告人的隐私。人们关注的更多的是工作、温饱、收入、家人,社会地位,面子。

确实需要高度隐私加密的信息,则尽量不用第三方程序、第三方插件,尽量自行开发数据加密算法

因为业内对https已经有一定的尊崇,https似乎会让人感觉体面。但是造成的后果是,更好用的http会被渐渐抛弃,正如很多人用https,现在回不去http。
https实质上,并没有提高太多的安全级别。

由于https特别影响网站的性能,尤其是当服务器的ping值超过150ms,如美国空间,很多网页用https访问,在有丢包的情况下,会多延迟3~5秒以上,有时延迟会达到十几秒,所以这一话题的主旨是发起挽回http的保卫战,因为它关系到整个产业链,事关每个人的利益。http的速度,例如本博客就是http,ping值在160ms~200ms,用的是最普通的VPS,因为没有启用https,所以速度快。

引发这个话题的原因是2018年7月,谷歌浏览器(Chrome)的所有新版本都在地址栏,把所有的http网址都打上“不安全”的标签。除了明文传输之外(明文传输并非不安全),目前网上尚未找到http的不安全之处。这里需要列举2个新的重要案例:1.很多编程语言自身都有一个强大的函数,可将文本转成可执行语句,然后用GET从地址栏提取要执行的内容,所以100字节以内就能制作一个万能后门,https等任何更“安全”的协议也不可能解决这个问题,因为这和传输协议无关,是和服务器程序有关;2.最近的几个月,大家可能有听说有一种“嗅探”,能扫描附近的手机号,劫持“中国×动”的短信,引发的是支付宝、银行卡等帐号的安全。(此消息大约在四五个月前,出现于通信人家园论坛。)

案例1,这个特殊函数
具体就不描述是哪个函数了,以免被恶意使用。它的正面用途是在一些特殊的程序场景里,把文本转成可执行语句。如果没有这个函数,则可能会导致一些项目失败,所以在编程中还是很需要这个函数的。

这个100字节以内的万能后门,如果被写入到一些程序里,如博客程序、论坛程序、网店程序、网站模板,甚至很多博客皮肤,杀毒软件也无法查出这些语句,因为这些语句是属于程序的基础语言,本身并不是病毒,而是被恶意利用。

所以任何第三方Web程序,安全性都是一样。是否安全,完全取决于程序作者、二次开发的作者的职业道德。这些第三方Web程序,大多是PHP程序。如果是换作别的语言如Python、Golang、Node.js等,安全性也全都一样。

这个函数在https,或者未来如果有所谓的更安全的协议,都可以正常运行。这是因为这些函数是在服务器端运行,传输协议不能对程序在服务器端产生的数据进行修改

案例2,最新的短信劫持
能够开发这种设备的人,肯定是熟悉相关的通信协议,或者已经开发多年,或者其实他可能就是曾经的内部人士。

存在这种案例,也暴露了基站的手机号身份权鉴、手机短信的传输协议等存在着加密漏洞。这种最高级别的安全问题,是必须加强加密的。

https的不利之处
对个人博客的影响暂且不大。但如果要预留做流量大的站点,对网站的速度影响就很大。
如果您的大流量站点遇到了访问上的严重瓶颈,在线人数一多就服务器无法访问,不妨试着关掉https。

另外,https不支持Cache页面缓存。

http是否会泄露密码?
密码是属于HTML里的input框,它是通过POST发送,是上行的。通常解析这个POST数据,只有终点的服务器端。所以如果POST在路由当中被劫持,无论是明文、还是加密的POST数据,也无法被解析。

通过Web提交的密码,在十多年前的浏览器,的确有大规模泄露密码的事情,就是当时的IE6,能感染网页病毒。访问这些网页之后,电脑会中毒。然后在有密码的网页输入密码,会被这些病毒在电脑客户端发送出去
这种方式,无论是在http,还是https页面输入的密码,如果电脑有这种病毒,都会同样会泄露。

总之,是否会泄露密码,http和https的安全性几乎一样,在安全的环境里它们都安全,相反如果在不安全的环境里它们都不安全。

这种网页病毒在最近的15年里突然消失了。原因应该是当时自从有了火狐浏览器,能防止这种网页病毒

名誉问题
给http打上“不安全”,严重损害http站点的名誉权。也是这个原因,大量的站点不得不采用https。
http目前尚未有大规模的明显安全问题,作为一家浏览器巨头的Chrome贸然把http加上“不安全”的标签。

在2014年以前,国外的绝大多数站点,都是http (可在archive.org查到)。

自定义加密传输方案的开发
自定义加密传输,可以有很多种方法,https不是唯一的办法。
任何自定义加密传输,速度都会比https要快。因为https会多经历几次网络间的握手。

HTTP2会提高网页速度吗?
如果您的网页用https访问很快,此时如果用http访问,永远都会更快
我在前面的一些实测数据里,无论是单页的传输,还是多图片的“多路复用”,http都比http2快,测试结果:

Ubuntu/CentOS+HTTP/HTTP2的速度测试
HTTP和HTTP2(多路复用)的实际跑分测试

网页劫持怎么办?
网页劫持,可以向通信管理局、工信部投诉。
我这边的家用宽带、校园宽带,电信、联通、移动,都没有出现过网页劫持。只是在宽带快到期时,会有网页广告:显示宽带快到期的续费通知。

只遇到以前单位的联通宽带,有传说中的网页劫持,里面是一段嵌入广告的代码,并显示广告,几乎每天都出现。

短信劫持怎么办?
听起来确实很恐怖。恰好我的某张银行卡,以前绑定的是电信号多年,然后把绑定换回移动主号,一两个月之后,就听到短信劫持的事情。

这个没有什么好办法,只能让运营商加强安全。另外,如果这种事情大规模出现,只能把绑定支付帐号的手机号,长期关机,接收短信时才开机,这样能尽量避开被扫描。

CDMA卡、联通号尚未听到这方面的消息。

Linux主机间的传输
Linux主机间,用wget传输、软件安装,目前大部分都是http协议。Debian、Ubuntu、CentOS等系统,其内置的软件源,以及相关的软件源,这些开源平台,也无法去检测当中有没有后门。

安全问题是无处不在的。在这些无法检测是否安全的情况下,只有依靠他们的口碑

手机安全
手机的安全性,比电脑要低很多,因为电脑可以安装杀毒软件、防火墙,多了一层保护。
但是国内的很多有支付性质的平台,全都把支付引导到手机上。这是因为手机人人都在用,有众多的客户群体,这些网络巨头,为了抢夺客户,所以会把支付引导到手机上。

即使稍微专业一点的人知道手机不如电脑安全,但还是不得不用。

我们要做的是尽量规避风险,比如这些支付平台,在手机上首次登录,或者很久没在这台手机上登录,都需要短信验证。短信验证大大增强了安全性,即使手机有病毒也不会导致财产安全。

另外,最重要的是用于网上支付的银行卡,不要存大额。需要存大额,再开另外一张卡。

总结
1. https主要是比http多了一层加密传输,很多方面的安全性是一样的。但在ping值大于150ms的情况下,访问速度经常会多延迟3~5秒。
2. 目前尚未有http在技术上的大的安全事件。
3. 由浏览器巨头Chrome发起的封杀http的事件,导致众多站点投入到https,是因噎废食、削足适履的做法。
4. 解决的办法是用技术手段规避风险,而不是一刀切把http都封杀。就像手机、手机短信都存在安全风险,不能把它们也一刀切、然后都贴上“不安全”的标签。
5. SSL不是新鲜事物,早在2004年那时候就已经存在。
现在的SSL商业版价格不菲,一年几千元。个人觉得更大的可能,是各大商家为了销售SSL才这样做。
免费版用于用户尝鲜,商业版他们赚到一个是一个。

这里想说的是这几年,国内的新博客圈特别青眯SSL。只有在线时间长的博客,才经历过很多年的http。直到最近一些浏览器,给Let’s Encrypt的免费证书,打上了“证书风险”,大家才慌了。这不是强迫用户去购买收费的SSL证书吗?

最离奇的关闭的中文博客
毛向辉的博客isaacmao.com(2003年时PR值7),大约2009年关闭。他曾在博客里批评过ICP备案,可能是这个原因导致博客被GF*,因为他当时发了这篇,没多久,博客就不能访问了。

访问速度严重下降
本栏目第2篇,发现ping值150ms以上的服务器,加了https,访问经常会延迟几秒。如果没有加https,访问很快。

https为什么会这样慢呢?应该是因为算法太过于复杂
如果重新优化,完全可以比http快,或者一样快。

“毒瘤”问题
虽然“毒瘤”是一个很不好的恶性词汇,但我发现这个刚流行起来的网络词,很多人说某些是毒瘤的时候,都形容得很准确,这是因为这些平台太不重视用户的体验,而且是践踏用户的体验。

比如在2018年7月给http打上“不安全”的浏览器的第一家公司,众所周知是哪家公司。这样没有职业道德底线的世界级的公司不倒闭,没有天理。用误导公众的方式,污蔑http为“不安全”,来推销SSL。

同样的事情出现在1月20日刚刚卸任的某国总统。他的卸任为什么中国官方会特别关注呢?

因为他在任的这几年,做出了很多制裁中国经济的事情。并且在去年,无底线地污蔑中国,央视对此及时反击。这次不但我们官方希望他下台,连我们公众也迫切希望如此,人心所向。

https的弊端
如果建一个博客,正好使用ping值100ms以内的服务器无妨,比如在欧美的人使用欧美主机,在中国的人使用亚洲的主机,https的访问速度几乎看不出影响。

也有很多人认为https的多路复用会加速。在本栏目第2篇,已经分析过。

无论是访问速度、响应速度,还是多路复用,实际测试,https都比http慢。是使用gtmetrix.com测试,VPS为美国主机,这样测试服务器和被测试的VPS之间,都在美国同国,网络极其流畅。

但对于建网站https就是个噩梦,因为多域名、多二级域名都要添加https,还要定期维护,是非常麻烦的事情,还会占用服务器资源,需要长期忍受网站速度下降

除了支付系统、会员登录系统需要加个https面子上好看一些,其余网站真的到目前为止还没有多少必须加https的理由。

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

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

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

SSL的业务本质
SSL其实和国内的ICP备案很异曲同工。所不同的是,SSL是各种第三方收费认证;国内的ICP备案是地方ZF机构做的免费登记。

SSL不是新鲜事物,2004年时已经有一个带√的标志的VeriSign,就是做SSL的。然后慢慢地,GoDaddy等网站,也在卖收费版的SSL。

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

SSL本质上就是给钱就认证,商业版的价格在本栏目第1篇罗列过,再重复贴一下:

万网:
GeoTrust:保护1个域名 ¥2191元/年起,保护5个域名 ¥4250元/年起
Symantec:保护1个域名 ¥4250元/年起,保护5个域名 ¥21250元/年起
GMO GlobalSign:保护1个域名 ¥11090.8元/年
中国金融认证中心(CFCA)证书:保护1个域名 ¥3400.00元/年起

西部数据west.cn:
Symantec 企业型(OV):保护1个域名 ¥3880/年
GeoTrust 企业型(OV):保护1个域名 ¥2137/年
TrustAsia 域名型(DV):保护1个域名 ¥8/年

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

如果您有多个域名、多个二级域名,SSL将是很大的一笔开支,已经是服务器费用的10倍以上;一个大的站点,如果有多个二级域名,本来1000多~2000元的总成本,如果全部加上SSL,一年就是几万元

免费SSL的弊端
Let’s Encrypt的免费SSL,现在一些浏览器加上了“证书风险”的标签,可能有人会在意,有人不在意。除了这个弊端之外,Let’s Encrypt每次只能续期3个月。

我们常常见到一些有使用https的博客,访问就会出现如下图:

或者这样的页面:

这是因为Let’s Encrypt的3个月有效期已到,续期后立刻恢复正常。

如果自己的站点因为SSL到期,出现这个提示,这时候千万不要点击“我已充分了解可能的风险”,因为点击之后,当SSL到期后自己的电脑永远没有这个提示,导致自己将来会不知道过期了。但在别人的电脑、手机里,还有这个提示。

免费SSL在浏览器上显示“证书风险”的实质
基本上就是强迫用户使用收费SSL证书。这类浏览器和给http标注“不安全”的浏览器,同样没有职业道德底线。不能说人家免费提供的同样具有技术标准的SSL有“证书风险”的问题。

虽然我的大部分网站都没有使用https,只有注册、登录的二级域名不得不加个https。对于“不安全”,或者“证书风险”的提示,我个人的感觉是:这是误导性提示。除了见怪不怪,保持从容淡定,没有别的办法。

被追捧的SSL
SSL的弊端本栏目前几篇已经分析过了,严重影响速度,维护麻烦。恰恰是中文博客现在特别追捧https,而且这两年一年比一年重视https,原因是如果不加https,一些浏览器会显示“不安全”。

借用台湾的一位大文学家的话说,https这么烂的一个东西,为什么要追捧它?

大家都不用它,它就没有了市场。

http提示“不安全”、证书风险的解决办法
这些提示本来就是误导性。我家人看到这些提示时,我都会告诉他们这些提示没关系。

运营商对http劫持的对策
有一些不一定是运营商劫持,而是路由器劫持。这些本来就是严重的非法的勾当,用户可以举报。定罪的话,问题可大可小,往大了定就是非法入侵。

为什么SSL会有市场?
能够获得市场的,都是满足一种刚需,或者底层的刚需。安全、不安全,都是他们说了算,大多数人没有提出怀疑。

SSL创造的远不止300%的利润,和域名一样,批量发售后,接近0成本。

本篇为什么会以博客开头?
因为现在的博客,是https最大的驱动力之一。

大家有没有想过一个很奇怪的问题,为什么SSL证书总是需要一年一年地(或者3个月)续期呢?而且目前最多只能续期一年。需要续期,这一点经过反思,其实不难发现,这并不是由于技术、或者安全角度的原因,而是为了便于收费啊!否则,如果没有一个有效期来约束,那么怎样制定收费标准?而且,自签名的https就能起到相等的加密作用,浏览器总是有“此连接不受信任”的安全提示,再次印证了https的商业目的(请见本文最后)。

这个运营的底层逻辑是:假如https真的能够起到实质的安全作用,一、不应该强制收取这么高的费用(商业版,一个域名一年2000多元、3000多元、4000多元,GMO GlobalSign更是达到了1个域名11090.8元/年),因为它没有什么后续的开发成本,所以可以像http传输一样几乎是没有额外的成本,也就是说,安全传输是属于基础的设施,而不应该额外收费;二、SSL证书文件过于冗长,加密过于复杂;三、数据安全,浏览器、以及网页开发应该承担很大的安全责任和义务。比如有密码输入的地方,https只能降低明文发送的次数,但不能防止本机的密码窍听的病毒,也就是说,https还是不安全的。

业内从来没有听说过,某某SSL运营商停止某个网站的SSL,说您的网站不符合规定,撤消您的SSL证书。只要交了SSL年费,目前尚未有被运营商撤消SSL的新闻。因此,任何网站都可以申请SSL证书

总之,数据安全,是需要网站的开发者,开发的时候,运用多条方案,例如即使没有https的情况下,http都可以做到如下这样的安全作用,而不是像SSL销售商一样抛出一个能每年赚取高额利润的SSL证书:

1. 隐私页面,运用Cookies,需要登录才能看到网页的内容。这样,即使用http访问,也可以最大程度地保护隐私。

然而,用https访问新闻页面、博客页面这类直接就能呈现文字的页面,并没有使用隐私保护。因为https的URL,还是可能会记录在运营商的服务器上。

2. 密码输入的页面,解决的方案之一,我个人开发的方案,就是密码输入<input>框,是放在<form></form>之外的。<form></form>里有多个<input>加密数据。

网页客户端编程,目前全世界唯一的语言是JavaScript。JavaScript的程序,是可以隐藏的,因此,在前端的密码加密,是可以隐藏的。

比如我在2019年编写的这个登录页面(https://secure.eonval.com/user/login/cn/blogval),以及Feedval阅读器的登录页,就是采用上述我自行设计的这个的方案:密码发送,密码是加密的,服务器端保存的也是再次加密的数据,不保存明文密码。

https不是高科技
这个时代,但凡是新出一样产品,iPhone 12、iPhone 13、https、最新版微信,都容易被当作是高科技。可是,当10年之后我们再看当年的这些眼前的高端产品,是不是很多变成了古董?

当然,不可否认的是,现在的手机的做工,越来越加精湛,手机的外观总是越来越漂亮。

2023年马上就要到来了,这也许将是一个很特殊的历史年份。2023年的到来,意味着人类原有的技术,没有几样是真正的革命性的高科技。因为人类已有的科技,大多数是为商业服务的,凡是为商业服务的就不能称为真正的高科技,而是攫取高额利润的工具。

关于2023~2027年的事件,前面已经谈过很多次了。它并非玄学,而是不为人知的宇宙计划。

在世界变革的面前,所有假的高科技,在那一刹那,都会摘掉它的面具。

正如2020年初至今爆发的疫情,大家有没有感觉到这个世界级的事件,是不是只有在科幻电影里才有可能发生?

其实,能够制造这类世界级的事件,是人们群体自身的意识。正如https的存在,资本家向人们传播http是不安全的,从而让人们去购买所谓的安全的SSL证书。

自签名的https为什么会提示“此连接不受信任”?
自签名https首次访问,都会提示“此连接不受信任”(以火狐为例),如下截图,这个提示是因为没有第三方认证,并不意味着不安全,自己使用,完全没有问题,点击“我已充分了解可能的风险→添加例外”。

自签名的https就能起到加密作用,加密传输的作用和收费版https没有区别,而且自签名的https无有效期,是永久免费使用的。出现这个安全提示,就是https运营商担心自己的收费版https卖不出去,从而用某种商业的方法,让浏览器出现这样的安全提示:

自签名的https如何安装?
当时我在网上找了很久很久,没有找到,是在调试中无意中摸索到的,因为我发现有时候竟然Debian系统自动安装了https。

原来,Debian、Ubuntu下,Apache是自带https的,只需开启它,详细请见前文:干货:Debian/Ubuntu的自签名https的安装(Apache)

因为我不使用Nginx,所以暂时没有Nginx安装自签名https的方法。

首先,善良不分国界,但是整体来说个别的美国人不善的概率大于中国人。在前一篇《续5》,提出了“底层逻辑”“资本家”这2个词,这在本博客是首次。本文是想把《续5》里谈到的一些内容,再继续展开,说得更清楚一些,做几个重要补充。首先,什么是底层逻辑?底层逻辑在这里,就是不考虑公众对https的想法是怎样的,因为那就是资本家、财团们想要的效果、设置的圈套。而要综合衡量,https究竟有怎样的利弊。总之,https目前的现状,伤害的是全球众多网站的利益,浏览器把http标为“不安全”,也是把商业上的厚黑学运用到极致,所有的良知、人性在那一刹那瓦解

这么显而易见的做法,却很少有人发现他们是打着安全的旗号,攫取高额利润,即使是一年几美元的SSL,也有很丰厚的利润。并且,https的URL,本身就是明文的,而互联网的网页,绝大多数都是非Cookies私密页,这样的加密,并不能起到私密作用,只能防篡改web。

经过反思,昨天我想到一个词“资本主义”,中学的历史、政治都讲过它的概念。然后,我在百度上搜索这个关键词,对比百度百科上对这个词的解释,发现https的运作,条条都符合“资本主义”的定义和特征。如今的房地产,更加符合这个概念。这些概念套用到https,现在的现象是:资本之间(即https销售商之间、浏览器开发者之间)存在着竞争,但实质上则趋于垄断;https和浏览器的发展,现在已经处于第2阶段:垄断资本主义。因为https销售商、浏览器开发组织,都是互相合作的,各自拥有对方的股票,表面上是在竞争,实质上他们的竞争越来越少,抱团合作越来越多。

关于免费SSL证书
绝大多数的个人站长、博客,都是用免费SSL证书。一说到https,大家都会想到免费SSL证书。然而,国内外的主推,还是收费版。既然会有这样大力的主推,那么一定会有大量的企业购买。

所以,收费版的SSL,是一个不可忽视的话题,因为免费SSL证书将来有可能会消失,这不是危言耸听。比如Let’s Encrypt,在2021年9月做了调整,所有的证书都会在9月30日到期。在那一段时间,我试了很多次,Let’s Encrypt已经无法全新安装,但在那之前申请的SSL能续期(现在未测试)。

免费SSL证书存在的意义,是在为收费版做宣传。

免费SSL,就像以前的免费空间、免费域名一样,收费模式一旦成熟,免费的SSL就会逐渐消失。或者将来也有可能免费SSL,功能受到越来越多的限制,迫使用户使用收费版。

收费版SSL证书的高额利润
国内的价格是一个域名一年2000多元、3000多元、4000多元,GMO GlobalSign更是达到了1个域名11090.8元/年。国外的价格,大约是国内的1/5~1/2。

这么高的价格,全球又有无数的域名,那么SSL证书,就是把海边数不尽的沙粒,都变成了金钱

对于个人站长、博客来说,未来的收费版SSL证书,定价也应该不会太贵,有可能是一个.com域名的价格,或者是.com域名价格的一半,一年几美元,前几年的GoDaddy上的SSL证书就是这样的价格。对每个人来说,价格上并不太贵,但是多个网站安装、惦记续期这个可有可无的SSL,实在是太麻烦

今天打开GoDaddy的网站,发现SSL证书已经涨到一个域名377元人民币/年,相当于一个.com域名的6.5倍~7倍,相当暴利。

在未来,免费版SSL如何被限制?方式应该有很多,逐渐迫使用户使用收费版。

不得不安装https的环境
因为自从2018年7月,某浏览器把http在地址栏打上“不安全”以来,这一两年火狐浏览器也有了http“不安全”的标识,很多网站不得不安装https。

由于可见,这些浏览器开发商之间,已经由10多年前的推广阶段,进入了现在抱团垄断的阶段。如今的浏览器,可以随意操控大众的群体意识:让人们认为http不安全,https是安全的。

《续5》的几个关键词
为什么会类比2023计划、疫情?2023计划是积极正向的,疫情是被动的。但相同的是,这2件都是全球性事件。除此之外,2029计划(道西战争),盎格鲁·撒克逊计划(未来几年全球人口灭至5%),都是负向的全球性事件,这2个负向的计划决非穴来风,真实存在的可能性在98%以上,因为我是多年做这方面探索的。

https,是人为制造的全球性事件。(https计划属于负向计划)

但是,比起2023计划、2029计划、盎格鲁·撒克逊计划,https事件却很微小,小巫见大巫,就像蚂蚁见到大象一样。

(疫情这个只有科幻片才能出现的全球性事件,很有可能和2029计划、盎格鲁·撒克逊计划这2个负面计划有关,详情和视频资料请见前文,但是结果很可能会计划破灭,因为有更强大的正面势力在守护地球。)

https计划和人性有关,关于美国人的人性背景
关注一个国家的人性、道德,需要看一个国家的人口比例的自觉的真的宗教信仰。美国是一个基督教国家,有相当庞大比例的人信仰基督、信仰上帝,按理说这应该是世界上最有良知的国家了,为什么还会存在很多无仁义道德的霸权的事情?也许有很多人是走形式,并非真信。

相比之下,中国人有没有宗教信仰?其实,有真信仰的人是很少数的。因为中国人的温饱、生存是主要问题,全国有6亿人工资不到1000元。对于没有普遍自觉宗教信仰的国家,集体的人性善恶,是很难说的。

宗教信仰是一方面,宗教信仰是民众的自主行为;另一方面,一个国家的首脑,也能反映一个国家的群体意识。

美国的前前总统,讲话幽默的奥巴马,中国是很欢迎他的。
2021年初刚卸任的前总统×××,我们的官方是抵制他的,因为2020时美国污蔑China时,他就是事件的发起人之一,国内的新闻媒体也没有透露过这个内情。

(实情是,中国是中庸的国家,绝对不可能做出伤害其它国家的事情。参与Camlot工程的比尔·瑞恩,就在2010年时精准预言了2020年发生的事情,也为中国做了澄清,部分视频截图。)

之后不久,2021年初卸任的前总统×××建了一个网站,国内还有很多网友关注(有追捧的倾向)。就是这样一个曾经污蔑China的人,为什么要追捧他?因为大多数国人,都不知道这件事。

总统都可以做这样的事情,那么浏览器给http打上“不安全”的作恶,相对来说要小得多。对他们而言,反正作的恶也不大,那就标上“不安全”吧,并且能带来无穷的利润

在https安全上,全世界的人,都错信了美国商人。

来源:http://www.auiou.com/relevant/00000909.jsp

来源:http://www.auiou.com/relevant/00001513.jsp

来源:http://www.auiou.com/relevant/00001670.jsp

来源:http://www.auiou.com/relevant/00001743.jsp

来源:http://www.auiou.com/relevant/00001943.jsp

来源:http://www.auiou.com/relevant/00001944.jsp

评论

此博客中的热门博文

Tailscale 开源版中文部署指南(支持无限设备数、自定义多网段 、自建中继等高级特性)

iOS任意版本号APP下载(含itunes 12.6.5.3 最后带AppStore版本)

关于 N1 旁路由的设置

Mifare Classic card(M1卡)破解过程记录(准备+理论+获取扇区密钥+数据分析)

Blogger搭建国内可正常访问博客(超详细教程)

一些免费的云资源

打造一个可国内访问的Blogger(Blogspot)方法

百度站长平台中接入Blogger博客

Mifare Classic card(M1)卡破解过程

重新学习并解锁emby4.6.7,4.7.2版本