电子签名特别策划

特别策划

电子签名大揭秘

从2005年4月1日起,《电子签名法》正式开始在我国施行,这意味着可靠的电子签名与手写签名或加盖印章具有同等的法律效力。从此消费者可以使用手写签名、公章的电子版、秘密代号、密码、指纹、声音、视网膜结构等作为凭证可以安全地在网上进行消费。而CA行业、电子政务、电子商务等也将是电子签名法实施后的主要应用领域。今天我们将对数字签名的原理、技术以及用什么软件来实现来一个全程揭秘。

什么是电子签名

电子签名也称“数字签名”,是指用符号及代码组成电子密码进行签名来代替手写签名或印章,它采用规范化的程序和科学化的方法,用于鉴定签名人的身份以及对一项数据电文内容信息的认可。

联合国国际贸易法委员会在《电子商务示范法》中对电子签名是这样定义的:指在数据电文中以电子形式所含、所附或在逻辑上与数据电文有联系的数据,它可用于鉴别与数据电文相关的签名人和表明签名人认可数据电文所含信息。

数字签名技术原理

数字签名是采用发送方对信息施以数学变换,所得的信息与原信息惟一对应的原理;在接收方进行逆变换,得到原始信息。只要数学变换方法优良,变换后的信息在传输中就具有很强的安全性,很难被破译、窜改。这一个过程称为加密,对应的反变换过程称为解密。

现在有两类不同的加密技术,一类是对称加密,双方具有共享的密钥,只有在双方都知道密钥的情况下才能使用,通常应用于孤立的环境之中,比如在使用自动取款机(ATM)时,用户需要输入用户识别号码(PIN),银行确认这个号码后,双方在获得密码的基础上进行交易,如果用户数目过多,超过了可以管理的范围时,这种机制并不可靠。

另一类是非对称加密,也称为公开密钥加密,密钥是由公开密钥和私有密钥组成的密钥对,用私有密钥进行加密,利用公开密钥可以进行解密,但是由于公开密钥无法推算出私有密钥,所以公开的密钥并不会损害私有密钥的安全,公开密钥无须保密,可以公开传播,而私有密钥必须保密,丢失时需要报告鉴定中心及数据库。

数字签名的算法

数字签名的算法很多, 应用最为广泛的三种是: Hash签名、DSS签名和RSA签名。

1. Hash签名

Hash签名不属于强计算密集型算法,应用较广泛。它可以降低服务器资源的消耗,减轻中央服务器的负荷。Hash的主要局限是接收方必须持有用户密钥的副本以检验签名, 因为双方都知道生成签名的密钥,较容易攻破,存在伪造签名的可能。

2. DSS和RSA签名

DSS 和RSA采用了公钥算法,不存在Hash的局限性。RSA是最流行的一种加密标准,许多产品的内核中都有RSA的软件和类库。与DSS不同,RSA既可以用来加密数据,也可以用于身份认证。和Hash签名相比,在公钥系统中,由于生成签名的密钥只存储于用户的计算机中,安全系数大一些。

电子签名的几种技术手段

根据识别方法的不同,电子签名技术可以分为:基于PIK的公钥密码技术的数字签名;以生物特征统计学为基础的识别标志、手印、声音印记或视网膜扫描的识别;一个让收件人能够识别发件人身份的密码代号、密码或者个人识别码PIN;基于量子力学的计算机等四种形式。

1.手写签名或图章的模式识别

将手写签名或印章作为图像,用光扫描转换后在数据库中加以存储,当对某人进行验证时,用光扫描输入他的手写签名,并将原数据库对应的图像调出,用模式识别的数据计算方法进行对比,以确认该签名或印章的真伪,不过由于这种技术需要大容量的数据库存储,而且每次手写签名和盖章都存在一定的差异性,因此并不适合在互联网上进行传输。

14-g4-12.jpg

2.生物识别技术

利用人体特征进行身份认证的一种技术,所谓生物特征,是一个人与他人不同的唯一特征,是可以测量、自动识别和验证的,例如指纹、视网膜、声音,我们经常可以在科幻电影中看到这样的场景。

14-g4-4.jpg

3.密码、密码代号或个人识别码

这是传统的对称密钥加/解密的身份识别和签名方法,甲方需要乙方签名一份电子文件,甲方可产生一个随机码传送给乙方,乙方用事先双方约定好的对称密钥加密该随机码和电子文件回放给甲方,甲方用同样的对称密钥解密后得到电文并核对随机码,假如随机码核对正确,甲方即可认为该电文来自乙方。这种技术适用于远程网络传输,但对称密钥管理困难,不适合大规模人群认证。

14-g4-6.jpg

4.基于量子力学的计算机

量子计算机是利用量子力学原理直接进行计算的计算机,使用一种新的量子密码的编码方法,即利用光子的相位特性编码。由于量子力学的随机性非常特殊,破译难度非常大,可以说这是世界上最安全的密码认证和签名方法,不过这种计算机还只是停留在理论研究阶段,离实际应用还很遥远。

