◆许杏 朱朝阳 廖舒航
(广西大学信息网络中心 广西 530004)
随着数字化校园建设的推进,国内大部分高校建设了校园统一身份认证平台并完成了主要业务系统的统一身份认证对接。但随着信息化技术飞速发展,传统认证平台暴露出诸多问题,如安全性降低,访问管理不够灵活等,已经不能满足最新的需求[1]。
统一身份认证技术经过了Cookie、CAS(Central Authentication Service,中央认证服务)、OAuth(Open Authorization,开放授权)等认证模式。
Cookie认证方式最早由网景公司前雇员Lou Montulli于1993年提出[1]。Cookie认证要求各服务器具备统一的域名,将证书存储在客户端的cookie中,因此安全性、稳定性较高,但Cookie认证无法实现跨域登录。
CAS是耶鲁大学发起的解决单点登录问题的开源项目[2]。CAS包含两部分:(1)CAS服务器端,负责完成对用户的登录认证、用户退出注销、票据的生成、校验及过期票据的销毁等工作。(2)CAS客户端,主要部署在各种业务应用系统中,通过嵌入CAS提供的接口,将业务系统的认证重定向到CAS服务器进行认证。赵侃侃[3]等人通过修改和增加客户端插件和前端插件,既能支持前后端分离开发部署的Web应用,也能支持前后端集中开发部署的Web应用的单点登录功能。在CAS协议,所有与CAS交互均采用SSL协议,以确保票据和TGC(Ticket Granted Cookie)的安全。整个协议的工作过程涉及2次重定向,但进行Ticket验证的过程对于用户是透明的[4]。
与CAS协议相比,OAuth协议的授权使第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,为用户资源的授权提供了安全、开放的标准,近年来在实际场景中广泛使用。高保忠[5]等人以智慧校园建设为切入点,基于OAuth2.0协议设计并实现智慧校园认证系统,通过理论分析和流程实验对系统进行测试,改善了校园数据获取的安全性和可靠性。胡贞华[6]等人建设基于OAuth2.0协议的统一身份认证平台,集成开放平台的账号登录,实现校内外各个业务系统的统一认证。李强[7]整合银行内部现有应用系统的用户登录认证,规范新应用系统的开发,为银行带来跨系统单点登录、第三方授权等基础能力。姜家涛[8]等人针对Fast数据管理平台管理存在的多信息系统状况,设计统一身份认证系统架构,并采用Identity Server4构建统一认证中心,完成各类软件的统一身份认证接入。孙新江[9]详细阐述了一种跨认证的应用设计与实现,基于OAuth接口的双认证系统的互相印证流程,实现了多套认证系统的不同账号体系统一管理,但是没有实现统一的用户注销、用户禁用以及不同应用系统个性化用户管理。
统一身份认证平台除了认证协议上的安全,更是一个基础的应用平台,需要从网络、软件、功能、管理等方面全方位保障认证系统的安全性、易用性。本研究将介绍某高校基于OAuth2.0的统一身份认证平台安全防护升级的总体设计和实施,并针对一些实际问题进行介绍与分析。
以建设适应新技术标准和安全可靠的统一身份认证系统为目标,升级后的认证系统支持跨域认证、互联网认证,支持双重认证、临时认证、限制认证等多种认证策略,支持OAuth2.0协议和规范;加强对接入系统的管理,提供统一接入服务;完善优化多重身份的用户数据管理,对用户实现角色、分权限管理和授权;建立完善的系统监控、预警和审计体系,提高系统的稳定性、可用性和安全性;优化用户体验,提供通过多种途径自动找回密码的功能;解决多终端支持、浏览器兼容等问题。
统一身份认证平台包括以下模块:统一接入及认证子模块、用户和授权管理子模块、个人自助服务子模块、安全监控与审计子模块。系统框架图如图1所示。
图1 统一身份认证平台框架图
提供中心认证、单点登录服务。要求支持手机动态密码、邮箱认证、别名认证、互联网应用账号(QQ、微信)等多种主流登录方式。
接受各类应用的接入申请,提供在线的接入业务办理和接入技术支持,提供对所有接入应用的统一管理功能。
管理所有用户的身份信息、角色权限,对用户数据进行查询统计等。严格把控不同用户的身份信息利于有效开展权限控制、实现用户全生命周期管理。
实现个人安全设置、找回密码、查询登录日志、激活账号、设置关联账号等。提供给所有用户修改密码、密码找回、信息查询、密保手机、密保邮箱、别名登录、日志查询等个人自助服务。
采用主流的架构,确保服务器、存储、数据等安全,数据维护和备份。可实时监控认证服务器、缓存服务器、LDAP目录存储等服务器的运行及负载情况,异常情况发出告警。
根据相关法律、法规和技术标准,对统一身份认证安全升级进行顶层设计,依据不同需求合理划分安全模块和等级。在考虑功能需求的同时,考虑网络和系统安全需求,注重内部防御和外部防御相结合。
(1)认证安全:采用安全主流的认证协议,支持多种认证方式,避免单一的账号密码认证方式导致信息泄露。
(2)身份及权限安全:能够灵活地根据不同角色配置不同系统访问权限。
(3)网络边界安全:完善网络边界控制,避免服务器被恶意访问、恶意攻击。
(4)应用及数据安全:通过应用漏洞扫描、漏洞加固等确保应用安全,设置后端全过程访问记录、数据库审计、日志审计,数据脱敏,确保应用和数据安全。
(5)管理安全:建立统一身份认证安全管理相关规范;规范用户认证、角色划分和权限分配;管理好应用接入。
系统安全架构如图2所示,从物理安全、网络安全、系统安全、应用安全、数据安全等实施安全防护升级。
图2 统一身份认证安全架构图
(1)认证安全
采用安全、先进的OAuth2.0协议进行认证。OAuth(Open Authentication,开放授权)是开放的认证协议,为使用 API 的第三方应用提供安全、简单和标准的认证方式。OAuth的授权不会使第三方触及到用户的账号信息(如用户名与密码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权。
OAuth2.0共有五种授权模式,包括:授权码模式(Authorization code)、简化模式(Implicit)、密码模式(Resource owner password credentials)、客户端模式(Client credentials)和扩展模式(Extension)[10]。其中,授权码模式是五种授权模式中流程最严密、功能最完整的一种。OAuth2.0认证流程如图3所示。
图3 OAuth2.0认证流程
①client向资源服务器发送授权请求,包含类型、client ID和重定向URL。
② 资源服务器同意授权,并返回Authorization Code给用户代理。
其次,众创空间的资源整合还需设计关键资源的杠杆机制,通过现有资源结构的重新组合和调整,带动和获取新的资源,提升创业项目与资本市场联系的紧密性。可以通过众创平台向社会募集资金,利用股权方式吸引投资者的支持,满足创客的融资需求,形成良好的创业资源生态链。众创空间也可借助天使投资以及产业引导基金的杠杆作用,实现技术性资源与外部金融资源的高度集成。
③用户完成授权后,client使用Authorization Code和重定向URL向认证服务器请求Access Token。
④ 认证服务器认证client和Authorization Code有效性。如果client用户的个人认证和接入权限通过且有效,client可以得到认证服务器分发的Access Token。
⑤ client通过Access Token向资源服务器请求受保护资源。
⑥ 资源服务器验证Access Token的有效性,验证成功后响应资源请求,client获得权限通过指定信息端口得到受保护资源。
在OAuth2.0协议基础上,建设的统一身份认证平台将各个不同异构系统的认证工作集中在一起,通过一个公用的认证系统统一管理和验证用户身份,不需要再次登录认证。该认证平台支持口令、证书、二维码、手机动态密码、互联网应用账号等多种认证方式,支持跨域认证、基于OAuth2.0的资源授权。用户经过统一认证中心认证后可实现认证的漫游、单点登入SSO、单点退出等。
升级后的认证平台支持用户通过手机、邮箱等方式找回密码,减少了电话答疑、人工核对、手动重置密码的工作。采用多种认证方式、二次认证等策略,保障用户认证登录安全。增加新用户激活功能。新用户输入相关身份证明信息进行身份验证,验证通过后通过短信形式将密码发送到手机激活账号,有效避免了账号密码泄露和被盗用问题。
(2)边界安全
统一身份认证平台作为基础平台,软件设计达到了三级等保的要求。为保障服务和数据安全,设计并搭建认证平台网络边界一体化防护措施如图4所示,具体包括以下内容:
图4 网络边界防护图
①采用区域隔离技术,防止网络渗透。部署入侵防御和防病毒系统,控制跨域层访问并对层间数据进行深度过滤。防火墙通过对TCP/IP等协议数据包进行深度分析,过滤对系统资源的恶意访问,有效阻止未授权进程在系统中运行。
② 通过WAF服务器严格进行访问控制。默认认证服务器全部关闭,按需开通,只有对接的应用服务器同意才能访问认证服务器。
③根据最小授权和分权管理原则,通过VPN权限管理限定系统维护人员访问服务器权限。维护人员通过VPN和堡垒机进行系统维护,确保所有针对服务器的操作可管控、可溯源。
④ 为保障服务不间断,搭建负载均衡,配置服务自启动。
⑤ 通过入侵检测技术收集或解析数据包信息,经过特征分析识别出攻击行为,针对攻击过程采取阶段性防御策略来阻止攻击。利用Web资源发布服务器进行发布,对流量和访问进行监控。
通过以上措施,确保服务和数据安全,顺利开放外网访问。
(3)系统安全
记录详细的身份认证和访问日志,在对访问日志进行集中、关联分析的基础上,有效地实现系统异常访问分析、系统违规访问分析、违反安全规程的操作分析、故障事件重建和入侵预警。
通过合理配置审计规则,有效地控制智慧校园资源的安全访问,并在异常发生时及时发出警报。系统提供安全访问控制级别设定,实现系统访问安全控制和系统访问效率的平衡。日志和安全审计框架图如图5所示。
图5 日志和安全审计框架图
(4)管理安全
根据信息系统安全“技管”结合原则,在提升技术水平的同时提升安全管理水平,避免因为管理不完善导致出现安全漏洞。
①制度支持
制定《统一身份认证接入流程》、《应用系统安全运维规范》等规章制度,身份管理、权限分配及所有运维操作严格按照规范执行。
② 用户密码管理
用户可修改密码、密码找回、信息查询、设置密保手机、设置密保邮箱、日志查询等个人自助服务。支持双因子认证,若更换浏览器或者更换电脑登录需要重新输入短信验证码。
③身份及权限管理安全
身份及权限管理是统一身份认证平台的核心功能,灵活定义角色和群组、集中应用授权,严格把控不同用户的身份信息利于有效开展权限控制。
对在职教职工、在校学生及临时访问人员开展全生命周期管理。a.对于在职教职工和在校学生,以人事系统、教务系统、研究生系统作为源数据,根据对应的身份状态启用和锁定账号;b.针对部分编外人员、临时人员(如校外导师、访问学者、博士后、引进人才、留学生、校友等)的访问问题,建立了身份数据采集平台,由对应业务部门进行审核和维护,规范临时人员所能访问的业务系统和账户有效期限。期限到了系统自动锁定账号。减少僵尸账号、过期账号带来的登录风险。
④ 应用自动接入
统一身份认证平台需要对接多个业务系统。以前有系统申请接入时,需要反复对接,发送对应的对接文档,并配合接入测试。升级后的平台接受各类应用的接入申请,提供在线的接入业务办理和接入技术支持,提供对所有接入应用的统一管理功能。应用系统管理员在线填写接入方的信息及应用基本信息、接入配置信息。应用审核通过后,会将应用接入的口令等信息发送到接入方的邮箱中,接入方可通过这些参数进行在线调试来验证认证接口和参数是否正常。统一管理所有接入应用系统,节省了管理员大量对接时间。
完成上述安全升级后,某高校多次开展安全测试,包括漏洞扫描、压力测试、SQL注入测试、自启动测试等。
通过资源发布系统,可以实时查看用户访问量、资源请求时间、后端响应时间、入流量统计、出流量统计、错误数统计、HTTP协议访问统计、用户浏览器统计、用户访问最多页面统计、访问页面最多的IP统计、攻击最多IP、被攻击最多URI等。
图6 资源访问量
图7 资源请求时间
图8 后端响应时间
支持学校每日几千次常规认证。通过要求用户绑定手机和邮箱,提升账号密码安全,并且利于用户自助找回密码。后续将继续纳入更多业务系统,提升认证平台使用效率。
表1 不同业务系统认证次数统计
表2 认证总数统计
本文简述了某高校统一身份认证平台一期在实际应用中存在的问题,分析了平台业务组成,对网络边界、认证安全、身份管理、权限控制、日志监控等方面进行安全加固,实现了访问控制,保障了信息安全,使受限资源只有受限用户才能访问,解决了多业务系统下多种身份、多种认证方式与系统平台安全之间的矛盾。后续需要进一步研究:(1)目前系统一通全通,需要进一步做到不同应用系统个性化的用户管理,消除对重要平台开放的顾虑。(2)采集各类人员信息,将过去分散到各个业务系统中的用户进行集中管理,建立权威人员数据中心。严格执行采集人员审核制度,开展用户身份全生命周期管理。(3)对系统开展渗透测试[11],从而发现Web应用系统软件相关安全性设计与实现缺陷,从而提升安全性测试能力、强化软件安全性设计与实现。(4)对访问情况进行统计,积累用户信息开展分析,提升决策能力。