首页> 中国专利> 用于安全调用REST API的方法和装置

用于安全调用REST API的方法和装置

摘要

本发明实施方式提供了一种使得用户能够安全地调用应用服务器处的REST(表象化状态转移)API(应用编程接口)的系统。客户端可以建立与应用服务器的安全通信信道,并且可以向应用服务器发送请求以调用REST API。客户端继而可以响应于通过认证系统来认证用户,从该认证系统接收安全令牌。接着,客户端可以从应用服务器接收随机数和时间戳。继而,客户端可以使用安全令牌、随机数和时间戳来确定安全令牌摘要。接着,客户端可以再次向应用服务器发送请求以利用安全令牌摘要调用REST API。如果安全令牌摘要是有效的,则应用服务器可以调用REST API。

著录项

  • 公开/公告号CN101534196A

    专利类型发明专利

  • 公开/公告日2009-09-16

    原文格式PDF

  • 申请/专利权人 因特伟特公司;

    申请/专利号CN200910004472.3

  • 发明设计人 R·Y·莱;K·F·钱;

    申请日2009-03-04

  • 分类号H04L9/32(20060101);H04L29/06(20060101);

  • 代理机构11256 北京市金杜律师事务所;

  • 代理人王茂华

  • 地址 美国加利福尼亚州

  • 入库时间 2023-12-17 22:40:15

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2014-09-03

    授权

    授权

  • 2011-03-23

    实质审查的生效 IPC(主分类):H04L9/32 申请日:20090304

    实质审查的生效

  • 2009-09-16

    公开

    公开

说明书

技术领域

本发明一般地涉及用于提供安全web服务的技术。

背景技术

万维网(WWW),或简称“web”,几乎已经渗透我们生活的 方方面面——从购买照相机到购买不动产,从阅读报纸到观看电影。 不幸的是,web也可以是非常危险的场所,在该场所中,即使精明的 用户也可能泄露高度敏感的信息或者遭受实质财产损失。

因此,提供对web服务的安全访问是重要的安全问题。不过,此 问题由于至少两个原因而特别地具有挑战性。第一,互联网本质上是 不安全的,因为它是公共网络。结果,通过互联网提供对web服务的 安全访问的系统和技术需要解决各种各样的安全问题。第二,web大 部分的非凡成就归因于其高度可扩展架构以及其用户友好接口,例如 web浏览器。因此,重要的是要确保安全解决方案既可扩展又用户友 好。换言之,创建提供对web服务的安全访问的系统和技术可能是极 具挑战的,因为这些系统和技术需要高度安全、可扩展和用户友好。

发明内容

本发明的一个实施方式提供了一种系统,其使得用户能够安全地 调用应用服务器处的REST(表象化状态转移)API(应用编程接口)。

在操作期间,客户端可以建立与应用服务器的安全通信信道。接 着,客户端可以使用该安全通信信道来向应用服务器发送请求以调用 REST API。响应于通过认证系统来认证用户,客户端继而可以从认证 系统接收安全令牌。具体地,安全令牌可以是SAML(安全性断言标 记语言)令牌、UniAuth令牌、非对称密钥或者Kerberos凭证(ticket)。 接下来,客户端可以从应用服务器接收随机数(nonce)和时间戳。 客户端继而可以使用安全令牌、随机数和时间戳来确定安全令牌摘 要。具体地,客户端可以通过对安全令牌、随机数和时间戳应用加密 哈希函数来确定安全令牌摘要。接着,客户端可以向应用服务器发送 另一请求以利用安全令牌摘要调用REST API。如果安全令牌摘要被 应用服务器成功验证,则客户端继而可以从与此REST API调用相关 联的应用服务器接收数据。接下来,客户端可以存储该数据并且可以 向用户显示该数据。

在一些实施方式中,安全通信信道可以是HTTPS(通过安全套接 层的超文本传输协议)会话,并且REST API可以使用URL(统一资 源定位符)来指定

在一些实施方式中,客户端可以从应用服务器接收重定向消息。 该重定向消息可以使得客户端建立与认证系统的安全通信信道,并通 过认证系统来认证用户。

在一种实施方式中,客户端可以建立与应用服务器的安全通信会 话。接着,应用服务器可以从客户端接收调用REST API的请求。应 用服务器继而可以向客户端发送随机数和时间戳。接下来,应用服务 器可以从客户端接收安全令牌摘要。应用服务器继而可以验证该安全 令牌摘要。如果安全令牌摘要是有效的,则应用服务器可以调用REST API,并且将得到的输出数据发送给客户端。

附图说明

图1示出了根据本发明的实施方式的网络。

图2提供了示出根据本发明的实施方式的流程图,其中示出了用 户可以如何安全地调用应用服务器处的REST API。

