欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

在安卓系統(tǒng)的http協(xié)議中添加身份認(rèn)證信息的方法

文檔序號(hào):7820946閱讀:423來(lái)源:國(guó)知局
在安卓系統(tǒng)的http協(xié)議中添加身份認(rèn)證信息的方法
【專利摘要】本發(fā)明公開(kāi)了一種在安卓系統(tǒng)的HTTP協(xié)議中添加身份認(rèn)證信息的方法,主要解決現(xiàn)有安卓操作系統(tǒng)中HTTP通信協(xié)議身份認(rèn)證能力不足的問(wèn)題。其實(shí)現(xiàn)步驟是:(1)移除HTTP協(xié)議請(qǐng)求數(shù)據(jù)包包頭中身份信息;(2)通過(guò)安卓操作系統(tǒng)獲取應(yīng)用程序的包名信息和簽名信息,計(jì)算應(yīng)用程序簽名信息的摘要,將簽名摘要與應(yīng)用程序包名信息作為應(yīng)用程序身份認(rèn)證信息;(3)將應(yīng)用程序簽名摘要與包名信息添加至HTTP請(qǐng)求數(shù)據(jù)包包頭中,發(fā)送至服務(wù)器。本發(fā)明提高了安卓系統(tǒng)HTTP協(xié)議身份認(rèn)證的可靠性和身份認(rèn)證能力,并能與現(xiàn)有HTTP協(xié)議保持最大兼容,可用于安卓操作系統(tǒng)的HTTP通信協(xié)議中。
【專利說(shuō)明】在安卓系統(tǒng)的HTTP協(xié)議中添加身份認(rèn)證信息的方法

【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于計(jì)算機(jī)領(lǐng)域,更進(jìn)一步涉及一種安卓操作系統(tǒng)中對(duì)HTTP通信協(xié)議添加身份認(rèn)證信息的方法??捎糜谠鰪?qiáng)服務(wù)器對(duì)應(yīng)用程序的身份認(rèn)證能力。

【背景技術(shù)】
[0002]超文本傳輸協(xié)議HTTP協(xié)議是一種常用的網(wǎng)絡(luò)通信協(xié)議,在安卓操作系統(tǒng)中應(yīng)用程序通過(guò)WebView控件進(jìn)行HTTP協(xié)議通信。當(dāng)應(yīng)用程序需要使用HTTP協(xié)議與服務(wù)器進(jìn)行通信時(shí),應(yīng)用程序?qū)⑼ㄐ耪?qǐng)求提交給WebView控件,WebView控件接收應(yīng)用程序請(qǐng)求并使用HTTP協(xié)議的GET/P0ST方法向服務(wù)器發(fā)起請(qǐng)求數(shù)據(jù)包,服務(wù)器接收并處理請(qǐng)求數(shù)據(jù)包,服務(wù)器處理完畢后將請(qǐng)求結(jié)果返回給WebView控件,WebView控件將服務(wù)器返回結(jié)果處理后返回給應(yīng)用程序,從而使應(yīng)用程序完成網(wǎng)頁(yè)瀏覽任務(wù)。在此流程中,WebView控件發(fā)出的HTTP請(qǐng)求數(shù)據(jù)包包頭中“X-Requested-With”字段包含應(yīng)用程序的包名,由于在安卓操作系統(tǒng)中應(yīng)用程序的包名容易被偽造,因此服務(wù)器無(wú)法對(duì)應(yīng)用身份進(jìn)行有效驗(yàn)證,從而對(duì)服務(wù)器安全造成威脅。
[0003]目前,安卓操作系統(tǒng)中通過(guò)WebView控件已有一些由應(yīng)用程序與服務(wù)器進(jìn)行身份認(rèn)證的方法。例如應(yīng)用程序可以在向WebView控件提交請(qǐng)求時(shí)主動(dòng)添加自身的身份認(rèn)證信息,以方便服務(wù)器進(jìn)行驗(yàn)證。但由于是應(yīng)用程序主動(dòng)添加身份信息,因此也存在被惡意應(yīng)用程序偽造從而欺騙服務(wù)器的可能,所以服務(wù)器仍無(wú)法對(duì)應(yīng)用程序身份進(jìn)行有效認(rèn)證。


【發(fā)明內(nèi)容】

