基于Web的考试是随着计算机技术的深入和普及,尤其是Internet的应用普及而产生的。考试系统网络化的同时,也带来了相关的安全问题。在具体的考试系统中,主要涉及到题厍和成绩的安全性,即保证题库来自正确的服务器,答案来自正确的考生,且保证题库和成绩不被泄密和修改。如果这些问题得不到解决,考试所要求的公正性、客观性无法保证。
当前,一般流行的大型数据库系统都提供了许多安全技术,它基本能够满足一般的数据库应用需求。但也不能保证敏感数据的保密性。例如DBA拥有最高权限,可知晓试卷的内容。为了保证考试的公正性,这就需要有进一步的安全措施——数据加密和数字签名。
一、数据加密
数据加密就是利用某种方法伪装数据,使别人无法得到数据包含的真实信息。被加密的数据称为明文,加密以后的数据称为密文,把密文转变为明文的过程就是解密。明文用M表示,密文用C表示,加密过程就是一个把明文变成密文的数学函数,用E表示,而解密过程就是一个把密文变成明文的数学函数,用D表示。加密过程就是E(M)=C;解密过程就是D(C)=M9。目前有两种加密体制:公钥体制和单钥体制。公钥体制有典型代表的是RSA,而单钥体制具有典型代表的是DES。
信息加密系统的示意网如图1所示。
1、DES对称加密算法
DES(美国商用数据加密标准)算法的明文和密文的长度均为64位,密钥长度为56位。实现算法步骤为:
1)初始置换IPo对给定的64位比特的明文m。首先通过一个置换IP表来鼋新排列m,从而构造出64位比特的mo,mo=IP(m)=kRo,其中k表示mo的前32比特,Ro表示mo的后32位。
2)乘积变换(16轮)。换完之后,若经过第n层处理后的左、右32比特分别为Ln和Rn,则L和Rn可作如下定义:
K是向第n层输入的48比特的密钥,Ln_i和Rn-1分别是第n-l层的输出.f是以Rn-1和k为变量的输出32比特的函数。第n层的加密变换如图2所示。
3)逆置换IP-I是对L16、Ris利用初始置换IP作逆置换IP-1,就得到了密文y,这就是DES加密的结果。
DES使用与加密相同的函数进行解密,唯一不同之处是密钥的次序相反。
2、RSA非对称加密算法
RSA算法是目前非对称加密领域内最为著名的算法。它的安全性是基于大整数质因子分解的困难性。
其算法过程为:建立RSA公钥密码系统时,选取一对不同的大素数p和q,令n=p*q;用户公布n,但将q和p保密;然后,选取正整数d,使其满足gcd(d,φ(n))=1,这里的中(n)是欧拉函数,且φ(n)=(p-1)(q-1);最后,根据公式e-d*1(modm(n))计算出e,用户公布e,但将d保密。
RSA方法是一种分组密码系统。加密时,首先将明文表示成0到n-l之间的整数。如果明文太长,可将其变为n进制数的形式,即令M=MO+MIn+K+M。,然后分别加密(Mo, Mi,…MI)。得出密文C0,Cl...Cs。加密公式为:
如果已知密钥d,解钥是容易的。只需计箅:
即可恢复明文M。
RSA涉及大数的计算,无论硬件实现还是软件实现的效牢都比较低,不适用于对长的明文进行加密,常用来对密钥进行加密,即与对称密码算法结合使用。
二、数字签名
数字签名是采用一种数据交换协议,使收、发数据的双方能够满足两个条件:接受方能够鉴别发送方所宣称的身份;发送方以后不能否认发送过数据这一事实。
数字签名的目的是为了保证信息的完整性和真实性。和加密相对应,有基于对称密钥的数字签名和基于非对称密钥的数字签名两种方式。基于非对称密钥的数字签名方式是公开密钥加密技术(如RAS算法1和报文分解函数(如MDS)相结合的产物。报文分解函数是一种散列技术:对数据执行一些数学运算,从运算的结果无法得到原来的数据。
数字签名一般采用非对称加密技术(如RSA)。发送方对整个明文进行加密变换,得到一个值,将其作为签名。接收方使用发送方的公开密钥对签名进行解密运算,如结果为明文,则签名有效,证明对方的身份是真实的。
上式表明的是一个数字签名过程d对于通信的双方发送者和接收彳而言,信息加密是发送者使用接收者的公钥进行加密,只有接收者用自己的私有密钥才能解开信息;数字签名是发送者使用自已的私钥加密信息,接收者可以用发送者的公开密钥进行解密。
三、网络考试系统数据的加密要求
对于一个网络考试系统的安全性而言,仅靠访问控制是不够的。因为这些安全措施存在一个致命的弱点:原始数据以可读的形式存储在数据库中。这样,高明的入侵者可以从计算机系统的内存中导出所需的信息,或者采用某种方式进入考试系统,从系统的后备存储器上窃取数据或篡改数据。要彻底解决考试系统的安全保密,除了在传输过程中控制非法访问之外,还必须对存储数据进行加密保护。一个网络考试系统数据的加密要求有:
1)考试系统试题库信息保存时间要长,不可能采取一次一密的力法进行加密,因而选用其它的加密方式,使其达到实际不可破译的程度。
2)实际加密后,存储空间不应明显增大。
3)加密和解密速度要快,尤其是考试过程中解密要快,使考生感觉不到解密带来系统性能的变化。
4)加密系统要有尽可能灵活的授权机制。考试系统数据库在Internet环境中使用时,每个考生只使用其中小部分数据。因此数据库系统应有很强的访问控制机制,并辅以很灵活的授权机制,这样既能增加系统的安全又能方便用户的使用。
5)加密系统应提供一套安全、灵活的密钥管理机构。
6)对数据库的加密不应影响考试系统的原有功能,而应保持对数据库操作的灵活性和简便性。
7)加密后的数据库仍能允许用户以不同的角色对之进行访问。
在网络考试系统中,一次考试的流程大致可以分为这么几步:首先,由出题老师出好试卷,存人数据库中;然后当考试时间到了后,由监考老师取出试卷,学生进行答题,交卷;最后出阅卷老师进行试卷评判。其中,老师出好的试题和答案需要加密保护,学生的答题数据和老师的批改成绩,只需保证其数据的完整性和不可否认性就可以了。
结合以上数据加密的要求和考试系统的实际情况,选择合适的加密算法对存储在数据库中的考试信息进行加密。在各种加密算法中,DES对称加密算法加解密速度快,加密强度高,密钥分发与管理困难,可满足系统对数据快速高效加解密处理的要求;非对称加密算法的加密解密速度慢,不能适应数据库加密的速度要求,而其密钥管理简单,正好用于生成传递对称加密算法使用的密钥的数字签名,保障了密钥传递的安全性。将两者相结合,可以有效地提高加密效率,并能简化对密钥的管理。所以本考试系统选择用DES对数据库的敏感数据加密;采用了非对称加密技术(如RSA)的数字签名来保证试卷由合法的考试者提供,且试卷的内容未被修改。
四、网络考试系统中的加密处理
网络考试系统中,需要保密的环节较多,如考前的试卷需要防泄密.考后的答卷需要防篡改,等等。
(1)试卷的加密和解密处理
根据加密理论,出题者可设置密钥以维护试题的保密性,在正式考试时,再用密钥解开试题供考试时使用。采用加密的战卷加密和解密过程如图3所示。出题者在生成试卷后给定加密密钥,明文用该密钥经加密算法处理后送入试卷库;一旦试卷启封使用,由密钥持有者提供解密密钥用解密算法将试卷解密得到试卷明文以供考试使用。
(2)用户档案及题库的加密解密处理
用户的档案涉及到个人信息和权限管理,尤其是管理员及教师的资料,这些数据都要加密处理。试题库为了防止泄密,也要求加密存储。档案及试题库的加解密方法相似,因为两者只需存储在数据库中,不用在服务器间传输。:管理员输入完数据后将其加密存储在相应数据库中,需要修改及查询时,先解密成明文再进行相应操作。
(3)答卷的加密处理
在本系统中,除了试卷需要加密保护以增强数据的保密性以外,考唪的答卷也有必要进行一定的加密处理,因为答卷也属于敏感数据,若答卷中答案不加保护则可被轻易的篡改从而无法保证考试的公平与合法加密后的答卷存在答卷数据库中,阅卷时系统管理员再解密成明文批阅。
(4)答卷提交的数字签名
在考试系统中采用数字签名技术,一是要保证考生的答卷是合法的未经篡改的有效答卷;二是要保证它经过正常的考试过程。采用数字签名技术主要是防止恶意篡改考卷和保证考卷的合法性。考试系统中的数字签名技术用在考生试卷的提交,签名是答卷的信息摘要和考生信息的函数。由于收方在收到附加在答卷后的信息摘要后无需还原,只要将收到的答卷内容做信息摘要做比对,故在此我们采用简单的信息校验和作为信息摘要函数,实现起来非常简单。虽然可能会出现不同的数据序列会产生相同的校验和结果,但校验是与传送过来的原文相比,发生篡改而不被发现的町能性很小。当然对于校验和计算应是保密的。
本考试系统通过数据的加密处理和数字签名技术的应用,具有较强的安全性、可靠性和稳定性,达到了实用水平。
小知识之网络考试系统
网络考试是延伸了传统考试考场的涵义,它利用网络的无限广阔空间,把考场从学校延伸到了家中、计算机房、办公室及其它任何网络所覆盖的区域,并可随时对考生进行考试,加上数据库技术的利用,使考试变得更公平公正、更具权威性和可靠性。网络考试实现了传统考试与现代科技的完美结合,符合现代教育体制的要求,代表着现代教育考试的发展方向。