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

開放平臺的調(diào)用方法及裝置制造方法

文檔序號:6625033閱讀:188來源:國知局
開放平臺的調(diào)用方法及裝置制造方法
【專利摘要】本發(fā)明提供一種開放平臺的調(diào)用方法及裝置。本發(fā)明實施例通過獲取應(yīng)用的身份標(biāo)識信息,進而對所述身份標(biāo)識信息進行簽名處理,以獲得所述應(yīng)用的第一簽名信息,并向開放平臺發(fā)送所述第一簽名信息和所述應(yīng)用的應(yīng)用標(biāo)識信息,使得能夠接收所述開放平臺發(fā)送的訪問令牌,用以調(diào)用所述開放平臺所提供的開放API,由于沒有傳輸明文的驗證參數(shù),從而提高了安全平臺的調(diào)用的安全性。
【專利說明】開放平臺的調(diào)用方法及裝直
【【技術(shù)領(lǐng)域】】
[0001 ] 本發(fā)明涉及授權(quán)技術(shù),尤其涉及一種開放平臺的調(diào)用方法及裝置。
【【背景技術(shù)】】
[0002]在互聯(lián)網(wǎng)時代,把網(wǎng)站的服務(wù)封裝成一系列機器易識別的數(shù)據(jù)接口開放出去,供第三方開發(fā)者使用,這種行為就叫做開放(Open)應(yīng)用程序編程接口(Applicat1nProgramming Interface, API),提供開放API的平臺本身就被稱為開放平臺(OpenPlatform)。目前,大部分開放平臺所提供的開放API,在被第三方應(yīng)用調(diào)用時,都需要第三方應(yīng)用通過開放平臺所提供的授權(quán)機制獲取一個訪問令牌,又可以稱為訪問授權(quán)碼。在第三方應(yīng)用每次調(diào)用開放API時,都需要攜帶這個訪問令牌,以供開放平臺能夠根據(jù)該訪問令牌,向第三方應(yīng)用提供相應(yīng)的訪問權(quán)限。
[0003]現(xiàn)有技術(shù)中,應(yīng)用可以利用應(yīng)用開放平臺為應(yīng)用分配的應(yīng)用標(biāo)識信息和密鑰信息,向開放平臺請求獲取訪問令牌,安全性不高。

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

