用于单点登录的方法和装置的制作方法

文档序号:7708577阅读:89来源:国知局
专利名称:用于单点登录的方法和装置的制作方法
技术领域
本发明涉及单点登录(SSO =Single Sign On)技术,尤其涉及无需时钟同步的单点 登录技术。
背景技术
单点登录,简称SS0,是一种为了便于用户访问多个应用系统(例如企业资源计划 (ERP)系统或办公自动化系统等等)而提出的安全登录机制。利用SS0,用户只须登录一次 (即输入一次用户名和密码)就可以访问多个相互信任、但又彼此独立的应用系统。目前已经提出了多种实现SSO机制的解决方案。这些解决方案大体可分为两大 类,即,密码同步方案和票据方案。在密码同步方案中,SSO处理模块预先在一个数据库中存储用于用户的一个主密 码和与之对应的用于多个应用系统的多个从密码。当用户输入主密码时,先由SSO处理模 块将其翻译成针对特定应用系统的从密码,再利用从密码完成相应的认证过程。这样,用户 通过输入一个主密码就可以访问多个应用系统。密码同步方案虽然实现了 SSO机制,但因其以明文方式完成与各个应用系统的认 证,其难以防范网络攻击,例如窃听和重放攻击。窃听和重放攻击主要窃取向某个应用系统 发送的有效的用户名和密码,并在延迟一段时间之后重新发送所窃取的用户名和密码。从 而,重放攻击能够以欺骗手段通过应用系统的认证。面对这种攻击,密码同步方案无能为 力。相对于密码同步方案而言,票据方案可以提供较为安全的SSO机制。Kerberos方 案是一种典型的票据方案。Kerberos方案是建立在对称的密钥加密基础上。因而,利用 Kerberos方案,个体能够通过相对安全的方式经由并不安全的网络相互通信。而且,为了防 止重放攻击,Kerberos方案还引入了时间戳的概念,也就是对访问请求的时间有效性进行 验证。然而,时间戳的引入要求相关的应用系统或设备必须与SSO管理系统实现时钟同步。 但是,在实际的应用中,通常难以保证所涉及的系统和设备都实现时钟同步。图1示出了 SSO机制的一个示例性的应用环境。如图1所示,用户终端110可通过 网络100连接到多个应用系统120-1 120-N,并且在SSO服务器130的管理下,终端110 的用户可利用单点登录机制访问这些应用系统。在图1中,网络100可以是无线网络或有线网络。用户终端110可以是任何能够 连接到网络的终端设备,例如笔记本电脑、PDA、手机等等。应用系统120-1 120-N可以是 任何相互信任、但又具有彼此独立的硬件品台、操作系统或认证类型的应用系统。这些应用 系统可以位于例如相同或不同的内网中,也可以位于相同或不同的子网中。这些应用系统 例如可以是一个企业内的门户网站(Portal)、企业资源计划(ERP)系统、办公自动化(OA) 系统等等。当然,这些应用系统中的两个或多个也可以运行在同一硬件平台上。在图1中, 用户的信息和应用系统120的信息都存储在SSO服务器130的数据库中。SSO服务器130 利用数据库中的信息实现对用户身份的认证、对应用系统的访问授权等等。简便起见,这里仅使用SSO服务器130来代表所有用于SSO管理的服务器和设备。但是,本领域技术人员 可以理解的是,根据实际情况的不同,SSO服务器130也可以由一个或多个服务器构成,例 如SSO服务器可以包括SSO认证服务器和票据分发服务器等。在图1所示的应用环境下,用户可以通过多种方式实现单点登录。例如,终端110 的用户可以通过输入用户名和密码而成功登录到例如应用系统120-1上,即完成一次登 录。然后,用户再点击应用系统120-1页面上提供的超级链接而请求访问其它的应用系统 120-2 120-N。这时,发出访问请求的应用系统120-1称作SSO发起方(SSO initiator), 而接收访问请求的其它应用系统120-2 120-N则称为SSO接收方(SSO accepter)。可 选地,终端110的用户还可以直接向SSO服务器130进行认证(即完成一次登录),且在认 证成功后由终端110直接请求访问各个应用系统120。在这种情况下,发出访问请求的用 户终端110称作SSO发起方,而接收该访问请求的各个应用系统120称作SSO接收方。进 一步,任何一个已经成功认证了用户身份的应用系统120都可以作为SSO发起方,来请求访 问另一个应用系统120,即SSO接收方。这里,用户身份的认证可以采用多种公知技术来实 现,而并不局限于任何一种具体的身份认证过程。图2具体示出了在图1所示的环境下现有的Kerberos方案的示例。在图2所示 的例子中,假设终端110的用户已经成功登录的应用系统120-1中,且该用户还希望进一步 访问应用系统120-2。在这种情况下,如上所述,应用系统120-1充当SSO发起方,而应用系 统120-2作为SSO接收方。图2具体示出了用户从SSO发起方210登录到SSO接收方220的过程。图2所示 的过程总体上可分为申请阶段和验证阶段两个部分。如图2所示,在步骤S210中,SSO发 起方210 (即应用系统120-1)通过认证过程获知用户的身份。在步骤S220中,SSO发起方 210向SSO服务器230发送一个包含该用户身份信息的请求。在步骤S230中,SSO服务器 230根据接收到的用户身份生成一个SSO票据,并将其作为响应发送给SSO发起方210。SSO 发起方210接收到SSO票据并将其保存下来。由此,SSO发起方210完成了 SSO票据的申 请过程。当用户希望进一步访问应用系统120-2,即SSO接收方220时,流程进入验证过程。 在步骤S240中,SSO发起方210向SSO接收方220发送访问请求,该访问请求包括所述SSO 票据以及一个时间戳Tts。该时间戳Tts表示发送该SSO票据的时间。在步骤S250中,SSO 接收方220将接收到的SSO票据和时间戳Tts —同转发给SSO服务器230,以请求验证。进 而,在步骤S260中,SSO服务器230验证接收到的SSO票据的有效性,同时还验证所接收到 的时间戳是否有效。例如,SSO服务器判断该时间戳Tts所指示的时间与SSO服务器上的系 统时间之差是否在一个预定的阈值范围之内,即I (Tts-Tss。)ι <= δ是否能够得到满足。这 里,阈值δ通常很小,默认为几分钟。最后,在步骤S270中,SSO服务器将验证结果反馈给 SSO接收方220。如果验证成功,则返回一个验证成功信息,用户就可以访问作为SSO接收 方的应用系统120-2。相反,如果验证未通过,例如时间戳无效,则用户登录失败。因此,现有技术中还需要一种安全的且无需时钟同步的SSO方案。