图3提供了示出根据本发明的实施方式的流程图,其中示出了应 用服务器可以如何使得用户能够安全地调用REST API。

图4示出了根据本发明的实施方式、用于安全调用REST API的 系统。

具体实施方式

提供以下描述使得本领域技术人员能够制造和使用本发明,此描 述在特定应用及其需求的环境中给出。对于本领域技术人员来说,对 所公开的实施方式的各种修改将变得非常明显,并且此处所限定的一 般原理可以应用于其他实施方式和应用,而不偏离本发明的精神和范 围。因此,本发明不限于所示出的实施方式,而是按照与此处所公开 的原理和特征一致的最宽的范围。

在此具体描述中所描述的数据结构和代码通常存储在计算机可 读存储介质上,计算机可读存储介质可以是能够存储代码和/或数据以 便由计算机系统使用的任何设备或介质。计算机可读存储介质包括但 不限于,易失性存储器、非易失性存储器、磁的和光的存储设备(诸 如盘驱动器)、磁带、CD(压缩盘)、DVD(数字多功能光盘或数 字视频盘)或目前已知的或以后开发的能够存储计算机可读媒体的其 他介质。

在此具体描述部分所描述的方法和过程可以实现为代码和/或数 据,其可以存储在上述计算机可读存储介质中。当计算机系统读取和 执行存储在计算机可读存储介质上的代码和/或数据时,该计算机系统 执行实现为存储在计算机可读存储介质内的数据结构和代码的方法 和过程。

而且,下文描述的方法和过程可以包括在硬件模块中。例如,硬 件模块可以包括但不限于,专用集成电路(ASIC)芯片、现场可编程 门阵列(FPGA)以及目前已知的或以后开发的其他可编程逻辑设备。 当硬件模块被激活时,硬件模块执行包括在此硬件模块内的方法和过 程。

REST(表象化状态转移)

本发明的一种实施方式保证了REST web服务中的机密性、完整 性和不可否认性,并且避免了用于提供REST API的传统技术的安全 漏洞。

REST web服务模型通常在web应用中使用,因为其更容易通过 在HTTP(超文本传输协议)请求或响应中传递参数和业务数据来实 现和使用。SOAP是一种用于交换基于XML(可扩展标记语言)的消 息的协议,其拥有安全标准。与SOAP不同,REST没有现成的安全 标准,并且大部分实现是通过不具有安全性的HTTP来完成。有些服 务提供商通过使用私有的安全令牌,向通过HTTP的REST web服务 调用添加认证。不过,由于每个服务提供商有其自己的令牌、自己的 密钥管理分发机制以及自己的私有安全处理逻辑,用户必须了解用于 访问web服务的多个应用。

而且,传统的方式易受攻击,因为它们将安全令牌嵌入在HTTP 请求中。特别地,通过HTTP的REST API调用完全没有安全性。通 过HTTPS(通过安全套接层的超文本传输协议)的REST API调用仍 然易受消息重放和欺骗攻击的伤害。而且,通过HTTP的REST API 调用可能不支持完整性和不可否认性。

例如,使用网络嗅探器或安全测试工具可以很容易地拦截诸如 “http://rest.api.intuit.com/restapi?CallName=GetAccountBalance&Secu rityToken=3A68...EF07&UserId=johndoe”的REST API调用,并且黑 客(hacker)可以通过修改或猜测客户数据来执行重放。这对于客户 和服务提供商来说都可能是重要的安全问题,因为没有认证、完整性 和不可否认性,敏感性的商业交易将不会受到充分的保护。

REST安全令牌赋予器(tokenizer)

本发明的一种实施方式提供了用于REST web服务的系统和技术, 其能够保证机密性(例如经由认证)、完整性(例如数据不能被纂改) 和不可否认性(例如,各方不能否认商业交易的发生)。具体地,实 施方式包括创建安全令牌赋予器以及确保机密性、完整性和不可否认 性的安全处理机制。

安全令牌赋予器封装安全证书。取决于商业交易的安全需求,安全 令牌赋予器可以封装不同类型的令牌。例如,安全令牌赋予器可以封装 通常在SSO(单点登录(Sign-On))过程中使用的SAML令牌。SAML 令牌可以确保认证和完整性。在SSO过程期间,通常由身份提供者创建 和传递SAML令牌。由于SAML令牌不存储在客户端本地,因此SAML 令牌可以避免密钥管理问题。

可选地,安全令牌赋予器可以封装由某些Intuit(因特韦特)应用使 用的Intuit的UniAuth凭证。UniAuth凭证可以确保在预定义的时间期间 内的认证。凭证通常由UniAuth服务器在用户登入时创建,并且其有效 时间通常不到一个小时。

