百科问答小站 logo
百科问答小站 font logo



网上流传的所谓「支付宝偷偷添加根证书,将造成安全隐患」的说法是否正确? 第1页

  

user avatar   Ivony 网友的相关建议: 
      

最后更新于,2013-12-21 15:50

本文是12306和招行的软文,脑残黑请出门右拐。


正确。

未经用户许可偷偷添加根证书信任是非常严重的行为!

关键点在未经用户许可,这种行为好比,你请支付宝到你家来做客,结果他把你家的钥匙给偷偷配了一把


作为支付宝,请求用户信任其颁发的证书,是合理的!

但是偷偷的跟用户的保安说,这用户是我的哥们儿,以后我介绍的人你就不要盘问了,这种行为怎么说都不为过。

由此可见,中国的互联网主要都是一群毫无节操的公司。不要使用任何请求系统权限的所谓安全控件,才能真正的保证您的安全


未经用户许可,利用安全控件窃取系统权限,安装根证书的行为,毋庸解释,流氓无疑。所谓安全目的,均是障目之术,毫无节操。(我在我电脑上就没有发现招行的根证书颁发机构)。

在这一点上,就连12306都比较有节操的让用户自行下载和安装,并且有其“正当目的”(HTTPS+CDN)。


下面有人评论说怎么能证明这个证书就是支付宝弄的。

很简单,先删除这个证书,然后到下面的地址下载支付宝的安全控件:

安全中心 - 支付宝

然后安装,就会发现alibaba.com的证书赫然出现在受信任的根证书颁发机构

证书截图:



事实上这个证书是毫无必要的,因为即使删除这个证书,支付宝依然能够登录,除了开后门,几乎没有别的解释!





证书这货到底是什么东西:

在早期的互联网时代,我们的网站、软件,都是依赖于我们自己的信任而使用的。

例如我有一套游戏的安装程序,你从我这边拷贝过去,然后安装玩。你之所以认为这个程序能够安装游戏而不是把你的硬盘格了,完全是依赖于我告诉你的。

网站也是同理,我知道cmbchina.com这个地址是招商银行,是因为招行营业厅的MM告诉我的,我信任营业厅的这个MM。

这种信任是非常薄弱和糟糕的,病毒、木马就是在这种环境下肆虐横行。你从我这边拷贝的游戏安装程序,可能已经被病毒侵袭,它当然还是可以安装游戏,但同时也会安装病毒!

营业厅的MM有可能是招行的员工,也可能是个卖保险的。尽管她大概不会给我一个钓鱼的网站,但是经常会给我推销一些完全用不到的保险啥的。


在继续讨论之前,我要引入一个新的概念,信任链

拿刚才的例子来说,你从我这边拷贝了一份游戏的安装程序。信任链是这样的:

你信任我,我是你的朋友,我没必要害你

我信任卖光盘的,他是个卖光盘的,没必要给我装病毒

卖光盘的信任刻光盘的

刻光盘的信任下载的网站

下载的网站信任上传的用户

上传的用户信任分发该份拷贝的盗版组织

…………

很显然,这么长的一个信任链,中间出现问题的可能性是非常大的。可以说,信任链越长,就越不安全

同时,因为这一份程序在这么多人之间拷贝分发,任何一个环节感染病毒,都会导致下游所有的环节感染病毒。



证书是如何解决这两个问题的

证书有两个功能:

1、身份标识,证明这个网站/软件/其他的发布者是谁(如微软、UBI、Google、招行)。

2、数字签名,确保这个网站/软件/等等的内容没有被任何人篡改。

第一个功能解决了信任链的问题,通过证书,我们的信任链可以变得非常的简单:用户 信任 发行者。

例如一个英雄无敌V的游戏安装程序,如果它是使用正确的UBI的证书签名的,那么我就可以完全的信任这个程序,可以给我安装一个英雄无敌V的拷贝。

第二个功能则杜绝了在分发过程中被篡改,植入病毒和木马的可能。

同样是这个英雄无敌V的游戏安装程序,只要他是被正确的UBI的证书签名了,那么不论我是从盗版光盘上拷贝还是从某个不知名的下载网站下载的,我都可以放心的知道,这个和UBI发售的光盘上的东西是一模一样的。



那么,我是怎么知道这个证书是UBI的呢?换言之,我是怎么知道哪个证书是正确的UBI的证书,而不是隔壁王二狗子自己冒充的呢?

这就依赖于证书颁发体系了。

几乎网络上所有的证书(除去用于个人用途的自签名证书以及根证书颁发机构的证书),都是由某个证书颁发机构颁发的。证书颁发机构负责核实证书申请者的真实身份(例如我们公司网站申请SSL证书就需要提交公司营业执照的影印件,还有证明自己拥有网站域名的材料),以及吊销被泄漏和滥用的的证书。