5.基于PKI的电子签名

基于PKI(PublicKeyInfrastructino,公钥基础设施)的电子签名也被称为“数字签名”,可以提供多种网上安全服务,例如认证、数据保密性、不可否认性,这是目前国内外普通使用、技术成熟、可实际应用的电子签名技术。

PKI数字签名的实现机制

PKI的核心执行机构是电子认证服务提供商,即认证机构CA(Certificate Authority),PKI签名的核心元素是由CA签发的数字证书,它所提供的PKI服务就是认证、数据完整性、数据保密性、不可否认性。

对一个电子文件进行数字签名并在网上传输,其过程大致包括三个步骤:首先要在网上进行身份认证,然后进行签名,最后是对签名的认证。

第1步:认证

认证的前提是甲乙双方都具有第三方CA所签发的证书,这是为了确保电子交易的可靠性,往往需要由第三方对电子签名人的身份进行认证,向交易对方提供信誉保证。认证分单向认证、双向认证两种:

单向认证:甲乙双方在网上通信时,甲只需要认证乙的身份即可,当然此时甲需要获取乙的证书,一种是在通信时乙直接将证书传送给甲,一种是甲向CA的目录服务器查询索取。

双向认证:甲乙双方在网上通信时,甲不但要认证乙的身份,乙同时也要认证甲的身份,其认证过程与单向认证过程相同。

第2步:数字签名

首先是生成被签名的数据电文(即电子文件),然后对电子文件用哈希算法做数字摘要,再对数字摘要用签名私钥做非对称加密,即做数字签名;之后是将以上的签名和电子文件原文以及签名证书的公钥加在一起进行封装,形成签名结果发送给收方,待收方验证。

第3步:验证数字签名

接收方收到数字签名的文件,其中包括数字签名、数据电文的原文、发方公钥,然后接收方即可进行签名验证。验证时,接收方首先用发方公钥解密数字签名,导出数字摘要,并对数据电文的原文作同样的哈希算法得到一个新的数字摘要,将两个摘要的哈希值进行结果比较,相同签名得到验证,否则为无效。

初识“网络身份证”——数字证书

数字证书属于电子签名中的一种,目前在很多电子商务和电子政务中广泛使用,它就是个人或单位在网络上的身份证。我们将如何获得数字证书?以及如何识别,下面我们将通过几款软件来为大家做个初步的介绍!

目前网上安全电子商务和电子政务中,普遍使用X.509 V3格式的数字证书。这是一个以.cer结尾的文件,其内容包含证书所有者的信息、公开密钥和证书颁发机构的签名等信息,主要有个人和单位身份证书、服务器证书、安全电子邮件证书以及代码签名证书等几种类型。

数字证书的获取

如果你想得到一个数字证书,可以使用证书创建工具:makecert之类的工具自己生成,或者在网上向相关CA机构申请获得。

自己生成数字证书