在另一实施方式中,安全令牌赋予器可以将用于生成数字证书的非 对称密钥作为令牌。此方法能够确保认证、完整性和不可否认性。这些 属性对于与第三方交换数据以及确保高级别的保护而言可以是非常重 要的。

安全处理机制创建安全令牌的摘要,并且在通过安全信道(例如通 过HTTPS会话)调用REST web服务时发送此摘要。具体地,安全处理 机制可以使用加密哈希函数(例如SHA-1)来生成摘要。

在一种实施方式中,当客户端应用调用REST API时,服务器返回 随机数。随机数是由服务器创建的一个唯一的随机值,以用于创建消息 摘要。继而,客户端获得base-64编码的安全令牌赋予器并且创建消息 摘要。例如,系统可以使用标准SHA-1哈希算法,根据安全令牌、随机 数和系统时间戳来创建摘要。客户端继而可以利用该摘要重新提交通过 HTTPS的REST服务请求。

由于本发明的实施方式使用通过HTTPS的安全令牌赋予器摘要, 因此该实施方式能够确保商业交易和服务请求的完整性。进一步地,如 果该实施方式使用非对称密钥,则安全令牌赋予器(其封装此非对称密 钥)也可以对REST API调用请求进行数字化签名。此方式可以增加提 供不可否认性能力的优势。

具体地,由于如下原因,本发明的实施方式使得REST API调用请 求安全。第一,实施方式使用HTTPS来确保客户端和服务器之间的通 信是加密的。第二,安全令牌赋予器摘要确保了机密性,并且防止受到 消息重放、欺骗和暴力攻击。第三,实施方式可以使用数字化签名以确 保不可否认性。

除了上述安全特征之外,当相比于用于提供REST服务的传统方式 时,本发明的实施方式具有额外的优势。由于安全令牌赋予器可以封装 不同类型的令牌,因此当从一种安全令牌类型切换到另一种时,不需要 重写或改变应用。而且,安全令牌赋予器不用“重新从头做”,因为它 重用了安全基础设施,例如用于SAML令牌的单点登录基础设施、用于 数字证书的PKI(公钥基础设施)等等。此外,由于可以动态管理安全 令牌,因此令牌不必在本地存储。另外,本发明的实施方式可以使用web 浏览器客户端或台式客户端来实现。由于SAML令牌可以包括能够从身 份提供者基础设施接收的访问权简档,因此本发明的实施方式可以使用 该访问权简档来为用户确定访问权。

网络

图1示出了根据本发明的实施方式的网络。

计算机102包括处理器104、存储器106以及存储装置108。计 算机102可以与显示器114、键盘110和指示设备112相耦合。存储 装置108可以存储web浏览器116、应用118以及操作系统120。在 操作期间,计算机102可以将操作系统120加载到存储器106中。接 着,用户122可以将web浏览器116加载到存储器106中,并且使用 该web浏览器来浏览万维网。

计算机102可以与网络130耦合,网络130使得计算机102能够 与应用服务器126和认证系统128通信。网络130通常可以包括能够 将网络节点耦合到一起的任意类型的有线或无线通信信道。这包括但 不限于,局域网、广域网、网络的组合或支持两个或多个计算系统之 间的通信的其他网络。在本发明的一种实施方式中,网络130包括因 特网。

用户122可以使用web浏览器116来与应用服务器126通信,该 应用服务器126可以支持在线应用。设备124也可以用于web浏览或 者用于调用REST API。设备124可以经由有线或无线通信信道与网 络130耦合。例如,设备124可以经由Wi-Fi信道(使用实线示出) 与网络130相耦合。此外,设备124也可以经由有线或无线通信信道 (使用虚线示出)直接与计算机102相耦合。例如,设备124可以经 由USB(通用串行总线)和/或蓝牙与计算机102耦合。

用于安全调用REST API的过程

图2提供了示出根据本发明的实施方式的流程图,其中示出了用 户可以如何安全地调用应用服务器处的REST API。

响应于通过认证系统来认证用户,客户端可以从认证系统接收安 全令牌(步骤202)。认证系统可以包括针对认证目的而使用的一个 或多个计算机。例如,认证系统可以是身份提供者服务器,并且安全 令牌可以是在单点登录过程期间生成的SAML令牌。可选地,认证系 统可以包括Kerberos认证服务器和Kerberos凭证许可服务器,并且 安全令牌可以是Kerberos凭证。

接下来,客户端可以建立与应用服务器的安全通信信道(步骤 204)。例如,客户端可以与服务器建立HTTPS会话。注意,不是所 有的SSL(安全套接层)实现都检查服务器的数字证书,因此,它们 容易遭受中间人(man-in-the-middle)攻击。

