议从加密到数字签名 电子交易的解决方案

2005-05-10 09:59出处:金卡资讯网作者:刘勋我要评论

[导读]电子签名技术受到广泛关注,本文向广大网管朋友作一个浅显的介绍。

  这样我们就可以综合运用公匙算法和Hash算法,对上述加密通信过程重新设计一个完整的解决方案:

  1、Alice首先以对称算法生成密钥K,并用K将明文D生成密文DC;2、Alice用Bob的公匙将对称密钥K加密为KB,将DC和KB封装;3、将封装后的DC和KB 用Hash算出Hash值H,用Alice的私匙加密为HA;4、将DC、KB和HA封装为一个数据块发送给Bob。

  这时的Eve有公匙算法,有Hash算法,有Alice与Bob的公匙,惟独没有二人的私匙,所以在截获数据块后,可以分析出DC、KB和HA三个部份,其中DC是密文,没有密钥K无法读取;K又被Bob的公匙加密成KB,没有Bob的私匙同样无法读取;虽然HA 可以由Alice的公匙还原为H,但从H不可能反推出预映射值,所以对Eve毫无意义。

  Bob收信后,只需简单的对DC和KB再次用Hash算法算出Hash值HB,并将它与HA比较,相同该数据块真,不同则该数据块假。如果为真,则Bob用自己的私匙解密KB, 得到对称密钥K,再用K解密DC,得到D。

  可见,只要Eve对D、KB、H和HA中任意一项有丝毫改动,那么Bob收信后都会认定该数据块无效,进而确认该数据块是否真的是Alice发来——就算Eve伪造了新的数据块DE、KE和HE,问题是他没有Alice的私匙,也就不可对HE加密,而他如果复制H值,又会因为DE、KE用Hash计算后值与H肯定不同而失败——这一番巧妙周旋,彻底斩断了Eve的黑手!

  以上在对Bob实现“身份验证”的同时对Eve实现“不可篡改”!

  而H之所以用Alice的私匙加密为HA的深意在于——由于公匙加密体系保证了只有Alice自己才有私匙,所以简单反推一下,我们不难看出一旦Bob的验证通过,Alice就已经绝对“不可否认”这整个数据块都是他自己的大作了。

  所以整个方案的核心在第3步:用Hash算出H,并用自己的私匙将其加密为HA,这就是本文的中心:“数字签名”!

  至此,公匙由于被用来加密密钥而不是报文,加密速度和性能大大提高,于是“笨重邮箱”变成“轻巧信封”,而内在的“加密”功能一点也没有减少——并同时实现了“身份验证”、“不可否认” 和“不被篡改”。

  小结一下:在“公匙+Hash”的组合中,私匙用来进行解密和签名,而公匙用来加密和验证签名;加密不可逆,只有私匙才能解密。由于私匙仅为本人所有,这样就产生别人无法生成的文件,形成数字签名;数字签名能保证签名者不可否认;并保证数据自签发后到收到为止未作任何修改。

  现在可以喝庆功酒了吗?不!细心的朋友还能发现“最后一个”含糊不清的地方:在第2步,Alice怎样验证了Bob的公匙确实是“原配”而不是Eve篡改过的?

  PKI/CA架构——数字签名的全面解决方案

  在现实生活中,当您与公司签订劳动合同时,合同中每个被修改的地方和落款都要双方签字盖章,这就是解决“不可否认”问题。而与Alice验证Bob的公匙相类似,您为了验证公司的合法性,有必要让公司出示营业执照,这是解决“身份验证”问题。显然您并非是相信那张纸,相信的只是纸上的公章,或者说,是有资格颁发这张纸的政府机关。

  自20世纪80年代以来,在现代电子商务日益兴起的背景下,怎样认证公匙成了一个迫切的问题,人们越来越有一种强烈的需求,希望像现实生活中那样,有一个大家都普遍信任、足够权威的组织或机构,来担当类似政府机关的角色,专门负责发放和管理证书,在这种形势下,一种全新的安全机制——公共密钥基础结构(Public Key Infrastructure,PKI)应运而生,它能为所有网络服务提供采用加密和数字签名等密码服务所必需的密钥和证书管理,从而解决电子交易中的四大根本问题。利用PKI可以方便地建立和维护一个可信的网络计算环境,并且不需要用户干预,完全后台进行,从而使得人们在这个无法直接相互面对的环境里,能够确认彼此的身份和所交换的信息。

  PKI体系包括证书认证中心(Certificate Authority,CA)、数字证书库、公匙备份库、恢复系统、证书作废系统、应用接口(API)等五大系统,其中CA是PKI安全体系的核心,因此这一体系又被称作PKI/CA架构。关于PKI的具体细节限于篇幅,不再赘述。

  CA是负责产生、分配并管理数字证书的可信赖的第三方权威机构。通常采用多层次的分级结构,上级CA负责签发和管理下级认证中心的证书,最下一级的认证中心直接面向最终用户。所有人都认可由它签字的公匙,这样大家都保留一份CA的公匙就可以了——得到CA的公匙很简单,因为它广泛提供认证服务;而假冒CA的公匙很困难,因为它的公匙人人都有。由CA所签发的数字证书中包括了证书持有人的公匙。

  事实证明,作为专门负责发放和管理证书的权威机构,CA是电子商务和电子政务发展的必然结果,也正是因为如此,草案中才专门针对认证机构的权利和义务进行了规定。

  Bob有两种方式获得由CA签名的证书。

  第一种的过程是:1、Bob离线时用公匙算法产生自己的公匙、私匙;2、在线将公匙及部分个人身份信息发给CA;3、CA将执行一些必要的步骤,以确信请求确实由Bob发出;4、CA颁发给Bob证书,该证书核心包含两大部份:Bob的个人信息和他的公匙(对应上面的DC和KB)为第一部份;CA将第一部份求出Hash值后再用CA的私匙对该Hash值加密(对应于上面的HA),作为第二部份;5、最后将两个部份封装为一个数据块。我们已经知道其实第二部份就是CA的数字签名,相当于CA在证书盖的公章,而整个数据块就是Bob的证书。这种情况一般是在公开的环境中。

  第二种方式是:Bob还可以直接向CA申请证书,通过提交相应信息,由CA产生公私匙并签名后直接发放证书给Bob——不必担心私匙的问题,因为这种情况一般适用于企业内部,员工和企业的互信是这种方法的基础,并且这种证书也仅适用于企业内部,对外交易是无效的。

  Bob就可以用这张证书来证明自己的身份了。

  Alice的验证方法很简单:1、如用CA的公匙能正常解密证书,证明证书本身是合法的。2、Alice产生一个随机数,要求Bob用自己的私匙加密,由于Bob 证书中有他的公匙,Alice就可以用Bob的证书将该随机数解密,比较这两个随机数,相同则证书确属Bob所有,反之则假。

  这才真正解决了身份验证的问题——验证是双向的和全方位的!

  不难看出,建立以PKI/CA为基础的安全解决方案,无论是对企业纯管理的内部业务,还是对要产生电子交易行为的网上炒股、购物、远程教育、网上银行等电子商务、电子政务,都是一种安全可靠的选择。

  数字签名——电子交易的全面解决方案

  综上所述,证书是一个经CA数字签名的包含公匙拥有者信息以及公匙的文件。事实上所有证书格式都是根据国际电信联盟制定的X.509规范制作的。一张标准的证书包括:版本号;惟一序列号;签名算法名称;CA名及其签名;有效期;证书持有者姓名;证书持有者公匙。

  以上我们通过对加密通信的分析,知道数字签名能既验证,又签名,其实它还只签名,不验证,作为公开声明使用。众所周知的是微软在Windows 2000以上版本推出的,针对视窗系统支持的外设公布数字签名的举措;另外,大家还能通过“右击IE图标→属性→内容→证书”来看看证书到底是什么样子,您会发现,您居然有那么多的证书!双击其中一个,在“详细信息”选项卡中,可以看到公共密钥字符串。

  很多应用程序都配有加密狗,以前往往是打印串口盒的形式,而现在多采用USB的接口,这种应用是让数字证书只验证而不签名,那里面保存了程序的某个Hash值,程序启动会调用它,与程序内部的计算结果相比较,完全相同才能进入系统;而我们开通网上银行或者网上炒股的时候的时候,客户端必然会生成私匙,并提示让您妥善保管,当我们以某个用户名上网交易的时候,系统会针对这一私匙进行验证,通过后才可能进行划转资金等操作,一旦有重装系统或用户名变动等操作,私匙立即失效,从而确保用户安全。

  现在应该没人怀疑“CA+证书”这种身份验证方式了,但有人依然不屈不挠:最顶级CA的公匙又由谁来认证?

  说来有趣,按照目前技术上的机制:最顶级CA的证书是自签名的,说白了,就是自己封自己为大王,并且100年有效!当然理论上的前提是一定要得到大家的认可。

上一页12

本文导航>>

    加密 交易 解决方案
    [责任编辑:刘勋]