在信息安全领域中,一方面是保证信息的保密性,防止通信中的机密信息被窃取和破译,防止对系统进行被动攻击;另一方面是保证信息的完整性和有效性。既要搞清楚与之通信的对方的身份是否真实,也要证实信息在传输过程中是否被篡改、伪装、窜扰和否认,从而防止对系统进行主动攻击。
7.4.1 认证技术
认证(Authentication)是指核实真实身份的过程,是防止主动攻击的重要技术。它对于保证开放环境中各种信息系统的安全性有重要作用。认证主要分为以下两个方面:第一是消息认证。是验证信息的完整性,即验证数据在传输或存储过程中是否被篡改、重放或延迟等。第二是实体认证。即验证信息发送者是真的,而不是冒充的,包括信源和信宿的认证和识别。
1.消息认证
消息认证是一种过程,它使得通信的接收方能够验证所收到的报文(发送者、报文内容、发送时间和序列等)在传输的过程中是否被假冒、伪造和篡改,是否感染上病毒等,即保证信息的完整性和有效性。
在网络应用中,许多报文不需要加密。例如,通知网络上的所有用户有关网络的一些情况,或网控中心的报警信号等。如何让接收报文的目的站来认证没有加密报文的真伪,正是消息认证的目的。
消息认证可以有不同的方案,例如,采用消息认证码(Message Authentication Code,即MAC)的消息认证或使用哈希(HASH)函数的消息认证。
(1)消息认证码
消息认证码是一种实现消息认证的方法。MAC是由消息M和密钥K的一个函数值MACCK(M)产生的。其中M是变长的消息,K是收发双方共享的密钥,CK(M)是定长的认证码。
该技术假定通信双方A和B共享一个共有的密钥K。当A要向B发送消息,确信或已知消息正确时,计算MAC,然后将MAC附加到消息M的后面发往预定的接收者。接收者使用相同的密钥K,对收到的消息M执行相同的计算并得出新的MAC。将收到的MAC与计算得出的MAC进行比较。假定只有接收方和发送方知道密钥K,同时如果收到的MAC与计算得出的MAC匹配,那么接收者确信消息未被更改过,并且确信消息来自所谓的发送者。
(2)哈希函数的概念
哈希函数是可接受变长数据输入,并生成定长数据输出的函数。这个定长的输出是输入数据的哈希值或称消息摘要。由于哈希函数具有单向性的属性,有时也叫单向散列函数。
哈希值以函数H产生:hH(M)
其中,M是变长的消息;H是一个将任意长度的消息M映射为一个较短定长的哈希值h的哈希函数;H(M)是定长的哈希值。
该技术的工作过程如下,当A要向B发送消息,A首先利用哈希函数对要发送的消息M进行哈希计算,算出哈希值h,然后将h附加到消息M的后面发往预定的接收者B。接收者B使用相同哈希函数对收到的消息M进行计算并得出新的哈希值h。将收到的哈希值h与计算得出的哈希值h进行比较。假如收到的哈希值与计算得出的哈希值匹配,那么接收者就确信消息未被更改过。如果对哈希值进行加密,即用发送者的私有密钥加密,那么还能验证发送者的身份,实际上,这是利用了数字签名技术。
2.实体认证
信息系统的安全性还取决于能否验证用户或终端的个人身份。传统的身份证明一般是通过检验“物”的有效性来确认持该物的人的身份,随着信息化时代的发展,验证的对象也在逐渐扩大。那么如何在数字化的时代确认对象的身份,已经成为电子商务安全领域里的重要问题。
一个身份证明系统一般由三方组成:一方是示证者,由证件的持有人提出某种请求,并出示证件;一方是验证者,检验示证者出示的证件的正确性和合法性;第三方是认证机构,它一般由权威机构充当,我们把此类技术就称为身份证明技术或认证技术。
电子商务安全中有两个问题涉及身份识别:一是鉴别性,如果不进行身份鉴别就有可能被攻击者假冒,进行身份识别后,就可以阻止这种行为;二是不可抵赖性,交易双方都不能对其交易行为予以否认,假如有些现象发生,利用身份认证技术,就可以有其抵赖行为的证据。而这些问题要得到很好的解决,确保电子交易的安全,就必须采取一些安全技术手段。
7.4.2 证书机构
证书机构(Certification Authority,即CA)是一个可信的第三方实体,其主要职责是保证用户的真实性。
本质上,CA的作用同国家政府机关的护照颁发机构类似,用于证实公民是否是所宣称的那样,而信任这个国家政府机关护照颁发机构的其他国家,则信任该公民,认为其护照是可信的,这是第三方信任的一个很好的实例。同护照类似,网络用户的电子身份(Electronic Identity)是由CA来发布的,也就是说,这个身份是被CA所信任的,该电子身份就是数字证书。证书机构的主要功能有以下几个:
1.证书的颁发
接收和验证用户(包括下级证书机构和最终用户)的数字证书的申请,将申请的内容进行备案,并根据申请的内容确定是否受理该数字证书申请。如果证书机构接受该数字证书申请,则进一步确定给用户颁发何种类型的证书。新证书用证书机构的私钥签名以后,发送到目录服务器供用户下载和查询。为了保证消息的完整性,返回给用户的所有应答信息都要使用证书机构的签名。
2.证书的更新
证书机构可以定期更新所有用户的证书,或者根据用户的请求更新用户的证书。
3.证书的查询
证书的查询可以分为两类,其一是证书申请的查询,证书机构根据用户的查询请求返回当前用户证书申请的处理过程;其二是用户证书的查询,这类查询由目录服务器完成,目录服务器根据用户的请求返回适当的证书。
4.证书的作废
当用户的私钥由于泄密等原因造成用户证书需要申请作废时,用户需要向证书机构提出证书作废请求,证书机构根据用户的请求确定是否将该证书作废。另外一种证书作废的情况是证书已经过了有效期,证书机构自动将该证书作废。
5.证书的归档
证书具有一定的有效期,证书过了有效期之后就将作废,但是不能将作废的证书简单地丢弃,因为有时我们可能需要验证以前的某个交易过程中产生的数字签名,这时就需要查询作废的证书。
7.4.3 数字证书
数字证书又称为数字标识(Digital Certificate,Digital ID)。它提供了一种在Internet上进行身份验证的方式,是用来标志和证明网络通信双方身份的数字信息文件,与司机驾照或日常生活中的身份证相似。在网上进行电子商务活动时,交易双方需要使用数字证书来表明自己的身份,并使用数字证书来进行有关的交易操作。通俗地讲,数字证书就是个人或单位在Internet 的身份证。数字证书主要包括三方面的内容:证书所有者的信息、证书所有者的公开密钥和证书颁发机构的签名。
1.数字证书的作用
利用数字证书来证实一个用户的身份及用户对网络资源的访问权限。在网上电子交易中,如果双方出示了各自的数字证书,并用它来进行交易操作,那么双方都可不必为对方身份的真伪担心。在使用数字证书的过程中,应用公开密钥加密技术建立起一套严密的身份认证系统,实现以下几个方面:
(1)除发送方和接收方外信息不被其他人窃取;
(2)信息在传输过程中不被篡改;
(3)接收方能够通过数字证书来确认发送方的身份;
(4)发送方对于自己发送的信息不能抵赖。
2.数字证书格式
一个标准的X.509 数字证书包含(但不限于)以下内容:
(1)证书的版本号;
(2)数字证书的序列号;
(3)证书拥有者的姓名;
(4)证书拥有者的公开密钥;
(5)公开密钥的有效期;
(6)签名算法;
(7)颁发数字证书的单位;
(8)颁发数字证书单位的数字签名。
3.数字证书的类型
电子商务交易中,数字证书大致可分为以下几种:
(1)个人数字证书
个人数字证书是颁发给个人用户的数字证书,用来向对方表明个人的身份,同时可以用来实现安全电子邮件、安全个人登录、电子文档签名等多种安全应用。
(2)单位数字证书
单位数字证书是由电子商务认证中心为公司企业、政府机构、组织团体等签发的数字证书,能够在互联网上标识该单位、组织的身份及实现安全登录、收发安全电子邮件、文档电子签名等安全应用。单位数字证书对外代表整个单位。
(3)服务器数字证书
服务器数字证书又称站点证书,主要颁发给Web 站点或其他需要安全鉴别的服务器,证明服务器的身份信息。用来证实服务器的身份和公钥,当客户与某个站点建立SSL链接时,服务器将它的证书传送给客户。当客户收到该证书时,要检查该站点的身份即检查它的证书,用户可以信任也可以拒绝该证书。服务器数字证书支持目前主流的Web Server,包含但不限于IIS、Lotus Domino、Apache、iPlant 等Web 服务器,可以存放于服务器硬盘或加密硬件设备上。
(4)安全电子邮件证书
安全电子邮件证书结合使用数字证书和S/MIME 技术,对普通电子邮件做加密和数字签名处理,确保电子邮件内容的安全性、机密性、发件人身份确认性和不可抵赖性。
4.数字证书的应用
(1)通过S/MIME协议实现安全的电子函件系统。
(2)通过SSL协议实现浏览器与Web服务器之间的安全通信。
(3)通过SET协议实现信用卡网上安全支付。