客户端继而可以向应用服务器发送请求以调用REST API,其中 该请求使用安全通信信道进行发送(步骤206)。例如,可以使用URL 来调用REST API,并且请求可以通过HTTPS会话、作为HTTP“GET (得到)”消息来发送。

接着,客户端可以从应用服务器接收随机数和时间戳(步骤208)。 随机数可以是由应用服务器生成的伪随机数,时间戳可以是应用服务 器的系统时间。

客户端继而可以使用安全令牌、随机数和时间戳来确定安全令牌 摘要(步骤210)。具体地,系统可以通过对安全令牌、随机数和时 间戳应用加密哈希函数来生成安全令牌摘要。在一种实施方式中,加 密哈希函数可以是SHA-1。

接着,客户端可以向应用服务器发送另一请求以调用REST API, 其中该请求包括安全令牌摘要,并且其中该请求使用安全通信信道来 发送(步骤212)。

客户端继而可以从与此REST API调用相关联的应用服务器接收 数据(步骤214)。例如,数据可以包括在通过HTTPS会话接收的 HTTP响应消息中。

接着,客户端可以存储数据(步骤216)。例如,客户端可以将 数据存储在存储器中或存储在另一计算机可读存储介质中。

图3提供了示出根据本发明的实施方式的流程图,其中示出了应 用服务器可以如何使得用户能够安全地调用REST API。

应用服务器可以建立与客户端的安全通信信道(步骤302)。接 着,应用服务器可以从客户端接收调用REST API的请求,其中该请 求使用此安全通信信道来接收(步骤304)。

应用服务器继而可以向客户端发送随机数和时间戳(步骤306)。 接着,应用服务器可以从客户端接收安全令牌摘要(步骤308)。

应用服务器继而可以确定安全令牌摘要是否有效(步骤310)。 具体地,应用服务器可以使用安全令牌、随机数和时间戳来验证该安 全令牌摘要。

如果安全令牌摘要是有效的,则应用服务器可以将数据发送给与 此REST API调用相关联的客户端(步骤312)。

否则,如果安全令牌摘要是无效的,则应用服务器可以向客户端 发送错误消息(步骤314)。

出于示例和说明的目的,已经提供这些描述,并且其不旨在于将 本发明限制在所公开的形式。相应地,对于本领域技术人员来说很多 修改和变形是显而易见的。例如,在一个实施方式中,响应于接收调 用REST API的请求,应用服务器可以向客户端发送重定向消息,以 将客户端重定向到认证系统。该重定向消息可以使得客户端建立与认 证系统的安全通信信道。接着,客户端可以使用该安全通信信道,通 过认证系统来认证用户,以及接收安全令牌。客户端继而可以生成安 全令牌摘要,并且使用该摘要来安全地调用REST API。在用户通过 认证系统认证之后,认证系统可以向客户端发送重定向消息以将客户 端重定向到应用服务器。在一个实施方式中,重定向消息可以使得客 户端向应用服务器发送安全令牌。

示例性实施方式

图4示出了根据本发明实施方式的用于安全地调用REST API的 系统。

客户端402、认证系统404以及应用服务器406可以使用网络来 相互通信。在一种实施方式中,认证服务器406可以是身份提供者服 务器。

过程可以从用户使用客户端402、通过认证服务器404来认证并 且接收安全令牌410时开始(步骤408)。

接着,客户端402可以调用应用服务器406处的REST API(步 骤412)。例如,客户端402可以通过向应用服务器406发送HTTP “GET”请求来调用REST API。

应用服务器406继而可以向客户端402发送随机数和时间戳(步 骤414)。在此实施方式的一种变形中,应用服务器406可以仅向客 户端402发送时间戳。接着,客户端402可以通过向安全令牌410、 随机数和时间戳应用加密哈希函数来生成安全令牌摘要416。

接着,客户端402可以使用安全令牌摘要416来调用应用服务器 406处的REST API(步骤418)。

应用服务器406继而可以通过认证服务器404核实安全令牌摘要 416(步骤420)。在一种实施方式中,应用服务器406可以使用JAAS (JavaTM认证和授权服务)来核实安全令牌摘要416。(JavaTM是Sun 微系统公司的商标,该商标可以在美国和/或其他国家注册。)

一旦核实了安全令牌摘要416,应用服务器406就可以处理REST API调用以生成输出数据422。例如,应用服务器406可以执行数据 库查询以生成输出数据422。

接着,应用服务器406可以将输出数据422发送给客户端402(步 骤424)。客户端402继而可以向用户显示输出数据422。

仅出于示例性和描述的目的,已经提供了本发明实施方式的上述 描述。这些描述不旨在于穷举本发明或将本发明限制于所公开的形 式。相应地,对于本领域技术人员来说很多变形和修改是显而易见的。 而且,上述公开内容不旨在限制本发明。本发明的范围由所附权利要 求书限定。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号