首页 理论教育 电子商务安全认证体系

电子商务安全认证体系

时间:2022-11-02 理论教育 版权反馈
【摘要】:电子商务安全是电子商务生存的保障,电子商务是商务活动的全新运作模式。各种不同来源的统计数据表明,来自外部的黑客恶意攻击以及破坏力日益强大、传播越来越迅速的病毒是当前电子商务系统安全防范需要面临的最严峻考验。在电子交易过程中,商务信息均有保密要求。

第三章 电子商务安全与技术

学习目标

1.了解电子商务安全

2.了解密码学

3.熟悉传统对称密码体制

4.熟悉公钥密码体制

5.熟悉程序安全

6.熟悉操作系统安全

7.熟悉数据库安全

8.掌握网络安全

9.熟悉认证技术

10.熟悉数字签名

11.熟悉数字时间戳

12.掌握数字摘要技术

13.掌握身份认证技术

14.熟悉数字证书及证书授权中心

15.熟悉PKI安全体系

16.掌握SET安全体系

第一节 电子商务安全

电子商务安全是电子商务生存的保障,电子商务是商务活动的全新运作模式。商务运作的一系列过程都体现着参与商务活动各方的权利、责任、义务和利益,对于迅速发展的电子商务热潮,这一切都处于摸索的过程中。产生电子商务安全问题的背景是电子化、网络化、数字化技术的发展,使许多传统意义下形成的解决办法不能被简单地照抄照搬。传统意义下的商务活动是人和人面对面接触建立的信任,在依法保障书面契约确立的权利、责任和利益下的经济活动,是“一手交钱,一手交货”的贸易方式。而电子商务则要考虑在相距千里,只有数字化交往和约定的情况下如何建立相互信任,如何确立责、权、利,如何提供有法律依据的凭证。

在Internet环境中开展电子商务,客户、商家、银行等诸多参与者都会担心自己的利益是否能够真正得到保障。因此,各国政府、国际组织以及IT业界人士都在尽力研究电子商务的安全问题,期望实现有序、可信、安全发展。只有确保电子商务的安全,才能够吸引更多的社会公众投身电子商务、运用电子商务、发展电子商务,才能使电子商务健康、高速发展。

一、电子商务安全的基本概念

电子商务安全是指保护电子商务系统中计算机硬件、软件数据不因偶然和恶意的原因而遭到破坏、更改和泄露,其根本目的是防止通过计算机网络传输的信息被破坏和非法使用。在电子商务网络及系统运行过程中存在危害程度不同、类型各异的安全风险,如由自然灾害、人为破坏、电气故障等导致的物理安全风险,与网络系统、操作系统、应用系统相关的系统安全风险,非法入侵、主页篡改、传播病毒等来自互联网的风险,窃听、截获数据、IP伪装等链路传输风险,恶意破坏、泄密等来自内部网的风险等。各种不同来源的统计数据表明,来自外部的黑客恶意攻击以及破坏力日益强大、传播越来越迅速的病毒是当前电子商务系统安全防范需要面临的最严峻考验。

二、电子商务安全需求

电子商务主要依托的运作环境是当前的互联网和国际信息基础设施(GII)。网络是从事电子商务的机构生存和工作的环境。开放网络带来了全球可达的全天候服务以及自由浏览、高效获取和交换信息等信息共享方面的极大好处。从业机构的开业挂牌,广而告之,出示产品和服务,联系业务,签署交易协议,交易款项的存、取、支付,交易结果的查询、追踪都可利用网络来展开。开放的网络环境与安全要求客观上成为一对矛盾,带来了许多需要关注和解决的安全问题。电子商务的安全需求表现在以下四个方面。

(1)信息保密性。信息泄露主要表现为:①交易双方进行的交易内容被第三方窃取。②交易一方提供给另一方使用的数据或文件被第三方非法使用。

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

(2)交易者身份的确定性。网上交易的双方很可能素昧平生,相隔千里。要使交易成功,首先需要确认对方的身份,能方便而可靠地确认对方身份是交易的前提。

(3)交易的不可否认性。由于商情的千变万化,交易一旦达成是不能被否认的,否则必然会损害一方的利益。例如,订购黄金,订货时金价较低,但收到订单后金价上涨,如果收单方否认收到订单的实际时间,甚至否认收到订单的事实,则订货方就会蒙受损失。

(4)交易文件的不可修改性。交易的文件是不可被修改的。如上例所举的黄金订购,供货单位在收到订单后,发现金价大幅上涨,如其改动文件内容,将订购数1吨改为1克,则可大幅受益;而订货单位则将蒙受巨大损失。

对于这些安全需求,需要通过相应的电子商务技术加以解决,在电子商务中涉及的安全技术包括防火墙技术、加密技术、数字签名技术和认证技术等。

三、电子商务安全体系结构

(一)电子商务体系结构

电子商务是多种技术的集合体,它包括了数据获取(如数据库共享)、数据加工处理(如认证、加密)和数据交换(如电子邮件、EDI等)。

从服务角度看,电子商务的服务功能主要包括:网上广告宣传、网上咨询和交易洽谈;网上的产品订购、货币支付、电子账户管理;网上商品的传递及查询、用户意见征询和交易活动的管理等。

从技术角度看,电子商务需要一个完整的技术体系做基础,一般包括:电子商务网络基础、电子商务安全基础、电子商务支付系统和电子商务应用系统,如图3-1所示。

图3-1 电子商务体系结构

(二)电子商务安全体系结构

电子商务安全从总体上可分为计算机网络安全和商品交易安全两大部分,在计算机网络安全的基础上,如何保障电子商务交易过程的顺利完成,就变得至关重要了。

1.电子商务中的安全隐患

(1)信息的截获和窃取。如果没有采用加密措施或加密强度不够,攻击者可能通过互联网、公共电话网、搭线、在电磁波辐射范围内安装接收装置或在数据包通过的网关和路由器截获数据等方式,获取传输的机密信息,或通过对信息流量和流向、通信频率和通信数据字长等参数的分析推导出有用信息,如用户密码以及机构的机密等。

(2)信息的篡改。当攻击者熟悉了网络信息格式以后,通过各种技术方法和手段对网络传输的信息进行中途修改,再发往目的地,从而破坏信息的完整性。这种破坏手段主要有三个方面:篡改(改变信息流的次序,更改信息的内容)、删除(删除某个消息或消息的某些部分)、插入(在消息中插入一些信息,使接收方无法读懂或接收错误的信息)。

(3)信息假冒。当攻击者掌握了网络信息数据规律或解密了机构信息以后,可以假冒合法用户或发送假冒信息来欺骗其他用户,主要有两种方式:一是伪造电子邮件,通过这种方式,攻击者可以虚开网站,给用户发电子邮件;伪造大量用户,发送电子邮件,穷尽机构资源,使合法用户不能正常访问网络资源,使有严格时间要求的服务不能及时得到响应;可以伪造用户,发送大量的电子邮件,窃取机构的信息。二是假冒他人身份,如冒充领导发布命令、调阅密件;冒充他人栽赃;冒充主机欺骗合法主机及合法用户;冒充网络控制程序,窃取或修改使用权限、通行字、密钥等信息;冒充合法用户,欺骗系统,占用合法用户的资源等。

(4)收发件抵赖。收发件抵赖包括多个方面,如发信者事后否认曾经发送过某条信息或内容;收信者事后否认曾经收到过某条消息或内容等。

2.电子商务安全模型

在ISO TC97制定的ISO 7498—2中描述了开放系统互联安全的体系结构,提出设计安全信息系统的基础架构,确定了五种基本安全服务和八种安全机制,并把这些内容映射到了OSI七层协议模型中。该体系结构在国际上是一个非常重要的安全技术架构基础,如图3-2所示。

图3-2 OSI七层协议相对应关系

五种基本的安全服务:

认证(Authentication):认证是用来防止信息系统被非授权用户侵入的技术手段。由于认证是其他大多数访问控制和建立用户职能的基础,所以它被看做信息系统的关键基础构件。

访问控制(Access Control):访问控制处在用户和系统身份认证之后。系统在验证用户并建立用户信息之后即使用访问控制模式,控制用户在系统中可以访问的资源。这些模式被用于接受或拒绝授权。

数据保密(Data Confidentiality):数据保密通过数据加密的方式进行,使用的算法包括DES、RSA和MD5。

数据完整性(Data Integrity):防止数据在存储和传输过程中被篡改和破坏,从而使用户不被非法数据所欺骗,也防止非法用户浏览机密信息。

防止否认(Non-reputation):认证技术主要涉及身份认证和报文认证两个方面的内容。身份认证用于鉴别用户身份,报文认证保证通信双方的不可抵赖性和信息的完整性。具体可采用数字签名技术对重要业务数据进行数字签名,使通信双方对通过网络交换的数据无法抵赖,当发生争议的时候,系统能够为仲裁机构提供证据,确保通信双方行为的真实性。

八种安全机制:

加密;数字签名;访问控制;数据完整性;数据交换;业务流填充;路由控制;身份认证。

第二节 密码学概述

密码学以研究秘密通信为目的,即研究对传输信息采取何种秘密的变换以防止第三者对信息的窃取。保密有载体保密和通信保密两种。密码学主要研究通信保密,而且仅限于数据通信保密。

由于传输中的公共信道和存储的计算机系统非常脆弱,容易受到被动攻击(从传输信道上截取或从存储载体上偷窃、拷贝信息)和主动攻击(对处于传输过程中或处在存储载体中的信息进行非法删除、更改、插入等操作)。对于这两种攻击,密码技术是一种有效的办法。事实证明,这是最经济可行的办法,它在潜在不安全的环境中保证了通信的安全。

近代密码学并不是传统密码学的旧话重提,它具有新的特点。快速计算机和现代数学方法的广泛应用一方面为密码技术提供了新的工具和概念,另一方面也给破译者以有力武器。

密码加密算法的对立面就是密码分析,也就是密码的破译技术研究。加密与破译是一对矛盾,是相辅相成的,了解破译对研究加密是非常必要的。

一、密码学

电子商务信息系统的安全主要涉及高速电子信道中传输的数据和系统中存储数据的安全问题,它包含两个主要内容:保密性,即防止非法地获悉数据;完整性,即防止非法地修改数据。为了保障分布式系统与计算机网络中传输与存储数据的安全,通常采用四种不同的控制方法,即密码控制、存取控制、信息流控制和推理控制,此外,还包括备份与数据恢复等手段。鉴于密码学在计算机网络安全中的关键作用,这里着重介绍密码学的基本原理和主要内容。

密码学主要研究通信保密,而且仅限于计算机及其通信保密。它的基本思想是通过变换信息的表示形式来伪装需要保护的敏感信息,使非授权者无法理解被保护信息的含义。所谓“伪装”,就是对传输的信息——计算机软件中的指令和数据进行一组可逆的数字变换。伪装前的原始信息称为明文(Plaintext,P或M);伪装后的信息称为密文(Ciphertext,C);伪装的过程称为加密(Encrypting,E),由明文变成密文的过程;加密要在加密密钥(Key,K)的控制下进行。用于对信息进行加密的一组数字变换,称为加密算法。发信者将明文数据加密成密文,然后将密文数据送入计算机网络或存入计算机文件。授权的接收者在收到密文数据后,进行与加密相逆的变换,去掉密文的伪装,恢复明文,该过程称为解密(Decrypting,D)。解密是在解密密钥的控制下进行的,用于解密的一组数字变换称为解密算法。加密和解密过程组成加密系统,明文和密文统称为报文。常规密码系统的模型如图3-3所示。

图3-3 常规密码系统的模型

任何加密系统,无论形式多么复杂,至少应包含以下五个部分:

(1)明文空间M:它是待加密的全体报文的集合。

(2)密文空间C:它是加密后的全体报文的集合。

(3)密钥空间K:它是全体密钥的集合,可以是数字、字符、单词或语句。其中,每一个密钥Ki均由加密密钥Ke和解密密钥Kd组成,即Ki=(Ke,Kd)。

(4)加密算法E:它是一族由M到C的加密变换。

(5)解密算法D:它是一族由C到M的解密变换。

因为信息以密文形式存储在计算机的文件中,或在通信网络中传输,因此,即使被未授权者非法窃取,或因系统故障或人为操作失误造成信息泄露,未授权者也不能识别和理解其真正的含义,从而达到保密的目的。同样,未授权者也不能伪造合理的报文,因而不能篡改和破坏数据,从而达到确保数据真实性的目的。

对于每一确定的密钥Ki=(Ke,Kd),加密算法将确定一个具体的加密变换,解密算法将确定一个具体的解密变换,而且解密变换是加密变换的逆过程。对于明文空间M中的每一个明文,加密算法在加密密钥Ke的控制下将M加密成密文C。

