论文部分内容阅读
摘要:数字签名是用来保证信息在网络传输过程中的完整性以及不可否认性。阐述数字签名的概念和功能,并在办公自动化系统中,实现公文流转文件的数字签名和签名校验。
关键词:数字签名;非对称加密;USBKEY;办公自动化
中图分类号:TP3 文献标识码:A 文章编号:1671-7597(2010)1210189-01
近年来,随着网络技术和软件技术的飞速发展,各单位都加快了信息化建设,办公基本上都采用办公自动化系统(OA)。OA的使用改进了传统的办公方式和手段,实现了无纸化办公,大大提高了工作效率。
目前办公自动化系统中对信息的安全主要是采用数据库的权限设置方式,根据使用者的不同级别来设置相应的权限,对文档没有采用加密体制,对机密公文而言,其安全性很难得到保证。由于没有采用数字签名机制,接收者不能核实公文的真实性,发送者事后也可以抵赖已发公文。同时,其他人也可以冒充他人发送公文,也可以对已发公文进行篡改,甚至删除,这样不能对相关责任进行追究,也不能从法律上保证公文的真实性。因此研究数字签名的应用对于保证办公自动化系统中公文审批流转的安全性非常重要。
1、非对称加密技术
非对称密码体制即公钥加密体制,它是数字签名的基础。其基本思想是:要求密钥成对出现,一个为公钥,是公开的;另一个为私钥,是需要保密的。加解密算法都是公开的。其特点是:
1)密钥配发十分方便,用户的公用密钥可以公开,使用方便,这对网络环境下众多用户的系统、密钥管理更加简便,每个用户只需持有一对密钥即可实现与网络中任何一个用户的保密通信。
2)经用户公钥加密的信息只能通过他的私钥来解密(用于数据加密);反过来,用户私钥加密的信息只能通过他的公钥来解密(用于数字签名)。
3)在用户确认和实现数字签名方面优于现有的其他加密机制。
限制非对称加密使用的最大问题是加密速度,它所需要的时间为DES算法的400-1000倍,而且其密钥的生成较DES繁琐的多。由于这些限制,目前主要用于网络环境中的不长信息加密。在数字签名系统中的应用主要是对签名信息的摘要加密。
2、HASH函数
HASH函数又称散列算法,是一种单向的函数。即只能从输入产生输出,而不能从输出推断出输入。它的功能是为每个不同的输入产生相同长度的输出,即HASH值,也称“信息摘要”。其特点是:
1)压缩性:对输入任何长度的消息数据能够生成固定长度的消息摘要;
2)单向函数:从原数据容易算出摘要,但不可能从消息摘要计算出信息;
3)弱抗碰撞:已知原数据和其摘要,想找到一个具有相同摘要的数据(即伪造数据),在计算上是困难的;
4)防篡改性:对原数据进行任何改动,哪怕只修改一个字节,所得到的摘要都有很大区别。
3、数字签名技术
数字签名是指使用单向散列函数和公钥加密算法对待发的数据进行加密处理,生成一段信息,附着在原文上一起发送的一段字母数字串。这段信息类似现实中的签名或印章,任何他人都无法伪造。接收方对其进行验证,用以认证信息来源并核实信息是否发生变化,判断原文真伪。目的是使签名者对电子文件也可以进行签名并且无法否认,验证者无法篡改文件。
数字签名一般由签名算法和验证算法组成,在现有的数字签名方案中,通常以HASH函数作用于消息,产生固定长度的二进制数作为“信息摘要”,并将“信息摘要”加密,作为签名与文件一起发送。由于采用单向函数,给定一个固定长度的字符串,很难找到一个具有明确意义的消息,使其函数值与该字符串的“信息摘要”值完全相同。所以消息一旦被修改或破坏,就会与原来的“信息摘要”值不匹配。收方很容易通过计算消息的“信息摘要”值与传来的函数值的不同,而察觉出消息被非法用户篡改过。
在公文审批流转中,采用数字签名要求具有以下特性:
1)公文接收者能够核实发送者对电子公文的签名;
2)任何人不能伪造电子公文及签名;
3)发送方签过名后不能够对签发文件的事实进行抵赖和否认;
4)能够保证电子公文的完整性,防止在传输过程中被篡改等。
4公文审批流转的应用
在本应用中,我们将数字证书存储在USBKEY作为系统用户的唯一身份信息。具有非对称加密能力的USBKEY能够有效地保证密钥的安全生成、存储和使用。采用USBKEY的一种比较安全的方式是把私密信息存在其中,并在Key中完成特定算法的加密、解密和身份认证功能,减少由于机密信息的流动而造成的安全问题。其次Key中的PIN码可以保证对持卡人的身份认证,防止Key丢失后客户私密信息的非法使用,实现双因子安全认证。
CSP是微软提供的加密应用程序接口CryptoAPI所需的独立模块,它完成具体加密签名算法的实现。在利用数字证书实现数字签名的过程中,主要的签名函数是CryptSignMessage,验证函数是Crypt Verify DetachedMessageSignature。其实现步骤如下:
1)用户证书的生成。cA中心签发用户数字证书。cA是整个PKI体系的关键环节,它主要负责产生、分配并管理PKI体系内的实体所需的身份认证数字证书。此证书将作为系统中用户的唯一标识,用于证明某人的身份以及其公钥的合法性。
2)用户对审批意见签名。将审批意见文本作为参数,调用签名接口函数。具体函数实现如下:
系统证书库句柄
CertOpenStore(……)
证书的上下文
CryptUIDlgSelect Certificate From Store(……)
//初始化签名消息参数
CRYPT SIGN MESSAGE PARASigParams;
该结构可设置相关签名参数,包括摘要算法,签名算法,编码类型,证书信息,签名时间等。
签名函数
CryptSignMessage(……)
3)验证审批签名。对审批意见与签名字符串进行验证,调用验证签名接口函数。并输出验证后的结果,签名的时间及签名证书等信息。具体实现程序如下:
初始化验证消息参数
CRYPT VERIFY MESSAGE PAHAVerifyParams;
该结构主要设置待验证消息的编码类型等信息。
验证函数
CryptVerifyDetaehedMessageSignature(……)
5、结束语
数字签名作为信息安全的一项重要技术越来越得到广泛应用。本文所介绍的数字签名系统具有较高的安全性和可靠性,目前我们利用上述数字签名算法重新对公文的流转审批部分进行了改进,确保了工作流中信息传输的完整性和不可否认性,有效地提高了网络数据的安全性,实践中也获得了满意的效果。相信随着互联网安全技术的发展和完善,数字签名技术将具有更广泛的应用前景。
参考文献:
[1]罗莉、温锦生,网络信息安全技术,太原科技,2000,(3):22-23
[2]黄晓春,基于加密技术的安全网站构建,成都理工大学工学硕士学位论文,2007:2628
[3]张先红,数字签名原理及技术,机械工业出版社,2004
[4]关振胜,公钥基础设施PKI与认证机构CA,2002
关键词:数字签名;非对称加密;USBKEY;办公自动化
中图分类号:TP3 文献标识码:A 文章编号:1671-7597(2010)1210189-01
近年来,随着网络技术和软件技术的飞速发展,各单位都加快了信息化建设,办公基本上都采用办公自动化系统(OA)。OA的使用改进了传统的办公方式和手段,实现了无纸化办公,大大提高了工作效率。
目前办公自动化系统中对信息的安全主要是采用数据库的权限设置方式,根据使用者的不同级别来设置相应的权限,对文档没有采用加密体制,对机密公文而言,其安全性很难得到保证。由于没有采用数字签名机制,接收者不能核实公文的真实性,发送者事后也可以抵赖已发公文。同时,其他人也可以冒充他人发送公文,也可以对已发公文进行篡改,甚至删除,这样不能对相关责任进行追究,也不能从法律上保证公文的真实性。因此研究数字签名的应用对于保证办公自动化系统中公文审批流转的安全性非常重要。
1、非对称加密技术
非对称密码体制即公钥加密体制,它是数字签名的基础。其基本思想是:要求密钥成对出现,一个为公钥,是公开的;另一个为私钥,是需要保密的。加解密算法都是公开的。其特点是:
1)密钥配发十分方便,用户的公用密钥可以公开,使用方便,这对网络环境下众多用户的系统、密钥管理更加简便,每个用户只需持有一对密钥即可实现与网络中任何一个用户的保密通信。
2)经用户公钥加密的信息只能通过他的私钥来解密(用于数据加密);反过来,用户私钥加密的信息只能通过他的公钥来解密(用于数字签名)。
3)在用户确认和实现数字签名方面优于现有的其他加密机制。
限制非对称加密使用的最大问题是加密速度,它所需要的时间为DES算法的400-1000倍,而且其密钥的生成较DES繁琐的多。由于这些限制,目前主要用于网络环境中的不长信息加密。在数字签名系统中的应用主要是对签名信息的摘要加密。
2、HASH函数
HASH函数又称散列算法,是一种单向的函数。即只能从输入产生输出,而不能从输出推断出输入。它的功能是为每个不同的输入产生相同长度的输出,即HASH值,也称“信息摘要”。其特点是:
1)压缩性:对输入任何长度的消息数据能够生成固定长度的消息摘要;
2)单向函数:从原数据容易算出摘要,但不可能从消息摘要计算出信息;
3)弱抗碰撞:已知原数据和其摘要,想找到一个具有相同摘要的数据(即伪造数据),在计算上是困难的;
4)防篡改性:对原数据进行任何改动,哪怕只修改一个字节,所得到的摘要都有很大区别。
3、数字签名技术
数字签名是指使用单向散列函数和公钥加密算法对待发的数据进行加密处理,生成一段信息,附着在原文上一起发送的一段字母数字串。这段信息类似现实中的签名或印章,任何他人都无法伪造。接收方对其进行验证,用以认证信息来源并核实信息是否发生变化,判断原文真伪。目的是使签名者对电子文件也可以进行签名并且无法否认,验证者无法篡改文件。
数字签名一般由签名算法和验证算法组成,在现有的数字签名方案中,通常以HASH函数作用于消息,产生固定长度的二进制数作为“信息摘要”,并将“信息摘要”加密,作为签名与文件一起发送。由于采用单向函数,给定一个固定长度的字符串,很难找到一个具有明确意义的消息,使其函数值与该字符串的“信息摘要”值完全相同。所以消息一旦被修改或破坏,就会与原来的“信息摘要”值不匹配。收方很容易通过计算消息的“信息摘要”值与传来的函数值的不同,而察觉出消息被非法用户篡改过。
在公文审批流转中,采用数字签名要求具有以下特性:
1)公文接收者能够核实发送者对电子公文的签名;
2)任何人不能伪造电子公文及签名;
3)发送方签过名后不能够对签发文件的事实进行抵赖和否认;
4)能够保证电子公文的完整性,防止在传输过程中被篡改等。
4公文审批流转的应用
在本应用中,我们将数字证书存储在USBKEY作为系统用户的唯一身份信息。具有非对称加密能力的USBKEY能够有效地保证密钥的安全生成、存储和使用。采用USBKEY的一种比较安全的方式是把私密信息存在其中,并在Key中完成特定算法的加密、解密和身份认证功能,减少由于机密信息的流动而造成的安全问题。其次Key中的PIN码可以保证对持卡人的身份认证,防止Key丢失后客户私密信息的非法使用,实现双因子安全认证。
CSP是微软提供的加密应用程序接口CryptoAPI所需的独立模块,它完成具体加密签名算法的实现。在利用数字证书实现数字签名的过程中,主要的签名函数是CryptSignMessage,验证函数是Crypt Verify DetachedMessageSignature。其实现步骤如下:
1)用户证书的生成。cA中心签发用户数字证书。cA是整个PKI体系的关键环节,它主要负责产生、分配并管理PKI体系内的实体所需的身份认证数字证书。此证书将作为系统中用户的唯一标识,用于证明某人的身份以及其公钥的合法性。
2)用户对审批意见签名。将审批意见文本作为参数,调用签名接口函数。具体函数实现如下:
系统证书库句柄
CertOpenStore(……)
证书的上下文
CryptUIDlgSelect Certificate From Store(……)
//初始化签名消息参数
CRYPT SIGN MESSAGE PARASigParams;
该结构可设置相关签名参数,包括摘要算法,签名算法,编码类型,证书信息,签名时间等。
签名函数
CryptSignMessage(……)
3)验证审批签名。对审批意见与签名字符串进行验证,调用验证签名接口函数。并输出验证后的结果,签名的时间及签名证书等信息。具体实现程序如下:
初始化验证消息参数
CRYPT VERIFY MESSAGE PAHAVerifyParams;
该结构主要设置待验证消息的编码类型等信息。
验证函数
CryptVerifyDetaehedMessageSignature(……)
5、结束语
数字签名作为信息安全的一项重要技术越来越得到广泛应用。本文所介绍的数字签名系统具有较高的安全性和可靠性,目前我们利用上述数字签名算法重新对公文的流转审批部分进行了改进,确保了工作流中信息传输的完整性和不可否认性,有效地提高了网络数据的安全性,实践中也获得了满意的效果。相信随着互联网安全技术的发展和完善,数字签名技术将具有更广泛的应用前景。
参考文献:
[1]罗莉、温锦生,网络信息安全技术,太原科技,2000,(3):22-23
[2]黄晓春,基于加密技术的安全网站构建,成都理工大学工学硕士学位论文,2007:2628
[3]张先红,数字签名原理及技术,机械工业出版社,2004
[4]关振胜,公钥基础设施PKI与认证机构CA,2002