目前大多数现代企业都建有各种各样的企业信息化系统,如办公自动化系统(OA)、人力资源管理系统(HR)、客户关系管理系统(CRM)、财务管理(FM)系统、库存管理(RM)系统等。企业的每个信息系统通常都面向的人群,如面向普通员工、财务人员、销售人员、经理等,而且对于可以进入某个信息系统的用户,通常还需要进一步设定他的相应访问权限,当他进入该系统后,只能访问他授权允许访问的内容,只能进行他授权允许进行的操作,如输入、修改、删除数据等。为了对使用人群及其权限进行管理和控制,通常情况下,信息系统都有专门的帐户管理(account management)子系统,通过它专门的管理人员可为每个允许访问该系统的员工(即信息系统的用户)创建一个用户帐户,每个帐户保存有用户的口令(或相关信息)。当用户访问这个系统时,需要输入帐户名/口令,这个过程称为身份鉴别(authentication)。在用户帐户中,除了保存有用户在该信息系统的口令外,还通常保存有与该用户访问权限相关的信息,如所属用户组、角色等。为了对用户的访问进行控制,还需要为该系统设定相应的访问控制规则(策略)。用户权限信息和访问控制策略就构成了我们通常所说的授权管理(authorization management)。用户在某个系统中的权限信息与该系统的访问控制规则(策略)一起,决定了该用户访问该信息系统时能访问什么内容、进行什么样的操作,即实现访问控制(access control)。另外,为了出现安全问题、事故后,能对用户访问系统的行为进行追踪,如成功或失败的登录,对某些重要信息的访问与操作,或者对非授权资源的访问企图等,信息系统都会有相应的操作日志(记录)子系统,记录用户操作日志以供日后查看、审计(audit),实现安全事故责任的界定和问责(accountability)。这些功能都是为了保证一个信息系统的安全所必需的,概括起来包括如下三个方面:
一是,帐户管理(account)与在线身份鉴别(authentication),帐户管理,又称为身份管理,其目的是对用户的身份进行唯一性标识,并保存管理用户其他相关信息,它是身份鉴别的基础;身份鉴别是在用户访问系统时,对用户的识别,是验证用户就是其声称的人。帐户管理(account)与在线身份鉴别(authentication)形成了第一个A,简称帐户管理或身份管理。
二是,授权管理(authorization)与访问控制(access control),授权管理即设定系统的访问控制规则(策略),设定每个用户的访问权限;访问控制即当用户访问信息系统的某个资源、使用某个功能、并进行相应操作时,根据该用户在该信息系统的权限和该系统的访问控制规则(策略),决定是否允许该用户对该资源进行访问以及进行相应的操作。授权管理(authorization)与访问控制(access control)形成了第二个A,简称授权管理。
三是,审计(audit)与问责(accountability),审计即对用户访问信息系统的关键、重要行为进行记录,并在必要是进行查看;问责,即通过审计记录的查看、跟踪,确定某一安全事件、事故的责任人,并让其承担相应的责罚。审计(audit)与问责(accountability)形成了第三个A,简称审计。
传统地,每个信息系统都会独立具有这三个方面的功能,因此,一个企业的信息系统管理人员不得不对企业的每个信息系统独立地进行这三个方面的管理工作。这在企业的信息系统为数不多、员工不多时,还能够应付,但是,当一个企业拥有十几、几十、甚至上百的信息系统,企业员工达到数千、数万、甚至数十万时(而这对于大型、集团化企业而言是常见的事),这种系统安全维护的工作变得十分的繁重和困难了,也给最终用户带来很大不方便,更糟糕地是,在这种情形下,系统安全管理非常容易出错,由此造成安全隐患,这可从下面的简单分析看到。
信息系统的管理员可能需要为同一个员工在十几、几十、甚至上百个系统中创建帐户、设定缺省密码,用户得登录这些不同的信息系统修改缺省密码,这无论对管理员还是对员工都是一个重复而乏味的事情。同一个员工在这些不同信息系统的帐户名/口令可能相同,也可能不同。当一个用户登录不同的信息系统时,需记住在不同系统的帐户名/口令,很容易造成混淆;而且糟糕的是,当同一个用户输入用户名/口令成功登录某个系统后,若他再登录其他信息系统,还需要重新输入新的用户名/口令,这实在让人厌烦。同样地,信息系统管理需要在不同信息系统为系统的每个用户(帐户)设定访问权限,即使这些不同系统的用户是同一个人,需要为每个系统独立设定各自的访问控制规则(策略),这样做的后果是,稍有不慎就有可能造成用户在不同信息系统的权限不一致甚至矛盾,不同信息的访问控制策略不一致甚至矛盾,更糟糕地是目前信息系统常常需要或能够互联,这很容易产生安全漏洞。还有,不同信息系统的审计记录系统的数据格式、操作使用方法往往不一样,这给管理工作带来了麻烦,更重要的是,它不能在整个企业范围对用户的各类行为进行统一记录、有效关联。所有这些反映了企业在信息系统统一帐户(身份)管理、统一授权管理、统一审计以及单点登录(Single Sign On,SSO)方面有强烈的需求。
统一帐户(身份)管理,即通过一个专门的管理系统为企业的每个员工维持一个全局性的唯一帐户,员工只需要使用这个全局帐户的身份凭证(如帐户名/口令或数字证书)就可以登录企业的所有的信息系统。统一授权管理,即在统一帐户(身份)管理的基础上,进行用户组、角色等的统一管理,并为每个员工设置全局性的权限(如分配用户组、角色等),再就是基于统一的用户组、角色,为各信息系统设定访问控制规则与策略。统一审计,即通过统一的接口、统一的数据格式,记录并集中保存用户在信息系统的操作系统和操作数据,并可在必要的时候搜索、查看有关的记录。单点登录,即当一个用户输入用户名/口令成功登录某个系统后,当他再登录其他系统时,无需再输入用户名/口令进行登录操作。
统一帐户(身份)管理、统一授权管理、统一审计及单点登录给企业带来好处是明显的。首先,它大大减少了企业信息系统安全管理的工作量,降低了管理员的工作强度,管理员只需为每个员工维护一个帐户,而不需要在十几、几十、甚至上百个信息系统为有关用户维护一个单独的帐户。其次,给用户带来了极大的方便,用户只需记住一个帐户,只需使用一个全局身份凭证就可登录不同的系统,而不需要记住不同系统的用户名/口令;进一步地,单点登录的实现,去掉了需要反复输入用户名/口令的麻烦,使得系统登录变得更加的便捷。 再其次,统一的用户权限设置和访问控制规则、策略设定,可有效避免了权限、访问控制策略的不一致和冲突,减少由此出现安全漏洞的机会。最后,统一审计,一方面给管理带来了方便,另一方面使得责任界定和问责更容易。
统一帐户(身份)管理、统一授权管理、统一审计及单点登录是企业信息化不断发展后产生的必然需求,正是看到了企业在这些方面越来越强烈的需求,许多的软件厂商、安全厂商、安全解决方案提供商已经或者正在推出他们的统一AAA产品或解决方案。面对着这些形形色色的产品、解决方案,企业应该如何选择呢?我们认为企业可从如下几个进行考虑。
安全可靠性,统一AAA产品作为关系到整个企业信息系统安全的产品、系统,它本身必须极其的安全、可靠,具有抗攻击的能力,否则,给会企业带来风险,潜在损失将是不可估量的。因此,作为一个企业,应把统一AAA产品本身的安全性、可靠性作为首要考虑的因素。考察一个安全产品安全性的一个重要途径是看其是否有相应的安全产品资质、是否有权威的产品测试报告。
功能,统一AAA产品面对的安全功能需求是多种多样的,因此,其功能须完备,能够满足企业在AAA方面的各种需求,至少应能满足绝大部分需求。比如,一个好的统一AAA系统应具有如下典型功能:
1)除了具有通常的帐户管理功能外,还应具有分部门、分层次的用户管理功能,即在一个统一的帐户管理系统中,通过适当授权,可以让部门、子公司的管理员管理自己部门、子公司的员工帐户,这样可以实现统一管理与分布管理的有机结合;
2)应该能支持多种不同类型的访问控制方法,如基于用户组的访问控制(也即通常的基于访问控制列表ACL的访问控制)、基于角色的访问控制(role-based access control)、基于属性的访问控制(attribute-based access control)等,这是应为企业的信息系统本身可能需要采用不同的访问控制机制,为此,我们的统一授权与访问控制系统必须能够提供相应的功能支持;
3)支持粒度的授权与访问控制,现在越来越多的企业对信息系统访问控制要求,不但要求能控制某个用户能否登录某个系统,而且要求能对用户是否能访问系统中某个特定资源、是否能使用系统中某个特定功能或进行某个特定的操作进行控制,也即细粒度的访问控制;
4)统一AAA管理系统应该能同企业的人力资源系统的有机结合,人力资源系统作为企业重要的人事管理系统保存有员工的信息,这些信息有可能与统一帐户系统中信息是共用,需要保持这些信息的一致性,而且,当人力资源系统标明某一个员工已离开了公司,那么该员工在AAA系统中的帐户应该立即被禁止,权限立即被取消,这都需要统一AAA管理系统与人力资源系统的紧密结合;
5)支持跨域身份鉴别与跨域授权,随着企业间的合作不断发展,一个企业有可能需要让其合作伙伴的员工访问本企业的信息系统(当然跨域可能是两个独立部门间或两个子公司间),而且这种情况可能会越来越多,这就涉及到所谓的跨域身份鉴别与跨域授权,因此,要求我们的统一AAA能提供相应的功能。
高安全的身份鉴别方法,由于用户只需一个全局身份凭证就能登录所有不同的信息系统,因此,针对用户的身份标识与鉴别方法、技术的安全性就显得极其重要。传统的帐户名/口令虽然简单,使用方便,但其安全方面的脆弱性是人所共知的,很多安全攻击都是从破解帐户名/口令开始。因此,如果企业对信息系统的安全要求很高的,应该尽量选择高安全强度的身份标识与鉴别方法和技术,如数字证书、动态口令等,特别是数字证书,它基于安全的密码学原理,具有抗攻击能力强的特点,它不但能用于身份标识与鉴别,而且可用数据加密和数字签名,相对于其他身份鉴别技术具有更广泛的用途。
系统平台和开发技术支持,企业信息系统运行的操作系统多种多样,有Windows、Linux、Sun Solaris、IBM AIX、HP Unix等,信息系统本身的开发技术和平台多种多样,有C/C++、Delphi、COM/DCOM、J2EE、ASP.NET等,一个好的统一AAA产品应支持尽可能多的平台和开发技术。
系统集成能力,一个安全产品通常会提供有各类API用于应用系统与安全系统的集成。但我们认为,仅有API实现统一AAA产品与企业信息系统的集成是远远不够的,这是因为,使用API集成需要信息系统的开发商在开发产品时使用该API调用相应的安全功能,而要求这么多不同信息系统开发商都使用某一家公司AAA产品的API,这几乎是不可能的事情。由此,统一AAA产品面对的集成对象往往是已开发完成的产品,而对于这类已有的产品通过进行产品改造、将安全功能集成进去(如修改代码、插入API调用)这往往也是很困难甚至不可能的事(如需要专门人员、很大的投入、厂家配合等)。特别需要考虑地是企业现有的、运营已久的系统,也即我们通常所说的遗留系统,对系统安全集成的影响。这类遗留系统或者已有自身的帐户和授权管理系统,有自身的身份鉴别方法和访问控制机制,但需要同统一AAA进行无缝集成平稳过渡,让用户感受不到改变;这类遗留系统或者过去的安全机制不能满足要求(如不能进行细粒度访问控制),需要在不修改原系统的情况下,通过与统一AAA系统的无缝集成,提升其安全功能。所有这些要求我们的统一AAA产品,能提供对应用系统透明的安全集成机制,即在信息系统完全不修改或仅作极少修改的情况下,实现统一AAA产品与企业各类信息系统的集成。
易用性,一个好的系统仅仅安全可靠、功能丰富还是不够的,能否为客户、用户所接受,操作使用是否简单、易用也是一个重要的因素。