为什么在12306买火车票要装根证书?

12306主页上有一段很显眼的文字—--“为保障您顺畅购票,请下载安装根证书。”这段文字和12306很多的其他问题一起成为网友诟病12306的话题,但是这个看似安全的根证书确可能会成为让12306用户们的安全受到严重威胁的东西。

  为什么在12306上买火车票要装根证书?想要回答这个问题,那么我们就必须先要提前回答说几个定义:

  电脑在与服务器交换敏感信息时会使用一种叫做SSL的加密方式。在很多情况下,交换敏感信息必须要通过这个方式来进行。包括12306在内,淘宝、京东等在交换敏感信息的时候都使用了SSL进行加密。

  那么,我们怎么知道网站是否使用了SSL加密呢?最简单的办法就是看看地址栏——如果网址前面写的是“https://”,那么这个页面就是使用SSL加密的。这意味着你访问的页面是安全的并且可以用来交换敏感信息。如果你使用的是Internet Explorer 7或者以上版本浏览器,你应该能在浏览器地址栏的最右边看到一把小锁头。就像下图所示的那样。点开这把小锁头,就能看到关于https的信息。

  用其他浏览器呢?现在流行的浏览器中,全部都会标示出来该网页是使用了https以防止窃听和用户的个人信息安全的。比如下边的图就是在Firefox中使用https浏览维基百科的画面。

  但是,谁又能保证https的安全呢?这里就又是一个概念:数字证书认证机构。它的译名很多,不过大致意思对就可以了。英文Certificate Authority,经常被缩写为CA。下文中也使用“CA”来称呼数字证书认证机构。

  CA是一个机构——打个比方,这就像是信用卡一样。一个人向银行申请信用卡,就像网站向CA申请证书。CA觉得网站的信用合格,就签发SSL证书;银行觉得申请者的信用合格,就签发信用卡。等等,什么又是“SSL证书”呢?这就是CA签发给网站用以证明网站身份的“信用卡”。有了SSL证书,加密网页才能被信任。当你在访问一个被https加密的网页时,网页会出示一份证书,这份证书有助于用户信任这个网站。没有正规CA签发的证书的网站是不会受到浏览器的信任的——就算你用了SSL来加密也没用。

  再看看前面的两张图片。第一章支付宝的截图中,CA就是:VeriSign Class 3 Public Primary Certification Authority - G5

  第二章维基百科的截图中,CA是:DigiCert Inc

  浏览器又上哪知道CA是正规的呢?那就是根证书库,这是一个操作系统认为可以被信任的CA的名单。几乎每个能上网操作系统(甚至包括诺基亚最弱智的S40系统)都有一个。在这里用Mac做示例。Mac的根证书库在:

  Finder-应用程序-其他(提示:OS X Lion或者以下操作系统叫“实用工具”)-钥匙串访问

  然后在最左边找“系统根证书”,点进去便是。看到的应该如下图所示。

  可以试着找一下VeriSign Class 3 Public Primary Certification Authority - G5—--肯定能找到!每次浏览器浏览https网页时,都会把网站出示的证书在这个库里面找一圈,能找到就OK,找不到的话,就证明你这个CA是不可靠的!

  SSL加密的目的除了保证用户信息在传输过程中的安全外,还保障了服务器的身份。有些简单的SSL证书仅仅需要用该网站域名的邮箱向CA发封邮件就能签发了——不过如果是一个组织、团体、基金会或者盈利性机构(尤其是类似于支付宝或者PayPal的网络支付服务),那么SSL证书的签发就会变得十分繁琐。网站需要提供大量的文件以证明该网站是可靠的。如果能够证明该网站是可靠的,CA才会给签发证书。

  还有一种证书被称作EV SSL证书(Extended Validation SSL),这种证书遵循全球统一的严格身份验证标准颁发的SSL证书,是目前业界最高安全级别的SSL证书。这种证书显示起来,就是俗称的绿色地址栏证书。在IE 7和以上IE浏览器便会出现绿色地址栏,并且滚动展示该网站的信息和CA信息。如下图所示。

  EV SSL的申请手续更复杂,申请费用也更多,但是可以换来更多用户的信任。左图是Firefox下显示EV SSL证书的样子。这个证书证明了这个网站的经营者为Wikimedia Foundation, Inc.,并且位置位于San Francisco California, US

  据一个叫做VeriSign的CA的统计,使用EV SSL能大幅提升用户对于网站的信任。

  总而言之,SSL证书的目的有两个:

  • 确保网站和用户之间的数据是加密并且可靠的
  • 确保网站所宣称身份的真实可靠

  如果访问12306.cn会出现什么情况呢?12306的确使用了SSL来加密以保障网页的安全,而访问直接访问12306就算不安装根证书也不会出现任何问题。以Chrome为例,访问主页不会出现任何问题,但是若要访问购票页面就会无法访问,如下图所示。

  12306会让我们访问一个叫https://dynamic.12306.cn/otsweb的网址。如果我们直接用Chrome访问这个网址呢?华丽丽的一幕出现了:

  使用IE8浏览这个页面会出现这样:

  回到Chrome,如果我们点击“仍然继续”,就会正常的看到购票页面没有任何阻力。IE8也是一样,不过IE8的地址栏整个都会变成红色的。

  如果我们点击旁边的小锁头来查看关于这个证书的信息呢?会出现下图。

  再点击“证书信息”,会看到这个12306的证书是一个叫做SRCA的CA签发的。

  但是在“钥匙串访问”里面根本没有一个叫做SRCA的CA。

  如果安装上了首页给出的“根证书”,(依然以Mac为例)钥匙串访问里面就会有一个叫做“SRCA”的CA!并且本来这个证书是不受信任的,安装之后就会被设置为“此证书已被标记为受此账户信任”。

  这样的话,浏览器和操作系统就会信任这个证书,便不会给予CA信息不对的提示了。

  “SRCA”又是何许人也?在上图中,可以看到SRCA的细节部分,“组织”填写的是Sinorail Certification Authority

  这也就不难分析了,“Sinorial”中的“S”和“R”,“Certification Authority”的“S”和“A”,就拼出来了“SRCA”。

  在搜索引擎中搜索Sinorail Certification Authority中的Sinorail,就会找到这样一个网站。叫做“中铁信息工程集团”。网址就是http://www.sinorail.com/。

  听名字就知道这网站跟12306肯定是亲戚关系。换种话说,就是自己给自己发证书。你说这证书能可信吗?

  正规CA的证书可不是白给的。要不然CA靠什么吃饭?一个SSL证书从每年三百块RMB到一万五不等。据我所知,最贵的证书是VeriSign签发的,一万五的那个就是他。而便宜的三百块证书——只要不是VeriSign,其他CA签出来的最便宜的证书差不多都这个价。比较便宜的代表是Go Daddy、Comodo等。为什么12306要使用自己给自己的证书呢?貌似唯一的合理解释就是省钱。能省大概三百到一万五不等。

  铁道部有时候买一张火车票就差不多够一年的证书钱了。

  那么又为什么说铁道部用自己的证书不安全呢?有些人在12306上买票时会看到“该站点安全证书的吊销信息不可用,是否继续”的提示语,这又是什么意思呢?

  从前有个倒霉的的荷兰CA,叫DigiNotar。这CA被黑客攻破,导致这家CA办法给一些用户的证书的私钥失效(私钥是在SSL加密环节中非常重要的东西),这就使得以这家CA的名义伪造证书成了可能。黑客可以通过这家公司的名义伪造证书给一些非法网站,客户一看这是加密过的还是大型CA签出来的证书便很容易信任。因为DigiNotar名气很大,并且很多大公司都使用它的证书,微软等操作系统厂商在这事情发生之后开始忙不迭的发布更新补丁来宣布DigiNotar的证书失效。

  微软在 KB2607712 补丁中宣布了DigiNotar的根证书无效。原文如下:

Microsoft 已获悉 DigiNotar 颁发了至少一个虚假数字证书,DigiNotar 是受信任的根证书颁发机构存储区中出现的一个证书颁发机构。虚假证书可能用于哄骗内容、执行网页仿冒攻击或者针对所有 Web 浏览器用户(包括 Internet Explorer 用户)执行中间人攻击。虽然这不是 Microsoft 产品中的一个漏洞,但是此问题会影响 Microsoft Windows 的所有受支持版本。

  这家倒霉公司最后因为这件事华丽丽的破产了。

  正如这件事一样,有些知名CA出了事,微软这些系统厂商会忙不迭的发布补丁来宣布该CA的根证书失效——有些小CA,尤其是“SRCA”这样貌似只给12306.cn一个网站签证书的CA,人还懒得管你呢!那么小CA的私钥失窃之后会有什么不就措施呢?那就是证书吊销列表,英文全称Certificate revocation list,简称CRL。下文也称呼它为CRL。更详细的内容可以参考这里这里(英文)

  CRL是干什么的呢?比如你买的证书被盗了,只要将信息报告给CA,那么CA就会把你这个证书的信息添加到这个CA的CRL中,每次浏览器浏览加密网页时,都会检索CRL信息——如果没有的话,就会提示该站点安全证书的吊销信息不可用,是否继续。想必读到这里大家也都知道了,12306的证书没有CRL信息。这也就意味着,12306所使用的证书一旦失窃,系统厂商不会管这个,甚至连最后一根救命稻草CRL都没有。

  简而言之,如果证书出了事,两种解决办法:

  • 系统厂商发补丁宣布该证书失效
  • 通过CRL宣布证书失效

  不过可惜的是12306出了事,这两招哪一个都不顶用。

  如果证书失窃,会有什么后果?最可能的后果就是像前面的倒霉蛋一样倒闭。不过我大天朝铁道部(尽管已经倒闭)欠了两千多亿还巍然不动,这个可能便没有了。前面提到的两种解决方案一个也用不了,这就意味着遭殃的一定是用户。证书失窃,任何人都能用此来伪造虚假证书。尽管SRCA颁发的证书默认是不受到系统信任的,但是中国这么多去过12306网站买过火车票的人——假设所有人都安装了这个根证书使的系统对此证书信任——一个绿色地址栏都能提升用户这么大的信任,违法网站只要获得了SRCA颁发的证书,岂不就能轻易骗得用户的信任?

  如果你是Mac用户,并且访问https://www.12306.cn没有任何障碍,那么可以参考这个视频中的步骤来将SRCA的证书设为不信任。如果要购票,反其道而行之即可。

  从证书的角度看,中国很多大佬都做的非常不到位。比如我手里的建行网银,在安装U盾的时候必须安装一个网银根证书。SSL证书方面中国也做的很不到位。比如京东只有在用户登陆的时候才用了SSL来加密,而京东甚至在下订单的时候依然是明文传输。新浪微博在更改个人敏感信息时仍然使用明文传输,而twitter在早期甚至连微博内容都用https。如果使用不加密的公共Wi-Fi的话,那么在同一个Wi-Fi热点下有一个黑客,黑客便可以非常轻松的窃取到你的个人信息。

  P.S.:现在12306在付款的过程中使用了VeriSign签发的合格的证书,但是这样并不代表着上面所说的可能造成的严重影响不会发生。

  EV SSL介绍:http://www.wosign.com/EVSSL/index.htm

  这个地址打开后便可以看到EV SSL的效果:https://buy.wosign.com

  HTTPS - 维基百科:https://zh.wikipedia.org/wiki/Https