也就是说证书颁发机构,就是证书所有者身份的确认人。一旦你信任了某个证书颁发机构,就等于信任了这个证书颁发机构所颁发的所有证书的身份确认信息!

操作系统只会把确认好的身份信息展示给你!



神马是根证书颁发机构?

证书颁发机构和域名一样,是一个树状的结构,全球有为数不多的几个根证书颁发机构。这些根证书颁发机构轻易不颁发证书,因为一旦根证书颁发机构的证书被泄漏,所有直接间接的证书,都会受到严重的影响。

所以,根证书颁发机构一般授权二级证书颁发机构颁发证书,一旦信任一个根证书颁发机构,等同于信任其下所有颁发的所有证书,以及其授权的二级证书颁发机构颁发的所有证书

更为严重的事情是,根证书颁发机构,是整个证书颁发体系中,唯一不受任何身份验证的。其身份的正确性,由其自行保证!也就是说,根证书颁发机构可以宣称自己是任何一个公司,没有任何人和组织可以对其进行审查!

换句话说,支付宝要更没节操点,给你弄个自己签发的VeriSign的根证书装你电脑里也没商量。

事实上,根证书颁发机构是整个证书体系中,最薄弱的环节。这就是为什么上次微软在操作系统中内置CNNIC这个流氓的根证书引起了网络上广泛的质疑。根证书几乎只能由操作系统内置,通过操作系统安装程序二进制代码的安全来确保正确



下面是一个正确的证书的栗子:

这个就是支付宝网站的SSL证书。

可以看到,这里是证书路径的界面,其中指出了这个证书的颁发者:

颁发者是VeriSign Class 3 Secure Server CA - G3

颁发者的证书是受根证书颁发机构VeriSign Class 3 Public Certification Authority - G5 信任

VeriSign Class 3 Public Certification Authority - G5

就是全球为数不多的几个根证书颁发机构之一。


所以自行添加根证书这种行为,完全可以视同是木马!是后门!甚至是更严重的行为!

尤其是在现代互联网和操作系统中,这种行为是从根本上动摇系统安全的行为!



支付宝是怎么做到的?

事实上要注入受信任的根证书颁发机构,是需要系统管理员的权限的,所以当安装安全控件的时候,系统会提示这货在请求系统管理员权限(Windows Vista及以后的版本正确配置UAC的环境下):

当你看到这个界面的时候,请注意,你在打开潘多拉的盒子。一旦你点击是,那么这个应用将获得系统管理员的所有权限,对你的系统偷摸摸的更改而无需你的确认。

请谨慎使用任何请求系统管理员权限的应用。事实上如果每次遇到这个对话框你都点击否的话,你的电脑被安装病毒木马的可能性几乎是零。




我该怎么做?

对于这种没有节操的行为,最好的办法就是把他们永远的封印起来,让他们永不超生。

打开Windows运行,然后输入mmc回车,

此时会看到一个智能控制台的界面:

选择文件菜单中的添加/删除管理单元功能。

在弹出的窗口中找到证书,并添加。

在弹出来的界面上选择本地计算机账户:

完成后,在受信任的根证书颁发机构中,找到这个臭流氓:

把它拖拽到不信任的证书下面的证书文件夹去。。。。。

然后他就不能再耍流氓了,,,,


不过要谨记,你可以把他扔到不信任的区域,流氓也能自己再弄出来,或者用安全恐吓,功能缺失来威胁用户。对待这种情况,要坚决的say no!

事实上我把这个证书给干掉了,支付宝屁事儿没有。




最后纠正一下其他答案的几个误区:

1、注入一个根证书不过是能发起中间人攻击,危害不大。

HTTP SSL加密只是证书的其中一个用途!证书在现代互联网和操作系统中的应用会越来越广泛,在可预见的将来,所有的程序、邮件、文档,全部都会使用证书加密,确保其在传输、分发过程中,不被篡改。确认发行者的身份。

事实上三大智能手机平台的应用,就是用证书来确保分发不被篡改的。


2、注入根证书颁发机构是为了自己的加密用途,是合理的。

事实上,支付宝的网站,有合法的被信任的证书(上面有截图),所以没有必要自行颁发证书。并且,如果是自行加密用途,可以在服务器记录公钥私钥即可。并没有必要颁发证书来完成安全用途。

还有所举的那些银行网站,都是一堆没有节操的公司。招行就没有安装任何证书,我使用招行专业版好好的。



证书具体有些什么用途?

HTTP SSL加密(即HTTPS协议)是证书目前最为广泛的一个用途。通过服务器SSL证书的身份验证,我们可以确认我们访问的服务器是正确的网站。涉及到资金和帐号的网站,一般都使用HTTPS协议,例如支付宝、网上银行、Google登录等。