发明内容
本发明的一个目的在于提出一种无需时钟同步的安全的SSO机制。
本发明的另一个目的在于在不对现有系统进行过多改动的情况下实现一种无需 时钟同步的SSO机制。为了实现上述目的,本发明提出的方法包括使得SSO发起方获得SSO服务器的系 统时间Tss。;由SSO发起方计算出Tss。与本地时间Tinit之间的时间偏移Δ T ;利用该计算出 的时间偏移ΔΤ修正SSO发起方发出的访问请求中的时间戳Tts。利用这个时间偏移ΔΤ可 以有效地弥补SSO发起方与SSO服务器之间时钟不同步所带来的问题。本发明提出的单点登录的装置包括接收单元,用于接收来自SSO服务器的具有 第一时间戳的消息;计算单元,用于计算所述第一时间戳所指示的服务器时间与当前的本 地时间之间的时间偏移;发送单元,用于向一个应用系统发送访问请求,所述访问请求包括 预先由所述SSO服务器授予的SSO票据以及利用所述时间偏移修正过的第二时间戳。优选地,在本发明一个实施例中,SSO发起方从SSO服务器授予的SSO票据中提取 票据创建时间作为SSO服务器的系统时间Tss。。这种方式对现有系统的改动较少,因而易于 应用在现有的SSO系统中。可选地,在本发明一个实施例中,SSO发起方向SSO服务器发送系统时间请求,并 从SSO服务器反馈的响应中得到的系统时间Tss。。这种方法特别适用于SSO发起方预先已 经得到SSO票据的情况。这种方法简化了 SSO发起方的操作和消息传递,使得单点登录更 加快捷。参考以下描述的实施例,本发明的上述和其他方面将会变得更加清楚明了。


