[发明专利]在安卓系统的HTTP协议中添加身份认证信息的方法有效
| 申请号: | 201410695644.7 | 申请日: | 2014-11-26 |
| 公开(公告)号: | CN104394147A | 公开(公告)日: | 2015-03-04 |
| 发明(设计)人: | 董超;杨超;马建峰;张坤;陈东;周洪丞;张明月;姚亮;张鹏 | 申请(专利权)人: | 西安电子科技大学 |
| 主分类号: | H04L29/06 | 分类号: | H04L29/06;H04L29/08 |
| 代理公司: | 陕西电子工业专利中心 61205 | 代理人: | 王品华;朱红星 |
| 地址: | 710071*** | 国省代码: | 陕西;61 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 系统 http 协议 添加 身份 认证 信息 方法 | ||
技术领域
本发明属于计算机领域,更进一步涉及一种安卓操作系统中对HTTP通信协议添加身份认证信息的方法。可用于增强服务器对应用程序的身份认证能力。
背景技术
超文本传输协议HTTP协议是一种常用的网络通信协议,在安卓操作系统中应用程序通过WebView控件进行HTTP协议通信。当应用程序需要使用HTTP协议与服务器进行通信时,应用程序将通信请求提交给WebView控件,WebView控件接收应用程序请求并使用HTTP协议的GET/POST方法向服务器发起请求数据包,服务器接收并处理请求数据包,服务器处理完毕后将请求结果返回给WebView控件,WebView控件将服务器返回结果处理后返回给应用程序,从而使应用程序完成网页浏览任务。在此流程中,WebView控件发出的HTTP请求数据包包头中“X-Requested-With”字段包含应用程序的包名,由于在安卓操作系统中应用程序的包名容易被伪造,因此服务器无法对应用身份进行有效验证,从而对服务器安全造成威胁。
目前,安卓操作系统中通过WebView控件已有一些由应用程序与服务器进行身份认证的方法。例如应用程序可以在向WebView控件提交请求时主动添加自身的身份认证信息,以方便服务器进行验证。但由于是应用程序主动添加身份信息,因此也存在被恶意应用程序伪造从而欺骗服务器的可能,所以服务器仍无法对应用程序身份进行有效认证。
发明内容
本发明的目的在于克服上述已有技术的不足,提出一种在安卓操作系统的HTTP协议中添加身份认证信息的方法,以防止恶意应用程序通过伪造包名手段对服务器进行身份欺骗,提高服务器对应用程序的身份认证能力。
本发明的技术方案是这样实现的:
一.技术原理
安卓操作系统通过应用程序的包名信息和签名信息对应用程序身份进行认证,其中应用程序的包名信息由应用程序开发者明文填写,容易被伪造;而签名信息由应用程序开发者根据签名算法生成密钥,并使用密钥对应用程序进行签名,很难被伪造,因此服务器能够结合包名信息和签名信息对应用程序身份进行有效验证。在安卓操作系统中应用程序使用WebView控件与服务器进行HTTP通信,应用程序通过创建WebView对象,并对此WebView对象调用函数以启动,WebView将应用程序传递的参数添加至请求数据包中,并对服务器发起HTTP协议GET/POST方法请求。为了解决在安卓操作系统的HTTP协议中服务器对应用程序身份认证能力不足的问题,可通过修改安卓操作系统的WebView控件,实现服务器对应用程序的身份认证。
二.技术方案
根据上述原理本发明的技术方案关键是:对安卓操作系统中WebView控件发送的HTTP协议GET方法请求数据包强制添加身份认证信息,对安卓操作系统中WebView控件发送的HTTP协议POST方法请求数据包强制添加身份认证信息。其实现步骤如下:
(1)WebView控件中对请求数据包包头Headers进行判断:若WebView控件中存在请求数据包包头Headers,则直接执行步骤(2),若WebView控件中不存在请求数据包包头Headers,创建一个内容为空的请求数据包包头Headers,再执行步骤(2);
(2)移除请求数据包包头Headers中的包名信息字段和签名信息字段;
2a)判断请求数据包包头Headers中包名信息字段是否存在,若该字段不存在,则直接执行步骤2b),若该字段存在,移除该字段,再执行步骤2b);
2b)判断请求数据包包头Headers中签名信息字段是否存在,若该字段不存在,则直接执行步骤(3),若该字段存在,移除该字段,再执行步骤(3);
(3)获取当前线程所属应用程序包名PkgName;
(4)获取当前线程所属应用程序签名PkgSignatures:
4a)获取当前线程所属包管理器PkgMgr;
4b)根据包名PkgName通过包管理器PkgMgr获取当前应用程序的包信息PkgInfo;
4c)通过包信息PkgInfo获取当前应用程序的签名PkgSignatures;
(5)使用哈希摘要算法计算签名PkgSignatures的签名摘要PkgSig;
(6)将获取的包名PkgName和签名摘要PkgSig添加到请求数据包包头Headers中;
6a)将获取的包名PkgName添加到请求数据包包头Headers的包名字段中;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安电子科技大学,未经西安电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410695644.7/2.html,转载请声明来源钻瓜专利网。





