随着《中华人民共和国电子签名法》这部法律的出台和实施,电子签名获得了与传统手写签名和盖章同等的法律效力,这意味着经过电子签名的电子文档在网上传输有了合法性。电子签名并非是书面签名的数字图像化,而是一种电子代码。联合国贸发会的《电子签名示范法》对电子签名作出如下定义:“指在数据电文中以电子形式所含、所附或在逻辑上与数据电文有联系的数据,它用于鉴别与数据电文相关的签名人和表明签名人认可数据电文所含信息”。
1、数字签名
数字签名是电子签名的一种,它要求:发送者事后不能否认发送的报文签名、接收者能够核实发送者发送的报文签名、接收者不能伪造发送者的报文签名、接收者不能对发送者的报文进行部分篡改、网络中的某一用户不能冒充另一用户作为发送者或接收者。
数字签名主要用于确保A发送给B的信息就是A本人发送的,并且没有改动。数字签名和验证的过程如下所示:
数字签名的基本过程:
(1)A使用“摘要”算法(如SHA-1、MD5等)对发送信息进行摘要;
(2)使用A的私钥对消息摘要进行加密运算,将加密摘要和原文一并发给B;
验证签名的基本过程:
(1)B收到加密摘要和原文后,使用和A一样的“摘要”算法对原文再次摘要,生成新摘要;
(2)使用A公钥对加密摘要解密,还原成原摘要;
(3)两个摘要对比,一致则说明由A发出且没有进过任何篡改。
2、数字证书
数字证书采用公钥体制进行加密和解密,每个用户有一个私钥来解密和签名,同时每个用户还有一个公钥来加密和验证。
可以通过例子说明数字证书、CA签名、证书公钥的作用:假如某网站向证书颁发机构(Certification Authority,CA)申请了数字证书,用户通过CA的签名来验证网站的真伪。在用户与网站进行安全通信时,用户可以通过证书中的公钥进行加密和验证,该网站通过网站的私钥进行解密和签名。
(1)X.509格式
目前数字证书的格式大多是X.509格式,X.509是由国际电信联盟(ITU-T)制定的数字证书标准。在此标准中,包含在数字证书中的数据域有证书、版本号、序列号(唯一标识每一个CA下发的证书)、算法标识、颁发者、有效期、有效起始日期、有效终止日期、使用者、使用者公钥信息、公钥算法、公钥、颁发者唯一标识、使用者唯一标识、扩展、证书签名算法、证书签名(发证机构,即CA用自己私钥对用户证书进行签名防止篡改)。
(2)证书发放
证书由CA中心发放,无需特别措施。由于网络中存在多个CA中心,因此提出了“证书链”概念。证书链服务是一个CA扩展其信任范围的机制,实现不同认证中心发放的证书的信息交换。如果用户UA从A地的发证机构取得了证书,用户UB从B地的发证机构取得了证书,那么UA通过证书链交换了证书信息,则可以与UB进行安全通信。
(3)证书吊销
当用户个人身份信息发生变化或私钥丢失、泄露、疑似泄露时,证书用户应及时向CA提出证书的撤销请求,CA也应及时将此证书放入公开发布的证书撤销列表(Certification Revocation List,CRL)。
证书撤销的流程为:
1)用户或其上级单位向注册机构(Registration Authority,RA)提出撤销请求;
2)RA审查撤销请求;
3)审查通过后,RA将撤销请求发送给CA或CRL签发机构;
4)CA或CRL签发机构修改证书状态并签发新的CRL。
当该数字证书被放入CRL后,数字证书则被认为失效,而失效并不意味着无法被使用。如果乙窃取到甲的私钥,用甲的私钥签名了一份文件发送给丙,并附上甲的证书,而丙忽视了对CRL的查看,丙就会用甲的证书成功验证这份非法的签名,并认为甲对这份文件签过名而接收该文件,由此会导致网络安全问题。