数字证书知识点
什么是数字证书?
¤是由证书签证机关(ca)签发的对用户的公钥的认证。因此,证书的内容应包括ca的信息、用户信息、用户公钥及ca签发时间及有效期等内容。目前国际上对证书的格式及认证方法遵从x.509体系标准。
¤数字证书实际上是一份电子文档
¤数字证书是一段包含用户身份信息、用户公钥信息以及身份验证机构数字签名的数据。身份验证机构的数字签名可以确保证书信息的真实性。证书格式及证书内容遵循x.509标准。
¤数字证书又称为数字标识(digital certificate,digital id)。它提供了一种在internet上身份验证的方式,是用来标志和证明网络通信双方身份的数字信息文件,与司机驾照或日常生活中的身份证相似。在网上进行电子商务活动时,交易双方需要使用数字证书来表明自己的身份,并使用数字证书来进行有关的交易操作。通俗地讲,数字证书就是个人或单位在internet的身份证。数字证书主要包括三方面的内容:证书所有者的信息、证书所有者的公开密钥和证书颁发机构的签名。
证书里包含了什么?
¤一个标准的x.509数字证书包含以下一些内容:
证书的版本信息;
证书的序列号,每个证书都有一个唯一的证书序列号;
证书所使用的签名算法;
证书的发行机构名称,命名规则一般采用x.500格式;
证书的有效期,现在通用的证书一般采用utc时间格式,它的计时范围为1950-2049;
证书所有人的名称,命名规则一般采用x.500格式;
证书所有人的公开密钥;
证书发行者对证书的签名。
数字证书能解决什么问题?
在使用数字证书的过程中应用公开密钥加密技术,建立起一套严密的身份认证系统,它能够保证:
信息除发送方和接受方外不被其他人窃取;
信息在传输过程中不被篡改;
接收方能够通过数字证书来确认发送方的身份;
发送方对于自己发送的信息不能抵赖。
以电子邮件为例,数字证书主要可以解决:
保密性:通过使用发件人的数字证书对电子邮件加密,只有收件人才能阅读加密的邮件,这样保证在internet上传递的电子邮件信息不会被他人窃取,即使发错邮件,收件人由于无法解密而不能够看到邮件内容。
完整性:利用发件人数字证书在传送前对电子邮件进行数字签名不仅可确定发件人身份,而且可以判断发送的信息在传递的过程中是否被篡改过。
身份认证:在internet上传递电子邮件的双方互相不能见面,所以必须有方法确定对方的身份。利用发件人数字证书在传送前对电子邮件进行数字签名即可确定发件人身份,而不是他人冒充的。
不可否认性:发件人的数字证书只有发件人唯一拥有,故发件人利用其数字证书在传送前对电子邮件进行数字签名后,发件人就无法否认发送过此电子邮件。
数字证书的原理是什么?
数字证书采用pki(public key infrastructure)公开密钥基础架构技术,利用一对互相匹配的密钥进行加密和解密。每个用户自己设定一把特定的仅为本人所知的私有密钥(私钥),用它进行解密和签名;同时设定一把公共密钥(公钥),由本人公开,为一组用户所共享,用于加密和验证签名。当发送一份保密文件时,发送方使用接收方的公钥对数据加密,而接收方则使用自己的私钥解密,通过数字的手段保证加解密过程是一个不可逆过程,即只有用私有密钥才能解密,这样保证信息安全无误地到达目的地。用户也可以采用自己的私钥对发送信息加以处理,形成数字签名。由于私钥为本人所独有,这样可以确定发送者的身份,防止发送者对发送信息的抵赖性。接收方通过验证签名还可以判断信息是否被篡改过。在公开密钥基础架构技术中,最常用一种算法是rsa算法,其数学原理是将一个大数分解成两个质数的乘积,加密和解密用的是两个不同的密钥。即使已知明文、密文和加密密钥(公开密钥),想要推导出解密密钥(私密密钥),在计算上是不可能的。按现在的计算机技术水平,要破解目前采用的1024位rsa密钥,需要上千年的计算时间。
数字证书的应用
现有持证人甲向持证人乙传送数字信息,为了保证信息传送的真实性、完整性和不可否认性,需要对要传送的信息进行数字加密和数字签名,其传送过程如下:
(1) 甲准备好要传送的数字信息(明文)。
(2) 甲对数字信息进行哈希(hash)运算,得到一个信息摘要。
(3) 甲用自己的私钥(sk)对信息摘要进行加密得到甲的数字签名,并将其附在数字信息上。
(4) 甲随机产生一个加密密钥(des密钥),并用此密钥对要发送的信息进行加密,形成密文。
(5) 甲用乙的公钥(pk)对刚才随机产生的加密密钥进行加密,将加密后的des密钥连同密文一起传送给乙。
(6) 乙收到甲传送过来的密文和加过密的des密钥,先用自己的私钥(sk)对加密的des密钥进行解密,得到des密钥。
(7) 乙然后用des密钥对收到的密文进行解密,得到明文的数字信息,然后将des密钥抛弃(即des密钥作废)。
(8) 乙用甲的公钥(pk)对甲的数字签名进行解密,得到信息摘要。
(9) 乙用相同的hash算法对收到的明文再进行一次hash运算,得到一个新的信息摘要。
(10)乙将收到的信息摘要和新产生的信息摘要进行比较,如果一致,说明收到的信息没有被修改过。
在(5)处用到的pk,是否来自乙所持有的的数字证书?若是,从何处得到该数字证书?关于此过程的加密解密,是怎样实现?
a 如何获得通讯对方的公钥并且相信此公钥是由某个身份确定的人拥有的,这就要用到电子证书。电子证书是由大家共同信任的第三方---认证中心(certificate authority,ca)来颁发的,有某人的身份信息、公钥和ca的数字签名。任何一个信任ca的通讯一方,都可以通过验证对方电子证书上的ca数字签名来建立起和对方的信任,并且获得对方的公钥以备使用。
数字证书的使用
每一个用户有一个各不相同的名字,一个可信的证书认证中心(ca)给每个用户分配一个唯一的名字并签发一个包含名字和用户公开密钥的证书。
如果甲想和乙通信,他首先必须从数据库中取得乙的证书,然后对它进行验证。如果他们使用相同的ca,事情就很简单。甲只需验证乙证书上ca的签名;如果他们使用不同的ca,问题就复杂了。甲必须从ca的树形结构底部开始,从底层ca往上层ca查询,一直追踪到同一个ca为止,找出共同的信任ca。
证书可以存储在网络中的数据库中。用户可以利用网络彼此交换证书。当证书撤销后,它将从证书目录中删除,然而签发此证书的ca仍保留此证书的副本,以备日后解决可能引起的纠纷。
如果用户的密钥或ca的密钥被破坏,从而导致证书的撤销。每一个ca必须保留一个已经撤销但还没有过期的证书废止列表(crl)。当甲收到一个新证书时,首先应该从证书废止列表(crl)中检查证书是否已经被撤销。
数字证书由谁来颁发,如何颁发?
数字证书是由认证中心颁发的。
认证中心是一家能向用户签发数字证书以确认用户身份的管理机构。为了防止数字凭证的伪造,认证中心的公共密钥必须是可靠的,认证中心必须公布其公共密钥或由更高级别的认证中心提供一个电子凭证来证明其公共密钥的有效性,后一种方法导致了多级别认证中心的出现。
数字证书颁发过程如下:用户首先产生自己的密钥对,并将公共密钥及部分个人身份信息传送给认证中心。认证中心在核实身份后,将执行一些必要的步骤,以确信请求确实由用户发送而来,然后,认证中心将发给用户一个数字证书,该证书内包含用户的个人信息和他的公钥信息,同时还附有认证中心的签名信息。用户就可以使用自己的数字证书进行相关的各种活动。