CN103095731A - 一种基于签名机制的rest安全系统 - Google Patents

一种基于签名机制的rest安全系统 Download PDF

Info

Publication number
CN103095731A
CN103095731A CN2013100566823A CN201310056682A CN103095731A CN 103095731 A CN103095731 A CN 103095731A CN 2013100566823 A CN2013100566823 A CN 2013100566823A CN 201310056682 A CN201310056682 A CN 201310056682A CN 103095731 A CN103095731 A CN 103095731A
Authority
CN
China
Prior art keywords
signature
request
rest
api
user
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN2013100566823A
Other languages
English (en)
Inventor
王帅
张培训
刘俊朋
许磊
刘凡凡
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inspur Electronic Information Industry Co Ltd
Original Assignee
Inspur Electronic Information Industry Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Inspur Electronic Information Industry Co Ltd filed Critical Inspur Electronic Information Industry Co Ltd
Priority to CN2013100566823A priority Critical patent/CN103095731A/zh
Publication of CN103095731A publication Critical patent/CN103095731A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Computer And Data Communications (AREA)

Abstract

本发明提供一种基于签名机制的REST安全系统,本系统是以签名机制为核心,在http请求中封装sessionkey和参数的md5加密信息,通过传递这种加密过的数据以应对黑客在传输中的拦截和数据篡改等恶意攻击,同时加密数据也可以保护用户的隐私信息,达到安全的目的与现有技术相比较,本发明至少具有如下有益效果:本发明的基于签名的REST使用模型,在API方法被调用之前通过认证授权先限制非法用户访问本应用,然后当用户通过认证后访问API时,获取这个API所属应用的私钥,再在请求中获取此RESTAPI要求的参数,根据参数和私钥两项使用约定好的格式把他们组织起来,然后进行md5加密,加密后的数据放置到请求里;从而达到安全的目的。

Description

一种基于签名机制的REST安全系统
技术领域
本发明涉及web安全领域,具体地说是一种基于签名机制的REST安全系统。
背景技术
当前,REST的流行使得越来越多的框架开始支持REST,REST—表述性状态转移,为我们构建下一代高性能、高可伸缩性、简单性、可移植性、可靠性的Web程序提供了一个架构风格上的准则。Web是简单的,Web更是可编程的,REST利用简单的HTTP、URI标准和XML语言构建起轻量级的Web服务,从而大幅度地提升了开发效率和程序性能
在这个过程中,随着安全成为了SOA实现的主要宗旨之一,以及REST迅速成为流行的SOA实现方案之一,关于REST安全成为了及时的话题。因为REST是基于HTTP的,而REST服务有跟标准的web应用一样的容易受攻击的倾向,并且REST没有预定义的安全方法,必须依靠开发人员定义自己的安全方法来维护资源调用。
为此,我们提出一种基于签名机制的REST安全模型,以满足安全的需要。
发明内容
本发明的目的是提供一种基于签名机制的REST安全系统。能够使web用户可以在使用网络提供的API时更加安全。
本发明的目的是按以下方式实现的,本系统是以签名机制为核心,在http请求中封装session key和参数的md5加密信息,通过传递这种加密过的数据以应对黑客在传输中的拦截和数据篡改等恶意攻击,同时加密数据也可以保护用户的隐私信息,达到安全的目的。系统结构包括:认证授权单元(1),请求封装单元(2),异常处理单元(3),其中:
认证授权单元(1)包括用户验证和用户授权两个模块;用于确保用户的认证和用户授权的用途,确保用户知道他授予什么样的数据和权限,在调用rest类型api的时候首先需要经过认证授权保证用户的合法性,然后通过在请求里添加签名防止session key的盗用以及数据篡改等恶意攻击行为的发生;
签名单元(2)根据请求参数和应用的私钥生成一个签名,并将这个签名追加到用户请求中;
异常处理单元(3)负责处理REST API调用失败时抛出的异常;
具体步骤如下:
第一步:验证与授权,客户端应用在调用REST API之前,必须获得认证授权系统的授权,从技术的角度来看获得授权就是获取一个Session Key;
第二步:接口调用,先定义一个签名方法:
S:{
将请求参数格式化为“key=value”格式,即“k1=v1”、“k2=v2”、“k3=v3”; 
将上述格式化好的参数键值对,以字典序升序排列后,拼接在一起,即“k1=v1k2=v2k3=v3”; 
在拼接好的字符串末尾追加上API应用的私钥; 
上述字符串的MD5值即为签名的值;
}
接着使用这个方法对请求进行处理得到签名;
第三步:发送请求,通过HTTP协议,客户端使用HTTP的标准方法与服务器端通信;
第四步:异常处理,由于每个API调用都是通过发送HTTP请求来完成的,因此都有可能因为发送的参数不合法、发送频率过快次数过多、平台服务器出问题各种原因而导致API调用失败,API调用失败时服务器端会抛出一个异常,并将异常信息序列化后返回给客户端,客户端根据异常信息的类型做异常处理的操作。
本发明的有益效果是:该系统与现有技术相比较,是基于签名的REST使用模型,在API方法被调用之前通过认证授权先限制非法用户访问本应用,然后当用户通过认证后访问API时,获取这个API所属应用的私钥,再在请求中获取此REST API要求的参数,根据参数和私钥两项使用约定好的格式把他们组织起来,然后进行md5加密,加密后的数据放置到请求里;从而达到安全的目的。
附图说明
图1是根据本发明用户如何安全地调用应用服务器的API流程图;
图2是用于安全调用REST API的系统结构示意图。
具体实施方式
 参照说明书附图对本发明的方法作以下详细地说明。
