简谈从桌面到业务系统单点的研究及实现
2022-11-23曾嵘
曾 嵘
(红云红河烟草(集团)有限责任公司, 云南 昆明 650231)
0 前言
目前红云红河烟草集团已经建立了身份认证体系,但是用户登录到操作系统桌面后,由于业务系统认证的统一身份认证体系与红云红河集团用户使用的操作系统的登录认证体系分属于二套体系,没能贯通。红云红河集团用户在办公访问业务系统时,用户需要先登录操作系统进行身份验证,再登录业务系统进行身份验证,给用户带来不友好的体验。
在红云红河集团用户使用windows的域环境时,红云红河集团业务系统集成windows域完成用户身份验证,这样加入到红云红河集团域的计算机就能实现红云红河集团用户登录到操作系统后,直接利用已登录的域帐号进行单点登录实现身份传递进入业务系统。此单点登录身份漫游方案是基于Kerberos 协议完成的,AD域作为Kerberos KDC提供密钥分发服务。
上述通过windows域环境办公集成用户、业务系统身份传递的方式,存在很多局限性。如需要搭建Windows 域环境,用户计算机需要加入到域,业务系统需要采用微软技术开发并部署于IIS上等;不支持非windows系统如linux系统、移动终端、国产操作系统等;采用其它非微软技术开发的业务系统需集成桌面单点时,集成复杂,实现难度大。
本方案考虑基于 与传统的实现方式不同,不基于Kerberos 协议,不需要域环境,通过在用户计算机上安装客户端,后台提供统一认证服务器的方式,实现域内、域外、非windows的系统,从桌面到业务系统的单点登录。
1 使用需求
现有的统一认证单点系统大多是解决由业务系统到业务系统之间的单点登录,如何解决由操作系统到业务系统的单点登录,即用户登录到操作系统上后,再单点登录到各业系统。
微软windows的域桌面身份认证单点登录实现的技术路线,是基于Kerberos 协议,以AD域环境作为基础。并且基于微软windows的域桌面认证后,进行信任传递时有只限于BS的业务系统,不支持CS的系统单点登录的局限性。
基于红云红河现有的环境,需考虑基于数字证书技术来实现操作系统桌面到业务系统的单点。既支持实现基于域环境下,从操作系统桌面到业务系统的身份漫游。同时可实现在非域环境下从操作系统桌面到业务系统的单点登录。
在实现非windows操作系统下从操作系统桌面到BS和CS架构业务系统的单点登录。
2 方案设计与实现
2.1 整体设计架构
基于数字证书、PKI技术,为用户计算机发放数字证书,标识和管理可信用户计算机。用户在认证客户端发起终端注册请求,认证客户端生成公私钥对,并通过P10证书请求的方式,提交注册申请到认证服务端。认证服务端系统管理员对注册申请审核通过后,为用户计算机生成设备证书,并把用户计算机列入到可信设备清单中。只有在可信设备清单中的用户计算机上发起的访问请求,才可完成单点登录到业务系统。
统一身份认证系统可分为身份认证客户端和身份认证服务端2个部分(图1)。
图1 统一身份认证系统组成
认证客户端安装到用户计算机或是手机等终端设备上,负责为终端设备生成唯一设备ID,向认证服务端进行注册,申请签名证书,并向业务系统提供认证信息等功能。认证服务端主要负责维护可信终端设备,并向业务系统提供认证服务。
认证服务端主要有帐号管理模块,可信设备管理模块,终端证书管理模块。帐号管理模块主要维护用户在业务系统中的帐号、以及用户登录到一个或是多个终端设备上的帐号信息。可信设备管理模块主要负责接收来自终端的注册,并对注册的终端设备进行审核,通过审核的终端纳入可信终端设备白名单。终端证书管理模块负责生成和维护终端设备证书。签名认证模块负责对认证书信息进行签名验证。
2.2 基于数字证书的身份认证
将用户信息配合CA的签名,附加到用户的公钥后最终形成用户的数字证书。利用公私密钥对,对公钥和私钥进行区分,进行信息保护时分别利用公私钥进行安全处理。
通常对公钥进行公开,谁都可以根据需要使用。私钥则只是根据需求只有自己知道,公私钥形成配对。
用户在信息传输前,一般可以使用公钥对信息进行加密、签名,后通过网络发送传输。最终相应的接受人通过公私钥进行信息安全确认。
例如进行信息申请时,为确保只有审核人能收到并阅读申请的内容。申请者使用审核的公钥对自己申请的内容进行加密。审核人员收到申请信息后,便可以使用自己的私钥进行解密。同时为证明申请人的身份,申请人员用自己的私钥对申请信息进行签名,审核人员可以使用申请人员的公钥对签名进行验证,以保证申请人员的正式身份。利用公私钥的加密解密、签名验签保障只有集团内部相关审核人才能解密并进行原信息查看,可保障相关信息在发送审核过程中保密性和完整性。
3 关键技术
3.1 终端设备注册
1)用户先登录到操作系统,在终端设备上启动认证客户端,填写用户在统一认证系统中的帐号、密码后提交注册。认证客户端将把帐号、密码、设备ID、P10证书请求一并发送到认证服务端。
2)P10证书请求由认证客户端生成,认证客户端先生成公私钥对,把设备ID、公钥作为证书请求信息项,使用认证客户端生成的私钥对证书请求信息签名后得到P10证书请求。其中私钥采用内置的对称的加密算法保存在终端设备上。
3)验证终端帐号及密码。
4)帐号密码通过核验后,认证服务端保存这些信息,等待管理员审核。审核通过后,记录通过的状态,等待下载证书。
3.2 终端设备证书下载
1)用户登录到操作系统后,在终端设备上启动认证客户端,填写用户在统一认证系统中的帐号、密码提交到认证服务端。
图2 终端设备注册流程
2)验证终端帐号及密码。
3)帐号密码通过核验后,认证服务端检查用户的注册申请是否通过审批。
4)通过审核时,由签名认证模块负责证书签发,并把签发后的证书通过终端证书管理模块进行保存。
5)认证客户端下载公钥证书到终端。
证书由签名认证模块进行签发,签名认证模块可把 P10证书请求转发到外接CA,由外接CA完成证书的签发,也可以使用内置的自签名根证进行签发。
3.3 桌面单点到业务系统
桌面单点到业务系统,即用户登录到终端设备后,直接访问业务系统,即可直接通过业务系统的认证,而无需再次完成认证操作。
图3 终端设备证书下载流程
1)首先用户需要先登录到终端设备上。例如终端设备是Windows系统时,用户需要采用操作系统的本地登录,或是域登录的方式,登录到Windows桌面。
2)用户在终端设备的桌面上,启动业务系统客户端。
3)用户启动业务系统客户端,业务系统客户端调用认证客户端接口(SDK或是HTTP接口等形式),获取认证信息。认证信息由登录到终端的帐号、设备ID以及签名值组成。签名值是对登录到终端的帐号、设备ID进行签名而得到的值。签名时使用到的私钥为在终端设备注册环节生成并加密保存私钥。
4)业务系统客户端提交到业务系统服务端。
5)业务系统服务端把认证信息以及当前业务系统的ID一并提交到认证服务端。签名认证模块首先验证设备ID是否在受信设备中,然后通过设备ID,到设备证书管理模块获取到相应的设备证书后,使用设备证书对签名进行校验。
图4 桌面单点到业务系统实现流程
6)校验通过后,把登录到终端的帐号、务系统的ID传给帐号管理模块进行关联查询,查询到当前登录用户在业务系统中的帐号。并把此帐号返回给业务系统。
7)业务系统使用从认证服务器返回的帐号登录,并把登录成功的结果返回到业务系统客户端。
4 结语
越来越多的单位采用统一身份认证平台和数字证书技术构建企业内部信息,但是对于操作系统和业务系统直接的身份传递局限的基于AD域完成。在信息化建设进程中逐步实现一次登录操作系统,让用户可以安全自由的操作系统本身的同时,还可以自由访问任 何一个应用系统。
基于统一身份认证WEB应用平台的无关性、松散耦合性结合数字证书公私密钥加解密的安全性结合Windows操作系统认证,给出了操作系统到业务系统一次认证、多处身份漫游的设计方案。在红云红河集团建立统一身份认证平台的基础上给出了操作系统到业务系统安全打通的方案。在红云红河集团内部信息系统中具有广泛的应用前景。