多重数字签名在成绩管理系统中的应用研究*
2016-10-18张丽萍葛福鸿
张丽萍,葛福鸿
(山西大同大学 教育科学与技术学院,山西 大同037009)
多重数字签名在成绩管理系统中的应用研究*
张丽萍,葛福鸿
(山西大同大学 教育科学与技术学院,山西 大同037009)
成绩管理是教务管理中的基础业务,在成绩管理系统中引入多重数字签名可以提高成绩管理的可靠性和安全性。针对目前成绩管理系统存在的篡改和抵赖的安全威胁,将哈希函数、RSA算法、CA认证和多重签名技术集成一体,提出具体解决方案,具有很强的实用价值。
网络安全;多重数字签名;成绩管理系统
学生成绩管理作为教务管理中的基础业务,其安全性在高校信息安全中处于重要地位。当前学生成绩管理系统,没有采用多方数字签名技术,这种方式实现起来简单,但是成绩容易被篡改,在出现问题时没有有效的手段来解决争议。多重数字签名就是多个用户对同一个消息进行数字签名。它能够保证多用户在网上签名的安全可靠,发生争议时又不能推卸责任。在成绩管理中引入多重数字签名,保证了成绩的真实性,提高了成绩管理的可靠性,切实保障了学生的利益。本文分析目前成绩管理系统存在的安全威胁,给出了具体的解决方案,将哈希函数,RSA算法,CA认证和多重签名技术集成在一体来保证成绩管理系统的安全。
一、成绩管理系统安全威胁
目前的成绩管理系统存在两方面的威胁:一方面,在传输过程中有可能被非法用户截获进行篡改,或者是非法用户通过截获信息伪造一张非法的成绩表上传给管理员,来干扰管理员的正常工作,所以要通过数字签名来保证安全性和可靠性;另一方面,在成绩管理系统中对于公共课和专业课都需要有多位判卷老师的共同签名,这种多用户的环境可能会出现互相抵赖现象。
二、数字签名技术
RSA算法作为非对称密钥算法,保证了计算上的安全性,简单易操作,可以很好用于数字签名。为了提高数字签名的效率和安全性,可以引入单向散列函数哈希函数,可以对明文生成摘要。CA可用于RSA算法中密钥的管理和用户的认证。可将哈希函数,RSA算法、CA认证和多重签名技术综合应用于成绩管理系统,以解决其存在的威胁。
1.哈希函数
在数字签名过程中,可以引入哈希函数来解决签名消息长的问题。一方面破坏了消息本身的数据结构来提高稳健性;另一方面是缩短了签名算法的输入长度,可以提高数字签名的速度。当签名者想要签一个任意长的消息x时,它先构造一个消息摘要z=h(x),然后对z计算y=Sigk(z)得到签名。一般采用的是单向散列函数,即通过摘要不能推出明文。
2.RSA数字签名算法
常规的密码算法就是通过某种方式对信息进行变换,使得别人无法解读这些信息。按照加密密钥是否和解密密钥相同或者说从加密密钥是否可以推出解密密钥,密码算法可以分为对称密码算法和非对称密码算法,RSA算法是最典型的非对称密码算法。RSA算法的数学基础是大整数因子难分解问题。如图1所示为RSA数字签名算法。
签名:信息m的签名y=sig(m)=(h(m))amod n来生成。其中h(m)为生成的信息摘要,它由信息m通过单向散列函数得到。
验证:验证算法ver(m,y)=真(TRUE)→h(m)≡ybmodn。
其中公开n,b和si g(m),而保密a,p,q和ver(m,y)。在原理上如果有人冒充信息发送者在计算上是不可能的,因为只有他本人通过他的私钥a才能计算出y使得ver(m,y)=真(TRUE)[1]。
图1 RSA数字签名算法
3.多重数字签名
多重数字签名按照签名是否有顺序可以分为:顺序多重数字签名和广播多重数字签名。顺序多重签名是签名者按照规定的顺序进行签名,如图2所示为顺序多重数字签名。广播多重签名则没有层级和顺序之分,由消息发送者将消息发给每个签名者,签名完成后把签名发给一个签名收集者,由签名收集者整理后形成签名,如图3所示为广播多重数字签名[2]。
图2 顺序多重数字签名
图3 广播多重数字签名
4.公开密钥基础设施PKI
PKI主要的功能是生成密钥并对密钥进行管理,而且公钥和用户身份信息是绑定的,用户丢失密钥后可以挂失并重新申请,方便了数字签名和数据加密的实现。PKI中最核心的组成部分是CA,CA作为证书颁发机构,可以对用户身份进行认证。学生成绩管理系统中CA方便了不同用户之间的通信,各个用户之间可以通过CA建立可靠的信任关系,出现问题不能推卸责任。
三、多重数字签名在高校成绩管理系统中的应用
1.方案概述
对于公共统考课有多位判卷老师,比如英语课、政治理论课的期末考试,所有参与判卷的老师都需要在成绩单上签名,而且他们之间没有层级关系,签名不存在顺序之说,可以采用广播多重数字签名。签名的收集者要验证每一个签名的有效性,然后形成最终签名上传到成绩管理系统[3]。管理员收到消息后解密得到成绩单,在网上公布成绩供查询。如图4所示公共课签名过程。
图4 公共课签名过程
对于专业课程,任课老师在成绩单上签名后需要发给系教研室主任审核签字,系教研室主任再发给系主任审核签字,最后发给系统管理员。他们之间存在层级关系,是一个规范化的办公流程,顺序是不能随便改的,可以采用顺序多重数字签名,如图5所示为非公共课签名过程。在顺序签名方案中后一个人总能验证他前面所有人签名的有效性。
图5 非公共课签名过程
2.成绩签名方案
每一个成员签名之前要先通过CA申请证书,获取证书后用其私钥对收到的信息签名。CA会根据用户的身份自动生成密钥对。一个是私钥,通过秘密通道传给用户,用户丢失后可以挂失,重新申请;另一个是公钥,可以供其他成员查询。在成绩管理系统中会提供规范的成绩单格式,提示相应的签名,以便日后进行验证。每一个签名者验证签名有效且信息正确后进行签名,否则拒绝签名[4]。
(1)广播签名方案
对于公共统考课采用广播签名方案,具体的签名步骤如下:
1)判卷主要负责人需要下载成绩单规范格式,录入成绩单m,核对以后要签字。采用RSA签名方式,先对成绩单形成摘要h(m),然后用自己的私钥a对这个摘要签名,即y=sig(m)=(h(m))2mod n。通过查询得到每一位参与判卷老师的公钥,然后将成绩单和自己的签名用他们的公钥加密后发给每一位阅卷者,即广播发给每一位判卷老师进行审核签字。
2)每一位判卷老师在收到消息后用自己的私钥解密,会得到消息发送者的签名和成绩单。先要对签名进行验证,如果验证正确,再核对成绩无误后可以对成绩单形成摘要并签名,签名和成绩单一起用签名收集者的公钥加密后发给签名收集者。在这里为了方便,签名的收集者也是最初的广播消息的发送者即主要负责人。
3)主要负责人收到每个签名后要用自己的私钥解密,得到每个判卷老师的签名文件和原始的成绩单。对签名验证有效后就可以把所有的签名文件按照成绩单中判卷老师的名字顺序排好序,再一次用自己的私钥签名,最后将签名连同成绩单用系统管理员的公钥加密上传到成绩管理系统。
4)管理员收到信息后先把它保存到数据库中以备日后验证,然后用自己的私钥解密后得到主要负责人的签名和成绩单,验证了主要负责人的签名有效后,可以把成绩发布到网上。
(2)顺序签名方案
对于专业课程的签名采用顺序签名方式,具体的签名步骤如下:
1)任课教师需要下载成绩单规范格式,录入成绩单,核对后对成绩单形成摘要后进行签名,将签名和成绩单一起用系教研室主任的公钥加密后发给系教研室主任。
2)系教研室主任收到消息后先用自己的私钥解密得到任课老师的签名文件和成绩单。验证签名的有效性后,对收到的任课老师的签名文件用自己的私钥进行签名,连同成绩单一起用系主任的公钥进行加密,然后发给系主任。
3)系主任收到消息后先用自己的私钥解密得到系教研室主任的签名和成绩单文件。验证签名的有效性后,对收到的系教研室主任的签名文件用自己的私钥签名后连同成绩单一起用任课老师的公钥进行加密上传到成绩管理系统。
4)管理员收到信息后先把它保存到数据库中以备日后验证,然后用自己的私钥解密得到信息,验证签名有效性后可以把成绩发布到网上。
3.验证方案
消息的接收者收到消息后,先要用自己的私钥解密。解密成功并不能保证消息来源就是可以信任的,因为每个人都可以查询到消息接收者的公钥进行加密,然后可以冒充消息的发送者发送消息。
对于公共课,每一个判卷老师解密得到的是成绩单和消息发送者的签名,此时要验证签名的有效性。RSA签名的验证过程前面已经提及就是把得到的签名y用消息发送者的公钥b再做一次模n运算,得到的就是成绩单的摘要,即h(m)=ybmod n,然后对收到的成绩单用哈希函数做一次哈希运算,得到h(m)′,比较h (m)是否和h(m)′相等,就验证了签名确实是系统的消息发送者即主要负责人发来的,如图6所示为判卷老师验证签名过程。主要负责人收到每个判卷老师发来的消息后先要用自己的私钥解密得到成绩单和判卷老师的签名,然后对签名进行验证,也是用消息发送者的公钥进行解密得到了成绩单的摘要,然后对收到的成绩单形成摘要,按照上面的步骤进行验证。系统管理员收到消息后先把它保存到数据库中以备日后验证,然后解密消息得到的就是成绩单和主要负责人的签名。用主要负责人的公钥进行解密得到的就是判卷老师们有序的签名文件,可以用前几位老师的公钥解密签名文件,得到的就是判卷老师们收到的原始成绩的摘要。管理员把收到的来自主要负责人的成绩单也形成摘要,将两个摘要进行比较,如果都是相等的则验证成功就可以在网上公布成绩。
如果成绩出现问题一般是管理员的问题,因为管理员在验证主要负责人签名的时候已经排除了主要负责人修改成绩的可能,保证了主要负责人发给判卷老师的成绩单和发给管理员的成绩单是一致的。此时可以通过数据库中的原始数据进行验证,解决争议。验证过程是:管理员将数据库中的原始信息进行解密,得到成绩单和主要负责人的签名,可以验证主要负责人签名的有效性,并验证这个成绩单和公布的成绩单的一致性。
图6 判卷老师验证签名过程
对于专业课程采用的是顺序签名,后一个人总能验证他前面所有人的签名的有效性。比如系主任收到消息后,就用自己的私钥解密消息,得到了一个系教研室主任自己的签名和一份成绩单,因为系教研室主任的签名就是对任课老师的签名用自己的私钥再次签名形成的,所以对系教研室主任的签名用系教研室主任的公钥进行解密得到的当然是任课老师的签名,然后再用任课老师的公钥进行解密得到的即为成绩单的摘要信息h(m),对收到的成绩单进行哈希运算也得到一个摘要信息h (m)′,比较h(m)是否和h(m)′相等,就验证了系教研室主任和任课老师签名的有效性,如图7所示为系主任验证签名过程。系统管理员把收到的信息先保存到数据库中然后解密信息后对签名的有效性进行验证,验证过程也类似,他可以验证系主任,系教研室主任和任课老师的签名的有效性。
如果成绩有问题,一般是管理员的问题,因为管理员在验证签名有效性的过程中已经排除了其他人修改成绩的可能,我们可以通过数据库中的原始消息来验证管理员是否修改成绩。验证过程很简单:管理员把数据库中的原始消息进行解密得到成绩单和系主任的签名,然后验证系主任签名的有效性,并将这个成绩单与公布的成绩单进行比较。
图7 系主任验证签名过程
4.安全性分析
每一个人的签名是不可以伪造的,因为除了他自己其他人没法知道他的私钥,这样就很好地保证了安全性。一方面,如果有非法用户截获了信息,但是我们知道信息是加密的,他没有信息接收者的私钥是没法解密得到明文,截获的消息是无意义的;另一方面,非法用户想要伪造一份成绩单并用自己的私钥进行签名同样是不可行的,因为消息接收者收到消息后能很快验证出签名无效,就会拒绝签名。
四、小结
1.结论和展望
采用了多重数字签名的高校学生成绩管理系统,满足了实际的应用需求,保证了多用户环境中学生成绩的真实性,可靠性。随着PKI基础建设的不断加强,我们可以将多重数字签名技术应用到其他学生服务中,甚至整个校园网的办公系统中,来保障校园网的安全有效运行,使校园网建设步入更加正规化的网络办公轨道。
2.问题和不足
成绩管理系统的安全性指的是计算上的安全性,它是建立在系统本身安全的假设基础上的。因此不管数字签名采用的密码算法设计如何良好,如果系统自身是不安全的也就很难保证密码不被破解。就是说很少有人会去进行蛮力攻击来破解密码,而利用系统的漏洞去攻击会更容易实现[5]。因此要重视系统自身安全建设,通过部署各种安全策略和建立多维度的安全防护体系来保证预期功能的实现,保证系统的安全性、稳定性和可靠性。
[1]Sattar J,Aboud.Two EfficientDigitalMulti-signature Schemes[J].International of Soft computing,2007,2(1):113-117.
[2]Eun-Jun Yoon,Kee-Young Yoo.Cryptanalysis of Password Authenticated Key Exchange Based on RSA for Imbalanced W ireless Networks[J].IEICE Transactions on Communications,2005,E88-B(6):2627-2628.
[3]郭改文.多重数字签名在高校办公系统中的应用研究[J].中州大学报,2013,30(3):123-126.
[4]张明熙.混合多重数字签名的研究[D].上海:上海交通大学,2005.
[5]王晓峰,张璟,王尚平.多重数字签名方案及其安全性证明[J].计算机学报,2008,31(1):176-183.
(编辑:杨馥红)
G434
A
1673-8454(2016)09-0056-04
2012年度山西大同大学校级科学项目 “代理签名技术在远程学习支持系统中的应用研究”(项目编号:2012K10)和2013年度山西省教育科学“十二五”规划课题“基于W I-FI的移动学习促进高校课堂教学的应用研究”(项目编号:GH-13090)支持。