刘日初 蒋嵘 张以皓
1解放军理工大学指挥自动化学院 江苏 210007 2解放军后勤指挥学院 北京 100858
本文分析了当前主流SSO系统及其存在的问题,以面向服务的思想为基本出发点,借鉴Kerberos认证协议的用户认证方式,提出一种基于 SOA的集中式用户认证授权服务架构,解决了现有信息系统中用户认证繁琐冗余,可管理性差,存在安全缺陷等问题。针对当前信息化发展现状和未来发展趋势,实现了支持C/S和B/S架构的单点登录系统,该系统可在异构的信息系统中实现应用系统单点登录,简化了用户的登录过程,同时提供集中和便捷的身份管理、安全的认证机制、权限管理和审计,以满足对信息系统使用的便捷性和安全管理的需求。
目前单点登录方案主要包括基于中间人、基于代理以及基于网关等几类,其中最具影响力的是Kerberos 认证协议。Kerberos目前已发展出多个版本,其功能在不断得到发展完善,但也还存在一些局限性,主要表现为使用共享密钥为认证依据,在密钥分发与管理方面存在困难以及口令和会话密钥难以安全存放在计算机系统中。
随着PKI技术的发展,又出现了基于证书的单点登录方案。证书机制沿用了PKI思想,通过可信第三方发放的证书实现用户和服务器之间的相互认证。基于证书的单点登录系统由证书授权(certificate authority,CA)、用户和服务器3个部分组成。其中,CA主要负责用户和服务器的证书分发、更新和用户权限的管理;用户和服务器通过CA分发的证书实现相互认证。该方案的特点是利用非对称密码认证机制实现单点登录。
Kerberos方案与基于证书的方案各有优缺点。Kerberos方案采用对称密码认证机制,计算资源的消耗低,单位时间响应认证请求能力强;而证书认证方案中,Server对 Client的身份验证无需CA在线;短期的CA故障不会使得整个系统崩溃。但是Kerberos方案存在重放攻击问题、单点失效问题,而证书方案对性能要求高,防御DDoS攻击能力差。
在多应用系统中,统一认证服务的主要目的是为多种应用提供单点登录解决方案,用户可以将后台应用系统(B/S结构的WEB应用系统和C/S结构的应用系统)和单点登录系统无缝整合在一起而无须修改原有应用系统。
统一认证服务架构选择以 SOA(Service Oriented Architecture)模型为基础构建。SOA是一种软件架构模型,它可以根据需要对松耦合的粗粒度应用组件进行分布式部署、组合和使用。服务之间采用松耦合有两大好处,第一是各种服务能够灵活组合,第二是每个服务的内部结构和实现发生改变时,其构成的整个应用程序无需改变。系统使用了基于SOAP协议的Web服务技术来构建统一身份认证服务架构,该技术正快速发展。是未来的发展方向,它提供了一个系统架构以及一系列的技术标准与规范。
在基于SOA的统一身份认证服务架构中,依据SOA定义的服务提供者和服务使用者角色,将统一身份认证服务所要实现的功能封装成为服务提供者,作为服务使用者的各应用系统必须依据统一服务接口所定义的调用方法才能调用服务。服务提供者按三层结构来设计,分别为统一认证中心数据库、统一信息管理和统一服务接口。对统一认证中心数据库的访问操作经过封装后。只有经过统一服务接口才能进行访问,同时在统一服务接口处设置相应的安全性检查和访问控制的策略匹配来提高对中心数据库的访问安全。
服务使用者调用一次服务的过程为:
(1)服务使用者依据认证语言及语法构造认证指令。
(2)使用与服务提供者约定的加密算法对认证指令进行加密。
(3)将加密后的密文封装成SOAP消息,并将消息发送到服务提供者。
(4)服务提供者收到SOAP消息后拆封并提取消息。
(5)使用与服务使用者约定的加密算法解密密文。
(6)对明文进行语法、语义进行有效性验证,通过验证后执行认证指令。
(7)将执行的结果加密、封装为SOAP消息并再发送给服务使用者。
(8)服务使用者收到 SOAP消息后拆封、解密并提取执行的结果。
上述过程中,认证指令选择采用XML(扩展标记语言)格式。这主要是考虑到XML是一种定义表示语言,它独立于操作平台和实现语言,能够被不同的应用解析表现。作为一种自描述性的语言,它实现了数据内容和表现形式的分离,已成为通用语言。正是XML的平台无关性,它为统一身份认证提供了一种理想的实现方法。
由于认证指令是基于XML格式的,所以构造与解析认证指令实际上是对XML的序列化与反序列化的过程,同时执行结果也是XML格式的,所以提取执行结果实际上也是对XML的处理。对认证指令及执行结果的加密与否在这里是可选的。当返回的执行结果的信息量很大而对安全性要求不高的内容可以不进行加密而直接返回明文,从而减少加密与解密所花的时间。
统一身份认证采用图1所示系统体系结构。
图1 统一认证系统体系结构
统一认证系统服务架构由单点登录,统一身份管理,统一授权管理,统一审计和统一安全管理中心组成。单点登录服务既能支持B/S系统,也能支持C/S系统。统一身份管理为多应用系统提供全局的用户身份管理,支持账号密码、USBKey、智能卡等多种不同方式的用户身份认证。统一授权管理管理所有可访问资源,提供资源的访问控制策略,能满足多级安全需求。安全管理中心提供对用户身份信息,权限,应用系统,审计信息的集中管理,并对统一认证服务系统本身进行维护管理,系统管理员通过Web界面进行统一管理。
(1)LDAP统一账号及账号同步管理
用户账号管理是统一身份认证的基础。账号管理考虑以若干账号管理组件提供用户账号全生命期管理,这些组件共同构成账号管理平台。
账号生命周期管理中首要的是对账号信息源的管理。利用账号管理平台作为统一的账号信息源提供用户主账号。利用LDAP技术的查询优势,通过LDAP技术构建LDAP服务器作为账号信息源。由于在许多实际系统中不能将所有的用户信息都集中存储,通常不同的应用系统有各自不同的用户信息源,单点登录系统允许用户信息有多个不同的可信来源,信息的不健全与不一致,为此采取同步技术实现了LDAP服务器和其它各可信账号信息源点之间的同步。在同步的实现方面,如果同步的数据源都以LDAP技术构建,则通过在账号管理平台中进行配置实现同步;如果要求同步的数据源构建技术不一致,则通过使用同步代理技术实现同步。
(2)委托管理和自注册管理
具有良好可用性的用户账号信息管理平台必须提供灵活的账号信息管理方式,为此,本系统将委托管理和自注册管理作为管理平台必备的基本功能。委托管理允许将某项管理功能分配给指定的下级单位或代理人员,是他们可以管理被委托部门或单位内部的特定用户,执行特定的权限,委托考虑以角色赋予的方式实现。自注册管理方面,根据定制的策略,使用户可以自助完成某些工作,无需管理员介入。
良好的扩展性是统一身份认证和管理平台必须支持的。通过开发认证服务接口来使得新开发的应用系统通过调用认证服务接口,从而实现与统一身份认证管理平台的集成,用户在平台上通过一次认证后,就可以被与其接口的应用系统认可。新开发的系统无需再建立用户数据库,只在LDAP服务器中拥有一套用户身份信息(用户名和密码,或数字证书标识)即可。
CA是证书认证的基础,本系统以PKI体系为蓝本,构建了一个浓缩版的PKI作为CA,为统一身份认证服务提供支持。构建的CA具备认证系统所需的所有重要功能,同时具有建设简便,使用灵活的特点。采用软件加密方式,也支持硬件加密方式的扩展,通过多级CA结构方式,形成分布式、模块化、安全的数字认证体系。系统的证书签发中心(CA)和用户密钥管理中心(KMC),分别完成签发数字证书和管理用户解密私钥的功能。系统所签发的证书遵循X.509 标准,证书介质支持磁盘、IC卡和USB Key等多种存储设备。签发的证书支持SSL、VPN、S/MIME安全电子邮件、智能卡登录等多种应用。
作为应用系统的基础平台,统一认证系统的安全特别是单点登录系统平台的安全性非常重要。在系统采用以下的方法保证安全:
(1)内容安全。通过应用安全级别较高的加密算法,对存储的用户登录信息。包括用户登录名称、登录 ID号码、电子数字证书等进行加密,保证即使系统管理员也无法获得或更改这些信息;
(2)传输安全。对于B/S系统,采用HTTPS/SSL安全传输通道,保证信息在传输中的安全;对于C/S系统,应用业界标准的安全认证协议,在传输前进行双向认证,同时,对通信内容进行加密和散列,也能保证信息在传输中的安全;
(3)事后安全。在安全模型中,除了事前评估,事中控制外,还有事后的审计。单点登录平台提供完善的日志记录功能,日志内容包括登录时间、登录用户身份、登录的应用系统、登录时使用的客户机IP地址、计算机名和MAC地址等。
随着信息化建设的不断推进,信息系统的功能规模持续扩展,各种业务系统在用户认证管理方面迫切需要进行有效的整合,通过整合来提高系统使用管理方面的便捷性以及系统整体的安全性。从长远角度看,未来新的多业务系统的建设都要提供统一认证服务,有关统一认证技术的研究及相关系统的开发应当成为信息化建设的重要组成部分,当前需要在现有技术的基础上,积极研究开发适合已有信息系统环境的统一认证服务系统,开发的系统既要对原有的系统认证方式提供一定的兼容性,同时也要具备良好的扩展性,使新增的应用系统能够“即插即用”。本文通过研究提出了统一身份认证服务架构,讨论了该系统的服务架构设计的参考模型选择,架构依赖的技术基础,架构的组成要素及逻辑关系,架构要素的设计技术与方法,架构的功能特性分析等,并基于SOA的统一身份认证系统实现了用户管理、身份认证、分级权限管理和单点登录等功能,从而提高了系统安全性和开发便利性。
[1]魏东,陈晓江,房鼎益.基于 SOA 体系结构的软件开发方法研究[J].微电子学与计算机.2005.
[2]何珍祥,董逸生.基于Web服务的SOA设计与传统软件设计方法的关系[J].计算机系统应用.2008.