用智能卡与文件访问控制技术为OA安全加把锁
OA系统的高效性受到越来越多的关注,企业和*对它的依赖性逐渐提高。但是由于互联网的开放性以及用户对内网的安全性缺乏足够的重视,OA系统面临的安全问题也日益严重。
目前大多数OA 系统采用用户名/密码方式实现身份认证,口令通过互联网传输时,很容易被一些黑客软件通过网络监听获得,由于用户名密码强度有限,很容易被破解。另外,信息在传输过程中,尤其是一些机密信息,一旦被窃听,将对整个机构造成很大的影响;OA系统中的存储的文件,由于缺乏足够的安全措施,使得入侵者能够很容易的获得机密文件。针对OA系统的安全性问题,目前安全性高的OA厂商普遍采用USBKEY认证的方式来实现身份验证,同时采用SSL协议来实现传输过程中的安全性,但是这种方式,降低了OA的效率,同时,由于消息以明文的方式,无法防止进入后台数据库的攻击。对于OA系统中文件的安全性问题,尤其在B/S 架构下,还没有得到足够重视。
1、安全OA模型
针对以上安全性问题,设计了一个安全OA模型。该模型采用数字加密、数字签名、智能卡等PKI技术,同时结合访问控制技术来设计完成。而且,引入了一个可信的安全密钥服务器(security key server,SKS),这个服务器主要作用是负责用户身份认证和文件密钥的生成和分发,需要注意的是这里的身份认证和文件密钥都是同一个对称密钥。
1.1基础技术简介
数字加密技术主要分为对称加密和非对称加密两种。对称加密使用私有密钥(也称为对称密钥)对信息进行加密,加密和解密信息时使用同一个密钥,典型代表是DES算法,优势是加密速度快,但密钥分发复杂。与对称加密不同,公开密钥加密法的基本特点是加密与解密的密钥是不同的,它基于于公钥密码*,典型算法为RSA加密算法,优点为安全性高。在实际应用中可利用二者的各自优点,采用对称加密系统加密文件,采用公开密钥加密系统加密“加密文件”的密钥(会话密钥),这就是混合加密系统,它较好地解决了运算速度问题和密钥分配管理问题。
数字签名及验证技术:数字签名解决的是文件传输中的有效性、防止篡改性和收发不可抵赖性问题。所谓数字签名就是信息发送者用其私钥对从所传报文中提取出的数字摘要进行RSA算法加密操作,当信息接收者收到报文后,就可以用发送者的公钥对数字签名进行验证。
智能卡技术:智能卡中集成了微处理器,只读存储器,随机存储器,电可擦除存储器,1/0驱动几大部分。其中微处理器是整个芯片的核心,完成计算任务;只读存储器用于存放预置的程序代码,一般为微操作系统;随机存储器是作为运算时的暂存数据,存放如命令参数、返回结果、临时工作密钥等数据;电可擦除存储器则完成用户数据的存储,如用户私钥等。具有快速运算、存储量大、安全性高以及难以破译和伪造等特点。
1.2安全OA 模型设计
安全OA体系模型(如图1所示)主要包括3个部分:身份认证模块设计模块,信息安全传输模块,文件安全访问模块。用户登录模块,结合MD5分组变换技术,采用服务器、客户端应答模式实现完成用户的身份认证;信息传输模块利用智能卡内部存储的数字证书以及产生的内部随机密钥,采用混合加密方式,保证信息传递过程的完整性与机密性;文件访问控制模块,通过采取利用文件密钥,分组加密以及结合访问控制模块实现文件加密,保证文件的安全性。
图1 安全OA模型
1.2.1身份认证模块设计
该模块仍然采用的是“用户名/口令”的认证方式,但其与传统的区别是本模块对口令进行 MD5分组变换处理,同时结合服务器,客户端应答模式,选择SKS产生的身份认证密钥作为会话密钥,这样既可以保证安全性又可以克服使用SSL协议实现身份认证的效率问题。其实现过程如下:
(1)用户向服务器发送登录请求,服务器产生随机数Random,并将其发送给客户端;
(2)对口令进行MD5运算,得到初级密文FEM=MD5(password);
(3)对初级密文进行分组处理,然后分别对每~分组进行MD5运算,假设共有n个分组,则得到分组密文G1,G2,...,Gn;
(4)将分组密文 G1,G2,...,Gm,...,Gn,组合成一个新的字符串L,并再次对字符串进行MD5运算,得到一个最终分组密文GEM,用户注册的时候将分组密文GEM存放到数据库中;
(5)客户端获得random,利用智能卡中储存的身份认证密钥进行加密,最后做一次MD5运算,得到最终密文LEM,并将其发送给服务器端。
用户实现登录的时候,客户端通过上述操作得到最终密文LEM;而服务器从数据库中提取密文 GEM,然后对random进行解密,得到密文LEM”,两者进行比较,假如LEM”=LEM,则通过验证;否则,验证失败,服务器拒绝。
1.2.2信息安全传输模块设计
本模块采用基于数字证书的混合加密模式和数字签名技术来保证信息传递的完整性,保密性与不可抵赖性。同时,加密过程中,对称密钥的产生,信息加解密以及数字签名的实现都在智能卡内部完成。
信息加密采用数字信封形式实现,采用DES和RSA算法,首先利用智能卡内部产生的对称密钥使用DES算法对信息进行加密,然后利用RSA算法对加密后的对称密钥进行加密,形成数字信封,采用SHA_1和数字证书私钥利用RSA算法对信息进行数字签名,而数字信封的解密与验证,则采用与加密、签名相逆的运算完成,具体过程如下:
信息加密和数字签名实现(如图2所示)。
图2 信息加密与数字签名
(1)对要发送的明文,利用智能卡中存储的数字证书的私钥完成数字签名DS;
(2)发送者利用智能卡内部产生的对称密钥,在智能卡内部完成加密运算,得到密文E;
(3)发送者利用接收者的数字证书的公开密钥加密对称密钥SK形成数字信封DE;
(4)将密文E和数字信封DE一块发送给接收者。信息解密与签名验证过程(如图3所示):接收者利用智能卡内置的解密芯片完成数字信封的拆解,得到对称密钥SK。
图3 信息解密与签名验证
接收者利用接收者的数字证书公开密钥验证数字签名1.2.3文件安全访问模块设计
由于OA系统中上传的文件需要共享,所以利用数字证书混合方式加密的方式不能满足文件分发的需要,故利用SKS产生的相关对称密钥在智能卡内部完成相关操作,既增加了安全性,相对于公钥体系又增加了加密效率。
对于用户要进行上传的文件,利用智能卡内部产生的随机对称密钥(random security key,RSK)在智能卡内部完成对文件的加密,而对于RSK则利用SKS产生的文件加密密钥(file encryptionkey,FEK)进行加密,FEK也是对称密钥,只有对用户用读写权限的用户才能获得FEK。而对于整个文件采用Hash运算,并且用文件签名密钥(file signkey,FSK)加密后放到访问控制模块当中。只有对文件具有写权限的文件才具有权限获得FSK。
每个文件还对应一个访问控制模块,用于控制授权用户对FEK和FSK的获得。访问控制模块包含加密后的RSK,访问控制属性(哪些用户具有何种权限),以及访问控制模块的完整性标识,这里的完整性标识是一种密钥消息认证码,这种完整性标识由SKS产生的安全签名密钥(security sign key,SSK)来维护的,从而防止非法用户对访问控制模块的篡改。
用户创建文件时,首先利对文件进行上面提到的加密运算,同时将访问控制模块作为文件的一部分上传到文件服务器。用户访问文件时,同时向服务器发送读请求,SKS首先在访问控制模块中检查用户的权限,然后利用FEK解密出RSK,FSK。利用RSK解密文件后对文件做同样的Hash运算,与先前的Hash值做比较,判断文件的完整性。
用户修改文件时。过程同访问文件类似,不同点在于将SSK返回给写者,并且重新计算Hash值,并用FSK签名,并且对访问控制模块进行替代。为了保证安全性,FEK,FSK在产生时被初始化到智能卡中,而且相关运算都在智能卡中进行。
2、安全性分析
(1)采用MD5分组变换处理后,可以增加破解的难度。传统的MD5破解方式分为两种,一种是网站在线破解,另一种是暴力破解。前者,通过查询网站数据库中是否存在MD5值完成破解;后者,软件通过算法,生成字典,然后利用MD5函数对字典迸行运算,然后根需要破解的密文做必须,完成破解。通过MD5变换处理后,产生的密文和传统的MD5加密后的密文有着很大的不同,因此通过md5常规破解方法是很难破解其原始密码值,从而保证了数据的安全。
对于攻击者来说,相对理想条件下,攻击者已经知道对MD5加密后的密文进行过密文分组加密,攻击者要想正确的破解出明文,必须正确的确定分组。攻击者首先必须对整个密文做一次MD5解密运算,得到分组后分别MD5加密的密文。然后确定分组,确定正确分组的可能需要32 !次运算。即使确定了有N个分组,仍然需要N次MD5解密运算。也就是说,在相对理想条件下,破解出正确的明文的时间为传统MD5破解时闻的 (n+1)32 !倍。
而服务器和客户端利用随机密钥进行会话,又可以避免重放攻击,安全性得到很大提高。
(2)由于智能卡在设计过程中就采取了一系列的安全机制保护其内部数据不会被泄露和非法访问。这些安全机制包括:对卡内部数据
上一篇: Android第三方库TakePhoto应用场景及实现教程
下一篇: RTSP协议的状态机