安全调用表述性状态转移应用编程接口的方法和系统.pdf

上传人:000****221 文档编号:1684781 上传时间:2018-07-04 格式:PDF 页数:10 大小:597.71KB
返回 下载 相关 举报
摘要
申请专利号:

CN201510208327.2

申请日:

2015.04.28

公开号:

CN104780176A

公开日:

2015.07.15

当前法律状态:

实审

有效性:

审中

法律详情:

实质审查的生效IPC(主分类):H04L 29/06申请日:20150428|||公开

IPC分类号:

H04L29/06; H04L9/32

主分类号:

H04L29/06

申请人:

中国科学院微电子研究所

发明人:

陈岚; 肖京; 雷君

地址:

100029北京市朝阳区北土城西路3号中科院微电子所

优先权:

专利代理机构:

北京集佳知识产权代理有限公司11227

代理人:

王宝筠

PDF下载: PDF下载
内容摘要

本发明提供的一种安全调用表述性状态转移应用编程接口的方法和系统,包括:接收用户发送的表述性状态转移应用编程接口调用请求;判断用户是否为注册用户;若为未注册用户,则拒绝调用请求,并向用户返回错误信息;若为注册用户,则根据数据库中保存的用户的密码以及时间戳和请求调用参数生成参考签名,并判断参考签名与用户发送的签名是否一致;若不一致,拒绝调用请求,并向用户返回错误信息;若一致,判断接收调用请求的时间是否在有效期内,若在有效期内,同意调用请求,并向用户返回请求调用数据,若不在,则拒绝调用请求,并向用户返回错误信息,以提高调用物联网表述性状态转移应用编程接口的安全性。

权利要求书

权利要求书1.  一种安全调用表述性状态转移应用编程接口的方法,其特征在于,包 括: 接收用户发送的表述性状态转移应用编程接口调用请求,所述调用请求 包括所述用户的用户名、请求调用参数、时间戳和签名; 判断所述用户是否为注册用户; 若为未注册用户,则拒绝所述调用请求,并向所述用户返回错误信息; 若为注册用户,则根据数据库中保存的所述用户的密码以及所述时间戳 和请求调用参数生成参考签名,并判断所述参考签名与所述用户发送的签名 是否一致; 若不一致,拒绝所述调用请求,并向所述用户返回错误信息; 若一致,判断接收所述调用请求的时间是否在有效期内,若在有效期内, 同意所述调用请求,并向所述用户返回请求调用数据,若不在,则拒绝所述 调用请求,并向所述用户返回错误信息。 2.  根据权利要求1所述的方法,其特征在于,所述签名是根据所述请求 调用参数、时间戳和所述用户的密码生成并加密的,所述参考签名与所述签 名的生成和加密方式相同。 3.  根据权利要求2所述的方法,其特征在于,所述接收用户发送的表述 性状态转移应用编程接口调用请求之前,还包括: 接收所述用户的注册请求,并对所述用户进行认证,认证通过后,向所 述用户发送授权的用户名和对应的密码,所述用户名和密码与所述用户一一 对应。 4.  根据权利要求2所述的方法,其特征在于,所述判断接收所述调用请 求的时间是否在有效期内包括: 判断接收所述调用请求的时间与当前时间是否相差不超过10s; 若不超过,则在有效期内,若超过,则不在有效期内。 5.  根据权利要求2所述的方法,其特征在于,所述向所述用户返回的错 误信息是指提示所述用户拒绝所述调用请求的原因的信息。 6.  一种安全调用表述性状态转移应用编程接口的系统,其特征在于,包 括: 接收模块,用于接收用户发送的表述性状态转移应用编程接口调用请求, 所述调用请求包括所述用户的用户名、请求调用参数、时间戳和签名; 第一判断模块,用于判断所述用户是否为注册用户,若为未注册用户, 则拒绝所述调用请求,并发送第一控制指令至发送模块,若为注册用户,则 发送第二控制指令至加密模块; 加密模块,用于在接收到所述第二控制指令后,根据数据库中保存的所 述用户的密码以及所述时间戳和请求调用参数生成参考签名,并将所述签名 发送至第二判断模块; 第二判断模块,用于判断所述参考签名与所述用户发送的签名是否一致, 若不一致,则拒绝所述调用请求,并发送所述第一控制指令至发送模块,若 一致,进一步判断接收所述调用请求的时间是否在有效期内,若在有效期内, 则同意所述调用请求,并发送第三控制指令至发送模块,若不在,则拒绝所 述调用请求,并发送所述第一控制指令至发送模块; 发送模块,用于在接收到所述第一控制指令后,向所述用户返回错误信 息;在接收到所述第三控制指令后,向所述用户返回请求调用数据。 7.  根据权利要求6所述的系统,其特征在于,所述签名是根据所述请求 调用参数、时间戳和所述用户的密码生成并加密的,所述参考签名与所述签 名的生成和加密方式相同。 8.  根据权利要求7所述的系统,其特征在于,还包括: 注册认证模块,用于接收所述用户的注册请求,并对所述用户进行认证, 认证通过后,向所述用户发送授权的用户名和对应的密码,所述用户名和密 码与所述用户一一对应。 9.  根据权利要求7所述的系统,其特征在于,所述第二判断模块判断接 收所述调用请求的时间是否在有效期内包括判断接收所述调用请求的时间与 当前时间是否相差不超过10s,若不超过,则在有效期内,若超过,则不在有 效期内。 10.  根据权利要求7所述的系统,其特征在于,还包括: 异常处理模块,用于生成所述用户的表述性状态转移应用编程接口调用 请求的错误信息,以提示所述用户拒绝所述调用请求的原因。