[0004]本發(fā)明的目的在于克服上述已有技術(shù)的不足,提出一種在安卓操作系統(tǒng)的HTTP協(xié)議中添加身份認(rèn)證信息的方法,以防止惡意應(yīng)用程序通過(guò)偽造包名手段對(duì)服務(wù)器進(jìn)行身份欺騙,提高服務(wù)器對(duì)應(yīng)用程序的身份認(rèn)證能力。
[0005]本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的:
[0006]一.技術(shù)原理
[0007]安卓操作系統(tǒng)通過(guò)應(yīng)用程序的包名信息和簽名信息對(duì)應(yīng)用程序身份進(jìn)行認(rèn)證,其中應(yīng)用程序的包名信息由應(yīng)用程序開(kāi)發(fā)者明文填寫,容易被偽造;而簽名信息由應(yīng)用程序開(kāi)發(fā)者根據(jù)簽名算法生成密鑰,并使用密鑰對(duì)應(yīng)用程序進(jìn)行簽名,很難被偽造,因此服務(wù)器能夠結(jié)合包名信息和簽名信息對(duì)應(yīng)用程序身份進(jìn)行有效驗(yàn)證。在安卓操作系統(tǒng)中應(yīng)用程序使用WebView控件與服務(wù)器進(jìn)行HTTP通信,應(yīng)用程序通過(guò)創(chuàng)建WebView對(duì)象,并對(duì)此WebView對(duì)象調(diào)用函數(shù)以啟動(dòng),WebView將應(yīng)用程序傳遞的參數(shù)添加至請(qǐng)求數(shù)據(jù)包中,并對(duì)服務(wù)器發(fā)起HTTP協(xié)議GET/P0ST方法請(qǐng)求。為了解決在安卓操作系統(tǒng)的HTTP協(xié)議中服務(wù)器對(duì)應(yīng)用程序身份認(rèn)證能力不足的問(wèn)題,可通過(guò)修改安卓操作系統(tǒng)的WebView控件,實(shí)現(xiàn)服務(wù)器對(duì)應(yīng)用程序的身份認(rèn)證。
[0008]二.技術(shù)方案
[0009]根據(jù)上述原理本發(fā)明的技術(shù)方案關(guān)鍵是:對(duì)安卓操作系統(tǒng)中WebView控件發(fā)送的HTTP協(xié)議GET方法請(qǐng)求數(shù)據(jù)包強(qiáng)制添加身份認(rèn)證信息,對(duì)安卓操作系統(tǒng)中WebView控件發(fā)送的HTTP協(xié)議POST方法請(qǐng)求數(shù)據(jù)包強(qiáng)制添加身份認(rèn)證信息。其實(shí)現(xiàn)步驟如下:
[0010](I) WebView控件中對(duì)請(qǐng)求數(shù)據(jù)包包頭Headers進(jìn)行判斷:若WebView控件中存在請(qǐng)求數(shù)據(jù)包包頭Headers,則直接執(zhí)行步驟(2),若WebView控件中不存在請(qǐng)求數(shù)據(jù)包包頭Headers,創(chuàng)建一個(gè)內(nèi)容為空的請(qǐng)求數(shù)據(jù)包包頭Headers,再執(zhí)行步驟(2);
[0011](2)移除請(qǐng)求數(shù)據(jù)包包頭Headers中的包名信息字段和簽名信息字段;
[0012]2a)判斷請(qǐng)求數(shù)據(jù)包包頭Headers中包名信息字段是否存在,若該字段不存在,則直接執(zhí)行步驟2b),若該字段存在,移除該字段,再執(zhí)行步驟2b);
[0013]2b)判斷請(qǐng)求數(shù)據(jù)包包頭Headers中簽名信息字段是否存在,若該字段不存在,則直接執(zhí)行步驟(3),若該字段存在,移除該字段,再執(zhí)行步驟(3);
[0014](3)獲取當(dāng)前線程所屬應(yīng)用程序包名PkgName ;
[0015](4)獲取當(dāng)前線程所屬應(yīng)用程序簽名PkgSignatures:
[0016]4a)獲取當(dāng)前線程所屬包管理器PkgMgr ;
[0017]4b)根據(jù)包名PkgName通過(guò)包管理器PkgMgr獲取當(dāng)前應(yīng)用程序的包信息PkgInfo ;
[0018]4c)通過(guò)包信息PkgInfo獲取當(dāng)前應(yīng)用程序的簽名PkgSignatures ;
[0019](5)使用哈希摘要算法計(jì)算簽名PkgSignatures的簽名摘要PkgSig ;
[0020](6)將獲取的包名PkgName和簽名摘要PkgSig添加到請(qǐng)求數(shù)據(jù)包包頭Headers中;
[0021]6a)將獲取的包名PkgName添加到請(qǐng)求數(shù)據(jù)包包頭Headers的包名字段中;
[0022]6b)將獲取的簽名摘要PkgSig添加到請(qǐng)求數(shù)據(jù)包包頭Headers的簽名字段中。
[0023]本發(fā)明與現(xiàn)有技術(shù)相比具有以下優(yōu)點(diǎn):
[0024]第一、認(rèn)證信息準(zhǔn)確度高。本發(fā)明通過(guò)修改WebView控件,使其在安卓操作系統(tǒng)層面提供了可信的身份認(rèn)證信息,惡意軟件無(wú)法篡改,保證了身份認(rèn)證信息的準(zhǔn)確度;
[0025]第二、與現(xiàn)有協(xié)議兼容性高。本發(fā)明僅在WebView控件發(fā)出的請(qǐng)求數(shù)據(jù)包頭部添加身份認(rèn)證信息,對(duì)HTTP協(xié)議修改很少,保證了最大限度的兼容性;
[0026]第三、應(yīng)用程序通用性高。Android操作系統(tǒng)中絕大多數(shù)應(yīng)用程序通過(guò)WebView控件實(shí)現(xiàn)HTTP訪問(wèn),本發(fā)明對(duì)WebView控件的修改體現(xiàn)了良好的通用性。
[0027]第四、采用簽名摘要傳輸量少。本發(fā)明將應(yīng)用程序的簽名摘要添加至請(qǐng)求包包頭中,與直接添加簽名值相比傳輸量少。