第一步:验证与授权,客户端应用在调用REST API之前,必须获得认证授权系统的授权。从技术的角度来看获得授权就是获取一个Session Key;
第二步:接口调用,这里我们先定义一个签名算法:
S:{
将请求参数格式化为“key=value”格式,即“k1=v1”、“k2=v2”、“k3=v3”; 
将上述格式化好的参数键值对,以字典序升序排列后,拼接在一起,即“k1=v1k2=v2k3=v3”; 
在拼接好的字符串末尾追加上API应用的私钥; 
上述字符串的MD5值即为签名的值;
}
接着我们使用这个算法对请求进行处理得到签名;
第三步:发送请求,通过HTTP协议,客户端使用HTTP的标准方法与服务器端通信;
第四步:异常处理,由于每个API调用都是通过发送HTTP请求来完成的,因此都有可能因为发送的参数不合法、发送频率过快次数过多、平台服务器出问题等原因而导致API调用失败。API调用失败时服务器端会抛出一个异常,并将异常信息序列化后返回给客户端,客户端根据异常信息的类型做异常处理的操作。
 除说明书所述的技术特征外,均为本专业技术人员的已知技术。

Claims (1)

1.一种基于签名机制的REST安全系统, 其特征在于系统包括:认证授权单元(1),请求封装单元(2),异常处理单元(3),其中:
认证授权单元(1)包括用户验证和用户授权两个模块;用于确保用户的认证和用户授权的用途,确保用户知道他授予什么样的数据和权限,在调用rest类型api的时候首先需要经过认证授权保证用户的合法性,然后通过在请求里添加签名防止session key的盗用以及数据篡改等恶意攻击行为的发生;
签名单元(2)根据请求参数和应用的私钥生成一个签名,并将这个签名追加到用户请求中;
异常处理单元(3)负责处理REST API调用失败时抛出的异常;
具体步骤如下:
第一步:验证与授权,客户端应用在调用REST API之前,必须获得认证授权系统的授权,从技术的角度来看获得授权就是获取一个Session Key;
第二步:接口调用,先定义一个签名方法:
S:{
将请求参数格式化为“key=value”格式,即“k1=v1”、“k2=v2”、“k3=v3”; 
将上述格式化好的参数键值对,以字典序升序排列后,拼接在一起,即“k1=v1k2=v2k3=v3”; 
在拼接好的字符串末尾追加上API应用的私钥; 
上述字符串的MD5值即为签名的值;
}
接着使用这个方法对请求进行处理得到签名;
第三步:发送请求,通过HTTP协议,客户端使用HTTP的标准方法与服务器端通信;
第四步:异常处理,由于每个API调用都是通过发送HTTP请求来完成的,因此都有可能因为发送的参数不合法、发送频率过快次数过多、平台服务器出问题各种原因而导致API调用失败,API调用失败时服务器端会抛出一个异常,并将异常信息序列化后返回给客户端,客户端根据异常信息的类型做异常处理的操作。
CN2013100566823A 2013-02-22 2013-02-22 一种基于签名机制的rest安全系统 Pending CN103095731A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2013100566823A CN103095731A (zh) 2013-02-22 2013-02-22 一种基于签名机制的rest安全系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2013100566823A CN103095731A (zh) 2013-02-22 2013-02-22 一种基于签名机制的rest安全系统

