開放平臺(tái)的調(diào)用方法及裝置制造方法
【專利摘要】本發(fā)明提供一種開放平臺(tái)的調(diào)用方法及裝置。本發(fā)明實(shí)施例通過獲取應(yīng)用的身份標(biāo)識信息,進(jìn)而對所述身份標(biāo)識信息進(jìn)行加密處理,以獲得所述應(yīng)用的加密信息,并向開放平臺(tái)發(fā)送所述加密信息和所述應(yīng)用的應(yīng)用標(biāo)識信息,使得能夠接收所述開放平臺(tái)發(fā)送的訪問令牌,用以調(diào)用所述開放平臺(tái)所提供的開放API,由于沒有傳輸明文的驗(yàn)證參數(shù),從而提高了安全平臺(tái)的調(diào)用的安全性。
【專利說明】開放平臺(tái)的調(diào)用方法及裝直
【【技術(shù)領(lǐng)域】】
[0001 ] 本發(fā)明涉及授權(quán)技術(shù),尤其涉及一種開放平臺(tái)的調(diào)用方法及裝置。
【【背景技術(shù)】】
[0002]在互聯(lián)網(wǎng)時(shí)代,把網(wǎng)站的服務(wù)封裝成一系列機(jī)器易識別的數(shù)據(jù)接口開放出去,供第三方開發(fā)者使用,這種行為就叫做開放(Open)應(yīng)用程序編程接口(Applicat1nProgramming Interface, API),提供開放API的平臺(tái)本身就被稱為開放平臺(tái)(OpenPlatform)。目前,大部分開放平臺(tái)所提供的開放API,在被第三方應(yīng)用調(diào)用時(shí),都需要第三方應(yīng)用通過開放平臺(tái)所提供的授權(quán)機(jī)制獲取一個(gè)訪問令牌,又可以稱為訪問授權(quán)碼。在第三方應(yīng)用每次調(diào)用開放API時(shí),都需要攜帶這個(gè)訪問令牌,以供開放平臺(tái)能夠根據(jù)該訪問令牌,向第三方應(yīng)用提供相應(yīng)的訪問權(quán)限。
[0003]現(xiàn)有技術(shù)中,應(yīng)用可以利用應(yīng)用開放平臺(tái)為應(yīng)用分配的應(yīng)用標(biāo)識信息和密鑰信息,向開放平臺(tái)請求獲取訪問令牌,安全性不高。
【
【發(fā)明內(nèi)容】
】
[0004]本發(fā)明的多個(gè)方面提供一種開放平臺(tái)的調(diào)用方法及裝置,用以提高安全平臺(tái)的調(diào)用的安全性。
[0005]本發(fā)明的一方面,提供一種開放平臺(tái)的調(diào)用方法,包括:
[0006]獲取應(yīng)用的身份標(biāo)識信息;
[0007]對所述身份標(biāo)識信息進(jìn)行加密處理,以獲得所述應(yīng)用的加密信息;
[0008]向開放平臺(tái)發(fā)送所述加密信息和所述應(yīng)用的應(yīng)用標(biāo)識信息;
[0009]接收所述開放平臺(tái)發(fā)送的訪問令牌,用以調(diào)用所述開放平臺(tái)所提供的開放API,所述訪問令牌為所述開放平臺(tái)利用應(yīng)用注冊的身份標(biāo)識信息,對待驗(yàn)證的身份標(biāo)識信息進(jìn)行驗(yàn)證成功之后獲得的,所述應(yīng)用注冊的身份標(biāo)識信息為所述開放平臺(tái)根據(jù)所述應(yīng)用標(biāo)識信息獲得的,所述待驗(yàn)證的身份標(biāo)識信息為所述開放平臺(tái)對所述加密信息進(jìn)行解密處理獲得的。
[0010]如上所述的方面和任一可能的實(shí)現(xiàn)方式,進(jìn)一步提供一種實(shí)現(xiàn)方式,所述獲取應(yīng)用的身份標(biāo)識信息,包括:
[0011]調(diào)用所述應(yīng)用所提供的接口,以獲得所述身份標(biāo)識信息。
[0012]如上所述的方面和任一可能的實(shí)現(xiàn)方式,進(jìn)一步提供一種實(shí)現(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]如上所述的方面和任一可能的實(shí)現(xiàn)方式,進(jìn)一步提供一種實(shí)現(xiàn)方式,所述身份標(biāo)識信息包括包名和包簽名中的至少一項(xiàng)。
[0015]如上所述的方面和任一可能的實(shí)現(xiàn)方式,進(jìn)一步提供一種實(shí)現(xiàn)方式,所述對所述身份標(biāo)識信息進(jìn)行加密處理,以獲得所述應(yīng)用的加密信息之前,還包括:
[0016]獲取當(dāng)前的網(wǎng)絡(luò)時(shí)間戳;
[0017]所述對所述身份標(biāo)識信息進(jìn)行加密處理,以獲得所述應(yīng)用的加密信息,包括:
[0018]對所述身份標(biāo)識信息和所述網(wǎng)絡(luò)時(shí)間戳進(jìn)行加密處理,以獲得所述加密信息;
[0019]所述向開放平臺(tái)發(fā)送所述加密信息和所述應(yīng)用的應(yīng)用標(biāo)識信息,包括:
[0020]向所述開放平臺(tái)發(fā)送所述應(yīng)用的應(yīng)用標(biāo)識信息、所述網(wǎng)絡(luò)時(shí)間戳和所述加密信息;
[0021]所述應(yīng)用注冊的身份標(biāo)識信息具體為所述開放平臺(tái)根據(jù)所述網(wǎng)絡(luò)時(shí)間戳和所述應(yīng)用標(biāo)識信息獲得的,所述網(wǎng)絡(luò)時(shí)間戳和所述待驗(yàn)證的身份標(biāo)識信息為所述開放平臺(tái)對所述加密信息進(jìn)行解密處理獲得的。
[0022]本發(fā)明的另一方面,提供一種開放平臺(tái)的調(diào)用裝置,包括:
[0023]獲取單元,用于獲取應(yīng)用的身份標(biāo)識信息;
[0024]加密單元,用于對所述身份標(biāo)識信息進(jìn)行加密處理,以獲得所述應(yīng)用的加密信息;
[0025]發(fā)送單元,用于向開放平臺(tái)發(fā)送所述加密信息和所述應(yīng)用的應(yīng)用標(biāo)識信息;
[0026]接收單元,用于接收所述開放平臺(tái)發(fā)送的訪問令牌,用以調(diào)用所述開放平臺(tái)所提供的開放API,所述訪問令牌為所述開放平臺(tái)利用應(yīng)用注冊的身份標(biāo)識信息,對待驗(yàn)證的身份標(biāo)識信息進(jìn)行驗(yàn)證成功之后獲得的,所述應(yīng)用注冊的身份標(biāo)識信息為所述開放平臺(tái)根據(jù)所述應(yīng)用標(biāo)識信息獲得的,所述待驗(yàn)證的身份標(biāo)識信息為所述開放平臺(tái)對所述加密信息進(jìn)行解密處理獲得的。
[0027]如上所述的方面和任一可能的實(shí)現(xiàn)方式,進(jìn)一步提供一種實(shí)現(xiàn)方式,所述獲取單元,具體用于
[0028]調(diào)用所述應(yīng)用所提供的接口,以獲得所述身份標(biāo)識信息。
[0029]如上所述的方面和任一可能的實(shí)現(xiàn)方式,進(jìn)一步提供一種實(shí)現(xiàn)方式,所述獲取單元,具體用于
[0030]調(diào)用所述應(yīng)用的Java語言庫接口 ;采用JNI技術(shù),調(diào)用所述應(yīng)用的C語言庫接口或C++語言庫接口,以調(diào)用所述操作系統(tǒng)所提供的接口,以獲得所述身份標(biāo)識信息。
[0031]如上所述的方面和任一可能的實(shí)現(xiàn)方式,進(jìn)一步提供一種實(shí)現(xiàn)方式,所述身份標(biāo)識信息包括包名和包簽名中的至少一項(xiàng)。
[0032]如上所述的方面和任一可能的實(shí)現(xiàn)方式,進(jìn)一步提供一種實(shí)現(xiàn)方式,
[0033]所述獲取單元,還用于
[0034]獲取當(dāng)前的網(wǎng)絡(luò)時(shí)間戳;
[0035]所述加密單元,具體用于
[0036]對所述身份標(biāo)識信息和所述網(wǎng)絡(luò)時(shí)間戳進(jìn)行加密處理,以獲得所述加密信息;
[0037]所述發(fā)送單元,具體用于
[0038]向所述開放平臺(tái)發(fā)送所述應(yīng)用的應(yīng)用標(biāo)識信息、所述網(wǎng)絡(luò)時(shí)間戳和所述加密信息;
[0039]所述應(yīng)用注冊的身份標(biāo)識信息具體為所述開放平臺(tái)根據(jù)所述網(wǎng)絡(luò)時(shí)間戳和所述應(yīng)用標(biāo)識信息獲得的,所述網(wǎng)絡(luò)時(shí)間戳和所述待驗(yàn)證的身份標(biāo)識信息為所述開放平臺(tái)對所述加密信息進(jìn)行解密處理獲得的。
[0040]由上述技術(shù)方案可知,本發(fā)明實(shí)施例通過獲取應(yīng)用的身份標(biāo)識信息,進(jìn)而對所述身份標(biāo)識信息進(jìn)行加密處理,以獲得所述應(yīng)用的加密信息,并向開放平臺(tái)發(fā)送所述加密信息和所述應(yīng)用的應(yīng)用標(biāo)識信息,使得能夠接收所述開放平臺(tái)發(fā)送的訪問令牌,用以調(diào)用所述開放平臺(tái)所提供的開放API,由于沒有傳輸明文的驗(yàn)證參數(shù),從而提高了安全平臺(tái)的調(diào)用的安全性。
[0041]另外,采用本發(fā)明提供的技術(shù)方案,由于沒有傳輸明文的密鑰信息,能夠避免由于驗(yàn)證參數(shù)泄露而導(dǎo)致的安全問題,能夠進(jìn)一步提高安全平臺(tái)的調(diào)用的安全性。
[0042]另外,采用本發(fā)明提供的技術(shù)方案,應(yīng)用和應(yīng)用所對應(yīng)的服務(wù)器無需存儲(chǔ)密鑰信息,能夠避免由于驗(yàn)證參數(shù)泄露而導(dǎo)致的安全問題,能夠進(jìn)一步提高安全平臺(tái)的調(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)致的安全問題,能夠進(jìn)一步提高安全平臺(tái)的調(diào)用的安全性。
[0044]另外,采用本發(fā)明提供的技術(shù)方案,由于利用C語言庫接口或C++語言庫接口,實(shí)現(xiàn)加密處理所需要的對象即應(yīng)用的身份標(biāo)識信息,的獲取,攻擊者想要完全破解的難度相當(dāng)大,能夠進(jìn)一步提高安全平臺(tái)的調(diào)用的安全性。
[0045]另外,采用本發(fā)明提供的技術(shù)方案,由于除了加密信息和應(yīng)用的應(yīng)用標(biāo)識信息之夕卜,還進(jìn)一步將當(dāng)前的網(wǎng)絡(luò)時(shí)間戳作為驗(yàn)證參數(shù),發(fā)送給開放平臺(tái),以共同參與開放平臺(tái)對加密信息的驗(yàn)證操作,使得攻擊者無法通過重放驗(yàn)證參數(shù)來通過驗(yàn)證,能夠避免由于攻擊者利用重放驗(yàn)證參數(shù)而導(dǎo)致的安全問題,能夠進(jìn)一步提高安全平臺(tái)的調(diào)用的安全性。
【【專利附圖】
【附圖說明】】
[0046]為了更清楚地說明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0047]圖1為本發(fā)明一實(shí)施例提供的開放平臺(tái)的調(diào)用方法的流程示意圖;
[0048]圖2為本發(fā)明另一實(shí)施例提供的開放平臺(tái)的調(diào)用方法的流程示意圖;
[0049]圖3為本發(fā)明另一實(shí)施例提供的開放平臺(tái)的調(diào)用裝置的結(jié)構(gòu)示意圖。
【【具體實(shí)施方式】】
[0050]為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的全部其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0051]需要說明的是,本發(fā)明實(shí)施例中所涉及的終端可以包括但不限于手機(jī)、個(gè)人數(shù)字助理(Personal Digital Assistant, PDA)、無線手持裝置、無線上網(wǎng)本、個(gè)人電腦、便攜電腦、平板電腦、MP3播放器、MP4播放器、可穿戴設(shè)備(例如,智能眼鏡、智能手表、智能手環(huán)坐、坐寸/ 寸O
[0052]另外,本文中術(shù)語“和/或”,僅僅是一種描述關(guān)聯(lián)對象的關(guān)聯(lián)關(guān)系,表示可以存在三種關(guān)系,例如,A和/或B,可以表示:單獨(dú)存在A,同時(shí)存在A和B,單獨(dú)存在B這三種情況。另外,本文中字符“/”,一般表示前后關(guān)聯(lián)對象是一種“或”的關(guān)系。
[0053]圖1為本發(fā)明一實(shí)施例提供的開放平臺(tái)的調(diào)用方法的流程示意圖,如圖1所示。
[0054]101、獲取應(yīng)用的身份標(biāo)識信息。
[0055]其中,應(yīng)用,即第三方應(yīng)用,是指運(yùn)行在裝載操作系統(tǒng)的終端上的應(yīng)用程序,可以為安卓(Android)應(yīng)用,或者還可以為1S應(yīng)用,本實(shí)施例對此不進(jìn)行特別限定。安卓(Android)應(yīng)用,是運(yùn)行在裝載安卓操作系統(tǒng)的終端上的應(yīng)用程序。1S應(yīng)用,是運(yùn)行在裝載1S操作系統(tǒng)的終端上的應(yīng)用程序。
[0056]102、對所述身份標(biāo)識信息進(jìn)行加密處理,以獲得所述應(yīng)用的加密信息。
[0057]103、向開放平臺(tái)發(fā)送所述加密信息和所述應(yīng)用的應(yīng)用標(biāo)識信息。
[0058]104、接收所述開放平臺(tái)發(fā)送的訪問令牌,用以調(diào)用所述開放平臺(tái)所提供的開放API,所述訪問令牌為所述開放平臺(tái)利用應(yīng)用注冊的身份標(biāo)識信息,對待驗(yàn)證的身份標(biāo)識信息進(jìn)行驗(yàn)證成功之后獲得的,所述應(yīng)用注冊的身份標(biāo)識信息為所述開放平臺(tái)根據(jù)所述應(yīng)用標(biāo)識信息獲得的,所述待驗(yàn)證的身份標(biāo)識信息為所述開放平臺(tái)對所述加密信息進(jìn)行解密處理獲得的。
[0059]訪問令牌(token)可以為一個(gè)唯一的字符串,用于標(biāo)識應(yīng)用。一旦身份驗(yàn)證通過之后,應(yīng)用在后續(xù)與開放平臺(tái)的通信過程中,需要攜帶這個(gè)訪問令牌,用于表明其身份。
[0060]需要說明的是,101?104的執(zhí)行主體可以為位于本地終端的應(yīng)用,或者還可以為位于本地終端的應(yīng)用中的插件或軟件開發(fā)工具包(Software Development Kit, SDK)等功能單元,這些功能單元具體可以由一系列編程語言代碼和編程語言代碼所實(shí)現(xiàn)的庫(例如,LIB庫等)組成,本實(shí)施例對此不進(jìn)行特別限定。
[0061]可以理解的是,所述應(yīng)用可以是安裝在終端上的應(yīng)用程序(nativeApp),或者還可以是終端上的瀏覽器的一個(gè)網(wǎng)頁程序(webApp),本實(shí)施例對此不進(jìn)行限定。
[0062]這樣,通過獲取應(yīng)用的身份標(biāo)識信息,進(jìn)而對所述身份標(biāo)識信息進(jìn)行加密處理,以獲得所述應(yīng)用的加密信息,并向開放平臺(tái)發(fā)送所述加密信息和所述應(yīng)用的應(yīng)用標(biāo)識信息,使得能夠接收所述開放平臺(tái)發(fā)送的訪問令牌,用以調(diào)用所述開放平臺(tái)所提供的開放API,由于沒有傳輸明文的驗(yàn)證參數(shù),從而提高了安全平臺(tái)的調(diào)用的安全性。
[0063]可選地,在本實(shí)施例的一個(gè)可能的實(shí)現(xiàn)方式中,在101之前,應(yīng)用具體可以與開放平臺(tái)進(jìn)行交互,以執(zhí)行注冊操作。在執(zhí)行注冊操作的過程中,應(yīng)用具體可以向開放平臺(tái)發(fā)送應(yīng)用的身份標(biāo)識信息。完成注冊操作之后,應(yīng)用獲得一個(gè)由開放平臺(tái)為應(yīng)用分配的應(yīng)用標(biāo)識信息例如,應(yīng)用ID等,用以在開放平臺(tái)上唯一標(biāo)識該應(yīng)用。
[0064]其中,所述身份標(biāo)識信息可以包括但不限于包名和包簽名中的至少一項(xiàng)。
[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”。一個(gè)安卓應(yīng)用的代碼想要在裝載安卓操作系統(tǒng)的設(shè)備上運(yùn)行,必須先進(jìn)行編譯,然后被打包成為一個(gè)被安卓操作系統(tǒng)所能識別的文件才可以被運(yùn)行,而這種能被安卓操作系統(tǒng)識別并運(yùn)行的文件格式便是APK”。一個(gè)APK文件內(nèi)包含清單文件(AndroidManifest.xml) > META-1NFO 文件夾、被編譯的代碼文件(classes, dex) > res 文件夾和資源文件(resources, arse)。其中,APK文件的詳細(xì)描述可以參見現(xiàn)有技術(shù)中的相關(guān)內(nèi)容,此處不再贅述。APK文件實(shí)際上是一個(gè)ZIP壓縮包。其中,APK文件的名稱,可以存儲(chǔ)在AndroidManifest.xml中。APK文件的簽名信息,可以存儲(chǔ)在META-1NF目錄即META-1NF文件夾下。
[0067]可選地,在本實(shí)施例的一個(gè)可能的實(shí)現(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)致的安全問題,能夠進(jìn)一步提高安全平臺(tái)的調(diào)用的安全性。
[0070]此外,由于利用C語言庫接口或C++語言庫接口,實(shí)現(xiàn)加密處理所需要的對象即應(yīng)用的身份標(biāo)識信息,的獲取,攻擊者想要完全破解的難度相當(dāng)大,能夠進(jìn)一步提高安全平臺(tái)的調(diào)用的安全性。
[0071]可選地,在本實(shí)施例的一個(gè)可能的實(shí)現(xiàn)方式中,在102中,具體可以采用現(xiàn)有技術(shù)中的任何加密算法,對所述身份標(biāo)識信息進(jìn)行加密處理。例如,數(shù)據(jù)加密算法(DataEncrypt1n Standard, DES)、RC算法等對稱加密算法或其他非對稱加密算法,對所述身份標(biāo)識信息進(jìn)行加密處理,本實(shí)施例對此不進(jìn)行特別限定。
[0072]本實(shí)施例中,開放平臺(tái)接收到所述加密信息之后,則可以對所述加密信息進(jìn)行解密處理,以獲得待驗(yàn)證的身份標(biāo)識信息,以及接收到所述應(yīng)用標(biāo)識信息之后,則可以根據(jù)所述應(yīng)用標(biāo)識信息,獲得所述應(yīng)用注冊的身份標(biāo)識信息,進(jìn)而利用所述應(yīng)用注冊的身份標(biāo)識信息,對所述待驗(yàn)證的身份標(biāo)識信息進(jìn)行驗(yàn)證。若所述待驗(yàn)證的身份標(biāo)識信息與所述應(yīng)用注冊的身份標(biāo)識信息一致,則說明驗(yàn)證成功;若所述待驗(yàn)證的身份標(biāo)識信息與所述應(yīng)用注冊的身份標(biāo)識信息不一致,則說明驗(yàn)證失敗。
[0073]可以理解的是,開放平臺(tái)對所述加密信息進(jìn)行的解密處理,應(yīng)該與102中所執(zhí)行的加密處理互為逆運(yùn)算,其所使用的密鑰信息也應(yīng)該是對應(yīng)的。
[0074]對于對稱加密算法來說,“對應(yīng)”的含義為,加密處理所使用的密鑰信息與解密處理所使用的密鑰信息是一致的;對于非對稱加密算法來說,“對應(yīng)”的含義為,加密處理所使用的密鑰信息與解密處理所使用的密鑰信息互為一個(gè)密鑰對。
[0075]可選地,在本實(shí)施例的一個(gè)可能的實(shí)現(xiàn)方式中,在102之前,還可以進(jìn)一步獲取當(dāng)前的網(wǎng)絡(luò)時(shí)間戳。
[0076]之所以獲取當(dāng)前的網(wǎng)絡(luò)時(shí)間戳,原因在于,很多用戶都會(huì)修改終端上的系統(tǒng)時(shí)間戳,系統(tǒng)時(shí)間戳與真正的網(wǎng)絡(luò)時(shí)間戳一般都是不一致的,甚至相差會(huì)很大,因此,終端上的系統(tǒng)時(shí)間戳并不能準(zhǔn)確地反映當(dāng)前的時(shí)間信息,只有網(wǎng)絡(luò)時(shí)間戳才能準(zhǔn)確地反映當(dāng)前的時(shí)間信息。
[0077]需要說明的是,執(zhí)行獲取應(yīng)用的身份標(biāo)識信息的步驟與執(zhí)行獲取當(dāng)前的網(wǎng)絡(luò)時(shí)間戳的步驟,沒有固定的執(zhí)行順序,可以先執(zhí)行獲取應(yīng)用的身份標(biāo)識信息的步驟,再執(zhí)行獲取當(dāng)前的網(wǎng)絡(luò)時(shí)間戳的步驟,或者還可以執(zhí)行獲取應(yīng)用的身份標(biāo)識信息的步驟的同時(shí),執(zhí)行獲取當(dāng)前的網(wǎng)絡(luò)時(shí)間戳的步驟,或者還可以先執(zhí)行獲取當(dāng)前的網(wǎng)絡(luò)時(shí)間戳的步驟,再執(zhí)行獲取應(yīng)用的身份標(biāo)識信息的步驟,本實(shí)施例對此不進(jìn)行特別限定。
[0078]相應(yīng)地,在102中,具體可以對所述身份標(biāo)識信息和所述網(wǎng)絡(luò)時(shí)間戳進(jìn)行加密處理,以獲得所述加密信息。在103中,則可以向所述開放平臺(tái)發(fā)送所述應(yīng)用的應(yīng)用標(biāo)識信息、所述網(wǎng)絡(luò)時(shí)間戳和所述加密信息,以供所述開放平臺(tái)對所述加密信息進(jìn)行解密處理,以獲得所述網(wǎng)絡(luò)時(shí)間戳和待驗(yàn)證的身份標(biāo)識信息,根據(jù)所述網(wǎng)絡(luò)時(shí)間戳和所述應(yīng)用標(biāo)識信息,獲得所述應(yīng)用注冊的身份標(biāo)識信息,以及利用所述應(yīng)用注冊的身份標(biāo)識信息,對所述待驗(yàn)證的身份標(biāo)識信息進(jìn)行驗(yàn)證。
[0079]具體地,開放平臺(tái)接收到所述應(yīng)用的應(yīng)用標(biāo)識信息、所述網(wǎng)絡(luò)時(shí)間戳和所述加密信息之后,首先可以對所述加密信息進(jìn)行解密處理,以獲得所述網(wǎng)絡(luò)時(shí)間戳和待驗(yàn)證的身份標(biāo)識信息。然后,根據(jù)所述網(wǎng)絡(luò)時(shí)間戳和當(dāng)前的系統(tǒng)時(shí)間戳進(jìn)行判斷,以確定當(dāng)前所接收到的這些驗(yàn)證參數(shù)(即所述應(yīng)用的應(yīng)用標(biāo)識信息、所述網(wǎng)絡(luò)時(shí)間戳和所述加密信息)是否為攻擊者的重放攻擊。若所述網(wǎng)絡(luò)時(shí)間戳與當(dāng)前的系統(tǒng)時(shí)間戳之間的差值小于或等于預(yù)先設(shè)置的時(shí)間閾值例如,5分鐘,則可以確定當(dāng)前所接收到的這些驗(yàn)證參數(shù)不是攻擊者的重放攻擊,是一個(gè)正常的消息,可以繼續(xù)執(zhí)行后續(xù)操作即執(zhí)行根據(jù)所述應(yīng)用標(biāo)識信息,獲得所述應(yīng)用注冊的身份標(biāo)識信息;若所述網(wǎng)絡(luò)時(shí)間戳與當(dāng)前的系統(tǒng)時(shí)間戳之間的差值大于該時(shí)間閾值,則可以確定當(dāng)前所接收到的這些驗(yàn)證參數(shù)是攻擊者的重放攻擊,是一個(gè)異常的消息,不再執(zhí)行后續(xù)操作即不再執(zhí)行根據(jù)所述應(yīng)用標(biāo)識信息,獲得所述應(yīng)用注冊的身份標(biāo)識信息,進(jìn)一步還可以直接返回錯(cuò)誤代碼。
[0080]之所以利用當(dāng)前的系統(tǒng)時(shí)間戳,原因在于,大部分開放平臺(tái)都能夠保證其上的系統(tǒng)時(shí)間戳與真正的網(wǎng)絡(luò)時(shí)間戳是一致的,因此,開放平臺(tái)的系統(tǒng)時(shí)間戳已經(jīng)能夠準(zhǔn)確地反映當(dāng)前的時(shí)間信息,無需再去獲取網(wǎng)絡(luò)時(shí)間戳。
[0081]重放攻擊(Iteplay Attacks)又稱重播攻擊、回放攻擊或新鮮性攻擊(FreshnessAttacks),是指攻擊者發(fā)送一個(gè)目的主機(jī)已接收過的包,來達(dá)到欺騙系統(tǒng)的目的,主要用于身份認(rèn)證過程,破壞認(rèn)證的正確性。它是一種攻擊類型,這種攻擊會(huì)不斷惡意或欺詐性地重復(fù)一個(gè)有效的數(shù)據(jù)傳輸,重放攻擊可以由發(fā)起者,也可以由攔截并重發(fā)該數(shù)據(jù)的敵方進(jìn)行。攻擊者利用網(wǎng)絡(luò)監(jiān)聽或者其他方式盜取認(rèn)證憑據(jù)例如,本發(fā)明中的驗(yàn)證參數(shù)等,之后再把它重新發(fā)給認(rèn)證服務(wù)器例如,本發(fā)明中的開放平臺(tái)等。
[0082]從這個(gè)解釋上理解,加密處理可以有效防止會(huì)話劫持,但是卻防止不了重放攻擊。重放攻擊任何網(wǎng)絡(luò)通信過程中都可能發(fā)生。
[0083]這樣,由于除了加密信息和應(yīng)用的應(yīng)用標(biāo)識信息之外,還進(jìn)一步將當(dāng)前的網(wǎng)絡(luò)時(shí)間戳作為驗(yàn)證參數(shù),發(fā)送給開放平臺(tái),以共同參與開放平臺(tái)對加密信息的驗(yàn)證操作,使得攻擊者無法通過重放驗(yàn)證參數(shù)來通過驗(yàn)證,能夠避免由于攻擊者利用重放驗(yàn)證參數(shù)而導(dǎo)致的安全問題,能夠進(jìn)一步提高安全平臺(tái)的調(diào)用的安全性。
[0084]下面將以本地終端的安卓應(yīng)用A,以及位于安卓應(yīng)用A中的SDK為例,詳細(xì)說明本發(fā)明所提供的技術(shù)方案。本實(shí)施例所提供的SDK,具體可以由一系列Java語言代碼和C語言/C++語言代碼所實(shí)現(xiàn)的LIB庫組成,該C語言/C++語言代碼所實(shí)現(xiàn)的LIB庫中存儲(chǔ)C語目/C++語目庫接口。如圖2所不。
[0085]201、安卓應(yīng)用A向開放平臺(tái)發(fā)送安卓應(yīng)用A的包名和包簽名,以執(zhí)行注冊操作。
[0086]202、開放平臺(tái)為安卓應(yīng)用A分配應(yīng)用ID。
[0087]203、開放平臺(tái)向安卓應(yīng)用A發(fā)送所分配的應(yīng)用ID。
[0088]204、安卓應(yīng)用A獲取當(dāng)前的網(wǎng)絡(luò)時(shí)間戳。
[0089]205、安卓應(yīng)用A調(diào)用SDK提供的用于獲取簽名信息的Java語言庫接口,將所述網(wǎng)絡(luò)時(shí)間戳傳入C語言/C++語言庫接口,以調(diào)用操作系統(tǒng)所提供的接口,以獲得該安卓應(yīng)用A的包名和包簽名。
[0090]SDK提供的用于獲取簽名信息的Java語言庫接口被調(diào)用之后,可以利用預(yù)先設(shè)置的加密密鑰,對安卓應(yīng)用A的包名和包簽名、以及所述網(wǎng)絡(luò)時(shí)間戳進(jìn)行加密處理,以獲得安卓應(yīng)用A的加密信息。
[0091]206、安卓應(yīng)用A向開放平臺(tái)發(fā)送安卓應(yīng)用A的應(yīng)用ID、所述加密信息和所述網(wǎng)絡(luò)時(shí)間戳。
[0092]207、開放平臺(tái)利用預(yù)先設(shè)置的解密密鑰(與獲得加密信息時(shí)所使用的加密密鑰為對應(yīng)的),對所述加密信息進(jìn)行解密處理,以獲得所述網(wǎng)絡(luò)時(shí)間戳和待驗(yàn)證的安卓應(yīng)用A的包名和包簽名。
[0093]208、開放平臺(tái)根據(jù)所述網(wǎng)絡(luò)時(shí)間戳和當(dāng)前的系統(tǒng)時(shí)間戳進(jìn)行判斷,以確定當(dāng)前所接收到的驗(yàn)證參數(shù)(即安卓應(yīng)用A的應(yīng)用ID、所述加密信息和所述網(wǎng)絡(luò)時(shí)間戳)是否為攻擊者的重放攻擊,若不是攻擊者的重放攻擊,則執(zhí)行209,否則,結(jié)束流程。
[0094]209、開放平臺(tái)根據(jù)安卓應(yīng)用A的應(yīng)用ID,獲得安卓應(yīng)用A注冊的安卓應(yīng)用A的包名和包簽名。
[0095]210、開放平臺(tái)利用安卓應(yīng)用A注冊的安卓應(yīng)用A的包名和包簽名,對待驗(yàn)證的安卓應(yīng)用A的包名和包簽名進(jìn)行驗(yàn)證,若驗(yàn)證成功,則執(zhí)行211,否則,結(jié)束流程。
[0096]具體地,若待驗(yàn)證的安卓應(yīng)用A的包名和包簽名與安卓應(yīng)用A注冊的安卓應(yīng)用A的包名和包簽名一致,則說明驗(yàn)證成功;若待驗(yàn)證的安卓應(yīng)用A的包名和包簽名與安卓應(yīng)用A注冊的安卓應(yīng)用A的包名和包簽名不一致,則說明驗(yàn)證失敗
[0097]211、開放平臺(tái)根據(jù)安卓應(yīng)用A的應(yīng)用ID,以及安卓應(yīng)用A的其他相關(guān)信息,生成訪問令牌。
[0098]生成訪問令牌的詳細(xì)描述具體可以參見現(xiàn)有技術(shù)中的相關(guān)內(nèi)容,此處不再贅述。
[0099]212、開放平臺(tái)向安卓應(yīng)用A發(fā)送所述訪問令牌。
[0100]至此,安卓應(yīng)用A獲得開放平臺(tái)所提供的訪問令牌,在安卓應(yīng)用A每次調(diào)用開放平臺(tái)所提供的開放API時(shí),都需要攜帶這個(gè)訪問令牌,以供開放平臺(tái)能夠根據(jù)該訪問令牌,向安卓應(yīng)用A提供相應(yīng)的訪問權(quán)限。
[0101]本實(shí)施例中,通過獲取應(yīng)用的身份標(biāo)識信息,進(jìn)而對所述身份標(biāo)識信息進(jìn)行加密處理,以獲得所述應(yīng)用的加密信息,并向開放平臺(tái)發(fā)送所述加密信息和所述應(yīng)用的應(yīng)用標(biāo)識信息,使得能夠接收所述開放平臺(tái)發(fā)送的訪問令牌,用以調(diào)用所述開放平臺(tái)所提供的開放API,由于沒有傳輸明文的驗(yàn)證參數(shù),從而提高了安全平臺(tái)的調(diào)用的安全性。
[0102]另外,采用本發(fā)明提供的技術(shù)方案,由于沒有傳輸明文的密鑰信息,能夠避免由于驗(yàn)證參數(shù)泄露而導(dǎo)致的安全問題,能夠進(jìn)一步提高安全平臺(tái)的調(diào)用的安全性。
[0103]另外,采用本發(fā)明提供的技術(shù)方案,應(yīng)用和應(yīng)用所對應(yīng)的服務(wù)器無需存儲(chǔ)密鑰信息,能夠避免由于驗(yàn)證參數(shù)泄露而導(dǎo)致的安全問題,能夠進(jìn)一步提高安全平臺(tái)的調(diào)用的安全性。
[0104]另外,采用本發(fā)明提供的技術(shù)方案,通過利用C語言庫接口或C++語言庫接口,直接調(diào)用操作系統(tǒng)所提供的接口,來獲得應(yīng)用的身份標(biāo)識信息,使得惡意的應(yīng)用無法偽造身份標(biāo)識信息,能夠避免由于惡意的應(yīng)用偽造身份標(biāo)識信息而導(dǎo)致的安全問題,能夠進(jìn)一步提高安全平臺(tái)的調(diào)用的安全性。
[0105]另外,采用本發(fā)明提供的技術(shù)方案,由于利用C語言庫接口或C++語言庫接口,實(shí)現(xiàn)加密處理所需要的對象即應(yīng)用的身份標(biāo)識信息,的獲取,攻擊者想要完全破解的難度相當(dāng)大,能夠進(jìn)一步提高安全平臺(tái)的調(diào)用的安全性。
[0106]另外,采用本發(fā)明提供的技術(shù)方案,由于除了加密信息和應(yīng)用的應(yīng)用標(biāo)識信息之夕卜,還進(jìn)一步將當(dāng)前的網(wǎng)絡(luò)時(shí)間戳作為驗(yàn)證參數(shù),發(fā)送給開放平臺(tái),以共同參與開放平臺(tái)對加密信息的驗(yàn)證操作,使得攻擊者無法通過重放驗(yàn)證參數(shù)來通過驗(yàn)證,能夠避免由于攻擊者利用重放驗(yàn)證參數(shù)而導(dǎo)致的安全問題,能夠進(jìn)一步提高安全平臺(tái)的調(diào)用的安全性。
[0107]需要說明的是,對于前述的各方法實(shí)施例,為了簡單描述,故將其都表述為一系列的動(dòng)作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本發(fā)明并不受所描述的動(dòng)作順序的限制,因?yàn)橐罁?jù)本發(fā)明,某些步驟可以采用其他順序或者同時(shí)進(jìn)行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說明書中所描述的實(shí)施例均屬于優(yōu)選實(shí)施例,所涉及的動(dòng)作和模塊并不一定是本發(fā)明所必須的。
[0108]在上述實(shí)施例中,對各個(gè)實(shí)施例的描述都各有側(cè)重,某個(gè)實(shí)施例中沒有詳述的部分,可以參見其他實(shí)施例的相關(guān)描述。
[0109]圖3為本發(fā)明另一實(shí)施例提供的開放平臺(tái)的調(diào)用裝置的結(jié)構(gòu)示意圖,如圖3所示。本實(shí)施例的開放平臺(tái)的調(diào)用裝置可以包括獲取單元31、加密單元32、發(fā)送單元33和接收單元34。其中,獲取單元31,用于獲取應(yīng)用的身份標(biāo)識信息;加密單元32,用于對所述身份標(biāo)識信息進(jìn)行加密處理,以獲得所述應(yīng)用的加密信息;發(fā)送單元33,用于向開放平臺(tái)發(fā)送所述加密信息和所述應(yīng)用的應(yīng)用標(biāo)識信息;接收單元34,用于接收所述開放平臺(tái)發(fā)送的訪問令牌,用以調(diào)用所述開放平臺(tái)所提供的開放API,所述訪問令牌為所述開放平臺(tái)利用應(yīng)用注冊的身份標(biāo)識信息,對待驗(yàn)證的身份標(biāo)識信息進(jìn)行驗(yàn)證成功之后獲得的,所述應(yīng)用注冊的身份標(biāo)識信息為所述開放平臺(tái)根據(jù)所述應(yīng)用標(biāo)識信息獲得的,所述待驗(yàn)證的身份標(biāo)識信息為所述開放平臺(tái)對所述加密信息進(jìn)行解密處理獲得的。
[0110]需要說明的是,本實(shí)施例所提供的開放平臺(tái)的調(diào)用裝置可以為位于本地終端的應(yīng)用,或者還可以為位于本地終端的應(yīng)用中的插件或軟件開發(fā)工具包(SoftwareDevelopment Kit, SDK)等功能單元,這些功能單元具體可以由一系列編程語言代碼和編程語言代碼所實(shí)現(xiàn)的庫(例如,LIB庫等)組成,本實(shí)施例對此不進(jìn)行特別限定。
[0111]可以理解的是,所述應(yīng)用可以是安裝在終端上的應(yīng)用程序(nativeApp),或者還可以是終端上的瀏覽器的一個(gè)網(wǎng)頁程序(webApp),本實(shí)施例對此不進(jìn)行限定。
[0112]其中,所述身份標(biāo)識信息可以包括但不限于包名和包簽名中的至少一項(xiàng),本實(shí)施例對此不進(jìn)行特別限定。
[0113]可選地,在本實(shí)施例的一個(gè)可能的實(shí)現(xiàn)方式中,所述獲取單元31,具體可以用于調(diào)用所述應(yīng)用所提供的接口,以獲得所述身份標(biāo)識信息。
[0114]具體地,所述獲取單元31,具體可以用于調(diào)用所述應(yīng)用的Java語言庫接口 ;采用JNI技術(shù),調(diào)用所述應(yīng)用的C語言庫接口或C++語言庫接口,以調(diào)用所述操作系統(tǒng)所提供的接口,以獲得所述身份標(biāo)識信息。
[0115]可選地,在本實(shí)施例的一個(gè)可能的實(shí)現(xiàn)方式中,所述獲取單元31,還可以進(jìn)一步用于獲取當(dāng)前的網(wǎng)絡(luò)時(shí)間戳。
[0116]相應(yīng)地,所述加密單元32,具體可以用于對所述身份標(biāo)識信息和所述網(wǎng)絡(luò)時(shí)間戳進(jìn)行加密處理,以獲得所述加密信息;所述發(fā)送單元33,具體可以用于向所述開放平臺(tái)發(fā)送所述應(yīng)用的應(yīng)用標(biāo)識信息、所述網(wǎng)絡(luò)時(shí)間戳和所述加密信息;所述應(yīng)用注冊的身份標(biāo)識信息具體為所述開放平臺(tái)根據(jù)所述網(wǎng)絡(luò)時(shí)間戳和所述應(yīng)用標(biāo)識信息獲得的,所述網(wǎng)絡(luò)時(shí)間戳和所述待驗(yàn)證的身份標(biāo)識信息為所述開放平臺(tái)對所述加密信息進(jìn)行解密處理獲得的。
[0117]需要說明的是,圖1對應(yīng)的實(shí)施例中方法,可以由本實(shí)施例提供的開放平臺(tái)的調(diào)用裝置實(shí)現(xiàn)。詳細(xì)描述可以參見圖1對應(yīng)的實(shí)施例中的相關(guān)內(nèi)容,此處不再贅述。
[0118]本實(shí)施例中,通過獲取單元獲取應(yīng)用的身份標(biāo)識信息,進(jìn)而由加密單元對所述身份標(biāo)識信息進(jìn)行加密處理,以獲得所述應(yīng)用的加密信息,并由發(fā)送單元向開放平臺(tái)發(fā)送所述加密信息和所述應(yīng)用的應(yīng)用標(biāo)識信息,使得接收單元能夠接收所述開放平臺(tái)發(fā)送的訪問令牌,用以調(diào)用所述開放平臺(tái)所提供的開放API,由于沒有傳輸明文的驗(yàn)證參數(shù),從而提高了安全平臺(tái)的調(diào)用的安全性。
[0119]另外,采用本發(fā)明提供的技術(shù)方案,由于沒有傳輸明文的密鑰信息,能夠避免由于驗(yàn)證參數(shù)泄露而導(dǎo)致的安全問題,能夠進(jìn)一步提高安全平臺(tái)的調(diào)用的安全性。
[0120]另外,采用本發(fā)明提供的技術(shù)方案,應(yīng)用和應(yīng)用所對應(yīng)的服務(wù)器無需存儲(chǔ)密鑰信息,能夠避免由于驗(yàn)證參數(shù)泄露而導(dǎo)致的安全問題,能夠進(jìn)一步提高安全平臺(tái)的調(diào)用的安全性。
[0121]另外,采用本發(fā)明提供的技術(shù)方案,通過利用C語言庫接口或C++語言庫接口,直接調(diào)用操作系統(tǒng)所提供的接口,來獲得應(yīng)用的身份標(biāo)識信息,使得惡意的應(yīng)用無法偽造身份標(biāo)識信息,能夠避免由于惡意的應(yīng)用偽造身份標(biāo)識信息而導(dǎo)致的安全問題,能夠進(jìn)一步提高安全平臺(tái)的調(diào)用的安全性。
[0122]另外,采用本發(fā)明提供的技術(shù)方案,由于利用C語言庫接口或C++語言庫接口,實(shí)現(xiàn)加密處理所需要的對象即應(yīng)用的身份標(biāo)識信息,的獲取,攻擊者想要完全破解的難度相當(dāng)大,能夠進(jìn)一步提高安全平臺(tái)的調(diào)用的安全性。
[0123]另外,采用本發(fā)明提供的技術(shù)方案,由于除了加密信息和應(yīng)用的應(yīng)用標(biāo)識信息之夕卜,還進(jìn)一步將當(dāng)前的網(wǎng)絡(luò)時(shí)間戳作為驗(yàn)證參數(shù),發(fā)送給開放平臺(tái),以共同參與開放平臺(tái)對加密信息的驗(yàn)證操作,使得攻擊者無法通過重放驗(yàn)證參數(shù)來通過驗(yàn)證,能夠避免由于攻擊者利用重放驗(yàn)證參數(shù)而導(dǎo)致的安全問題,能夠進(jìn)一步提高安全平臺(tái)的調(diào)用的安全性。
[0124]所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡潔,上述描述的系統(tǒng),裝置和單元的具體工作過程,可以參考前述方法實(shí)施例中的對應(yīng)過程,在此不再贅述。
[0125]在本發(fā)明所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的系統(tǒng),裝置和方法,可以通過其它的方式實(shí)現(xiàn)。例如,以上所描述的裝置實(shí)施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)單元或組件可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機(jī)械或其它的形式。
[0126]所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上。可以根據(jù)實(shí)際的需要選擇其中的部分或者全部單元來實(shí)現(xiàn)本實(shí)施例方案的目的。
[0127]另外,在本發(fā)明各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理單元中,也可以是各個(gè)單元單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中。上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用硬件加軟件功能單元的形式實(shí)現(xiàn)。
[0128]上述以軟件功能單元的形式實(shí)現(xiàn)的集成的單元,可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中。上述軟件功能單元存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)裝置(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)裝置等)或處理器(processor)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述方法的部分步驟。而前述的存儲(chǔ)介質(zhì)包括:U盤、移動(dòng)硬盤、只讀存儲(chǔ)器(Read-Only Memory, ROM)、隨機(jī)存取存儲(chǔ)器(Random Access Memory, RAM)、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。
[0129]最后應(yīng)說明的是:以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述實(shí)施例對本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的精神和范圍。
【權(quán)利要求】
1.一種開放平臺(tái)的調(diào)用方法,其特征在于,包括: 獲取應(yīng)用的身份標(biāo)識信息; 對所述身份標(biāo)識信息進(jìn)行加密處理,以獲得所述應(yīng)用的加密信息; 向開放平臺(tái)發(fā)送所述加密信息和所述應(yīng)用的應(yīng)用標(biāo)識信息; 接收所述開放平臺(tái)發(fā)送的訪問令牌,用以調(diào)用所述開放平臺(tái)所提供的開放API,所述訪問令牌為所述開放平臺(tái)利用應(yīng)用注冊的身份標(biāo)識信息,對待驗(yàn)證的身份標(biāo)識信息進(jìn)行驗(yàn)證成功之后獲得的,所述應(yīng)用注冊的身份標(biāo)識信息為所述開放平臺(tái)根據(jù)所述應(yīng)用標(biāo)識信息獲得的,所述待驗(yàn)證的身份標(biāo)識信息為所述開放平臺(tái)對所述加密信息進(jìn)行解密處理獲得的。
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)識信息包括包名和包簽名中的至少一項(xiàng)。
5.根據(jù)權(quán)利要求1?4任一權(quán)利要求所述的方法,其特征在于,所述對所述身份標(biāo)識信息進(jìn)行加密處理,以獲得所述應(yīng)用的加密信息之前,還包括: 獲取當(dāng)前的網(wǎng)絡(luò)時(shí)間戳; 所述對所述身份標(biāo)識信息進(jìn)行加密處理,以獲得所述應(yīng)用的加密信息,包括: 對所述身份標(biāo)識信息和所述網(wǎng)絡(luò)時(shí)間戳進(jìn)行加密處理,以獲得所述加密信息; 所述向開放平臺(tái)發(fā)送所述加密信息和所述應(yīng)用的應(yīng)用標(biāo)識信息,包括: 向所述開放平臺(tái)發(fā)送所述應(yīng)用的應(yīng)用標(biāo)識信息、所述網(wǎng)絡(luò)時(shí)間戳和所述加密信息;所述應(yīng)用注冊的身份標(biāo)識信息具體為所述開放平臺(tái)根據(jù)所述網(wǎng)絡(luò)時(shí)間戳和所述應(yīng)用標(biāo)識信息獲得的,所述網(wǎng)絡(luò)時(shí)間戳和所述待驗(yàn)證的身份標(biāo)識信息為所述開放平臺(tái)對所述加密信息進(jìn)行解密處理獲得的。
6.一種開放平臺(tái)的調(diào)用裝置,其特征在于,包括: 獲取單元,用于獲取應(yīng)用的身份標(biāo)識信息; 加密單元,用于對所述身份標(biāo)識信息進(jìn)行加密處理,以獲得所述應(yīng)用的加密信息; 發(fā)送單元,用于向開放平臺(tái)發(fā)送所述加密信息和所述應(yīng)用的應(yīng)用標(biāo)識信息; 接收單元,用于接收所述開放平臺(tái)發(fā)送的訪問令牌,用以調(diào)用所述開放平臺(tái)所提供的開放API,所述訪問令牌為所述開放平臺(tái)利用應(yīng)用注冊的身份標(biāo)識信息,對待驗(yàn)證的身份標(biāo)識信息進(jìn)行驗(yàn)證成功之后獲得的,所述應(yīng)用注冊的身份標(biāo)識信息為所述開放平臺(tái)根據(jù)所述應(yīng)用標(biāo)識信息獲得的,所述待驗(yàn)證的身份標(biāo)識信息為所述開放平臺(tái)對所述加密信息進(jìn)行解密處理獲得的。
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)識信息包括包名和包簽名中的至少一項(xiàng)。
10.根據(jù)權(quán)利要求6?9任一權(quán)利要求所述的裝置,其特征在于, 所述獲取單元,還用于 獲取當(dāng)前的網(wǎng)絡(luò)時(shí)間戳; 所述加密單元,具體用于 對所述身份標(biāo)識信息和所述網(wǎng)絡(luò)時(shí)間戳進(jìn)行加密處理,以獲得所述加密信息; 所述發(fā)送單元,具體用于 向所述開放平臺(tái)發(fā)送所述應(yīng)用的應(yīng)用標(biāo)識信息、所述網(wǎng)絡(luò)時(shí)間戳和所述加密信息;所述應(yīng)用注冊的身份標(biāo)識信息具體為所述開放平臺(tái)根據(jù)所述網(wǎng)絡(luò)時(shí)間戳和所述應(yīng)用標(biāo)識信息獲得的,所述網(wǎng)絡(luò)時(shí)間戳和所述待驗(yàn)證的身份標(biāo)識信息為所述開放平臺(tái)對所述加密信息進(jìn)行解密處理獲得的。
【文檔編號】G06F9/44GK104199657SQ201410428908
【公開日】2014年12月10日 申請日期:2014年8月27日 優(yōu)先權(quán)日:2014年8月27日
【發(fā)明者】朱建庭, 鄭偉德, 張弛 申請人:百度在線網(wǎng)絡(luò)技術(shù)(北京)有限公司