时间: 2024-10-07 04:37:27

为什么在12306买火车票要装根证书?的相关文章

抢票助手-for 12306买火车票.订票助手.高铁.动车.春运.车票管家.自动刷票.列车时刻表

下载地址:https://itunes.apple.com/cn/app/id821884019?mt=8 完全免费 1.无代理费.无保险费,无任何附加费用: 2.无任何功能限制.无使用次数限制: 强大的功能 1.抢票专家:超强抢票功能,每隔1s为您刷票: 2.上车补票:同时为您查询全程票和半程票,让您顺利回家过年: 3.完善的功能:查询余票.购票支付.改签.退票: 4.多种支付方式:支付宝.中国银联.建行.工行.农行.招商银行... 5.回家过年.探亲访友.外出旅游,抢票必备app: 6.支付

在线买火车票为什么要安装根证书?

原地址:http://personbeta.iteye.com/blog/986241 在线买火车票为什么要安装根证书? 在线买火车票为什么要安装根证书? 2012年1月8日发表评论阅读评论 本文想简单谈谈那个所谓的“根证书”.在访问铁道部网上售票官网 www.12306.cn 后,有一个醒目的提示,为保证顺畅购票,需要下载安装根证书.那么什么是根证书?为什么买火车票的时候需要下载和安装,在淘宝等在线交易网站购物时候为什么就不需要这样做? 今年开始,人民群众们终于可以通过互联网购买火车票了.虽然