[0004]本發(fā)明的多個方面提供一種開放平臺的調(diào)用方法及裝置,用以提高安全平臺的調(diào)用的安全性。
[0005]本發(fā)明的一方面,提供一種開放平臺的調(diào)用方法,包括:
[0006]獲取應(yīng)用的身份標(biāo)識信息;
[0007]對所述身份標(biāo)識信息進行簽名處理,以獲得所述應(yīng)用的第一簽名信息;
[0008]向開放平臺發(fā)送所述第一簽名信息和所述應(yīng)用的應(yīng)用標(biāo)識信息;
[0009]接收所述開放平臺發(fā)送的訪問令牌,用以調(diào)用所述開放平臺所提供的開放API,所述訪問令牌為所述開放平臺利用第二簽名信息,對所述第一簽名信息進行驗證成功之后獲得的,所述第二簽名信息為所述開放平臺對所述應(yīng)用注冊的身份標(biāo)識信息進行簽名處理獲得的,所述應(yīng)用注冊的身份標(biāo)識信息為所述開放平臺根據(jù)所述應(yīng)用標(biāo)識信息獲得的。
[0010]如上所述的方面和任一可能的實現(xiàn)方式,進一步提供一種實現(xiàn)方式,所述獲取應(yīng)用的身份標(biāo)識信息,包括:
[0011]調(diào)用所述應(yīng)用所提供的接口,以獲得所述身份標(biāo)識信息。
[0012]如上所述的方面和任一可能的實現(xiàn)方式,進一步提供一種實現(xiàn)方式,所述調(diào)用所述應(yīng)用所提供的接口,以獲得所述身份標(biāo)識信息,包括:
[0013]調(diào)用所述應(yīng)用的Java語言庫接口 ;采用JNI技術(shù),調(diào)用所述應(yīng)用的C語言庫接口或C++語言庫接口,以調(diào)用所述操作系統(tǒng)所提供的接口,以獲得所述身份標(biāo)識信息。
[0014]如上所述的方面和任一可能的實現(xiàn)方式,進一步提供一種實現(xiàn)方式,所述身份標(biāo)識信息包括包名和包簽名中的至少一項。
[0015]如上所述的方面和任一可能的實現(xiàn)方式,進一步提供一種實現(xiàn)方式,所述對所述身份標(biāo)識信息進行簽名處理,以獲得所述應(yīng)用的第一簽名信息之前,還包括:
[0016]獲取當(dāng)前的網(wǎng)絡(luò)時間戳;
[0017]所述對所述身份標(biāo)識信息進行簽名處理,以獲得所述應(yīng)用的第一簽名信息,包括:
[0018]對所述身份標(biāo)識信息和所述網(wǎng)絡(luò)時間戳進行簽名處理,以獲得所述第一簽名信息;
[0019]所述向開放平臺發(fā)送所述第一簽名信息和所述應(yīng)用的應(yīng)用標(biāo)識信息,包括:
[0020]向所述開放平臺發(fā)送所述應(yīng)用的應(yīng)用標(biāo)識信息、所述網(wǎng)絡(luò)時間戳和所述第一簽名信息;
[0021]所述第二簽名信息具體為所述開放平臺對所述應(yīng)用注冊的身份標(biāo)識信息和所述網(wǎng)絡(luò)時間戳進行簽名處理獲得的,所述應(yīng)用注冊的身份標(biāo)識信息為所述開放平臺根據(jù)所述網(wǎng)絡(luò)時間戳和所述應(yīng)用標(biāo)識信息獲得的。
[0022]本發(fā)明的另一方面,提供一種開放平臺的調(diào)用裝置,包括:
[0023]獲取單元,用于獲取應(yīng)用的身份標(biāo)識信息;
[0024]簽名單元,用于對所述身份標(biāo)識信息進行簽名處理,以獲得所述應(yīng)用的第一簽名信息;
[0025]發(fā)送單元,用于向開放平臺發(fā)送所述第一簽名信息和所述應(yīng)用的應(yīng)用標(biāo)識信息;
[0026]接收單元,用于接收所述開放平臺發(fā)送的訪問令牌,用以調(diào)用所述開放平臺所提供的開放API,所述訪問令牌為所述開放平臺利用第二簽名信息,對所述第一簽名信息進行驗證成功之后獲得的,所述第二簽名信息為所述開放平臺對所述應(yīng)用注冊的身份標(biāo)識信息進行簽名處理獲得的,所述應(yīng)用注冊的身份標(biāo)識信息為所述開放平臺根據(jù)所述應(yīng)用標(biāo)識信息獲得的。
[0027]如上所述的方面和任一可能的實現(xiàn)方式,進一步提供一種實現(xiàn)方式,所述獲取單元,具體用于
[0028]調(diào)用所述應(yīng)用所提供的接口,以獲得所述身份標(biāo)識信息。
[0029]如上所述的方面和任一可能的實現(xiàn)方式,進一步提供一種實現(xiàn)方式,所述獲取單元,具體用于
[0030]調(diào)用所述應(yīng)用的Java語言庫接口 ;采用JNI技術(shù),調(diào)用所述應(yīng)用的C語言庫接口或C++語言庫接口,以調(diào)用所述操作系統(tǒng)所提供的接口,以獲得所述身份標(biāo)識信息。
[0031]如上所述的方面和任一可能的實現(xiàn)方式,進一步提供一種實現(xiàn)方式,所述身份標(biāo)識信息包括包名和包簽名中的至少一項。
[0032]如上所述的方面和任一可能的實現(xiàn)方式,進一步提供一種實現(xiàn)方式,
[0033]所述獲取單元,還用于
[0034]獲取當(dāng)前的網(wǎng)絡(luò)時間戳;
[0035]所述簽名單元,具體用于
[0036]對所述身份標(biāo)識信息和所述網(wǎng)絡(luò)時間戳進行簽名處理,以獲得所述第一簽名信息;
[0037]所述發(fā)送單元,具體用于
[0038]向所述開放平臺發(fā)送所述應(yīng)用的應(yīng)用標(biāo)識信息、所述網(wǎng)絡(luò)時間戳和所述第一簽名信息;
[0039]所述第二簽名信息具體為所述開放平臺對所述應(yīng)用注冊的身份標(biāo)識信息和所述網(wǎng)絡(luò)時間戳進行簽名處理獲得的,所述應(yīng)用注冊的身份標(biāo)識信息為所述開放平臺根據(jù)所述網(wǎng)絡(luò)時間戳和所述應(yīng)用標(biāo)識信息獲得的。
[0040]由上述技術(shù)方案可知,本發(fā)明實施例通過獲取應(yīng)用的身份標(biāo)識信息,進而對所述身份標(biāo)識信息進行簽名處理,以獲得所述應(yīng)用的第一簽名信息,并向開放平臺發(fā)送所述第一簽名信息和所述應(yīng)用的應(yīng)用標(biāo)識信息,使得能夠接收所述開放平臺發(fā)送的訪問令牌,用以調(diào)用所述開放平臺所提供的開放API,由于沒有傳輸明文的驗證參數(shù),從而提高了安全平臺的調(diào)用的安全性。
[0041]另外,采用本發(fā)明提供的技術(shù)方案,由于沒有傳輸明文的密鑰信息,能夠避免由于驗證參數(shù)泄露而導(dǎo)致的安全問題,能夠進一步提高安全平臺的調(diào)用的安全性。
[0042]另外,采用本發(fā)明提供的技術(shù)方案,應(yīng)用和應(yīng)用所對應(yīng)的服務(wù)器無需存儲密鑰信息,能夠避免由于驗證參數(shù)泄露而導(dǎo)致的安全問題,能夠進一步提高安全平臺的調(diào)用的安全性。
[0043]另外,采用本發(fā)明提供的技術(shù)方案,通過利用C語言庫接口或C++語言庫接口,直接調(diào)用操作系統(tǒng)所提供的接口,來獲得應(yīng)用的身份標(biāo)識信息,使得惡意的應(yīng)用無法偽造身份標(biāo)識信息,能夠避免由于惡意的應(yīng)用偽造身份標(biāo)識信息而導(dǎo)致的安全問題,能夠進一步提高安全平臺的調(diào)用的安全性。
[0044]另外,采用本發(fā)明提供的技術(shù)方案,由于利用C語言庫接口或C++語言庫接口,實現(xiàn)簽名處理所需要的對象即應(yīng)用的身份標(biāo)識信息,的獲取,攻擊者想要完全破解的難度相當(dāng)大,能夠進一步提高安全平臺的調(diào)用的安全性。
[0045]另外,采用本發(fā)明提供的技術(shù)方案,由于除了第一簽名信息和應(yīng)用的應(yīng)用標(biāo)識信息之外,還進一步將當(dāng)前的網(wǎng)絡(luò)時間戳作為驗證參數(shù),發(fā)送給開放平臺,以共同參與開放平臺對第一簽名信息的驗證操作,使得攻擊者無法通過重放驗證參數(shù)來通過驗證,能夠避免由于攻擊者利用重放驗證參數(shù)而導(dǎo)致的安全問題,能夠進一步提高安全平臺的調(diào)用的安全性。
【【專利附圖】

