Web通用单点登陆企业解决方案.docx
《Web通用单点登陆企业解决方案.docx》由会员分享,可在线阅读,更多相关《Web通用单点登陆企业解决方案.docx(27页珍藏版)》请在冰豆网上搜索。
Web通用单点登陆企业解决方案
福州大学2004届毕业生
毕业论文(设计)
题 目:
福富Web通用单点登陆企业解决方案
姓 名:
石 伟
学 号:
0500930
专 业:
软件工程
指导教师:
黄志华 赖金辉
2004年6月
摘要:
当为了支持商业进程而沿伸IT系统时,用户和系统管理员为了完成工作,面对着日益增长的复杂的各种接口(人机交互接口)。
用户需要登录多个的系统,而系统管理员则需要以同样的方式,维护多个系统的用户账号。
单点登陆系统能集统一各个系统的认证和授权,解决用户和管理员的困扰,并大大提高安全性。
本文,利用Kerberos思想和SSL技术,在HTTP协议基础上建立有效的的认证和授权机制,提出可行的Web单点登陆平台解决方案。
Abstract:
AsITsystemsproliferatetosupportbusinessprocesses,usersandsystemadministratorsarefacedwithanincreasinglycomplicatedinterfacetoaccomplishtheirjobfunctions.Userstypicallyhavetosign-ontomultiplesystem,andSystemadministratorsarefacedwithmanaginguseraccountswithineachofthemultiplesystemstobeaccessedinaco-ordinatedmanner.Siglesign-onsystemgetstheprocessofauthenticationandissuingpermissiontogetherfromeachsysteminSSOplatform.ThispageshowsafeasiblesolutionoftheprocessoftheauthenticationandissuingpermissionforWebSSOwithKerberosandSSLtechnologyonHTTP.
关键字:
SingleSign-On(SSO),Kerberos,SSL,权限,permission
第一章单点登陆概述·······························································································2
1. SSO概念以及由来······························································································2
2. SSO模型与传统模型··························································································2
3. SSO成熟产品及其应用······················································································5
4. SSO安全性特征··································································································6
第二章WebSSO系统需求分析··············································································6
1. 浅层需求·············································································································6
2. 深层需求·············································································································7
第三章系统总体架构设计·····················································································10
1. WebSSO认证机制架构设计···········································································10
1.1. SSL、数字证书和Kerberos简介····························································10
1.2. 非依赖的安全的Web认证········································································14
1.2.1. 登陆流程初步分析描述········································································14
1.2.2. 登陆认证架构设计················································································15
1.2.3. 系统攻击环节分析················································································18
2. WebSSO权限控制架构设计···········································································19
2.1. 用户—角色-应用服务-权限模型························································19
2.2. 应用服务权限接口模型············································································20
第四章WebSSO系统概要设计············································································21
1. WebSSO认证概要设计···················································································21
2. WebSSO应用服务概要设计············································································23
2.1. 表现层········································································································23
2.2. 业务层········································································································24
2.3. 数据层········································································································27
2.4. 票据加密····································································································27
结束语·························································································································27
致谢·····························································································································27
参考文献····················································································································28
第一章单点登陆概述
1. SSO概念以及由来
单点登陆,即SingleSign-On(SSO),也叫做单一登陆,简单的说,SSO技术是一种认证和授权机制,它允许用户只登录到系统上一次,而后授权访问其它连接的系统,无需再进行登录。
随着信息技术和网络技术的发展,各种应用服务的不断普及,用户每天需要登录到许多不同的信息系统,如网络、邮件、数据库、各种应用服务器等。
每个系统都要求用户遵循一定的安全策略,比如要求输入用户ID和口令。
随着用户需要登录系统的增多,出错的可能性就会增加,受到非法截获和破坏的可能性也会增大,安全性就会相应降低。
而如果用户忘记了口令,不能执行任务,就需要请求管理员的帮助,并只能在重新获得口令之前等待,造成了系统和安全管理资源的开销,降低了生产效率。
为避免这种尴尬,牢记登录信息,用户一般会简化密码,或者在多个系统中使用相同的口令,或者创建一个口令"列表"。
如果你使用易于记忆的口令或将单个口令用于所有的账户的话,安全专家将会摇着头说:
“容易记忆”也意味着“容易猜译”。
安全专家反对重复使用口令,反对将口令写下来保存在攻击者可能找到它们的任何地方。
他们强调用户应当经常更改口令。
当这些安全风险逐步反映出来,管理员增加一些新的安全措施的时候,这些措施却在减少系统的可用性,并且会增大系统管理的复杂度。
因此,在市场上提出了这样的需求:
网络用户可以基于最初访问网络时的一次身份验证,对所有被授权的网络资源进行无缝的访问。
从而提高网络用户的工作效率,降低网络操作的费用,并提高网络的安全性。
2. SSO模型与传统模型
传统的分布式系统是由多个部分组成的,这些组成分别承担着各自独立安全的域的功能。
这些组件,由相互关联的操作系统和应用程序来组成了单独的平台。
各个组成承担独立的域,意味着当终端用户想和这些域进行交互的时候,必须单独的通过各个域来证书和认证自己。
如上图所示,终端用户在和主域开始交互的时候,建立起一个会话。
在上图中,这被称作主域登录(PrimaryDomainSign-On),这时用户要提交一个可以被主域信任的认证证书,最常见的就是用户名和密码。
主域的会话常常由终端用户所在的工作站的终端用户环境中具有代表性的信息中,由运行的操作系统会话机制来产生。
从主域会话机制,用户可以从主域中调用其它域的服务,例如平台或者应用程序。
要调用次域的服务,一个终端用户又需要进行次域登录(SecondaryDomainSign-on),这就在次域里进行需要进一步的用户认证。
这样,终端用户就必须为了请求每一个次域,而被各个次域的登录对话框牵着鼻子走。
而次域的会话也和主域类似的机制来产生。
从整个的流程来看,这种方式需要在各个域独立的运作,并且需要多个的用户账号来操作接口。
要调用次域的服务,一个终端用户需要进行SecondaryDomainSign-on(次域登录),这就在次域里进行需要进一步的用户认证。
这样,终端用户就必须为了请求每一个次域,而被各个次域的登录对话框牵着鼻子走。
而次域的会话也和主域类似的机制来产生。
从整个的流程来看,这种方式需要在各个域独立的运作,并且需要多个的用户账号来操作接口。
在安全方面,网络信息犯罪逐年上升。
计算机安全机构与FBI的研究表明。
在调查的公司中,32%的公司向执法官员报告发生严重事件,较上一年翻一番;报告遭受经济损失的公司,平均损失高达1200万元人民币。
网络攻击日益频繁,各公司都不得不采取有效措施,保护其信息资源,减少风险。
在这种情况下,各机构就需要根据受破坏可能性以及可能导致的损失程度,来评估预防措施的成本。
例如,根据FBI/CSI的调查报告显示,最普遍的信息安全问题来自于病毒感染,在能够确定损失数额的机构中,90%的危害是由病毒感染引起的,平均损失数额约为60万元;约65%的被调查者是因笔记本电脑系统被盗,每年由此类事件所导致的平均损失约为100万元。
但与电子盗窃或金融欺诈相比,上述问题就是小巫见大巫了。
例如,尽管窃取机密信息可能不象病毒感染或笔记本电脑被盗普遍,但其危害性却更高,为每家受害公司所带来的平均经济损失高达2500万元;而金融欺诈所导致的平均损失则约为2000万元。
虽然这些犯罪发生的频率低于病毒感染或笔记本电脑被盗,但由此造成的经济损失却高出许多。
使用性和安全性两个方面,要求在企业中建立起统一的登录功能和账号的统一管理。
提供这样的统一和集成能够实实在在的有益于企业:
● 减少用户在各个域中登录上花费的时间,也包括登录失败所浪费的时间。
● 通过让用户减少提交和记忆认证信息,来有效改善安全性。
● 在系统管理员添加和移除用户,以及修改用户操作权限上,大大提高效率。
● 通过采用统一用户账号配置,包括更加一致的控制和移除个别用户访问系统资源的权限,来增强系统的安全性。
3. SSO成熟产品及其应用
目前市场上,已经存在又一些成熟的单点登陆产品,或者规范。
以下就列举两个具有代表性的产品,并且针对其特点进行简单的介绍。
● Microsoft.NetPassport
Microsoft的.NetPassport是我们最为常见的SSO认证平台,MSN的用户登录以及管理就是在此平台上进行的。
使用.NetPassport实施SSO的的最大缺点是,对原有的应用系统的集成存在较大难度,甚至需要对原有的应用系统的做较大的改动,来符合.NetPassport的认证接口。
而且采用此体系的应用系统,同时也必须构筑在Windows平台服务器上。
● 安盟SecurID系统
这套系统是国内最为成熟的产品之一,此系统在认证时,安盟SecurID向授权的员工登记发放令牌,生成令牌码,令牌码随时间变化。
每60秒就会生成一个随机令牌码,保护网络的安盟认证服务器能够验证这个变化的代码是否有效。
每个认证令牌都是唯一的。
别人不能通过记录以前的令牌码来预测将来的令牌码,结合令牌码用户必须提供其记忆的PIN,这样,如果某个用户提供了一个正确的PIN+令牌码,就可以高度确信该用户即是合法用户。
这样的做法固然有很强的安全性,但是令牌的领取,以及每次都要使用不同的令牌码,就给用户造成使用上的不便。
而系统在设计上,对令牌码生成、时间的漂移、同步有很高的要求,也就造成系统的在这方面的复杂程度。
另外,它对旧系统的集成,也存在缺陷。
4. SSO安全性特征
● 次域在访问时,必须被强迫信任主域。
这就意味者,对主域的信任高于对次域的信任,凡经过主域认证的用户,都将有权访问次域。
进一步的,主域必须确定用户在次域的活动权限。
● 终端用户的身份和认证证书的正确性和合法性的判断。
● 在未认证的使用者请求次域上的服务时,必须保护好认证证书的安全性。
● 当在主域和次域间传输认证标识时,认证标识必须受到保护,以防止中途拦截进行偷窃、以及篡改导致的伪装攻击。
第二章WebSSO系统需求分析
福富Web单点登陆系统,简称FS-SSO,针对以上所说的特点,来提出需求的。
1. 浅层需求
◆ 名称:
登陆平台
◆ 描述
v 用户访问AppServer(应用服务器),因为没有访问权限,而转向SSOServer进行登陆,登陆系统以后获得访问AppServer的权限。
v 用户直接访问SSOServer,进行登陆,然后根据需要,转向需要的AppServer。
v 每次登录都有一个登陆有效期,如果超时,此次登陆请求将不予以接受,必须重新申请登录。
(这点需求是在设计过程中增补的,它可以有效的增加登录的安全性,后面的架构设计中,更可明显的反映出它的必要性)
◆ 名称:
注册新用户
◆ 描述
v 注册的信息包括:
用户名、密码以及邮箱、个人说明等个人信息
◆ 名称:
修改用户信息
◆ 描述
v 注册过的用户可以修改自己的信息。
◆ 名称:
激活用户
◆ 描述
v 管理员给新注册的用户,分配其所属的用户组,有权访问的应用,以及操作、访问的权限,并激活这个账号(可以允许自动激活)
◆ 名称:
管理用户
◆ 描述
v 用户帐号的激活、停用,批量用户操作
◆ 名称:
管理接入平台的应用
◆ 描述
v 管理接入平台的列表、平台的信息
v 管理与此应用有关联的用户
◆ 名称:
管理角色
◆ 描述
v 管理角色层次、角色信息,配置角色所具有的权限
◆ 名称:
管理用户权限
◆ 描述
v 管理用户权限层次、权限信息
2. 深层需求
从表面上看,用户的需求十分的简单,但是从深层次分析,平台需要有许多的潜在需求。
2.1. 安全性潜在需求
尽管登录到一个系统的过程很简单:
输入用户身份名,然后再输入口令,但是它实际上采取了多个动作。
首先是认证,认证发生在系统验证登录的实体(人或程序)是否是与这个用户身份相关的实体时,认证通常通过将口令与用户的ID匹配来实现。
系统利用错误信息回答非授权请求,并通过允许访问来响应授权的请求。
实际的授权可以在认证后立即进行,使客户得到授权资源的清单。
授权也可以是交互式的,当用户试图访问不同资源时服务器拒绝或同意访问这些资源。
在使用SSO时,管理员指定特定平台作为主认证域(即SSO域)来控制对所有域的访问。
当用户登录到这个SSO主域时,他提供在登录到任何次级域时所需要的所有证明。
然后主域负责为次级域完成对用户的认证。
所以,通过认证后,系统对用户授以SSO域中的授权,当用户需要对其他的某个域进行访问时,再授予用户在这个域中的权限。
下面就系统安全需求,进行详细分析。
安全威胁的实体是指任何对网络或网络设备造成损害的个人、对象或事件。
脆弱性是指网络系统存在的可能被威胁利用的缺陷。
分析受到威胁后造成的影响,主要包括:
直接的损失和潜在的影响、数据破坏、丧失数据的完整性、资源不可用、诋毁名誉。
安全威胁的来源是多方面的,主要可以分为:
自然灾害和人为因素。
对于FS-SSO而言,解决自然灾害的的方法是保证服务器的物理安全性,而对于人为因素的则属于逻辑安全性的范畴。
人为因素按照攻击的目的性,又可以划分为恶意攻击和非恶意攻击。
非恶意威胁主要是由于用户的正常过失引起的数据完整性问题。
软件缺陷、数据输入错误和管理错误都属于此类别。
恶意威胁包括不满或怀有恶意的现有员工和以前员工,或者不属于组织外的人员进行的攻击。
内部人员可能有特定的目标,通常对环境内的系统具有某种级别的合法访问权限。
员工是对公司计算机和应用程序了如指掌的群体,包括了解哪些攻击行为和漏洞可使组织遭受最大的损失。
这种类型的攻击极难检测或进行保护。
恶意的内部人员可能有特定的目标,通常具有对系统的合法访问权限。
恶意的内部人员攻击可侵袭计算机安全或应用程序的所有组件。
由恶意内部人员煽动的其他类型的安全犯罪包括贿赂或社交工程。
社交工程是哄骗人员透漏其密码或某种形式的安全信息的过程。
这些行为经常无法检测,因为审核记录不充分或无法复查。
综上所述,可以看出,解决安全问题因素,主要在于,提高管理员和系统用户的安全意识,其次才是系统本身的设计。
(本文主要在于讨论平台的系统解决方案,所以对前者就不做太多的阐述。
)根据Microsoft对于恶意威胁的研究,将其分为:
哄骗标识(非系统设计因素)、篡改数据、抵赖、信息泄漏、拒绝服务和特权提升。
对于FS-SSO系统设计的安全性,可以提出以下几点要求:
1. 访问应用服务需要授权证书
2. 证书必须保证来自合法的客户端
3. 根据2,客户端的合法性需要受到验证
4. 不能够依赖用户的主动行为来销毁颁发证书,证书必须能够自动过期。
5. 应该尽量的减少口令在网络间的传输,并且绝对不能以明文的方式来传输用户口令。
6. 确保收到的证书是来自指定的合法用户,即证书必须能够防止他人偷窃、修改、以及证书的重复使用。
7. 详细划分用户的权限,并且对传输过程中的权限的相关信息进行加密,以防止权限恶意修改、恶意提升权限。
8. 要有完善的记录,记录用户的登陆、认证及其它操作,防止抵赖。
9. 对信息进行加密,至少关键信息必须加密,以防止信息泄漏。
10. 阻止恶意登陆请求,防止拒绝服务。
11. 另外,针对SSO平台特点,在系统的健壮性上,必须做到当攻击者绕过认证系统,而获得其中一个接入平台的授权时,其活动范围仅限于这个域,其他域的安全性不受到影响。
2.2. 系统部署需求
考虑到FS-SSO解决方案,不仅针对将要搭建在平台上的应用系统,还针对原有旧系统的接入问题时,FS-SSO的部署问题就显得格外突出。
接入单点登陆平台的旧的应用系统,原来就已经构筑了一套完整的用户权限系统,不同的系统构造的权限系统又不尽相同。
它接入平台后,并不适合使用平台的权限系统,只需要借助平台的登陆认证机制。
因此平台的认证机制为了部署的特性,还要能够和原来旧系统的登陆进行集成。
最理想的状态是无逢集成,即不需对旧系统的登陆认证进行改造,只要屏蔽掉就可以了。
而对于在平台的构筑的新系统,对权限系统有不同的使用。
因此,与普通权限系统开发不同的是,SSO平台要提供一个灵活的权限系统接口给新系统调用。
这个接口要有较强的通用性,以适合各种系统的开发;又要有较强的安