通过以下结合附图对本发明的各个实施例的详细描述,本发明的上述特点和优势 将会变得显而易见,其中,在附图中图1示出了一个SSO机制的示例性的应用环境;图2示出了现有技术中基于票据的SSO方案的流程图;图3示出了根据本发明一个实施例的SSO方案的流程图;图4示出了根据本发明一个实施例的SSO票据的结构图;图5示出了根据本发明另一个实施例的SSO方案的流程图。在以上附图中,相同的附图标记表示相同或相似的部件或功能。
具体实施例方式在图2所示的Kerberos方案中,为了避免重放攻击,时间验证的要求比较严格。因 此,Kerberos方案要求SSO发起方210和SSO服务器230之间达到时钟同步。换言之,在 图1所示的环境中,可能作为SSO发起方的用户终端110以及各个应用系统120都需要与 SSO服务器时钟同步。这一点在实际应用中通常难以达到。因此,需要提出一种无需时钟同 步的SSO解决方案。避免时钟同步的一个简单而有效的方案是使得SSO发起方获得SSO服务器的系 统时间Tss。,并由SSO发起方计算出Tss。与本地时间Tinit之间的时间偏移Δ T,然后利用该 计算出的时间偏移ΔΤ修正对SSO接收方的访问请求中的时间戳Tts。这个时间偏移ΔΤ的 利用可以有效地弥补SSO发起方与SSO服务器之间时钟不同步所带来的问题。以下将结合具体实施例来描述本发明提出的上述思想。图3示出了根据本发明一个实施例的SSO方案的流程图。图3所示的例子依然沿 用图2给出的用例,即应用系统120-1作为SSO发起方,而应用系统120-2作为SSO接收方。如图3所示,SSO发起方310首先按照与图2相同的方式认证用户身份,并从SSO 服务器330获得SSO票据(步骤S210 S230)。其中,SSO票据的数据结构如图4所示。 图4示出了 SSO票据的基本信息。如图4所示,SSO票据包括用户身份字段、SSO发起方字 段以及票据有效期字段。其中,用户身份字段例如包括用户姓名和用户ID等。SSO发起方 字段例如包括发起者的名称、IP地址等。票据有效期字段例如包括票据的创建时间和到期 时间。通常,票据的有效期为几个小时。可选地,SSO票据中还可以包括用户被授权访问的 应用系统的列表。由图4可见,SSO票据中一般可以包括一个SSO票据的创建时间T。,eate, 也就是SSO服务器创建SSO票据的系统时间。继而,在图3的步骤S340中,SSO发起方310,即应用系统120_1,从SSO票据中提 取出票据创建时间,并将其近似视作SSO服务器当前的系统时间Tss。,i。然后,在步骤 S350中,SSO发起方310计算出Tsst^1与当前的本地时间Tinitil之间的时间偏移ΔΤ,即ΔΤ =Tss。,^Tinitil,其中本地时间Tinitil例如可以是接收到包含Tsst^1的消息时SSO发起方310 本地的系统时间。当用户请求访问应用系统120-2,即SSO接收方320时,SSO发起方310在步骤S360 中向SSO接收方320发送访问请求。该访问请求中也包含SSO票据和一个时间戳T’ts。所 不同的是该时间戳T’ 13是利用时间偏移ΔΤ修正过的,S卩,T’ ts = Tts+AT,其中Tts表示发 送该访问请求时SSO发起方的系统时间。继而,SSO接收方320将收到的访问请求(包含 SSO票据和时间戳T,ts)转发给SSO服务器330,以请求验证(步骤S370)。SSO服务器330 按照与图2中步骤S260 S270相同的方式进行验证。这里与图2不同之处在于时间戳 T’。是利用时间偏移ΔΤ修正过的。但是,对于SSO服务器而言,其验证过程并没有变化。 SSO服务器330依然将接收到的时间戳T’ts与当前的系统时间Tss。,2进行比较,判断是否满 足I (T’ ts_Tss。,2) I <= δ。这里,由于时间戳Τ’ ts包含了 SSO服务器与SSO发起方之间的 时间偏移Δ T,因而时间戳T’ ts显然可以满足验证要求。图3所示的实施例利用SSO服务器与SSO发起方之间的时间偏移Δ T来修正访问 请求中的时间戳。由此,SSO服务器和SSO发起方无需时钟同步也可以实现安全的Kerberos 方案。此外,在上述实施例中,将SSO票据中的票据创建时间近似作为SSO服务器当前的系 统时间Tss。,lt)由此,SSO服务器无需任何改动就可以应用本发明提出的方案。因而,这种方 案将更易于应用在现有的Kerberos系统中。本发明所提出的方法并不限于图3所示的实施例。例如,图3所示的实施例也可 以进一步修改为由SSO服务器330在发送SSO票据之后自动向SSO发起方发送一个包含时 间戳Tsst^1的消息,该时间戳Tss。,工表示SSO服务器发送该消息时的系统时间。这将使得Tss。, !更加准确。另外,可选地,在图3所示的例子中,SSO发起方310还可以向SSO服务器发送 系统时间请求。响应于该请求,SSO服务器330可以向SSO发起方发送一个包含时间戳Tss。, !的消息,或者将时间戳TssU与SSO票据一起发送给SSO发起方。在另一个实施例中,假设利用图3所示的过程用户已经成功地登录到应用系 统120-2,这时用户又点击了应用系统120-2的网页上的超级链接,以请求访问应用系统120-3。在这种情况下,作为SSO发起方的应用系统120-2可以按照图3所示的过程进行操 作。也就是说,应用系统120-2可以利用所获得SSO票据向SSO服务器重新申请一个新的 SSO票据。新的SSO票据包括一个新的SSO票据创建时间。由此,应用系统120-2可以根据 新的SSO票据创建时间计算出其本地时间与SSO服务器上的系统时间之间的时间偏移ΔΤ。 进而,应用系统120-2可执行图3所示的验证过程,从而使用户成功登录到应用系统120-3。可选的,在以上实施例的场景下,还可以利用如图5所示的流程来完成登录。图5 示出了根据本发明又一个实施例的SSO方案。在图5所示的例子中,SSO发起方510例如 是上述实施例中的应用系统120-2,而SSO接收方例如是应用系统120-3。如图5所示,应 用系统120-2已经从例如应用系统120-1得到了 SSO票据(步骤S510)。在步骤S520中, SSO发起方510,即应用系统120-2,向SSO服务器530发送一个系统时间请求。在步骤S530 中,SSO服务器530响应于该系统时间请求而向SSO发起方510发送一个应答消息,该应答 消息包含一个表示当前的SSO服务器的系统时间Tsst^1的时间戳。在步骤S540中,SSO发起 方510按照与步骤S350相同的方式,计算出Tsst^1与本地时间Tinitil之间的时间偏移ΔΤ, ΔΤ = Tssoa-Tinitao继而,在步骤S550中,SSO发起方将之前从例如应用系统120-1收到的 SSO票据和利用Δ T修正后的时间戳T’ts发送给作为SSO接收方的应用系统120-3。最后, 应用系统120-3按照与图3相同的方式请求SSO服务器执行验证过程。图5所示的实施例进一步简化了 SSO发起方在拥有SSO票据的情况下的操作过程 和消息传递。由此,采用图5所示的过程,可以在无需时钟同步的情况下,更加快捷和便利 地实现单点登录。以上结合附图详细描述了本发明。在以上实施例中,均以应用系统120作为SSO 发起方为例来描述本发明,但是本发明并不限于此。如前所述,SSO发起方还可以是用户终 端110。在这种情况下,用户终端110可按照如图3所示的过程实现单点登录,其各个步骤 均与图3所示相同。以上描述中提到的多个操作为依次进行的多个离散的操作,这种方式有助于理解 本发明的实施例;然而,描述的顺序不应解释为意味着这些操作是依赖于顺序的。此外,以 上所描述的各个实施例中的操作可利用硬件、软件或软硬件相结合的方式来实现。当上述 实施例使用软件来实现时,软件指令可以存储在存储介质中,且使得处理器、可编程逻辑器 件、DSP等执行上述实施例所描述的各个步骤。以上描述中使用了诸如“在一个实施例中”或“在多个实施例中”的短语,每一个短 语可以涉及一个或多个相同或不同的实施例。此外,本发明的实施例所使用的术语“包含”、 “包括”、“具有”等等是同义的。尽管本文为了描述优选实施例而示出并且描述了特定的实施例,本领域的普通技 术人员应当理解在不脱离本发明的范围的前提下,所设计的用于实现相同目的的多种可替 换的和/或等价的实施例或实现可以替换所示和所述的实施例。本领域的技术人员应当容 易地理解,根据本发明的实施例可以通过非常多的方法来实现。本申请旨在涵盖这里讨论 的实施例的任意改变和变化。因此,这里明确地表明,根据本发明的实施例仅仅是由权利要 求及其等价物所限制的。
权利要求
一种用于单点登录(SSO)的方法,包括接收来自SSO服务器的具有第一时间戳的消息;计算所述第一时间戳所指示的服务器时间与当前的本地时间之间的时间偏移;向一个应用系统发送访问请求,所述访问请求包括预先由所述SSO服务器授予的SSO票据以及利用所述时间偏移修正过的第二时间戳。
2.如权利要求1所述的方法,在所述接收步骤之前还包括 向所述SSO服务器发送一个系统时间请求;而且所述消息是针对所述系统时间请求的应答消息。
3.如权利要求1所述的方法,其中,所述消息包括所述SSO票据。
4.如权利要求3所述的方法,其中,所述第一时间戳包含在所述SSO票据中,且表示创 建所述SSO票据的时间。
5.如权利要求1所述的方法,其中,所述本地时间是接收到所述消息时本地的系统时间。
6.一种单点登录(SSO)的装置,包括接收单元,用于接收来自SSO服务器的具有第一时间戳的消息; 计算单元,用于计算所述第一时间戳所指示的服务器时间与当前的本地时间之间的时 间偏移;发送单元,用于向一个应用系统发送访问请求,所述访问请求包括预先由所述SSO服 务器授予的SSO票据以及利用所述时间偏移修正过的第二时间戳。
7.如权利要求6所述的装置,其中所述消息是针对所述发送单元发出的一个系统时间 请求而由SSO服务器发出的应答消息。
8.如权利要求6所述的装置,其中,所述消息包括所述SSO票据。
9.如权利要求8所述的装置,其中,所述第一时间戳包含在所述SSO票据中,且表示创 建所述SSO票据的时间。
10.如权利要求6所述的装置,其中,所述本地时间是接收到所述消息时本地的系统时间。
11.如权利要求6所述的装置,其中所述装置是用户终端。
12.如权利要求6所述的装置,其中所述装置是一个应用系统。
13.一种存储介质,其上存储有可使得处理器执行以下步骤,以便使得用户利用单点登 录(SSO)机制登录到一个应用系统的指令,所述步骤包括接收来自SSO服务器的具有第一时间戳的消息;计算所述第一时间戳所指示的时间与当前的本地时间之间的时间偏移的模块; 向所述应用系统发送登录请求,所述登录请求包括预先由所述SSO服务器授予的SSO 票据以及利用所述时间偏移修正过的第二时间戳。
14.如权利要求13所述的存储介质,其中,所述消息包括所述SSO票据。
15.如权利要求14所述的存储介质,其中,所述第一时间戳包含在所述SSO票据中,且 表示创建所述SSO票据的时间。
全文摘要
本文描述了用于单点登录(SSO)的方法和装置。该方法包括使得SSO发起方获得SSO服务器的系统时间Tsso;由SSO发起方计算出Tsso与本地时间Tinit之间的时间偏移ΔT;利用该计算出的时间偏移ΔT修正向SSO接收方发送的访问请求中的时间戳Tts。利用时间偏移ΔT可以有效地弥补SSO发起方与SSO服务器之间时钟不同步所带来的问题。因此,采用本文提出的方法可以在无需时钟同步的情况下实现安全的SSO机制,并可避免窃听和重放攻击。
文档编号H04L29/06GK101902329SQ20091014382
公开日2010年12月1日 申请日期2009年5月31日 优先权日2009年5月31日
发明者刘康, 刘彦 申请人:西门子(中国)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1