浅谈数字签名技术在网络银行中的实现
2015-09-23常瑜王欣
常瑜 王欣
1 密码技术特性
密码技术可以为信息网络中的电子化信息,如网上银行业务中发生和传递的各种信息,在其产生、交换、使用和存储等过程中提供四种安全保证:
第一是机密性,机密性或隐私性保护保证信息不被非法获得;
第二是完整性,数据完整性保护保证信息不被无意或有意改动;
第三是真实性,真实性保证信息的发送方和接收方的身份得到惟一性确认,这样信息的发送和接收双方就都知道信息的来源和去处;
第四是不可否认性,不可否认性提供对数据完整性和来源的第三方验证,不可否认性服务可以在发生诉讼时提供重要的法律证据。
使用密码技术可以提供上述安全保证,并可以将其具体化为密码服务系统,也就是说,将上述安全保证具体转化为密码服务系统的加密、解密、签名和验证签名操作,这被称为密码服务。
2 数字证书
有人把数字证书俗称为“网络身份证”,其是以密码技术为核心,结合政策法规、安全管理于一体,用于在互联网信息世界中标志用户身份的电子身份凭证和电子签章载体。
2.1 对称密码算法与公钥密码算法
对称密钥加密的特点是加密和解密使用相同的密钥,它要求发送者和接收者在安全通信之前先商定一个密钥,经过加密的信息可以通过非安全的媒介,自由地从一个地方发送到另一个地方。用对称密钥加密技术构成的密码系统的安全性依赖于密钥保密,泄漏密钥就意味着加密所带来的安全性不复存在,只要消息需要加密保护,密钥就必须保密。
对称密钥加密技术的最大局限性在于必须设计出一些方法来安全地分发和管理作为系统核心的密钥,通常称为密钥管理。当涉及到很多个当事方时,就会导致巨大的幕后工作量和时间延误;而且,为了将密钥泄露导致的损失降至最低,必須经常变更密钥,这就又增加了幕后工作的复杂性。
公开密钥加密也叫非对称密钥加密,它的特点是加密和解密使用不同的密钥,这两把密钥在数学上是相关的,加密密钥可以公开,称为公钥;解密密钥必须保密,称为私钥。公开密钥算法的安全性是基于知道公钥并且不能通过计算推导出私钥这个前提的。
比如用户A想要使用用户B的公钥将信息加密发送给用户B,他就要从在线公钥数据库中找到用户B的公钥,而用户B可以使用自己惟一的私钥来进行解密。这种方法就保证了信息的机密性,因为用户A知道只有用户B才可以解密并阅读这份信息。
公开密钥算法在计算上的复杂性,使得它的加密和解密效率大大低于对称密钥算法,所以公钥加密技术不用来加密大的文件。联合使用对称密钥加密技术和公开密钥加密技术进行加密保护会更为有效和快捷。例如,用户A生成一个一次性的对称密钥并用它对文件进行加密,然后再使用用户B的公钥对一次性的对称密钥加密,将经过加密的对称密钥和文件发送给用户B;用户B利用自己的私钥解密对称密钥,然后用对称密钥解密文件,这种方式称为数字信。
如果把公钥和私钥反过来使用,用私钥加密而用公钥解密,就是数字签名的基础,并据此进行身份认证,保证数据的完整性和不可否认性。例如,如果用户B想对一份电子文件进行数字签名,他就可以用其私钥对其进行加密。因为他的公钥是公开的,因此任何知道他的公钥的人都可以解密文件,而私钥只有用户B自己有,这就构成了用户B数字签名的基础。
公开密钥加密技术的使用克服了对称密钥加密技术的局限性,与对称密钥加密技术联合使用可以完整地提供机密性、完整性、真实性和不可否认性的安全保证,并且很好地克服了密钥管理的复杂性。用公开密钥加密技术构成的密码系统的安全性依赖于私钥的保密,泄漏私钥就意味着加密所带来的安全性和签名所带来的不可否认性不复存在,所以私钥必须保密。
2.2 签名技术需要解决的问题
公钥密码技术让公钥公开、私钥保密,解决了密码系统中密钥分发的复杂性和安全性问题,使密码技术得以在保障计算机信息系统安全中广泛应用,并将安全问题最终归结为如何证明和保证公钥的真实性和有效性的问题。
当然,在网上银行业务这样的实际应用中,还有两个问题必须要解决:一是如何确定一个用户的公钥确实属于这个用户,并保证用户与其公钥之间的联系真实有效;另外就是如何保证用户的私钥在被破坏、丢失时或者在有关机构需要取证时能够解密数据。
第一个问题的解决方法是建立一个大家都能信任的权威机构,由这个权威机构用自己的签名密钥对用户的名称、用户的公钥和其他一些识别信息进行数字签名,形成一个将用户与其公钥联系起来的电子信任状,这个电子信任状就称为数字证书,而这个权威机构就称为CA(Certificate Authority)。由CA签发的数字证书贮存在一个目录或其他数据库中,用户可以像查电话簿一样查找别人的证书,证书中CA的签名保证证书中的公钥确实属于持有该证书的人。
第二个问题的解决方法是使用两套密钥分别用于加密和数字签名,签名密钥用于解决真实性和非否认性的问题,而加密密钥用于解决数据机密性的问题。而备份加密私钥的地方称为密钥管理中心KMC(Key Management Center),通常加密密钥由它产生,其公钥也由CA签发为数字证书。这样,数字证书的安全性和可靠性都可以得到保证。
2.3 数字证书的管理
用户的签名私钥自己产生并保存,其公钥由CA签发为签名证书。签名私钥不可以备份,以免破坏其不可否认性。
用户的加密私钥由KMC产生,其公钥由CA签发为加密证书。加密私钥通过安全的手段发给用户的同时也备份在KMC。KMC按照密钥的有效期管理密钥,密钥超过有效期,用户可以再申请一个新的密钥。在用户方,超过有效期的密钥不能再使用;在KMC方,超过有效期的密钥也不能删除,只能将其归入历史密钥档案,用户或有关机构可以申请恢复这个密钥,用这个密钥来解密在有效期内加密过的文件。
CA按照一整套安全和管理策略,管理数字证书的生成、签发、更新、撤销和中止。同时,CA和KMC也组成了数字证书的认证系统。
2.4 数字证书和电子签名在网银的应用策略
在应用系统中,签名方使用自己的签名私钥对信息或证据签名,验证方使用该用户的签名证书来验证签名,由于证书与用户的身份绑定,验证证书也可以验证用户的身份,从而实现完整性、真实性和不可否认性的安全保证。发送方使用接收方的加密证书来保护会话密钥,用会话密钥加密信息,接收方用自己的私钥解密会话密钥,再用会话密钥解密信息,从而实现机密性的保证。
用户的身份必须是真实可靠的,签名才能有实际意义,这是使用数字签名的基础。CFCA通过在银行设立证书的注册审批机构,即RA来审核用户的身份。RA系统一般为两层结构,在商业银行的总行等证书应用的机构总部设置总部RA;而在商业银行的分/支行等证书应用机构的分支机构设置本地RA(简称LRA)。银行在审核用户身份时还包括用户的帐户等金融资信信息,并将通过审核的用户信息安全传输到CFCA。
银行对于CFCA来说有两个角色,首先银行作为CFCA的证书注册审批机构RA,是CFCA认证服务的一个重要环节,相当于CFCA认证系统的延伸。从这个意义上,银行应审核用户的身份信息,保證用户身份的真实性,CFCA应保证CA系统的安全运行,为通过审核的用户发放数字证书;银行的另一个角色就是作为证书的使用者(例如银行操作人员的证书、网站证书等),在这个意义上,银行应保管好证书的私钥,在证书不可用时要及时通知CA。CFCA则通过数字证书向银行提供信息安全传输和信息不可否认性的服务。例如,曾经有国内一个银行的用户,对网银的一笔交易产生疑问,认为自己没有做过这笔交易。为此,银行要求CFCA对这笔交易的有效性进行技术确认。
今后随着《电子签名法》的实施,类似的这种争议或纠纷就能有法可以,能更好地保障银行和用户的权益。
参考文献
[1]鲁士文.计算机网络习题与解析[M],北京:清华大学出版社,2008.
[2]张曾科.计算机网络[M].北京:清华大学出版社,2003.
[3]Eric A Fisch. Secure Computers and Networks[M].New York:CRC Press,2002.
[4]刘兵.计算机网络实验教程[M].北京:中国水利水电出版社,2009.
[5]J.Postel.RFC791: Internet Protocol[S].September 1981.
作者简介
常瑜,男,吉林省通化市人。
王欣,女,吉林省通化市人。