12306网上买火车票选择上中下铺的方法

教你在12306网上买火车票选择上中下铺的方法 买火车票为了方便,好多人都是想要选择下铺.可是按正常方法是不能选择的,现在教你可以自由选择上中下铺的方法.记得要用电脑操作哟 工具/原料 搜狗浏览器 网络 方法/步骤 1 先进入12306官网,看看始发地是灰色的,你点击选择你的地址,或是你直接输入你的地址,让文字变成黑色的才行哟,下面蓝色的圈就是选好的.目 的地也是同样的方法输入 2 再点击时间右边的那个框,选择你要出发的时间,选择好后就点最右边的查询,就出来很多车次可以选择,你如果要坐哪个车次,

如何安逸的买火车票

前言:原来是准备着整个暑假都呆在学校,结果上了几天课之后,发现真的不好玩啊.所以准备启程回家.然后,不出所料,到12306上查了下,发现最近几天所有票已售罄,难道就回不成家了吗!不甘心的网上搜火车票,意外的发现,12306不会一次性将所有票发售,会不定时的放一些票,宁可信其有,不可信其无.然后就开始了下面的”折腾“行动. 准备:可以联网的电脑一台,一个Windows系统的VPS(我的是server2012),一部可以接受短信的手机,一颗想买到票的心. 正料:其实实现起来很简单啦,12306系统自

从公司买火车票到代理模式和适配器模式

近期看到一些设计模式的文章,自己也有了些想法. 现公司是个爱出差的公司,不可避免要买许多火车票.这个买票的流程一直在变化. 最开始大家都是自己买火车票,然后回公司的时候报销. 就像这样: public class AtFirst { public static void main(String[] args) { EmployeeABuy. Abuy(); //报销 EmployeeBBuy. Bbuy(); //报销 } } class EmployeeABuy{ public static

买火车票

大学第一寒假,人生第一坐火车.大学期间,我也很少乘坐火车.那时候我认为,买火车票,就和买东西一样简单.到今天,我才发现,这件事情竟然并不简单. 早上,被轻轻的闹钟声叫起.虽然声音很小,但即使在睡梦中,我的大脑也能接受到这个信号.这是一件很神奇的事情.人睡着的时候,大脑也可以接受信号,并作出反应. 上午八点多到了教研室,花了进一个小时来查询火车票信息,晚上九点钟,也花了一个小时.看起来有很多小细节,值得思考,懂得越多,买票也就越省心. 上午,按照昨天的计划,完善第二章参考文献相关信息.中午还是回宿

windows 如何进行网络检测以及根证书更新

最近收到一个case请求,环境如下,客户端大概1300台,全部升到win7了,服务器300台左右,部分2008R2,部分是2003操作系统,该公司采用wensense进行网络监控,买了1500个license,就是说同时只能响应1500个访问请求.现在发现,早上好多人上不了网,通过监控发现,大量的机器开机访问了www.msftncsi.com以及ctldl.windowsupdate.com两个网站,占用了大量的license.  通过进一步的研究,我们发现这两个网址的访问乃是微软的默认行为.

从支付宝插件无提示导入根证书带来的安全隐患说开去:谈谈HTTPS的加密方式

众所周知在12306购票,官方说明需要导入根证书,这算是良心的了.其实你安装了支付宝插件,就会被不知情的导入了某些[哔]的根证书,而这会带来一些安全隐患:提升遭遇中间人攻击的可能性:在你完全不知情,以为自己还在享受这HTTPS带来的安全保护的情况下,将未加密的信息完全暴露给第三方(比如GFW).而根证书是什么?为什么可能导入一个证书就可能会遭到中间人攻击的?我们从头说开去~ 一.基本概念 加密: 未加密信息:明文x 加密后信息:密文y 明文到密文之间的转换关系:y=f(x),而解密则是x=f -

手动为Android 4.x 手机添加自己的根证书(CA 证书)

首先看Android 4.x 系统的证书存放位置: AOSP Android系统中CA证书文件的位置在:/ system/etc/security/cacerts/一系列的以数字命名的.0文件 方法一: Android 4.0 已经支持用户安装根证书了,只需要将根证书放到sdcard根目录,然后到设置(Settings) – 安全(Security) – 从存储设备安装(Install from storage)就可以了,但是这样安装需要设置锁屏PIN或密码才可以. 但是,该操作需要每次打开手机