数字证书与通信安全

在想知道数字证书是什么之前,我们先了解什么是数字签名,以及数字签名和数字证书的关系。

数字签名

数字签名的原理

基本原理:用私钥去加密,用公钥去解密。即签发人用不公开的私钥去签署文件即生成数字签名,全世界任何人都可以用签发人公布的公钥去验证它的数字签名,如果验证解密成功,就认定这个数字签名的确是签发人签署的。

数字签名的应用

数字签名是公钥加密技术的两大应用之一。这两大技术分别是数字签名和加密通信,而且它们有一定的对称性。

加密通信下,公钥加密(加密算法),私钥解密(解密算法)。私钥也叫解密key。

而在数字签名下,私钥加密(签名算法),公钥解密(验证算法)。公钥叫验证key。

非对称加密:

一对公钥私钥,公钥加密的信息只有私钥才能解密。私钥加密的信息只有公钥可以验证(确认是被私钥加密过的)

 

数字签名的作用

数字签名的作用是用来认证签署人身份。

String  SignFile(File file , PrivateKey  pk);    //签名算法

bool   CheckFile(File file, String signature ,PublicKey key);  //验证算法

数字签名的三大作用

1、认证(确认身份)

2、防止抵赖

3、防止篡改(保证文件完整性)

 

比特币就是数字签名

 

数字证书

       数字签名存在的漏洞问题,即公钥的安全问题。黑客截获了文件和数字签名后,用假文件和黑客的数字签名替换后,发送给被攻击的对象,黑客事先已经发布黑客的公钥,如果被攻击对象收到被黑客替换过的文件和签名后,又取到了黑客的公钥,就会验证通过。这就是公钥安全漏洞。

       数字证书是由可信的第三方机构(权威机构CA)颁发的用来证明所有人身份 和所有人公钥的电子文件。

       签发人把自己的信息和公钥发送给CA,申请数字证书,CA验证签发人身份信息和其公钥,验证通过后把公钥和签发人信息打包在一起,生成一个叫做数字证书的电子文件。(这里CA为保证数字证书的可信,CA会用自己的私钥对数字证书加密,生成这个数字证书的数字签名,接着CA把CA的数字签名也放进数字证书里,CA还会把自己的公钥打进数字证书),CA把数字证书制作好了后就发送给签发人。现在有了数字证书,签发人就可以把包含签发人公钥的由CA制作的数字证书,公布给全世界,需要签发人公钥的人可以去取数字证书,从数字证书里得到签发人的公钥,从而确信这个公钥就是签发人的公钥。

       数字证书是互联网通讯中标志通讯各方身份信息的电子文件,提供了一种在Internet上验证人们身份的方式,其作用类似于日常生活中的身份证。它是由权威机构——CA机构,即证书授权(Certificate Authorit y)中心发行的。数字证书是在Internet上进行身份验证的一种权威性电子文件,人们可以在互联网交往中用它来证明自己的身份和识别对方的身份。

人们可以在网上用数字证书来识别对方的身份。数字证书是一个经证书授权中心签名的(包含公开密钥拥有者信息以及公开密钥的)文件。最简单的证书包含一 个公开密钥、名称以及证书授权中心的数字签名。一般情况下证书中还包括密钥的有效时间,发证机关(证书授权中心)的名称,以及该证书的序列号等信息,证书的格式遵循 ITUT X.509国际标准


  一个标准的数字证书包含以下一些内容:

       证书的 发行机构名称,
       证书 所有人的名称,

  证书所有人的公开密钥;以及公钥的有效期,它的计时范围为1950-2049;  
  证书发行者对证书的签名(CA的数字签名)


  证书的 版本信息;
  证书的 序列号,每个证书都有一个唯一的证书序列号;
  证书所使用的 签名算法;

        

      CA用自己的信用为数字证书做背书,证书上同时带有所有人信息和公钥,数字签名保证了签名是不可篡改的。只要大家信任CA,就可以信任数字证书和所有人的绑定关系,主要用来证明你的公钥的确是属于你的,实际也就是证明你是你自己。

