高校数字图书馆中SSL VPN系统的安全策略研究
2010-03-22何玲
何 玲
(天津农学院计算机科学与信息工程系,天津 300384)
高校数字图书馆中SSL VPN系统的安全策略研究
何 玲
(天津农学院计算机科学与信息工程系,天津 300384)
对高校数字图书馆远程访问的安全需求进行分析,提出系统构建时应用的安全策略,并在此基础上,利用OpenVPN和二次开发程序具体实现适合于高校图书馆这一具体应用领域的SSL VPN系统.
数字图书馆;OpenVPN;身份认证;加密算法
1 高效数字图书馆远程访问的安全需求
1.1 一般需求
目前,大学图书馆提供的数字资源在教学和科研过程中发挥着重要的作用.为了解决资源访问受IP地址限制的问题,很多高校图书馆都提供数字资源的远程访问功能,使教师在校外也能访问到受限资源[1].在实现远程访问功能时,为保护著作人的权益及数据库提供商的利益,需要从以下方面保证数据的安全性.第一,为确保只有被授权的用户才能访问数字图书馆资源,需提供身份验证机制;第二,为保护数据在传输过程中的机密性,需采用加密解密机制;第三,为防止数据在传输过程中被损坏或被恶意篡改,需采用完整性验证机制.SSL协议[2]可以为实现这些安全需求提供保障,因此,通过构建 SSL VPN系统可以解决高校数字资源远程访问的问题.
1.2 特殊需求
不同应用环境下,VPN系统对安全等级、速度快慢、部署成本高低和是否易用具有不同的侧重.应用于大学数字图书馆的SSL VPN系统在满足安全需求的同时,还要考虑一些具体特点:第一,客户端身份验证方式应尽量简单;第二,需要防止合法用户有意或无意的将自己的身份证明转告给他人,造成资源的滥用,增加整个系统的不安全因素;第三,由于用户数量有限,为了降低成本,高校图书馆多以软件方式构建VPN系统,因此,安全算法的复杂程度直接影响资源的访问速度.所以,在应用安全策略时,应该在安全和速度之间取得平衡,采用适合的安全策略,构建高校数字图书馆的SSL VPN系统.
2 安全策略的具体实施
现有的SSL VPN软件产品已经比较成熟,可以用来构建安全的SSL VPN系统,但为了满足特定环境的需求,软件应支持二次开发和多种配置方法.OpenVPN是一种功能齐全、安全可靠的SSL VPN软件,该软件主要借助OpenSSL库实现[3],具备开源、支持二次开发、可配置性强和支持多种操作系统等其他商业SSL VPN软件所不具备的优点.本研究在W indow s操作系统下,对OpenVPN进行二次开发,构建一个能满足高校数字图书馆远程访问安全需求的SSL VPN系统.
2.1 证书和密码方式相结合进行身份验证
服务器与客户端通信之前,双方要相互认证身份.为保证通信安全,SSL协议要求必须以 PKI证书的方式认证服务器端身份,而客户端的身份认证方式可有多种选择.若采用证书方式认证客户端身份,生成和分发证书的过程加大了管理人员的工作量.同时,服务器对客户端进行证书认证的过程,也会增加服务器开销,影响访问速度.如果采用用户名/密码的方式进行客户端身份认证,用户申请“用户名”和“密码”的工作以及管理员审核资格的工作就可以借助Web应用程序自动进行,从而节省人力.在SSL协议支持下,服务器完成证书认证之后,即在客户端和服务器之间建立了一个安全的SSL连接.客户端的“用户名”和“密码”是在安全连接的基础上,以密文方式传送给服务器的,可以有效地避免被窃听.因此,本系统采用证书方式认证服务器端身份,以用户名/密码方式认证客户端身份.
为认证服务器端身份,需要创建认证中心(CA)和服务器端证书.OpenSSL库提供了一系列证书管理命令,OpenVPN将这些命令写成批命令文件,方便用户生成证书文件,具体实施方法为:
(1)执行批命令build-ca.bat,生成认证中心文件ca.crt和ca.key,必须由此文件签发和管理服务器证书,文件ca.crt需要同时拷贝给客户端;
(2)执行批命令 build-dh.bat,生成文件dh1024.pem,用于密钥交换;
(3)执行批命令 build-key-server.bat server,生成文件server.crt,server.csr和server.key,这些是由CA签发的服务器端证书和私钥.
在OpenVPN的服务器配置文件中加入语句“ca ca.crt”“,cert server.crt”“,key server.key”和“dh dh1024.pem”;在客户端配置文件中加入语句“ca ca.crt”,并使用这些文件进行身份认证和密钥交换.
OpenVPN提供接口,允许编写程序实现用户名/密码等客户端身份认证方式.M ySql数据库系统与C语言结合能够实现高效、简便的数据库操作.
用M ySql设计数据库 vpnusers,建立二维表Login(userid ,pass,active,times).其中 “,userid”是登录账号 “,pass”是登录密码 “,active”是用户激活状态(0锁定/1激活)“,times”是登录次数.
在OpenV PN中设置环境变量 username和password.编写C语言程序check.c,该程序从环境变量中获取 username和password的值,并到表Login中查询账号、密码和激活状态,从而确定用户能否登录.在OpenVPN服务器配置中增加语句“auth-user-pass-verify check.exe via-env”,则运行OpenVPN客户端,即触发check.exe执行.
为方便用户且减轻管理员工作,用asp.net设计Web应用程序,借助图书馆现有的借阅证管理数据库和vpnusers数据库,实现网上申请开通VPN、修改密码和自动审核功能.
2.2 统计用户登录次数,防止密码泄露
为了防止合法用户将自己的用户名和密码大范围转告他人或用户密码被破解,系统需要在数据库中记录每个用户当天的登录次数,如果超出了管理员设定的阈值,系统将自动关闭该用户的使用权.
服务器日志文件openvpn.log中记录了连接用户名、连接时间和断开时间等信息.编写C语言程序police.c,从日志文件中读取信息,计算每个用户24 h内的连接次数,并更新表Login的times字段,程序每天定时自动运行一次.当times字段值超过预设阈值时,“active”字段值由1变为0,表示用户处于锁定状态,暂停VPN使用权,直至人工干预后才能继续使用.
此外,OpenVPN配置语句“dup licate-cn”表示允许相同用户同时登录,删除该项配置,可以及时发现并有效防止用户名/密码被他人使用.
2.3 用blowfish-CBC算法保护数据机密性
为防止数据内容被非法窃听,SSL协议要求通信双方在握手阶段协商好加密算法并交换密钥,此后的数据通信则以此密钥加密[4].加解密算法分为对称和非对称两种.对称算法的加解密速度较非对称算法高很多,所以当对系统安全级别要求不是很高时,VPN系统采用对称加密算法.blow fish-CBC是一种对称密钥算法[5].
blow fish算法是一种64 bit的可变密钥长度的分组密码算法,具有如下特点:
(1)快速:在32 bit微处理器上加密数据的速率是每个字节用18个时钟周期;
(2)紧凑:可以在少于5 k的内存上运行;
(3)可变的安全性:密钥长度可变,最长可达448 bit,使得同时兼顾更高速度和更高安全性成为可能.
blow fish-CBC将blow fish算法和密码分组链接(CBC)模式结合起来,即加密前先对明文数据块做CBC变换,然后再进行加密.
OpenVPN支持多种加密算法,修改服务器和客户端的配置文件可以设定使用何种加密算法.在服务器与客户端的配置文件中增加语句“cipher BFCBC”即表示使用blow fish-CBC算法加密数据.
3 结论
SSL VPN系统在解决远程访问的问题时优势明显,根据具体应用场合,采用适合的安全策略,能够有效提升系统安全性能,节约部署成本,提高访问速度.OpenVPN作为出色的开源SSL VPN软件,为实现具体的安全策略提供了可能.
[1] 王颖,熊军洁,王媛.SSL VPN-攀登巴别塔的云梯[J].图书馆工作与研究,2009,7:46-47.
[2] Chou W.Inside SSL:the secure sockets layer p rotocol[J].IT Professional,2002,4(4):47-52.
[3] Charlie H.OpenVPN and the SSL VPN revolution[EB/OL].[2009-03-05].http://www.openvpn.net/index.php/opensource/documentation.htm l.
[4] 金家琴.基于SSL VPN技术实现公共图书馆电子资源远程访问[J].图书馆杂志,2009,28(3):62-63.
[5] 钟黔川,朱清新.Blow fish密码系统分析[J].计算机应用,2007,27(12):40-41.
Study on security policy of SSL VPN system in college digital library
H E L ing
(Department of Computer Science and Information Technology,Tianjin Agriculture College,Tianjin 300384,China)
Security requirement of college digital library remote access is analyzed in this paper.And security algorithm is discussed which is fit of digital library.A SSL VPN system is realized making use of OpenVPN and self p rogramming in the end.
digital library;Open VPN;indentity authentication;encrypt arithmetic
TP309.1
A
1671-1114(2010)01-0027-02
2009-08-03
天津农学院科学研究发展基金资助项目(2007005)
何 玲(1979—),女,讲师,主要从事计算机网络和编程方面的研究.E-mail:heling@tjau.edu.cn
(责任编校 纪翠荣)