`

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

 
阅读更多

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

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

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

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



 


用其他浏览器呢?现在流行的浏览器中,全部都会标示出来该网页是使用了https以防止qie ting和用户的个人信息安全的。比如下边的图就是在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://www.evssl.cn/en/

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

  来源:techyan投稿,原文链接。

 

  • 大小: 39.7 KB
  • 大小: 39.7 KB
  • 大小: 47.5 KB
  • 大小: 17.1 KB
  • 大小: 19.2 KB
  • 大小: 31.5 KB
  • 大小: 31.5 KB
  • 大小: 9.8 KB
  • 大小: 15.9 KB
  • 大小: 32.1 KB
  • 大小: 37.2 KB
  • 大小: 28.5 KB
分享到:
评论

相关推荐

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

    "为什么在12306买火车票要装根证书?" 在12306购买火车票时,为什么需要安装根证书?这篇文章将为您详细解释原因。 首先,我们需要了解什么是SSL加密。SSL(Secure Sockets Layer)是一种加密方式,当电脑与服务器...

    12306订火车票流程

    ### 12306订火车票流程详解 #### 一、12306平台简介 12306是中国铁路客户服务中心官方网站,也是中国最大的火车票在线销售平台之一。该网站为用户提供了一个便捷、安全的购票环境,支持用户查询车次、预订火车票、...

    谷歌Chrome浏览器无法访问12306网站购买火车票该怎么办?.docx

    谷歌 Chrome 浏览器无法访问 12306 网站购买火车票该怎么办? 通过本文,我们可以了解到谷歌 Chrome 浏览器无法访问 12306 网站购买火车票的解决方法。该问题是由于新的 Chrome 浏览器提高了安全性,导致无法访问 ...

    12306火车票快递服务怎么样?.docx

    12306火车票快递服务怎么样?.docx

    12306-自动抢火车票脚本Python脚本

    人工智能12306-火车票购票python自动化脚本,分享一个中秋国庆春节回家可以用于自动抢回家票的脚本,亲测有效,电脑端使用12306火车票购票,分享一个中秋国庆春节回家可以用于自动抢回家票的脚本,亲测有效,电脑端...

    python项目练习python自动化脚本:12306-火车票购票

    python项目练习python自动化脚本:12306-火车票购票python项目练习python自动化脚本:12306-火车票购票python项目练习python自动化脚本:12306-火车票购票python项目练习python自动化脚本:12306-火车票购票python...

    php查询12306火车票

    在本文中,我们将深入探讨如何使用PHP来查询12306火车票信息,这是一个非常实用的技术,尤其对于需要实时监控火车票动态的用户来说。我们不会依赖任何第三方接口,而是通过模拟用户行为来直接与12306网站进行交互,...

    模仿12306火车票APP(微信小程序源代码),铁路12306小程序,C,C++

    本项目“模仿12306火车票APP”是基于微信小程序平台,为开发者提供了一整套源码,旨在帮助他们创建类似中国铁路12306官方APP的用户体验,让用户能够方便地查询、预订火车票。 1. **微信小程序开发**: 微信小程序...

    网购火车票时‘根证书’该如何安装.docx

    ### 网购火车票时根证书安装指南 #### 一、引言 随着互联网技术的发展,越来越多的人选择在线购买火车票。为了保障用户的信息安全,12306铁路客户服务中心官网要求用户安装“根证书”。本文将详细介绍如何安装根...

    12306 火车票 抢票 软件

    12306火车票抢票软件是一款专为解决用户在12306官网购票难问题而设计的应用程序。其主要目标是帮助用户在高峰期或热门路线的火车票紧张时,通过自动化的方式提高购票成功的概率。这款软件的突出特点在于它的快速抢票...

    模仿12306火车票app(微信小程序源代码)

    在模仿12306火车票APP的小程序中,可能用到此接口查询火车票信息、用户登录验证等。 5. **组件系统** 微信小程序内置了一系列丰富的组件,如view、text、button、image等,它们是构建用户界面的基本单元。通过组合...

    12306火车票系统

    12306火车票系统是一个在线平台,用于查询和购买中国铁路的火车票。这个系统的核心功能包括实时票务查询、车次信息显示、预订流程处理以及可能的自动抢票服务。它与12306官方网站的功能相似,但作为一个第三方应用,...

    综合案例:仿智行火车票12306微信小程序

    综合案例:仿智行火车票12306微信小程序

    12306抢火车票软件

    标题中的“12306抢火车票软件”指的是针对中国铁路客户服务中心12306官网的一个辅助工具,主要用于帮助用户在高峰期更高效地预订火车票。在中国,春节期间和其他法定假期,火车票的需求量激增,而12306网站可能会因...

    12306火车票免费抢票神器

    【标题】"12306火车票免费抢票神器"所涉及的知识点主要集中在互联网应用、自动化技术以及网络安全性方面。以下是对这些知识点的详细解释: 1. **互联网应用开发**:12306火车票抢票神器是基于互联网技术开发的一款...

    微信小程序开发仿智行火车票12306.zip

    开发微信小程序"仿智行火车票12306"旨在模仿12306官方铁路订票系统,为用户提供火车票查询和预订功能。这个项目包含了后端服务和数据库设计,通过Java的SSM(Spring、SpringMVC、MyBatis)框架和MySQL数据库实现,...

    12306火车票实时查询C#版

    【标题】"12306火车票实时查询C#版"所涉及的知识点主要集中在使用C#编程语言实现对12306官网的火车票数据进行实时查询的功能。这个项目可能是一个桌面应用程序,利用.NET Framework或.NET Core平台进行开发。 首先...

    12306火车票网站自动登录工具源码

    12306火车票网站自动登录工具源码 程序介绍: Web的原理就是,浏览器发送一个Request给Web服务器,Web服务器处理完这个请求之后发送一 个HTTP Response给浏览器。 如果我们用自己写的程序来发送Request给Web...

    12306火车票信息爬虫脚本

    12306火车票信息爬虫脚本 12306火车票信息爬虫脚本 12306火车票信息爬虫脚本 12306火车票信息爬虫脚本 12306火车票信息爬虫脚本

Global site tag (gtag.js) - Google Analytics