数字证书的原理与实现
一、
数字证书认证中心(Certficate Authority,CA)就是一个负责发放和管理数字证书的权威机构。对于一个大型的应用环境,认证中心往往采用一种多层次的分级结构,各级的认证中心类似于各级行政机关,上级认证中心负责签发和管理下级认证中心的证书,最下一级的认证中心直接面向最终用户。  数字安全证书利用一对互相匹配的密钥进行加密、解密。每个用户自己设定一把特定的仅为本人所知的私有密钥(私钥),用它进行解密和签名;同时设定一把公共密钥(公钥)并由本人公开,为一组用户所共享,用于加密和验证签名。当发送一份保密文件时,发送方使用接收方的公钥对数据加密,而接收方则使用自己的私钥解密,这样信息就可以安全无误地到达目的地了。通过数字的手段保证加密过程是一个不可逆过程,即只有用私有密钥才能解密。在公开密钥密码体制中,常用的一种是RSA体制。其数学原理是将一个大数分解成两个质数的乘积,加密和解密用的是两个不同的密钥。即使已知明文、密文和加密密钥(公开密钥),想要推导出解密密钥(私密密钥),在计算上是不可能的。按现在的计算机技术水平,要破解目前采用的1024位RSA密钥,需要上千年的计算时间。公开密钥技术解决了密钥发布的管理问题,商户可以公开其公开密钥,而保留其私有密钥。购物者可以用人人皆知的公开密钥对发送的信息进行加密,安全地传送以商户,然后由商户用自己的私有密钥进行解密。  用户也可以采用自己的私钥对信息加以处理,由于密钥仅为本人所有,这样就产生了别人无法生成的文件,也就形成了数字签名。采用数字签名,能够确认以下两点:  (1) 保证信息是由签名者自己签名发送的,签名者不能否认或难以否认;  (2) 保证信息自签发后到收到为止未曾作过任何修改,签发的文件是真实文件。
二、数字证书概述

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

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

  数字证书是一个经证书认证中心(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格式的数字证书。在数字信息传输前,首先传输双方互相交换证书,验证彼此的身份;然后,发送方利用证书中的加密密钥和签名密钥对要传输的数字信息进行加密和签名,这就保证了只有合法的用户才能接收该信息,同时保证了传输信息的机密性、真实性、完整性和不可否认性 。从而保证网上信息的安全传输。

三、、什么是数字证书

  数字证书就是互联网通讯中标志通讯各方身份信息的一系列数据,提供了一种在Internet上验证您身份的方式,其作用类似于司机的驾驶执照或日常生活中的身份证。它是由一个由权威机构-----CA机构,又称为证书授权(Certificate Authorit y)中心发行的,人们可以在网上用它来识别对方的身份。数字证书是一个经证书授权 中心数字签名的包含公开密钥拥有者信息以及公开密钥的文件。最简单的证书包含一 个公开密钥、名称以及证书授权中心的数字签名。一般情况下证书中还包括密钥的有 效时间,发证机关(证书授权中心)的名称,该证书的序列号等信息,证书的格式遵循 ITUT X.509国际标准。

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

证书的版本信息;
证书的序列号,每个证书都有一个唯一的证书序列号;
证书所使用的签名算法;
证书的发行机构名称,命名规则一般采用X.500格式;
证书的有效期,现在通用的证书一般采用UTC时间格式,它的计时范围为1950-2049;
证书所有人的名称,命名规则一般采用X.500格式;
证书所有人的公开密钥;
证书发行者对证书的签名。

  二、为什么要用数字证书

  基于Internet网的电子商务系统技术使在网上购物的顾客能够极其方便轻松地获 得商家和企业的信息,但同时也增加了对某些敏感或有价值的数据被滥用的风险。买 方和卖方都必须对于在因特网上进行的一切金融交易运作都是真实可靠的,并且要使 顾客、商家和企业等交易各方都具有绝对的信心,因而因特网(Internet)电子商务 系统必须保证具有十分可靠的安全保密技术,也就是说,必须保证网络安全的四大要 素,即信息传输的保密性、数据交换的完整性、发送信息的不可否认性、交易者身份 的确定性。

  1、信息的保密性

  交易中的商务信息均有保密的要求。如信用卡的帐号和用户名被人知悉,就可能 被盗用,订货和付款的信息被竞争对手获悉,就可能丧失商机。因此在电子商务的信 息传播中一般均有加密的要求。

  2、交易者身份的确定性

  网上交易的双方很可能素昧平生,相隔千里。要使交易成功首先要能确认对方的 身份,对商家要考虑客户端不能是骗子,而客户也会担心网上的商店不是一个玩弄欺 诈的黑店。因此能方便而可靠地确认对方身份是交易的前提。对于为顾客或用户开展 服务的银行、信用卡公司和销售商店,为了做到安全、保密、可靠地开展服务活动, 都要进行身份认证的工作。对有关的销售商店来说,他们对顾客所用的信用卡的号码 是不知道的,商店只能把信用卡的确认工作完全交给银行来完成。银行和信用卡公司 可以采用各种保密与识别方法,确认顾客的身份是否合法,同时还要防止发生拒付款 问题以及确认订货和订货收据信息等。

  3、不可否认性

  由于商情的千变万化,交易一旦达成是不能被否认的。否则必然会损害一方的利 益。例如订购黄金,订货时金价较低,但收到订单后,金价上涨了,如收单方能否认 受到订单的实际时间,甚至否认收到订单的事实,则订货方就会蒙受损失。因此电子 交易通信过程的各个环节都必须是不可否认的。

  4、不可修改性

  交易的文件是不可被修改的,如上例所举的订购黄金。供货单位在收到订单后, 发现金价大幅上涨了,如其能改动文件内容,将订购数1吨改为1克,则可大幅受益, 那么订货单位可能就会因此而蒙受损失。因此电子交易文件也要能做到不可修改,以 保障交易的严肃和公正。

  人们在感叹电子商务的巨大潜力的同时,不得不冷静地思考,在人与人互不见面 的计算机互联网上进行交易和作业时,怎么才能保证交易的公正性和安全性,保证交 易双方身份的真实性。国际上已经有比较成熟的安全解决方案, 那就是建立安全证书体系结构。数字安全证书提供了一种在网上验证身份的方式。安全证书体制主要采 用了公开密钥体制,其它还包括对称密钥加密、数字签名、数字信封等技术。

我们可以使用数字证书,通过运用对称和非对称密码体制等密码技术建立起一套严密的身份认证系统,从而保证:信息除发送方和接收方外不被其它人窃取;信息在传输过程中不被篡改;发送方能够通过数字证书来确认接收方的身份;发送方对于自己的信息不能抵赖。

  三、数字证书原理介绍

  数字证书采用公钥体制,即利用一对互相匹配的密钥进行加密、解密。每个用户自己设定一把特定的仅为本人所知的私有密钥(私钥),用它进行解密和签名;同时设定一把公共密钥(公钥)并由本人公开,为一组用户所共享,用于加密和验证签名。当发送一份保密文件时,发送方使用接收方的公钥对数据加密,而接收方则使用 自己的私钥解密,这样信息就可以安全无误地到达目的地了。通过数字的手段保证加 密过程是一个不可逆过程,即只有用私有密钥才能解密。在公开密钥密码体制中,常用的一种是RSA体制。其数学原理是将一个大数分解成两个质数的乘积,加密和解密用的是两个不同的密钥。即使已知明文、密文和加密密钥(公开密钥),想要推导出解密密钥(私密密钥),在计算上是不可能的。按现在的计算机技术水平,要破解目前采用的1024位RSA密钥,需要上千年的计算时间。公开密钥技术解决了密钥发布的管理问题,商户可以公开其公开密钥,而保留其私有密钥。购物者可以用人人皆知的公开密钥对发送的信息进行加密,安全地传送给商户,然后由商户用自己的私有密钥 进行解密。

  用户也可以采用自己的私钥对信息加以处理,由于密钥仅为本人所有,这样就产生了别人无法生成的文件,也就形成了数字签名。采用数字签名,能够确认以下两点:

  (1)保证信息是由签名者自己签名发送的,签名者不能否认或难以否认。

  (2)保证信息自签发后到收到为止未曾作过任何修改,签发的文件是真实文件。

  数字签名具体做法是:

  (1)将报文按双方约定的HASH算法计算得到一个固定位数的报文摘要。在数学上保证:只要改动报文中任何一位,重新计算出的报文摘要值就会与原先的值不相符。这样就保证了报文的不可更改性。

  (2)将该报文摘要值用发送者的私人密钥加密,然后连同原报文一起发送给接收者,而产生的报文即称数字签名。

  (3)接收方收到数字签名后,用同样的HASH算法对报文计算摘要值,然后与用发送者的公开密钥进行解密解开的报文摘要值相比较。如相等则说明报文确实来自所称的发送者。 

  四、证书与证书授权中心

  CA机构,又称为证书授证(Certificate Authority)中心,作为电子商务交易中受信任的第三方,承担公钥体系中公钥的合法性检验的责任。CA中心为每个使用公开密钥的用户发放一个数字证书,数字证书的作用是证明证书中列出的用户合法拥有证书中列出的公开密钥。CA机构的数字签名使得攻击者不能伪造和篡改证书。它负责产生、分配并管理所有参与网上交易的个体所需的数字证书,因此是安全电子交易的核心环节。

  由此可见,建设证书授权(CA)中心,是山西省开拓和规范电子商务市场必不可少的一步。为保证用户之间在网上传递信息的安全性、真实性、可靠性、完整性和不可抵赖性,不仅需要对用户的身份真实性进行验证,也需要有一个具有权威性、公正性、唯一性的机构,负责向电子商务的各个主体颁发并管理符合国内、国际安全电子 交易协议标准的电子商务安全证书。

  五、数字证书的应用

  数字证书可以应用于互联网上的电子商务活动和电子政务活动,其应用范围涉及需要身份认证及数据安全的各个行业,包括传统的商业、制造业、流通业的网上交易,以及公共事业、金融服务业、工商税务、海关、政府行政办公、教育科研单位、保险、医疗等网上作业系统。

数字证书的原理===阿冬专栏相关推荐

  1. 数字签名和数字证书的原理解读(图文)

    数字签名和数字证书的原理解读(图文) 发布日期:2018-10-11 数字签名和数字证书的区别是什么?数字证书是由权威机构CA证书授权中心发行的,能提供在Internet上进行身份验证的一种权威性电子 ...

  2. 网络安全技术——数字证书技术原理

    点击上方"蓝字"关注我们吧 在上节<网络安全技术--加密技术.数字签名技术>中研究了数据通信中的加密和签名技术,在非对称加密体系中,A用户拿到B用户的公钥后便可以用这个 ...

  3. CA证书(数字证书的原理)

    转自:http://www.cnblogs.com/JeffreySun/archive/2010/06/24/1627247.html(感谢) 文中首先解释了加密解密的一些基础知识和概念,然后通过一 ...

  4. SSL协议与数字证书原理

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html 内部邀请码:C8E245J (不写邀请码,没有现金送) 国 ...

  5. 『转载』 SSL协议与数字证书原理

    SSL协议与数字证书原理 1 SSL(Secure Socket Lclientyer)是netscclientpe公司设计的主要用于weserver的安全传输协议.这种协议在WESERVER上获得了 ...

  6. java安全架构____CA数字证书原理

    转自百度百科:http://baike.baidu.com/link?url=3QmDWbnu1GE0p7wjgELkOfLrHGoB5VVXF88hSDnrfDWRP3hB39S6rcRXCMa3g ...

  7. 网络知识详解之:HTTPS通信原理剖析(对称、非对称加密、数字签名、数字证书)

    网络知识详解之:HTTPS通信原理剖析(对称.非对称加密.数字签名.数字证书) 计算机网络相关知识体系详解 网络知识详解之:TCP连接原理详解 网络知识详解之:HTTP协议基础 网络知识详解之:HTT ...

  8. [svc]数字证书基础知识

    数字证书基础原理 数字证书采用PKI(Public Key Infrastructure)公开密钥基础架构技术,利用一对互相匹配的密钥进行加密和解密. 每个用户自己设定一把特定的仅为本人所知的私有密钥 ...

  9. 通俗理解数字签名,ssl数字证书和https

    前言 最近在开发关于PDF合同文档电子签章的功能,大概意思就是在一份PDF合同上签名,盖章,使其具有法律效应.签章有法律效应必须满足两个条件: 能够证明签名,盖章者是谁,无法抵赖 PDF合同在签章后不 ...

最新文章

  1. 智能车竞赛技术报告 | 全向行进组 - 沈阳工业大学 - 找不到北队
  2. 基于ESP8266 WiFi控制的步进升降机械平台
  3. sse指令加速例子-无对比
  4. python整理excel数据-利用python整理需要的excel报表(上)
  5. python爬虫入门实例-终于领会python爬虫入门示例
  6. JZOJ 5390. 【NOIP2017提高A组模拟9.26】逗气
  7. Android自定义Dialog及与Activity的交互
  8. 已经被处理的消息不能丢
  9. PowerShell在Exchange2010下交互式修改群组审批人和免审批邮箱
  10. 和我一起写矩阵类(一)
  11. CodeForces 589J Cleaner Robot
  12. 2011年11月27日学习内容总结
  13. *第六周*数据结构实践项目二【建设链栈算法库】
  14. 一阶惯性环节如何实现跟踪性能与滤波性能共存(二)
  15. vue3 通过naive-ui 使用xicons
  16. R语言t检验,秩和检验,fdr的案例分析
  17. 2017-2018-2 《网络攻防技术与实践》 第二周作业
  18. android广告轮播无限
  19. 51万年历林贤文:做一个不“安分”的程序员
  20. echarts添加背景图片,背景色及水印

热门文章

  1. HTA0视觉抓取机器人源码解读
  2. kawamura+maya+picture_zbrush+powermill+mach3+cnc=mydream
  3. 推荐系统之DIN代码详解
  4. RPC远程调用,go语言实现RPC小Demo
  5. 计算机没有网络哪里出错了,电脑网卡驱动程序出错怎么办
  6. iOS CAReplicatorLayer 复制图层
  7. Docker部署 Harbor
  8. 应用计算机测定线性电阻,实验31-应用计算机测电阻伏安特性
  9. 程序员中年危机:半路出家Java程序员看我轻松逆袭
  10. APPS BFC-11-75-03B 75欧RF变压器替Mini-Circuit TC1-1T