【專利附圖】

【附圖說(shuō)明】
[0028]圖1為本發(fā)明的實(shí)現(xiàn)總流程圖;
[0029]圖2為本發(fā)明中WebView控件中對(duì)請(qǐng)求數(shù)據(jù)包包頭Headers進(jìn)行判斷的子流程圖;
[0030]圖3為本發(fā)明中移除請(qǐng)求數(shù)據(jù)包包頭Headers中的包名信息字段和簽名信息字段的子流程圖;
[0031]圖4為本發(fā)明中獲取當(dāng)前線程所屬應(yīng)用程序簽名PkgSignatures的子流程圖;

【具體實(shí)施方式】
[0032]參照?qǐng)D1,本發(fā)明的實(shí)現(xiàn)步驟如下:
[0033]步驟I,在WebView控件中對(duì)請(qǐng)求數(shù)據(jù)包包頭Headers進(jìn)行判斷。
[0034]參照?qǐng)D2,本步驟的具體實(shí)現(xiàn)如下:
[0035]直接訪問(wèn)WebView控件中請(qǐng)求數(shù)據(jù)包包頭Headers,若請(qǐng)求數(shù)據(jù)包包頭Headers存在,則直接執(zhí)行步驟2,若請(qǐng)求數(shù)據(jù)包包頭Headers不存在,則創(chuàng)建一個(gè)內(nèi)容為空的HashMap<String, String〉對(duì)象,作為請(qǐng)求數(shù)據(jù)包包頭Headers,再執(zhí)行步驟2 ;
[0036]步驟2,移除請(qǐng)求數(shù)據(jù)包包頭Headers中的包名信息字段和簽名信息字段。
[0037]參照?qǐng)D3,本步驟的具體實(shí)現(xiàn)如下:
[0038]2a)訪問(wèn)請(qǐng)求數(shù)據(jù)包包頭 Headers 中“package-name”字段,若“package-name”字段不存在,則直接執(zhí)行步驟2b),若“package-name”字段存在,則移除該字段,再執(zhí)行步驟2b);
[0039]2b)訪問(wèn)請(qǐng)求數(shù)據(jù)包包頭Headers中“package-sig”字段,若“package-sig”字段不存在,則直接執(zhí)行步驟3,若“package-sig”字段存在,則移除該字段,再執(zhí)行步驟3。
[0040]步驟3,獲取當(dāng)前線程所屬應(yīng)用程序包名PkgName。
[0041 ] 本步驟的具體實(shí)現(xiàn)是通過(guò)調(diào)用安卓操作系統(tǒng)提供的Act iVi tyThread類庫(kù)中currentPackageName函數(shù),獲取當(dāng)前應(yīng)用程序包名PkgName。
[0042]步驟4,獲取當(dāng)前線程所屬應(yīng)用程序簽名PkgSignatures。
[0043]參照?qǐng)D4,本步驟的具體實(shí)現(xiàn)如下:
[0044]4a)調(diào)用安卓操作系統(tǒng)提供的ActivityThread類庫(kù)中g(shù)etPackageManager函數(shù)獲取當(dāng)前進(jìn)程所屬的包管理器PkgMgr ;
[0045]4b)調(diào)用安卓操作系統(tǒng)提供的ActivityThread類庫(kù)中g(shù)etPackagelnfo函數(shù),根據(jù)包名PkgName獲取當(dāng)前線程所屬的包信息PkgInfo ;
[0046]4c)直接訪問(wèn)包信息PkgInfo的signatures屬性獲得當(dāng)前包簽名PkgSignatures。
[0047]步驟5,使用哈希摘要算法計(jì)算簽名PkgSignatures的簽名摘要PkgSig。
[0048]本步驟的具體實(shí)現(xiàn)是調(diào)用安卓操作系統(tǒng)MessageDigest類庫(kù)提供的digest函數(shù)計(jì)算簽名PkgSignatures的簽名摘要PkgSig。
[0049]步驟6,將獲取的包名PkgName和簽名摘要PkgSig添加到請(qǐng)求數(shù)據(jù)包包頭Headers 中。
[0050]6a)將獲取的包名PkgName添加到請(qǐng)求數(shù)據(jù)包包頭Headers的包名信息“ package-name ”字段中。
[0051]6b)將獲取的簽名摘要PkgSig添加到請(qǐng)求數(shù)據(jù)包包頭Headers的簽名信息“package-sig” 字段中。
[0052]6c)將請(qǐng)求數(shù)據(jù)包發(fā)送至服務(wù)器。
[0053]上述步驟需要在安卓操作系統(tǒng)WebView控件中1adUrl和postUrl函數(shù)中實(shí)現(xiàn),兩個(gè)函數(shù)均位 T-^/frameworks/webview/chromium/java/com/android/webview/chrosmium/ffebViewChromium.java,,文件中。
[0054]以上描述僅是本發(fā)明的一個(gè)具體實(shí)例,并不夠成對(duì)本發(fā)明的任何限制。顯然對(duì)于本領(lǐng)域的專業(yè)人員來(lái)說(shuō),在了解了本
【發(fā)明內(nèi)容】
和原理后,都可能在不背離本發(fā)明原理、結(jié)構(gòu)的情況下,進(jìn)行形式和細(xì)節(jié)上的各種修正和改變,但是這些基于本發(fā)明思想的修正和改變?nèi)栽诒景l(fā)明的權(quán)利要求保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.一種在安卓系統(tǒng)的HTTP協(xié)議中添加身份認(rèn)證信息的方法,包括如下步驟: (1)WebView控件中對(duì)請(qǐng)求數(shù)據(jù)包包頭Headers進(jìn)行判斷:若WebView控件中存在請(qǐng)求數(shù)據(jù)包包頭Headers,則直接執(zhí)行步驟(2),若WebView控件中不存在請(qǐng)求數(shù)據(jù)包包頭Headers,創(chuàng)建一個(gè)內(nèi)容為空的請(qǐng)求數(shù)據(jù)包包頭Headers,再執(zhí)行步驟(2); (2)移除請(qǐng)求數(shù)據(jù)包包頭Headers中的包名信息字段和簽名信息字段; 2a)判斷請(qǐng)求數(shù)據(jù)包包頭Headers中包名信息字段是否存在,若該字段不存在,則直接執(zhí)行步驟2b),若該字段存在,移除該字段,再執(zhí)行步驟2b); 2b)判斷請(qǐng)求數(shù)據(jù)包包頭Headers中簽名信息字段是否存在,若該字段不存在,則直接執(zhí)行步驟(3),若該字段存在,移除該字段,再執(zhí)行步驟(3); (3)獲取當(dāng)前線程所屬應(yīng)用程序包名PkgName; (4)獲取當(dāng)前線程所屬應(yīng)用程序簽名PkgSignatures: 4a)獲取當(dāng)前線程所屬包管理器PkgMgr ; 4b)根據(jù)包名PkgName通過(guò)包管理器PkgMgr獲取當(dāng)前應(yīng)用程序的包信息PkgInfo ; 4c)通過(guò)包信息PkgInfo獲取當(dāng)前應(yīng)用程序的簽名PkgSignatures ; (5)使用哈希摘要算法計(jì)算簽名PkgSignatures的簽名摘要PkgSig; (6)將獲取的包名PkgName和簽名摘要PkgSig添加到請(qǐng)求數(shù)據(jù)包包頭Headers中; 6a)將獲取的包名PkgName添加到請(qǐng)求數(shù)據(jù)包包頭Headers的包名字段中; 6b)將獲取的簽名摘要PkgSig添加到請(qǐng)求數(shù)據(jù)包包頭Headers的簽名字段中。
2.根據(jù)權(quán)利要求1所述的在安卓系統(tǒng)的HTTP協(xié)議中添加身份認(rèn)證信息的方法,其特征在于,步驟(3)所述的獲取當(dāng)前線程所屬應(yīng)用程序包名PkgName,是通過(guò)安卓操作系統(tǒng)提供的 ActivityThread 類庫(kù)中 currentPackageName 函數(shù)獲得。
3.根據(jù)權(quán)利要求1所述的在安卓系統(tǒng)的HTTP協(xié)議中添加身份認(rèn)證信息的方法,其特征在于,步驟4a)所述的獲取當(dāng)前線程所屬包管理器PkgMgr,是通過(guò)安卓操作系統(tǒng)提供的ActivityThread 類庫(kù)中 getPackageManager 函數(shù)獲得。
4.根據(jù)權(quán)利要求1所述的在安卓系統(tǒng)的HTTP協(xié)議中添加身份認(rèn)證信息的方法,其特征在于,步驟4b)所述的根據(jù)包名PkgName通過(guò)包管理器PkgMgr獲取當(dāng)前應(yīng)用程序的包信息PkgInfo,是通過(guò)安卓操作系統(tǒng)提供的ActivityThread類庫(kù)中g(shù)etPackagelnfo函數(shù)獲得。
5.根據(jù)權(quán)利要求1所述的在安卓系統(tǒng)的HTTP協(xié)議中添加身份認(rèn)證信息的方法,其特征在于,步驟4c)所述的通過(guò)包信息PkgInfo獲取當(dāng)前應(yīng)用程序的簽名PkgSignatures,是通過(guò)包信息PkgInfo的signatures屬性獲得。
6.根據(jù)權(quán)利要求1所述的在安卓系統(tǒng)的HTTP協(xié)議中添加身份認(rèn)證信息的方法,其特征在于,步驟(5)所述的使用哈希摘要算法計(jì)算簽名PkgSignatures的簽名摘要PkgSig,是使用安卓操作系統(tǒng)MessageDigest類庫(kù)提供的digest函數(shù)進(jìn)行哈希摘要計(jì)算。
【文檔編號(hào)】H04L29/08GK104394147SQ201410695644
【公開(kāi)日】2015年3月4日 申請(qǐng)日期:2014年11月26日 優(yōu)先權(quán)日:2014年11月26日
【發(fā)明者】董超, 楊超, 馬建峰, 張坤, 陳東, 周洪丞, 張明月, 姚亮, 張鵬 申請(qǐng)人:西安電子科技大學(xué)
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
岳西县| 万宁市| 车致| 延川县| 峨眉山市| 绥中县| 宁明县| 贵溪市| 沂源县| 正定县| 长岭县| 平潭县| 乳山市| 二连浩特市| 惠东县| 仁布县| 会宁县| 霞浦县| 利津县| 新郑市| 海口市| 江津市| 喀喇沁旗| 怀柔区| 保康县| 辽源市| 磐石市| 西昌市| 乳山市| 临沧市| 山丹县| 阿鲁科尔沁旗| 新宾| 南澳县| 阳江市| 当涂县| 南漳县| 马关县| 嘉祥县| 普格县| 高碑店市|