数字图书馆中SSL VPN系统的安全策略研究
2009-01-11何玲
何 玲
〔摘 要〕基于SSL协议的VPN系统由于其安全、易用,越来越多地被应用于内部网的远程访问。文章分析了远程访问数字图书馆的安全需求、分析了SSL协议的安全机制,在此基础上提出了利用OpenSSL库构建适合于大学图书馆这一具体应用领域的SSL VPN系统,并讨论了系统实施时应用的安全算法。
〔关键词〕数字图书馆;SSL VPN;安全;远程访问
〔中图分类号〕G250.76 〔文献标识码〕A 〔文章编号〕1008-0821(2009)11-0087-02
Safety Tactics Study of SSL VPN System in Digital LibraryHe Ling
(Department of Computer Science and Information Technology,Tianjin Agriculture College,Tianjin 300384,China)
〔Abstract〕SSL VPN has been applied to remote access of internal Net,because of its security and ease of use.Security requirement of digital library remote access and security means of SSL protocol was analyzed in this paper.It was raised that SSL VPN system could be built for digital library making use of OpenSSL library.Security algorithm which was fit of digital library was discussed in this paper.
〔Keywords〕digital library;SSL VPN;safety;remote access
1 远程访问数字图书馆的安全需求
大学图书馆提供的数字资源在教学、科研过程中发挥着重要的作用。为了解决资源访问受IP地址限制的问题,很多学校图书馆都提供了数字资源远程访问的功能,使教师在校外也能访问到受限资源。在实现远程访问功能时,为保护著作人的权益及数据库提供商的利益,需要从以下方面保证数据的安全性。首先,为了确保只有被授权的用户才能访问数字图书馆资源,需要提供身份验证机制;第二,为了保护数据在传输过程中的机密性,需要采用加密解密机制;第三,为了防止数据在传输过程中被损坏或被恶意篡改,需要采用完整性验证机制。SSL协议为实现这些安全需求提供了保障。
2 SSL VPN系统的安全机制
2.1 SSL协议
SSL(Secure Socket Layer,安全套接字层)协议指定了一种在应用层协议和TCP/IP协议之间提供数据安全性分层的机制,它为TCP /IP连接提供数据加密、服务器认证、消息完整性以及可选的客户端认证,提高了数据传输的安全性。SSL协议是由SSL握手协议、SSL修改密文协议、SSL警告协议和SSL记录协议组成的一个协议族,如图1所示[1]。
2.2 SSL VPN系统的通信过程
SSL VPN系统中客户端与服务器端的通信过程如下[2]:
第一步:VPN客户端连接至VPN服务器,并要求验证服务器端的身份。
第二步:服务器发送数字证书证明自己的身份。通过检查有效日期并确认证书包含可信任证书颁发机构(CA)的数字签名来验证证书的有效性。
第三步:服务器发出一个请求,对客户端的身份进行验证,为节省系统开销,此步骤可省。
第四步:确定身份后,双方协商加密算法及用于完整性检查的散列函数。
第五步:客户端和服务器协商会话密钥。
第六步:客户端和服务器分别使用协商好的加密算法及密钥,对要发送的数据进行加密,对收到对方的数据进行解密。
以上6步骤中,前3步实现了身份验证,第四步和第五步实现了密钥交换,第六步实现了数据的加密/解密。这样在客户端和服务器间就搭建了一条加密信道。
3 应用安全算法
不同应用环境下的VPN系统,对安全等级、速度快慢、部署成本高低、是否易用都有不同的侧重。应用于大学数字图书馆的SSL VPN系统在满足前文所述的安全需求时,还要考虑一些具体特点:第一,客户端身份验证方式应尽量简单;第二,需要防止合法用户有意或无意将自己的身份证明转告给他人,造成资源滥用,也增加了整个系统的不安全因素;第三,由于用户数量有限,不希望投入过高成本,校园图书馆多数以软件方式构建VPN系统,这样,安全算法的复杂程度就直接影响着资源访问的速度,在应用安全策略时应该在安全和速度之间取得平衡。
Openssl是一个基于SSL协议的开源软件包,它实现了多种加密算法、信息摘要算法、密钥和证书的管理功能,并提供了SSL协议的完整接口[3]。应用程序利用这些现成的函数可以方便地实现安全套接字层。我们构建VPN系统时,可以根据具体情况,选择适合的安全算法。本文对应用于图书馆的SSL VPN系统在身份验证、加密传输、完整性校验环节使用的算法作了讨论。
3.1 证书和密码方式相结合进行身份验证
系统采用PKI证书验证服务器端身份,采用用户名/密码方式验证客户端身份。
证书方式验证SSL VPN服务器端的过程是:服务器持有由认证中心发放的身份证书,以及认证中心的公开密钥。在身份识别过程中,服务器方先把自己的数字证书传给客户端,客户端用认证中心的公开密钥来检验证书的数字签名,如果正确,且证书处于有效期内,就认为服务器端的身份有效。服务器端发来的证书,除了包含自己的身份标识,还含有一个公开密钥,用于接下来的密钥交换过程。
证书方式进行身份验证,安全性高,但对应用于大学图书馆的VPN系统来说,这种验证方式不适于验证客户端身份。因为,证书需要以邮件方式发送给每个客户端,手工完成这一过程,加大了管理人员工作量。另外,服务器对客户端进行证书认证的过程,也会加大系统开销,影响访问速度。若采用用户名/密码方式进行客户端身份验证,用户申请“用户名”和“密码”的工作,管理员审核资格的工作都可以借助Web应用程序自动进行,节省了人工。普通系统中的“用户名”和“密码”以明文方式传送,容易被攻击者从线路上窃听到。在SSL协议下,完成服务器的证书认证之后,就在客户和服务器之间建立了一个安全的连接。在此安全连接基础上,“用户名”和“密码”以密文方式传送给服务器端,避免被窃听。综上,用户名/密码方式进行客户端身份验证能够满足本系统的安全需求,且方便管理。
3.2 统计用户登录次数,防止密码泄露
为了防止合法用户将自己的用户名和密码大范围转告给其他人,或用户密码被破解,vpn系统需要在数据库中记录每个用户当天的登录次数,如果超出了管理员设定的某个阈值,就自动关闭该用户的使用权。
设计存放用户信息的数据库表,字段有userid(主键)、username、password、active、times。userid是用户的登录用户名,username是教师的真实姓名,password是登录密码,active为权限标记,times为当天的登录此数。
userid和username字段信息来源于图书馆读者信息库中保存的教师借书证号和教师姓名;password字段值是用户在线注册时自设定的密码;active初始值为0,表示用户未注册,当用户提交注册申请后,程序核对userid和username信息均正确,自动将active字段值变为1,表示该用户具有VPN使用权限;程序每天零点对所有用户的times字段值清零,用户每登录一次VPN,times字段值增加1,当times字段值超过预设阈值时,active字段值由1变为-1,表示用户处于非正常状态,暂停VPN使用权,人工干预后才能继续使用。
3.3 用blowfish-CBC算法保护数据机密性
为防止数据内容被非法窃听,数据传输要以密文形式进行。加解密算法分为对称和非对称两种。对称算法的加解密速度较非对称算法高很多,所以当对系统安全级别要求不是很高的时候,VPN系统采用对称加密算法。blowfish-CBC是一种对称密钥算法。
blowfish算法是一个64位的可变密钥长度的分组密码算法,具有如下特点:
(1)快速:在32bit微处理器上加密数据的速率是每个字节用18个时钟周期;
(2)紧凑:可以在少于5k的内存上运行;
(3)可变的安全性:密钥长度是可变的,最长可达448bit,这使得在更高速度和更高安全性之间进行折中成为可能。
密码分组链接(Cipher Block Chain,CBC)模式,是对称加密算法的分组加密算法中的一种重要模式。在CBC模式中,明文被加密之前要与前面的密文进行异或运算[4],即前一个分组的加密结果被反馈到当前分组的加密中。因此,每个密文分组不仅依赖于产生它的明文分组,而且依赖于所有前面的明文分组。
blowfish-CBC是将blowfish算法和CBC模式结合起来,即加密前对明文数据块做CBC变换,再进行加密。
3.4 用HMAC保护数据完整性
在SSL VPN系统中,需要确保数据的完整性,也就是保证接收到的数据确系发送方发送的数据。采用散列消息鉴别码(HMAC)可以解决这个问题。
定义HMAC需一个散列函数(比如SHA1或MD5)及一个密钥K。密钥可取任意长,但建议不短于输出消息验证码的长度。如密钥过短,将会降低安全强度[5]。
散列消息鉴别码就是发送方基于密钥K用散列函数计算出一个消息摘要。如果收方凭密钥K计算的消息摘要与发方传来的消息摘要一致,那就能证明是发送方发来的信息。
4 总 结
SSL VPN系统在解决远程访问的问题时具有明显优势,采用适合的安全策略,能够提升系统安全性能,节约部署成本,提高访问速度。
参考文献
[1]令晓静,等.SSL协议的分析及实现[EB/OL].http:∥www.51testing.com/html/12/540.html,2005-11-01.
[2]Chou W.Inside SSL:the secure sockets layer protocol[J].IT Professional,2002,4(4):47-52.
[3]Eric Rescorla.SSL与TLS[M].崔凯,译.北京:中国电力出版社,2002:20-28.
[4]宋军,等.分组密码工作模式发展动态及简评[J].计算机工程与科学,2003,25(2):38-39.
[5]张诚.HMAC在IPSec和SSL中的应用[J].中国新通信:技术版,2008,11(6):24.