【附圖說明】】
[0046]為了更清楚地說明本發(fā)明實施例中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0047]圖1為本發(fā)明一實施例提供的開放平臺的調(diào)用方法的流程示意圖;
[0048]圖2為本發(fā)明另一實施例提供的開放平臺的調(diào)用方法的流程示意圖;
[0049]圖3為本發(fā)明另一實施例提供的開放平臺的調(diào)用裝置的結(jié)構(gòu)示意圖。
【【具體實施方式】】
[0050]為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的全部其他實施例,都屬于本發(fā)明保護的范圍。
[0051]需要說明的是,本發(fā)明實施例中所涉及的終端可以包括但不限于手機、個人數(shù)字助理(Personal Digital Assistant, PDA)、無線手持裝置、無線上網(wǎng)本、個人電腦、便攜電腦、平板電腦、MP3播放器、MP4播放器、可穿戴設(shè)備(例如,智能眼鏡、智能手表、智能手環(huán)坐、坐寸/ 寸ο
[0052]另外,本文中術(shù)語“和/或”,僅僅是一種描述關(guān)聯(lián)對象的關(guān)聯(lián)關(guān)系,表示可以存在三種關(guān)系,例如,A和/或B,可以表示:單獨存在A,同時存在A和B,單獨存在B這三種情況。另外,本文中字符“/”,一般表示前后關(guān)聯(lián)對象是一種“或”的關(guān)系。
[0053]圖1為本發(fā)明一實施例提供的開放平臺的調(diào)用方法的流程示意圖,如圖1所示。
[0054]101、獲取應(yīng)用的身份標(biāo)識信息。
[0055]其中,應(yīng)用,即第三方應(yīng)用,是指運行在裝載操作系統(tǒng)的終端上的應(yīng)用程序,可以為安卓(Android)應(yīng)用,或者還可以為1S應(yīng)用,本實施例對此不進行特別限定。安卓(Android)應(yīng)用,是運行在裝載安卓操作系統(tǒng)的終端上的應(yīng)用程序。1S應(yīng)用,是運行在裝載1S操作系統(tǒng)的終端上的應(yīng)用程序。
[0056]102、對所述身份標(biāo)識信息進行簽名處理,以獲得所述應(yīng)用的第一簽名信息。
[0057]103、向開放平臺發(fā)送所述第一簽名信息和所述應(yīng)用的應(yīng)用標(biāo)識信息。
[0058]104、接收所述開放平臺發(fā)送的訪問令牌,用以調(diào)用所述開放平臺所提供的開放API,所述訪問令牌為所述開放平臺利用第二簽名信息,對所述第一簽名信息進行驗證成功之后獲得的,所述第二簽名信息為所述開放平臺對所述應(yīng)用注冊的身份標(biāo)識信息進行簽名處理獲得的,所述應(yīng)用注冊的身份標(biāo)識信息為所述開放平臺根據(jù)所述應(yīng)用標(biāo)識信息獲得的。
[0059]訪問令牌(token)可以為一個唯一的字符串,用于標(biāo)識應(yīng)用。一旦身份驗證通過之后,應(yīng)用在后續(xù)與開放平臺的通信過程中,需要攜帶這個訪問令牌,用于表明其身份。
[0060]需要說明的是,101?104的執(zhí)行主體可以為位于本地終端的應(yīng)用,或者還可以為位于本地終端的應(yīng)用中的插件或軟件開發(fā)工具包(Software Development Kit, SDK)等功能單元,這些功能單元具體可以由一系列編程語言代碼和編程語言代碼所實現(xiàn)的庫(例如,LIB庫等)組成,本實施例對此不進行特別限定。
[0061]可以理解的是,所述應(yīng)用可以是安裝在終端上的應(yīng)用程序(nativeApp),或者還可以是終端上的瀏覽器的一個網(wǎng)頁程序(webApp),本實施例對此不進行限定。
[0062]這樣,通過獲取應(yīng)用的身份標(biāo)識信息,進而對所述身份標(biāo)識信息進行簽名處理,以獲得所述應(yīng)用的第一簽名信息,并向開放平臺發(fā)送所述第一簽名信息和所述應(yīng)用的應(yīng)用標(biāo)識信息,使得能夠接收所述開放平臺發(fā)送的訪問令牌,用以調(diào)用所述開放平臺所提供的開放API,由于沒有傳輸明文的驗證參數(shù),從而提高了安全平臺的調(diào)用的安全性。
[0063]可選地,在本實施例的一個可能的實現(xiàn)方式中,在101之前,應(yīng)用具體可以與開放平臺進行交互,以執(zhí)行注冊操作。在執(zhí)行注冊操作的過程中,應(yīng)用具體可以向開放平臺發(fā)送應(yīng)用的身份標(biāo)識信息。完成注冊操作之后,應(yīng)用獲得一個由開放平臺為應(yīng)用分配的應(yīng)用標(biāo)識信息例如,應(yīng)用ID等,用以在開放平臺上唯一標(biāo)識該應(yīng)用。
[0064]其中,所述身份標(biāo)識信息可以包括但不限于包名和包簽名中的至少一項。
[0065]例如,安卓應(yīng)用的包(package)名,是指安卓應(yīng)用的安裝包(Android PackageKit,APK)文件的名稱。安卓應(yīng)用的包簽名,是指安卓應(yīng)用的安裝包(Android Package Kit,APK)文件的簽名信息。
[0066]一般來說,APK文件,是一種安卓操作系統(tǒng)上的應(yīng)用安裝文件格式,其英文全稱為“Applicat1n Package File”。一個安卓應(yīng)用的代碼想要在裝載安卓操作系統(tǒng)的設(shè)備上運行,必須先進行編譯,然后被打包成為一個被安卓操作系統(tǒng)所能識別的文件才可以被運行,而這種能被安卓操作系統(tǒng)識別并運行的文件格式便是APK”。一個APK文件內(nèi)包含清單文件(AndroidManifest.xml) > META-1NFO 文件夾、被編譯的代碼文件(classes, dex) > res 文件夾和資源文件(resources, arse)。其中,APK文件的詳細(xì)描述可以參見現(xiàn)有技術(shù)中的相關(guān)內(nèi)容,此處不再贅述。APK文件實際上是一個ZIP壓縮包。其中,APK文件的名稱,可以存儲在AndroidManifest.xml中。APK文件的簽名信息,可以存儲在META-1NF目錄即META-1NF文件夾下。
[0067]可選地,在本實施例的一個可能的實現(xiàn)方式中,在101中,具體可以調(diào)用所述應(yīng)用所提供的接口,以獲得所述身份標(biāo)識信息。
[0068]具體地,具體可以調(diào)用所述應(yīng)用的Java語言庫接口 ;采用Java本地調(diào)用(JavaNative Interface, JNI)技術(shù),調(diào)用所述應(yīng)用的C語言庫接口或C++語言庫接口,以調(diào)用所述操作系統(tǒng)所提供的接口,以獲得所述身份標(biāo)識信息。
[0069]這樣,通過利用C語言庫接口或C++語言庫接口,直接調(diào)用操作系統(tǒng)所提供的接口,來獲得應(yīng)用的身份標(biāo)識信息,使得惡意的應(yīng)用無法偽造身份標(biāo)識信息,能夠避免由于惡意的應(yīng)用偽造身份標(biāo)識信息而導(dǎo)致的安全問題,能夠進一步提高安全平臺的調(diào)用的安全性。
[0070]此外,由于利用C語言庫接口或C++語言庫接口,實現(xiàn)簽名處理所需要的對象即應(yīng)用的身份標(biāo)識信息,的獲取,攻擊者想要完全破解的難度相當(dāng)大,能夠進一步提高安全平臺的調(diào)用的安全性。
[0071]可選地,在本實施例的一個可能的實現(xiàn)方式中,在102中,具體可以采用現(xiàn)有技術(shù)中的任何簽名算法,對所述身份標(biāo)識信息進行簽名處理。例如,可以采用信息摘要算法5 (Message-Digest Algorithm 5,MD5)或安全散列算法(Secure Hash Algorithm, SHA)等算法,對所述身份標(biāo)識信息進行簽名處理,本實施例對此不進行特別限定。
[0072]本實施例中,開放平臺接收到所述應(yīng)用標(biāo)識信息之后,則可以根據(jù)所述應(yīng)用標(biāo)識信息,獲得所述應(yīng)用注冊的身份標(biāo)識信息,進而對所述應(yīng)用注冊的身份標(biāo)識信息進行簽名處理,以獲得第二簽名信息。然后,所述開放平臺則可以利用所述第二簽名信息,對所述第一簽名信息進行驗證。若所述第一簽名信息與所述第二簽名信息一致,則說明驗證成功;若所述第一簽名信息與所述第二簽名信息不一致,則說明驗證失敗。
[0073]可以理解的是,開放平臺對所述應(yīng)用注冊的身份標(biāo)識信息進行的簽名處理,應(yīng)該與102中所執(zhí)行的簽名處理是一致的,其所使用的密鑰信息也應(yīng)該是一致。
[0074]可選地,在本實施例的一個可能的實現(xiàn)方式中,在102之前,還可以進一步獲取當(dāng)前的網(wǎng)絡(luò)時間戳。
[0075]之所以獲取當(dāng)前的網(wǎng)絡(luò)時間戳,原因在于,很多用戶都會修改終端上的系統(tǒng)時間戳,系統(tǒng)時間戳與真正的網(wǎng)絡(luò)時間戳一般都是不一致的,甚至相差會很大,因此,終端上的系統(tǒng)時間戳并不能準(zhǔn)確地反映當(dāng)前的時間信息,只有網(wǎng)絡(luò)時間戳才能準(zhǔn)確地反映當(dāng)前的時間信息。
[0076]需要說明的是,執(zhí)行獲取應(yīng)用的身份標(biāo)識信息的步驟與執(zhí)行獲取當(dāng)前的網(wǎng)絡(luò)時間戳的步驟,沒有固定的執(zhí)行順序,可以先執(zhí)行獲取應(yīng)用的身份標(biāo)識信息的步驟,再執(zhí)行獲取當(dāng)前的網(wǎng)絡(luò)時間戳的步驟,或者還可以執(zhí)行獲取應(yīng)用的身份標(biāo)識信息的步驟的同時,執(zhí)行獲取當(dāng)前的網(wǎng)絡(luò)時間戳的步驟,或者還可以先執(zhí)行獲取當(dāng)前的網(wǎng)絡(luò)時間戳的步驟,再執(zhí)行獲取應(yīng)用的身份標(biāo)識信息的步驟,本實施例對此不進行特別限定。
[0077]相應(yīng)地,在102中,具體可以對所述身份標(biāo)識信息和所述網(wǎng)絡(luò)時間戳進行簽名處理,以獲得所述第一簽名信息。在103中,則可以向所述開放平臺發(fā)送所述應(yīng)用的應(yīng)用標(biāo)識信息、所述網(wǎng)絡(luò)時間戳和所述第一簽名信息,以供所述開放平臺根據(jù)所述網(wǎng)絡(luò)時間戳和所述應(yīng)用標(biāo)識信息,獲得所述應(yīng)用注冊的身份標(biāo)識信息,對所述應(yīng)用注冊的身份標(biāo)識信息和所述網(wǎng)絡(luò)時間戳進行簽名處理,以獲得所述第二簽名信息。
[0078]具體地,開放平臺接收到所述應(yīng)用的應(yīng)用標(biāo)識信息、所述網(wǎng)絡(luò)時間戳和所述第一簽名信息之后,首先根據(jù)所述網(wǎng)絡(luò)時間戳和當(dāng)前的系統(tǒng)時間戳進行判斷,以確定當(dāng)前所接收到的這些驗證參數(shù)(即所述應(yīng)用的應(yīng)用標(biāo)識信息、所述網(wǎng)絡(luò)時間戳和所述第一簽名信息)是否為攻擊者的重放攻擊。若所述網(wǎng)絡(luò)時間戳與當(dāng)前的系統(tǒng)時間戳之間的差值小于或等于預(yù)先設(shè)置的時間閾值例如,5分鐘,則可以確定當(dāng)前所接收到的這些驗證參數(shù)不是攻擊者的重放攻擊,是一個正常的消息,可以繼續(xù)執(zhí)行后續(xù)操作即執(zhí)行根據(jù)所述應(yīng)用標(biāo)識信息,獲得所述應(yīng)用注冊的身份標(biāo)識信息;若所述網(wǎng)絡(luò)時間戳與當(dāng)前的系統(tǒng)時間戳之間的差值大于該時間閾值,則可以確定當(dāng)前所接收到的這些驗證參數(shù)是攻擊者的重放攻擊,是一個異常的消息,不再執(zhí)行后續(xù)操作即不再執(zhí)行根據(jù)所述應(yīng)用標(biāo)識信息,獲得所述應(yīng)用注冊的身份標(biāo)識信息,進一步還可以直接返回錯誤代碼。
[0079]之所以利用當(dāng)前的系統(tǒng)時間戳,原因在于,大部分開放平臺都能夠保證其上的系統(tǒng)時間戳與真正的網(wǎng)絡(luò)時間戳是一致的,因此,開放平臺的系統(tǒng)時間戳已經(jīng)能夠準(zhǔn)確地反映當(dāng)前的時間信息,無需再去獲取網(wǎng)絡(luò)時間戳。
[0080]重放攻擊(Iteplay Attacks)又稱重播攻擊、回放攻擊或新鮮性攻擊(FreshnessAttacks),是指攻擊者發(fā)送一個目的主機已接收過的包,來達(dá)到欺騙系統(tǒng)的目的,主要用于身份認(rèn)證過程,破壞認(rèn)證的正確性。它是一種攻擊類型,這種攻擊會不斷惡意或欺詐性地重復(fù)一個有效的數(shù)據(jù)傳輸,重放攻擊可以由發(fā)起者,也可以由攔截并重發(fā)該數(shù)據(jù)的敵方進行。攻擊者利用網(wǎng)絡(luò)監(jiān)聽或者其他方式盜取認(rèn)證憑據(jù)例如,本發(fā)明中的驗證參數(shù)等,之后再把它重新發(fā)給認(rèn)證服務(wù)器例如,本發(fā)明中的開放平臺等。
[0081]從這個解釋上理解,簽名處理可以有效防止會話劫持,但是卻防止不了重放攻擊。重放攻擊任何網(wǎng)絡(luò)通信過程中都可能發(fā)生。
[0082]這樣,由于除了第一簽名信息和應(yīng)用的應(yīng)用標(biāo)識信息之外,還進一步將當(dāng)前的網(wǎng)絡(luò)時間戳作為驗證參數(shù),發(fā)送給開放平臺,以共同參與開放平臺對第一簽名信息的驗證操作,使得攻擊者無法通過重放驗證參數(shù)來通過驗證,能夠避免由于攻擊者利用重放驗證參數(shù)而導(dǎo)致的安全問題,能夠進一步提高安全平臺的調(diào)用的安全性。
[0083]下面將以本地終端的安卓應(yīng)用A,以及位于安卓應(yīng)用A中的SDK為例,詳細(xì)說明本發(fā)明所提供的技術(shù)方案。本實施例所提供的SDK,具體可以由一系列Java語言代碼和C語言/C++語言代碼所實現(xiàn)的LIB庫組成,該C語言/C++語言代碼所實現(xiàn)的LIB庫中存儲C語目/C++語目庫接口。如圖2所不。
[0084]201、安卓應(yīng)用A向開放平臺發(fā)送安卓應(yīng)用A的包名和包簽名,以執(zhí)行注冊操作。
[0085]202、開放平臺為安卓應(yīng)用A分配應(yīng)用ID。
[0086]203、開放平臺向安卓應(yīng)用A發(fā)送所分配的應(yīng)用ID。
[0087]204、安卓應(yīng)用A獲取當(dāng)前的網(wǎng)絡(luò)時間戳。
[0088]205、安卓應(yīng)用A調(diào)用SDK提供的用于獲取簽名信息的Java語言庫接口,將所述網(wǎng)絡(luò)時間戳傳入C語言/C++語言庫接口,以調(diào)用操作系統(tǒng)所提供的接口,以獲得該安卓應(yīng)用A的包名和包簽名。
[0089]SDK提供的用于獲取簽名信息的Java語言庫接口被調(diào)用之后,可以利用預(yù)先設(shè)置的簽名密鑰,對安卓應(yīng)用A的包名和包簽名、以及所述網(wǎng)絡(luò)時間戳進行簽名處理,以獲得安卓應(yīng)用A的第一簽名信息。
[0090]206、安卓應(yīng)用A向開放平臺發(fā)送安卓應(yīng)用A的應(yīng)用ID、所述第一簽名信息和所述網(wǎng)絡(luò)時間戳。
[0091]207、開放平臺根據(jù)所述網(wǎng)絡(luò)時間戳和當(dāng)前的系統(tǒng)時間戳進行判斷,以確定當(dāng)前所接收到的驗證參數(shù)(即安卓應(yīng)用A的應(yīng)用ID、所述第一簽名信息和所述網(wǎng)絡(luò)時間戳)是否為攻擊者的重放攻擊,若不是攻擊者的重放攻擊,則執(zhí)行208,否則,結(jié)束流程。
[0092]208、開放平臺根據(jù)安卓應(yīng)用A的應(yīng)用ID,獲得安卓應(yīng)用A注冊的安卓應(yīng)用A的包名和包簽名,利用預(yù)先設(shè)置的簽名密鑰(與獲得第一簽名信息時所使用的簽名密鑰一致),對安卓應(yīng)用A的包名和包簽名、以及所述網(wǎng)絡(luò)時間戳進行簽名處理,以獲得安卓應(yīng)用A的第二簽名信息。
[0093]209、開放平臺利用所述第二簽名信息,對所述第一簽名信息進行驗證,若驗證成功,則執(zhí)行210,否則,結(jié)束流程。
[0094]具體地,若所述第一簽名信息與所述第二簽名信息一致,則說明驗證成功;若所述第一簽名信息與所述第二簽名信息不一致,則說明驗證失敗
[0095]210、開放平臺根據(jù)安卓應(yīng)用A的應(yīng)用ID,以及安卓應(yīng)用A的其他相關(guān)信息,生成訪問令牌。
[0096]生成訪問令牌的詳細(xì)描述具體可以參見現(xiàn)有技術(shù)中的相關(guān)內(nèi)容,此處不再贅述。
[0097]211、開放平臺向安卓應(yīng)用A發(fā)送所述訪問令牌。
[0098]至此,安卓應(yīng)用A獲得開放平臺所提供的訪問令牌,在安卓應(yīng)用A每次調(diào)用開放平臺所提供的開放API時,都需要攜帶這個訪問令牌,以供開放平臺能夠根據(jù)該訪問令牌,向安卓應(yīng)用A提供相應(yīng)的訪問權(quán)限。
[0099]本實施例中,通過獲取應(yīng)用的身份標(biāo)識信息,進而對所述身份標(biāo)識信息進行簽名處理,以獲得所述應(yīng)用的第一簽名信息,并向開放平臺發(fā)送所述第一簽名信息和所述應(yīng)用的應(yīng)用標(biāo)識信息,使得能夠接收所述開放平臺發(fā)送的訪問令牌,用以調(diào)用所述開放平臺所提供的開放API,由于沒有傳輸明文的驗證參數(shù),從而提高了安全平臺的調(diào)用的安全性。
[0100]另外,采用本發(fā)明提供的技術(shù)方案,由于沒有傳輸明文的密鑰信息,能夠避免由于驗證參數(shù)泄露而導(dǎo)致的安全問題,能夠進一步提高安全平臺的調(diào)用的安全性。
[0101]另外,采用本發(fā)明提供的技術(shù)方案,應(yīng)用和應(yīng)用所對應(yīng)的服務(wù)器無需存儲密鑰信息,能夠避免由于驗證參數(shù)泄露而導(dǎo)致的安全問題,能夠進一步提高安全平臺的調(diào)用的安全性。
[0102]另外,采用本發(fā)明提供的技術(shù)方案,通過利用C語言庫接口或C++語言庫接口,直接調(diào)用操作系統(tǒng)所提供的接口,來獲得應(yīng)用的身份標(biāo)識信息,使得惡意的應(yīng)用無法偽造身份標(biāo)識信息,能夠避免由于惡意的應(yīng)用偽造身份標(biāo)識信息而導(dǎo)致的安全問題,能夠進一步提高安全平臺的調(diào)用的安全性。
[0103]另外,采用本發(fā)明提供的技術(shù)方案,由于利用C語言庫接口或C++語言庫接口,實現(xiàn)簽名處理所需要的對象即應(yīng)用的身份標(biāo)識信息,的獲取,攻擊者想要完全破解的難度相當(dāng)大,能夠進一步提高安全平臺的調(diào)用的安全性。
[0104]另外,采用本發(fā)明提供的技術(shù)方案,由于除了第一簽名信息和應(yīng)用的應(yīng)用標(biāo)識信息之外,還進一步將當(dāng)前的網(wǎng)絡(luò)時間戳作為驗證參數(shù),發(fā)送給開放平臺,以共同參與開放平臺對第一簽名信息的驗證操作,使得攻擊者無法通過重放驗證參數(shù)來通過驗證,能夠避免由于攻擊者利用重放驗證參數(shù)而導(dǎo)致的安全問題,能夠進一步提高安全平臺的調(diào)用的安全性。
[0105]需要說明的是,對于前述的各方法實施例,為了簡單描述,故將其都表述為一系列的動作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本發(fā)明并不受所描述的動作順序的限制,因為依據(jù)本發(fā)明,某些步驟可以采用其他順序或者同時進行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說明書中所描述的實施例均屬于優(yōu)選實施例,所涉及的動作和模塊并不一定是本發(fā)明所必須的。
[0106]在上述實施例中,對各個實施例的描述都各有側(cè)重,某個實施例中沒有詳述的部分,可以參見其他實施例的相關(guān)描述。
[0107]圖3為本發(fā)明另一實施例提供的開放平臺的調(diào)用裝置的結(jié)構(gòu)示意圖,如圖3所示。本實施例的開放平臺的調(diào)用裝置可以包括獲取單元31、簽名單元32、發(fā)送單元33和接收單元34。其中,獲取單元31,用于獲取應(yīng)用的身份標(biāo)識信息;簽名單元32,用于對所述身份標(biāo)識信息進行簽名處理,以獲得所述應(yīng)用的第一簽名信息;發(fā)送單元33,用于向開放平臺發(fā)送所述第一簽名信息和所述應(yīng)用的應(yīng)用標(biāo)識信息;接收單元34,用于接收所述開放平臺發(fā)送的訪問令牌,用以調(diào)用所述開放平臺所提供的開放API,所述訪問令牌為所述開放平臺利用第二簽名信息,對所述第一簽名信息進行驗證成功之后獲得的,所述第二簽名信息為所述開放平臺對所述應(yīng)用注冊的身份標(biāo)識信息進行簽名處理獲得的,所述應(yīng)用注冊的身份標(biāo)識信息為所述開放平臺根據(jù)所述應(yīng)用標(biāo)識信息獲得的。
[0108]需要說明的是,本實施例所提供的開放平臺的調(diào)用裝置可以為位于本地終端的應(yīng)用,或者還可以為位于本地終端的應(yīng)用中的插件或軟件開發(fā)工具包(SoftwareDevelopment Kit, SDK)等功能單元,這些功能單元具體可以由一系列編程語言代碼和編程語言代碼所實現(xiàn)的庫(例如,LIB庫等)組成,本實施例對此不進行特別限定。
[0109]可以理解的是,所述應(yīng)用可以是安裝在終端上的應(yīng)用程序(nativeApp),或者還可以是終端上的瀏覽器的一個網(wǎng)頁程序(webApp),本實施例對此不進行限定。
[0110]其中,所述身份標(biāo)識信息可以包括但不限于包名和包簽名中的至少一項,本實施例對此不進行特別限定。
[0111]可選地,在本實施例的一個可能的實現(xiàn)方式中,所述獲取單元31,具體可以用于調(diào)用所述應(yīng)用所提供的接口,以獲得所述身份標(biāo)識信息。
[0112]具體地,所述獲取單元31,具體可以用于調(diào)用所述應(yīng)用的Java語言庫接口 ;采用JNI技術(shù),調(diào)用所述應(yīng)用的C語言庫接口或C++語言庫接口,以調(diào)用所述操作系統(tǒng)所提供的接口,以獲得所述身份標(biāo)識信息。
[0113]可選地,在本實施例的一個可能的實現(xiàn)方式中,所述獲取單元31,還可以進一步用于獲取當(dāng)前的網(wǎng)絡(luò)時間戳。
[0114]相應(yīng)地,所述簽名單元32,具體可以用于對所述身份標(biāo)識信息和所述網(wǎng)絡(luò)時間戳進行簽名處理,以獲得所述第一簽名信息;所述發(fā)送單元33,具體可以用于向所述開放平臺發(fā)送所述應(yīng)用的應(yīng)用標(biāo)識信息、所述網(wǎng)絡(luò)時間戳和所述第一簽名信息;所述第二簽名信息具體為所述開放平臺對所述應(yīng)用注冊的身份標(biāo)識信息和所述網(wǎng)絡(luò)時間戳進行簽名處理獲得的,所述應(yīng)用注冊的身份標(biāo)識信息為所述開放平臺根據(jù)所述網(wǎng)絡(luò)時間戳和所述應(yīng)用標(biāo)識息獲得的。
[0115]需要說明的是,圖1對應(yīng)的實施例中方法,可以由本實施例提供的開放平臺的調(diào)用裝置實現(xiàn)。詳細(xì)描述可以參見圖1對應(yīng)的實施例中的相關(guān)內(nèi)容,此處不再贅述。
[0116]本實施例中,通過獲取單元獲取應(yīng)用的身份標(biāo)識信息,進而由簽名單元對所述身份標(biāo)識信息進行簽名處理,以獲得所述應(yīng)用的第一簽名信息,并由發(fā)送單元向開放平臺發(fā)送所述第一簽名信息和所述應(yīng)用的應(yīng)用標(biāo)識信息,使得接收單元能夠接收所述開放平臺發(fā)送的訪問令牌,用以調(diào)用所述開放平臺所提供的開放API,由于沒有傳輸明文的驗證參數(shù),從而提高了安全平臺的調(diào)用的安全性。
[0117]另外,采用本發(fā)明提供的技術(shù)方案,由于沒有傳輸明文的密鑰信息,能夠避免由于驗證參數(shù)泄露而導(dǎo)致的安全問題,能夠進一步提高安全平臺的調(diào)用的安全性。
[0118]另外,采用本發(fā)明提供的技術(shù)方案,應(yīng)用和應(yīng)用所對應(yīng)的服務(wù)器無需存儲密鑰信息,能夠避免由于驗證參數(shù)泄露而導(dǎo)致的安全問題,能夠進一步提高安全平臺的調(diào)用的安全性。
[0119]另外,采用本發(fā)明提供的技術(shù)方案,通過利用C語言庫接口或C++語言庫接口,直接調(diào)用操作系統(tǒng)所提供的接口,來獲得應(yīng)用的身份標(biāo)識信息,使得惡意的應(yīng)用無法偽造身份標(biāo)識信息,能夠避免由于惡意的應(yīng)用偽造身份標(biāo)識信息而導(dǎo)致的安全問題,能夠進一步提高安全平臺的調(diào)用的安全性。
[0120]另外,采用本發(fā)明提供的技術(shù)方案,由于利用C語言庫接口或C++語言庫接口,實現(xiàn)簽名處理所需要的對象即應(yīng)用的身份標(biāo)識信息,的獲取,攻擊者想要完全破解的難度相當(dāng)大,能夠進一步提高安全平臺的調(diào)用的安全性。
[0121]另外,采用本發(fā)明提供的技術(shù)方案,由于除了第一簽名信息和應(yīng)用的應(yīng)用標(biāo)識信息之外,還進一步將當(dāng)前的網(wǎng)絡(luò)時間戳作為驗證參數(shù),發(fā)送給開放平臺,以共同參與開放平臺對第一簽名信息的驗證操作,使得攻擊者無法通過重放驗證參數(shù)來通過驗證,能夠避免由于攻擊者利用重放驗證參數(shù)而導(dǎo)致的安全問題,能夠進一步提高安全平臺的調(diào)用的安全性。
[0122]所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡潔,上述描述的系統(tǒng),裝置和單元的具體工作過程,可以參考前述方法實施例中的對應(yīng)過程,在此不再贅述。
[0123]在本發(fā)明所提供的幾個實施例中,應(yīng)該理解到,所揭露的系統(tǒng),裝置和方法,可以通過其它的方式實現(xiàn)。例如,以上所描述的裝置實施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,例如多個單元或組件可以結(jié)合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機械或其它的形式。
[0124]所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部單元來實現(xiàn)本實施例方案的目的。
[0125]另外,在本發(fā)明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實現(xiàn),也可以采用硬件加軟件功能單元的形式實現(xiàn)。
[0126]上述以軟件功能單元的形式實現(xiàn)的集成的單元,可以存儲在一個計算機可讀取存儲介質(zhì)中。上述軟件功能單元存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機裝置(可以是個人計算機,服務(wù)器,或者網(wǎng)絡(luò)裝置等)或處理器(processor)執(zhí)行本發(fā)明各個實施例所述方法的部分步驟。而前述的存儲介質(zhì)包括:U盤、移動硬盤、只讀存儲器(Read-Only Memory, ROM)、隨機存取存儲器(Random Access Memory, RAM)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
[0127]最后應(yīng)說明的是:以上實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述實施例對本發(fā)明進行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對前述各實施例所記載的技術(shù)方案進行修改,或者對其中部分技術(shù)特征進行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的精神和范圍。
【權(quán)利要求】
1.一種開放平臺的調(diào)用方法,其特征在于,包括: 獲取應(yīng)用的身份標(biāo)識信息; 對所述身份標(biāo)識信息進行簽名處理,以獲得所述應(yīng)用的第一簽名信息; 向開放平臺發(fā)送所述第一簽名信息和所述應(yīng)用的應(yīng)用標(biāo)識信息; 接收所述開放平臺發(fā)送的訪問令牌,用以調(diào)用所述開放平臺所提供的開放API,所述訪問令牌為所述開放平臺利用第二簽名信息,對所述第一簽名信息進行驗證成功之后獲得的,所述第二簽名信息為所述開放平臺對所述應(yīng)用注冊的身份標(biāo)識信息進行簽名處理獲得的,所述應(yīng)用注冊的身份標(biāo)識信息為所述開放平臺根據(jù)所述應(yīng)用標(biāo)識信息獲得的。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述獲取應(yīng)用的身份標(biāo)識信息,包括: 調(diào)用所述應(yīng)用所提供的接口,以獲得所述身份標(biāo)識信息。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述調(diào)用所述應(yīng)用所提供的接口,以獲得所述身份標(biāo)識信息,包括: 調(diào)用所述應(yīng)用的Java語言庫接口 ;采用JNI技術(shù),調(diào)用所述應(yīng)用的C語言庫接口或C++語言庫接口,以調(diào)用所述操作系統(tǒng)所提供的接口,以獲得所述身份標(biāo)識信息。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述身份標(biāo)識信息包括包名和包簽名中的至少一項。
5.根據(jù)權(quán)利要求1?4任一權(quán)利要求所述的方法,其特征在于,所述對所述身份標(biāo)識信息進行簽名處理,以獲得所述應(yīng)用的第一簽名信息之前,還包括: 獲取當(dāng)前的網(wǎng)絡(luò)時間戳; 所述對所述身份標(biāo)識信息進行簽名處理,以獲得所述應(yīng)用的第一簽名信息,包括: 對所述身份標(biāo)識信息和所述網(wǎng)絡(luò)時間戳進行簽名處理,以獲得所述第一簽名信息; 所述向開放平臺發(fā)送所述第一簽名信息和所述應(yīng)用的應(yīng)用標(biāo)識信息,包括: 向所述開放平臺發(fā)送所述應(yīng)用的應(yīng)用標(biāo)識信息、所述網(wǎng)絡(luò)時間戳和所述第一簽名信息; 所述第二簽名信息具體為所述開放平臺對所述應(yīng)用注冊的身份標(biāo)識信息和所述網(wǎng)絡(luò)時間戳進行簽名處理獲得的,所述應(yīng)用注冊的身份標(biāo)識信息為所述開放平臺根據(jù)所述網(wǎng)絡(luò)時間戳和所述應(yīng)用標(biāo)識信息獲得的。
6.一種開放平臺的調(diào)用裝置,其特征在于,包括: 獲取單元,用于獲取應(yīng)用的身份標(biāo)識信息; 簽名單元,用于對所述身份標(biāo)識信息進行簽名處理,以獲得所述應(yīng)用的第一簽名信息; 發(fā)送單元,用于向開放平臺發(fā)送所述第一簽名信息和所述應(yīng)用的應(yīng)用標(biāo)識信息; 接收單元,用于接收所述開放平臺發(fā)送的訪問令牌,用以調(diào)用所述開放平臺所提供的開放API,所述訪問令牌為所述開放平臺利用第二簽名信息,對所述第一簽名信息進行驗證成功之后獲得的,所述第二簽名信息為所述開放平臺對所述應(yīng)用注冊的身份標(biāo)識信息進行簽名處理獲得的,所述應(yīng)用注冊的身份標(biāo)識信息為所述開放平臺根據(jù)所述應(yīng)用標(biāo)識信息獲得的。
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述獲取單元,具體用于 調(diào)用所述應(yīng)用所提供的接口,以獲得所述身份標(biāo)識信息。
8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述獲取單元,具體用于 調(diào)用所述應(yīng)用的Java語言庫接口 ;采用JNI技術(shù),調(diào)用所述應(yīng)用的C語言庫接口或C++語言庫接口,以調(diào)用所述操作系統(tǒng)所提供的接口,以獲得所述身份標(biāo)識信息。
9.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述身份標(biāo)識信息包括包名和包簽名中的至少一項。
10.根據(jù)權(quán)利要求6?9任一權(quán)利要求所述的裝置,其特征在于, 所述獲取單元,還用于 獲取當(dāng)前的網(wǎng)絡(luò)時間戳; 所述簽名單元,具體用于 對所述身份標(biāo)識信息和所述網(wǎng)絡(luò)時間戳進行簽名處理,以獲得所述第一簽名信息; 所述發(fā)送單元,具體用于 向所述開放平臺發(fā)送所述應(yīng)用的應(yīng)用標(biāo)識信息、所述網(wǎng)絡(luò)時間戳和所述第一簽名信息; 所述第二簽名信息具體為所述開放平臺對所述應(yīng)用注冊的身份標(biāo)識信息和所述網(wǎng)絡(luò)時間戳進行簽名處理獲得的,所述應(yīng)用注冊的身份標(biāo)識信息為所述開放平臺根據(jù)所述網(wǎng)絡(luò)時間戳和所述應(yīng)用標(biāo)識信息獲得的。
【文檔編號】G06F21/50GK104199654SQ201410427923
【公開日】2014年12月10日 申請日期:2014年8月27日 優(yōu)先權(quán)日:2014年8月27日
【發(fā)明者】朱建庭, 鄭偉德, 張弛 申請人:百度在線網(wǎng)絡(luò)技術(shù)(北京)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
桃源县| 沙雅县| 广西| 扎鲁特旗| 正阳县| 启东市| 会泽县| 繁昌县| 密山市| 紫阳县| 偏关县| 台湾省| 东明县| 西充县| 冀州市| 邯郸市| 古浪县| 漳平市| 滨海县| 治多县| 萨迦县| 榆社县| 长子县| 惠东县| 民勤县| 河池市| 密山市| 卢龙县| 毕节市| 宁乡县| 石阡县| 林周县| 浦北县| 华容县| 望都县| 玛沁县| 泸溪县| 曲水县| 眉山市| 休宁县| 遂溪县|