|
在电子商务交易过程中,交易双方互不见面,如何保证信息发送方和信息接收方的真实性,如何保证交易双方对信息的认可,是必须要解决的重要问题。身份认证、数字摘要、数字签名、数字时间戳等技术是电子商务交易活动中常用的认证技术。
|
|
|
|
身份认证技术在电子商务信息安全中处于非常重要的地位,是其他安全机制的基础。只有实现了有效的身份鉴别,才能保证访问控制、安全审计、入侵防范等安全机制的有效实施。
|
|
|
|
身份认证也称为身份识别或身份鉴别。在电子商务活动过程中,通过身份认证鉴别互联网上用户身份的真实性,保证访问的可控制性以及通信过程的不可抵赖性和信息的完整性。这些问题一方面要通过数字摘要、数字签名等技术来解决,另一方面还需要通过数字认证中心等权威机构负责仲裁和信誉保证。只有这样,电子商务活动才能顺利开展。
|
|
|
|
现实生活中,人们可以通过出示身份证、驾驶证、工作证等证件证明自己的真实身份。网络环境中,身份认证通常基于以下几种方式进行。
|
|
|
(1)口令方式。口令方式是最简单的一种身份认证方式。我们登录电子邮箱,输入用户名、密码等账户信息就是一种基于口令方式的身份认证。基于口令方式进行身份认证的基本原理是将用户输入的口令与系统所保存的口令信息进行比较,进而判断用户身份是否合法。口令方式简单易行,但安全性不高。随着计算机等技术的不断进步和发展,攻击者很容易通过口令猜测、穷举、字典攻击等方式窃取口令。此外,以明文方式传递的口令的安全性还建立在对系统管理员信任的基础上。
|
|
|
(2)标记方式。标记方式是通过验证用户持有的某种物理介质,如智能卡、IC卡、磁卡等,判断用户的真实身份。
|
|
|
(3)人体生物特征方式。人体生物特征方式是指利用人体生物学特征如指纹、声音、虹膜、DNA等判断用户的真实身份。这些人体生物特征具有因个体不同而不同的特性,因此基于人体生物特征的身份识别是一种很准确和严格的识别方式,但应用成本较高,更适用于保密性要求较高的场合。
|
|
|
实际应用过程中,以上三种方式往往会结合起来使用。根据结合使用方式的个数,身份认证方式又可分为单因素认证、双因素认证和多因素认证。单独使用一种方式进行的身份认证称为单因素认证,将两种方式结合使用进行的身份认证称为双因素认证,以次类推,将三种以上方式结合使用进行的身份认证称为多因素认证。以在ATM机上使用银行卡为例,当用户在ATM机上插入银行卡后,ATM机还会要求用户输入正确的密码后方可进入系统进行相关操作,这一身份认证过程同时使用了标记和口令方式进行身份认证,是一种双因素认证方式。
|
|
|
|
传统商务活动中,我们通过手写签名达到确认信息的目的。电子商务活动中,交易双方互不见面,可以通过数字签名确认信息。数字签名技术有效解决了电子商务交易活动中信息的完整性和不可抵赖性问题。
|
|
|
|
|
数字摘要是利用哈希函数对原文信息进行运算后生成的一段固定长度的信息串,该信息串被称为数字摘要。产生数字摘要的哈希算法具有单向性和唯一性的特点。所谓单向性,也称为不可逆性,是指利用哈希算法生成的数字摘要,无法再恢复出原文;唯一性是指相同信息生成的数字摘要一定相同,不同信息生成的数字摘要一定不同。这一特征类似于人类的指纹特征,因此数字摘要也被称为数字指纹。
|
|
|
|
数字摘要具有指纹特征,因此可以通过对比两个信息的数字摘要是否相同来判断信息是否被篡改过,从而验证信息的完整性。
|
|
|
|
|
|
(1)发送方将原文用哈希(Hash)算法生成数字摘要1;
|
|
|
|
(3)接收方收到原文后用同样的哈希(Hash)算法对原文进行运算,生成新的数字摘要2;
|
|
|
(4)接收方将收到的数字摘要1与新生成的数字摘要2进行对比,若相同,说明原文在传输的过程中没有被篡改,否则说明原文信息发生了变化。
|
|
|
|
哈希(Hash)算法是实现数字摘要的核心技术。数字摘要所产生的信息串的长度和所采用的哈希算法有直接关系。目前广泛应用的哈希算法有MD5算法和SHA-1算法。
|
|
|
MD5算法的全称是“Message-Digest Alogrithm 5”,诞生于1991年,由国际著名密码学家、RSA算法的创始人Ron Rivest设计发明,经MD2、MD3和MD4发展而来。MD5算法生成的信息摘要的长度为128位。
|
|
|
SHA算法的全称是“Secure Hash Alogrithm”,诞生于1993年,由美国国家标准技术研究院(NIST)与美国国家安全局(NSA)设计。SHA(后来被称作SHA-0)于1995年被SHA-1替代,之后又出现了SHA-224、SHA-256、SHA-384和SHA-512等,这些被统称为SHA-2系列算法。SHA-1算法生成的信息摘要的长度为160位,而SHA-2系列算法生成的信息摘要的长度则有256位(SHA-256)、384位(SHA-384)、512位(SHA-512)等。与MD5算法相比,SHA算法具有更高的安全性。
|
|
|
MD5算法和SHA算法在实际中有着广泛的应用。与公钥技术结合,生成数字签名。目前几乎主要的信息安全协议中都使用了SHA-1或MD5算法,包括SSL、TLS、PGP、SSH、S/MIME和IPSec等。UNIX系统及不少论坛/社区系统的口令都通过MD5算法处理后保存,确保口令的安全性。
|
|
|
需要说明的是,2004年8月,在美国加州圣芭芭拉召开的国际密码学会议上,我国山东大学王小云教授宣布了她及她的研究小组对MD5、HAVAL-128、MD4和RIPEMD等四个著名密码算法的破译结果。2005年2月,王小云教授又破解了另一国际密码算法SHA-1。这为国际密码学研究提出了新的课题。
|
|
|
|
|
在ISO 7498-2标准中,数字签名被定义为:“附加在数据单元上的一些数据,或是对数据单元所做的密码变换,这种数据和变换允许数据单元的接收者用以确认数据单元来源和数据单元的完整性,并保护数据,防止被人(例如接收者)进行伪造”。实际上,简单地讲,数字签名就是在网络中传送信息报文时,附加一个特殊的唯一代表发送者个人身份的标记,以起到传统上手写签名或印章确认的作用。
|
|
|
数字签名建立在数字摘要的基础上,结合公钥加密技术实现。发送者应用自己的私钥对数字摘要进行加密,即生成数字签名。由于发送者的私钥仅为发送者本人所有,所以附加了数字签名的信息能够确认消息发送者的身份,也防止了发送者对本人所发送信息的抵赖行为。同时通过数字摘要技术,接收者可以验证信息是否发生了改变,从而确定信息的完整性。
|
|
|
|
数字签名的使用过程包括签名和验证两部分,如下图所示。
|
|
|
|
|
(1)发送方将原文用哈希(Hash)算法生成数字摘要Z;
|
|
|
|
(3)发送方将加密后的数字摘要Z(即数字签名)同原文一起发送给接收方;
|
|
|
(4)接收方用发送方的公钥解密数字签名,得到数字摘要Z;
|
|
|
(5)接收方对接收到的原文用同样的哈希(Hash)算法生成数字摘要Z′;
|
|
|
(6)比较Z和Z′,若二者相同,说明信息完整且发送者身份是真实的。
|
|
|
|
(1)确认信息的完整性。接收方将原文生成的数字摘要与用接收到的原文生成的新的数字摘要进行对比,相同则说明信息没有改变,不同则说明信息内容发生了变化。因此数字签名能够验证信息是否被修改,从而确定信息的完整性。
|
|
|
(2)确认信息发送者的身份,保证发送信息的不可抵赖性。发送者用自己的私钥对数字摘要进行加密,接收者如果能用对应的公钥进行解密,则说明信息一定是由该发送者发送的,从而确认了发送者的身份。此外,由于发送者的私钥是发送者本人拥有(除非丢失、泄露或被窃取),所以发送者不能否认自己曾经发送过的信息。
|
|
|
|
|
(1)RSA签名。RSA签名是基于RSA算法实现数字签名的方案,ISO/IEC 9796和ANSI X9.30-199X已将RSA作为建议数字签名的标准算法。
|
|
|
(2)ElGamal签名。ElGamal签名是专门为签名目的而设计。该机制由T.ElGamal于1985年提出,经修正后,被美国国家标准与技术学会(NIST)作为数字签名标准(Digital Signature Standard,DSS)。
|
|
|
RSA签名基于大整数素数分解的困难性,ElGamal签名基于求离散对数的困难性。在RSA签名机制中,明文与密文一一对应,对特定信息报文的数字签名不变化,是一种确定性数字签名。ElGamal签名机制采用非确定性的双钥体制,对同一消息的签名,根据签名算法中随机参数选择的不同而不同,是一种随机式数字签名。
|
|
|
|
传统商务活动中,我们通过出示身份证、营业执照等证件证明我们的合法身份。身份证由公安部门发放,营业执照由工商管理部门发放,他们是大家信任的第三方权威机构,由他们所发放的身份或资格证明受到大家的认可。电子商务活动中,不见面的双方证明自己的真实身份,通过数字证书及其发放机构认证中心实现。
|
|
|
|
|
数字证书(Digital Certification)是标识网络用户身份的电子文档,该电子文档由权威的第三方认证机构CA负责发放。数字证书包含用户的基本数据信息及公钥信息、颁发证书的CA的相关信息,并由CA进行数字签名,保证其真实性。数字证书类似于现实生活中的身份证、营业执照、军官证等证件,起到了证明网络用户身份及其公钥合法性的作用。
|
|
|
|
数字证书在网络活动中的应用领域与范围越来越广,按照其功能与用途进行分类主要有个人证书、单位证书、服务器证书、代码签名证书、CA证书。
|
|
|
(1)个人证书。用于证实参与个人网上交易、网上支付、电子邮件等业务时的用户身份。此类证书包含个人用户的身份信息、个人用户的公钥以及证书机构签发的签名等。
|
|
|
(2)单位证书。用于证明参与网络活动的企业的身份,包括单位身份证书、单位E-mail证书、部门证书、职位证书等多种类型。
|
|
|
(3)服务器证书。用于证实网络交易中服务器(如银行服务器、商家服务器)的身份及公钥。
|
|
|
(4)代码签名证书。用于证明软件开发者的身份。使用代码签名证书,用户可以验证软件的来源是否是真实的开发者,同时也可以确认软件的完整性,保证软件在接收过程中没有被篡改。
|
|
|
(5)CA证书。用户也可能需要验证CA的真实性,CA证书就是用来证明CA真实身份的证书。
|
|
|
|
数字证书遵循国际流行的ITU-Trec.X.509标准。数字证书的内容可分为两部分:数字证书拥有者的信息和颁发数字证书的CA的信息。
|
|
|
|
|
(2)数字证书的序列号。每个数字证书都有一个唯一的证书序列号,用以识别证书。当证书被撤销时,数字证书序列号会被放入证书撤销列表中。
|
|
|
(3)数字证书的有效期。包括有效起始日期和有效终止日期,超过该日期范围,数字证书无效。
|
|
|
|
(5)公钥信息。数字证书拥有者的公钥信息,包括公钥加密体制算法名称及公钥的字符串信息,该项只适用于RSA加密算法体制。
|
|
|
(6)缩略图。即该证书的数字摘要,用以验证证书的完整性。
|
|
|
|
|
|
|
(2)数字证书颁发者的数字签名。CA对颁发的证书的签名。
|
|
|
(3)数字签名算法。数字证书颁发者CA使用的数字签名算法。
|
|
|
|
使用数字证书就像我们平常使用身份证一样,当发送方发送信息给接收方时,发送方将信息与自己的数字证书一同发送给接收方,接收方通过验证数字证书确认发送方的身份。具体过程如下:
|
|
|
(1)接收方首先验证证书的真实性。接收方用CA的公钥解开CA对数字证书的签名,如果没有错误,说明证书是经过有效认证的。
|
|
|
(2)接收方验证证书的完整性。接收方采用数字证书中提供的数字摘要算法对数字证书进行运算生成数字摘要,再与数字证书中的数字摘要进行对比,如果一致,说明证书没有被篡改,验证了其完整性。
|
|
|
经过以上验证,确认了数字证书的真实性和可靠性,从而认证了信息发送方的身份。
|
|
|
在数字证书的使用过程中,涉及数字证书的有效性问题。如果数字证书无效,也就无须验证。有效的数字证书需满足以下三个条件:
|
|
|
(1)数字证书没有过期。数字证书的内容中包含数字证书的有效起始日期和有效终止日期,超过该日期范围的数字证书就是无效的,如下图所示。
|
|
|
|
|
(2)数字证书对应的密钥没有被修改或丢失。如果发生数字证书中的公钥被修改或数字证书公钥所对应的私钥丢失,其所对应的数字证书均应被视为无效。
|
|
|
(3)数字证书不在证书撤销列表中。数字证书认证机构会保存一张证书撤销列表,就像黑名单一样,将所有已撤销证书的信息列在该表中。如果证书信息(如序列号)已在证书撤销列表中,则该证书就是无效的,不能用于证明该证书拥有者的用户身份。
|
|
|
|
认证中心是数字证书的颁发机构,是基于Internet平台建立的一个公正的、权威的、第三方独立组织机构,主要负责数字证书的发行、管理以及认证服务,其英文为Certification Authority,简称CA。
|
|
|
认证中心的核心职能是发放和管理数字证书,包括证书的颁发、证书的更新、证书的查询、证书的作废、证书的归档等。
|
|
|
|
用户想获得数字证书时,首先要向认证中心提出申请,认证中心接收用户的申请,在核实情况后,批准或拒绝用户申请。批准用户申请签发数字证书遵循一定的原则:
|
|
|
|
|
|
|
认证中心可以定期更新所有用户的证书,或者根据用户的请求更新用户的证书。例如,用户证书有效期满以后,由认证中心负责进行证书的更新。
|
|
|
|
认证中心提供用户证书查询的管理,分为证书申请查询和用户证书查询。证书申请查询是指认证中心根据用户查询请求返回当前用户证书申请的处理过程;用户证书查询是指目录服务器根据用户的请求返回适当的证书。
|
|
|
|
用户私钥丢失、泄露等会造成用户证书需要申请作废,认证中心将根据用户的作废申请请求确定是否将该数字证书作废;或者证书已过有效期,认证中心自动将该证书作废。认证中心通过维护证书撤销列表(Certificate Renovation List,CRL)完成上述功能。
|
|
|
|
作废的证书并不能简单的丢弃,认证中心需要对其进行存档管理,以备需要验证以前某个交易过程中产生的数字签名时查询。
|
|
|