在安卓系统的HTTP协议中添加身份认证信息的方法技术方案

技术编号:11112028 阅读:320 留言:0更新日期:2015-03-05 12:47
本发明专利技术公开了一种在安卓系统的HTTP协议中添加身份认证信息的方法,主要解决现有安卓操作系统中HTTP通信协议身份认证能力不足的问题。其实现步骤是:(1)移除HTTP协议请求数据包包头中身份信息;(2)通过安卓操作系统获取应用程序的包名信息和签名信息,计算应用程序签名信息的摘要,将签名摘要与应用程序包名信息作为应用程序身份认证信息;(3)将应用程序签名摘要与包名信息添加至HTTP请求数据包包头中,发送至服务器。本发明专利技术提高了安卓系统HTTP协议身份认证的可靠性和身份认证能力,并能与现有HTTP协议保持最大兼容,可用于安卓操作系统的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的包名字段中;6b)将获取的签名摘要PkgSig添加到请求数据包包头Headers的签名字段中。本专利技术与现有技术相比具有以下优点:第一、认证信息准确度高。本专利技术通过修改WebView控件,使其在安卓操作系统层面提供了可信的身份认证信息,恶意软件无法篡改,保证了身份认证信息的准确度;第二、与现有协议兼容性高。本专利技术仅在WebView控件发出的请求数据包头部添加身份认证信息,对HTTP协议修改很少,保证了最大限度的兼容性;第三、应用程序通用性高。Android操作系统中绝大多数应用程序通过WebView控件实现HTTP访问,本专利技术对WebView控件的修改体现了良好的通用性。第四、采用签名摘要传输量少。本专利技术将应用程序的签名摘要添加至请求包包头中,与直接添加签名值相比传输量少。附图说明图1为本专利技术的实现总流程图;图2为本专利技术中WebView控件中对请求数据包包头Headers进行判断的子流程图;图3为本专利技术中移除请求数据包包头Headers中的包名信息字段和签名信息字段的子流程图;图4为本专利技术中获取当前线程所属应用程序签名PkgSignatures的子流程图;具体实施方式参照图1,本专利技术的实现步骤如下:步骤1,在WebView控件中对请求数据包包头Headers进行判断。参照图2,本步骤的具体实现如下:直接访问WebView控件中请求数据包包头Headers,若请求数据包包头Headers存在,则直接执行步骤2,若请求数据包包头Headers不存在,则创建一个内容为空的HashMap<String,String>对象,作为请求数据包包头Headers,再执行步骤2;步骤2,移除请求数据包包头Headers中的包名信息字段和签名信息字段。参照图3,本步骤的具体实现如下:2a)访问请求数据包包头Headers中“package-name”字段,若“package-name”字段不存在,则直接执行步骤2b),若“package-name”字段存在,则移除该字段,再执行步骤2b);2b)访本文档来自技高网...
<a href="http://www.xjishu.com/zhuanli/62/201410695644.html" title="在安卓系统的HTTP协议中添加身份认证信息的方法原文来自X技术">在安卓系统的HTTP协议中添加身份认证信息的方法</a>

【技术保护点】
一种在安卓系统的HTTP协议中添加身份认证信息的方法,包括如下步骤:(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的包名字段中;6b)将获取的签名摘要PkgSig添加到请求数据包包头Headers的签名字段中。...

【技术特征摘要】
1.一种在安卓系统的HTTP协议中添加身份认证信息的方法,包括如下步骤:
(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的包名字段中;
6b)将获取的签名摘要PkgSig添加到...

【专利技术属性】
技术研发人员:董超杨超马建峰张坤陈东周洪丞张明月姚亮张鹏
申请(专利权)人:西安电子科技大学
类型:发明
国别省市:陕西;61

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1