一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

保护VPN通信的方法和系统与流程

2023-03-27 20:48:37 来源:中国专利 TAG:

保护vpn通信的方法和系统
技术领域
1.本公开总体涉及安全地连接到虚拟专用网络(vpn),并且更具体地,涉及使用基于令牌的认证来保护vpn隧道的方法和系统。


背景技术:

2.vpn通常被用于使用户能够跨共享或公共网络将数据从其设备传输到专用网络,就像其设备直接连接到专用网络一样。这可以使在vpn上运行的应用受益于专用网络的安全和管理。为了确保安全和正确的身份验证,vpn服务器通常执行身份验证功能以授权用户访问vpn服务器。这可能需要vpn服务器在认证功能上花费大量存储器和处理器资源。有时,除了是授权用户之外,其他条件被满足才能访问vpn服务器。这些条件中的一些可能与设备状态有关。为了确保这些条件被满足,vpn服务器可以查询设备以验证设备的一个或多个状态。然而,查询各种设备以验证其设备状态的过程可能要求相当大的带宽和处理器资源。
3.因此,需要认证vpn用户和/或保护vpn隧道的改进方法和系统。


技术实现要素:

4.为了解决这些问题和更多问题,在一个总体方面,本文描述了具有处理器和与处理器通信的存储器的设备,其中存储器存储可执行指令,当该可执行指令由处理器执行时,使设备执行多个功能。这些功能可以包括生成用于设备与资源服务器之间的通信会话的会话密钥,从会话密钥得到随机数,向身份平台发送请求以认证设备来访问资源服务器,该请求包括随机数,在确认认证后,从身份平台接收访问令牌,该访问令牌包括确认设备的认证的信息,以及向资源服务器发送访问令牌以支持对资源服务器的访问,其中访问令牌包括随机数。
5.在另一总体方面,本技术描述了一种用于生成用于提供对资源服务器的访问的访问令牌的方法。该方法可以包括从设备接收向该设备提供访问令牌的请求,该访问令牌用于访问资源服务器,该请求包括从针对该设备与资源服务器之间的通信会话生成的会话密钥得到的随机数,确定该设备是否被授权访问资源服务器,响应于确定该设备被授权访问资源服务器,生成访问令牌,将随机数包括在访问令牌中;以及向该设备发送访问令牌。
6.在其他总体方面,本技术描述了一种非瞬态计算机可读介质,其上有存储的指令,该指令在被执行时,使可编程设备生成用于可编程设备与资源服务器之间的通信会话的会话密钥,从会话密钥得到随机数,向身份平台发送请求以针对访问资源服务器认证可编程设备,该请求包括随机数,在确认认证后,从身份平台接收访问令牌,该访问令牌包括确认可编程设备的认证的信息,以及向资源服务器发送访问令牌以支持对资源服务器的访问,其中访问令牌包括随机数。
7.本发明内容被提供是为了以简化的形式介绍以下在详细描述中进一步描述的概念的选择。本发明内容不旨在标识所要求保护的主题的关键特征或基本特征,也不旨在用于限制所要求保护主题的范围。此外,所要求保护的主题不限于解决本公开的任何部分中
指出的任何或所有缺点的实现。
附图说明
8.附图描绘了根据本教导的一个或多个实现,仅作为示例而非限制。在附图中,相同的参考标号指相同或相似的元件。此外,应当理解,附图不一定按比例绘制。
9.图1描绘了可以在其上实现本公开的各方面的示例系统。
10.图2a至图2b描绘了用于提供访问令牌以认证客户端设备的数据流的简化示例布置。
11.图3是描绘用于请求和接收访问令牌以向资源服务器认证客户端设备的示例方法的流程图。
12.图4是描述用于生成用于认证客户端设备以访问资源服务器的访问令牌的示例方法的流程图。
13.图5是示出示例软件架构的框图,其各部分可以与本文描述的各种硬件架构结合使用。
14.图6是示出被配置为从机器可读介质读取指令并执行本文描述的任何特征的示例机器的组件的框图。
具体实施方式
15.在下面的详细描述中,为了提供对相关教导的透彻理解,许多具体细节以示例的方式被阐述。对于普通技术人员来说,在阅读本描述之后,显而易见的是,在没有这样的细节的情况下各个方面可以被实践。在其他情况下,为了避免不必要地模糊本教导的方面,公知的方法、过程、组件和/或电路已经以相对较高的层次被描述,而没有细节。
16.vpn通道通常用于将个人客户端设备安全地和私人地连接到外部网络。然而,要使用vpn服务,用户必须首先提供验证信息,该验证信息确保用户有权访问vpn。传统上,vpn服务器自己执行身份验证和授权过程。这可能涉及与客户端设备和/或远程认证服务(诸如远程认证拨入用户服务(radius))的多个数据交换。此过程通常需要使用存储器、处理器和/或带宽资源。
17.除了要求与授权用户相关联的客户端设备之外,一些服务(例如,vpn服务)可能期望满足某些条件以允许继续访问服务。在某些情况下,这些条件与设备的状态有关,诸如具有特定的操作系统、未越狱等。在本公开中,这些条件被称为条件访问策略。为了确保条件访问策略被满足,vpn服务器通常会查询设备以标识最新的设备状态。这是在用户经过身份验证后被执行。然而,设备状态可能在会话期间变化。为了能够检测设备状态变化,vpn服务器通常在会话的长度期间查询每个设备,以确保策略继续被满足。这可能需要大量的硬件和/或软件资源。由于查询每个客户端设备以确保条件访问策略被满足所要求的资源量,大多数vpn服务器偶尔会查询每个设备(例如,每小时一次)。这自然会导致对设备状态变化的缓慢响应,因为在设备状态变化和vpn服务器标识变化状态之间可能会经过一段时间。此外,让vpn服务器验证对条件访问策略的遵从性可能会导致终端用户体验下降。因此,让vpn服务器本身验证对条件访问策略的遵从性不仅可能需要大量的带宽、存储器和处理器资源,而且可能导致对改变的状态的响应慢、性能差和/或用户体验降级。
18.为了解决这些技术问题和更多问题,在示例中,本描述提供了技术解决方案,用于通过利用身份平台发布的令牌来有效地认证资源服务器用户。用于认证用户的标识平台可以与资源服务器(例如vpn服务器)分离。身份平台可以执行所需的认证过程,并且一旦用户被认证,就为用户发布访问令牌。访问令牌可以包括标识用户的信息以及验证令牌是由适当的身份平台发布的信息。然后可以将访问令牌发送到资源客户端(例如,vpn客户端),该资源客户端可以使用访问令牌来访问资源服务器。以这种方式,认证用户的过程由资源服务器以外的实体执行,从而减少了资源服务器使用的处理器、存储器和带宽资源的量。此外,通过使用令牌,身份验证的过程变得更简单、更高效。
19.在一些实现中,当条件访问策略要求被满足来访问资源服务器时,确保这些策略被满足的过程可以作为认证过程的一部分被执行。认证过程可能涉及身份平台和/或验证平台在发布访问令牌之前验证条件访问策略。在一个实现中,访问令牌可以包括指定设备遵从条件访问策略的指示。因此,该技术方案提供了认证资源服务器用户,并且确保用户的客户端设备遵从条件访问策略的改进的方法。改进的方法提高了效率并且节省了计算机资源。
20.用于访问传输层安全(tls)会话的令牌可能受到重放攻击。例如,来自客户端设备的令牌可以被推导并且由不同的设备用于访问vpn服务器。为了防止这种情况,对于一些实现,本描述提供了一种技术解决方案,以用于通过向访问令牌添加密码指示(例如,随机数)来增加由访问令牌提供的安全特征。为了创建密码指示,可以首先针对每个会话生成会话主密钥。然后会话主密钥可以被操纵以生成与特定会话相关联的密码指示。这可能涉及生成会话主密钥的散列。以这种方式,密码指示可以由客户端和资源服务器两者独立地计算,并且不能由外部攻击者推断。结果,由于资源服务器计算的密码指示将与推导出的令牌中的密码指示不匹配,因此尝试在通道之外使用访问令牌失败。因此,该技术方案提供了在远程执行认证过程时提供额外的安全性的有效机制。
21.如本领域技术人员在阅读本公开时将理解的,由这样的技术解决方案提供的益处和优点可以包括但不限于针对资源服务器用户的低效授权和条件访问策略遵从性的低效验证的技术问题的解决方案。此外,这样的技术解决方案提供的好处和优点包括通过有效防止未经授权使用访问令牌来提供额外的安全性。由这样的解决方案提供的益处包括提高资源服务器效率、改善用户体验和增加安全性。
22.图1图示了可以在其上实现本公开的各方面的示例系统100。系统100可以包括资源服务器110,该资源服务器110可以是vpn服务器,其能够在客户端设备120和公共网络或互联网150之间进行vpn通信。资源服务器110可以操作以在资源客户端140和资源服务器110之间建立隧道(例如,vpn隧道)。通过此隧道的数据可以被加密以提供隐私和/或安全性。因此,资源服务器110可以在客户端设备(诸如客户端设备120)和互联网150之间提供安全和专用通信。资源服务器110可以作为可由各种计算机客户端设备(诸如客户端设备120)访问的共享资源服务器来操作。
23.网络130可以是连接系统100的一个或多个元件的有线或无线(多个)网络或有线和无线网络的组合。客户端设备120可以是能够从用户接收输入并且与网络130通信以发送和接收数据的任何类型的设备。这样的客户端设备可以包括具有或连接到输入和输出元件的个人或手持计算设备。例如,客户端设备120可以是以下之一:移动电话;智能手机;平板
电脑;平板车;智能手表;可穿戴计算机;个人计算机;台式计算机;笔记本电脑;游戏设备/计算机;电视;胖客户端;瘦客户端;基于浏览器的客户端等。此列表仅用于示例目的,不应被视为限制。客户端设备的内部硬件结构关于图5和图6被更详细地讨论。
24.在一些实现中,客户端设备120包括资源客户端140(例如,vpn客户端)。资源客户端140可以是安装在客户端设备120上的应用(例如,软件程序),以建立和管理资源客户端140和资源服务器110之间的连接。因此,资源客户端140可以被提供以供应对资源服务器110的资源(例如,vpn服务)的访问。例如,vpn客户端通常被提供在客户端设备120上,以建立与vpn服务器的vpn连接,并且管理用于与vpn服务器进行vpn通信的vpn隧道。在一些实现中,资源客户端140在后台自动操作。备选地和/或附加地,资源客户端140可以提供一个或多个用户界面(ui),其使用户能够与资源客户端140交互和/或配置资源客户端140。
25.为了确保用户被授权使用资源服务器110和/或确认客户端设备120正在与正确的资源服务器110通信,在可以建立用于通信的隧道之前认证被要求。为了避免资源服务器110本身执行认证操作的需要,本技术中描述的技术方案提供了基于令牌的认证机制,其中令牌由独立于资源服务器110的实体生成。在一些实现中,这是通过利用身份平台160来实现的。身份平台160可以是提供客户端认证、身份和/或访问管理的应用(例如,软件程序)。身份平台160可以包括认证服务器170、安全令牌服务器180和/或用于管理用户身份和授权的一个或多个应用编程接口(api)。在一些实现中,身份平台160还包括web界面(未示出),以使管理员和/或用户能够与身份平台160交互。
26.身份平台160可以帮助客户端设备120向资源客户端140添加身份和访问管理功能。因此,身份平台160可以从资源客户端140接收请求,以认证客户端设备120用于访问资源服务器110。作为响应,身份平台160可以执行认证操作以认证客户端设备120。在一些实现中,认证客户端设备120可以涉及与认证服务器170通信。认证服务器170可以提供一个或多个ui,该ui使得用户能够与认证服务器170交互以提供认证信息。例如,认证服务器170可以提供一个或多个ui以允许用户提供日志信息(例如,用户名、密码等)。一旦认证信息(例如,日志信息、设备标识信息等)被接收,认证服务器170可以确定用户是否被授权访问资源服务器110。这可以通过将接收到的认证信息与存储在用户数据存储(例如,用户认证数据库)中的认证信息进行比较来完成,以确认接接收的信息与存储的信息匹配。一旦用户和/或客户端设备120被认证,则认证服务器170可以发送向身份平台160通知认证的数据。身份平台160可以依次生成访问令牌。在一些实现中,访问令牌由安全令牌服务器180生成。或者,认证服务器170可以自己生成访问令牌并将其发送到身份平台160。在这样的实现中,身份平台160可以负责与认证服务器170通信和/或存储和管理访问令牌。身份平台160可以向资源客户端140发送访问令牌以用于与资源服务器110通信。在一些实现中,身份平台160被存储在服务器上,并且可以由一个或多个客户端设备经由网络130访问。备选地和/或附加地,身份平台160可以被存储和/或可以从客户端设备120操作。
27.在一些实现中,除了提供身份和访问管理功能之外,身份平台160验证对条件访问策略的遵从性。例如,当资源服务器110要求对某些条件访问策略的遵从性时,这些策略可以被传送到身份平台160。身份平台160然后可以向客户端设备120或管理客户端设备120的设备管理提供方(未示出)查询与条件访问策略相关的状态。响应于接收到状态,身份平台160可以检查状态以确认遵从性。例如,身份平台160可以请求客户端设备120提供关于客户
端设备120使用的最新操作系统的信息。作为响应,客户端设备120可以标识并向身份平台160发送标识最新操作操作系统的信息。身份平台160可以将所标识的操作系统与条件访问策略相比较,以确定所标识的操作系统是否遵从要求。因此,代替资源服务器110必须执行后认证遵从性验证操作,身份平台160可以直接与客户端设备120和/或客户端设备的设备管理提供方合作以获得最新的设备状态。一旦遵从性被确认,身份平台160可以将标识该设备遵从条件访问策略的指示包括在访问令牌中。
28.一旦从认证服务器170接收到认证的确认,身份平台160可以依次生成访问令牌。或者,认证服务器170可以自己生成访问令牌并将其发送至身份平台160。在这样的实现中,身份平台160可以负责与认证服务器170通信和/或存储和管理访问令牌。
29.图2a示出了用于提供访问令牌以认证客户端设备的数据流的简化示例布置。如图所示,数据流200a可以在客户端设备120向资源客户端140发送访问请求时开始。例如,这可以由客户端设备120的用户启动资源客户端140来发起。或者,当用户利用资源客户端140提供的ui功能来请求对资源服务器110的访问时,也可以发生。在另一实现中,该过程可以在后台被启动,而无需直接用户操作。例如,它可以在web浏览器被打开时启动。
30.一旦访问请求被接收,资源客户端140可以向身份平台160发送认证请求。一旦确认用户被授权访问资源服务器110,身份平台160可以向资源客户端140发送访问令牌。访问令牌可以包括确认用户被认证和被授权访问资源服务器110的信息。此外,当要求对条件访问策略的遵从性时,访问令牌可以包含确认客户端设备120满足条件访问策略要求的信息。例如,如果客户端设备120满足条件访问策略要求,则访问令牌中包括的标志可以被检查。在一些实现中,访问令牌可以包括一个或多个声明。该一个或多个声明中的一个声明可以提供用户被认证和被授权访问资源服务器110的指示(例如,客户端设备是经授权的设备)。这些声明中的另一声明可以提供客户端设备120遵从条件访问策略要求的指示
31.然后,此访问令牌可以由资源客户端140发送到资源服务器110。如果需要,资源服务器110可以检查访问令牌以确保其包括验证用户/客户端设备120被授权访问资源服务器110并且遵从任何条件访问策略的信息。如果访问令牌包括所需信息(例如,所要求声明),则资源服务器110可以准予对受保护的资源的访问(例如,提供受保护的隧道以用于与互联网的安全和/或专用通信)。
32.通过使用访问令牌来认证和验证对条件访问策略的遵从性的过程提高了系统效率,也可以改善用户体验。然而,访问令牌可能受到重放攻击,攻击者可以欺骗和重放令牌。为了防止这种情况,在一些实现中,由客户端设备120得到的随机数可以被包括在访问令牌中。如本文所用的随机数可以指发布的随机数或伪随机数以确保通信不能在重放附加中被重复使用。随机数也可以由资源服务器110独立地得到以确保真实性。然而,随机数不是由客户端设备120或资源服务器110直接发送的,因此不能由外部攻击者推断。
33.图2b示出了用于提供包括随机数的访问令牌的数据流的简化示例布置。如图所示,数据流200b可以在客户端设备120向资源客户端140发送访问请求时开始。这可以以与上面关于图2a所讨论的类似的方式启动。例如,该过程可以由启动资源客户端140的客户端设备120的用户发起。
34.一旦访问请求被接收,资源客户端140就可以开始与资源服务器110进行密钥交换操作的过程。密钥交换操作可以包括首先向资源服务器110发送请求以开始通信。作为开始
通信请求的一部分,资源客户端140可以将加密会话密钥的一部分安全地发送到资源服务器110。作为响应,资源服务器110可以将加密对话密钥的不同部分发送到资源客户端140。在一些实现中,这经由diffie-hellman密钥交换操作来执行。密钥交换可能涉及完美的前向保密,其中即使密钥被包括,也只有密钥的一小部分可能被暴露。以这种方式,资源服务器110可以具有密钥的一部分,而资源客户端140可以具有密钥的不同部分。在交换之后,资源服务器110和资源客户端140都可以具有密钥的两个部分,这两个部分可以构成完整密钥。然后,这两个分开的可以由部分资源服务器110和资源客户端140来使用以分开地生成完整的密钥。以这种方式,只有资源服务器110和资源客户端140可以具有完整密钥。此完整密钥在本文被称为主会话密钥。
35.在一些实现中,主会话密钥可以包括关于活动通信会话的信息。这是因为通信会话(例如,tls会话)涉及在会话的两侧(例如,在客户端和服务器)生成的状态。这些状态可以被包括在交换的密钥中,使得密钥被绑定到活动通信会话。以这种方式,即使主会话密钥被泄露,不同的设备也将无法成功重放令牌,因为主会话密钥中包含的会话信息将不正确。
36.在密钥交换通信之后,资源客户端140可以根据与资源服务器110交换的信息来创建主会话密钥。一旦主会话密钥被生成,则资源客户端140可以从主会话密钥得到随机数。在一些实现中,随机数是主会话密钥的散列。这可以提供添加的安全层,使得主会话密钥在通信期间不能被欺骗。生成的随机数只能被用于当前会话,因为它包含将随机数与当前会话关联的信息。
37.一旦随机数被生成,认证请求就可以从资源客户端140向身份平台160被发送以提供访问令牌。此请求可能包括随机数。一被接收,身份平台160可以在其生成的访问令牌中包括随机数。在一些实现中,随机数可以被包括为访问令牌中包括的一个或多个指示之一。然后,所得到的具有随机数的访问令牌被发送到资源客户端140。
38.一旦接收,资源客户端140可以向资源服务器110发送包括随机数的访问令牌以开始通信。作为响应,资源服务器110可以创建从它生成的主会话密钥得到的随机数并将该随机数与包括在访问令牌中的随机数相比较。如果访问令牌中提供的随机数与资源服务器110生成的随机数匹配,则资源服务器110确定访问令牌是来自授权用户的有效访问令牌。这证明令牌没有在原始会话之外被重放。结果,资源服务器110可以安全地提供对资源的访问(例如,vpn隧道)。当访问令牌被使用时,这提高了安全性并可以防止外部攻击。
39.图3是描述用于请求和接收访问令牌以认证客户端设备访问资源服务器的示例方法300的流程图。在一些实现中,方法300的步骤由资源客户端(诸如图1的资源客户端140)执行。在305处,方法300可以通过接收访问资源服务器的请求开始。这可以在启动资源客户端的请求被接收时启动。或者,当用户利用资源客户端提供的ui特征请求访问资源服务器和/或访问网络的请求被接收时,它可能发生。
40.一旦访问资源服务器的请求被接收,在310处,方法300可以进行至发送用于认证的请求。例如,这可以通过资源客户端向身份平台发送认证请求来实现。在随机数用于增加安全性的实现中,随机数可以作为身份验证请求的一部分被发送。身份平台可以依次执行认证客户端设备/用户所需的认证操作。一旦身份平台确认客户端设备/用户被授权访问资源服务器,它可以向资源客户端发送访问令牌。因此,在315处,方法300可以接收访问令牌。访问令牌可以从标识平台被接收,并且可以包括确认认证和/或对条件访问策略的遵从性
的信息。此外,访问令牌可以包括从当前会话的主会话密钥得到的随机数。在接收到访问令牌之后,方法300可以在320处进行至向资源服务器发送访问令牌。这可以使得资源服务器能够验证客户端设备/用户是否被授权访问资源服务器,而不必自己执行认证过程。
41.图4是描述用于生成用于认证客户端设备访问资源服务器的访问令牌的示例方法400的流程图。在一些实现中,方法400可以由身份平台(诸如图1的身份平台160)和/或认证服务器(诸如图1中的认证服务器170)来执行。在405处,方法400可以通过接收提供访问令牌的请求来开始。当资源客户端(诸如vpn客户端)向资源服务器发送对访问令牌的请求以认证客户端设备时,这可能发生。该请求可以经由网络被接收,并且可以包括标识资源客户端和/或从其接收请求的客户端设备的信息。在一些实现中,该请求还可以包括从针对被包括在访问令牌中的当前会话的主会话密钥得到的随机数。
42.在接收到该请求后,方法400可以在410处进行至确定有效访问令牌对于该请求中标识的客户端设备是否可用。例如,当针对访问令牌的请求被接收并且在最近的预定时间段内(例如,在最后一小时内)针对客户端设备访问令牌被生成时,这可能发生。例如,可能存在与令牌相关联的时间限制,在该时间限制到期时,令牌可能被确定为无效。在一些示例中,访问令牌可能仅在一小时内有效。在其他示例中,访问令牌可以有效24小时。其他配置也是可能的。例如,访问令牌的有效性可以取决于除时间之外或代替时间的其他参数。在使用随机数来提高安全性的实现中,一旦有效的访问令牌被标识,可以将随机数添加到有效的访问标记中。这是因为随机数与活动会话相关联,因此即使有效的访问令牌可用,它也可能没有正确的随机数。
43.当确定有效访问令牌可用于客户端设备时(在410处为是),方法400可以进行至步骤425以确定是否要求对条件访问策略的遵从性,如下面进一步讨论的。然而,当确定有效访问令牌对于客户端设备不可用时(在410处为否),方法400可以进行至415处,确定客户端设备是否已经被认证。这可能涉及确定是否已经针对客户端设备生成和/或接收有效授权许可。在一些实现中,一旦根据认证数据库检查客户端设备的用户提供的认证信息和/或从资源客户端接收的其他身份信息(例如,设备身份信息)以确保用户被授权利用资源服务器。这可能要求用户是资源服务器的注册用户和/或正在利用授权网络(例如,授权的wifi网络)。在一些实现中,授权许可可以在预定时间段之后到期,以防止未授权的使用的可能性。
44.当确定客户端设备/用户被认证(例如,有效的认证许可可用)时(在415处为是),方法400可以在420处进行至生成访问令牌。在一些实现中,访问令牌以与oauth和/或openid连接令牌类似的方式生成和操作。因此,令牌可以是生成并用于启用访问的安全令牌。访问令牌可以包括关于客户端设备和/或用户的标识信息。例如,访问令牌可以包括用户名和/或密码信息。此外,访问令牌可以包括表明访问令牌是由身份平台发布的验证证据。例如,访问令牌可以包括密码签名,作为其由适当的身份平台生成的证据。此外,访问令牌可以包括从要被包括在访问令牌中的当前会话的主会话密钥得到的随机数。
45.然而,如果确定客户端设备/用户尚未实现认证(例如,有效认证许可不可用)(在415处为否),则方法400可以在445处进行至取回针对客户端设备/使用者的认证信息。该过程可能包括向认证服务器发送针对认证的请求,其中该请求包括标识资源客户端和/或客户端设备的信息。如果标识信息不可用或不足以认证客户端设备/用户,则认证服务器可以
提供ui以使得用户能够输入标识信息(诸如用户名和/或密码)。或者,可以经由身份联合来取回标识信息。一旦被接收,标识信息可以被提供给身份平台。在一些实现中,提供ui以接收标识信息并且验证标识信息的过程由标识平台执行。
46.在取回标识信息之后,方法400可以在450处进行至相对认证数据库检查信息,以确定用户是否被授权使用资源服务器。这可以由认证服务器执行。如果客户端设备/用户被标识为被授权(在450处为是),则方法400可以进行至步骤420以生成访问令牌,如上所述。然而,当确定客户端设备/用户未被授权时(在450处为否),方法400可以在455处进行至向资源客户端提供客户端设备/客户不是授权用户的通知。作为响应,资源客户端可向用户显示通知,通知他们提供的认证信息不正确,并且可以使用户能够录入备选标识信息。
47.在访问令牌被生成之后,在425处,方法400可以进行至确定资源服务器是否要求对条件访问策略的遵从性。条件访问策略可以包括对特定设备状态的遵从性,诸如,不是越狱设备、具有特定操作系统、作为被管理的设备等。这些可能是由管理员(例如vpn管理员)设置的访问策略,作为利用资源服务器的先决条件。当确定不要求对条件访问策略的遵从性时,方法400可以进行到步骤440以向资源客户端发送生成的访问令牌。然而,如果确定客户端设备被要求遵守条件访问策略(在425处为是),则方法400可以在430处进行至确定是否满足条件访问策略。这可以涉及查询资源客户端和/或客户端设备的设备管理提供方以确定一个或多个设备状态。设备状态然后可以被发送至身份平台以确定客户端设备是否满足要求。
48.当确定设备是遵从的(在430处为是)时,方法400可以进行至435处,将设备遵从性验证包括在访问令牌中。该信息可以作为令牌内的指示提供。当设备遵从性被验证并且遵从性验证信息被包括在访问令牌中时,在440处,方法400可以进行至向资源客户端发送该访问令牌。在备选实现中,遵从性验证可以不被包括在该访问令牌中。相反,在访问令牌被生成之前可以验证对条件访问策略的遵从性。在这样的实现中,在验证客户端设备满足条件访问要求之后访问令牌可以被生成。结果,访问令牌本身的生成可以是对条件访问策略的遵从性的指示。
49.然而,如果确定设备不满足条件访问要求,则方法400可以进行至步骤455以向资源客户端提供通知。这可以包括发送通知信息,通知用户因为设备不满足一个或多个条件访问策略要求,认证无法被许可。作为响应,资源客户端可以向用户显示通知,通知他们条件访问策略要求。
50.因此,在不同的实现中,技术方案可以被提供,以使得能够利用由独立身份平台生成的访问令牌来授权客户端设备访问资源服务器(诸如vpn服务器)和/或验证对资源服务器的条件访问策略的遵从性。为了实现此,技术方案可以利用与资源客户端和/或客户端设备管理提供方通信的身份平台来认证用户并确保客户端设备遵从条件访问策略。以这种方式,对条件访问策略的遵从性的验证可以被集成到认证过程中。身份平台可以生成并发送可用于与资源服务器安全通信的访问令牌。此外,令牌可以包括与活动会话相关联的主会话密钥的随机数,以增加安全性。这增加了针对资源服务器的系统效率,同时改进了用户体验并且增加了安全性。
51.图5是示出软件架构502的框图500,其各部分可以与本文描述的各种硬件架构结合使用,这些硬件架构可以实现任何上述特征。图5是软件架构的非限制性示例,应当理解,
许多其他架构可以被实现以促进本文描述的功能。软件架构502可以在硬件(诸如客户端设备、本地应用提供方、web服务器、服务器集群、外部服务和其他服务器)上执行。代表性硬件层504包括处理单元506和相关联的可执行指令508。可执行指令508表示软件架构502的可执行指令,包括本文描述的方法、模块等的实现。
52.硬件层504还包括存储器/存储设备510,其还包括可执行指令508和伴随的数据。硬件层504还可以包括其他硬件模块512。由处理单元506保存的指令508可以是由存储器/存储设备510保存的指令518的一部分。
53.示例软件架构502可以被概念化为层,每个层提供各种功能。例如,软件架构502可以包括层和组件(诸如操作系统(os)514、库516、框架518、应用520和表示层544)。在操作上,应用520和/或层内的其他组件可以调用对其他层的api调用524并接收相应的结果526。所示的层在本质上是代表性的,其他软件架构可能包括额外的或不同的层。例如,一些移动或专用操作系统可能不提供框架518。
54.os 514可以管理硬件资源并提供公共服务。os 514可以包括例如内核528、服务530和驱动器532。内核528可以充当硬件层504和其他软件层之间的抽象层。例如,内核528可以负责存储器管理、处理器管理(例如,调度)、组件管理、联网、安全设置等。服务530可以针对其他软件层提供其他公共服务。驱动器532可负责控制底层硬件层504或与底层硬件层进行接口。例如,驱动器532可以包括显示器驱动器、相机驱动器、存储器/存储驱动器、外围设备驱动器(例如,经由通用串行总线(usb)),网络和/或无线通信驱动器、音频驱动器等,这取决于硬件和/或软件配置。
55.库516可以提供可由应用520和/或其他组件和/或层使用的公共基础设施。库516通常提供用于由其他软件模块使用以执行任务的功能,而不是直接与os 514交互。库516可以包括系统库534(例如,c标准库),其可以提供(功能诸如存储器分配、字符串操作、文件操作)。此外,库516可以包括api库536,诸如媒体库(例如,支持图像、声音和/或视频数据格式的呈现和操纵)、图形库(例如用于在显示器上渲染2d和3d图形的opengl库)、数据库库(例如sqlite或其他关系数据库函数)以及web库(例如可以提供web浏览功能的webkit)。库516还可以包括多种其他库538,以针对应用520和其他软件模块提供许多功能。
56.框架518(有时也称为中间件)提供可由应用520和/或其他软件模块使用的更高级别的公共基础设施。例如,框架518可以提供各种图形用户界面(gui)功能、高级资源管理或高级位置服务。框架518可以针对应用520和/或其他软件模块提供广泛范围的其他api。
57.应用520包括内置应用540和/或第三方应用542。内置应用的540示例可以包括但不限于联系人应用、浏览器应用、位置应用、媒体应用、消息传递应用和/或游戏应用。第三方应用542可以包括由特定系统的供应方以外的实体开发的任何应用。应用520可以使用经由os 514、库516、框架518和表示层544可用的功能来创建用户界面以与用户交互。
58.一些软件架构使用虚拟机,如虚拟机548所示。虚拟机548提供了执行环境,其中应用/模块可以像在硬件机器(诸如,图6的机器600,例如)上执行一样执行。虚拟机548可以由主机os(例如,os 514)或管理程序托管,并且可以具有虚拟机监视器546,其管理虚拟机548的操作以及与主机操作系统的互操作。可以不同于虚拟机外部的软件架构502的软件架构在虚拟机548(诸如os550、库552、框架554、应用556和/或表示层558)内执行。
59.图6是示出被配置为从机器可读介质(例如,机器可读存储介质)读取指令并且执
行本文描述的任何特征的示例机器600的组件的框图。示例机器600是计算机系统(例如,可编程设备)的形式,其内用于使机器600执行本文描述的任何特征的指令616(例如,以软件组件的形式)可以被执行。这样,指令616可被用于实现本文所述的方法或组件。指令616使未编程和/或未配置的机器600作为被配置为实施所描述特征的特定机器操作。机器600可以被配置为作为独立设备操作,或者可以被耦合(例如,联网)到其他机器。在联网的部署中,机器600可以在服务器-客户端网络环境中以服务器机器或客户端机器的身份操作,或者作为对等或分布式网络环境中的节点操作。机器600可以被实施为例如服务器计算机、客户端计算机、个人计算机(pc)、平板计算机、膝上型计算机、上网本、机顶盒(stb)、游戏和/或娱乐系统、智能电话、移动设备、可穿戴设备(例如,智能手表)和物联网(iot)设备。此外,尽管仅有单个机器600被示出,但术语“机器”包括单独或联合执行指令616的机器集合。
60.机器600可以包括处理器610、存储630和i/o组件650,其可以经由例如总线602通信地耦合。总线602可以包括经由各种总线技术和协议耦合机器600的各个元件的多个总线。在示例中,处理器610(包括例如中央处理单元(cpu)、图形处理单元(gpu)、数字信号处理器(dsp)、asic或其适当组合)可以包括一个或多个处理器612a至612n,其可以执行指令616并且处理数据。在一些示例中,一个或多个处理器610可以执行由一个或多个个其他处理器610提供或标识的指令。术语“处理器”包括多核处理器,该多核处理器包括可以同时执行指令的核。尽管图6示出了多个处理器,但是机器600可以包括具有单核的单个处理器、具有多核的单个处理机(例如,多核处理机)、每个处理器具有单核的多核处理器、每个处理器具有多核的多核处理器、或其任意组合。在一些示例中,机器600可以包括分布在多个机器之间的多个处理器。
61.存储器/存储设备630可以包括主存储器632、静态存储器634或其他存储器和存储单元636,两者均可访问处理器610,诸如,经由总线602。存储单元636和存储器632、634存储实施本文所述的任何一个或多个功能的指令616。存储器/存储设备630还可以存储针对处理器610的临时、中间和/或长期数据。在其执行期间,指令616还可以完全或部分地驻留在存储器632、634内、存储单元636内、处理器610中的至少一个内(例如,在命令缓冲器或高速缓冲存储器内),i/o组件650中的至少一个存储器内或其任何合适的组合内。因此,存储器632、634、存储单元636、处理器610中的存储器和i/o组件650中的存储器是机器可读介质的示例。
62.如本文所用,“机器可读介质”指能够临时或永久存储指令和数据的设备,该指令和数据使机器600以特定方式操作。本文中使用的术语“机器可读介质”不包括瞬变电信号或电磁信号本身(诸如在通过介质传播的载波上);因此,术语“机器可读介质”可以被认为是有形的和非瞬态的。非瞬态的、有形的机器可读介质的非限制性示例可以包括但不限于非易失性存储器(诸如闪存或只读存储器(rom))、易失性存储(诸如静态随机存取存储器(ram)或动态ram)、缓冲存储器、高速缓存、光存储介质、磁存储介质和设备、网络可访问或云存储、存储的其他类型,和/或其任何合适的组合。术语“机器可读介质”适用于单一介质或多种介质的组合,用于存储由机器600执行的指令(例如,指令616),使得指令在由机器600的一个或多个处理器610执行时,使机器600执行本文描述的一个或多个特征。因此,“机器可读介质”可以指单个存储设备,以及包括多个存储装置或设备的“基于云”存储系统或存储网络。
63.i/o组件650可以包括各种各样的硬件组件,适于接收输入、提供输出、产生输出、传输信息、交换信息、捕获测量等等。特定机器中包括的特定i/o组件650将取决于机器的类型和/或功能。例如,移动设备(诸如移动电话)可以包括触摸输入设备,而无终端服务器或iot设备可以不包括这样的触摸输入设备。图6中所示的i/o组件的特定示例绝不是限制,机器600中可以包括其他类型的组件。i/o组件650的分组仅用于简化此讨论,并且分组绝不是限制。在各种示例中,i/o组件650可以包括用户输出组件652和用户输入组件654。用户输出组件652可以包括例如用于显示信息的视觉组件(例如液晶显示器(lcd)或投影仪)、听觉组件(例如扬声器)、触感组件(例如,振动马达或力反馈设备),和/或其他信号生成器。用户输入组件654可以包括例如字母数字输入组件(例如,键盘或触摸屏)、指点组件(例如,鼠标设备、触摸板或另一指点工具)和/或触觉输入组件(例如,物理按钮或提供位置和/或触摸的力或触摸手势的触摸屏)被配置为接收各种用户输入(诸如用户命令和/或选择)。
64.在一些示例中,除了众多其他传感器组件,i/o组件650可以包括生物识别组件656、运动组件658、环境组件660、和/或定位组件662。生物识别组件656可以包括,例如,用于检测身体表情(例如,面部表情、声音表情、手或身体姿势或眼睛跟踪)、测量生物信号(例如,心率或脑波)和标识人(例如,经由基于语音、基于视网膜和/或基于面部的标识)的组件。定位组件662可以包括,例如,位置传感器(例如,全球定位系统(gps)接收器)、高度传感器(例如,可以从中得到高度的气压传感器)和/或方位传感器(例如,磁强计)。运动组件658可以包括运动传感器(诸如,加速度和旋转传感器)。环境组件660可以包括例如照明传感器、听觉传感器和/或温度传感器。
65.i/o组件650可以包括通信组件664,其实现可操作以经由相应的通信耦合672和682将机器600耦合到(多个)网络670和/或(多个)设备680的各种技术。通信组件664可以包括一个或多个网络接口组件或与(多个)网络670接口的其他合适设备。通信组件664可以包括例如适于提供有线通信、无线通信、蜂窝通信、近场通信(nfc)、蓝牙通信、wi-fi和/或经由其他模式的通信的组件。(多个)设备680可以包括其他机器或各种外围设备(例如,经由usb耦合)。
66.在一些示例中,通信组件664可以检测标识符或包括适于检测标识符的组件。例如,通信组件664可以包括射频标识(rfid)标签读取器、nfc检测器、光学传感器(例如,一维或多维条形码或其他光学代码)和/或声学检测器(例如,标识标记的音频信号的麦克风)。在一些示例中,位置信息可以基于来自通信组件664的信息来确定,诸如但不限于经由互联网协议(ip)地址的地理位置、经由wi-fi、蜂窝、nfc、蓝牙或其他无线站标识和/或信号三角测量的位置。
67.尽管已经描述了各种实施例,但是描述旨在是示例性的,而非限制性的,并且应当理解,在实施例的范围内的更多实施例和实现是可能的。尽管附图中示出了许多可能的特征组合并在此详细描述中进行了讨论,但公开的特征的许多其他组合也是可能的。任何实施例的任何特征可以与任何其他实施例中的任何其他特征或元件组合使用或替代,除非特别限制。因此,应当理解,本公开中示出和/或讨论的任何特征可以以任何适当的组合被一起实现。因此,除了根据所附权利要求及其等同物,实施例不受限制。此外,各种修改和改变可以在所附权利要求的范围内被做出。
68.通常,本文描述的功能(例如,图1-图4中所示的特征)可以使用软件、固件、硬件
(例如,固定逻辑、有限状态机和/或其他电路)或这些实现的组合来实现。在软件实现的情况下,程序代码在处理器(例如,一个或多个cpu)上被执行时执行指定的任务。程序代码可以被存储在一个或多个机器可读存储设备中。本文描述的技术的特征与系统无关,意味着这些技术可以在具有各种处理器的各种计算系统上实现。例如,实现可以包括使硬件执行操作的实体(例如,软件),例如,处理器功能块等。例如,硬件设备可以包括机器可读介质,其可以被配置为维持使硬件设备(包括在其上执行的操作系统和相关联的硬件)执行操作的指令。因此,指令可以用于配置操作系统和相关联的硬件以执行操作,从而配置或以其他方式适配硬件设备以执行上述功能。指令可以由机器可读介质通过各种不同的配置提供给执行指令的硬件元件。
69.在下文中,将通过以下项描述本发明的进一步特征、特性和优点:
70.项目1.一种设备,包括:
71.处理器;以及
72.与处理器通信的存储器,该存储器存储可执行指令,可执行指令在由处理器执行时,使设备执行以下功能:
73.生成用于设备与资源服务器之间的通信会话的会话密钥;
74.从会话密钥得到随机数;
75.向身份平台发送请求以针对访问资源服务器认证设备,该请求包括随机数;
76.在确认认证后,从身份平台接收访问令牌,访问令牌包括确认设备的认证的信息;以及
77.向资源服务器发送访问令牌以支持对资源服务器的访问,
78.其中访问令牌包括随机数。
79.项目2.根据项目1的设备,其中资源服务器是虚拟专用网络(vpn)。
80.项目3.根据项目1或2的设备,其中访问令牌包括标识设备的信息。
81.项目4.根据前述项目中任一项的设备,其中访问令牌包括确认设备是经授权的设备的信息。
82.项目5.根据前述项目中任一项的设备,其中访问令牌包括确认设备遵从资源服务器的一个或多个条件访问策略的信息。
83.项目6.根据前述项目中任一项的设备,其中可执行指令在由处理器执行时,还使设备执行以下功能:
84.向资源服务器发送会话密钥的第一部分;
85.从资源服务器接收会话密钥的第二部分;
86.从会话密钥的第一部分和第二部分生成会话密钥;以及
87.向身份平台发送随机数发送。
88.项目7.根据前述项中任一项的设备,其中随机数是通过生成会话密钥的散列而从会话密钥得到的。
89.项目8.一种用于生成用于提供对资源服务器的访问的访问令牌的方法,该方法包括:
90.从设备接收向设备提供访问令牌的请求,该访问令牌用于访问资源服务器,该请求包括从针对设备与资源服务器之间的通信会话生成的会话密钥得到的随机数;
91.确定该设备是否被授权访问资源服务器;
92.响应于确定设备被授权访问资源服务器,生成访问令牌;
93.将随机数包括在访问令牌中;以及
94.向设备发送访问令牌。
95.项目9.根据项目8的方法,还包括:
96.确定资源服务器是否要求对一个或多个条件访问策略的遵从性;
97.在确定资源服务器要求对一个或多个条件访问策略的遵从性时,验证设备遵从一个或多个条件访问策略,以及
98.将提供设备遵从一个或多个条件访问策略的确认的信息包括在访问令牌中。
99.项目10.根据项目9的方法,其中验证设备遵从一个或多个条件访问策略包括:
100.向设备或针对设备的设备管理提供方中的至少一者发送提供与一个或多个条件访问策略相关的一个或多个设备状态的请求;
101.接收一个或多个设备状态;以及
102.将一个或多个设备状态与一个或多个条件访问策略相比较,以验证一个或多个设备状态是否遵从一个或多个条件访问策略。
103.项目11.根据项目8-10中任一项的方法,其中访问令牌包括标识设备的信息。
104.项目12.根据项目8-11中任一项的方法,其中访问令牌包括确认设备是经授权的设备的信息。
105.项目13.根据项目8-12中任一项的方法,还包括:
106.在从设备接收到请求时,确定针对设备的有效访问令牌是否可用;以及
107.响应于确定针对设备的有效访问令牌可用,向设备发送有效访问令牌。
108.项目14.一种非瞬态计算机可读介质,其上有存储的指令,指令在被执行时,使可编程设备:
109.生成用于可编程设备与资源服务器之间的通信会话的会话密钥;
110.从会话密钥得到随机数;
111.向身份平台发送请求以针对访问资源服务器认证可编程设备,请求包括随机数;
112.在确认认证后,从身份平台接收访问令牌,该访问令牌包括确认可编程设备的认证的信息;以及
113.向资源服务器发送访问令牌以支持对资源服务器的访问,
114.其中访问令牌包括随机数。
115.项目15.根据项目14的非瞬态计算机可读介质,其中资源服务器是虚拟专用网络(vpn)。
116.项目16.根据项目14或项目15的非瞬态计算机可读介质,其中访问令牌包括标识可编程设备的信息。
117.项目17.根据项目14-16中任一项的非瞬态计算机可读介质,其中访问令牌包括确认可编程设备是经授权的设备的信息。
118.项目18.根据项目14-17中任一项的非瞬态计算机可读介质,其中访问令牌包括确认可编程设备遵从资源服务器的一个或多个条件访问策略的信息。
119.项目19.根据项目14-18中任一项的非瞬态计算机可读介质,其中指令还使可编程
设备:
120.向资源服务器发送会话密钥的第一部分;
121.从资源服务器接收会话密钥的第二部分;
122.从会话密钥的第一部分和第二部分生成第二密钥;
123.从会话密钥得到随机数;以及
124.向身份平台发送随机数。
125.项目20.根据项目14-19中任一项的非瞬态计算机可读介质,其中随机数是通过生成会话密钥的散列而从会话密钥项目得到的。
126.尽管前面已经描述了被认为是最佳模式和/或其他示例的内容,但是应当理解,各种修改可以在其中被做出,并且本文所公开的主题可以以各种形式和示例来实现,并且这些教导可以在许多应用中被应用,仅有一些在本文被描述。以下权利要求旨在要求保护落入本教导的真实范围内的任何和所有应用、修改和变化。
127.除非另有说明,本说明书(包括随后的权利要求书)中规定的所有测量、值、额定值、定位、幅值、尺寸和其他规格均为近似值,而非精确值。它们旨在具有合理的范围,该范围与它们所涉及的功能以及它们所属领域的惯例一致。
128.保护范围仅受以下权利要求的限制。当根据本说明书和随后的审查历史进行解释时,该范围旨在且应被解释为与权利要求书中使用的语言的一般含义一致,并且涵盖所有结构和功能等效物。尽管如此,任何权利要求都不旨在涵盖不满足《专利法》第101、102或103条要求的主题,也不应以这样的方式被解释。特此否认对此类主题的任何无意涵盖。
129.除上文所述外,任何已陈述或说明的内容均不旨在或不应被解释为向公众奉献任何组件、步骤、特征、目标、利益、优势或等效物,无论其是否在权利要求书中被陈述。
130.应当理解,本文中使用的术语和表达具有与这样的术语和表达在其相应的调查和研究领域中所赋予的一般含义,除非本文中另有规定的具体含义。
131.诸如第一和第二等关系术语可仅被用于将一个实体或动作与另一实体或动作区分,而不必要求或暗示这样的实体或动作之间的任何这样的实际关系或顺序。术语“包括”、“包含”及其任何其他变体旨在覆盖非排他性包含,使得包括元素列表的过程、方法、物品或装置不仅包括这些元素,还可以包括未明确列出的或这样的过程、方法或物品或装置固有的其他元素。在没有其他限制的情况下,以“一”或“一个”开头的元素不排除构成该元素的过程、方法、物品或装置中其他相同元素的存在。
132.本公开的摘要被提供以允许读者快速标识技术公开的性质。提交的理解是,该摘要不会被用于解释或限制权利要求的范围或含义。此外,在前述详细描述中,可以看出,为了简化公开的目的,各种特征在各种示例中组合在一起。本公开的方法不应被解释为反映任何权利要求要求比权利要求明确陈述的更多特征的意图。相反,如以下权利要求所反映,发明主题在于少于单个公开示例的所有特征。因此,以下权利要求在此并入详细说明中,每个权利要求都作为单独要求保护的主题。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献