提起电子商务,人们首先担心的是电子商务的安全问题。为了保证网络上传递信息的安全,通常采用加密的方法。但对电子商务来说,这还是不够的,如何确定交易双方的身份,如何获得通讯对方的公钥并且相信此公钥是由某个身份确定的人拥有的,解决方法就是找一个大家共同信任的第三方,即认证中心(Certificate Authority,CA)颁发电子证书。任何一个信任CA的通讯一方,都可以通过验证对方电子证书上的CA数字签名来建立起和对方的信任,并且获得对方的公钥以备使用。要做一个CA认证中心并不是一个简单的工作,我现在参与一个电子商务实验室的建设工作,在实验室内部建立一个CA认证中心从而更完整的体现整个交易流程。想到自己在此过程中付出的艰辛,觉得有必要和大家共享一下我们的实践经验。文章分为三大部分,第一部分是电子商务的安全规范;第二部分是Win2000Server中的安全机制;第三部分说明在Win2000Server中建立CA认证中心的具体方法和步骤。
第一部分:电子商务安全规范
电子商务安全规范可分为安全、认证两方面的规范。
1、安全规范
当前电子商务的安全规范包括加密算法、报文摘要算法、安全通信协议等方面的规范。
(1)加密算法
基本加密算法有两种:对称密钥加密、非对称密钥加密,用于保证电子商务中数据的保密性、完整性、真实性和非抵赖服务。
①对称密钥加密
对称密钥加密也叫秘密/专用密钥加密(Secret Key Encryption),即发送和接收数据的双方必须使用相同的/对称的密钥对明文进行加密和解密运算。最著名的对称密钥加密标准是数据加密标准(DataEncryptionStandard,简称DES)。目前已有一些比DES算法更安全的对称密钥加密算法,如:IDEA算法,RC2、RC4算法,Skipjack算法等。
②非对称密钥加密
非对称密钥加密也叫公开密钥加密(Public Key Encryption),由美国斯坦福大学赫尔曼教授于1977年提出。它主要指每个人都有一对唯一对应的密钥:公开密钥和私有密钥,公钥对外公开,私钥由个人秘密保存;用其中一把密钥来加密,就只能用另一把密钥来解密。商户可以公开其公钥,而保留其私钥;客户可以用商家的公钥对发送的信息进行加密,安全地传送到商户,然后由商户用自己的私钥进行解密。公开密钥加密技术解决了密钥的发布和管理问题,是目前商业密码的核心。使用公开密钥技术,进行数据通信的双方可以安全地确认对方身份和公开密钥,提供通信的可鉴别性。由此,公开密钥体制的建设是开展电子商务的前提。非对称加密算法主要有RSA、DSA、DiffieHellman、PKCS、PGP等。
(2)报文摘要算法
报文摘要算法(Message Digest Algorithms)即采用单向HASH算法将需要加密的明文进行摘要,而产生的具有固定长度的单向散列(HASH)值。其中,散列函数(HashFunctions)是将一个不同长度的报文转换成一个数字串(即报文摘要)的公式,该函数不需要密钥,公式决定了报文摘要的长度。报文摘要和非对称加密一起,提供数字签名的方法。
报文摘要算法主要有安全散列标准、MD2系列标准。
(3)加密通信协议(SSL)
安全套接层协议(Secure Socket Layer)是一种保护WEB通讯的工业标准,主要目的是提供INTERNET上的安全通信服务,是基于强公钥加密技术以及RSA的专用密钥序列密码,能够对信用卡和个人信息、电子商务提供较强的加密保护。SSL在建立连接过程上采用公开密钥,在会话过程中使用专有密钥。SSL的缺陷是只能保证传输过程的安全,无法知道在传输过程中是否受到窃听,黑客可以此破译SSL的加密数据,破坏和盗窃WEB信息。新的SSL协议被命名为TLS(Transport Layer Security),安全可靠性可有所提高,但仍不能消除原有技术上的基本缺陷。
2、认证规范
(1)数字签名
数字签名(Digital Signature)是公开密钥加密技术的一种应用,是指用发送方的私有密钥加密报文摘要,然后将其与原始的信息附加在一起,合称为数字签名。其使用方式是:报文的发送方从报文文本中生成一个128位或160位的单向散列值(或报文摘要),并用自己的私有密钥对这个散列值进行加密,形成发送方的数字签名;然后,将这个数字签名作为报文的附件和报文一起发送给报文的接收方;报文的接收方首先从接收到的原始报文中计算出128位的散列值(或报文摘要),接着再用发送方的公开密钥来对报文附加的数字签名进行解密;如果这两个散列值相同,那么接收方就能确认该数字签名是发送方的。通过数字签名能够实现对原始报文的鉴别与验证,保证报文的完整性、权威性和发送者对所发报文的不可抵赖性。数字签名机制提供了一种鉴别方法,普遍用于银行、电子贸易等,以解决伪造、抵赖、冒充、篡改等问题。
(2)数字证书
“数字证书”是一个经证书认证中心(CA)数字签名的、包含证书申请者(公开密钥拥有者)个人信息及其公开密钥的文件。基于公开密钥体制(PKI)的数字证书是电子商务安全体系的核心,用途是利用公共密钥加密系统来保护与验证公众的密钥。CA对申请者所提供的信息进行验证,然后通过向电子商务各参与方签发数字证书,来确认各方的身份,保证网上支付的安全性。
证书的格式遵循X.509标准。X.509证书包括有关证书拥有的个人或实体的信息及证书颁发机构的可选信息。实体信息包括实体名称、公用密钥、公用密钥运算法和可选的唯一主体id。目前,X.509标准已在编排公共密钥格式方面被广泛接受,已用于许多网络安全应用程序,其中包括IP安全(Ipsec)、安全套接层(SSL)、安全电子交易(SET)、安全多媒体INTERNET邮件扩展(S/MIME)等。
(3)密钥管理机制(PKI)
公钥基础结构(Public Key Infrastructure,简称PKI)采用证书管理公钥,即结合X.509标准中的鉴别框架(AuthenticationFramework)来实现密钥管理,通过CA把用户的公钥及其它标识信息捆绑在一起,在INTERNET上验证用户的身份,保证网上数据的保密性和完整性。
PKIX(PublicKeyInfrastructureonX.509,简称PKIX)系列标准由IETFPKIX工作小组制定,定义了X.509证书在INTERNET上的使用,证书的生成、发布和获取,各种产生和分发密钥的机制,以及怎样实现这些标准的轮廓结构等。
第二部分:Windows2000的安全机制
1、Windows2000中的验证协议
Windows2000中有两种验证协议,即Kerberos和公用密钥体制(Public Key Infrastructure,PKI)。Kerberos是对称密钥,而PKI是非对称密钥。用的较多的是公用密钥体制。
公用密钥基本体系是一个数字认证、证书授权和其他注册授权系统。使用公用密钥密码检验及检证电子商务中所涉及的每个机构的有效性。公用密钥基本体系的标准仍处于发展阶段,尽管它们作为电子商务的一个必要组成部分已得到广泛使用。
windows2000公钥基础结构的证书服务证书基本上是一个由权威发布的电子声明,其作用在于担保证书持有者的身份。证书将公用密码与持有相应私有密钥的个人、机器或服务的身份绑定在一起。证书由各种公用密钥安全服务和应用程序提供,为非安全网(如internet)提供数据验证、数据完整性和安全通讯。
2、Windows2000Server的证书服务器
Windows2000Server中有一个部件是证书服务器(CertificateServer),通过认证服务器,企业可以为用户颁发各种电子证书,比如用于网上购物的安全通道协议(SSL)使用的证书,用于加密本地文件的证书等等。认证服务器还管理证书的失效,发布失效证书列表等。每个用户或计算机都有自己的一个证书管理器,其中既放置着自己从CA申请获得的证书,也有自己所信任的CA的根证书。
windows2000基于证书的过程所使用的标准证书格式是x.509v3,保证了与其他系统的互操作性。目前常用的是SSL(安全通道协议)的方式,即设置IIS就某些特定的文件或文件目录需要访问者提供客户端证书;除非拥有电子证书及相应的私钥,一个访问者的浏览器无法获得这些文件和文件目录。SSL的方式体现在浏览器的访问栏上,应该是https而不是普通的http。
windows2000server证书服务是windows2000中的组件,证书服务用于创建和管理证书颁发机构(CA)。证书颁发机构负责建立和担保证书持有者的身份。证书颁发机构还会在证书失效时,将其撤消并发布证书撤消列表,供证书检验机构使用。最简单的公用密钥基本体系只有一个证书颁发机构。事实上,大多数配置公用密钥基本体系的组织使用多个证书颁发机构,并将其有组织地形成证书分层结构。
windows2000的证书服务按证书颁发机构类型分为:①企业根CA,是企业中最受信任的证书颁发机构,应该在网络上的其它证书颁发机构之前安装,需要activedirectory.②企业从属CA,是标准证书颁发机构可以给企业中的任何用户或机器颁发证书,必须从企业中的另一个证书颁发机构获取证书颁发机构证书,需要activedirectory.③独立根CA,是证书颁发机构体系中最受信任的证书颁发机构,不需要activedirectory.④独立从属CA,是标准的证书颁发机构可以给任何用户或机器颁发证书;必须从另一个证书颁发机构获取证书颁发机构证书,不需要activedirectory。
智能卡支持
在windows2000中,微软为用户还提供了一套智能卡的结构。智能卡因其高安全性和轻便的可移动性,势必将发展成为类似鼠标/键盘一般的计算机的标准外设。
当用户用internetexplorer向一个认证中心申请电子证书时,就会有一对公钥和私钥自动产生出来;私钥可以存储在智能卡中,公钥和其他身份信息(比如姓名、电子邮件地址等)发给认证中心。如果认证中心批准该申请,那么包含公钥的电子证书就会被返回来,存储在智能卡中。
智能卡存储私钥和电子证书的做法,给最终用户提供了对自己安全信息的最大的控制,可以方便地从一台机器携带到另一台机器使用;可以在任何一个地点使用。一般来说,智能卡还会用一个个人密码(pin)保护起来,在要求高安全性的场合,pin可以是一些生物信息,比如指纹等。
第三部分windows2000下建立CA中心的具体操作过程
证书服务的一个单独组件是证书颁发机构的web注册页。这些网页是在安装证书颁发机构时默认安装的,它允许证书请求者使用web浏览器提出证书请求。此外,证书颁发机构网页可以安装在未安装证书颁发机构的windows2000服务器上,在这种情况下,网页用于向不希望直接访问证书颁发机构的用户服务。如果选择为组织创建定制网页访问CA,则windows2000提供的网页可作为示例。现在我们以安装独立根证书为例,安装其它类型的相类似,只是选择其它证书的类型即可。要注意的是企业根CA和企业从属CA需要activedirectory。
1、安装独立的根证书颁发机构
①以管理员身份登录到系统。或者,如果您装有ActiveDirectory,则以域管理员身份登录到系统。
②单击“开始”,指向“设置”,然后单击“控制面板”。双击“添加/删除程序”并单击“添加/删除Windows组件”。
③在“Windows组件向导”中,选中“证书服务”复选框。屏幕上将出现一个对话框,通知您计算机在安装证书服务之后不能更名且不能加入域或从域中删除。单击“是”,然后单击“下一步”。
④单击“独立根CA”。
⑤(可选)选中“高级选项”的复选框以指定下面的选项。完成后请单击“下一步”。加密服务提供程序(CSP),默认是MicrosoftBaseCryptographicProvider。证书服务支持第三方CSP,但您必须参考该CSP供应商的文档,以了解关于证书服务使用其CSP的信息。现有的密钥,如果选中此选项,则可以使用现有的公钥和私钥对而不用产生新的密钥对。如果您要重新定位或重新存储以前安装的证书颁发机构(CA),则该选项很有用。
⑥填入证书颁发机构的名称和其他必要信息。在CA设置完成后这些信息都不能改变。
⑦在“有效持续时间”中,指定根CA的有效持续时间。有关设置这个值时应考虑的事项,请参阅下面的注释。单击“下一步”。
⑧指定证书数据库、证书数据库日志和共享文件夹的存储位置。单击“下一步”。⑨如果正在运行WWW发布服务,则您会遇到一条要求在安装之前停止此项服务的请求信息。单击“确定”。⑩如果出现提示,则键入证书服务安装文件的路径。
2、安装证书颁发机构的Web登记支持
①以管理员身份登录到系统。
②单击“开始”,指向“设置”,然后单击“控制面板”。双击“添加/删除程序”并单击“添加/删除Windows组件”。
③在“Windows组件向导”中,选中“证书服务”复选框。屏幕上将出现一个对话框,通知您计算机在安装证书服务之后不能更名且不能加入域或从域中删除。单击“通讯”,然后单击“详细信息”。
④清除“证书服务CA”的复选框,确保选中“证书服务Web登记支持”复选框,再单击“确定”。单击“下一步”。
⑤在“计算机名称”中,键入安装证书颁发机构(CA)的计算机名称,此CA将使用Web登记页。此CA的名称将出现在列表中。单击“下一步”。
⑥如果正在运行WWW发布服务,系统将请求您在进行安装之前停止此项服务。单击“确定”。
⑦如果出现提示,则键入证书服务安装文件的路径。注意安装CAWeb登记页之前必须在服务器上安装Internet信息服务(IIS)。在已安装IIS的服务器上安装证书服务时会默认安装CAWeb登记页。只有在与安装CA的服务器不同的服务器上安装CAWeb登记页时,才需要执行此过程。如果您在证书服务安装期间更改了默认的选项且没有在CA服务器上安装CAWeb登记页,则您可以在CA的命令提示行运行“certutilvroot”命令以安装Web登记页。
3.设置安全性以访问证书颁发机构Web页
①以管理员身份登录到系统。②单击“开始”,指向“程序”,指向“管理工具”,然后单击“Internet服务管理器”。③在控制台树中,用右键单击“CertSrv”,再单击“属性”。④在“目录安全性”选项卡的“匿名访问和身份验证控制”下,单击“编辑”。⑤清除除“集成的Windows身份验证”之外的其他所有复选框。
4.发布证书颁发机构Web页
①以管理员身份登录到系统。②单击“开始”,指向“程序”,指向“管理工具”,然后单击“Internet服务管理器”。③设置初始页面为default.asp,设置IP为您的本机IP。④在web浏览器中填入http://您的IP/CertSrv,就可以看到发布的CA认证中心。