IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    CNNIC发布中间人攻击证书,及各种操作系统、浏览器清除方法

    李惟发表于 2015-03-25 03:21:05
    love 0

    ★CNNIC到底干了啥事?

    最近这段时间,CNNIC 不甘寂寞,又在 CA 领域,搞了点小动作。今天先来说一下,CNNIC又“坑蒙拐骗”了哪些主?

      这件事情再次显示,互联网证书颁发机制公开透明的必要性。

    谷歌英文博客原文:Maintaining digital certificate security

    Mozilla英文博客原文:Revoking Trust in one CNNIC Intermediate Certificate

    参考资料:中国互联网络信息中心(China Internet Network Information Center,缩写为CNNIC),是经中华人民共和国国务院主管部门批准,于1997年6月3日成立的互联网管理和服务机构。中国互联网络信息中心成立伊始,由中国科学院主管;2014年末,改由中央网络安全和信息化领导小组办公室、国家互联网信息办公室主管。

    ◇Mozilla.org

    可能某些IT圈外的同学会问,Mozilla是嘛玩意?简单地说,“Mozilla 和 Firefox 的关系”就好比“微软和 Windows 的关系”。因此,Firefox 自带哪些 CA 根证书,是由 Mozilla 组织决定滴。
    话说2009年初那会儿,CNNIC 里面的某个员工(liu_yan@cinic.cn)到 Mozilla 网站提交了一个申请:要求将 CNNIC 加入 Mozilla 的 CA 列表。此申请经过几个月的讨论。到了2009年底,审批获得通过。至此,CNNIC 正式成为 Mozilla 的 CA 之一(请看“Mozilla官方的CA列表”)。懂洋文的同学,请自行到“这里”看详细的申请过程。
    因此,从 Firefox 的3.6版本开始,其内置的诸多根证书中,将会包含 CNNIC 提供的根证书。

    ◇微软(Microsoft)

    说实在的,俺不清楚 CNNIC 是如何忽悠微软,让微软把它也加入到 Windows 内置的 CA 列表中的。不过这已经不重要了。现在,老流氓已经把它脏兮兮的触角,伸到了微软那儿。列位看官如若不信,可以去看“微软的CA列表”。
    今后,如果你安装了微软新的操作系统,多半其已经包含了 CNNIC 的根证书;即便你一直使用老版本的 Windows,也可能在自动升级了某个Windows补丁之后,把CNNIC的根证书带到你的电脑中。

    ◇Entrust.net

    除了 Mozilla 和微软,还有一个组织也被 CNNIC 牵连了,那就是 Entrust ——国外一家比较老牌的 CA。正是由于该 CA 比较老牌,因此 Windows 系统(至少包括 Win2000 之后的版本)中以及 Firefox 中,都已经内置了它的根证书。
    老流氓大概是花了些银子,于是该CA提供的根证书就信任了CNNIC制作的某个SSL证书。
    到了2010年下半年,Entrust 大概也意识到 CNNIC 的名声太臭,就解除了跟 CNNIC 的信任关系。所以,如今【新的】Entrust 证书,已经不再信任 CNNIC 的 SSL 证书了。如果你的浏览器是新版本或者 Windows 系统更新过新的补丁,其内置的 Entrust 证书应该是安全的,不用清理了。如果你吃不准Windows系统或浏览器内置的Entrust证书是否安全,请根据本文后续章节“★如何确认门户已经清理干净”介绍的方法判断。

    用浏览器访问一下 https://www.cnnic.cn 记得用 HTTPS 协议哦,如果浏览器没有报告证书有问题,那么你很有可能受到CA证书的中间人攻击了

    ★这事儿对咱有啥影响?

    那电脑中有了 CNNIC 的证书,会出现啥鸟事捏?俺大概说一下。

    ◇“中间人攻击”的风险

    中间人攻击的风险,是最危险的,也是最经常被提及滴。
    CA 证书对于 https 协议的重要性(可以防止攻击者伪造虚假网站)。既然 CNNIC 已经成为合法的 CA,那它就能堂而皇之地制作并发布CA证书。然后捏,再配合GFW进行DNS的域名污染。那GFW就可以轻松搞定任何网站的HTTPS加密传输。
    可能有些小朋友心里会犯嘀咕:GFW 会有这么坏吗?GFW 和 CNNIC 一起进行中间人攻击(一个负责在 DNS 上做手脚、另一个负责伪造 CA 证书),简直是天生一对、黄金搭档!

    ◇ActiveX控件的风险

    另外一个大伙儿不太关注的风险,是关于 ActiveX 控件的问题。前几年,很多恶意软件(包括流氓软件、木马)都是通过 IE 控件的技术,安装到大伙儿的电脑上。后来微软加强了对 ActiveX 控件的验证:在 IE 的默认设置下,对于【没有】数字签名的 ActiveX 控件,默认是拒绝安装滴;而对于有数字签名的控件,则会给出提示。
    因此,老流氓 CNNIC 可以很轻松地给自己的 ActiveX 控件制作数字证书。然后把控件放到网上。某些粗心的电脑用户看到IE跳出的安装控件提示,多半没细看,直接就点了“确定”按钮。

    ★如何清理门户?

    其实网上关于如何去掉证书的操作指南,多如牛毛,所以俺就简单说一下。
    有些浏览器(IE、Chrome、Safari)使用的是操作系统的证书体系。这种情况下,你需要把 CNNIC 证书从操作系统的证书体系中去掉。还有些浏览器(比如Firefox、Opera)是自己带了一套证书体系。你只要在其配置界面,把不要的证书去除即可。下面分不同的浏览器,不同的操作系统,分别介绍。

    ◇清理Windows的证书(适用IE、Chrome、Safari)

    对于使用 Windows 下的 IE 或 Chrome 或 Safari 浏览器,则需要执行如下步骤:

    1. 运行 Windows 的证书管理器(到命令行执行certmgr.msc)。
    2. 选中“受信任的根证书颁发机构”=>“证书”。
    3. 查看右边的证书列表。如果里面已经有CNNIC的证书,直接跳到第7步。
    4. 下载现成的 CNNIC 证书(要解压缩出来),下载地址:http://pan.baidu.com/s/1gdvkinL
    5. 鼠标在“受信任的根证书颁发机构”=>“证书”上点右键。在右键菜单中点“所有任务”=>“导入”。
    6. 出现一个导入向导,根据先导一步步的提示,把上述 CNNIC 证书导入到证书列表中。
    7. 选中 CNNIC 证书,点右键。在右键菜单中点“属性”。
    8. 在跳出的属性对话框中,选中“停用这个证书的所有目的”,然后确定。
    9. 最后,为了保险起见,再把这三个证书,导入到“不信任的证书”中(方法和上述类似)。

    注:上述操作仅对当前用户生效。如果你的 Windows 系统中有多个常用的用户帐号,要对每一个用户进行上述设置。

    ◇清理苹果 Mac OS X 的证书(适用于 Safari、Chrome)

    对于使用 Mac OS X下的 Safari 或 Chrome 浏览器,则需要执行如下步骤:
    请到“实用工具”=>“钥匙串访问”=>“系统根证书”=>“证书”,找到 CNNIC 的证书并双击,改为“永不信任”。

    注:如果你的界面是洋文,其操作方式也八九不离十。俺就不再啰嗦了。

    ◇清理 Linux 的证书(适用于 Chrome、Safari)

    对于 Debian 或 Ubuntu 系统,以管理员权限进行如下操作:

    方法1:
    运行命令:dpkg-reconfigure ca-certificates 会出现一个图形界面,把CNNIC证书不选,并确认。

    方法2:
    编辑 /etc/ca-certificates.conf 文件,把 CNNIC 证书对应的行删除或注释掉。然后用命令 update-ca-certificates 使之生效。

    注:对于其它 Linux 发行版本,也有类似操作,俺就不再啰嗦了。

    ◇清理 Firefox 的证书

    不论是在哪个操作系统下,只要你用的是 Firefox 浏览器(它的证书体系独立于操作系统的),则需要执行如下步骤:

    1. 从菜单“工具”=>“选项” ,打开选项对话框
    2. 切换到“高级”部分,选中“加密”标签页,点“查看证书”按钮。
    3. 在证书对话框中,切换到“证书机构”。
    4. 里面的证书列表是按字母排序的。把 CNNIC 打头的都删除。

    注:如果某个证书是 Firefox 自带的,则删除之后,下次再打开该对话框,此证书还在。不过不要紧,它的所有“信任设置”,都已经被清空了。

    ◇清理 Opera 的证书

    不论是在哪个操作系统下,只要你用的是 Opera 浏览器(它的证书体系独立于操作系统的),则需要执行如下步骤:

    1. 从菜单“工具”=>“首选项” ,打开首选项对话框
    2. 切换到“高级”标签页,在左边选择“安全性”这项。
    3. 点“管理证书”按钮,出来一个证书的对话框。切换到“证书颁发机构”标签页。
    4. 找到 CNNIC 的证书并选中,点“查看”按钮,在证书属性对话框中,把“允许连接到使用此证书的网站”的打勾去掉

    注:俺是基于 Opera 10.10 进行操作。新版本的界面可能略有差异。

    ★如何确认门户已经清理干净?

    为了保险起见,在完成上述的清除工作之后,你需要用浏览器访问一下 https://www.cnnic.cn 记得用 HTTPS 协议哦。
    如果你的浏览器报告该网站的证书有问题,那恭喜你,你的门户清理干净了 :-)
    如果该网站的页面顺利打开,那你就要重新检查一下,看上述操作是否出了差错。

    ★可能的副作用

    有些国内网站已经开始使用 CNNIC 的证书,目前已经知道的有163邮箱(真鄙视网易)。但是甭担心。去除证书后,浏览器在访问上述网站时,会给出一个证书的安全警告。你只需添加一个安全例外即可。

    ★引申阅读

    另外列举一些相关的资料给大伙儿参考:
    最最最严重安全警告 此文是 AutoProxy 的作者 WCM 亲自写的。09年就已经在网上广为流传。
    CNNIC 我不信任你——从受信任的根证书里赶走 CNNIC 这篇文章也被多处转贴
    noCNNIC 已经有热心网友搞了一个自动清除工具,俺还没空去试验。

    您可能也喜欢:
    xss攻击入门
    [安全科普]SQL注入与XSS攻击
    跨浏览器基础事件,浏览器检测,判断浏览器的名称、版本号、操作系统
    危险:存在恶意软件!
    MyEnTunnel使用私钥证书登录
    无觅


沪ICP备19023445号-2号
友情链接