同时,HTTP SSL加密可以确保浏览器与服务器之间的通信,不被任何第三方窃取和监听。这保障用户数据的安全,所以Gmail目前已经全面使用HTTPS协议。

中间人攻击,仅仅是根证书污染可能造成的威胁之一,也是上次CNNIC证书加入到根证书中人们所最担心的事情。

简单来说,中间人攻击的主要目的是窃取HTTPS传输过程中的内容。

具体的做法是通过网络劫持(网络运营商非常容易做到,如电信联通),在用户与目标网站之间加设代理服务器。由于HTTP协议传输过程中是不加密的,所以可以窃取所有传输的资料并进行篡改。

事实上电信一直在干这事儿,莫名其妙的电信广告弹窗就是这样冒出来的。

但由于HTTPS协议使用了证书对传输过程进行了加密,并且对服务器进行身份验证,所以简单的网络劫持加设代理便宣告无效。

但如果此时,由某个用户信任的根证书颁发机构,给这个加设的代理服务器进行身份认证,并提供传输加密。那么用户通过HTTPS协议访问网站时不会有任何的异样,而以为是安全的

所以CNNIC根证书为什么会受到广泛的质疑,就是因为这个机构和中国电信是一个窝的。故而大家非常担心他会串通电信进行中间人攻击



钓鱼网站伪造,尽管中间人攻击可以直接窃取用户传输的内容,如帐号密码,但是中间人攻击仍然需要对网络进行攻击来加塞代理服务器。

而伪造一个钓鱼网站,例如什么1cbc.com.cn则简单的多。证书颁发机构可以可以确认这个网站的身份,即使你对这个钓鱼网站存疑,但是如果浏览器告诉你这个网站是安全的,你会怎么做呢?


伪造程序签名,证书不仅仅可以确认网站的身份,以及进行传输的加密,也可以确认应用程序发布者的身份,并让你信任它。

这是一个经过签名的应用程序请求系统权限的时候的提示:


可以看到,与上面支付宝的控件请求系统权限不同,这个提示的底色已经变成了蓝色,表示这是操作系统信任的一个程序,点击查看证书信息,我们可以看到这个应用程序的证书:

这个证书可以确保这个应用程序是由Disc Soft Ltd公司发布的,并且没有被任何第三方篡改过。这意味着,这个程序包含病毒的可能性取决于Disc Soft Ltd这个公司的节操。当然一般国外软件公司的节操我还是信得过的。所以我可以放心的点击是。

而这个Disc Soft Ltd公司的身份验证,则是由上面的根证书颁发机构来确认的。


其他许多场景

在最后,我想再次强调一下,证书,是现代软件和互联网行业,最为简单便捷的确保安全的方案。其广泛运用于:软件、网站、邮件、文档等等等等的加密和验证领域

尽管证书的应用目前并不广泛,但是证书却是未来互联网的信任的基石

而这个基石的基础,就是用户对根证书颁发机构的绝对信任!

请注意我这里使用的是绝对信任,因为,根证书颁发机构的证书,不能被任何组织或机构所验证,因为几乎一切互联网上的验证机制,都是通过证书体系来完成的。

我举一个栗子,我如何验证我电脑上的这个VeriSign的根证书是正确的?我们可以想出很多种办法:

1、直接问我,或者问某个安全领域的砖家。

你怎么知道我或者砖家不会骗你?万一我收了别人的钱呢?或者我也被人骗了呢?

2、去VeriSign网站查询。

你怎么知道这个网站是VeriSign的?有HTTP,有绿色的小锁?问题是这些都是基于你所信任的根证书的。如果你的根证书是假的,他肯定会弄个假的网站给你认证了,反而把那个真的网站给认证成不安全的。

3、去第三方网站下载证书的校验码。
哪个网站是可信的?没有证书的情况下,所有的网站都可能被劫持,被篡改。

所以对于根证书的绝对信任,构建了整个证书体系,也是整个互联网的安全体系。
而支付宝不告知用户自动安装根证书的行为,是从根本上破坏互联网安全的行为!



那么,如果支付宝不干坏事,我信任支付宝,是否这个根证书就毫无风险?

不是的,整个互联网和软件的安全,构筑在对根证书的绝对信任上。任何一个根证书的植入,都给用户带来了一分威胁。即使支付宝不干坏事,但如果支付宝的这个证书的私钥哪天被泄露了,后果会怎样?!

你信任支付宝,但你信任支付宝对别人的认证么?

说到这里淘宝天猫卖家要笑而不语了。。。。



最后解答一下,为什么说支付宝这种行为,比起12306来说更为恶劣,因为12306也要求安装根证书才能用啊。两点:

1、这个根证书对于支付宝的使用不是必需的,而对于12306而言,在某种程度上是必须的(否则浏览器会自动阻止12306网站的HTTPS访问)。

当然,事实上12306也有麻烦自己的方案,但是国企你懂的

