李国良 李三平 高健强 刘 川
1(中科恒运股份有限公司 河北 石家庄 050091)2(甘肃省民政厅信息中心 甘肃 兰州 730030)
民政业务涉及到的品类繁多,包括养老、低保、婚姻、基层政权、殡葬、儿童福利等多项独立的业务类别,而在民政部门内部也会根据不同的业务划分不同的部门,在目前“大数据、大平台”的指引思路下,建立民政统一的智慧应用平台刻不容缓。民政数据的特点是分布广、数据量大、涉及多级用户、数据安全要求高。智慧民政应用平台一般集中部署在民政厅的机房中,在建立智慧民政应用平台之前,要确保各级数据的安全传输,对常用的安全解决方案进行分析。
(1) 专线传输。租用已经架设到村(社区)一级的运营商专线,通过购买专线服务的方式与政务网专线对接,实现所有数据通过专线交互。但每个行政单位每年的线路服务费用是3 600元,一般省份约有上万个行政单位,初步计算,每年大约需支付几千万元的线路维护费用。
优点:数据传输安全,传输速度高,能够满足所有单位民政数据的提交、获取要求。缺点:支付费用过高。
(2) 互联网数据加密。行政单位通过互联网与部署在民政厅机房的智慧民政应用平台交换数据,对传输数据进行加密,以密文的形式在互联网传输,智慧民政应用平台对接收到的数据解密。
优点:费用低,智慧民政应用平台对各类业务数据使用统一的算法加、解密,工作量小。缺点:数据容易被窃取和篡改,尤其是用户认证数据,被窃取后影响较大。
(3) 使用SSL VPN。厅里部署一套SSL VPN网关设备,智慧民政应用平台各业务系统作为访问资源配置在SSL VPN网关中,提前给每个行政单位分配VPN账号。行政单位使用已分配账号实现SSL VPN认证,认证通过后,建立虚拟传输通道,并通过资源访问各业务系统。
优点:费用较低,密码不泄露的情况下,能确保数据传输的安全。缺点:由于行政单位众多,已分配密码不易更换;密码没有失效机制。
针对以上分析,本文提出一种基于SSL VPN的安全加固系统。基于LDAP提供的认证中心、方便读写、密码管理等能力,实现了与SSL VPN很好的互补;设计了“双认证一加密”的数据传输安全加固系统,确保了数据在低成本付出的情况下数据的传输安全。
LDAP(Lightweight Directory Access Protocol)是轻量级目录访问协议。它是在X.500标准的基础上发展起来的,但比X.500更简单易用,还可以自行定制。LDAP完全支持TCP/IP,所以允许访问Internet。
(1) 存储模型。LDAP的存储类似树型结构,条目的数据结构中存储具体信息。若干条目组成一个目录信息树,条目与对象对应,DN为条目的唯一标识名,每个条目包含多个属性,且每个属性有一个或多个值。
LDAP服务器提供目录服务,以目录数据库方式存储网络信息,LDAP协议的信息模型由目录信息树和其相关概念构成。
dc(domain component)表示域名部分,其格式是将完整的域名拆分为几个部分;cn(common name)代表公共名称;ou(organization unit)代表组织单位;uid代表用户ID;关键字sn(surname)代表姓;dn(distinguished name)代表唯一辨别名,rdn(relative dn)代表相对辨别名;关键字c(country)代表国家;关键字o(organization)代表组织名。
(2) 安全模型。LDAP的安全模型主要通过安全通道、身份认证和访问控制实现。
身份认证:
① 匿名认证。适用于没有数据安全问题且不涉及访问权限的完全公开方式。
② 基本认证。通过用唯一辨别名(DN)和密码实现身份识别,密码识别分为简单密码、摘要密码认证。
③ SASL(Simple Authentication and Secure Layer)认证。在TLS和SSL安全通道基础上实现的身份认证,包括以数字证书实现的认证。
LDAP中的通信安全提供了基于TLS/SSL的安全保障。TLS/SSL以PKI信息安全技术为基础,该安全服务在Internet上广泛采用。LDAP通过StartTLS方式启动TLS服务,该服务既能够实现客户端身份与服务端身份的双向验证,又能够提供通信中数据完整性、保密性保护。
访问控制标准:目前并没有访问控制标准,但LDAP的访问控制相当丰富和灵活。访问控制策略语句实现LDAP中访问控制,而访问控制列表实现应用系统和RDBS。
由于行政单位众多,且组织机构庞杂,为了更好地进行认证,在民政厅建立独立的LDAP服务器,通过LDAP服务器来进行所有行政单位用户的统一管理。LDAP可以根据组织内部的结构来进行人员的划分,根据组织内部的组织架构来建立LDAP的人员用户结构。
SSL VPN是在传统VPN和IPSec VPN等成熟技术基础上提出来的,SSL VPN的明显优势在于移动接入和Web安全,它能够提供远程安全接入,而不需要安装或设定单独客户端软件。SSL在Web的安全性和易用性领域架起了一座桥梁。SSL VPN有三大好处:(1) 它很简单,不需要过多配置,可以即刻安装、即刻生效;(2) 不需要安装独立客户端,直接使用浏览器内嵌的SSL协议;(3) 兼容性好,能够适用于任何的操作系统及终端。
目前大部分SSL VPN产品支持Radius、LDAP/AD、LocalDB、第三方CA、Dkey、自建CA、硬件特征码、动态令牌、短信认证等多种安全认证方式(如图1所示),最大程度地保证了合法用户的介入。
图1 SSL VPN认证方式
SSL VPN能够与LDAP进行联动,在SSL VPN设备上无需建立LDAP的用户,直接把认证数据转向LDAP服务器,让LDAP直接判断,如图2所示。
图2 SSL VPN与LDAP结合
智慧民政应用平台部署在民政厅的机房里,很难通过架设专线到所有行政单位的高成本实现数据的安全传输,而面对业务类型多、涉及范围广、数据传输层级多、安全性要求高等的特性,妥善解决各类民政数据传输障碍,实现数据无缝对接,确保数据的安全传输,亟需一套高性能的安全加固系统。
在基于SSL VPN的密码不易更换、密码失效机制难以控制的基础上,利用LDAP的优良特性,设计了“双认证一加密”的实现方案。图3为系统设计流程。
图3 系统设计流程
应用客户端集成SSL VPN网关的客户端,通过SSL VPN配置界面配置服务端认证程序LDAP的地址和行政区划编码、随机码的获取路径。
应用服务端认证程序接受客户端的调用,生成随机码(16位字母和数字的组合)。提前收集位于互联网上用户的姓名、身份证号、手机号、行政区划编码、单位名称、邮箱、级别等,录入到服务端认证程序的数据库。
客户端程序启动后,让用户输入姓名、身份证号、手机号、行政区划编码,把姓名、身份证号、行政区划编码存入到本地的dat文件,并提交到服务端认证程序,与库里的已录入信息进行比对,验证身份。
验证通过后,生成随机码,把行政区划编码、随机码(作为SSL VPN认证的用户名和密码)存入LDAP的指定位置。SSL VPN网关会定时从服务端认证服务器的LDAP中读取行政区划编码。
服务端认证程序把随机码返回给客户端程序,客户端程序通过命令复制该随机码,启动SSL VPN客户端,并最小化自身。
把用户名和动态密码通过内部接口传递给SSL VPN客户端,实现到SSL VPN网关的第二次认证,SSL VPN网关到LDAP服务中验证动态密码的合法性,认证通过后,建立VPN传输隧道,实现“双认证一加密”的数据安全传输模式。
本系统利用LDAP的可操作性和认证功能,研发了基于SSL VPN的安全加固系统,在SSL VPN的基础上,实现了认证密码动态生成、密码失效机制,保证了民政业务数据的安全传输。图4为系统结构图。
图4 系统结构
录入:填写姓名、身份证号、区划编码、手机号等基本信息。
提交:把基本信息提交到服务端验证。
保存:基本信息保存到客户端本地文件,以后登录时只输入手机号即可实现第一次认证。
复制动态密码:接收到服务端返回的动态密码后,自动复制动态密码,供直接粘贴使用。
启动SSL VPN客户端:启动SSL VPN客户端时,调用SSL VPN客户端的启动程序。当应用客户端完成第一次认证并生成动态密码后,启动SSL VPN客户端,供第二次认证。
使用.Net的Winform控件开发客户端程序,并把SSL VPN客户端的API集成到双向认证客户端程序中,第一次认证完成后,把用户名和动态密码传递给SSL VPN客户端,并把该客户端程序调起,向SSL VPN网关发起第二次认证。
服务端WebService接收客户端程序的调用,验证客户端程序提交的姓名、身份证号、区划编码、手机号,验证通过后,根据算法生成16位动态密码,把动态密码返回给客户端程序,同时把动态密码更新到LDAP中。
服务端管理工具维护认证所需的基础数据,包括姓名、身份证号、区划编码、手机号、单位名称、邮箱、级别、备注等,维护操作包括查询、添加、删除。
用C#语言开发Webservice和服务端管理工具,Webservice程序部署在IIS中,以服务的形式发布,供双向认证客户端调用。
提前收集所有行政单位用户的姓名、身份证号、区划编码、手机号,存入Mysql数据库。当客户端发起第一次验证请求时,与库里的对应数据进行对比,比对成功后,作为第一次认证通过的依据。
数据加密应用客户端提交的姓名、身份证号、行政区划编码、手机号等信息,会在互联网上传输,为了保证数据传输的安全性与真实性,采用加密算法对数据进行加密。使用非对称加密算法MD5对客户端录入的基本信息进行加密,确保在互联网上传输的用户基本信息是密文,以防用户基本信息泄露。
LDAP做为用户认证中心,一方面接收应用服务端生成的动态密码,并更新到对应的树状结构的节点下;另一方面接收SSL VPN网关的认证,验证身份的真实性和有效性。在LDAP中管理的密码,能够配置密码失效策略(本系统的密码失效时间是1分钟),从而实现了密码的动态生成、失效管理,加固了SSL VPN自身的安全性。
用户维护:收集所有乡镇(街道)用户的区划编码,按节点录入到LDAP中User父节点下,为下一步不断更新各个子节点的密码属性做准备。
密码更新:应用客户端每发起一次认证请求,服务端都会生成一次唯一的动态密码,并更新到LDAP中指定的子节点属性下,为下一步用户使用动态密码认证做准备。
用户认证:SSL VPN网关接收到SSL VPN客户端的认证请求后,使用接收到的用户名和密码到LDAP中做认证,认证完成后,建立VPN虚拟通道。
密码失效管理:在User节点下,建立policy子节点,在该子节点下配置密码失效的策略,包括密码有效期、密码长度及复杂度、密码错误验证次数、密码持续时间等。
接收应用客户端请求:应用客户端嵌入SSL VPN客户端的启动程序,自动启动SSL VPN客户端。
发起VPN认证:通过API接收区划编码(做为用户名)和动态密码,发起认证请求。
接收认证:接收SSL VPN客户端发起的认证请求。
验证密码:接收到SSL VPN客户端传递的区划编码、动态密码后,到LDAP中验证真实性和有效性。
建立虚拟通道:验证通过后,建立安全虚拟传输通道。
SSL VPN网关配置LDAP的访问地址、访问用户和密码,定时从LDAP中把用户名同步到网关中,拿到SSL VPN客户端请求的用户名和动态密码后,到LDAP中验证,实现了第三方验证。
本部署方案通过在民政厅单位网络出口处旁路部署高性能SSL VPN安全设备,使用VPN技术建立专网,为省厅与各行政单位之间的各种业务、管理和相关通讯提供安全保障。同时,开启访问控制和攻击防护等功能来保护厅核心区的服务器安全。通过安全设备为接入互联网的民政单位办公网提供安全的上网保障。SSL VPN网关、应用服务端的WebService部署在互联网环境,便于各个行政单位用户的访问和认证,LDAP及应用服务端数据库部署在内网环境,确保用户账号信息及基本信息的安全。
为充分验证该安全加固系统的工程实用性,对系统进行综合测试。
(1) 功能测试。测试方案如下:
在SSL VPN网关配置界面配置LDAP的连接地址、用户名、密码;
把一套姓名、身份证号、行政区划编码、手机号信息存入应用服务端的Mysql数据库;
在应用客户端输入姓名、身份证号、行政区划编码、手机号,调用WebService提交认证信息;
自动启动SSL VPN客户端并向SSL VPN网关发起认证,认证完成后,能够建立虚拟专用通道,看到已配置完成的智慧民政应用平台的所有资源;
其他边界测试。
(2) 性能测试。性能测试方案如表1所示。
表1 性能测试指标
续表1
(1) 功能测试结果。能够实现认证请求、生成动态密码、动态密码1分钟失效、建立VPN虚拟通道、访问内外智慧民政应用平台资源。
(2) 性能测试结果。性能测试结果如表2所示。
通过在单服务器上压力测试,400个用户并发使用应用客户端发起调用,持续10分钟加压,请求数为4 260,调用错误率为0.00%,平均响应时间约为25.8秒,最小响应时间为1.35秒,最大响应时间为30.4秒。应用服务端最终部署在4节点集群,能够满足实际用户调用需求。
本文所设计与实现的“双认证一加密”基于SSL VPN的安全加固系统,将应用客户端、应用服务端、LDAP、SSL VPN客户端与SSL VPN网关结合到了一起,利用LDAP的可操作性、密码管理、失效策略、认证中心等特征,有效解决了SSL VPN本身密码固化、长期有效的问题,极大地增强了SSL VPN的安全性。
“双认证一加密”的安全加固系统已在多个省份的智慧民政应用平台中得到了使用,从根本上解决了数据传输的安全问题,带来的效益如下:
(1) 该方案只涉及到购买一套安全加固系统、SSL VPN网关设备和接入点的费用,相比租用运营商的专线,每省每年要节省两个数量级的费用,给政府节约了相当可观的成本。
(2) 动态密码随机生成、1分钟失效策略,使整套安全加固系统的安全等级有了很大提高,为数据更加安全传输提供了有力支撑。
(3) 相比传统VPN设备,不必为每个行政单位用户配备一个客户端硬件。与其他动态口令设备相比,该加固系统使用纯软件实现了动态密码策略管理,给用户使用提供了极大地便利,简化了行政单位工作人员的操作,提高了工作人员的效率。
本系统在所推广应用的几个省份中,通过几个版本的迭代,得到了广大行政单位用户的好评。