说明书

说明书安全调用表述性状态转移应用编程接口的方法和系统
技术领域
本发明涉及计算机网络技术领域,更具体地说,涉及一种安全调用表述 性状态转移应用编程接口的方法和系统。
背景技术
REST(Representational State Transfer,表述性状态转移)是一种针对网 络应用的设计和开发方式。当前,REST的流行使得越来越多的框架开始支持 REST,为我们构建下一代高性能、高可伸缩性、简单性、可移植性以及高可 靠性的Web程序提供了一个架构风格上的准则。其中,REST风格架构具有如 下特点:所有的事物都被抽象为资源,每个资源都对应一个唯一的资源标示 符URI,对资源的各类操作并不会改变其资源标示符URI,所有的操作都是无 状态的。
随着使用者对安全性的要求越来越高,关于REST的安全话题已经成为人 们关注的重点之一。由于REST-API(Application Programming Interface,应用 编程接口)的无状态性,即下一次的调用请求和这一次的调用请求是完全无 关的,因此,每一次调用请求都得做身份认证。但是,由于TLS(Transport Layer  Security,安全传输层协议)的服务器端配置相对复杂,且其对客户端的兼容 性较差,不适用于这种数据量大、调用频度高的泛在网络的物联网应用,因 此,必须依靠开发人员定义自己的安全方法来维护资源的操作,防止调用 REST-APT时受到攻击。
发明内容
有鉴于此,本发明提供了一种安全调用表述性状态转移应用编程接口的 方法和系统,以保证调用REST-API的安全性,防止调用REST-APT时受到攻 击。
为实现上述目的,本发明提供如下技术方案:
一种安全调用表述性状态转移应用编程接口的方法,包括:
接收用户发送的表述性状态转移应用编程接口调用请求,所述调用请求 包括所述用户的用户名、请求调用参数、时间戳和签名;
判断所述用户是否为注册用户;
若为未注册用户,则拒绝所述调用请求,并向所述用户返回错误信息;
若为注册用户,则根据数据库中保存的所述用户的密码以及所述时间戳 和请求调用参数生成参考签名,并判断所述参考签名与所述用户发送的签名 是否一致;
若不一致,拒绝所述调用请求,并向所述用户返回错误信息;
若一致,判断接收所述调用请求的时间是否在有效期内,若在有效期内, 同意所述调用请求,并向所述用户返回请求调用数据,若不在,则拒绝所述 调用请求,并向所述用户返回错误信息。
优选的,所述签名是根据所述请求调用参数、时间戳和所述用户的密码 生成并加密的,所述参考签名与所述签名的生成和加密方式相同。
优选的,所述接收用户发送的表述性状态转移应用编程接口调用请求之 前,还包括:
接收所述用户的注册请求,并对所述用户进行认证,认证通过后,向所 述用户发送授权的用户名和对应的密码,所述用户名和密码与所述用户一一 对应。
优选的,所述判断接收所述调用请求的时间是否在有效期内包括:
判断接收所述调用请求的时间与当前时间是否相差不超过10s;
若不超过,则在有效期内,若超过,则不在有效期内。
优选的,所述向所述用户返回的错误信息是指提示所述用户拒绝所述调 用请求的原因的信息。
一种安全调用表述性状态转移应用编程接口的系统,包括:
接收模块,用于接收用户发送的表述性状态转移应用编程接口调用请求, 所述调用请求包括所述用户的用户名、请求调用参数、时间戳和签名;
第一判断模块,用于判断所述用户是否为注册用户,若为未注册用户, 则拒绝所述调用请求,并发送第一控制指令至发送模块,若为注册用户,则 发送第二控制指令至加密模块;
加密模块,用于在接收到所述第二控制指令后,根据数据库中保存的所 述用户的密码以及所述时间戳和请求调用参数生成参考签名,并将所述签名 发送至第二判断模块;
第二判断模块,用于判断所述参考签名与所述用户发送的签名是否一致, 若不一致,则拒绝所述调用请求,并发送所述第一控制指令至发送模块,若 一致,进一步判断接收所述调用请求的时间是否在有效期内,若在有效期内, 则同意所述调用请求,并发送第三控制指令至发送模块,若不在,则拒绝所 述调用请求,并发送所述第一控制指令至发送模块;
发送模块,用于在接收到所述第一控制指令后,向所述用户返回错误信 息;在接收到所述第三控制指令后,向所述用户返回请求调用数据。
优选的,所述签名是根据所述请求调用参数、时间戳和所述用户的密码 生成并加密的,所述参考签名与所述签名的生成和加密方式相同。
优选的,还包括:
注册认证模块,用于接收所述用户的注册请求,并对所述用户进行认证, 认证通过后,向所述用户发送授权的用户名和对应的密码,所述用户名和密 码与所述用户一一对应。
优选的,所述第二判断模块判断接收所述调用请求的时间是否在有效期 内包括判断接收所述调用请求的时间与当前时间是否相差不超过10s,若不超 过,则在有效期内,若超过,则不在有效期内。
优选的,还包括:
异常处理模块,用于生成所述用户的表述性状态转移应用编程接口调用 请求的错误信息,以提示所述用户拒绝所述调用请求的原因。
与现有技术相比,本发明所提供的技术方案具有以下优点:
本发明所提供的安全调用表述性状态转移应用编程接口的方法和系统, 通过在调用表述性状态转移应用编程接口的过程中检验用户身份的方法来保 证调用数据的安全,由于用户的密码通过加密为签名的形式传输,因此,用 户的密码从未出现在网络传输中,从而保护了用户的隐私信息;此外,本发 明通过时间戳来判断调用请求的时间是否在有效期内,以应对黑客在传输中 的拦截、窃取数据或进行重发攻击等恶意行为。本发明提供的方法和系统大 大提高了调用物联网表述性状态转移应用编程接口的安全性,既保证了 REST风格架构无状态的特点,又满足了表述性状态转移应用编程接口安全调 用的要求,提高了服务的安全性和可靠性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实 施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面 描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不 付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1本发明的第一个实施例提供的一种安全调用REST-API的方法的流程 图;
图2为本发明的第二个实施例提供的一种安全调用REST-API的系统的结 构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行 清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而 不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做 出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的第一个实施例提供了一种安全调用REST-API的方法,该方法的 流程图如图1所示,包括:
S101:接收用户发送的REST-API调用请求;
所述调用请求包括所述用户的用户名、请求调用参数、时间戳和签名。
由于只有已注册的用户才能调用REST-API,因此,每个用户都需拥有一 个用户名User ID以及对应的密码Password。
基于此,客户端向应用服务器发起调用请求之前,即应用服务器在接收 用户发送的REST-API调用请求之前,还包括:
接收所述用户的注册请求,并对所述用户进行认证,认证通过后,向所 述用户发送授权的用户名User ID和对应的密码Password,所述用户名User ID 和密码Password与所述用户一一对应。
客户端向应用服务器发起REST-API调用请求时,在HTTP报文中封装用户 名User ID、请求调用参数、时间戳timestamp和签名signature。其中,所述签 名signature是根据所述请求调用参数、时间戳timestamp和所述用户的密码 Password生成并加密的,具体为:
将需要发送的请求调用参数数据以字典序升序排序好,使用key=value的 形式,每个参数中间用‘&’连接,尾部加上时间戳timestamp,最后加上密 码Password组成一个字符串,其中请求调用参数为空时,字符串只包含时间戳 timestamp和密码Password,然后将整个字符串经MD5加密后生成签名 signature,之后客户端通过HTTP请求将用户名User ID、请求调用参数、时间 戳timestamp和签名signature发送给应用服务器。
例如,已注册的用户身份为:User ID=user1,Password=123456789,该用 户需要发送的请求调用参数为k1=v1,k2=v2,k3=v3,时间戳为2015-01-06 17:27:12,则字符串为k1=v1&k2=v2&k3=v3&2015-01-0617:27:12&123456789, 通过MD5加密得到的签名为03D509391F64BF048CC832C7B82A9FF3,则客户 端发送的数据即应用服务器接收到的用户发送的REST-API调用请求的数据包 括:User ID=user1;k1=v1;k2=v2;k3=v3;timestamp=2015-01-0617:27:12; signature=03D509391F64BF048CC832C7B82A9FF3。
S102:判断所述用户是否为注册用户,若为未注册用户,则进入S103; 若为注册用户,则进入S104;
服务器在接收到HTTP报文时,首先提取HTTP报文中的用户名User ID信 息,然后服务器在自身数据库中保存的用户信息表中查询是否存在ID为User  ID的用户,如果不存在,说明该用户为未注册用户,则鉴权失败,进入S103, 即拒绝所述调用请求,并向用户返回错误信息;如果存在,则说明该用户为 注册用户,则进入S104。
S103:拒绝所述调用请求,并向所述用户返回错误信息;
拒绝所述调用请求后,还包括:向所述用户返回错误信息,以提示所述 用户拒绝所述调用请求的原因。
S104:根据数据库中保存的所述用户的密码以及所述时间戳和请求调用 参数生成参考签名,并进入S105;
若用户为注册用户,则服务器继续在自身数据库中查找该用户对应的密 码,然后根据HTTP报文中的时间戳、请求调用参数以及查询到的密码生成参 考签名,该参考签名的生成方法和加密方法与客户端发送的签名生成方法和 加密方法相同。生成参考签名后,进入S105。
S105:判断所述参考签名与所述用户发送的签名是否一致,若不一致, 则进入S103;若一致,进入S106;
S106:判断接收所述调用请求的时间是否在有效期内,若在有效期内, 则进入S107,若不在有效期内,则进入S103。
本实施例中,判断接收所述调用请求的时间是否在有效期内包括:
判断接收所述调用请求的时间与当前时间是否相差不超过10s;
若不超过,则在有效期内,若超过,则不在有效期内。
若调用请求的时间在有效期内,则说明数据在网络传输的过程中并未被 黑客拦截和窃取,该REST-API调用请求是安全有效的;若调用请求的时间不 在有效期内,则说明数据在网络传输的过程中受到了黑客的拦截、窃取或攻 击等,因此,服务器不会响应该调用请求,以免调用的数据被泄露或恶意窃 取。
S107:同意所述调用请求,并返回所述用户的请求调用数据。
本实施例提供的安全调用REST-API的方法,通过在调用REST-API的过程 中检验用户身份的方法来保证调用数据的安全,由于用户的密码通过加密为 签名的形式传输,因此,用户的密码从未出现在网络传输中,从而保护了用 户的隐私信息;此外,本实施例通过时间戳来判断调用请求的时间是否在有 效期内,以应对黑客在传输中的拦截、窃取数据或进行重发攻击等恶意行为。 本实施例提供的方法大大提高了调用物联网REST-API的安全性,既保证了 REST风格架构无状态的特点,又满足了REST-API安全调用的要求,提高了服 务的安全性和可靠性。
本发明的第二个实施例提供了一种安全调用REST-API的系统,该系统的 结构示意图如图2所示,包括接收模块201、第一判断模块202、加密模块203、 第二判断模块204和发送模块205。
其中,接收模块201用于接收用户发送的REST-API调用请求,所述调用 请求包括所述用户的用户名、请求调用参数、时间戳和签名;
第一判断模块202用于判断所述用户是否为注册用户,若为未注册用户, 则拒绝所述调用请求,并发送第一控制指令至发送模块,若为注册用户,则 发送第二控制指令至加密模块;
加密模块203用于在接收到所述第二控制指令后,根据数据库中保存的 所述用户的密码以及所述时间戳和请求调用参数生成参考签名,并将所述签 名发送至第二判断模块;
第二判断模块204用于判断所述参考签名与所述用户发送的签名是否一 致,若不一致,则拒绝所述调用请求,并发送所述第一控制指令至发送模块, 若一致,进一步判断接收所述调用请求的时间是否在有效期内,若在有效期 内,则同意所述调用请求,并发送第三控制指令至发送模块,若不在,则拒 绝所述调用请求,并发送所述第一控制指令至发送模块;
发送模块205用于在接收到所述第一控制指令后,向所述用户返回错误 信息;在接收到所述第三控制指令后,向所述用户返回请求调用数据。
其中,第二判断模块204判断接收所述调用请求的时间是否在有效期内包 括判断接收所述调用请求的时间与当前时间是否相差不超过10s,若不超过, 则在有效期内,说明数据在网络传输的过程中并未被黑客拦截和窃取,该 REST-API调用请求是安全有效的;若超过,则不在有效期内,说明数据在网 络传输的过程中受到了黑客的拦截、窃取或攻击等,因此,服务器不会响应 该调用请求,以免调用的数据被泄露或恶意窃取。
本实施例中,客户端发送的签名是根据所述请求调用参数、时间戳和所 述用户的密码生成并加密的,所述参考签名与所述签名的生成方式和加密方 式相同。具体的,签名的生成方式和加密方式在第一个实施例中已经说明, 在此不再赘述。
本实施例中的安全调用REST-API的系统还包括:注册认证模块,该注册 认证模块用于接收所述用户的注册请求,并对所述用户进行认证,认证通过 后,向所述用户发送授权的用户名和对应的密码,所述用户名和密码与所述 用户一一对应。
此外,该系统还包括异常处理模块,该异常处理模块用于生成所述用户 的REST-API调用请求的错误信息,以提示所述用户拒绝所述调用请求的原 因,便于用户针对性地进行操作。
本实施例提供的安全调用REST-API的系统,通过在调用REST-API的过程 中检验用户身份的方法来保证调用数据的安全,由于用户的密码通过加密为 签名的形式传输,因此,用户的密码从未出现在网络传输中,从而保护了用 户的隐私信息;此外,本实施例通过时间戳来判断调用请求的时间是否在有 效期内,以应对黑客在传输中的拦截、窃取数据或进行重发攻击等恶意行为。 本实施例提供的系统大大提高了调用物联网REST-API的安全性,既保证了 REST风格架构无状态的特点,又满足了REST-API安全调用的要求,提高了服 务的安全性和可靠性。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都 是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。 对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述 的比较简单,相关之处参见方法部分说明即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用 本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易 见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下, 在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例, 而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

安全调用表述性状态转移应用编程接口的方法和系统.pdf_第1页
第1页 / 共10页
安全调用表述性状态转移应用编程接口的方法和系统.pdf_第2页
第2页 / 共10页
安全调用表述性状态转移应用编程接口的方法和系统.pdf_第3页
第3页 / 共10页
点击查看更多>>
资源描述

《安全调用表述性状态转移应用编程接口的方法和系统.pdf》由会员分享,可在线阅读,更多相关《安全调用表述性状态转移应用编程接口的方法和系统.pdf(10页珍藏版)》请在专利查询网上搜索。

本发明提供的一种安全调用表述性状态转移应用编程接口的方法和系统,包括:接收用户发送的表述性状态转移应用编程接口调用请求;判断用户是否为注册用户;若为未注册用户,则拒绝调用请求,并向用户返回错误信息;若为注册用户,则根据数据库中保存的用户的密码以及时间戳和请求调用参数生成参考签名,并判断参考签名与用户发送的签名是否一致;若不一致,拒绝调用请求,并向用户返回错误信息;若一致,判断接收调用请求的时间是否。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 电学 > 电通信技术


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1