近年来,互联网技术进入史无前例的发展和增长阶段,大量传统的业务系统也逐渐开始采用网络化、信息化的处理方式。这导致越来越多基于网络环境的应用系统不断涌现,系统的复杂程度和业务的特性与多样化的需求有着直接的关系。各式各样的应用系统不断提高了大型企业、高校、国家机构单位员工办公的效率,以及各样的应用系统不断提高了大型企业、高校、国家机构单位员工办公的效率,也极大地便利了企业管理。然而,随着需求的不断扩大,企业内部相对独立的系统数量在不断增长,例如,在高校里常有选课系统、图书馆管理系统、一卡通系统、教务系统等;在大型企业里有办公自动化系统(OA)、ERP系统、绩效管理系统、员工管理系统以及CRM系统等。然而,由于这些系统都是相对独立部署和独立使用,随着应用系统数量的不断增加,用户不得不牢记多套用户名和口令。
实践表明,过多的系统登录认证会导致用户出错的可能性不断增加。过多的登录错误次数可能导致非法截获和破坏。为了应对这些情况,应用系统管理员通常会增加更多的安全措施,提高系统的复杂性,但也导致系统的可用性不断下降。对于用户而言,为了尽量减少登录出错,提高工作效率,用户一般会降低口令的复杂度,甚至对所有系统设置最简单的口令进行登录、甚至多个业务系统均采用同样的口令。这样反而降低了系统的安全性,危及到企业的安全。
为了解决这些安全现状,统一身份认证与单点登录技术被提出并逐渐得到广泛的认可。下面结合一个企业内部统一认证管理系统实例,整体了解统一身份认证系统的原理和结构。
我们专注于企业信息化建设和安全管理多年,可快速定制开发企业需要的多种应用系统,如生产管理、物资管理、车间看板、车辆管理、合同管理、流程审批、一站式办事大厅等。自研统一身份认证系统深入企业身份信息安全管理,如有这方面的需求请私信:交流
(一)统一身份认证管理与单点登录技术
统一身份认证管理的原则是将多个应用系统的用户身份管理与该应用系统的业务剥离开来。多个应用系统的身份管理统一到身份认证管理平台,由该平台负责用户的身份管理、用户权限管理以及用户登录。这就是所谓的统一身份认证管理平台。当用户需要访问应用系统时,可以首先登录到统一身份认证管理平台,由统一身份管理平台颁发访问的票据给目标应用系统。用户只需在通过统一身份认证平台后,由身份管理平台负责与应用系统进行认证交互。在应用层面上,用户一次登录便可无缝访问多个应用系统,大大降低了用户操作的复杂度,其优越性不言而喻。
图8是一个典型的采用统一身份管理与认证的分布式访问网络结构,应用系统1到应用系统n是相互独立的应用服务系统。所有应用系统前置统一认证平台,认证平台包括了集中化的身份管理、集中身份认证、集中访问授权和集中化审计管理。集中身份管理的好处在于可以实现对用户在系统中的生命周期的统一管理,同时也可以建立与其他应用系统的同步机制,管理员可以做到“一次修改,全部生效”的能力。同样地,采用集中化身份管理方式帮助用户摆脱了记忆多个用户名/口令的痛苦,降低用户操作的复杂性。另外,统一身份管理平台有利于管理员实现集中化的访问授权管理,也可以做到“一次授权,随处可用”的目的。
图8 统一身份认证和单点登录模型
在统一身份管理的基础上,用户可以通过登录到统一身份认证平台,由统一身份认证平台向应用系统颁发访问票据,从而达到用户一次登录、随处无缝访问的效果,当然前提条件是应用系统对认证管理系统的完全信任。这种方式被称为单点登录(SSO, Single Sign-On)。单点登录技术拥有诸多的优点,首先,它大大地提高了用户的工作效率,用户无需再记忆大量的用户名和口令;其次,SSO提供了系统的安全性,简化了系统管理员的工作。用户的认证信息统一在认证平台中保存,方便管理员实现集中授权、身份集中管理。最后,SSO提供了一套相对完整的身份认证框架,可扩展性强,能够使系统在研发过程中提高效率,同时也保证了系统的安全性能。
目前,基于这种统一身份管理的单点登录技术大致可以分为以下几个类型。
(1)第一种是如本章描述的Kerberos认证协议机制,Kerberos系统以KDC为信任中心实现对多个服务器的访问。用户先通过Kerberos AS服务的验证后获取到TGS服务器的票据,在访问应用服务器时,用户无需再次登录,仅需携带TGT访问TGS服务器以获取访问目标服务器的Ticket。服务器通过验证票据以确定客户的合法身份。Kerberos的特点是典型的集中式身份管理方式,并且是由客户主动发起票据请求后才可访问应用服务器。而应用服务器无需和认证中心进行确认。
(2)第二种类型是基于Web服务的单点登录技术,如微软的Pass Port。这种单点登录技术的特点是采用Web技术的特点。用户向某个应用服务器发送访问请求时,运行在该运行服务器上的访问控制请求检查到用户没有登录则将用户重定向到统一身份认证平台,用户通过身份认证后,认证服务器将生成Cookie(包含了用户身份验证标识),并发送票据TGT(包含用户唯一标识符PUID和时间戳)。用户浏览器携带Cookie和TGT访问应用服务器,如果应用服务器可以成功解密cookie并核对身份则认为该用户是合法用户,从而访问成功。
(3)联盟方式,Liberty Aliance 自由联盟由近30个组织于2001年11月创立,Libtery Aliance 建立了一种开放的、标准的、易于实现的统一身份管理方法。Liberty Aliance 是一种完全针对开放式网络、跨域的分布式统一认证方法,用户只需要使用在任何域的任何设备登录并通过联盟的身份验证之后,就可以访问多个Web站点,无需重复认证。当用户向某联盟站点访问时,若检测到没有登录,Web 站点将用户重定向到本地的联盟服务器上,如果本地服务器发现该用户不存在则会将用户定向到用户所在域的联盟服务器上。联盟认证服务器在验证了用户的身份后将生成一个SAML断言返回给用户。用户将SAML断言交给本地认证服务器,之后本地服务器将为本次访问创建Cookie,并将用户重定向到访问站点上。
目前,统一身份认证平台得到了广泛的应用,比较著名的有Microsoft 的.Net Passport,基于J2EE体系结构的Pubcooie、Web Auth、JOSSO(JAVA Open Single Sign-On)等。市场上商用的统一身份认证平台比比皆是。但是总的来说,统一身份认证平台的基本原理和结构相对比较类似,而具体选择什么样的身份管理方式和认证方法则依赖于真实的环境需求。
(二)UNIT认证系统的基本结构
图9是UNIT认证系统的整体结构,UNIT认证系统为大型企业内部的多个应用系统提供统一身份管理和单点登录服务。UNIT采用PKI基础设施为基础,建立以数字证书为信任基础的身份管理体系,融合集中授权、集中审计等功能,从而实现对内部系统用户的全面管控。当然,鉴于UNIT的架构特性,也可以提供外域认证的服务。
图9 统一身份认证平台结构
(1)统一用户管理。在统一身份认证系统中,核心数据是用户的身份数据,是实现认证管理和访问控制的基础。由于企业内部的应用子系统相对独立,并且安全要求和实现架构各有不同,为了满足松散性、易兼容、易扩展的要求,UNIT 系统采用主账户—多子账户的身份映射特点,用户可以将自己在每个应用系统中的子账号映射到统一身份认证平台的主账号上,由主账号代理登录应用系统(如图10所示),这种映射方式十分有利于现有系统的改造和新的应用系统快速接入。在UNIT系统中,每个用户都有一张唯一标识的数字证书与之对应,为用户在登录时提供双向的身份认证服务。为了存储这种映射关系方式,也便于在单点登录时实现快速查询,UNIT采用LDAP(Lightweight Directory Access Protocol)目录服务存储用户信息。LDAP目录以树状的层次结构来存储数据,非常符合企业系统的结构。通过LDAP的映射关系,用户即可实现一次登录、多次有效的功能,同时也依靠LDAP实现对应用系统的访问权限控制和用户生命周期维护管理功能。
图10 账户映射关系
(2)统一证书管理。采用数字证书作为用户认证方式的统一身份管理系统集成证书管理服务,包括用户证书的申请、审批、核发、更新、吊销等生命周期。系统也可以不直接实现这一系列功能,并有第三方CA机构复杂办法和管理证书。为了安全的保存用户证书,用户手中一般都配备USB Key。另外,对于机密性要求高的环境,可以采用SSL建立专用秘密传输通道以提高平台的安全性。
(3)统一管理认证。实现多业务系统的统一认证,为企业提供单点登录服务,用户只需要登录一次就可以访问所有相互信任的应用系统。由于单点登录涉及到对很多访问权限的授权,因此,保证单点认证过程的安全是非常重要的一点。确保做到这点的一个方法是用数字证书来代替静态的用户名密码对。数字证书为每次登录生成不同的一次性使用的密码,并且将生成的密码安全地在网络上传输,这使攻击者实际不可能发现可使用的密码。基于证书的认证还防止绕过系统直接登录到次级系统的企图,用户名密码对也被加密以防止监测攻击。系统还可以支持两重或三重认证,将密码、证书、生物特征认证工具组合在一起使用。
(4)统一授权管理。根据企业安全策略,采用基于角色的访问控制技术,实现支持多应用系统的集中、灵活的访问控制和授权管理功能,提高管理效率。
(三)UNIT认证系统的身份认证
统一身份认证平台是企业内部系统安全登录的基础,只有安全的认证机制才可以保证企业大门不被非法人员进入。图11给出了UNIT认证系统中一个用户访问应用系统的示意,用户首先必须通过统一身份认证平台的身份认证才可获得访问令牌从而无缝访问多个应用系统。
图11 统一身份认证平台的登录与身份认证
为了提供便利的多样化身份认证方式,统一身份认证平台一般支持多种常用的身份认证方法,包括用户名/口令、数字证书、Windows域认证、通行码,当然,认证的方式不仅仅局限于这几种,也可以根据用户的具体需求对认证方式进行扩展。UNIT 身份认证系统采用多因子认证技术保障用户的安全登录。如图12所示,UNIT采用静态口令、智能卡、生物识别的多因子强认证技术实现身份认证。
图12 强身份认证方式
(1)用户名/口令认证
用户名/口令的方式认证用户身份是目前最普遍的认证方式,静态口令虽然是弱类型的身份认证,但是有技术结构简单、成本低的缺点,可以用于安全性相对需求不高的资源访问。例如,在查看个人信息时可以要求用户输入口令。
(2)智能卡认证
UNIT 采用了数字证书作为身份信赖,用户不但可以通过数字证书完成身份认证,还可以进一步进行安全加密,数字签名等操作。在本系统中,采用智能卡作为存储介质,可以安全存储用户的证书,在登录时可要求验证用户的数字证书,从而实现强身份认证。例如,用户在进行单点登录时可以使用智能卡作为认证的前置条件。在涉及企业交易业务时,可采用数字证书进行签名、验签。
(3)生物识别
为增强认证的安全性,UNIT 也采用了生物识别技术,如指纹识别,目的是进一步加强对用户的认证。
(四)UNIT系统的单点登录
单点登录访问的实现方式有多种,一般可以分为软件代理登录和硬件网关级登录2种。软件代理登录的方式是指采用插入式软件模块自动为用户实现登录,如 Web 拦截器(Intercepting Web Agent),Web拦截器是一种基于过滤技术(Filter)的应用防火墙。使用Web拦截器在请求到达之前拦截请求,并在应用外部提供认证和授权。如图13(a)所示,Web拦截器可以安装在Web服务器中,通过在Web服务器上拦截入站请求和执行访问控制策略对入站请求进行认证和授权。
硬件网关及单点登录采用前置硬件网关系统,从网络上拦截和验证用户身份,如图13 (b)所示。安全服务代理拦截来自客户端的所有请求,确定请求服务,然后执行服务要求的安全策略,并将请求从入站协议转换为目标服务要求的协议,最后将请求转发给目标服务。在返回路径上,安全服务代理将结果从服务使用的协议和格式转换为客户要求的协议和格式。它也可以保留客户会话中首次请求创建的安全上下文,供以后的请求使用。
图13 单点登录的2种方式
在UNIT系统中采用Web拦截的方式实现单点登录,采用这种方式可以降低部署成本,简化网络的部署复杂度。在UNIT系统中,登录过程如图14所示。
当用户访问应用系统时,假设其之前没有登录过,则系统将进行如下的身份认证流程。
图14 单点登录认证过程
(1)用户访问目标应用系统,Web拦截器将截获用户的访问请求,首先,拦截器检查被请求的URL是否在无需保护的列表中。如果是则请求被拦截器放行,拦截器不再进行用户身份验证流程,用户访问正常。
(2)如果请求的资源需要身份认证和保护,则Web拦截器将检查请求中是否包含有效的Cookie,若存在 Cookie,拦截器通过与统一认证服务器建立的 SSL 通道向认证服务器验证Cookie是否有效。如果请求有效,则拦截器通过用户的访问请求。
(3)如果请求中没有携带Cookie 或者Cookie 存在但无效,拦截器则将用户的请求重定向到认证服务器的登录界面,要求用户按照系统要求进行常规登录和身份验证。
(4)认证服务器验证用户的登录请求,确认其合法后,将为用户生成一个访问票据,该票据存放在用户的Cookie中。浏览器将保存Cookie值。用户的请求同时被重定向到开始请求的资源地址。
(5)用户携带有效的Cookie 向应用系统发起访问请求,此时拦截器重复第(2)个步骤,确定用户的身份后放行访问请求。
当用户在第一次登录后,Cookie被保留在本地一段时间,因此在有效期内,用户访问该企业的其他应用系统时,只需提交有效的Cookie值给Web拦截器进行验证,无需再次登录即可直接访问资源。
在这个过程中,用户、应用系统与应用服务器之间采用SSL进行通信,使敌手截获和窃取有效信息的可能性十分小。一旦用户通过系统的验证后,可以获得包含票据、用户信息以及与用户访问环境相关参数的有效Cookie。这个Cookie 数据是在SSL通道中传递的,因此, Cookie 被截获的可能性十分低。由于Cookie内容也是被加密的,敌手截获Cookie也无法与应用服务器建立安全访问通道。因此,整个身份认证过程是可靠安全的。
九、数字证书应用案例
在传统的企业自有的网络中,企业中的各个分支机构及其客户是通过专用的线路连接的,即企业的员工之间、企业与其客户之间使用专门的网络设备相互连接在一起。随着Internet的应用以及电子商务的不断发展,企业员工移动办公的现象越来越普遍,企业的业务分支机构及其客户的分布越来越广泛。传统的网络连接的方式越来越无法适应此种商务模式。因此,越来越多的企业使用基于Internet的办公系统,如图15所示。
图15 基于Internet的企业办公网络
在此环境下,企业面临着多种威胁,如企业的员工通过Internet下载或上传企业敏感的信息,信息未经过加密,被别人窃听;如入侵者试图不经过授权来访问企业的敏感的信息;如病毒、间谍软件等不健康的软件试图侵入企业内部的主机,这些侵入可能是通过一个被信任用户的一些日常的通信行为,如打开一个E-mail的附件或者下载一个文件。
面对这些威胁,企业需要建立全面的网络安全管理体系,具体包括:
(1)企业需制定网络的使用者及其访问的信息资源的安全方针,即这个用户或者组用户可以对哪些信息资源进行读、写、执行的操作;
(2)企业需制定网络的使用者所传输的信息的安全方针,即哪些信息需要加密、哪些信息需要防篡改、哪些信息需要防止被否认;
(3)企业需制定主机的安全方针,即在主机上安装哪些操作系统、入侵检测系统、反病毒系统、应用系统、数据库系统等;
(4)企业还需制定审计的方针,即定期审计网络的使用者及所访问的资源的审计记录、主机的审计记录以及应用系统的使用审计记录等,以便审计和跟踪安全事件的发生、运行及结果。
由此可见,不可否认的强认证系统和对信息的保护是满足以上需求的基本条件,使用基于智能密码钥匙的数字证书认证系统可以实现用户登录安全认证、传输数据的机密性保护、完整性检查和抗抵赖性。某保险公司的安全办公系统充分尊重所面临的这些风险,采用PKI技术作为保障公司信息安全的方案,并采用某型智能密码钥匙作为保存和应用RSA密钥对和证书的基础设备。在安全办公系统中,智能密码钥匙用于Windows域登录、支持SSL VPN客户端、支持Office Word文档签章系统。
某保险公司的安全办公系统由公文办公系统、证书认证系统、VPN服务器、VPN客户端、智能密码钥匙(含PKI支撑工具包)组成。公司总部及各分支机构的员工每人持有一把智能密码钥匙,其中保存着本人的X.509数字证书及其相关联的私钥。私钥被物理保护在智能密码钥匙中,不能够被他人窃取和修改。员工使用智能密码钥匙通过SSL VPN客户端登录安全办公系统、安全认证系统验证员工的签名来确认员工的身份,并在员工之间建立起安全的数据传输通道,以确保所传输数据的机密性和完整性,使处理公文、报表等日常的工作能够在安全的环境下进行,企业的敏感信息得到了很好的保护。
发布公文时,发布者使用所持有的智能密码钥匙对公文签名,并将签名隐藏在签章图片中,验证者取得持有者的证书,就可以验证此签名了。由于签名是利用发布者持有的私钥对公文的摘要加密的结果,而发布者是该私钥的唯一持有者,所以不能够否认他对公文的任何改动。另外,通过验证公文的摘要可判断公文是否完整。
下载公文时,服务器得到下载者的证书,使用证书中的公钥将加密了公文的密钥加密,并发送给下载者。由于下载者是对应私钥的唯一持有者,只有下载者能够解密并得到这个用来加密公文的密钥,从而解密得到公文的明文。同样地,上传公文时,先得到服务器的证书,用证书中的公钥将加密了公文的密钥加密,并发送给服务器。由于服务器是对应私钥的唯一的持有者,只有持有者能够解密并得到这个用来加密公文的密钥,从而可以解密公文。
登录办公系统时,用户利用所持有的智能密码钥匙对办公系统所产生的随机数签名,办公系统得到这个签名和持有者的证书后,如果验证签名和证书都合法,由于持有者是私钥的唯一占有者,就能够确认持有者的身份信息,并为其授权。
数字证书以及智能密码钥匙的应用,是保障信息安全和访问控制的基础,为安全办公系统成功地运转提供坚固的支撑,使办公系统具备良好的安全性,有效地保护了公司的信息资源。