2、12306是让你自行决定安装与否,这样,在使用后,你可以自行卸载或作相应处理,支付宝是强行安装,完全没有告知。

这好比,12306是给你家做装修的装修队,他说我们在这里搞装修要一个多月,你把门钥匙给我,跟门口的保安说一声让我们进来,我们好出去买材料,出出进进的方便。

支付宝呢?支付宝是你请他来你家后,转身就把你家的门钥匙配了一份,还偷偷跟你保安说,那个用户是我哥们儿,他让我随便进,还有我的朋友,也可以随便进。

尽管12306这种麻烦自己不如麻烦用户的的行为不值得提倡,但是支付宝这种不麻烦用户,把用户家当自己家的行为,则是更为无耻,没有下限的行为。


user avatar   liu-zhi-song 网友的相关建议: 
       @Ivony

的回答浅显易懂,说的不无道理。 我想再补充一下。顺便评论一下很多人提到的CNNIC乱入Windows和Firefox根证书机构的问题。

这个问题的关键在于支付宝私自添加根证书,是否有危害,危害大不大,对吧。

评论中和其他回答(如

@刘昊

)以及里面的评论对于阿里巴巴作为一个根证书机构是否具备权威性,以及安全性是否能得到保障做了很多的讨论。我认为讨论的角度有点偏。 CNNIC、12306、阿里巴巴和很多其他银行的根证书之所以不应被信任,不仅是因为它们的公正性和可信度没有得到业界和公众认可,更重要的是,它们的根证书声明了远远超出需要的权限。

什么叫远远超出需要呢?阿里巴巴和各银行的根证书如果像很多同学所说,是为了为自己的网站签名,只需要有“服务器身份验证”的权限就可以了。如果需要为各种外置UKey签名,只需要“客户端身份验证权限”,而自己的软件需要认证,只需要“代码签名”权限。

那让我们看看CNNIC声称自己用用哪些认证权限。

再来看看12306的证书

什么叫<所有>,可能大家没有概念,各位可以点开证书属性看一下

选择最下面的单选框可以看到所有的目的。上面提到的证书所声称得权限比列出的这些只多不少。

那么有威胁的权限有哪些呢?看这里

有很多各位不需要专业知识,都能看出是很过分的目的了。比如硬件驱动验证、Windows更新等等。这意味着CNNIC、12306以及Alibaba可以伪造微软的更新包或签名的驱动程序,“合法的”向你的内核插入任意代码。而这一切,由于Windows支持后台推送更新,都可以在你完全不知情的情况下发生。相比于这个安全威胁,中间人攻击什么的完全是战五渣

==============================================

对于CNNIC被微软和Firefox接纳为根证书机构的事情,这些年讨论的越来越少了。当年CNNIC进入Mozilla的根证书机构时,Mozilla社区就进行了激烈的争论。英语好的同学可以自行翻看当年的帖子。有意思的是,虽然来自中国的很多小伙伴反复列举了CNNIC过去的种种恶行(估计如果是国外的公司这么干,估计不会有人还会信任它了),Firefox的副总Johnathan Nightingale却一直在为CNNIC辩护。我不想评论Nightingale的做法。但他就事论事、讲求逻辑和证据的态度值得大家学习。


user avatar   xia-yu-14-3 网友的相关建议: 
      

一句话,随便加根证书的都是臭流氓。SSL的安全是建立在根证书靠谱的前提下,任何根证书的不靠谱都能破坏整个SSL的安全。所有以自己堂堂正正不怕监控为由拒绝承认这个安全隐患的请自行裸奔,实名上网,主动把所有网络活动数据备份交给平平安安,否则都是自欺欺人。




  

相关话题

  如何看待马云称阿里巴巴将力争到 2036 年成为全球第五大「经济体」?他关于「经济体」的论述准确吗? 
  妈妈认为在朋友圈发照片很危险,该怎么反驳她? 
  如何解读支付宝利用区块链做到了跨境汇款秒到账? 
  黑客为什么不攻击支付宝? 
  这次支付婊事件,受损最大的是 Windows Phone 平台吗? 
  如何看待白帽子在乌云网提交世纪佳缘网漏洞后被抓? 
  2019 年 12 月 5 日支付宝疑似崩溃,你们的支付宝还好吗?发生了什么? 
  苹果发布会开始前,有 iRent 服务了,大家怎么看? 
  网络安全培训哪家机构知名度高? 
  课堂上传纸条如何防范中间人攻击? 

前一个讨论
人们为什么要在微博、Facebook 等上发布自己的状态信息或者人生感悟?
下一个讨论
从小动辄挨打被骂的孩子长大后会有什么心理问题吗?





© 2024-05-17 - tinynew.org. All Rights Reserved.
© 2024-05-17 - tinynew.org. 保留所有权利