数字证书是由证书授权(Certificate Authority)中心颁发的,人们可以在网上用它来识别对方的身份。数字证书至少要包含申请人的公钥、申请人的信息、证书授权中心(CA)名称,CA的数字签名。

 

数字证书里存有很多数字和英文,当使用数字证书进行身份认证时,它将随机生成128位的身份码,每份数字证书都能生成相应但每次都不可能相同的数码,从而保证数据传输的保密性,即相当于生成一个复杂的密码。  

公钥是没有办法证明自己的主人的,所以为了避免“中间人攻击”就要使用数字证书。

 

数字证书的作用

常用于两个场合:数字签名和HTTPS

公开的公钥,在被人们下载后,公钥是无法证明自己的主人的。因此就需要使用数字证书。源服务器在下发公钥的同时发送数字证书(数字证书包含公钥),用户在得到数字证书后就可以确信证书中的公钥的确是源服务器的了。

1、认证所有人和公钥的关系

2、避免中间人攻击

3、基于第三方的信任

 

为了保证互联网上电子交易及支付的安全性,保密性等,防范交易及支付过程中的欺诈行为,必须在网上建立一种信任机制。这就要求参加电子商务的买方和卖方都必须拥有合法的身份,并且在网上能够有效无误的被进行验证。  

数字证书可用于:发送安全电子邮件、访问安全站点、网上证券交易、网上招标采购、网上办公、网上保险、网上税务、网上签约和网上银行等安全电子事务处理和安全电子交易活动。

数字证书绑定了公钥及其持有者的真实身份,它类似于现实生活中的居民身份证,所不同的是数字证书不再是纸质的证照,而是一段含有证书持有者身份信息并经过认证中心审核签发的电子数据,可以更加方便灵活地运用在电子商务和电子政务中。
 

HTTPS

SSL证书是用在HTTPS下的数字证书,它也是由可信的CA来颁发,不同于其他数字证书,它不是用来验证客户端的身份,而是验证服务器的身份。目的是建立浏览器和服务器之间的信任。

例如我现在用浏览器去访问谷歌服务器,就需要建立加密通道,而建立加密通道,首先第一步是要把公钥传递给浏览器,这里特别注意如果传递的公钥在中间过程中被第三方篡改过,那么就毫无安全性可言了,为了保证安全,谷歌服务器先去CA申请SSL证书,放到自己的服务器上。这样我在浏览器里访问谷歌网址的时候,谷歌服务器会首先向我的浏览器发送SSL证书,(注意:各大浏览器都已经内置了全球各大CA的证书验证机制,其底层的原理就是这些浏览器它们都拥有各大CA的公钥,可以验证证书上CA的签名,如果证书没有问题,浏览器就可以断定证书中携带过来的公钥就是谷歌的,此时浏览器会生成一个秘钥,(注意这就是对称加密的思想)发送给谷歌服务器,这样浏览器就拥有了浏览器的加密秘钥,然后就用对称加密的思路来和浏览器通信了),这样一个双向加密的通道就建立了。

对称加密的加密效率要比非对称加密的效率高很多。所以,对大量数据进行加密还是首选对称加密。

加密通信过程中,证书的作用是判断公钥所有人。HTTPS通信的整个过程中,同时涉及到了数字签名和加密通信。还用到了对称加密和公钥加密两种不同的加密方式,是一个比较综合的知识点了。 

免费的SSL 证书,对于申请人的身份没有很严格的检查,所以CA只能保证申请人拥有这个域名和这个服务器,而这个公钥是跟这个服务器绑定的,究竟申请人是不是一个“好人”,服务器是不是会去干坏事CA机构也不知道。所以浏览器里用了HTTPS访问网站,浏览器显示了一个小锁,也不代表完全可以信任这个网站。


发证机构

CA是大机构的,是权威的,政府的,例如:GlobalSign 机构。区块链去中心化,实现了无CA的证书。

数字证书认证中心(CA)作为权威的、公正的、可信赖的第三方,其作用是至关重要的。如何判断数字认证中心公正第三方的地位是权威可信的,国家工业和信息化部以资质合规的方式,陆续30家数字认证中心相关机构颁发了从业资质。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章