首先下载微软的Authenticode for Internet Explorer 5.0(下载地址http://www.microsoft.com/downloads/details.aspx?familyid=2b742795-d0f0-4a66-b27f-22a95fcd3425&displaylang=en),该工具包中有个makecert.exe程序,你可以用它来制作自己的数字证书。这种方法生成的数字证书虽然不属于受信任的证书,但完全能够正常使用,操作步骤是:在命令提示行中,用CD命令进入makecert.exe所在目录,然后输入以下命令:makecert -sv lacl.pvk -n “CN=lacl” -ss My -r -b 01/01/2005 -e 01/01/2095 lacl.cer(命令含义见下表)。

14-g6-1-b.jpg

以上命令执行后,将弹出一个窗口,要求你设置私钥密码,如果你不设密码,点“无”按钮即可。

于是在makecert.exe程序所在目录下,就生成了数字证书文件lacl.cer和对应的私匙文件lacl.pvk。

注意:私钥文件为你个人所有,不能泄露给其他人,否则别人可以使用它以你的名义签名。

向CA中心申请数字证书

你也可以在网上向一些CA中心申请购买数字证书。目前网上有很多专门提供数字证书的CA中心,例如广东省电子商务认证中心(http://www.cnca.net/),几乎各省都有一个CA中心,你用Google搜索会找到一大堆。一些CA中心还向你提供了免费的试用型数字证书,不过试用期结束后,如果你要继续使用该数字证书,就需要花钱购买了,申请步骤如下:

例如打开http://www.cnca.net/网页,点击“个人数字证书”栏下的“立即试用”,弹出一个页面,要求你安装根证书(即CA证书链),单击“安装证书链”按钮,系统将提示是否将证书添加到根证书存储区,选择“是”;然后进入“基本信息”表单,输入你的个人资料,在CSP栏目中选择“Microsoft Base Cryptagraphic Provider V1.0”(图1),填写补充信息,例如有效证件类型、证件号码、出生日期等等,存储介质选择“本地”将证书保存在本机硬盘上;最后点击“提交”按钮进行申请。

14-g6-1-1.jpg
图1

接下来,系统将发送一封申请成功的信件到你申请时所用的邮箱内,其中包括业务受理号、密码以及数字证书下载的地址;点击数字证书的下载地址链接,并填写业务受理号和密码并提交,即可安装数字证书,当提示“证书成功下载并装入应用程序中”,则表明数字证书安装成功,CA给你的数字证书已保存在你的硬盘上。

数字证书的查看

下面我们要看一看自己的电脑上有哪些数字证书,你可以使用以下两种方法查看:

用Certmgr.exe程序来查看

以上Authenticode for Internet Explorer 5.0工具包中有个Certmgr.exe程序,可以查看你的电脑上有哪些数字证书。双击Certmgr.exe,就会弹出一个窗口(图2),显示你的数字证书列表。如果你单击“导入”按钮,选择证书文件,可以安装根证书。

14-g6-1-2.jpg
图2

在Internet选项中查看

运行Internet Explorer,单击菜单“工具→Internet选项”,选择“内容”选项卡,点击“证书”按钮,也可以查看本机上的数字证书。

在“证书”对话框中,点击“个人”选项卡,即可看到你的个人数字证书列表;选定某个数字证书,单击“查看”按钮,可以看到该数字证书的详细信息(图3)。

14-g6-1-3.jpg
图3

数字证书的应用

数字证书广泛应用于网上安全电子事务处理中,例如发送安全邮件、访问安全站点、网上签约、网上税务等,其中最常见的应用就是对电子邮件进行数字签名和加密。

你可以对同一封邮件既签名又加密,以便保证发送的签名邮件不会被篡改,外人又无法阅读加密邮件的内容。下面我们以Foxmail5.0为例,介绍利用数字证书安全发送邮件的方法,Outlook XP下用法与此类似。

邮件账号与数字证书绑定

启动Foxmail,在主窗口点击菜单“账户→属性→安全”,单击“选择”,为账户绑定一个数字证书(图4)。

14-g6-1-4.jpg
图4

以后发送数字签名邮件时,将使用该证书进行签名。点击“查看证书”可看到证书信息(图5)。如果没有绑定,将弹出“证书选择”对话框,提示你选择一个证书作为本账户的证书。

14-g6-1-5.jpg
图5

发送带数字签名的邮件

进入写邮件窗口,撰写一封新邮件。点击“工具”菜单下的“数字签名”,填上收件人、标题,写好信,最后按“发送”把它发送出去。

当对方收到并打开该邮件时,将看到“数字签名邮件”的提示信息(图6)。在邮件内容窗口的右边有个“数字签名”图标(红色的感叹号),点击后可看到你的数字证书信息,由此便可确认该邮件是你发出的、并且中途没有被篡改过。

14-g6-1-6.jpg
图6

发送加密邮件

加密邮件的发送方法,与以上发送签名邮件的方法类似,不过你必须首先获得对方的公钥,然后才能给他发加密邮件。

1.获得对方公钥的方法

你可以让收件人先给你发送一份签名邮件来获取对方的公钥,或者直接到电子商务安全认证中心的网站(例如http://www.cnca.net或者http://www.ca365.com/)上查询并下载对方的公钥。

2.创建邮件并发送

进入写邮件窗口,选中工具栏中的“加密”按钮,撰写一封新邮件,填上接收人的邮件地址,按“发送”按钮后,会要求你添加对方的公钥,勾选证书按“确定”,加密邮件的发送即告成功。

电子签名法律摘要

电子签名法规定,民事活动中的合同或者其他文件、单证等文书,当事人可以约定使用或者不使用电子签名、数据电文。当事人约定使用电子签名、数据电文的文书,不得仅因为采用电子签名、数据电文的形式而否定其法律效力。

根据我国电子商务发展的实际需要和实践中存在的问题,借鉴联合国及有关国家和地区电子签名进行立法的做法,我国电子签名立法的重点为:确立电子签名的法律效力;规范电子签名的行为;明确认证机构的法律地位及认证程序;规定电子签名的安全保障措施。

法律规定,电子签名必须同时符合“电子签名制作数据用于电子签名时,属于电子签名人专有”、“签署时电子签名制作数据仅由电子签名人控制”、“签署后对电子签名的任何改动能够被发现”、“签署后对数据电文内容和形式的任何改动能够被发现”等几种条件,才能被视为可靠的电子签名。法律还规定,当事人也可以选择使用符合共同约定的可靠条件的电子签名。

为保护电子签名人的合法权益,法律规定,伪造、冒用、盗用他人的电子签名,构成犯罪的,依法追究刑事责任;给他人造成损失的,依法承担相应的民事责任。