C=E(M,Ke

而解密算法在解密密钥及Kd控制下,从密文C中解出同一个明文M。

M=D(C,Kd)=D(E(M,Ke),Kd

如果一个密码体制的Ke=Kd,由其中一个很容易推出另一个,则称为单密钥密码体制,也可称为对称密码体制或传统密码体制。传统密码体制包括换位加密、代替加密、乘积加密和综合加密等。软件加密主要利用传统密码体制。如果密码体制的Ke≠Kd,则称为双密钥密码体制,或称非对称密码体制。这种密码体制由Kd不能推出Ke,Ke的公开也不会损害Kd的安全。因此将这种密码体制称为公开密钥密码体制,其算法比较复杂,通常用做数据加密。

这里给密码学下一个定义,即密码学是研究秘密书写的原理和破译密码方法的一门科学。包含两方面密切相关的内容:一是密码编制学,研究编写实用密码系统的方法,保护信息不被敌方或任何无关的第三方侦悉;二是密码分析学,研究攻破密码系统的途径,恢复被隐蔽的信息的本来面目。

二、传统对称密码体制

在公钥密码体制出现以前,传统的密码体制无论是古典密码还是近现代密码都属于对称密码体制,即加密和解密使用同一个密钥,在实际中常用的分组密码体制,如DES、IDEA都属于对称密码体制。多年来,对称密码体制一直被广泛应用于各类信息的加密和解密。

无论是采用手工或者机械方式完成的古典密码体制,还是采用计算机程序软件方式或者电子电路硬件方式完成的现代密码体制,尽管操作方法不一样,但其加密和解密的基本原理是一致的,即都是基于对明文信息的“置换”和“替代”完成的,或者是通过对两者的组合运用即乘积的方式来完成的。

1.置换

置换又称“换位”方法,是指变换明文中各元素的相对位置,但保持其内容不变的方法,即通过对明文元素重新排列组合来达到隐藏明文原始内容所表达含义的加密方法。最典型的置换密码体制是栅栏密码技术,其加密算法步骤如下:

(1)将明文的元素按照两行的方式书写,并按照从上到下、从左到右的方式规格。

(2)按从上到下的顺序依次读出每一行的元素,所得到的组合就是密文。

2.替代

顾名思义,替代方法是将明文各元素的内容用新的符号或者符号组合代替,替换之后形成的新元素符号集合便是密文。替代是改变明文中各元素的内容表示,但是并不改变各元素的位置,这一点正好与置换方法相反。例如,常用的替代方式是将明文的字母用数字或其他字母代替,著名的古典密码体制之一——恺撒密码就是运用替代方法实现加密的典型例子。恺撒密码替代规则是:按照英文字母表的顺序,将明文中的每个元素用各自后面对应的第K个字符代替,替换之后的字符集合是密文。在恺撒密码体制中,明文信息空间是26个英文字母集合,密钥信息空间是正整数集合,为了计算方便,将26个英文字母集合对应为0~25的整数,加密算法则是明文与密钥相加之和,然后模26,因此Ek=(M+K)mod 26;与之对应的解密算法是Dk,Dk=(C-K)mod 26。例如,M为“hello world”,在密钥K=5的条件下,此时对应的密文就是“miqqt btwqi”。说明了若明文信息是“hello world”,密钥K=5,则对应的密文信息是“mjqqt btwqi”。如表3-1所示,将表中第一行英文字母表中各字母向右移5个字符,尾部的最后5个字符移到字母表开始处,得到第二行所示的字母序列,显而易见,移动之后第二行的“h”字符此时对应第一行英文字母表中的“m”字符,“e”字符对应的是“j”,“l”对应的是“q”等,将对应的新字符集合组合起来即得到“mjqqt btwqi”序列,即为密文。

表3-1 替代法示例

三、公钥密码体制

传统的对称密码体制,其基本思想是通过替代和置换两种方式隐藏明文的结构信息。通过加密和解密,在通信信道中传输的数据能得到有效的保护,发送信息的一方在密钥的控制下加密信息,接收信息的一方在密钥的控制下解密信息。这样,在通信信道中传输的是经过加密处理的密文信息,任何截取该信息的第三者,如果不知道通信双方使用的密钥,则无法从密文中获取明文信息。密钥是密码系统的核心与关键元素,对称密码体制中加密密钥和解密密钥相同,因此应用对称密码体制需要通信双方事先共享某个密钥。但是在电子商务系统中,当进行电子交易时,买卖双方通常都是互不认识、素昧平生的陌生人,他们之间事先不可能共享密钥,那么双方在交易时传输的信息如何才能得到保护,并且通信双方怎样才能确信对方的身份是合法的?传统的对称密码体制在解决这些问题时似乎有点力所不及,此类问题推动了密码学的进一步发展。1976年,W.Diffie和M.E Hellman两位研究人员首次提出了公钥密码学的概念。

(一)公钥密码体制的优点

(1)密钥分发简单。由于加密和解密密钥不同,而且不能从加密密钥推导出解密密钥,因而加密密钥表可以像电话号码本一样分发。

(2)秘密保存的密钥量减少。每张智能卡只需秘密保存自己的解密密钥。

(3)公钥的出现使得非对称密码体制得以适应开放性的使用环境。

(4)可以实现数字签名。

所谓“数字签名”,主要是为了保证接收方能够对公正的第三方(仲裁方)证明其收到的报文的真实性和发送源的真实性而采取的一种安全措施。它的使用可以解决由于收发方的不诚实而产生的争执,即可以保证收发方不能根据自己的利益来否认或伪造报文。

但是,目前非对称密码体制也存在一些需要解决的问题。这里最为重要的一点是它的保密强度还远远达不到对称密码体制的水平。由于非对称密码体制不仅算法是公开的,而且公开了加密密钥,从而就提供了更多可以对算法进行攻击的信息。此外,迄今为止,所发明的非对称密码算法都是很容易用数学公式来描述的,因此它们的保密强度总是建立在对某一个特定数学问题求解的困难性上。然而,随着数学的发展,许多现在看起来难以解决的数学问题可能在不久的将来会得到解决。而诸如DES之类的对称密码算法甚至难以表示成一个确定的数学形式,因此其保密强度相应较高,这也是非对称密码体制目前的一个不足之处。另外,非对称密码体制的计算时间长,这也影响它的推广使用。尽管如此,由于非对称密码体制的明显优点,而且在某些特殊的场合也必须使用非对称密码体制,因此对非对称密码体制的研究一直处于进行中。

(二)公钥密码体制的基本原理

公钥密码体制与对称密码体制的最大不同点就是加密密钥和解密密钥不同。在公钥密码体制中,将这两个不同的密钥区分为公开密钥(Public Key,PK)和私有密钥(Secrete Key,SK)。顾名思义,公开密钥就是该密钥信息可以告诉他人,属于公开性质的;私有密钥是指属于某个用户或者实体独自享有的信息,对他人来说该信息是保密的。PK与SK是成对出现的,换言之,存在一个PK就必然有配对的SK;反之,存在一个SK就存在对应的PK。公钥密码体制用其中一个密钥进行加密,则另外一个密钥就用于解密。

1.公钥密码体制依赖的基础

传统的对称密码体制依赖的基础是“替代”与“置换”两种转换思想,即在对称密钥的控制下,通过替代及置换,将可辨认的明文变换成没有密钥的情况下不可辨认的密文。与对称密码体制不同的是,公钥密码体制依赖的基础是数学中某类问题求解困难,即对于某类数学问题,其计算复杂性相当大,在有限的时间内,无法求出该问题的解。

经典的公钥密码算法RSA、椭圆曲线密码算法ECC等都是依赖某类数学问题,它们共同的特点是基于某个单向陷门函数。单向陷门函数y=fk(x),是指同时满足下列条件的一类可逆函数:

(1)函数是一一映射关系,即对于每个函数值y,只有惟一一个的原像x与之对应。

(2)给定x与关键参数k,函数y=fk(x)很容易计算。

(3)给定y,存在某个关键参数k′。

①当未知k′时,由y算出x非常困难,即在未知k′的条件下,逆函数x=f-1(y)的计算相当复杂,实际上是不可行的;

②当已知k′时,对给定的任何y,若其对应的x存在,则逆函数x=fk′-1(y)很容易计算。

(4)给定y和参数k,无法从函数y=fk(x)推导出影响其逆函数f-1的关键参数k′。

设计任何一种公钥密码方案,所要做的工作就是寻找这样的单向陷门函数,其中陷门信息就是私钥,即上面所列举的关键参数k′。

2.公钥密码系统的特征

根据密码系统的组成以及公钥密码体制自身的特点,一个公钥密码系统可以表示为加密算法E、解密算法D、公钥/私钥(PK/SK)对、明文M、密文C 5个元素,且各元素必须满足以下条件:

(1)密钥要满足两点要求,即公钥/私钥(PK/SK)对容易产生,且除生成密钥的用户知道私钥之外,其他任何人都不可知;PK和SK中的任何一个都可以用于加密,相应的另一个用于解密;已知PK,无法计算出SK,即公钥密码系统所要满足的基本条件之一是从公开密钥无法通过计算得到私有密钥。

(2)加密算法E要满足两点要求,即已知公钥PK,对任何明文M,由E计算出密文C非常容易,即C=EPK(M)易计算;或者已知私钥SK,对任何信息M,由E计算数字签名也非常容易。

(3)解密算法D要满足两点要求,即已知私钥SK,对任何密文C,由D容易计算出明文M,或者已知公钥PK,对任何用SK所做的数字签名C,容易通过D计算,得到签名前的信息;如果已知公钥PK、密文C,以及解密算法D,无法由三者推导出明文M或者私钥SK,即公钥密码系统所要满足的最基本条件之二是仅知道解密算法以及公开密钥,推导明文和解密密钥在计算上是不可行的。

前面提到,一个设计良好的密码系统,加密算法E及解密算法D两者最好都是公开的,该原则同样适用于公钥密码系统,公钥密码系统中惟一需要保密的是私钥SK。

3.公钥密码体制加、解密过程

假设网络上的两个用户Alice和Bob需要进行秘密通信,为了防止攻击者Eve窃听信息,Alice和Bob选择使用公钥密码体制加密传输的信息。Alice是信息的发送方,Bob是信息的接收方。

(1)Alice与Bob产生公钥/私钥对:PKA/SKA,PKB/SKB

(2)Alice与Bob通过某种机制公布各自的公钥PKA与PKB,如将公钥放到服务器,供其他用户查询。

(3)Alice通过查询公共服务器获得Bob的公钥PKB。如果Alice欲给Bob发送报文M,他就利用Bob的公钥PKB加密报文。已知待加密的明文M以及Bob的公钥PKB,Alice很容易通过加密算法E计算出密文,即C=EPKB(M)。

(4)接收方Bob收到Alice发送的信息之后,使用自己的私钥SKB解密报文。已知密文C及私钥SKB,Bob很容易通过解密算法计算出明文M,即M=DSKB(C)。

Alice发送的报文,有可能被网络上其他的用户窃听到。假设攻击者Eve窃听到Alice发送的报文,虽然Eve通过查询也能获取Bob的公钥PKB,但是由公钥密码系统的满足条件之一,从公钥PKB确定Bob的私钥SKB,在计算上是不可行的,因此Eve无法获知Bob的私钥SKB。又根据公钥密码系统满足的条件之二,仅知道公开密钥和密文,无法计算出明文M。因此攻击者Eve无法得到Alice发送给Bob的秘密信息。

自1976年提出公钥密码系统设想以来,密码专家已设计出多种公钥密码算法,这些密码算法的共同点都是基于某类数学难题,通过找到该类问题的某个单向陷门函数实现对数据的加密和解密。依据所依赖的数学难题类别来划分,主要有以下三类公钥密码系统:基于大整数因子分解问题的公钥系统,典型代表是RSA算法;基于有限域椭圆曲线离散对数问题的公钥系统,典型代表是ECC算法;基于有限域离散对数问题的公钥系统,典型算法是DSA。下面对RSA算法本身加以简单介绍。

4.RSA算法

1977年,由麻省理工学院的Rivest、Shamir和Adleman三个人提出了RSA算法。其经受了各种攻击考验,被认为是目前最优秀的非对称密码方案之一,国外已经研制出了多种RSA专用芯片。

(1)RSA算法依赖的数学问题。RSA算法是基于“大整数质因子分解非常困难”这一数学难题的,这里的大整数通常有几百位长。RSA算法依赖以下几个数论定理:

第一,模运算的性质:正整数n是素数,集合Zn={0,1,2,3,…,n-1}表示小于n的所有非负整数集合,则对于集合Zn中的每一个整数w∈Zn,均存在一个z,满足公式w×z=1mod n,称z是w的乘法逆元,且n是它们的模。

第二,费马定理:如果p是素数,a是不能被p整除的正整数,则ap-1≡1mod p。

第三,欧拉函数:正整数n的欧拉函数是指小于n且与n互素的正整数个数,通常记为φ(n)。

(2)RSA算法密钥产生过程。无论是对称密码体制还是公钥密码体制,密钥都是其核心元素,密钥的安全性关系到整个密码系统的安全性。因此,密钥的选择是RSA算法中一项很重要的环节。RSA算法依赖的数学问题之一是欧拉定理,密钥选择的关键是确定欧拉函数φ(n)的两个素数p与q。参数计算如下:

选择两个大素数p和q(典型值为大于10100);

计算n=p×q和z=(p-1)×(q-1);

选择一个与z互质的数,令其为d;

找到一个e,使其满足e×d=1(mod z)。

RSA加密过程是:

首先将明文看成是一个比特串,将其划分成一个个的数据块P,且0≤P<n;

对数据块P进行加密,计算C=Pe(mod n),C即为P的密文;

对C进行解密,计算P=Cd(mod n);

公钥由(e,n)组成,私钥由(d,n)组成。

例题:假设取p=3,q=11

        n=p×q=33

        z=(p-1)×(q-1)=20

取d=7,解方程7e=1(mod 20)

        e=3

所以,公钥为(3,33);私钥为(7,33)。

例题:假设明文M=4

C=Me(mod n)=43(mod 33)=31

     即密文为C=31。

     对密文解密:

M=Cd(mod n)=317(mod 33)=4

即可恢复出原文。

(3)RSA算法的安全性。RSA算法的安全性建立在难以对大数提取因子的基础上,如果破译者能对已知的n提取出因子p和q,就能求出z,知道z和e,就能求出d。换言之,RSA算法的安全性取决于从n中分解出p和q的困难程度。因此,如果能找出有效的因数分解方法,将是对RSA算法的有效冲破。

为了增加RSA算法的安全性,最实际的做法就是加大n的长度。实际上,对整数n分解质因数时,即使使用目前速度最快的算法,其处理步数也是巨大的。步数与n的关系式可用下式表示:

步数

假设一台计算机完成一次运算的时间为1微秒,表3-2表明了分解不同长度的n所需要的平均时间。

表3-2 分解n所需要的平均时间

续表

可见,随着n的位数增加,分解n将变得非常困难。

随着计算机硬件水平的发展,对一个数据进行RSA加密的速度将越来越快,同时,对n进行因数分解的时间也将有所缩短。总体来说,计算机硬件的迅速发展对RSA算法的安全性是有利的,也就是说,硬件计算能力的增强使得我们可以给n增加位数,而不会放慢加密和解密运算的速度;而同样硬件水平的提高,对因数分解计算的帮助却没有那么大。

(4)实际应用。RSA算法是目前使用最流行的公钥加密算法之一。Phil Zimmerman公司的PGP产品允许用户使用RSA加密文件、电子邮件和其他数字数据。利用RSA,Netscape和Microsoft的Web浏览器使用安全套接层技术加密通信。此外,Windows 2000的EFS加密文件系统使用RSA加密存储在本地PC和服务器上的文件。

第三节 电子商务安全技术

在开放网络上处理交易,如何保证传输数据的安全成为电子商务能否普及的最重要因素之一。市场调查公司IDX(International Data Corporation)曾对电子商务的应用前景进行在线调查,该调查表明:绝大多数人不愿在线购物的真正原因是担心遭到黑客的侵袭而导致信用卡账户信息的丢失,希望在交易中保密自己的账户信息,使之不被人盗用。而商家也希望客户的订单具有不可抵赖性。在交易过程中,交易各方都希望验明其他方的身份,以防止被欺骗。

计算机系统面临的多数威胁都是以破坏机密性、完整性和可用性为目标。实施者主要包括自然现象、偶然事件、无恶意的用户和恶意攻击者。威胁的对象主要包括软件、硬件、数据和通信线路这四种资源,这四种资源构成了电子商务安全脆弱点的基础。实施者可以利用系统的脆弱点对系统进行攻击。这里主要介绍保证这四种资源安全的技术。

一、程序安全

由于攻击者常常利用应用程序漏洞来恶意破坏系统,因此用户和开发者越来越关注程序安全问题,他们要求应用程序的安全性。

(一)程序漏洞

程序开发中的微小错误都可能会造成很大的安全问题。这些不安全编程所引发的问题可能会被一些恶意的攻击者利用,从而改变程序执行流程。下面介绍三种典型的非恶意程序漏洞:缓冲区溢出、不完全输入验证、“检查时刻到使用时刻”错误。

1.缓冲区溢出

缓冲区是一个用于存储数据并且容量有限的内存空间。在数据存储过程中,若超过了缓冲区的最大容量,将发生缓冲区溢出。缓冲区溢出是最为常见的一种安全漏洞。

如图3-4所示,example1.c程序的主要功能是将输入的参数显示到屏幕上。但是如果输入的参数为programe Name,则程序运行将会中断。这是由于这个程序的Output-String函数在复制字符串之前没有进行边界检查,而输入参数“programe Name”的字符串长度超过了buffer数组的大小,所以该程序出现了缓冲区溢出,从而使得额外的数据溢出到缓冲区的邻近地址空间,并覆盖了内存中的其他数据。缓冲区溢出的位置可以出现在任何地方,如堆栈、堆和静态数据区等。

图3-4 程序example1.c

怀有恶意的程序员可以利用缓冲区溢出漏洞,恶意造成缓冲区溢出,并将对应于机器代码指令的数据写入溢出空间,从而将攻击代码植入被攻击程序的地址空间,然后攻击者通过寻求触发攻击代码被执行的方法来获得目标系统的控制权。这类缓冲区溢出攻击的对象通常是具有特权的程序,从而使得攻击者执行非授权指令并进行各种非法操作。

获得目标系统控制权最常见手段是修改堆栈指针或返回地址。过程的调用是通过堆栈来管理的。每当调用另外一个过程时,过程所需的数据空间就分配在栈顶,并在过程结束时释放这部分空间。这部分数据空间主要包括过程所需要的局部变量、参数单元以及用于管理过程活动的记录信息。当出现一次过程调用时,过程调用者的活动立即被中断,当前机器的状态信息(如返回地址、寄存器值等)都保存到栈中。当被调用者返回时,系统可以根据栈中记录的信息将机器状态恢复到调用前的状态,使调用者的活动继续进行。如果攻击者使得缓冲区溢出发生在堆栈空间,则攻击者通过将其所希望的返回地址写入堆栈空间就可以改变堆栈原来的数据,从而当调用结束时,程序的执行将重定向到攻击者希望的代码区域。被触发执行的代码可以为植入的代码,也可以为驻留在内存中的系统代码。

大量基于缓冲区溢出漏洞的攻击使程序开发者意识到必须对该类漏洞给予更多的关注,并有必要通过各种防御手段消除这些漏洞所造成的影响。研究人员Crispen Cowan提出的Stack Guard方法是一种基于探测方法的防御措施。他修改了C编译器(gcc),以便将一个“探测”值插入到返回地址的前面。在任何函数返回之前,“探测仪”执行检查以确保探测值没有被改变。如果攻击者改写了返回地址,则探测仪的值就会改变,从而使得系统检测出缓冲区溢出攻击。此外,程序员使用对缓冲区溢出攻击具有抵抗力的标准库也是一种可行的防御方法。但是迄今为止,各种方法都有局限性,因此仍然需要开发人员编写无缺陷的软件。

2.不完全输入验证

如果程序开发者假设在程序运行时不可能出现某类输入,则他所编写的程序可能会忽略对这类输入的验证。但是当程序接收到被认为不可能出现的输入时,程序将可能会出现故障。尽管不完全输入验证没有缓冲区溢出那样频繁,但它仍然是导致严重安全危害的漏洞,很容易被攻击者利用。避免不完全输入验证的最重要的规则就是:一个安全的程序不应该完全信任程序的任何输入信息,所有输入数据在使用之前必须要通过合法性检查。因此,这就要求程序开发者必须提供输入验证代码,以检查输入是否符合开发者预先的定义。程序员验证输入数据合法性的方法将取决于输入数据的数据类型。例如,如果程序期望输入的是月份,则程序需要确认输入的数据处在合法的月份范围内。

另外一种需要注意的不完全输入验证攻击发生在参数值的传递过程中,特别是当参数被提交到Internet的Web服务器上时。通常浏览器把用户输入的内容转化为脚本所需要的参数,然后将这些参数作为请求的一部分发送给Web服务器。如果攻击者能够恶意编辑在客户端与Web应用程序间发送的数据,而服务器又不能判断这些数据是否已经被攻击者篡改,则攻击者就可以操纵服务器的活动。如在一个电子商务网站中,当用户决定购买一种商品时,用户浏览器可能会自动生成此URL:http://www.sample.com/order&user ID=123&Price=20…

如果该网站的服务器程序以URL输入的单价作为此次交易的单价,则程序存在着非常大的安全隐患。这主要是由于客户端浏览器允许用户编辑URL,从而使得攻击者可以通过篡改单价参数来非法获利。

为了避免该类错误,除了加强程序的输入验证外,还需要注意程序设计的合理性,如在本例中,就不应该将商品的单价作为输入参数传递给服务器,即不应该将敏感参数处于公开状态,以避免这些敏感参数被恶意篡改。

3.“检查时刻到使用时刻”错误

当今的计算机系统通常同时运行着大量进程,并且这些进程可能会共享某些资源。因此在程序开发过程中,程序员必须要意识到在系统中可能还存在着其他软件,程序所访问的资源状态可能会在某段时间内被其他进程所改变。特别是当需要跨越信任域传递可变状态时,接受程序一定要意识到这些状态也许已在某个无法预料的时刻发生改变。例如,一个接收程序在t1时刻验证了它所接受到的参数的有效性,并计划在t2时刻使用。但此时有一个进程在[t1,t2]这个时间段内修改了这些值,从而使得在t1时刻的验证检查结果变为无效。假如接收者忽略了这些参数值的变化,仍然在t2时刻使用变化前的检查结果,这样就破坏了接受者预期的安全策略,导致了被称为“检查时刻到使用时刻”(Time-of-check to Time-of-use,TOCTTOU)的程序漏洞,其中t1为检查时刻,t2为使用时刻。

如图3-5所示,在TOCTTOU攻击中,某个程序在t1时刻被授予对文件Myfile的访问权限。如果该程序认为在t1到t2时间段内所需访问的文件名不会发生变更,则该程序在t2时刻执行文件访问操作时将不再检查文件的访问权限。但是如果某个攻击程序在[t1,t2]时间段内将文件请求中的文件名改为口令文件Passwd,则将导致程序非法访问Passwd文件。

尽管通过减小[t1,t2]时间内的代码大小并缩短运行时间可以降低攻击者攻击的机会,但它不能完全防御TOCTTOU攻击。Lowery提出了一种模拟原子操作防御TOCTTOU的方法,即通过模拟原子操作以确保在[t1,t2]时间内被检测条件或状态不会发生变化。模拟原子操作将[t1,t2]时间段内的所有代码作为一个经典的临界区,通过现有封锁机制保证当该临界区代码执行时不会因为其他进程的影响而改变执行结果。

图3-5 TOCTTOU攻击

此外,数字签名也可以阻止该类漏洞被攻击者利用。数字签名是一个只有持有私钥的签名者才可以生成的标志,他人不易伪造和修改。签名者可以在检查时刻生成一个数字签名,然后在使用时刻检验该签名以辨认该数字签名是否属于签名者。

(二)恶意代码

恶意代码(Malicious Code)是以破坏为目的的一类程序,它只有在执行时才造成不期望的结果。恶意代码不仅仅包括蠕虫、病毒,还包括特洛伊木马、隐蔽通道、逻辑炸弹和定时炸弹、陷门或后门等。

(1)计算机病毒。计算机病毒是一种能够自身复制并能进行传染和破坏其他程序与文件的一种程序。计算机病毒的类型较多,分类方式不同,其类型也不同。

第一,按感染形式分类。包括以下几种:

引导型病毒:此种病毒感染硬盘的引导区,造成计算机无法启动,进而破坏硬盘数据。

文件型病毒:此种病毒感染文件,并寄生在文件中,进而造成文件损坏。

混合型病毒:此种病毒兼顾引导型和文件型两种病毒的特性,不但能够感染和破坏硬盘的引导区,而且能感染和破坏文件。CIH病毒就是这种混合型病毒,它不但能够攻击硬盘的引导区,还能够感染Windows 9x的可执行文件。

宏病毒:此种病毒是利用Word宏指令产生的,所以称为宏病毒。宏病毒专门感染、破坏Word文件,并能够在网络中进行交叉感染。“美丽杀手”病毒就是一种宏病毒,它感染Word 97和Word 2000。当用户打开某个受到感染的Word 97或Word 2000文件时,病毒就会自动给感染者的MSExchange和Outlook Express通讯录中前50个地址发出带有该病毒的电子邮件。

第二,按寄生方式分类。计算机病毒传染的一大前提就是寻找病毒宿主,然后将自身寄生到宿主中。包括以下几种:

代替式计算机病毒:计算机病毒用自身代码的部分或全部替代常规程序的部分或全部,且替代后依然能完成被替代的合法程序的功能。

连接式计算机病毒:这种方式一般以传染文件为主,即病毒与宿主文件相连接时宿主文件的字节长度增加,但不破坏原合法程序的代码。

转储式计算机病毒:病毒将原合法的程序代码转储到存储介质的其他部位,而用病毒代码占据原合法程序的位置。

填充式寄生病毒:用自身程序代码侵占宿主程序的空闲存储空间,它并不改变合法程序自身的长度。

第三,按攻击方式分类。按攻击方式分可将病毒分为源码病毒、机器码病毒和混合码病毒。如果存在的形式为源码则称为源码病毒;如果存在的形式为机器码则称为机器码病毒;如果两种形式都有则称为混合码病毒。

源码病毒还可细分为Shell型和语言型。

命令解释程序(Shell),一般指接收标准输入并将命令转交给系统的命令解释器或程序,Shell型病毒包括各种操作系统的Shell程序。如Unix的B Shell、C Shell,以及DOS的Command.com,Windows NT的cmd.exe等。语言型包括汇编语言、C语言、Basic语言、Fortran语言和微软的VC、VB、VJ等。

机器码病毒是指由各种处理器的机器码构成的病毒,如Intel86系列病毒、Motorola的68000系列病毒、zilog系列病毒和Macintosh系列病毒等。以这种方法划分有利于分析某种病毒的攻击对象和传染范围。

第四,根据病毒操作的方式或使用的编程技术分类。

隐蔽病毒:隐蔽病毒是使用某种技术来隐蔽程序被感染的事实。如当操作系统发出调用要得到某些信息时,它记录下必要的信息,隐蔽病毒而回应被感染前应回应的信息。或者说,当病毒第一次感染时,它记录下必要的信息以便以后欺骗操作系统和病毒程序的扫描。

变形病毒:变形病毒能变化,使得它们更难被鉴别出来。如有一种使用高级加密技术的多态病毒,其使用了可变化的签名,变化过程称为变异。在变异中,病毒改变它的大小和构成。通常,病毒扫描程序通过搜索已知的模式(大小、校验码、日期等)来检测病毒,一个经巧妙设计的变形病毒则可逃脱这些固定模式的检测。

(2)蠕虫。蠕虫是一种可以通过网络大量传播自身拷贝的独立程序。它的自身拷贝是以独立程序的形式来传播的,并可以在无人干涉的情况下自动运行。而病毒的自身拷贝则必须要嵌入到其他程序中才能传播。蠕虫病毒的特性:

第一,传染方式多:蠕虫病毒入侵网络的主要途径是通过工作站传播到服务器硬盘中,再由服务器的共享目录传播到其他的工作站。但蠕虫病毒的传染方式比较复杂。

第二,传播速度快:在单机上,病毒只能通过软盘从一台电脑传染到另一台电脑。而在网络中,则可以通过网络通信机制,借助高速通信信道迅速扩散。蠕虫病毒在网络中传染速度非常快,使得其扩散范围很大,不但能迅速传染局域网内所有电脑,还能通过远程工作站将蠕虫病毒在一瞬间传播到千里之外。

第三,清除难度大:在单机中,再顽固的病毒也可通过删除带毒文件、低级格式化硬盘等措施将病毒清除。而网络中只要有一台工作站未能将病毒杀除干净就可导致整个网络重新被病毒感染。因此,仅对工作站进行病毒杀除不能彻底解决网络蠕虫病毒的问题。

第四,破坏性强:网络中蠕虫病毒将直接影响网络的工作状态,轻则降低速度,影响工作效率,重则造成网络系统的瘫痪,破坏服务器系统资源,使多年的工作毁于一旦。

计算机病毒与蠕虫病毒的防治涉及三大技术:

第一,实时监视技术。修改操作系统使其本身具备反病毒功能,时刻监视系统中的病毒活动和系统状况,时刻监视软盘、光盘、互联网以及电子邮件中的病毒传染,将病毒阻止在操作系统外部。反病毒软件由于采用了与操作系统的底层无缝连接技术,实时监视器占用的系统资源极少,用户完全感觉不到其对机器性能的影响。

第二,自动解压缩技术。对进入计算机的每一个文件按不同的压缩格式自动进行解压缩,对藏于压缩包内的病毒进行检查和消除。然后再将检查并杀毒后的文件按原来格式重新打包,放到适当的地方。这实际是将解压缩技术与实时监视技术相结合构成实时解压缩,从而避免出现查杀病毒不久,病毒再次出现的情况。

第三,全平台反病毒技术。系统管理员对网络进行一次安装,然后定期利用反病毒软件对全网络所有用户进行自动升级,从而保证整个系统的安全。

(3)特洛伊木马。特洛伊木马是根据古希腊神话中的木马来命名的,这种程序从表面上看是一个执行正常功能的程序,但是实际上却隐藏了恶意代码。现在流行的大多数特洛伊木马程序都会执行一些破坏计算机安全性的功能,因为它们会利用用户的访问权限和特权。特洛伊木马程序可以作为一封电子邮件的附件到达计算机或从网络上下载,通常会伪装成一个笑话程序或某些类型的软件工具。攻击者通常会依靠基本的“社交工程”技术来愚弄不知情的受害者,欺骗他们安装该软件。例如,一个攻击者可能会使用Internet Relay Chat(IRC)来与潜在的受害者联系,警告说有一种威胁极大的病毒将流行,然后提供一个指向特洛伊木马程序的链接,而该特洛伊木马程序则伪装成病毒清除工具。

各种恶意代码之间的界限比较模糊,两种或两种以上的恶意代码常常结合起来使用从而造成更为严重的后果。因此,人们也将所有类型的恶意代码统称为“病毒”。

(4)隐蔽通道。安全计算机系统可以通过访问控制机制来限制信息在通信通道(如文件、共享内存等)中的流动。但是有一种恶意代码可以避开系统的访问控制机制,通过一个秘密的特殊通信路径将敏感信息传送给非法用户。这种允许进程以危害系统安全策略的方式传输信息的通信信道被定义为隐蔽通道。隐蔽通道有多种类型,如存储通道和时间通道。存储通道主要是通过对某个存储单元的操作来传递信息。时间通道是通过事件的发生速度来传递信息。可以采用通道带宽(即每秒传递的比特数)测量隐蔽通道的危害程度。带宽越大,泄密的可能性也就越大。当操作系统建立在具有较快速率的硬件体系结构之上时,通道带宽将大大提高,隐蔽通道的危害程度也将随之提高。

尽管高安全等级的用户可以利用隐蔽通道向低安全等级用户发送信号,但隐蔽通道的最大危害在于它可能被特洛伊木马利用。正因为程序可能会包含诸如特洛伊木马等各种恶意代码,人们对如何保证软件质量、预防程序漏洞或恶意代码给予了极大的关注。而软件工程较为全面地解决了这个问题。系统开发者可以采用软件工程提出的控制方法有效地限制开发人员的活动。如在程序交付前,对程序实施严格设计复查、代码检查和测试可以发现木马、蠕虫、病毒和其他安全漏洞。软件工程提出的控制方法不仅可以避免由于开发人员一时疏忽所犯的错误,而且也可以使其难以创建恶意代码。

二、操作系统安全

目前Internet主机上流行的操作系统有Windows、Linux和Unix等,但不管是何种操作系统都存在漏洞,这使得每个连入Internet的主机都可能因此而面临黑客的攻击从而出现安全问题。操作系统提供了保护用户计算的方法。这些方法主要包括访问控制和用户验证。用户验证机制一直是一个重要的问题,并且随着在电子商务运行环境中通过网络访问共享资源的未知用户的增加,这个问题将变得更加重要。而这里重点介绍访问控制,访问控制涉及两个主要概念:

客体(Object):系统中信息的载体,如数据、文件等。

主体(Subject):引起信息在客体之间流动的用户、进程或设备。

在系统采用验证机制鉴别了用户的身份后,系统必须利用访问控制机制限制用户所能够执行的操作以保证用户对资源的合法访问,如图3-6所示。访问控制将由引用监控器(Reference Monitor)执行,引用监控器是所有访问请求的必经之路,并且系统应该确保其不被攻击者篡改。引用监控器将利用系统管理员设置的授权规则监控用户和客体之间的授权关系。由于系统管理员可以随时回收用户对客体的访问权限,所以当用户每次访问客体时,引用监控器都需要检查用户对客体的访问权限,以便及时终止用户对客体的再次访问。当然,引用监控器并不是系统中惟一的安全控制组件,系统还应该包括审计、身份验证等其他安全组件。

1.访问控制策略

不同应用和系统都有不同的安全需求。一个安全策略就是对一个系统应该具有的安全性的描述。操作系统通常会遵循一个预先制定的安全策略。当前主要有以下三种访问控制策略:自主访问控制策略、强制访问控制策略和基于角色访问控制策略。这些访问控制策略不会相互排斥,也不存在某访问控制策略比其他访问控制策略更好,而只能认为某类访问控制策略比其他访问控制策略提供了更多的保护。但是,当前不是所有系统均具有同样的保护需求,适合某个系统的访问控制策略并不一定适合其他系统。因此,访问控制策略的选择依赖于被保护环境的特性,应该根据应用环境的特点选择合适的控制策略。若单一访问控制策略不能满足应用需求,可以将几种不同策略相互结合以便为系统提供更适宜的保护。

图3-6 访问控制

(1)自主访问控制(Discretionary Access Control,DAC)。自主访问控制根据用户(主体)身份和授权规则控制用户对客体的访问。这些授权规则指定了用户访问客体的各种权限。当主体请求访问某个客体时,需要根据授权规则决定是否允许主体访问客体,确保只有访问权限的主体才能访问客体。在自主访问控制中,主体具有将客体的访问权限自主传递给其他主体的权利,同样也具有自主决定从其他主体那里回收其所授予的访问权限的权利。主体通过这种方式有选择地与其他主体共享资源。自主访问控制的优点是简单、灵活,其自主性为主体提供了灵活的客体访问方式。它在一定程度上实现了多用户环境下的权限隔离和资源保护,也易于扩展和理解,适合于许多系统和应用。但DAC不能抵御特洛伊木马的攻击,也较难限制访问权限的传递,容易产生安全隐患。

(2)强制访问控制(Mandatory Access Control,MAC)。强制访问控制依据主体和客体的安全等级来决定主体是否具有对客体的访问权。系统中每个主体和客体均指派一个安全等级。客体的安全等级通常反映了包含在客体内的信息的敏感程度。主体的安全等级也称为许可,它通常反映了主体的可信赖程度。安全等级构成一种偏序关系。只有当客体安全等级和主体安全等级满足某种关系时,系统才授权主体访问客体。Sandhu描述了主体访问客体所遵循的两个原则。

第一,向下读:主体的许可一定能够支配所读客体的安全等级,即主体的许可级别至少和所读客体的安全等级一样高。

第二,向上写:主体的许可一定能够被所修改客体的安全等级支配,即主体的许可级别不能高于所修改客体的安全等级。

上述两个原则侧重于信息的机密性,保证了信息流总是由低安全等级对象流向高安全等级对象,或者在同级别内流动。如图3-7所示,该图说明了用于保护信息机密性的信息流控制。主体用矩形表示,客体用椭圆表示。客体和主体的位置对应着它们的安全等级。安全等级越高,则它在图中的位置也越高。根据“向下读”原则,主体S2可以读取安全等级不高于S2的安全等级客体O2、O1。根据“向上写”原则,主体S2可以向安全等级高于S2的客体O3写数据。即使主体S2不能够读客体O3,但它仍然能够写客体O3,从而使得主体S2可以修改客体O3包含的数据。因此“向上写”的原则使得低安全等级的主体破坏高安全等级客体内的敏感数据成为可能,从而忽略了数据的完整性。此外它也限制了高安全等级主体向非敏感客体写数据的合理要求,降低了系统的可用性。

图3-7 信息机密性

上文所述的访问控制原则通过标记系统中的主客体,强制性地限制信息的共享和流动,从根本上防止信息的泄露,因此它可用于防止恶意代码从高安全等级向低安全等级传输信息。例如,由于S2不能读取O3,所以S2不会将高安全等级的敏感数据泄露给低安全等级。“向上写”规则也同样阻止了S2主体将信息泄露给低安全等级。

强制访问控制也可应用于数据完整性保护。保护信息完整性的原则类似于保护信息机密性的原则。强制访问控制可以为每个主体和客体分别指派一个完整等级:和客体关联的完整等级反映了对存储在客体内信息的信赖程度以及由于对这些信息的非授权修改而引起的潜在损害程度,即它反映了客体对修改操作的敏感等级;和主体关联的完整等级反映了主体对相应级别客体进行修改操作的可信赖等级。当主体修改客体中的数据时,应该遵循以下两个原则:

第一,向上读:主体的完整等级一定能够被所读取客体的完整等级支配,即主体的完整等级不能高于所读取客体的完整等级。

第二,向下写:主体的完整等级一定能够支配所修改客体的完整等级,即主体的完整等级至少和所修改客体的完整等级一样高。

“向上读”、“向下写”策略可以防止保存在低完整等级的客体信息向高完整等级的客体流动。它通过控制信息的流动保证信息的完整性,防止数据被不适当修改。

图3-7和图3-8的不同之处在于信息流的方向。强制访问控制的优点是能够防止特洛伊木马和隐蔽通道的攻击,同时还可以防范用户滥用权限。它适合于通过权威中心进行严格访问控制的环境,但它缺乏灵活性,应用的领域也比较窄,一般只用于军事等具有明显等级观念的行业或领域。

图3-8 信息完整性

(3)基于角色访问控制(Role-based Access Control,RBAC)。自主访问控制和强制访问控制主要针对用户个体,它们主要是直接在主体和客体的访问权限之间建立授权关系。但是当前系统的用户数量巨大、类型繁多并且具有很强的动态变化特点,使得针对用户个体或用户组的权限管理负担巨大、可操作性和可管理性较低,并且也容易出错。因此,人们在MAC基础上提出了基于角色的访问控制。

在一个组织内部,可以根据组织的业务和管理要求,设置若干岗位,并为每一种岗位分派多个职员以具体履行该岗位的职责。因此,通过岗位将职员和其必须履行的职责联系了起来。基于角色的访问控制系统借鉴了这类组织的管理策略,在用户和访问权限之间引入角色的概念,通过对角色的授权来控制用户对系统资源的访问。在RBAC中,系统安全管理人员可以根据系统内各种工作的职能要求定义若干个不同的角色,然后根据角色的职责,为角色赋予合适的访问权限集,最后为用户指派适当的角色,从而使得用户能够通过赋予他的角色获得角色所拥有的访问权限。可以将整个访问控制过程分为以下两个部分:

访问权限与角色的关联:一个角色可具有多个权限,一个权限可属于多个角色的权限集。

角色与用户的关联:一个用户可扮演多个角色,一个角色可被授予给多个用户。

同基于用户组访问控制系统相比,RBAC系统实现了用户和访问权限的逻辑分离,用户是通过角色获得其享有的权限,而不是直接将权限授予用户;并且它还可以通过改变用户角色的关联而方便地改变用户的访问权限。这种授权方式体现了系统的组织结构,方便了系统管理员的授权操作,具有较强的灵活性、可操作性和可管理性,非常适用于大型的多用户管理信息系统的授权管理。某些操作系统(如Netware/Windows NT)也采用了类似基于角色的访问控制。

RBAC系统的授权管理工作也不同于DAC,它的授权管理工作主要由个别管理员负责,管理人员可以通过分配和取消角色来完成用户权限的授予和去除。此外,它还容易实施最小特权原则(Last-Privilege Principle),即在一个安全系统内部,绝不会赋予用户超过执行任务所需特权以外的特权,用户应该只访问完成特定任务所必需的客体。这样可以将由于一时疏忽或由于入侵者攻击而带来的损害减轻到最低程度。

2.Unix操作系统的文件保护机制

有一些保护机制是专门针对某类客体的。这里将以Unix操作系统的文件保护机制为例来介绍操作系统的文件保护方案。

Unix操作系统采用了一种典型的文件保护方法,它将主体划分为三个等级:用户、相互信任的用户和其他用户,可以将其分别简称为用户、用户组和全体用户。用户组成员是根据对资源的共享需求而组合起来的,组内各成员之间也存在着彼此的信任关系。每个文件只有一个所有者,它可以控制访问权限,也可以随时定义或撤销其他用户的访问权限。因此,当用户创建一个文件时,用户可以定义用户本人对该文件的访问权限,同时也可以定义组内和组外用户对文件的访问权限。

在Unix操作系统中,文件的访问权限由文件属性决定。文件属性决定了可以读写或执行该文件的用户,它主要包括文件许可、文件所有者、文件相关组名、文件长度、文件名等属性,其中文件许可又分为以下四部分:

(1)文件类型:表示该文件是普通文件,还是目录。

(2)文件所有者的访问权限。

(3)与文件同组的用户的访问权限。

(4)全体用户的访问权限。

当用户访问某个文件时,Unix操作系统将根据文件属性中的文件所有者、文件相关组名以及文件许可决定用户对文件的访问权限。如文件Myfile具有如下文件属性:

(1)文件所有者为User-B。

(2)文件相关组名为Group-A。

(3)文件许可为“-rwxr-xr-”,其中“rwx”表示Myfile的所有者User-B对该文件具有读、写、执行权限,“r-x”表示该文件相关组Group-A中所有用户可以读、执行该文件,而组外成员的访问权限为“r-”,即其他组的用户只能读Myfile文件。

当用户User-A(User-A为Group-A组的成员)访问Myfile时,由于User-A和文件Myfile均属于组Group-A,所以User-A可以读、执行该文件,但不可以修改该文件。

在Unix操作系统中,一个目录实际上是含有目录表的文件,它记录了目录中每个文件的文件属性。操作系统必须根据文件所有者的要求维护所有文件目录。目录许可定义也类似于文件许可定义。若用户希望在目录中增删文件,则该用户必须要具有该目录的写许可;若用户希望进入该目录,则该用户必须要具有该目录的执行许可。所以当用户需要打开目录下的某个文件时,用户必须要有该文件以及该文件路径上所有子目录的相应许可。系统可以通过限制对目录的访问来阻塞对子目录下所有文件的访问通路。

Unix操作系统还提供了一个获得临时许可的方案,即SUID保护方法。如User-A创建了一个只有他才可以访问的文件。为了允许其他用户在有限的范围内访问这个文件,其可以开发一个用于访问该文件的程序,并且按SUID的保护方式来保护该程序。即当用户User-B执行该程序时,User-B临时获得该可执行程序的所有者User-A的访问许可,从而能够访问只有User-A才能访问的文件。当程序执行结束时,User-B将不再具有User-A的访问许可。通过该种方式,用户可以在程序控制的范围内访问程序许可其访问的数据。

Unix系统中还存在一个具有绝对特权的超级用户Root,系统的各种安全保护机制对Root来讲不起任何作用。如超级用户可以改变任何文件的所有者、组以及访问权限,并可以对用户、组进行管理。

三、数据库安全

当前越来越多的应用系统依靠数据库管理系统(DBMS)来管理和保护大量的共享数据,数据库管理系统成为电子商务信息系统的核心部件,它的安全性问题也变得越来越重要。这里将主要讨论计算机系统在保证数据库数据完整性和机密性方面的技术措施,但需要说明的是,这里所介绍的一些安全防御技术不一定出现在所有的DBMS产品中。

(一)数据库管理系统

当前最为广泛使用的数据库类型是关系数据库,以下通过一些关系数据库的实例来说明数据库系统的一些基本概念。

数据库系统主要包括应用程序、数据库管理系统、数据库和数据库管理员。数据库是可被多个用户共享的数据集合,它将按指定的组织形式保存在存储介质之上。DBMS是对数据库进行管理的系统软件,它实现数据库系统的各种功能。数据管理员(DBA)的主要职责是负责数据库的规划、设计、协调、维护和管理等。

关系数据库采用了关系数据模型。关系数据模型是以集合论中的关系概念为基础发展起来的数据模型。从形式上看,关系相当于一个表(Table),其中表中一行称为元组,表中一列称为属性。元组中的每一个值称为分量。每个属性对应一个值的集合,作为其可以取值的范围,称为该属性的域(Domain)。在关系数据模型中,关系与表这两个术语可以互相通用。而关系模式是对关系的描述,它说明了关系的每个元组应该满足的条件,包括关系名、组成该关系的属性名等。

如在电子商务系统中,客户基本信息表的关系模式可定义为:Customer(CustomerID,Name,Address),它们的属性依次为客户标识、客户名、地址等。该模式的实例如表3-3所示。订单信息表的关系模式可定义为:Order(OrderID,CustomerID,ProductID,Price,BankID,Account),它们的属性依次为订单标识、客户标识、购买的产品标识、成交价格、客户的开户银行标识、银行账号等。该模式的实例如表3-4所示。

(二)安全需求

表3-3 客户基本信息表Customer

表3-4 订单信息表Order

数据库是可以被许多用户共享的资源,它是建立在操作系统和网络上的系统。操作系统必须要保证用户只能通过DBMS才能管理和访问数据库中的数据,即数据库管理系统必须处于操作系统的控制之下。要保证数据库安全,首先应该确保操作系统和网络的安全。建立一个安全的操作系统是保证数据库安全的基础。

数据库的安全需求主要包括以下几个方面:

第一,数据库的物理完整性。预防数据库中的数据不会受到物理方面故障的影响,并且能够重构遭受破坏的数据库,保证数据信息不丢失。

第二,数据库的逻辑完整性。保护数据库的逻辑结构,如对一个分量的修改将不会影响到其他分量。

第三,可审计性。能够跟踪用户对数据库中数据的访问或修改活动,即可以追踪哪些用户访问(或修改)过数据,或者用户访问(修改)过什么数据。

第四,用户验证。每个用户在访问数据库之前,必须要通过系统的身份验证,以防止可能的冒名顶替。

第五,访问控制。控制用户的访问权限,确保用户只能读取或修改被授权的数据。

第六,可用性。保证用户可以访问数据库中的授权数据。

(1)数据库完整性。数据库的完整性包括物理和逻辑两种完整性。对完整性的威胁可能来自这几个方面:自然或意外的事故;系统硬件或软件的故障;人为的失误(用户和程序在采集、输入数据时可能会出现错误);恶意的攻击。

上述安全威胁可能会导致数据库的存储媒介受到损坏,也可能造成安全机制失效从而使得非法程序破坏数据。

数据库的完整性需要由操作系统以及DBMS负责。操作系统和DBMS可以采用以下方法来保护数据库的完整性:

第一,定期备份数据库系统中的所有文件以预防灾难性的故障和防止物理损坏。

第二,当故障发生后,可以利用数据库事务日志或数据库后备副本,将数据库恢复到一致状态。为了处理这些故障,DBMS必须维护一个事务日志。

第三,完整性检查,DBMS应能进行属性检查,以防止错误的数据进入数据库,保证属性取值的合法性。

第四,利用身份验证和访问控制限制用户只能访问或修改被授权数据。

(2)可审计性。任何访问控制都不是绝对可靠的。攻击者会尽力寻找突破这些访问控制的办法。跟踪审计是一种监视措施,它可以记录对数据库的所有访问活动(读或写),并且将跟踪审计的结果记录在审计记录中。审计记录一般包括以下内容:数据库操作类型(如修改、查询)、操作者标识、操作的日期和时间、所涉及的数据(如表、视图、行、属性等)。系统可以利用这些记录进行事后分析,了解数据库中数据的变化,并协助系统维护数据库的完整性。

(3)用户验证。数据库管理系统要求提供严格的用户验证,它可以通过用户口令以及时间日期鉴别用户。为了加强安全性,数据库管理员还可以限制用户访问数据库的时间。

(4)访问控制。数据库是一个被集中存储和维护的数据集合。它具有许多优点,其中一个优点就是它可以使用户访问一些公共的数据集。但这同时也为数据库管理系统提出了另外一个安全需求:数据库系统必须能够限制各个用户的访问范围。如在某个电子商务应用系统中,DBMS必须保证银行用户只能访问数据库中的客户支付信息(包括银行账号、密码等),而不能访问客户的订单信息(包括购买的商品名、客户地址等);同样,DBMS可以授权商家访问客户订单信息,但要禁止商家访问客户的支付信息。因此,访问控制是数据管理系统的职责,也是保证数据库安全的基本手段。

需要说明的是,数据库访问控制要比操作系统访问控制更为复杂。这主要是由于操作系统的数据对象是一个独立的对象(如一个文件),并且用户不可能通过读取某个文件的内容而推断出其他文件的内容。但在数据库中,数据对象(如表、元组、属性)是相互联系的。攻击者可能会利用数据对象之间的语义关系,通过查询其可以访问的数据而推理出其他敏感数据。为了防御这类推理攻击,系统可以通过访问控制限制用户对某些数据的访问。

此外,数据库对象比操作系统的数据对象具有更小的颗粒度。如在数据库的访问控制表中,数据对象可以细分到属性,具有更小的粒度控制。因此,数据库的访问控制实现要比操作系统更为困难和复杂。

(5)可用性。数据库中的数据并不是任何用户在任何时候都可以访问的。例如,当某一个用户正在更新表中某个元组时,为了保证数据库中数据的一致性,DBMS将禁止其他用户访问该元组。只有在用户更新完毕后,其他用户才可以获得该元组的访问权。

但需要注意的是,如果正在更新的用户在更新期间异常退出,其他用户有可能将无法访问这些数据,即会出现拒绝服务的现象。

(三)数据库备份和恢复

自然灾害、人为事故、意外事件、正常损耗都有可能导致数据库的瘫痪,为避免由此带来的损失,用户必须定期并经常制作数据库的备份。这样,当系统发生故障后,就可以把数据库恢复至原来的状态,这就是数据库的备份和恢复机制。

1.数据库备份的方式

(1)按备份方法分类。

第一,完全数据库备份。完全数据库备份是将所有的数据库内容写入备份介质,方法简单,操作简便。当系统出现故障时,完全数据库备份是恢复数据库的基线,恢复事务日志备份和差异备份时都依赖完全数据库备份。

第二,差异备份。差异备份只备份自最近一次完全备份以来被修改的那些数据。当数据更改频繁的时候,用户应当执行差异备份。这样系统性能和容量可以得到很好的改善,但可靠性较差,通常需要与完全备份配合使用。

第三,按需备份。按需备份是指在正常的备份之外,有选择地进行额外备份。

(2)按备份内容分类。

第一,全备份。全备份是对数据库中所有的数据进行备份,通常在数据库服务器运行时执行。但是一般受到硬件性能和磁盘空间的影响。

第二,事务日志备份。事务日志备份是备份自上次事务日志备份后到当前事务日志末尾的部分。一般情况下,事务日志备份比完全数据库备份使用的资源少。因此,可以经常创建事务日志备份,减少丢失数据的危险。可以使用事务日志备份将数据库恢复到特定的即时点或故障点。

第三,文件和文件组备份。当用户拥有超大型数据库,并且数据时刻都在变化的时候,这时执行完全数据库备份是不切合实际的,应当执行数据库文件和文件组备份。为了使恢复的文件与数据库的其余部分保持一致,执行文件和文件组备份后,必须执行事务日志备份。

(3)按备份方式分类。

第一,冷备份。在关闭数据库系统的情况下所进行的备份称为冷备份。这种备份是在没有任何用户对数据库进行访问的情况下进行的。因此,这种备份在保持数据的完整性方面是最佳的。

第二,热备份。数据库正在运行时所进行的备份称为热备份,数据库的热备份依赖于系统的日志文件。热备份方法的一个致命缺点是具有很大的风险性。其原因有三个:一是如果系统在进行备份时崩溃,那么,暂存在日志文件中的所有业务都会丢失,即造成数据的丢失;二是在进行热备份时,要求数据库管理员仔细地监视系统资源,确保存储空间不会被日志文件耗尽而造成不能接受业务的局面;三是日志文件本身也需要做备份,以便重建数据。

第三,逻辑备份。逻辑备份是使用特定的命令或软件从数据库中提取数据并将结果写入一个输出文件。该输出文件不是一个数据库表,而是表中所有数据的一个映像。在大多数B/S结构模式的数据库中,可以使用结构化查询语言(SQL)建立输出文件。该过程较慢,对大型数据库的全盘备份不大可能,这种方法适合于增量备份,即备份那些上次备份之后改变了的数据。

2.数据库备份的策略

数据保护的目的不是建立备份,其真正的目的是能够恢复信息,因此要根据恢复需求来设计备份策略。在现实情况中要考虑很多因素,如存储空间、网络带宽、处理时间、本地磁盘I/O带宽、人力资源、性能需求、用户工作量等,这些因素都会影响用户执行理想备份的策略。为了灵活地备份大型的或者繁忙的数据库,可以考虑将不同的备份方式结合使用。备份主要考虑以下几个因素:

(1)备份周期是按月、周、天还是小时。

(2)使用冷备份还是热备份。

(3)使用增量备份还是全部备份,或者两者同时使用。

(4)使用什么介质进行备份,备份到磁盘还是磁带。

(5)选择人工备份还是设计一个程序定期自动备份。

(6)备份介质的存放是否防窃、防磁和防火。

(7)选择本地备份还是异地备份等。

3.数据库的恢复

恢复也称为重载或重入,是指当磁盘损坏或数据库崩溃时,通过转储或卸载的备份重新安装数据库的过程。根据数据库的备份方式分类,数据库恢复的方式可以简单地分为以下几种:

第一,从完全数据库备份中恢复。恢复完全数据库备份的时候,可取最近一次从磁盘复制到磁带上的数据库备份来恢复数据库,即把备份磁带上的数据库复制到磁盘的原数据库所在的位置上。利用这种方法,数据库只能恢复到最近备份的一次状态,从最近备份到故障发生期间的所有数据库的更新数据将会丢失。这意味着备份的周期越长,丢失的更新数据也就越多。

第二,从差异备份中恢复。数据库中的数据一般只部分更新,很少全部更新。如果只转储其更新过的数据,则转储的数据量会明显减少,也不必用过多的时间去转储。这种转储称为增量转储或差异转储。如果增加转储的频率,则可以减少发生故障时已被更新过的数据丢失。利用差异转储做备份的恢复技术实现起来颇为简单,也不增加数据库正常运行时的开销。其最大的缺点是不能恢复到数据库的最近状态,这种恢复技术只适用于小型的和不太重要的数据库系统。

第三,从事务日志备份中恢复。系统运行日志用于记录数据库运行的情况,也叫事务日志。日志中记录了执行指令成功和失败的状态,以便在数据库恢复时做不同的处理。当数据库失效时,可取出最近备份,然后根据日志的记录,对数据库进行恢复。这种方式必须与完全数据库备份和差异备份结合使用。即首先恢复完全数据库备份,如果存在差异备份,则恢复差异备份,最后恢复事务日志备份。

这种恢复技术的缺点是,由于需要保持一个运行的记录,所以既要占用较大的存储空间,又会影响数据库正常工作的性能。其优点是可使数据库恢复到最近的状态,并且大多数数据库管理系统也都支持这种恢复技术。

第四,从文件或文件组备份中恢复。对于超大型数据库以及特定文件被破坏的情况,可以利用文件或文件组备份来恢复数据库。当恢复数据库时,应当将包含索引和表的文件组备份作为一个单元来还原,为保证数据一致性,必须恢复自文件或文件组备份以来的全部事务日志备份。

第五,从多备份中恢复。多备份恢复是指利用上述备份方式互为备份,然后用于恢复。恢复的前提是每一个备份必须具有独立的失效模式,所谓“独立的失效模式”是指各个备份不能因同一故障而一起失效。获得独立的失效模式的一个重要因素是各备份的支持环境要尽可能地独立,其中包括不共用电源、磁盘、控制器以及CPU等。例如,在部分可靠性要求比较高的系统中,采用磁盘镜像技术,即数据库以双备份的形式存放在两个独立的磁盘系统中,为了使失效模式独立,两个磁盘系统有各自的控制器和CPU,但彼此可以相互切换。在读数据时,可以选读其中任一磁盘;在写数据时,两个磁盘都写入同样的内容,当一个磁盘中的数据丢失时,可用另一个磁盘的数据来恢复。

基于多备份的恢复技术在分布式数据库系统中用得比较多,这完全出于性能或其他考虑,在不同的结点上设有数据备份,而这些数据备份由于所处的结点不同,其失效模式也比较独立。

(四)数据库审计与监控

可以将数据库审计简单理解为:什么时候、什么用户对什么对象进行了什么类型的操作。主要介绍以下内容:

1.数据库审计分类

(1)语句审计(Statement Auditing)。对预先指定的某些SQL语句进行审计。这里从SQL语句的角度出发,进行指定,审计只关心执行的语句。审计过程对数据修改进行记录,在数据被篡改之后,审记功能可以提供损失的范围及数据修改的细节。

(2)权限审计(Privilege Auditing)。对涉及某些权限的操作进行审计。但是有时候“语句审计”和“权限审计”是相互重复的。通常,试图超越自身安全权限的用户(或非授权用户)可以被检测出来,在造成损失之前就对他们采取措施。要确保管理员对审计设置权限的控制,否则,拥有足够权限的用户就可以轻而易举地禁用审计,然后在系统中执行各种操作,然后再恢复审计功能。为了防止这种情况,建议对审计日志功能本身的修改也要进行审计,这需要相当细致的计划和管理,这可能是审计不常被应用的原因之一。

(3)对象审计(Object Auditing)。记录作用在指定对象上的操作。尽管审计不能阻止用户修改信息,但是它仍是一个强大的安全工具。大多数关系数据库服务器提供了跟踪功能,可根据用户的角色和对特定数据库对象的操作进行跟踪,以便阻止系统管理员(他可能拥有数据库服务器上的全部权限)偶尔在数据库中“巡视”。

审计对数据库的安全是很重要的,当用户知道自己采取的某些动作可能被跟踪时,他们就不会试图闯入数据库了。因此,这个技术可以起到威慑作用。但是在许多情况下,审计太多的信息会降低系统性能,并且审计日志也会占用大量的磁盘空间,而且数据库管理员也很少愿意查看数千条的审计记录,因此在很多环境中审计功能大都没有得到很好的利用。

为了使审计功能真正有效,系统和数据管理员应该定期检查收集的数据,只有这样才能预防安全设置中的潜在危险。检查审计日志的难点在于确定哪些信息是有用的,由于活动日志里包含大量的信息,因此过滤收集数据的任何方法都是很有用的。例如,只对特定的敏感数据进行访问,或者对某个特定用户所采取的行动进行检查。

2.数据库监控

有时用户可能只想了解当前数据库的活动信息、了解数据库是如何被使用的,这就需要数据库的监控机制。通过建立性能和使用的阈值(阈值是基于正常行为设定的)可以快速地判断系统的潜在错误,还可以配置警报,在性能或者其他统计超过阈值时通知管理员。所有这些机制都有助于监控数据库系统的使用。

(五)秘密通道

许多电子商务系统具有实时性要求,它们可能要求数据库中的某些处理必须在所要求的期限内完成,如搜索、最新信息更新等。系统可以根据这些处理的重要程度为其赋予不同的优先级。此外,这些处理所需要的安全等级也可能不同,如最新信息更新可能要求具有比搜索处理更高的安全等级。但这也可能带来一个安全隐患——隐蔽通道,即隐蔽通道允许间接地从一个拥有较高访问权限的实体向另一个拥有较低访问权限的实体传输信息。如最新信息更新为了保证数据的完整性将会封锁需要进行修改的元组。此时,由于搜索处理的优先级较低,搜索处理将被延缓处理,所以在这个时候,该搜索处理可能会得到一个表示更新处理正在进行的信号,但该信号可能为攻击者提供了一些有价值的攻击线索。为了防止这类隐患,低安全等级的处理应该不能够区分系统中是否存在一个高安全等级的处理。

(六)数据库用户管理

用户管理是保证整个数据库系统安全的基础。用户管理包括账号创建、账号维护和用户验证。当用户访问数据时,数据库系统将利用预先指定的验证方法鉴别用户身份。当前的商用数据库管理系统支持许多类型的身份验证方法,如基于口令的验证、基于PKI等的验证方法。对于大多数商用数据库来讲,数据库管理员拥有访问数据库并执行大部分数据库管理操作的特权,如修改用户数据库的口令,它们具有对数据库的完全访问权限。尽管在数据库中用户口令被加密保存,但数据库管理员仍可以通过其特权修改用户口令,并假冒其他用户访问数据库数据。如果允许DBA不受任何限制地控制系统安全,则整个系统极易受到攻击。因此,有必要分割DBA的权限,并由几个用户共同来完成系统管理的工作。一种解决方法就是设立安全管理员。

安全管理员的职责是从DBA中分离出来的,他专门负责权限等安全管理,如增加或删除用户等。同时系统将禁止DBA执行系统的安全功能,并限制他对敏感数据的访问,只允许其执行通常的任务(如表空间的管理)。通过这种机制,可以有效地分割管理权限。例如,如果某个企业向服务提供商购买了某种服务,则该企业也许会委托该服务提供商管理数据库。因此,DBA的角色可以由企业的外部人员承担,但整个系统最重要的、拥有最高管理权限的安全管理员角色仍由企业内部人员承担。

四、网络安全

网络安全是指网络系统的硬件、软件及其系统中的数据受到保护,不会由于偶然或恶意的原因而遭到破坏、更改、泄露,系统连续、可靠、正常地运行,网络服务不中断。网络安全是一个涉及计算机科学、网络技术、通信技术、密码技术、信息安全技术、应用数学、数论以及信息论等多种学科的边缘学科。

计算机网络是计算机系统的一个特例。它一方面具有信息安全的特点,另一方面又与主机系统式的计算机系统不同。计算机网络必须增加对通信过程的控制,加强网络环境下的身份认证,由统一的网络操作系统贯彻其安全策略,提高网络上各节点的整体安全性。网络安全构成与相互关系如表3-5所示。

表3-5 网络安全构成与相互关系

应用层的安全是以CA应用为核心、其他应用系统为扩展的模式,这种模式符合较高安全性的要求,符合安全体系发展的趋势,它是当前电子商务安全系统内部的必备需要,也是应用系统开展网上业务(网上查询、网上购物)、进行网上身份认证的基础,同时也为将来安全系统的向上扩展和交叉认证提供保证。

1.网络安全的目的

确保网络信息系统的信息安全是网络安全的目标。对网络系统而言,信息安全主要包括两个方面:信息的存储安全和信息的传输安全。

信息的存储安全是指信息在静态存放状态下的安全,如是否会被非授权调用等,一般通过设置访问权限、身份识别、局部隔离等措施来保证。针对“外部”的访问、调用而言,访问控制技术是解决信息存储安全的主要途径。

在网络系统中,任何调用指令和任何信息反馈均是通过网络传输实现的,所以网络信息传输方面的安全就显得特别重要。信息的传输安全主要是指信息在动态传输过程中的安全。为了确保网络信息的传输安全,尤其需要防止如下问题:

(1)对网络信息的监听。对网络上传输的信息,攻击者只需要在网络的传输链路上通过物理或逻辑手段,就能对数据进行非法的截获与监听,进而得到用户或服务方的敏感信息。

(2)对用户身份的冒充。对用户身份仿冒这一常见的网络攻击方式,传统的对策一般采用身份认证方式进行防护。但是,用于用户身份认证的密码在登录时常常是以明文的方式在网络上进行传输的,很容易被攻击者截获,进而对用户的身份进行仿冒,使身份认证机制被攻破。

(3)对网络上信息的篡改。攻击者有可能对网络上的信息进行截获并且篡改其内容(增加、截取或改写),使用户无法获得准确、有用的信息或落入攻击者的陷阱。

(4)对发出的信息予以否认。某些用户可能对自己发出的信息进行恶意的否认,如否认自己发出的转账信息等。

2.网络攻击技术

随着网络的迅猛发展,网络安全问题日趋严重,黑客攻击活动日益猖獗,黑客攻防技术成为当今社会关注的焦点。在互联网上,黑客站点随处可见,黑客工具可以任意下载,对网络的安全造成了极大的威胁。所以,研究黑客攻击技术、提高互联网的防卫能力、保证信息安全已经成为当务之急。

攻击的法律定义:攻击仅仅发生在入侵行为完全完成且入侵者已在目标网络内。但是更积极的观点是(尤其是对网络安全管理员来说)将可能使一个网络受到破坏的所有行为都称为攻击,即从一个入侵者开始在目标机上工作的那个时刻起,攻击就开始了。要防范网络攻击,必须先了解网络攻击的原理和方法,这样才能有的放矢,针对网络中存在的安全薄弱点进行防范。

3.网络攻击技术的分类

目前,黑客攻击技术细分下来共有七类,分别为入侵系统类攻击、欺骗类攻击、拒绝服务攻击、对防火墙的攻击、利用病毒攻击、木马程序攻击、后门攻击。

(1)入侵系统类攻击。这种攻击手法千变万化,攻击者的最终目的都是获得主机系统的控制权,从而破坏主机和网络系统。这类攻击又分为信息收集攻击、口令攻击、漏洞攻击。

信息收集型攻击并不对目标本身造成危害,这类攻击被用来为进一步入侵提供有用的信息。主要包括:扫描技术攻击(如TCP Scan等);体系结构探测攻击;利用信息服务(DNS域转换、LDAP服务等)的攻击;假消息攻击(DNS高速缓存污染、伪造电子邮件);网络监听攻击(指将网卡设置为混杂模式,对以太网上流通的所有数据包进行监听,并将符合一定条件的数据包记录到日志文件中,以获取敏感信息)。

口令攻击是网上攻击最常用的方法。入侵者通过系统常用服务或对网络通信进行监听来搜集账号,当找到主机上的有效账号后,就采用字典穷举法进行攻击;或者通过各种方法获取Password文件,然后用口令猜测程序,破译用户账号和密码。口令攻击的工具很多,如John The Ripper 1.4、Qcrack、Crack、C1aymore、LophtCrack等。

利用系统管理策略或配置文件的漏洞获得比合法权限更高的操作权,如电子邮件DEBUG NFS UID检查、Rlogin-froot检查等。

利用系统配置疏忽的入侵攻击,如利用CGI脚本权限配置错误的入侵攻击、利用环境变量配置疏忽的入侵攻击、Setuid漏洞入侵攻击。

协议漏洞攻击,如FTP协议攻击、服务程序漏洞攻击(Wu-ftpd漏洞攻击、IIS漏洞攻击)、CGI漏洞攻击等。

利用Web服务器的不合理配置或CGI程序的漏洞进行攻击,达到获取脚本源码、非法执行程序,使WWW服务器崩溃等目的。如对NT IIS服务器的多种攻击、对许多免费CGI程序的攻击、对Asp、Java Script程序漏洞的攻击等。

(2)欺骗类攻击。TCP/IP协议本身的一些缺陷可以被利用,使黑客能对TCP/IP网络进行攻击。网络欺骗的技术有:HoneyPot(蜜罐)和分布式HoneyPot、欺骗空间技术等。主要方式有:IP欺骗;ARP(地址解析协议)欺骗;DNS(域名服务)欺骗;Web欺骗;电子邮件欺骗;源路由欺骗(通过指定路由,以假冒身份与其他主机进行合法通信或发送假报文,使受攻击主机出现错误动作);地址欺骗(包括伪造源地址和伪造中间站点)等。

以IP欺骗攻击为例,其实施步骤为:选定目标主机;发现主机间的信任模式;使被信任主机丧失工作能力;TCP序列号的取样和预测;冒充被信任主机进入系统,并留下后门供以后使用。

欺骗攻击还有其他一些形式,诸如DNS欺骗。在DNS服务器被入侵者接手后就有可能出现DNS欺骗。虽然这种情况发生的可能性很小,但是万一发生将会导致不堪设想的泄密后果。在多数情况下,当实施DNS欺骗时,入侵者要取得DNS服务器的信任并改变主机的IP地址表,这些变化被写入DNS服务器的转换表数据库中。因此,当客户发出一个查询请求时,他会得到假的IP地址,这一地址会处于入侵者的完全控制之下。

(3)拒绝服务攻击。

第一,通过网络,也可使正在使用的计算机出现无响应、死机的现象,这就是拒绝服务攻击,即DoS(Denial of Service)。这种攻击行为发送一定数量、一定序列的报文,使网络服务器中充斥了大量要求回复的信息,消耗网络带宽或系统资源,导致网络或系统不胜负荷以至于瘫痪、停止正常的网络服务。常见的DoS工具有同步洪流、WinNuke、死亡之Ping、Echo攻击、Finger炸弹、Ping洪流、UDP攻击等。

第二,分布式拒绝服务攻击。分布式拒绝服务攻击采用了一种比较特别的体系结构,从许多分布的主机同时攻击一个目标,从而导致目标瘫痪,即DDoS(Distributed Denial of Service)。攻击步骤如下:探测扫描大量主机以找到可以入侵的脆弱主机;入侵有安全漏洞的主机并获取控制权;在每台被入侵的主机上安装攻击程序(整个过程都是自动化的,在短时间内即可入侵数千台主机);在控制了足够多的主机之后,从中选择一台作为管理机,安装攻击主程序;进入指定逻辑状态后,该管理机指挥所有被控制机对目标发起攻击,造成目标机瘫痪。如Trinoo、TFN、Trank攻击等。

(4)对防火墙的攻击。防火墙的抗攻击性很强,可是它也不是不可攻破的。其实,防火墙也是由软件和硬件组成的,在设计和实现上都不可避免地存在着缺陷。

绕过防火墙认证的攻击手法有:地址欺骗和TCP序号协同攻击、IP分片攻击、TCP/IP会话劫持、协议隧道攻击、干扰攻击、利用FTP-pasv绕过防火墙认证的攻击。

直接攻击防火墙系统的常见手法有:利用Cisco Pix防火墙的安全漏洞、Cisco Pix防火墙的拒绝服务漏洞、Cisco Pix防火墙FTP漏洞非法通过防火墙。

(5)利用病毒攻击。病毒是黑客实施网络攻击的有效手段之一,它具有传染性、隐蔽性、寄生性、繁殖性、潜伏性、针对性、衍生性、不可预见性和破坏性等特性,而且在网络中其危害更加可怕。目前可通过网络进行传播的病毒已有数万种,可通过注入技术进行破坏和攻击。

计算机病毒攻击的传播途径有电子邮件、传统的软盘、光盘、BBS、WWW浏览、FTP文件下载、新闻组、点对点通信系统和无线通信系统等。

(6)木马程序攻击。特洛伊木马是一种骗子程序,提供某些功能作为诱饵,当目标计算机启动时,木马程序随之启动,然后在某一特定的端口监听。在通过监听端口收到命令后,木马程序根据命令在目标计算机上执行一些操作,如传送或删除文件、窃取口令、重新启动计算机等。常见的特洛伊木马程序有BO、Netspy、Netbus等。

(7)后门攻击。后门是入侵者躲过日志使自己重返被入侵系统的技术。后门种类很多,常见的有调试后门、管理后门、恶意后门、Login后门、Telnet后门、服务后门、文件系统后门、内核后门、Boot后门、TCP Shell后门等。

研究黑客攻击技术的目的在于针对性地防范,只有了解并掌握攻击技术,才能更好地防御攻击。

4.网络安全设计

(1)内外网隔离及访问控制。主要介绍以下内容:

内部网需要防范的三种攻击:①间谍、试图偷走敏感信息的黑客、入侵者和闯入者。②盗窃,其对象包括数据、Web表格、磁盘空间和CPU资源等。③破坏系统,通过路由器或主机/服务器蓄意破坏文件系统或阻止授权用户访问内部网(外部网)和服务器。

在内部网与外部网之间或在内部网不同网络安全域之间设置防火墙(包括分组过滤与应用代理)。实现内、外网的隔离与访问控制是保护内部网安全的最主要、最有效、最经济的措施之一。防火墙是在两个网络之间执行访问控制策略的硬件或软件系统,目的是保护网络不被他人侵扰。

本质上,它遵循的是一种对数据进行过滤的网络通信安全机制,只允许授权的通信,而禁止非授权的通信。通常情况下,防火墙就是位于内部网或Web站点与互联网之间的一台路由器或计算机。

防火墙技术可根据防范的方式和侧重点的不同而分为多种类型,但总体来讲有三大类较为常用:包过滤型防火墙、状态检测型防火墙和应用代理型防火墙。

第一,包过滤(Packet Filtering)型防火墙。它作用在网络层和传输层,根据分组包头源地址、目的地址、端口号和协议类型等标志确定是否允许数据包通过。只有满足过滤逻辑的数据包才被转发到相应的目的地出口端,其余数据包则被从数据流中丢弃。包过滤防火墙通常是放置在互联网与内部网络之间的一个具备包过滤功能的简单路由器,这是因为包过滤是路由器的固有属性。

包过滤的优点:①简单、易于实现、对用户透明、路由器免费提供此功能。②仅用一个放置在内部网与互联网边界上的包过滤路由器就可保护整个内部网络。

包过滤的缺点:①编制逻辑上严密无漏洞的包过滤规则比较困难,对编制好的规则进行测试维护也较麻烦。②维护复杂的包过滤规则是一件很麻烦的事情。③包过滤规则的判别会降低路由器的转发速度。④对包中的应用数据无法过滤。⑤它总是假定包头部信息是合法有效的。

以上这些缺点使得包过滤技术通常不单独使用,而是作为其他安全技术的一种补充。

第二,状态检测型防火墙。状态检测型防火墙采用动态设置包过滤规则的方法,避免了静态包过滤所具有的问题。采用这种技术的防火墙对通过其建立的每一个连接都进行跟踪,并且根据需要动态地在过滤规则中增加或更新条目。状态检测型防火墙检测每一个有效连接的状态,并根据检测结果决定数据包是否通过防火墙。由于一般不对数据包的上层协议封装内容进行处理,所以状态检测型防火墙的包处理效率要比代理型防火墙高;同时,必要时可以对数据包的应用层信息进行提取,所以状态检测型防火墙又具有了代理型防火墙的安全性特征。

因此,状态检测型防火墙提供了比代理型防火墙更强的网络吞吐能力和比包过滤型防火墙更高的安全性,在网络的安全性和数据处理效率这两个相互矛盾的因素之间进行了较好的平衡。但它并不能根据用户策略主动控制数据包的流向,随着用户对通信速度要求的进一步提高,状态检测技术也在逐渐改善。

第三,应用代理(Application Proxy)型防火墙。应用代理型防火墙也叫应用网关,它工作在OSI的最高层,即应用层。其特点是完全“阻隔”了网络通信流,通过对每种应用服务编制专门的代理程序,实现监视和控制应用层通信流的作用。

代理服务就是指定一台有访问互联网能力的主机作为网络中客户端的代理而与互联网中的主机进行通信。代理服务器判断从客户端发来的请求并决定哪些请求允许传送而哪些应被拒绝。当某个请求被允许时,代理服务器就代表客户与真正的服务器进行交谈,并将从客户端发来的请求传送给真实服务器,将真实服务器的回答传送给客户。实际中的应用网关通常由专用工作站实现。

代理类型防火墙的优点:安全;避免了入侵者使用数据驱动类型的攻击方式入侵内部网。

代理类型防火墙的缺点:速度相对比较慢。

无论何种类型防火墙,从总体上看,都应具有五大基本功能:①过滤进、出网络的数据。②管理进、出网络的访问行为。③封堵某些禁止的业务。④记录通过防火墙的信息内容和活动。⑤对网络攻击的检测和告警。

需要强调的是,防火墙是整体安全防护体系的一个重要组成部分,而不是全部。因此,必须将防火墙的安全保护融合到系统的整体安全策略中,才能实现真正的安全。防火墙同样可实现内部网不同网络安全域的隔离及访问控制。防火墙被用来隔离内部网络的一个网段与另一个网段,从而能防止影响一个网段的问题穿过整个网络传播。针对某些网络,在某些情况下,它的一些局域网的某个网段比另一个网段更受信任,或者某个网段比另一个更敏感;在它们之间设置防火墙就可限制局部网络安全问题对全局网络造成的影响。

(2)网络安全检测。主要介绍以下内容:

第一,网络安全性分析系统:网络系统的安全性取决于网络系统中最薄弱的环节。如何及时发现网络系统中最薄弱的环节?如何最大限度地保证网络系统的安全?最有效的方法是定期对网络系统进行安全性分析,及时发现并修正存在的弱点和漏洞。

第二,网络安全检测工具:通常是一个网络安全性评估分析软件,其功能是用实践性的方法扫描分析网络系统,检查报告系统存在的弱点和漏洞,建议补救措施和安全策略,达到增强网络安全性的目的。

(3)审计与监控。审计是记录用户使用计算机网络系统进行所有活动的过程,是提高安全性的重要工具。它不仅能够识别谁访问了系统,还能指出系统正被如何使用。就确定是否有网络攻击的情况,审计信息对于确定问题和攻击源很重要。同时,系统事件的记录能够更迅速和系统地识别问题,并且它是后面阶段事故处理的重要依据。另外,通过对安全事件的不断收集、积累并且加以分析,有选择性地对其中的某些站点或用户进行审计跟踪,以便为发现或可能产生的破坏性行为提供有力的证据。

因此,除使用一般的网管软件和系统监控管理系统外,还应使用目前已较为成熟的网络监控设备或实时入侵检测设备,以便对进出各级局域网的常见操作进行实时检查、监控、报警和阻断,防止针对网络的攻击与犯罪行为。

(4)网络反病毒。在网络环境下,计算机病毒具有巨大的威胁性和破坏力,因此,计算机病毒的防范是网络安全性建设中重要的一环。网络反病毒包括病毒预防、病毒检测和消毒三个技术环节。

第一,病毒预防技术。通过自身常驻系统内存,优先获得系统的控制权,监视和判断系统中是否有病毒存在,进而阻止计算机病毒进入计算机系统并对系统进行破坏。这类技术有:加密可执行程序、引导区保护、系统监控与读写控制(如防病毒卡等)。

第二,检测病毒技术。是对计算机病毒的特征进行判断的技术,如自身校验、关键字、文件长度的变化。

第三,消毒技术。通过对计算机病毒的分析开发出具有删除病毒程序并恢复原文件的软件。

网络反病毒技术的具体实现方法包括对网络服务器中的文件进行频繁的扫描和监测;在工作站用防病毒芯片并对网络目录及文件设置访问权限等。

(5)网络备份系统。备份系统的目的是尽可能快地全盘恢复运行计算机系统所需的数据和系统信息。备份不仅在网络系统硬件故障或人为失误时起到保护作用,也在入侵者非授权访问或对网络攻击及破坏数据完整性时起到保护作用,同时也是系统灾难恢复的前提之一。根据系统安全需求可选择的备份机制有:①场地内高速度、大容量自动的数据存储、备份与恢复。②场地外的数据存储、备份与恢复。③对系统设备的备份。

一般的数据备份操作有三种:①全盘备份,即将所有文件写入备份介质。②增量备份,只备份那些上次备份之后更改过的文件,是最有效的备份方法。③差分备份,备份上次全盘备份之后更改过的所有文件,其优点是只需两组磁带就可恢复最后一次全盘备份的磁带和最后一次差分备份的磁带。

在确定备份的指导思想和备份方案之后,就要选择安全的存储媒介和技术进行数据备份,可供选择的方式有冷备份和热备份两种。

热备份是指“在线”的备份,即下载备份的数据还在整个计算机系统和网络中,只不过传到了一个非工作的分区或是另一个非实时处理的业务系统中存放。热备份的优点是调用快,使用方便,在系统恢复中需反复调试,更显优势,但投资较大。热备份的具体做法是:可以在主机系统开辟一块非工作运行空间,专门存放备份数据,即分区备份;或者将数据备份到另一个子系统中,通过主机系统与子系统之间的传输,同样具有速度快和调用方便的特点,但投资比较昂贵。

冷备份是指“不在线”的备份,下载的备份存放到安全的存储媒介中,而这种存储媒介与正在运行的整个计算机系统和网络没有直接联系,在系统恢复时重新安装,有一部分原始的数据长期保存并供查询使用。冷备份弥补了热备份的一些不足,它在回避风险方面还具有便于保管的特殊优点。

在进行备份的过程中,常使用备份软件,它一般应具有以下功能:①保证备份数据的完整性,并具有对备份介质的管理能力。②支持多种备份方式,可以定时自动备份,还可设置备份自动启动和停止的日期。③支持多种校验手段,如字节校验、CRC循环冗余校验、快速磁带扫描等,以保证备份的正确性。④提供联机数据备份功能。⑤支持独立冗余磁盘阵列容错技术和图像备份功能。

(6)电子商务系统数据恢复的主要技术。

第一,瞬时复制技术。瞬时复制技术是使计算机在某一灾难时刻自动复制数据的技术。现有的一种瞬时复制技术是通过使用磁盘镜像技术来复制数据。利用空白磁盘和每一数据磁盘相连,把数据拷贝到空白磁盘,在拷贝过程中,为保证数据的一致性,使用数据的应用程序被暂时挂起。当复制完成时,瞬时复制磁盘与数据磁盘脱离连接,应用程序继续运行。瞬时复制的备份数据可典型地用来产生磁带备份或用做远程恢复结点的基本数据。

第二,远程磁盘镜像技术。远程磁盘镜像技术是在远程备份中心提供主数据中心的磁盘影像。这种技术的优点是可把数据中心磁盘中的数据复制到远程备份中心,而无须考虑数据在磁盘上是如何组织的。系统管理员仅需确定哪些磁盘需要备份到远程备份中心,存储在这些磁盘上的数据会被完全自动地备份到远程备份中心,这对应用系统的安全是非常有利的。

第三,数据库复制技术。数据库复制技术是产生和维护一份或多份数据库数据的复制技术。数据库复制技术为用户提供了更大的灵活性,数据库管理员可准确地选择将哪些数据复制到何处。对于那些在日常应用中使用大量联机数据的用户,可选择少量最为关键的数据复制到远程,用来减少对远程接待内存储系统的占有率和对网络带宽的影响。大多数的复制服务器比磁盘镜像更加灵活,支持对数据的多个复制,同时可选择将哪些数据复制到何处。

第四节 认证技术

认证技术是电子商务安全技术的一个重要方面。这里介绍的认证技术主要涉及身份认证和报文认证两个方面的内容。身份认证用于鉴别用户身份,报文认证用于保证通信双方的不可抵赖性和信息的完整性。在某些情况下,信息认证比信息保密更为重要。例如,在很多情况下用户并不要求购物信息保密,而只需要确认网上商店不是假冒的(这就需要身份认证),自己与网上商店交换的信息未被第三方修改或伪造,并且网上商家不能赖账(这就需要报文认证)。商家也是如此。另一个例子是网络中的信息广播(通知),接收方主要关心的是信息的真实性和信息来源的可靠性。在这些情况下,信息认证将处于首要的地位。

一、认证和识别的基本原理

电子商务发展中的大部分问题和矛盾都集中在安全支付手段方面。在技术上,要解决两大问题:安全传输问题和身份认证问题。

解决安全传输问题的手段就是建立一个安全的加密传输通道,即在用户与贸易商的站点之间建立一个安全链接,保证从用户传递到贸易站点的信用卡号码不会被第三者所窥视。

身份证明系统一般由三方组成,一方是出示证件的人,称作示证者,又称申请者,由他提出某种要求;另一方是验证者,验证示证者提出的证件的正确性和合法性,决定是否满足示证者的要求;第三方是攻击者,其窃听和伪装示证者骗取验证者的信任。认证系统在必要时也会有第四方,即可信赖者参与,调解纠纷。此类技术被称为身份证明技术,又称作识别实体认证、身份认证等。身份认证与消息认证的差别:身份认证一般都是实时的,通常证实实体本身,而消息认证除了证实消息的合法性和完整性外,还要知道消息的含义。

对身份认证体系的要求一般有:

(1)正确识别的高概率性。

(2)伪装成功的小概率性。

(3)不可传递性:验证者不可能重用证件者提供给他的信息,伪装示证者。

(4)计算有效性:为实现身份证明所需要的计算量要小。

(5)通信有效性:为实现身份证明所需的通信次数和数据量要小。

(6)秘密参数安全存储。

(7)交互识别。

(8)可信赖者的实时参与,如在线公钥检索、在线黑名单检索。

(9)可信赖者的可信赖性。

因为电子商务不是面对面的交易,双方都无法确认对方的身份,因此身份认证对电子商务安全和信任问题极为重要。其中有两个问题涉及身份认证和识别:身份真实性;不可抵赖性。

从概念上讲,信息的保密与信息的认证是有区别的。加密保护只能防止被动攻击,而认证保护可以防止主动攻击。被动攻击的主要方法是截取信息;主动攻击最大的特点是对信息进行故意的修改,使其失去原来的意义。主动攻击比被动攻击更复杂,手段比较多,攻击的危害更大,后果也更严重。作为一种证实信息交换过程合法有效的手段,认证主要包括以下几个方面的内容:

(1)实体A与实体B在进行信息交换时,A与B都必须对对方的身份进行认证,以保证它们所收到的信息都是由确认的实体发送过来的。

(2)设实体A经过通信信道向实体B发送一段信息,那么作为收方的B必须知道它所收到的信息在离开A后是否被修改过。换言之,B必须证实它所收到的消息是真实的。

(3)信息接收方对收到的信息不能进行任意删改,也不能抵赖(否认)它所收到的信息。

(4)发送方不能抵赖它所发送的信息。如果收、发双方发生争执,第三方必须能够进行公正的判决。

(5)对收到的信息,接收方应能检测出是否是过时的信息,或者是某种信息的重播。

二、数字签名

1.数字签名(Digital Signature)的含义

数字签名是在公钥加密系统的基础上建立起来的,数字签名的产生涉及的运算方式是为人们所知的散列函数功能,也称“哈希函数功能”(Hash Function)。哈希函数功能其实是一种数学计算过程。这一计算过程建立在一种以“哈希函数值”或“哈希函数结果”形式创建信息的数字表达式或压缩形式(通常被称作“信息摘要”或“信息标识”)的计算方法之上。在安全的哈希函数功能(有时被称作单向哈希函数功能)情形下,要想从已知的哈希函数结果中推导出原信息来,实际上是不可能的。因而,哈希函数功能可以使软件在更少且可预见的数据量上运作生成数字签名,却保持与原信息内容之间的高度相关,且有效保证信息在经过数字签名后并未做任何修改。

所谓“数字签名”,就是只有信息的发送者才能产生的,而别人无法伪造的一段数字串,它同时也是对发送者发送的信息的真实性的一个证明。签署文件或其他任何信息时,签名者首先须准确界定要签署内容的范围;然后,哈希函数功能将计算出被签署信息惟一的哈希函数结果值(为实用目的);最后使用签名者的私人密码将哈希函数结果值转化为数字签名,得到的数字签名对于被签署的信息和用以创建数字签名的私人密码而言都是独一无二的。

一个数字签名被附在信息之后,并随同信息一起被储存和传送。然而,只要能够保持与相应信息之间的可靠联系,它也可以作为单独的数据单位被存储和传送。因为数字签名对它所签署的信息而言是独一无二的,因此假如它与信息永久地失去联系则变得毫无意义。

在书面文件上签名是确认文件的一种手段,数字签名同传统的手写签名相比有许多特点。首先,数字签名中的签名同信息是分开的,需要一种方法将签名与信息联系在一起,而在传统的手写签名中,签名与所签署的信息是一个整体。其次,在签名验证的方法上,数字签名利用一种公开的方法对签名进行验证,任何人都可以对之进行检验。而传统的手写签名的验证是由经验丰富的接收者,通过同预留的签名样本相比较而做出判断的。最后,在数字签名中,有效签名的复制同样是有效的签名,而在传统的手写签名中,签名的复制是无效的。

数字签名可以同时具有两个作用:确认数据的来源,以及保证数据在发送的过程中未做任何修改或变动。因此,就某些方面而言,数据签名的功能,更有些近似于整体性检测值的功能;但是,两者的一个主要区别在于,数字签名必须能够保证发送者事后不能抵赖对报文的签名,这一点相当重要。由此,信息的接收者可以通过数字签名使第三方确信签名人的身份及发出信息的事实。当双方就信息发出与否及其内容出现争论时,数字签名就可成为一个有力的证据。一般来说,因信息篡改而受影响较大的是接收方。因此,接收方最好使用与信息发送方不同的数字签名,以示区别。这是整体性检测值所不具有的功能。从这种意义上来说,确认一个数字签名与通过辨认手写签名来确认某一书面文件的来源具有同样的意义。

采用数字签名和加密技术相结合的方法,可以很好地解决信息传输过程中的完整性、身份认证以及防抵赖性等问题。

(1)完整性。它提供了用以确认电子文件完整性的技术和方法,可认定文件为未经更改的原件。

(2)可验证性。可以确认电子文件的来源。由于发件人以私钥产生的电子签章只有与发件人的私钥对应的公钥方能解密,故可确认文件的来源。

(3)不可否认性。由于只有发文者拥有私钥,所以其无法否认该电子文件不是由其所发送。

2.数字签名的确认

数字签名的确认是一个参照原信息和给定的公共密码来查验数字签名的过程,进而决定为同一信息使用私人密码创建的数字签名与被参照的公共密码是否保持一致。通过使用与创建数字签名相同的哈希函数功能计算出原信息新的哈希函数结果,以达到对数据签名的确认。随后,使用公共密码和新的哈希函数结果,确认者可以检查数字签名是否是使用相应的私人密码签署的,新计算出来的哈希函数结果是否与在签名过程中被转化为数字签名的原哈希函数结果值相匹配。

确认软件将认同数字签名为“已被确认”,假如:

(1)签名者的私人密码是用来对信息进行数据签名的,而公共密码是用来确认数字签名的,因为公共密码将只确认签名者使用私人密码签署数字签名,而事实上,公共密码已经确认了签名是由私人密码做出的。

(2)信息未曾被改变,在确认过程中,这一点可以通过将确认者计算出来的哈希函数结果与从数字签名中的哈希函数结果相对比得出结论。

3.数字签名过程

数字签名的使用一般涉及以下几个步骤,这几个步骤既可由签名者也可由被签署信息的接受者来完成。

(1)用户生成或取得独一无二的加密密码组。

(2)发件人在计算机上准备一个信息(如以电子邮件的形式)。

(3)发件人用安全的哈希函数功能准备好“信息摘要”。数字签名由一个哈希函数结果值生成,该函数值由被签署的信息和一个给定的私人密码生成,并对其而言是独一无二的。为了确保哈希函数值的安全性,应该使通过任意信息和私人密码的组合而产生同样的数字签名的可能性为零。

(4)发件人通过使用私人密码对信息摘要加密。私人密码通过使用一种数学算法而被应用在信息摘要文本中,数字签名包含被加密的信息摘要。

(5)发件人将数字签名附在信息之后。

(6)发件人将数字签名和信息(加密或未加密)发送给电子收件人。

(7)收件人使用发件人的公共密码确认发件人的电子签名,使用发件人的公共密码进行的认证证明信息排他性地来自于发件人。

(8)收件人使用同样安全的哈希函数功能创建信息的“信息摘要”。

(9)收件人比较两个信息摘要。假如两者相同,则收件人可以确信信息在签发后并未做任何改变,信息被签发后哪怕有一个字节的改变,收件人创建的数据摘要与发件人创建的数据摘要都会有所不同。

(10)收件人从认证机构处获得认证证书(或者是通过信息发件人获得),这一证书用以确认发件人发出信中的数字签名的真实性。证明机构在数字签名系统中是一个典型的受委托管理证明业务的第三方。该证书包含发件人的公共密码和姓名(以及其他可能的附加信息),由证明机构在其上进行数字签名。

其中,(1)~(6)是数字签名的制作过程,(7)~(10)是数字签名的核实过程。

三、数字时间戳(Digital Time-stamp)

在许多情况下,时间是十分重要的信息。在书面合同中,文件的签署日期和签名同样都是十分重要的、防止文件被伪造和篡改的关键性内容。在电子交易中,同样也需要对交易文件的日期和时间信息采取安全措施,而数字时间戳服务(Digital Time-stamp Service,DTS)就能提供电子文件发表时间的安全保护。数字时间戳应当保证:

(1)数据文件加盖的时间戳与存储数据的物理媒体无关。

(2)对已加盖时间戳的文件不可能做丝毫改动。

(3)要想对某个文件加盖与当前日期和时间不同的时间戳是不可能的。

数字时间戳服务是网上安全服务项目,由专门的机构提供。时间戳是一个经过加密后形成的凭证文档,它包括三个部分:

(1)需加时间戳的文件摘要。

(2)DTS收到文件的日期和时间。

(3)DTS的数字签名。

数字时间戳可以作为电子商务交易信息的时间认证,在一旦发生争议时作为时间凭证提供验证依据。

四、数字摘要(Digital Digest)技术

对信息进行加密可以保证信息的机密性,利用加密技术同样可以保证信息的完整性,即确认信息在传送或存储过程中未被篡改过,这种技术称为数字摘要技术。

数字摘要也称安全散列编码法(Secure Hash Algorithm,SHA)或MD5(Message-digest-Algorithm 5),由Ron Rivest所设计。

该编码法采用单向Hash函数将需加密的明文“摘要”成一串128位的密文,这一串密文也称为数字指纹(Finger Print),它有固定的长度,且不同的明文摘要成密文其结果总是不同的,而同样的明文其摘要必定一致。这样,这串摘要便可成为验证明文是否“真身”的“指纹”。因此,可以用数字摘要来确保信息是未被篡改过的,即保证信息的完整性。而成功的加密技术仅能保证信息不被窃取,但无法确保信息是未被篡改过的。

在实际操作时,先提取发送信息的数字摘要,并在传输信息时将之加入文件一同发送给接收方;接收方收到文件后,用相同的方法对接收的信息进行变换运算得到另一个摘要,然后将自己运算得到的摘要与发送过来的摘要进行比较,从而验证数据的完整性。数字摘要应用如图3-9所示。注意图中用发送方的私钥加密数字摘要不是数字摘要的要求,而是为了安全传输数字摘要。

图3-9 数字摘要应用

提取数据特征的算法叫做单向散列函数(Hash函数),单向散列函数必须具有以下几个性质:

(1)能处理任意大小的信息,生成的消息摘要数据块长度总是固定的,对同一个源数据反复执行该函数得到的消息摘要相同。

(2)对给定的信息,很容易计算出数字摘要。

(3)给定数字摘要和公开的散列函数算法,要推导出信息是极其困难的。

(4)想要伪造另外一个信息,使它的数字摘要和原信息的数字摘要一样,也是极其困难的。

数字摘要算法目前主要有安全散列标准、MD散列标准。

五、身份认证技术

(一)身份认证概述

认证技术是电子商务安全理论与技术的一个重要方面。身份认证是电子商务安全系统中的第一道关卡,用户在访问安全系统之前,首先经过身份认证系统识别身份,然后访问监控器,根据用户的身份和授权数据库决定用户是否能够访问某个资源。授权数据库由安全管理员按照需要进行配置。审计系统根据审计设置记录用户的请求和行为,同时入侵检测系统实时或非实时地检测是否有入侵行为。访问控制和审计系统都要依赖于身份认证系统提供的“信息”——用户的身份。可见身份认证在电子商务安全系统中的地位极其重要,是最基本的安全服务,其他的安全服务都要依赖于它。一旦身份认证系统被攻破,则系统的所有安全措施将形同虚设。黑客攻击的目标往往就是身份认证系统。因此要加快对我国电子商务安全系统的建设,加强身份认证理论及其应用的研究具有十分重要的意义。

(二)身份证明的基本分类

(1)身份证实:对个人身份进行肯定或否定。方法是将输入的个人信息(经公式和算法运算所得的结果)与卡上或库存中的信息(经公式和算法运算所得的结果)进行比较,得出结论。

(2)身份识别:一般方法是输入个人信息,经处理提取成模板信息,尝试在存储数据库中搜索找出一个与之匹配的模板,而后给出结论,如确定一个人是否曾有前科的指纹检验系统。显然,身份识别要比身份证实难得多。

(三)单机状态下的身份认证

单机状态下的用户登录计算机,一般通过以下几种形式验证用户身份:①用户所知道的,如口令、密码。②用户所拥有的,如智能卡、身份证、护照、密钥盘。③用户所具有的生物特征,如指纹、声音、视网膜扫描、DNA等。

具体阐述如下:

1.基于口令的认证方式

基于口令的认证方式是最常用的一种技术。用户输入自己的口令,计算机验证并给予用户相应的权限。这种方式很重要的问题是口令的存储,一般有两种方法:

(1)直接明文存储口令。这种方式有很大风险,任何人只要得到存储口令的数据库,就可以得到全体人员的口令。如攻击者可以设法得到一个低优先级的账号和口令,进入系统后得到存储口令的文件,因为是明文存储,因此他就可以得到全体人员的口令,包括Adminstrator的口令,然后以管理员的身份进入系统,进行非法操作。

(2)Hash散列存储口令。散列函数的目的是为文件、报文或其他分组数据产生“指纹”。散列函数H必须具备以下性质:

H能用于任何长度的数据分组;H产生定长的输出;对任何给定的x,H(x)要相对容易计算;对任何给定的码h,寻找x以使得H(x)=h在计算上是不可行的,称为单向性;对任何给定的分组x,寻找不等于x的y,使得H(y)=H(x)在计算上是不可行的,称为弱抗冲突;寻找对任何的(x,y)对,使得H(x)=H(x)在计算上是不可行的,称为强抗冲突。

例如:F(x)=gx mod p就是一个单向散列函数,这里p是一个大质数,且g是p的原根。

对于每一个用户,系统存储账号和散列值对在一个口令文件中,当用户登录时,用户输入口令x,系统计算F(x),然后与口令文件中相应的散列值进行比对,成功则允许登录;否则拒绝登录。在文件中存储口令的是散列值而不是口令的明文,优点在于黑客即使得到口令文件,通过散列值要计算出原始口令,这在计算上也是不可能的,这就相对增加了安全性。

总的来说,基于口令的认证方式存在严重的安全问题。它是一种单因素的认证,安全性依赖于口令,口令一旦泄露,用户即可被冒充。更严重的是,用户往往选择简单、容易被猜测的口令,如与用户名相同的口令、生日、单词等。这个问题往往成为安全系统最薄弱的突破口。口令一般是经过加密后存放在文件中的,如果口令文件被窃取,那么就可以进行离线的字典式攻击,这也是黑客最常用的手段之一。

2.基于智能卡的认证方式

智能卡又称集成电路卡,即IC卡(Integrated Circuit-card)。它将一个集成电路芯片镶嵌于塑料基片中,封装成卡的形式,其外形与覆盖磁条的磁卡相似。

智能卡具有硬件加密功能,有较高的安全性。每个用户持有一张智能卡,智能卡存储用户个性化的秘密信息,同时在验证服务器中也存放该秘密信息。进行认证时,用户输入个人身份识别码(PIN),智能卡认证PIN,成功后,即可读出智能卡中的秘密信息,进而利用该秘密信息与主机之间进行认证。

基于智能卡的认证方式是一种双因素的认证方式(PIN+智能卡),即使PIN或智能卡被窃取,用户仍不会被冒充。智能卡提供硬件保护措施和加密算法,可以利用这些功能加强安全性能。例如,可以把智能卡设置成用户只能得到加密后的某个秘密信息,从而防止秘密信息的泄露。

3.基于生物特征的认证方式

基于生物认证的方式是以人体惟一的、可靠的、稳定的生物特征为依据,采用计算机强大的计算功能和网络技术进行图像处理和模式识别。该技术具有很好的安全性、可靠性和有效性,与传统的身份确认手段相比,无疑产生了质的飞跃。近几年来,全球的生物识别技术已从研究阶段转向应用阶段,对该技术的研究和应用如火如荼,前景十分广阔。

所有的工作大多进行了这样四个步骤:抓图、抽取特征、比较和匹配。生物识别系统捕捉到生物特征的样品,惟一的特征将会被提取并且被转换成数字的符号。随后,这些符号被存成此人的特征模板,这种模板可能会在识别系统中,也可能在各种各样的存储器中,如计算机的数据库、智能卡或条码卡中。人们同识别系统进行身份认证,以确定匹配或不匹配。

(1)指纹识别技术。主要有如下几个方面:

第一,指纹特征。人类的指纹是由多种脊状图形构成,传统上对这些脊状图形是根据有数十年历史的亨利系统(Henry System)来划分的。亨利系统将一个指纹的图形划分为左环、右环、拱、涡和棚状拱。环型占了将近2/3的指纹图像,涡占有1/3,可能存在5%~10%的拱,这种指纹图形分类方法在大规模刑侦方面有着广泛运用,但在生物识别认证方面很少运用。

第二,指纹识别。指纹识别技术主要涉及四个功能:读取指纹图像、提取特征、保存数据和比对。

通过指纹读取设备读取到人体指纹图像,取到指纹图像之后,要对原始图像进行初步的处理,使之更清晰。

指纹辨别软件建立指纹的数字表示——特征数据,一种单方向的转换,可以从指纹转换成特征数据但不能从特征数据转换成指纹,而两枚不同的指纹不会产生相同特征数据。软件从指纹上找到被称为结点的数据点,也就是那些纹路的分叉、终止或打圈处的坐标位置,这些点同时具有七种以上的惟一性特征,因为通常手指上平均具有70个结点,所以这种方法会产生大约490个数据。有的算法把结点和方向信息进行组合产生了更多的数据,这些方向信息表明了各个结点之间的关系,有的算法还处理整幅指纹图像。总之,这些数据通常被称为模板,保存为l KB大小的记录。

通过计算机模糊比较的方法,将两个指纹的模板进行比较,计算出它们的相似程度,最终得到两个指纹的匹配结果。

(2)虹膜识别技术。虹膜识别技术是利用虹膜终身不变性和差异性的特点来识别身份的。虹膜识别技术与相应的算法结合后,可以到达十分高的准确度,即使全人类的虹膜信息都录入到一个数据中,出现认假和拒真的可能性也相当小。但是这项技术的无法录入问题已经成为它同其他识别技术抗衡的最大障碍。不管怎样,虹膜识别技术的高精度使它能够在众多识别技术中占有一席之地。

眼睛的虹膜是由相当复杂的纤维组织构成,其细部结构在出生之前就以随机组合的方式决定下来了。虹膜识别技术将虹膜的可视特征转换成一个512字节的虹膜代码(I-ris Code),这个代码模板被存储下来以便后期识别,512字节对生物识别模板来说是一个十分紧凑的模板,但它对从虹膜获得的信息量来说是十分巨大的。

另外,录入和识别的整个过程其实是十分简单的,虹膜的定位可在1秒钟内完成,产生虹膜代码也仅需1秒的时间,数据库的检索时间也相当快,就是在包含成千上万个虹膜信息数据库中进行检索,其所用时间也不多。有人可能会对如此快的速度产生质疑,其实虹膜识别技术的算法还受到了现有技术的制约。我们知道,处理器速度是大规模检索的一个“瓶颈”,另外网络和硬件设备的性能也制约着检索的速度。当然,由于虹膜识别技术采用的是单色成像技术,因此很难把一些图像从瞳孔的图像中分离出来。但是虹膜识别技术所采用的算法允许图像质量在某种程度上有所变化。相同虹膜所产生的虹膜代码也有25%的变化,这好像是这一技术的致命弱点,但在识别过程中,这种虹膜代码的变化只占整个虹膜代码的10%,其比例是相当小的。

(四)网络环境下的身份认证

网络环境下的身份认证较为复杂,主要是要考虑到验证身份的双方一般都是通过网络而非面对面交互,因而指纹等手段就难以实现。同时大量的黑客随时随地都可能尝试向网络渗透,截获合法用户口令并冒名顶替以合法身份入网。所以目前一般采用高强度的密码认证协议技术来进行身份认证。

1.一次性口令技术

通常使用的计算机口令是静态的,也就是说在一定时间内是不变的,而且可重复使用。口令极易被网上嗅探劫持,而且很容易受到字典攻击。

20世纪80年代初,针对静态口令认证的缺陷,美国科学家Leslie Lamport首次提出了利用散列函数产生一次性口令的思想,即用户每次登录系统时使用的口令都是变化的。1991年贝尔通信研究中心用DES加密算法首次研制出了基于一次性口令思想的挑战/应答式(Challenge/Response)动态密码身份认证系统S/KEY。之后,更安全的基于MD4和MD5散列算法动态密码认证系统也被开发出来。为了克服挑战/应答式动态密码认证系统使用过程烦琐、占用过多通信时间的缺点,美国著名加密算法研究实验室RSA研制成功了基于时间同步的动态密码认证系统RSA SecurID,RSA公司也由此获得了时间同步的专利。

2.点到点协议(Point-to-Point Protocol,PPP)中的认证协议

点到点协议提供了一种在点到点链路上封装网络层协议信息的标准方法。PPP也定义了可扩展的链路控制协议(Link Control Protocol),链路控制协议使用验证协议磋商机制,在链路上传输网络层协议前验证链路的对端。点到点协议定义了两种验证协议:密码验证协议和挑战—握手验证协议。

PPP协议有三个主要的组成部分:①在串行链路上封闭数据包(Datagrams)方法。②建立、配置和测试数据链路连接(Data-Link Connection)的LCP协议。③建立和配置不同网络层协议的一组NCP协议(Network Control Protocol)。

为了在点到点链路上建立通信,PPP链路的一端必须在建立阶段首先发送LCP包配置数据链路。在链路建立后、进入到网络层协议阶段前,PPP提供一个可选择的验证阶段。在默认情况下,身份验证不是强制的。如果希望进行链路的身份验证,则实现者必须在建立阶段指明身份验证——协议配置选项。

这些协议主要是为通过交换电路(Switched Circuits)或者拨号线(Dial-up Lines)连接到PPP网络服务器的主机和路由器的,但是也可以被用到专用链路中。服务器在为网络层协商选择选项时可以对连接的主机或路由器进行身份验证。

(1)密码验证协议(Password Authentication Protocol,PAP)。密码验证协议提供了一种简单的方法,可以使对端(Peer)使用两次握手建立身份验证,这个方法仅仅在链路初始化时使用。链路建立阶段完成后,对端不停地发送ID/Password对给验证者,一直到验证被响应或者连接终止为止。PAP不是一个完善的身份验证方法。密码在电路上是明文发送的,并且对回送者重复验证和错误攻击没有保护措施。对端控制着尝试的频率和时间。

(2)挑战—握手认证协议(Challenge-Handshake Authentication Protocol,CHAP)。挑战—握手认证协议(CHAP)通过三次握手周期性地认证对端的身份,在初始链路建立时完成,可以在链路建立之后的任何时候重复进行,其操作步骤如下:

第一,链路建立阶段结束之后,认证者向对端发送“挑战”消息。

第二,对端用经过单向哈希函数计算出来的值做应答。

第三,认证者根据其预期哈希值的计算来检查应答,如果值匹配,认证得到承认;否则,连接应该终止。

第四,经过一定的随机间隔,认证者发送一个新的挑战给对端,重复以上步骤。

(3)PPP扩展认证协议(Extensible Authentication Protocol,EAP)。PPP扩展认证协议EAP是一个用于PPP认证的通用协议,可以支持多种认证方法。EAP并不在链路建立阶段指定认证方法,而是把这个过程推迟到认证阶段。这样认证方就可以在得到更多的信息以后再决定使用什么认证方法。这种机制还允许PPP认证方简单地把收到的认证报文传给后方的认证服务器,由后方的认证服务器来真正实现各种认证方法。

在链路阶段完成以后,由认证方向对端发送一个或多个请求报文。在请求报文中有一个类型字段用来指明认证方所请求的信息类型,如对端ID、MD5的挑战字、一次密码(OTP)以及通用令牌卡等。MD5的挑战字对应于CHAP认证协议的挑战字。典型情况下,认证方首先发送一个ID请求报文,随后再发送其他的请求报文。当然,并不是必须要首先发送这个ID请求报文,在对端身份已知的情况下(如租用线、拨号专线等)可跳过这个步骤。对端对每一个请求报文回应一个应答报文。和请求报文一样,应答报文中也包含一个类型字段,对应于所回应的请求报文中的类型字段。认证方通过发送一个成功或者失败的报文来结束认证过程。

第五节 电子商务安全认证体系

为了解决在Internet上开展电子商务的安全问题,切实保障网上交易和支付的安全,世界各国在经过多年研究后,初步形成了一套完整的解决方案,其中最重要的内容就是建立一套完整的电子商务安全认证体系。电子商务安全认证体系的核心机构就是认证中心(CA)。认证中心作为一个权威、公正、可信的第三方机构,它的建设是电子商务最重要的基础设施之一,也是电子商务大规模发展的根本保证。

一、数字证书及证书授权中心

(一)数字证书(Digital ID)原理

信息加密技术、数字签名等技术很好地解决了电子商务安全性的前三个问题,即信息传输的保密性、交易文件的完整性和信息的不可否认性。但交易者身份的确定性问题并未解决。数字证书正是用来证明交易者的真实身份的有效手段。

数字证书又称为数字凭证、数字标识,是一个经证书授权中心数字签名的包含公开密钥拥有者信息以及公开密钥的文件,是利用电子手段来证实用户身份和对网络资源访问的权限,是各实体(买方、商户/企业、银行等)在网上进行信息交流及商务活动的电子身份证。最简单的证书包含一个公开密钥、名称以及证书授权中心的数字签名。一般情况下,证书中还包括密钥的有效时间、发证机关(证书授权中心)的名称、该证书的序列号等信息,证书的格式遵循ITUT.509国际标牌。一个标准的X.509数字证书包含以下一些内容:

(1)证书的版本信息。

(2)证书的序列号,每个证书都有一个惟一的证书序列号。

(3)证书所使用的签名算法。

(4)证书的发行机构名称。

(5)证书的有效期,现在通用的证书一般采用UTC时间格式,它的计时范围为1950~2049。

(6)证书所有人的名称。

(7)证书所有人的公开密钥。

(8)证书发行者对证书的签名。

数字证书采用公开密码密钥体系,即利用一对互相匹配的密钥进行加密、解密。每个用户自己设定一把特定的、仅为本人所知的私有密钥,用它进行解密和签名;同时设定一把公共密钥,并由本人公开,为一组用户所共享,用于加密和验证签名。当发送一份保密文件时,发送方使用接收方的公钥对数据加密,而接收方则使用自己的私钥解密,这样信息就可以安全无误地到达目的地了。

在网络的电子交易中,若双方出示了各自的数字证书,并用它来进行交易操作,那么双方都不必为对方的身份真伪担心。证书可用于安全电子邮件、网上缴费、网上炒股、网上招标、网上购物、网上企业购销、网上办公、软件产品以及电子资金移动等安全电子商务活动。

(二)数字证书的类型

(1)客户证书。这种证书证实客户(如使用浏览器的个人)身份和密钥所有权,可以存储在硬盘、USB Key、IC卡等介质中。在某些情况下,服务器可能在建立SSL连接时要求用户利用客户证书来证实其身份。为了取得个人证书,用户可向某一信任的CA申请,CA经过审查后决定是否向用户颁发证书。

(2)服务器证书(站点证书)。这种证书证实服务器的身份和公钥,可存放在硬盘、USB Key、IC卡等各类介质中。当与客户建立SSL连接时,服务器将它的证书传送给客户。当客户收到证书后,客户检查证书是由哪家CA发行以及这家CA是否被客户所信任。如果客户不信任这家CA,浏览器会提示用户接受或拒绝这个证书。

(3)安全邮件证书。这种证书证实电子邮件用户的身份和公钥。有些传送安全电子邮件的应用程序使用证书来验证用户身份和加、解密消息。

(4)CA机构证书。这种证书证实认证中心身份和认证中心的签名密钥(签名密钥被用来签署它所发行的证书)。证书信任分级体系如图3-10所示。

(三)认证中心的作用

在电子交易中,无论是数字时间戳服务还是数字证书的发放,都不是靠交易双方来完成,而需要由具有权威性和公正性的第三方来完成。认证中心就是承担网上安全电子交易认证服务、签发数字证书,并能确认用户身份的服务机构。认证中心通常是企业性的服务机构,任务是受理数字证书的申请、签发数字证书以及管理数字证书。认证中心依据认证操作规定,实施服务操作。CA有以下作用:

图3-10 证书信任分级体系

(1)证书的颁发。认证中心接收、验证用户(包括下级认证中心和最终用户)的数字证书申请,将申请的内容进行备案,并根据申请的内容确定是否受理该申请。如果中心接受该数字证书申请,则进一步确定向用户颁发何种类型的证书。新证书经过认证中心的私钥签名以后,发送到目录服务器以供用户下载和查询。为了保证消息的完整性,返回给用户的所有应答信息都要使用认证中心的签名。

(2)证书的更新。认证中心可以定期更新所有用户的证书,或者根据用户的请求来更新用户的证书。

(3)证书的查询。证书的查询可以分为两类:其一是证书申请的查询,认证中心根据用户的查询请求返回当前用户证书申请的处理过程;其二是用户证书的查询,这类查询由目录服务器来完成,目录服务器根据用户的请求返回适当的证书。

(4)证书的作废。当私钥由于泄密等原因造成用户证书需要申请作废时,用户需要向认证中心提出证书作废的请求,认证中心根据用户的请求确定是否将该证书作废。另外一种证书作废的情况是证书已经超过有效期,认证中心自动将该证书作废。认证中心通过维护证书作废列表(Certificate Revocation List,CRL)来完成上述功能。

(5)证书的归档。证书具有一定的有效期,超过有效期之后就将作废,但是不能将作废的证书简单地丢弃,因为有时我们可能需要验证以前的某个交易过程中产生的数字签名,这时就需要查询作废的证书。基于此类考虑,认证中心还应当具备管理作废证书和作废私钥的功能。总的来说,基于认证中心的安全方案,应该很好地解决网络用户身份认证和信息安全传输问题。

二、PKI安全体系

PKI是一个利用现代密码学的公钥密码技术,并在开放的Internet网络环境中提供数据加密以及数字签名服务的、统一的技术框架,是电子商务安全问题的关键和基础技术。它能够有效地解决电子政务中的机密性、真实性、完整性、不可否认性和存取控制等安全问题。应用PKI技术,可以建立一个可信任和足够安全的网络系统。

1.公钥基础设施概述

PKI就是一个用公钥概念和技术实施并提供安全服务的、具有普适性的安全基础设施。PKI通过使用公开密钥技术和数字证书来确保系统信息安全并负责验证数字证书持有者身份。PKI采用各参与方都信任同一个CA,由该CA来核对和验证各参与方身份的信任机制。通过PKI,交易双方共同信任签发其数字证书的认证中心(CA)。

2.PKI的基本组成

PKI由公开密钥密码技术、数字证书、证书发放机构和关于公开密钥的安全策略等基本成分共同组成。PKI是利用公钥技术实现电子商务安全的一种体系,是一种基础设施,网络通信、网上交易是利用它来保证安全的。从某种意义上讲,PKI包含了安全认证系统,即CA系统是PKI不可或缺的组成部分。

3.PKI的结构

PKI包括CA认证中心、RA注册机构、证书库、策略管理、撤销系统等。

(1)CA是一个确保信任的权威实体。认证中心作为受信任的第三方,类似于现实生活中公证人的角色,它具有权威性,承担PKI公钥体系中公钥的合法性检验的责任。它的主要职责是颁发证书、验证用户身份的真实性。可以把CA看成是一个电子护照的颁发中心。由CA签发用户数字证书,任何相信该CA的人,按照第三方信任原则,也应该相信持有该证书的用户。用户在获得自己的数字证书后,就可以使用证书来表明身份,接收方只需要使用签发证书的公钥验证用户证书,如果验证成功,就可以信任该证书描述的用户身份。证书的签发和验证充分利用了公开密钥算法的数字签名和验证功能,杜绝了冒充身份的可能性。

(2)证书库是CA颁发证书和撤销证书的集中存放地,它类似于网上的“白页”,是网上的公共信息库,可供公众进行开放式查询。

查询的目的有两个:其一是想得到与之通信实体的公钥;其二是要验证通信对方的证书是否已进入“黑名单”。证书库支持分布式存放,即可采用数据库镜像技术,将CA签发的证书中与本组织有关的证书和证书撤销列表存放到本地,以提高证书的查询效率,减小向总目录查询的“瓶颈”。

(3)RA是用户和CA的接口,它所获得的用户标识的准确性是CA颁发证书的基础。用户通过向RA注册登录,提供自己的个人信息资料,获得RA认可后由RA生成此用户的标识符,提供给CA生成惟一标识此用户的数字证书。RA不仅支持面对面的注册,也支持远程注册。要确保整个PKI系统的安全、灵活,就必须设计和实现网络化、安全的且易于操作的RA系统。

(4)策略管理在PKI系统中是非常重要的。管理员可以根据不同的用户,选择不同的安全策略向用户颁发不同安全级别的数字证书。这些安全策略必须适应不同的需求并且能够通过CA和RA技术融入到CA和RA的系统实现中。同时,这些策略应该符合密码学和系统安全的要求,科学地应用密码学与网络安全理论,并且具有良好的可扩展性和互用性。

(5)PKI系统还需要构建一个安全有效的撤销系统。证书是用来证明证书持有者身份的电子介质,它是用来绑定证书持有者身份和其相应公钥的。通常,这种绑定在已颁发证书的整个生命周期里都是有效的。一个证书的有效期是有限的,这种规定在理论上基于当前非对称算法和密钥长度的可破译性分析;在实际应用中是由于长期使用同一个密钥有被破译的危险。因此,为了保证安全,证书和密钥必须有一定的更换频度。为此,PKI对已发的证书必须有一个更换措施,这个过程称为“密钥更新或证书更新”。证书更新一般由PKI系统自动完成,不需要用户干预。即在用户使用证书的过程中,PKI也会自动到目录服务器中检查证书的有效期,当有效期结束之前,PKI/CA会自动启动更新程序,生成一个新证书来代替旧证书。但是,有时也会出现一个已颁发证书不再有效的情况,如果这个证书还没有到期,就需要进行证书撤销。因此,需要采取一种有效和可信的方法,能在证书自然过期之前撤销它。

4.PKI系统的功能

PKI系统由不同的功能模块组成,分别具有不同的系统功能,从而实现所提供的服务功能有机地组成PKI认证体系。

(1)证书申请和审批。对于PKI安全系统,证书申请和审批功能是最基本的要求。具备证书的申请和审批功能,提供灵活、方便的申请方式,高效、可靠的审批系统,可以保证由该PKI体系提供安全服务的各方能顺利地得到所需要的证书。

证书的申请和审批功能直接由CA或由面向终端用户的注册审核机构RA来完成。

(2)产生、验证和分发密钥。用户公、私钥对的产生、验证及分发有两种方式:用户自己产生或由代理产生。

第一,用户自己产生密钥对。用户自己选取产生密钥方法,负责私钥的存放;用户还应该向CA提交自己的公钥和身份证明,CA对用户进行身份认证,对密钥的强度和持有者进行审核。在审核通过的情况下,对用户的公钥颁发证书;然后通过面对面、信件或电子方式将证书安全地发放给用户;最后CA负责将证书发布到相应的目录服务器。

在某些情况下,用户自己产生了密钥对后到在线证书审核机构(ORA)去进行证书申请。此时,ORA完成对用户的身份认证。通过后,以数字签名的方式向CA提供用户的公钥及相关信息。CA完成对公钥强度检测后产生证书,CA将签名的证书返给ORA,并由ORA发放给用户或者CA通过电子方式将证书发放给用户。

第二,CA为用户产生密钥对。用户应到CA中心产生并获得密钥对,产生之后,CA中心应自动销毁本地的用户私钥对拷贝;用户取得密钥对后,保存好自己的私钥,将公钥送至CA或ORA,随后按上述方式申请证书。

第三,CA自己产生自己的密钥对。

(3)证书签发和下载。证书签发是PKI系统中CA的核心功能。完成了证书的申请和审批后,将由CA签发该请求的相应证书,其中由CA所生成的证书格式符合X.509V3标准。证书的发放分为离线方式和在线方式两种。

离线方式包括两个步骤:一是证书申请被批准注册后,RA端的应用程序初始化申请者的信息,在目录服务器中添加证书申请人的有关信息;二是RA初始化信息后传给CA,CA将相应的一次性口令和认证码通过可靠途径(电子邮件或保密信封)传递给证书申请者,证书申请者在RA处正确输入口令和认证码后,在现场领取证书。证书可存入软盘或者存放于USBKey中。

在线方式包括三个步骤:一是RA端首先从CA处接收到该申请的一次性口令和认证码,然后由RA将其交给证书申请者;二是证书申请者通过Internet登录证书发放者的网站,通过浏览器安装根CA的证书;三是申请者在证书发放者的网页上,按提示填入从RA处获得的口令和认证码信息,就可以下载自己的证书了。各个RA就证书发放方式的规定有所不同,选择离线方式还是在线方式由RA视不同的应用来决定。

(4)签名和验证。在PKI体系中,对信息和文件的签名以及对数字签名的认证是很普遍的操作。PKI成员对数字签名和认证可以采用多种算法,如RSA、DES等,这些算法可以由硬件、软件或硬软结合的加密模块(硬件)来完成。密钥和证书存放的介质可以是内存、IC卡、USBKey光盘或软盘。

(5)证书的获取。在验证信息的数字签名时,用户必须事先获取信息发送者的公钥证书,以对信息进行解密验证,同时还需要CA对发送者所发的证书进行验证,以确定发送者身份的有效性。证书的获取可以有多种方式:①发送者发送签名信息时,附加发送自己的证书;②单独发送证书信息的通道,可从访问发布证书的目录服务器获得;③从证书的相关实体(RA)处获得。

在PKI体系中,可以采取上述的某种或几种方式获得证书。

在发送数字签名的证书的同时,可以发布证书链。这时,接收者拥有证书链上的每一个证书,从而可以验证发送者的证书。检验过程如下:通过检查发送者证书的发放机构CA,从CA中的目录服务器取得该CA证书,并重复证书链上的CA根证书的验证。

(6)证书和目录查询。因为证书都存在周期问题,所以进行身份验证时要保证当前证书是有效而未超期的;另外,还有可能存在密钥泄露、证书持有者身份和机构代码改变等问题,证书需要更新。因此在通过数字证书进行身份认证时,要保证证书的有效性。为了方便对证书进行有效性的验证,PKI系统提供对证书状态信息的查询,以及对证书撤销列表的查询机制。

(7)证书撤销。证书在使用过程中可能会因为各种原因而被废止,例如,密钥泄密,相关从属信息变更,密钥有效期中止或者因CA本身的安全隐患引起废止等。因此,证书撤销服务也是PKI的一个必需功能。

(8)密钥备份和恢复。密钥的备份和恢复是PKI中的一个重要内容。因为可能有很多原因造成丢失解密数据的密钥,那么被加密的密文将无法解开,会造成数据丢失。为了避免这种情况的发生,PKI提供了密钥备份与解密密钥的恢复机制,即密钥备份与恢复系统。

(9)自动密钥更新。一个证书的有效期是有限的,这样的规定既有理论上的原因,也有实际操作的困难。理论上有密码算法和确定密钥长度被破译的可能;在实际应用中,密钥必须有一定的更换频度才能保证密钥使用的安全。但对PKI用户来说,手工完成密钥更新几乎是不可行的,因为用户自己经常会忽略证书已过期,只有使用失败时才能发觉。因此,需要PKI系统提供密钥的自动更新功能。也就是说,无论用户的证书用于何种目的,在认证时,都会在线自动检查有效期,当失效日期到来之前的某个时间间隔内自动启动更新程序,生成一个新的证书来代替旧证书,新、旧证书的序列号不一样。

(10)密钥历史档案。由于密钥的不断更新,经过一定的时间段,每个用户都会形成多个“旧”证书和至少一个“当前”证书。这一系列的旧证书和相应的私钥就构成了用户密钥和证书的历史档案,简称密钥历史档案。密钥历史档案也是PKI系统的一个必不可少的功能。

例如,某用户几年前加密的数据或其他人用他的公钥为其加密的数据,无法用现在的私钥解密,那么就需要从其密钥历史档案中找到正确的解密密钥来解密数据。与此类似,有时也需要从密钥历史档案中找到合适的证书验证以前的签名。与密钥更新相同,密钥历史档案由PKI自动完成。

(11)交叉认证。交叉认证,简单地说就是把以前无关的CA连接在一起的机制,从而使得在它们各自主体群之间能够进行安全通信。其实质是为了实现大范围内各个独立PKI域的互联互通、相互操作而采用的一种信任模型。

(12)客户端软件。完整的PKI应由所需的服务器和客户端软件构成。涉及的服务器包括CA服务器、证书库服务器、备份和恢复服务器、时间戳服务器。这些功能的实现对于客户来说并不能直接操作,需要有合理的客户端软件帮助客户实现这些系统功能。

客户端软件是一个全功能、可操作PKI的必要组成部分。它采取客户/服务器模型为用户提供方便的相关操作。作为提供公共服务的客户端软件应当独立于各个应用程序,提供统一、标准的对外接口,应用程序通过标准接入点与客户端软件连接。如果没有客户端软件,将无法有效地去体验PKI提供的很多服务。

PKI认证系统,已经为客户提供了方便、灵活的客户端软件。作为一般所需要的客户端软件,应该具备以下功能:

第一,自动查询证书“黑名单”(CRL),实现双向身份认证。

第二,对传输信息自动加、解密,保证信息的私密性。

第三,证书恢复功能,解除客户遗忘口令的后顾之忧。

第四,实现证书生命周期的自动管理。

第五,多种证书存放方式,给客户最大的便利。

第六,支持时间戳功能。

5.信息加密与数字认证的综合应用

数字摘要、数字签名、数字时间戳、数字证书、认证中心以及信息加密是安全电子交易常用的六种手段。各种手段常常结合在一起使用,从而构成安全电子交易的体系。下面列举信息加密、数字签名的综合处理流程,如图3-11所示。

(1)处理的前提条件。由A用户向B用户发送信息;②认证中心CA的公共密钥,A用户和B用户均已掌握。

(2)A用户获取B用户的公共密钥。对应左图中①~④:A用户从认证中心接收到B用户的数字证书,其中包括B用户的公共密钥和认证中心的数字签名;A用户使用Hash函数对数字证书做出摘要,数字证书中的数字签名同样使用的是Hash函数;A用户用认证中心的公共密钥,对数字证书解密得到摘要,对这个摘要与计算出的摘要是否一致进行比较;A用户若认为上述比较的结果是一致的,则可确认数字证书上的B用户的公钥是合法的。

(3)A用户做出数字签名。对应左图中⑤~⑥:A用户用SHA加密方法做出信息文的摘要,此时使用被指定的Hash函数;A用户使用自己的私人密钥对摘要加密,得到的就是A用户的数字签名。

图3-11 信息加密和数字签名的综合处理流程

(4)A用户信息的加密。对应左图中⑦:A用户使用某个任意的通用密钥以DES方式对信息的明文加密,得到密文。

(5)A用户通用密钥的加密。对应左图中⑧:A用户将使用的通用密钥通过B用户的公共密钥以RSA方式加密;A用户把数字签名、密文,以及在⑧加密的通用密钥发送给B用户。

(6)B用户获取A用户的公共密钥。对应右图中①~④:B用户从认证中心接收到A用户的数字证书,其中包括A用户的公共密钥和认证中心的数字签名;B用户使用Hash函数由数字证书做出摘要,数字证书中的数字签名同样使用的是Hash函数;B用户通过认证中心的公共密钥对数字证书解密得到摘要,对这个摘要与计算出的摘要是否一致进行比较;B用户若认为上述比较的结果是一致的则可确认数字凭证上A用户的公钥是合法的。

(7)B用户通用密钥的解密。对应右图中⑤:B用户用自己的私人密钥以RSA方式对加密的通用密钥解密。

(8)B用户信息的解密。对应右图中⑥:B用户用在⑤解密的通用密钥以DES方式对信息的密文解密,得到明文。

(9)确认数字签名。对应右图中⑦~⑨:B用户做出信息的明文的摘要,此处使用指定的Hash函数;B用户通过A用户的公共密钥对数字签名解密,得到摘要;比较⑦和⑧计算出的摘要是不是同样的字符串,如果两者一致,则A用户发送过来的信息是正确的,若不一致,则有两种可能:一是A用户的私人密钥不正确(与公共密钥不配对),二是可能在什么地方信息文件被篡改过。

经过公共密钥加密的通用密钥称为“电子信封”。

第六节 电子商务安全协议

一、安全超文本传输协议(S-HTTP)

安全超文本传输协议用密钥来加密,以保障Web站点上信息的安全。S-HTTP是为HTTP扩充安全特性、增加报文的安全而产生的。该协议向Internet的应用提供完整性、可鉴别性、不可抵赖性及机密性等安全措施。在打开支持S-HTTP的网站时,可将URL中的“http://”改为“https://”来启动S-HTTP协议,如图3-12所示。

图3-12 支持S-HTTP的网站将URL中的“http://”改为“https://”

二、安全套接层协议(SSL)

如果说S-HTTP保证了站点数据的安全,那么安全套接层协议(Secure Sockets Layer,SSL)则保证了Web站点之间通信信道的安全,面向网络协议栈的低层通道进行安全监控。该协议由Netscape公司于1994年设计开发,主要用于提高应用程序之间的数据安全系数。SSL协议可以被概括为:它是一个保证任何安装了安全套接层协议的客户和服务器间事务安全的协议,该协议向基于TCP/IP的客户/服务器应用程序提供了客户端和服务器的鉴别、数据完整性及信息机密性等安全措施。

在电子商务交易过程中,按照SSL协议,客户购买的信息首先发往商家,商家再将信息转发给银行,银行验证客户信息的合法性后,通知商家付款成功,商家再通知客户购买成功,并将商品寄送给客户。SSL提供以下三种基本的安全服务:

(1)加密处理。在客户机与服务器进行数据交换之前,交换SSL初始握手信息。在SSL握手信息中采用各种加密技术对其加密,以保证其机密性和数据的完整性,并且用数字凭证进行鉴别,以防止非法用户使用一些工具进行窃听。

(2)保证信息的完整性。采用Hash函数和机密共享的方法来提供信息完整性的服务,来建立客户机与服务器之间的安全通道,使所有经过安全套接层协议处理的业务能全部准确无误地到达目的地。

(3)提供较完善的认证服务。客户机和服务器都有各自的识别号,这些识别号由公开密钥进行编号。为了验证用户是否合法,安全套接层协议要求在握手交换时进行数据认证,以此来确保用户的合法性。

SSL协议的通信过程包含以下六个步骤:

第一,客户机向服务器打招呼,并将本机可支持的安全模块告诉服务器。

第二,服务器回应客户机,向客户机发送本机的服务器数字证书、公钥,如果服务器需要双方认证,还要向对方提出认证请求。

第三,客户机用服务器公钥加密向服务器发送自己的公钥,根据服务器是否需要认证客户身份而发送客户端数字证书。

第四,双方根据前面联络的情况,确定用于本次会话的专用密钥。

第五,双方使用专用密钥进行会话。

第六,会话结束时双方交换结束信息。

在电子商务交易中,客户、商家和银行之间都按照SSL协议进行通信。客户信息先发送到商家,商家再将信息发送到银行,银行验证客户信息(如信用卡信息)的合法性后,通知商家付款成功,商家再通知客户交易成功,并将商品配送到客户。

如果要在Web服务器上安装SSL协议,可采用如下步骤:

第一,在服务器的IIS上创建密钥对,由密钥对生成证书申请表文件。

第二,将申请表文件发到CA申请证书。

第三,CA确认服务器对应网站的IP地址、域名和所属单位的身份,颁发服务器证书。

第四,在服务器端安装设置CA颁发的证书。

凡是支持SSL协议的网页,都会以“http://”作为URL的开头。客户在与服务器进行SSL会话时,如果使用浏览器,可以在状态栏中看到一只锁形安全标志,用鼠标双击该标志,就会弹出服务器证书信息。

SSL协议是建立在商家对客户的承诺之上的,采用SSL协议的网上商店通常都在网页上保证要保护消费者的信息安全,客户的信息也是先由商家解密,再发到银行,这样用户的信用卡信息就会完全暴露给商家。在SSL交易中,有利的一方是商家而不是客户,客户仍有安全性的顾虑。为了解决这一问题,可以采用下面介绍的SET协议。

三、安全电子交易协议(SET)

1.SET协议概述

为克服SSL协议中只有商家对客户认证而没有客户对商家认证的缺点,以及满足电子交易不断增加的安全要求,Visa和Master Card公司于1996年开发了安全电子交易协议,并得到了Microsoft、IBM和Netscape等公司的支持。SET在保留对客户信用卡认证的前提下,又增加了对商家身份的认证;用以保证支付信息的机密、支付过程的完整、商户和持有人的合法身份以及互可操作性;它将建立一种能在Internet上安全使用银行卡进行购物的标准。安全电子交易规范是一种能广泛应用于Internet的安全电子付款协议,能将普遍应用的信用卡从商店扩展到消费者家中、扩展到消费者PC中。

2.SET的目标

(1)信息在Internet上安全传输,保证网上传输的数据不被黑客窃取。

(2)订单信息和个人账号信息的隔离。在将包括持卡人账号信息的订单送到商家时,商家只能看到订货信息,而看不到持卡人的账户信息。

(3)持卡人和商家通过CA颁发数字证书相互认证,以确定通信双方的身份。

(4)不同的厂家开发的SET软件要求具有兼容性和互操作性,并且可以运行在不同的硬件和操作系统平台上。

3.SET协议中的角色

(1)持卡人。在电子商务环境中,消费者通过计算机与商家交流,持卡人通过由发卡机构颁发的付款卡(如信用卡、借记卡等)进行结算。在持卡人和商家的会话中,SET协议可以保证持卡人的个人账号信息不被泄露。

(2)发卡机构。它是一个金融机构,为每一个建立账户的顾客颁发付款卡,保证对每一笔认证交易的付款。

(3)商家。提供商品或服务时,使用SET协议可以保证持卡人个人信息的安全,接受卡支付的商家必须和银行有关系。

(4)银行。在线交易的商家在银行开立账户,并且处理支付的认证和支付。发卡机构和银行可为同一机构。

(5)支付网关。支付网关由银行操作,将Internet上的传输数据转换为金融机构的内部数据,或由指派的第三方处理商家的支付信息和顾客的支付指令。

4.SET协议的工作流程

SET协议的工作流程如图3-13所示,具体流程为:

图3-13 SET协议的工作流程

(1)持卡人使用浏览器在商家的Web主页上查看在线商品目录,浏览商品。

(2)持卡人选择需要购买的商品。

(3)持卡人填写订单,包括项目列表、价格、总价、运费、搬运费和税费。订单可以采用电子化方式从商家传送至持卡人,或由持卡人的电子购物软件建立。有些在线商场可以让持卡人与商家协商物品的价格。

(4)持卡人选择付款方式,此时SET协议开始介入。

(5)持卡人发送给商家一个完整的订单及要求付款的指令。在SET协议中,订单和付款指令由持卡人进行数字签名,同时使用双重签名技术,保证商家看不到持卡人的账号信息。

(6)商家接受订单后,向持卡人的金融机构请示支付认可。通过网关到银行,再到发卡机构确认,然后批准交易,返回确认信息给商家。

(7)商家发送订单确认信息给顾客。顾客端软件可记录交易日志,以备将来查询。

(8)商家给顾客转运货物,或完成订购的服务。到此为止一个购物过程已经结束。商家可以立即请求银行将钱从购物者的账户转移到商家的账户上,也可以等到某一时间,请求成批划账处理。

(9)商家从持卡人的金融机构请示支付。

在这里,前三步与SET协议无关,从第四步起SET协议开始起作用,一直到第九步,持卡人、商家、网关都通过CA认证机构来验证通信主体的身份,以确保通信的对方不是冒名顶替。

本章重要术语

信息加密

RSA

自主访问控制(DAC)

强制访问控制(MAC)

个人身份识别码(PIN)

Firewall

应用代理(Application Proxy)

口令(Password)

语句审计(Statement Auditing)

权限审计(Privilege Auditing)

对象审计(Object Auditing)

点到点协议(PPP)

密码验证协议(PAP)

挑战—握手认证协议(CHAP)

PPP扩展认证协议(EAP)

数字签名(Digital Signature)

数字摘要(Digital Digest)

数字时间戳(Digital Time-stamp)

数字证书(Digital ID)

认证中心CA

PKI

支付网关(Payment Gateway)

安全超文本传输协议(S-HTTP)

安全套接层(SSL)

SET

习题

1.电子商务主要的安全需求是什么?

2.电子商务中的安全隐患有哪些?

3.试述电子商务安全技术的构成,并简述各种安全技术的作用。

4.简述SET模型下的支付流程。

5.简要介绍公钥加密体系的工作原理。

6.简述数字签名、数字摘要和数字认证技术。

7.什么是数字证书?

8.简述SSL协议和SET协议。

9.什么是PKI安全体系?其优点是什么?

思考与实践

1.上网访问赛迪(www.ccidnet.com)、Symantec等网站,搜索关于网络安全信息,总结过去一个月内关于个人计算机软件的主要网络安全漏洞。

2.找出三家认证中心,并比较每家企业提供的数字证书的特点。

3.安装并申请数字签名。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