[无色轨迹] @ Naxin9999

淡如时光,生命无恒。

数字证书

数字证书


一.数字证书概述

  数字证书是一段包含用户身份信息、用户公钥信息以及身份验证机构数字签名的数据。身份验证机构的数字签名可以确保证书信息的真实性,用户公钥信息可以保证数字信息传输的完整性,用户的数字签名可以保证数字信息的不可否认性。

  数字证书是各类终端实体和最终用户在网上进行信息交流及商务活动的身份证明,在电子交易的各个环节,交易的各方都需验证对方数字证书的有效性,从而解决相互间的信任问题。

  数字证书是一个经证书认证中心(CA)数字签名的包含公开密钥拥有者信息以及公开密钥的文件。认证中心(CA)作为权威的、可信赖的、公正的第三方机构,专门负责为各种认证需求提供数字证书服务。认证中心颁发的数字证书均遵循X.509 V3标准。X.509标准在编排公共密钥密码格式方面已被广为接受。X.509证书已应用于许多网络安全,其中包括IPSec(IP安全)、SSL、SET、S/MIME。

二.应用数字证书的必要性

  数字信息安全主要包括以下几个方面:

  • 身份验证(Authentication)
  • 信息传输安全
      信息保密性(存储与交易)( Confidentiality)
      信息完整性(Integrity)
  • 交易的不可否认性(Non-repudiation)
  对于数字信息的安全需求,通过如下手段加以解决:
  • 数据保密性----加密
  • 数据的完整性----数字签名
  • 身份鉴别----数字证书与数字签名
  • 不可否认性----数字签名

      为了保证网上信息传输双方的身份验证和信息传输安全,目前采用数字证书技术来实现,从而实现对传输信息的机密性、真实性、完整性和不可否认性。

    三.数字证书内容及格式

      数字证书包括证书申请者的信息和发放证书CA的信息,认证中心所颁发的数字证书均遵循X.509 V3标准。数字证书的格式在ITU标准和X.509 V3里定义。根据这项标准,数字证书包括证书申请者的信息和发放证书CA的信息。X.509数字证书内容:

      证书各部分的含义:

含义
Version 证书版本号,不同版本的证书格式不同
Serial Number 序列号,同一身份验证机构签发的证书序列号唯一
Algorithm Identifier 签名算法,包括必要的参数
Issuer 身份验证机构的标识信息
Period of Validity 有效期
Subject 证书持有人的标识信息
Subject's Public Key证书持有人的公钥
Signature 身份验证机构对证书的签名



  证书内容由以下两部分组成:

(1)申请者的信息

  第一部分申请者的信息,数字证书里的数据包括以下信息:

  版本信息,用来与X.509的将来版本兼容;

  证书序列号,每一个由CA发行的证书必须有一个唯一的序列号;

  A所使用的签名算法;

  发行证书CA的名称;

  证书的有效期限;

  证书主题名称;

  被证明的公钥信息,包括公钥算法、公钥的位字符串表示;

  包含额外信息的特别扩展。

(2)发放证书CA的信息

  第二部分CA的信息,数字证书包含发行证书CA的签名和用来生成数字签名的签名算法。任何人收到证书后都能使用签名算法来验证证书是否是由CA的签名密钥签发的。

四.验证证书

  持证人甲想与持证人乙通信时,他首先查找数据库并得到一个从甲到乙的证书路径(certification path)和乙的公开密钥。这时甲可使用单向或双向验证证书。

  单向验证是从甲到乙的单向通信。它建立了甲和乙双方身份的证明以及从甲到乙的任何通信信息的完整性。它还可以防止通信过程中的任何攻击。

  双向验证与单向验证类似,但它增加了来自乙的应答。它保证是乙而不是冒名者发送来的应答。它还保证双方通信的机密性并可防止攻击。

  单向和双向验证都使用了时间标记。

  单向验证如下:

(1) 甲产生一个随机数Ra。

(2) 甲构造一条消息,M=(Ta,Ra,Ib,d),其中Ta是甲的时间标记,Ib是乙的身份证明,d为任意的一条数据信息。为安全起见,数据可用乙的公开密钥Eb加密。

(3) 甲将(Ca,Da(M))发送给乙。(Ca为甲的证书,Da为甲的私人密钥)

(4) 乙确认Ca并得到Ea。他确认这些密钥没有过期。(Ea为甲的公开密钥)

(5) 乙用Ea去解密Da(M),这样既证明了甲的签名又证明了所签发信息的完整性。

(6) 为准确起见,乙检查M中的Ib。

(7) 乙检查M中的Ta以证实消息是刚发来的。

(8) 作为一个可选项,乙对照旧随机数数据库检查M中的Ra以确保消息不是旧消息重放。

  双向验证包括一个单向验证和一个从乙到甲的类似的单向验证。除了完成单向验证的(1)到(8)步外,双向验证还包括:

(9) 乙产生另一个随机数,Rb。

(10)乙构造一条消息,Mm=(Tb,Rb,Ia,Ra,d),其中Tb 是乙的时间标记,Ia是甲的身份,d为任意的数据。为确 保安全,可用甲的公开密钥对数据加密。Ra是甲在第 (1) 步中产生的随机数。

(11)乙将Db(Mm)发送给甲。

(12)甲用Ea解密Db(Mm),以确认乙的签名和消息的完整 性。

(13)为准确起见,甲检查Mm中Ia。

(14)甲检查Mm中的Tb,并证实消息是刚发送来的。

(15)作为可选项,甲可检查Mm中的Rb以确保消息不是重放的旧消息。

五.数字证书使用

  每一个用户有一个各不相同的名字,一个可信的证书认证中心(CA)给每个用户分配一个唯一的名字并签发一个包含名字和用户公开密钥的证书。

  如果甲想和乙通信,他首先必须从数据库中取得乙的证书,然后对它进行验证。如果他们使用相同的CA,事情就很简单。甲只需验证乙证书上CA的签名;如果他们使用不同的CA,问题就复杂了。甲必须从CA的树形结构底部开始,从底层CA往上层CA查询,一直追踪到同一个CA为止,找出共同的信任CA。

  证书可以存储在网络中的数据库中。用户可以利用网络彼此交换证书。当证书撤销后,它将从证书目录中删除,然而签发此证书的CA仍保留此证书的副本,以备日后解决可能引起的纠纷。

  如果用户的密钥或CA的密钥被破坏,从而导致证书的撤销。每一个CA必须保留一个已经撤销但还没有过期的证书废止列表(CRL)。当甲收到一个新证书时,首先应该从证书废止列表(CRL)中检查证书是否已经被撤销。

  现有持证人甲向持证人乙传送数字信息,为了保证信息传送的真实性、完整性和不可否认性,需要对要传送的信息进行数字加密和数字签名,其传送过程如下:

(1)甲准备好要传送的数字信息(明文)。

(2)甲对数字信息进行哈希(hash)运算,得到一个信息摘要。

(3)甲用自己的私钥(SK)对信息摘要进行加密得到甲的数字签名,并将其附在数字信息上。

(4)甲随机产生一个加密密钥(DES密钥),并用此密钥对要发送的信息进行加密,形成密文。

(5)甲用乙的公钥(PK)对刚才随机产生的加密密钥进行加密,将加密后的DES密钥连同密文一起传送给乙。

(6)乙收到甲传送过来的密文和加过密的DES密钥,先用自己的私钥(SK)对加密的DES密钥进行解密,得到DES密钥。

(7)乙然后用DES密钥对收到的密文进行解密,得到明文的数字信息,然后将DES密钥抛弃(即DES密钥作废)。

(8)乙用甲的公钥(PK)对甲的数字签名进行解密,得到信息摘要。 乙用相同的hash算法对收到的明文再进行一次hash运算,得到一个新的信息摘要。

(9)乙将收到的信息摘要和新产生的信息摘要进行比较,如果一致,说明收到的信息没有被修改过。

六.证书存放方式

  数字证书可以存放在计算机的硬盘、随身软盘、IC卡或CUP卡中。

  用户数字证书在计算机硬盘中存放时,使用方便,但存放证书的PC机必须受到安全保护,否则一旦被攻击,证书就有可能被盗用。

  使用软盘保存证书,被窃取的可能性有所降低,但软盘容易损坏。一旦损坏,证书将无法使用。

  IC卡中存放证书是一种较为广泛的使用方式。因为IC卡的成本较低,本身不易被损坏。但使用IC卡加密时,用户的密钥会出卡,造成安全隐患。

  使用CUP卡存放证书时,用户的证书等安全信息被加密存放在CUP卡中,无法被盗用。在进行加密的过程中,密钥可以不出卡,安全级别最高,但相对来说,成本较高。

结束语

  目前在网上传输信息时,普遍使用X.509V3格式的数字证书。在数字信息传输前,首先传输双方互相交换证书,验证彼此的身份;然后,发送方利用证书中的加密密钥和签名密钥对要传输的数字信息进行加密和签名,这就保证了只有合法的用户才能接收该信息,同时保证了传输信息的机密性、真实性、完整性和不可否认性 。从而保证网上信息的安全传输。

阅读更多
个人分类: 97. 旧技术文档
上一篇(Z)用java直接连接Access数据源的方法
下一篇很多软件业同仁不过只是Cfans(ZT)
想对作者说点什么? 我来说一句

个人数字证书制作工具

2014年06月21日 946KB 下载

没有更多推荐了,返回首页

关闭
关闭