清除统一身份认证的安全“蚁穴”
陈翼;吴庆杰 2009-09-16 中国教育和科研计算机网
复旦大学早在2002年的信息化校园一期规划中,就启动了统一身份认证平台的建设,并于2003年正式投入使用。目前已全面覆盖所有用户,包括教职工、博士后、研究生、本专科生、留学生,以及10所附属医院的医务人员,另有各类临时人员,包括外国专家、进修教师、挂职干部和访问学者等,连同校友账号在内,共有约12万个账号。本文结合复旦大学的管理实践,讨论了统一身份认证的安全问题,提出应对策略。
接入方式
统一身份认证的定位是信息化校园的基础平台和技术支撑,要为种类繁多、技术不一、分散开发的诸多应用系统或服务提供合适的接入方式。目前常用的接入方式主要是ICE(Internet Communication Engine)接口和LDAP(Lightweight Directory Access Protocol)接口。
ICE接口主要用于各类Web应用的接入,可提供JSP、ASP、PHP等程序的接口,应用范围非常广泛。ICE接口实现了单点登录(Single Sign-On, SSO),这就为信息化校园的各种Web应用集成到统一的校园信息门户(Portal)提供了技术支持。
LDAP是一种跨平台的标准协议,也是独立于厂商和平台的协议,容易实现互联。它还可以在任何计算机平台上使用很容易获得的而且数目不断增加的LDAP客户端程序访问LDAP目录,对于存储一些需要从不同的地点读取但无需经常更新的数据十分有效。
统一身份认证的数据存放在LDAP中,LDAP接口直接读取账号数据,是更底层的连接方式。LDAP接口主要用于非Web应用,用途也非常广泛,包括代理服务器、无线和有线上网认证、FTP、VPN等。LDAP接口支持JAVA/C/PHP/.Net等开发环境,实现的功能有checkPassword(校验用户名密码)和getUserAttribute(获取用户属性信息)。该接口的优势是速度快,因此适合用于短时间高并发的Web应用。
接口安全
统一身份认证是所有用户访问信息化校园各类应用系统或服务的共同的技术平台,因此其安全性必须格外关注。一旦出现安全问题,可能会影响到所有用户、所有接入的应用系统或服务。我们在实践中发现,比较突出的安全问题主要分为接口安全和使用安全两个方面。
应用系统通过ICE接口或LDAP接口完成与统一身份认证的通信,接口安全主要与连接账号及其通信安全相关。
严格管理接口账号
统一身份认证的接口账号有不同的权限,高权限的账号可以修改包括密码在内的用户信息。而接入统一身份认证的应用系统众多,很多都是由第三方开发或管理的。如果忽视了连接账号的安全,各系统都使用高权限的连接账号,一旦接入系统被恶意控制,就可能篡改LDAP中的用户信息,非常不安全。因此我们对各接入系统分配独立使用的、只读权限的连接账号,对接口账号实现严格管理。
加密传输接口通信
一般的Web应用采用http协议,账号密码在网络上以明文传输,容易被各种嗅探工具监听。我们利用安全套接层(Secure Socket Layer, SSL)技术,采用https协议,可实现账号密码的加密传输。目前复旦大学使用自主开发的安全证书“FudanCA”,对重要数据如密码的传输都可以实现加密通信。
采用统一登录页面
接入统一身份认证的Web应用越来越多,但以往各系统都是单独做登录页面,由于技术不统一、开发不规范,容易产生漏洞,比如有些系统的验证码形同虚设。在实践中,我们把所有的Web应用的登录指向“统一登录页面”,登录完成后再返回到相应系统。统一登录页面采用了加密传输技术和复杂的验证码,可以有效地防范安全问题。
使用安全
使用方面的安全问题主要来自于使用过程中人为的疏忽。这些问题以往并没有引起足够重视,但是近期出现了越来越多的针对这些问题的非法攻击,潜在危害同样很大。使用方面的安全问题主要是围绕账号和密码本身。
弱密码及对策
很多用户不习惯设定复杂的密码,这就给非法尝试密码带来了可乘之机。密码一旦被识破,对用户本人带来的影响无法估量。
目前高校中的账号密码确实频繁遭到恶意扫描,其影响面牵涉到所有用户。恶意扫描弱密码的问题比较复杂:一是不能简单地采用在错误密码尝试若干次后实施暂停账号的办法,这样可能导致恶意破坏,短时间内所有账号都会被恶意停用,从而带来更大的负面影响,而且恶意扫描也会通过各种手段避免连续尝试同一账号;二是统一身份认证是通过应用系统的接口程序获取用户访问请求的,因此无法直接获取终端用户的IP地址等信息,很难判断哪些是正常访问,哪些是恶意扫描。
解决弱密码的问题,要从源头抓起。首先要不断地向用户强化密码安全教育,只有所有人都认识到该问题的严重后果,自己主动避免弱密码,才能有效地从源头减少隐患。当然也要辅以一定的技术措施。比如,技术部门主动对所有活动账号定期扫描密码,一旦发现是弱密码就立即封禁,并提醒用户修改密码后才能恢复。另外,建立惟一的用户修改密码入口,修改时强制校验新密码的强度,同时记录修改日志。各接入系统不再拥有修改密码的功能,只提供跳转链接。
确保账号的权威来源
统一身份认证的账号是对应到具体个人的,不能随意增加或变动账号。账号信息来源于各应用系统,如教职工的账号数据源是人事管理系统,本专科生的账号数据源是教务管理系统;所有账号都要理清楚数据源头。把统一身份认证的账号管理和日常维护交给职能部门,从技术上限定必须通过应用系统的人员基本信息管理模块来维护统一身份认证的账号,杜绝随意增加账号带来的安全隐患。
杜绝使用职能账号
很多应用系统都在使用职能账号,这些账号大部分都具有很大的管理权限,可以修改应用系统中的重要信息。职能账号不和具体的个人账号绑定,使用起来也比较随意,特别是实际使用人经常变动而密码从不更换,以及账号疏于管理而密码公开流传。这导致应用系统中的数据一旦产生分歧,就无法追踪到底是谁进行了操作,给系统安全带来了很大隐患。我们在实践中要求杜绝使用职能账号,应用系统功能模块的权限必须绑定到实际的工号或学号,也就是具体个人。
另外,我们也要求在统一身份认证后台记录所有账号的登录日志,应用系统还必须增加必要的事务处理日志。这样一旦发生问题,就可以通过日志快速定位实际操作人。
高校信息化校园在建设和管理过程中,面临着各种安全风险,统一身份认证作为其中的一个基础平台,其安全问题的防范只是其中之一。我们必须认识到,信息系统安全问题是多方面的,大量的安全漏洞发生在应用层面,特别是页面权限控制不当造成的问题非常普遍。“千里之堤,毁于蚁穴”,任何细节问题都有可能是造成严重后果的“蚁穴”。因此,要全面考虑和完善信息系统的技术问题,重点清除安全“蚁穴”。
(作者单位为复旦大学信息化办公室)
来源:《中国教育网络》2009年09月刊