Publications (1)

Publication Number Publication Date
CN103095731A true CN103095731A (zh) 2013-05-08

Family

ID=48207864

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2013100566823A Pending CN103095731A (zh) 2013-02-22 2013-02-22 一种基于签名机制的rest安全系统

Country Status (1)

Country Link
CN (1) CN103095731A (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103699824A (zh) * 2014-01-13 2014-04-02 浪潮(北京)电子信息产业有限公司 一种调用rest api的方法、系统及客户端
CN103973695A (zh) * 2014-05-16 2014-08-06 浪潮电子信息产业股份有限公司 一种与服务器验证的签名算法
CN104394147A (zh) * 2014-11-26 2015-03-04 西安电子科技大学 在安卓系统的http协议中添加身份认证信息的方法
CN105897402A (zh) * 2016-04-05 2016-08-24 乐视控股(北京)有限公司 参数加密方法、装置
CN106656468A (zh) * 2016-10-13 2017-05-10 上海拓畅信息技术有限公司 一种在线广告的新型加密防伪辨别方法
CN106991298A (zh) * 2016-01-21 2017-07-28 阿里巴巴集团控股有限公司 应用程序对接口的访问方法、授权请求方法及装置
CN109391689A (zh) * 2018-10-08 2019-02-26 郑州云海信息技术有限公司 一种微服务应用程序编程接口调用的方法及装置
CN109450649A (zh) * 2018-12-28 2019-03-08 北京金山安全软件有限公司 一种基于应用程序接口的网关验证方法、装置及电子设备
CN110149367A (zh) * 2019-04-17 2019-08-20 平安科技(深圳)有限公司 判断调用接口请求是否正常的方法、装置和计算机设备
CN111786798A (zh) * 2020-07-08 2020-10-16 浪潮云信息技术股份公司 一种应用于JavaWeb的Rest接口鉴权实现方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1669265A (zh) * 2002-05-15 2005-09-14 伊露西斯有限公司 在计算机系统中使用的隐藏的链接动态密钥管理器
CN101496005A (zh) * 2005-12-29 2009-07-29 亚马逊科技公司 具有网络服务客户接口的分布式存储系统
CN101616136A (zh) * 2008-06-26 2009-12-30 阿里巴巴集团控股有限公司 一种提供互联网服务的方法及服务集成平台系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1669265A (zh) * 2002-05-15 2005-09-14 伊露西斯有限公司 在计算机系统中使用的隐藏的链接动态密钥管理器
CN101496005A (zh) * 2005-12-29 2009-07-29 亚马逊科技公司 具有网络服务客户接口的分布式存储系统
CN101616136A (zh) * 2008-06-26 2009-12-30 阿里巴巴集团控股有限公司 一种提供互联网服务的方法及服务集成平台系统

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103699824A (zh) * 2014-01-13 2014-04-02 浪潮(北京)电子信息产业有限公司 一种调用rest api的方法、系统及客户端
CN103973695A (zh) * 2014-05-16 2014-08-06 浪潮电子信息产业股份有限公司 一种与服务器验证的签名算法
CN104394147A (zh) * 2014-11-26 2015-03-04 西安电子科技大学 在安卓系统的http协议中添加身份认证信息的方法
CN104394147B (zh) * 2014-11-26 2017-06-16 西安电子科技大学 在安卓系统的http协议中添加身份认证信息的方法
CN106991298A (zh) * 2016-01-21 2017-07-28 阿里巴巴集团控股有限公司 应用程序对接口的访问方法、授权请求方法及装置
US10878066B2 (en) 2016-01-21 2020-12-29 Banma Zhixing Network (Hongkong) Co., Limited System and method for controlled access to application programming interfaces
CN105897402A (zh) * 2016-04-05 2016-08-24 乐视控股(北京)有限公司 参数加密方法、装置
CN106656468A (zh) * 2016-10-13 2017-05-10 上海拓畅信息技术有限公司 一种在线广告的新型加密防伪辨别方法
CN109391689A (zh) * 2018-10-08 2019-02-26 郑州云海信息技术有限公司 一种微服务应用程序编程接口调用的方法及装置
CN109450649A (zh) * 2018-12-28 2019-03-08 北京金山安全软件有限公司 一种基于应用程序接口的网关验证方法、装置及电子设备
CN110149367A (zh) * 2019-04-17 2019-08-20 平安科技(深圳)有限公司 判断调用接口请求是否正常的方法、装置和计算机设备
CN111786798A (zh) * 2020-07-08 2020-10-16 浪潮云信息技术股份公司 一种应用于JavaWeb的Rest接口鉴权实现方法

Similar Documents

Publication Publication Date Title
CN103095731A (zh) 一种基于签名机制的rest安全系统
CN108064440B (zh) 基于区块链的fido认证方法、装置及系统
WO2017028593A1 (zh) 网络接入设备接入无线网络接入点的方法、网络接入设备、应用程序服务器和非易失性计算机可读存储介质
CN107046531B (zh) 监测终端的数据接入电力信息网络的数据处理方法及系统
CN105207782B (zh) 一种基于restful架构的身份验证方法
CN105873031B (zh) 基于可信平台的分布式无人机密钥协商方法
CN104754582B (zh) 维护byod安全的客户端及方法
CN104869102B (zh) 基于xAuth协议的授权方法、装置和系统
CN106921663B (zh) 基于智能终端软件/智能终端的身份持续认证系统及方法
CN102685749B (zh) 面向移动终端的无线安全身份验证方法
CN107251035A (zh) 账户恢复协议
CN103166931A (zh) 一种安全传输数据方法,装置和系统
CN112235235A (zh) 一种基于国密算法的sdp认证协议实现方法
CN104780176A (zh) 安全调用表述性状态转移应用编程接口的方法和系统
Liu et al. Smart solution, poor protection: An empirical study of security and privacy issues in developing and deploying smart home devices
CN109150821A (zh) 基于超文本传输协议http的数据交互方法及系统
CN103023911A (zh) 可信网络设备接入可信网络认证方法
CN103906052A (zh) 一种移动终端认证方法、业务访问方法及设备
CN111277607A (zh) 通信隧道模块、应用监控模块及移动终端安全接入系统
CN110225050A (zh) Jwt令牌的管理方法
CN102916965A (zh) 一种云服务接口的安全认证机制及其认证系统
CN109587100A (zh) 一种云计算平台用户认证处理方法及系统
CN104754571A (zh) 用于多媒体数据传输的用户认证实现方法、装置及其系统
CN107566114A (zh) 一种云物联平台中设备加密及传输加密的方法
CN104767766A (zh) 一种Web Service接口验证方法、Web Service服务器、客户端

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20130508