最近1-2周,关于CNNIC的CA证书问题,网上搞得沸沸扬扬。但是俺发觉,即使是一些IT行业的技术人员,也搞不太明白该问题的严重性(至于不懂技术的傻瓜用户,就更甭提了)。主要在于CA证书是一个相对专业的东东,大伙儿平时接触不多。
所以,俺打算写3个帖子:第1个用来扫盲CA证书的基础知识(也就是本帖);第2个则用来揭露CNNIC这个老流氓的丑恶历史(在“这里
”);第3个介绍如何CNNIC证书的危害及清除方法(在“这里
”)。为了达到普及的效果,俺会尽量用比较浅显,非技术的语言来讲清楚这事儿。<!-- program-think-->
★先说一个通俗的例子
考虑到证书体系的相关知识比较枯燥、晦涩。俺先拿一个通俗的例子来说事儿。
◇普通的介绍信
想必大伙儿都听说过介绍信的例子吧?假设A公司的张三先生要到B公司去拜访,但是B公司的所有人都不认识他,他咋办捏?常用的办法是带公司开的一张介绍信,在信中说:兹有张三先生前往贵公司办理业务,请给予接洽
......云云。然后在信上敲上A公司的公章。
张三先生到了B公司后,把介绍信递给B公司的前台李四小姐。李小姐一看介绍信上有A公司的公章,而且A公司是经常和B公司有业务往来的,这位李小姐就相信张先生不是歹人了。
说到这,爱抬杠的同学会问了:万一公章是伪造的,咋办捏?在此,俺要先声明,在本例子中,先假设公章是难以伪造的,否则俺的故事没法说下去鸟。
◇引入中介机构的介绍信
好,回到刚才的话题。如果和B公司有业务往来的公司很多,每个公司的公章都不同,那前台就要懂得分辨各种公章,非常滴麻烦。所以,有某个中介公司C,发现了这个商机。C公司专门开设了一项“代理公章”的业务。
今后,A公司的业务员去B公司,需要带2个介绍信:
介绍信1
含有C公司的公章及A公司的公章。并且特地注明:C公司信任A公司。
介绍信2
仅含有A公司的公章,然后写上:兹有张三先生前往贵公司办理业务,请给予接洽
......云云。
某些不开窍的同学会问了,这样不是增加麻烦了吗?有啥好处捏?
主要的好处在于,对于接待公司的前台,就不需要记住各个公司的公章分别是啥样子的;他/她只要记住中介公司C的公章即可。
当他/她拿到两份介绍信之后,先对介绍信1的C公章,验明正身;确认无误之后,再比对介绍信1和介绍信2的两个A公章是否一致。如果是一样的,那就可以证明介绍信2是可以信任的了。
★相关专业术语的解释
费了不少口水,终于说完了一个俺自认为比较通俗的例子。如果你听到到这,还是想不明白这个例子在说啥,那后续的内容,就不必浪费时间听了 :(
下面,俺就着上述的例子,把相关的名词,作一些解释。
◇什么是证书?
“证书”洋文也叫“digital certificate”或“public key certificate”(专业的解释看“这里
”)。
它是用来证明某某东西确实是某某东西的东西(是不是像绕口令?)。通俗地说,证书就好比例子里面的公章。通过公章,可以证明该介绍信确实是对应的公司发出的。
理论上,人人都可以找个证书工具,自己做一个证书。那如何防止坏人自己制作证书出来骗人捏?请看后续CA的介绍。
◇什么是CA?
CA是Certificate Authority的缩写,也叫“证书授权中心”。(专业的解释看“这里
”)
它是负责管理和签发证书的第三方机构,就好比例子里面的中介——C公司。一般来说,CA必须是所有行业和所有公众都信任的、认可的。因此它必须具有足够的权威性。就好比A、B两公司都必须信任C公司,才会找C公司作为公章的中介。
◇什么是CA证书?
CA证书,顾名思义,就是CA颁发的证书。
前面已经说了,人人都可以找工具制作证书。但是你一个小破孩制作出来的证书是没啥用处的。因为你不是权威的CA机关,你自己搞的证书不具有权威性。
这就好比上述的例子里,某个坏人自己刻了一个公章,盖到介绍信上。但是别人一看,不是受信任
的中介公司的公章,就不予理睬。坏蛋的阴谋就不能得逞啦。
文本后续提及的证书,若无特殊说明,均指CA证书。
◇什么是证书之间的信任关系?
在俺的例子里谈到,引入中介后,业务员要同时带两个介绍信。第一个介绍信包含了两个公章,并注明,公章C信任公章A。证书间的信任关系,就和这个类似。就是用一个证书来证明另一个证书是真实可信滴。
◇什么是证书信任链?
实际上,证书之间的信任关系,是可以嵌套的。比如,C信任A1,A1信任A2,A2信任A3......这个叫做证书的信任链。只要你信任链上的头一个证书,那后续的证书,都是可以信任滴。
◇什么是根证书?
“根证书”的洋文叫“root certificate”,专业的解释看“这里
”。为了说清楚根证书是咋回事,再来看个稍微复杂点的例子。
假设C证书信任A和B;然后A信任A1和A2;B信任B1和B2。则它们之间,构成如下的一个树形关系(一个倒立的树)。
处于最顶上的树根位置的那个证书,就是“根证书
”。除了根证书,其它证书都要依靠上一级的证书,来证明自己。那谁来证明“根证书”可靠捏?实际上,根证书自己证明自己是可靠滴(或者换句话说,根证书是不需要被证明滴)。
聪明的同学此刻应该意识到了:根证书是整个证书体系安全的根本。所以,如果某个证书体系中,根证书出了问题(不再可信了),那么所有被根证书所信任的其它证书,也就不再可信了。这个后果是相当相当滴严重(简直可以说是灾难性的),具体在下一个帖子里介绍。
★证书有啥用?
CA证书的作用有很多,俺为了节省口水,只列出常用的几个。
◇验证网站是否可信(针对HTTPS)
通常,我们如果访问某些敏感的网页(比如用户登录的页面),其协议都会使用HTTPS而不是HTTP。因为HTTP协议是明文的,一旦有坏人在偷窥你的
网络通讯,他/她就可以看到网络通讯的内容(比如你的密码、银行帐号、等);而HTTPS是加密的协议,可以保证你的传输过程中,坏蛋无法偷窥。
但是,千万不要以为,HTTPS协议有了加密,就可高枕无忧了。俺再举一个例子来说明,光有加密是不够滴。假设有一个坏人,搞了一个假的网银的站点,然后诱骗你上这个站点。假设你又比较单纯,一不留神,就把你的帐号,口令都输入进去了。那这个坏蛋的阴谋就得逞鸟。
为了防止坏人怎么干,HTTPS协议除了有加密的机制,还有一套证书的机制。通过证书来确保,某个站点确实就是某个站点。
有了证书之后,当你的浏览器在访问某个HTTPS网站时,会验证该站点上的CA证书(类似于验证介绍信的公章)。如果浏览器发现该证书没有问题(证书被
某个根证书信任、证书上绑定的域名和该网站的域名一致、证书没有过期),那么页面就直接打开;否则的话,浏览器会给出一个警告,告诉你该网站的证书存在某
某问题,是否继续访问该站点?为了形象起见,下面给出IE和Firefox的抓图:
大多数知名的网站,如果用了HTTPS协议,其证书都是可信的(也就不会出现上述警告)。所以,今后你如果上某个知名网站,发现浏览器跳出上述警告,你就要小心啦!
◇验证某文件是否可信(是否被篡改)
证书除了可以用来验证某个网站,还可以用来验证某个文件是否被篡改。具体是通过证书来制作文件的数字签名。制作数字签名的过程太专业,咱就不说了。后面专门告诉大家如何验证文件的数字签名。考虑到大多数人用Windows系统,俺就拿Windows的例子来说事儿。
比如,俺手头有一个Firefox的安装文件,由于该文件是带有数字签名,这时候,俺查看该文件的属性,会看到如下的界面:
眼神好的同学,会看到上面有个“数字签名
”的标签页。选择该标签页,看到如下界面:
一般来说,签名列表中,有且仅有一个签名。选中它,点“详细信息
”按钮。跳出如下界面:
通常,这个界面会显示一行字(图中红圈标出):“该数字签名正常”。说明该文件从出厂到你手里,中途没有被篡改过(是原装滴、是纯洁滴)。
如果该文件,被篡改过了(比如,感染了病毒、被注入木马),那刚才那个对话框会变为如下:
不论签名是否正常,你都可以点“查看证书”按钮。这时候,会跳出证书的对话框。如下:
从后一个界面,可以看到俺刚才说的证书信任链。图中的信任链有3层:
第1层是根证书(Thawte Premium Server CA);
第2层是Thawte 专门用来签名的证书;
第3层是Mozilla自己的证书。
目前大多数知名的公司(或组织机构),其发布的可执行文件(比如软件安装包、驱动程序、安全补丁),都带有数字签名。你可以自己去看一下。
建议大伙儿在安装软件之前,都先看看是否有数字签名?如果有,就按照上述步骤验证一把。一旦数字签名是坏的,那可千万别装。
★总结
费了半天口舌,大致介绍了CA证书相关的概念。想更深入了解这方面知识的同学,可以找些信息安全或密码学方面的资料,继续钻研。
如果哪个同学觉得俺有说得不对的地方,或者有需要补充的内容,欢迎给俺写邮件(program.think@gmail.com
)。
在下一个帖子
里,俺打算抖一下,CNNIC这些年干过那些龌龊、猥琐的事情。
版权声明
本博客所有的原创文章,作者皆保留版权。转载必须包含本声明,保持本文完整,并以超链接形式注明作者编程随想
和本文原始地址:
http://program-think.blogspot.com/2010/02/introduce-digital-certificate-and-ca.html
分享到:
相关推荐
标题"PKI/CA与数字证书技术大全"暗示了主题是关于公钥基础设施(Public Key Infrastructure, PKI)和认证授权机构(Certification Authority, CA),以及与之相关的数字证书技术。这是一套全面的资料,旨在帮助读者...
CA数字证书认证是一种网络安全技术,用于验证网络上实体的身份,如个人、组织、服务器或设备。这个过程由权威的第三方机构——称为证书颁发机构(Certification Authority,简称CA)进行,确保在线交流的安全性和...
在IT领域,数字证书驱动(CA驱动)是一个关键的安全组件,它涉及到网络安全、身份验证以及数据加密等多个方面。本文将详细解析数字证书、数字证书驱动和CA(证书颁发机构)的相关概念,以及它们在实际应用中的重要性...
最新CA证书
### 个人数字证书与CA认证知识点详解 #### 一、数字证书的概念与作用 - **定义**:数字证书是一种用于在网络环境中验证用户身份的技术手段,它由一系列数据组成,包括用户的个人信息及其对应的数字签名。 - **功能...
【CA基础知识讲座 数字证书 PPT】是一份深入讲解CA(Certificate Authority)和数字证书的教育资料,适合学习和理解网络安全及加密技术。CA作为数字证书的认证中心,它的主要职责是验证证书申请者的身份,并为其签发...
本文主要介绍CA数字证书的基本原理和关键技术,以及数字证书的相关机构以及应用,结合实际案例分析CA数字证书的组成,涉及的非对称密码等关键技术。适合对数字证书、数字签名加密感兴趣的同学。
实验目的旨在让学生了解 PKI 体系、用户证书申请和 CA 颁发证书过程、认证服务的安装及配置方法、使用数字证书配置安全站点的方法、使用数字证书发送签名邮件和加密邮件的方法。 一、实验目的 本实验的目的是验证...
【数字证书申请教程 CA认证】 数字证书是一种网络身份验证机制,它通过加密技术确保网络通信的安全性和数据的完整性。在互联网上,特别是涉及到敏感信息交换时,如网上银行、电子商务等,数字证书扮演着至关重要的...
山东ca数字证书驱动程序是专为山东省纳税人一款数字证书驱动软件。主要为了保证办税流程的正常进行...应用介绍山东ca数字证书驱动是山东省数字证书认证有限公司提供的一款数字证书驱动程序,主要为纳税人,欢迎下载体验
陕西ca数字证书助手是由山西省数字证书认证中心推出的安全加密工具。用户可以使用这款软件在网上进行社保、办税等业务办理服务。可以保证用户上网数据的完整性和安全性!欢迎在下载使用。数字证书有什么用?数字证书...
所有与数字证书相关的各种概念和技术,统称为PKI( Public Key Infrastructure 公钥基础...数字证书里包含了用户身份信息,用户公钥信息(两者用于确定用户)和CA的私钥数字签名(使用CA的公钥可判断证书是否被篡改)。
四川CA数字证书驱动是四川省数字证书认证管理中心打造的一款usbkey环境检测软件,主要运用于财务人员报税在使用网上报随软件时的环境监测,下载该...驱动介绍:这款四川CA数字证书驱动是四川省数字证书认,欢迎下载体验
CA数字证书是网络安全领域的重要组成部分,它在保护网络通信安全方面起着至关重要的作用。本教程将详细解析CA(Certificate Authority,证书颁发机构)的概念及其组成,并探讨PKI(Public Key Infrastructure,公共...
Windows Server 2012 CA 证书服务器安装和配置是 windows 服务器中的一项重要功能,用于管理和颁发数字证书,以确保网络通信的安全性和身份验证。下面是 Windows Server 2012 CA 证书服务器安装和配置的详细知识点...
在IT领域,数字证书是确保网络通信安全的重要工具,它基于公钥基础设施(PKI)原理,用于验证网络实体的身份。本实战经验主要关注如何使用OpenSSL这一开源库来建立自己的证书颁发机构(CA)中心,并签发不同级别的...
本文将详细介绍数字证书的工作原理、涉及的关键技术和算法,以及其在各个领域的具体应用。 #### 数字证书定义 数字证书,又称为公钥证书,是一种用于证明网络实体身份的有效机制。它不是一个简单的数字身份证明,...
CA证书接口用法是指在软件应用系统中使用数字证书来实现身份认证、数字签名和数据加密等安全功能的接口使用方法。 CA证书接口用法主要包括证书应用接口的介绍、集成目标、集成内容、证书应用接口部署、应用系统集成...
CA(Certificate Authority)系统是一种专门用于管理数字证书的平台,旨在确保网络通信的安全性。数字证书可被视为网络上的“个人虚拟身份证”,它在各种应用场景中扮演着重要的角色,如身份验证、电子签名以及数据...