本發(fā)明實(shí)施例涉及計(jì)算機(jī)技術(shù)領(lǐng)域,尤其涉及一種訪(fǎng)問(wèn)控制方法及裝置。
背景技術(shù):
目前,在終端設(shè)備(例如手機(jī)、電腦等設(shè)備)中可以安裝應(yīng)用程序,終端設(shè)備可以通過(guò)應(yīng)用程序與應(yīng)用程序?qū)?yīng)的服務(wù)器交互,以獲取服務(wù)器提供的數(shù)據(jù)。
為了保證終端設(shè)備從服務(wù)器中獲取數(shù)據(jù)的安全性,終端設(shè)備通常對(duì)服務(wù)器進(jìn)行https訪(fǎng)問(wèn)。在https訪(fǎng)問(wèn)過(guò)程中,服務(wù)器向終端設(shè)備發(fā)送證書(shū),終端設(shè)備對(duì)證書(shū)進(jìn)行驗(yàn)證,在終端設(shè)備對(duì)證書(shū)驗(yàn)證通過(guò)后,終端設(shè)備和服務(wù)器再進(jìn)行通信。目前,通常在終端設(shè)備中預(yù)存一個(gè)證書(shū)庫(kù),該證書(shū)庫(kù)中包括多種權(quán)威機(jī)構(gòu)頒發(fā)的權(quán)威證書(shū),以使終端設(shè)備可以通過(guò)該證書(shū)庫(kù)中的證書(shū),對(duì)服務(wù)器發(fā)送的證書(shū)進(jìn)行驗(yàn)證。終端設(shè)備根據(jù)證書(shū)庫(kù)中的證書(shū)通常可以對(duì)權(quán)威證書(shū)驗(yàn)證通過(guò),對(duì)非權(quán)威證書(shū)可能無(wú)法驗(yàn)證通過(guò)。
在實(shí)際應(yīng)用過(guò)程中,應(yīng)用程序中可以包括第三方訪(fǎng)問(wèn)接口,以使用戶(hù)可以通過(guò)應(yīng)用程序中的第三方接口訪(fǎng)問(wèn)第三服務(wù)器。在終端設(shè)備訪(fǎng)問(wèn)主服務(wù)器(應(yīng)用程序?qū)?yīng)的服務(wù)器)時(shí),由主服務(wù)向終端設(shè)備發(fā)送主服務(wù)器的證書(shū),在終端設(shè)備訪(fǎng)問(wèn)第三方服務(wù)器(第三方應(yīng)用程序?qū)?yīng)的服務(wù)器)時(shí),由第三方服務(wù)器向終端設(shè)備發(fā)送證書(shū)。應(yīng)用程序廠(chǎng)商可以確定主服務(wù)器的證書(shū)為權(quán)威的,以使終端設(shè)備可以對(duì)主服務(wù)的證書(shū)驗(yàn)證通過(guò),但是,無(wú)法保證各個(gè)第三方服務(wù)器的證書(shū)也為權(quán)威的證書(shū),進(jìn)而無(wú)法確保終端設(shè)備對(duì)第三方服務(wù)器的證書(shū)驗(yàn)證通過(guò)。當(dāng)終端設(shè)備無(wú)法對(duì)第三方服務(wù)器的證書(shū)驗(yàn)證通過(guò)時(shí),終端設(shè)備無(wú)法通過(guò)應(yīng)用程序訪(fǎng)問(wèn)第三方應(yīng)用程序,使得訪(fǎng)問(wèn)異常,進(jìn)而導(dǎo)致訪(fǎng)問(wèn)控制的可靠性較差。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例提供一種訪(fǎng)問(wèn)控制方法及裝置,提高了訪(fǎng)問(wèn)控制的可靠性。
第一方面,本發(fā)明實(shí)施例提供一種訪(fǎng)問(wèn)控制方法,應(yīng)用于主服務(wù)器對(duì)應(yīng)的代理服務(wù)器,所述方法包括:
接收終端設(shè)備發(fā)送的、對(duì)第三方服務(wù)器進(jìn)行訪(fǎng)問(wèn)的第一訪(fǎng)問(wèn)請(qǐng)求;
向所述終端設(shè)備發(fā)送所述主服務(wù)器的證書(shū),以使所述終端設(shè)備對(duì)所述證書(shū)進(jìn)行驗(yàn)證;
向所述第三方服務(wù)器請(qǐng)求獲取所述第一訪(fǎng)問(wèn)請(qǐng)求對(duì)應(yīng)的目標(biāo)數(shù)據(jù);
在確定所述終端設(shè)備對(duì)接收到的證書(shū)驗(yàn)證通過(guò)后,根據(jù)接收到的證書(shū)對(duì)所述目標(biāo)數(shù)據(jù)進(jìn)行加密,并向所述終端設(shè)備發(fā)送加密后的目標(biāo)數(shù)據(jù)。
在一種可能的實(shí)施方式中,在確定所述終端設(shè)備對(duì)接收到的證書(shū)驗(yàn)證通過(guò)后,根據(jù)接收到的證書(shū)對(duì)所述目標(biāo)數(shù)據(jù)進(jìn)行加密,包括:
接收所述終端設(shè)備發(fā)送的私鑰,所述私鑰為所述終端設(shè)備根據(jù)接收到的證書(shū)對(duì)隨機(jī)數(shù)加密得到的,所述私鑰用于指示所述終端設(shè)備對(duì)所述證書(shū)驗(yàn)證通過(guò);
根據(jù)所述私鑰加密所述目標(biāo)數(shù)據(jù)。
在另一種可能的實(shí)施方式中,所述第一訪(fǎng)問(wèn)請(qǐng)求中包括所述目標(biāo)數(shù)據(jù)的統(tǒng)一資源定位符url地址,相應(yīng)的,向所述第三方服務(wù)器請(qǐng)求獲取所述第一訪(fǎng)問(wèn)請(qǐng)求對(duì)應(yīng)的目標(biāo)數(shù)據(jù),包括:
根據(jù)所述url地址,向所述第三方服務(wù)器發(fā)送數(shù)據(jù)獲取請(qǐng)求;
接收所述第三方服務(wù)器發(fā)送的、通過(guò)預(yù)設(shè)加密算法加密的數(shù)據(jù);
根據(jù)所述預(yù)設(shè)加密算法對(duì)應(yīng)的解密算法解密所述數(shù)據(jù),得到所述目標(biāo)數(shù)據(jù)。
第二方面,本發(fā)明實(shí)施例提供一種訪(fǎng)問(wèn)控制方法,應(yīng)用于終端設(shè)備,所述終端設(shè)備中安裝有應(yīng)用程序,所述方法包括:
在向代理服務(wù)器發(fā)送對(duì)第三方服務(wù)器進(jìn)行訪(fǎng)問(wèn)的第一訪(fǎng)問(wèn)請(qǐng)求之后,接收所述代理服務(wù)器發(fā)送的主服務(wù)器的證書(shū),所述主服務(wù)器為所述應(yīng)用程序?qū)?yīng)的服務(wù)器;
根據(jù)所述終端設(shè)備中的預(yù)設(shè)證書(shū)庫(kù)和/或所述應(yīng)用程序中內(nèi)置的預(yù)設(shè)證書(shū),對(duì)接收到的證書(shū)進(jìn)行驗(yàn)證,其中,所述預(yù)設(shè)證書(shū)為內(nèi)置在所述應(yīng)用程序中的所述主服務(wù)器的證書(shū)。
在一種可能的實(shí)施方式中,在向代理服務(wù)器發(fā)送對(duì)第三方服務(wù)器進(jìn)行訪(fǎng)問(wèn)的第一訪(fǎng)問(wèn)請(qǐng)求之前,還包括
接收用戶(hù)對(duì)第三方訪(fǎng)問(wèn)接口的點(diǎn)擊操作;
獲取所述第三方訪(fǎng)問(wèn)接口對(duì)應(yīng)的所述第三方服務(wù)器;
確定向所述第三方服務(wù)器的標(biāo)識(shí)在預(yù)設(shè)服務(wù)器標(biāo)識(shí)集合中。
在另一種可能的實(shí)施方式中,若確定所述第三方服務(wù)器不在所述預(yù)設(shè)服務(wù)器標(biāo)識(shí)集合中,所述方法包括:
向所述第三方服務(wù)器發(fā)送第二訪(fǎng)問(wèn)請(qǐng)求;
接收所述第三方服務(wù)器發(fā)送的、所述第三方服務(wù)器的證書(shū);
確定對(duì)接收到的所述第三方服務(wù)器的證書(shū)驗(yàn)證通過(guò)。
在另一種可能的實(shí)施方式中,根據(jù)所述終端設(shè)備中的預(yù)設(shè)證書(shū)庫(kù)和/或所述應(yīng)用程序中內(nèi)置的預(yù)設(shè)證書(shū),對(duì)接收到的證書(shū)進(jìn)行驗(yàn)證,包括:
根據(jù)所述預(yù)設(shè)證書(shū)庫(kù)中的證書(shū),對(duì)接收到的證書(shū)進(jìn)行驗(yàn)證;
若驗(yàn)證未通過(guò),則判斷所述預(yù)設(shè)證書(shū)與接收到的證書(shū)是否相同,若是,則對(duì)接收到的證書(shū)驗(yàn)證通過(guò),若否,則對(duì)接收到的證書(shū)驗(yàn)證未通過(guò)。
第三方面,本發(fā)明實(shí)施例提供一種訪(fǎng)問(wèn)控制裝置,應(yīng)用于主服務(wù)器對(duì)應(yīng)的代理服務(wù)器,包括接收模塊、發(fā)送模塊、獲取模塊和加密模塊,其中,
所述接收模塊用于,接收終端設(shè)備發(fā)送的、對(duì)第三方服務(wù)器進(jìn)行訪(fǎng)問(wèn)的第一訪(fǎng)問(wèn)請(qǐng)求;
所述發(fā)送模塊用于,向所述終端設(shè)備發(fā)送所述主服務(wù)器的證書(shū),以使所述終端設(shè)備對(duì)所述證書(shū)進(jìn)行驗(yàn)證;
所述獲取模塊用于,向所述第三方服務(wù)器請(qǐng)求獲取所述第一訪(fǎng)問(wèn)請(qǐng)求對(duì)應(yīng)的目標(biāo)數(shù)據(jù);
所述加密模塊用于,在確定所述終端設(shè)備對(duì)接收到的證書(shū)驗(yàn)證通過(guò)后,根據(jù)接收到的證書(shū)對(duì)所述目標(biāo)數(shù)據(jù)進(jìn)行加密;
所述發(fā)送模塊還用于,向所述終端設(shè)備發(fā)送加密后的目標(biāo)數(shù)據(jù)。
在一種可能的實(shí)施方式中,所述加密模塊具體用于:
接收所述終端設(shè)備發(fā)送的私鑰,所述私鑰為所述終端設(shè)備根據(jù)接收到的證書(shū)對(duì)隨機(jī)數(shù)加密得到的,所述私鑰用于指示所述終端設(shè)備對(duì)所述證書(shū)驗(yàn)證通過(guò);
根據(jù)所述私鑰加密所述目標(biāo)數(shù)據(jù)。
在另一種可能的實(shí)施方式中,所述第一訪(fǎng)問(wèn)請(qǐng)求中包括所述目標(biāo)數(shù)據(jù)的統(tǒng)一資源定位符url地址,相應(yīng)的,所述獲取模塊具體用于:
根據(jù)所述url地址,向所述第三方服務(wù)器發(fā)送數(shù)據(jù)獲取請(qǐng)求;
接收所述第三方服務(wù)器發(fā)送的、通過(guò)預(yù)設(shè)加密算法加密的數(shù)據(jù);
根據(jù)所述預(yù)設(shè)加密算法對(duì)應(yīng)的解密算法解密所述數(shù)據(jù),得到所述目標(biāo)數(shù)據(jù)。
第四方面,本發(fā)明實(shí)施例提供一種訪(fǎng)問(wèn)控制方法,應(yīng)用于終端設(shè)備,所述終端設(shè)備中安裝有應(yīng)用程序,包括發(fā)送模塊、接收模塊、驗(yàn)證模塊,其中,
所述接收模塊用于,在所述發(fā)送模塊向代理服務(wù)器發(fā)送對(duì)第三方服務(wù)器進(jìn)行訪(fǎng)問(wèn)的第一訪(fǎng)問(wèn)請(qǐng)求之后,接收所述代理服務(wù)器發(fā)送的主服務(wù)器的證書(shū),所述主服務(wù)器為所述應(yīng)用程序?qū)?yīng)的服務(wù)器;
所述驗(yàn)證模塊用于,根據(jù)所述終端設(shè)備中的預(yù)設(shè)證書(shū)庫(kù)和/或所述應(yīng)用程序中內(nèi)置的預(yù)設(shè)證書(shū),對(duì)接收到的證書(shū)進(jìn)行驗(yàn)證,其中,所述預(yù)設(shè)證書(shū)為內(nèi)置在所述應(yīng)用程序中的所述主服務(wù)器的證書(shū)。
在一種可能的實(shí)施方式中,所述裝置還包括獲取模塊和確定模塊,其中,
所述接收模塊還用于,在所述發(fā)送模塊向代理服務(wù)器發(fā)送對(duì)第三方服務(wù)器進(jìn)行訪(fǎng)問(wèn)的第一訪(fǎng)問(wèn)請(qǐng)求之前,接收用戶(hù)對(duì)第三方訪(fǎng)問(wèn)接口的點(diǎn)擊操作;
所述獲取模塊用于,獲取所述第三方訪(fǎng)問(wèn)接口對(duì)應(yīng)的所述第三方服務(wù)器;
所述確定模塊用于,確定向所述第三方服務(wù)器的標(biāo)識(shí)在預(yù)設(shè)服務(wù)器標(biāo)識(shí)集合中。
在另一種可能的實(shí)施方式中,所述發(fā)送模塊還用于,在所述確定模塊確定若確定所述第三方服務(wù)器不在所述預(yù)設(shè)服務(wù)器標(biāo)識(shí)集合中時(shí),向所述第三方服務(wù)器發(fā)送第二訪(fǎng)問(wèn)請(qǐng)求;
所述接收模塊還用于,接收所述第三方服務(wù)器發(fā)送的、所述第三方服務(wù)器的證書(shū);
所述驗(yàn)證模塊還用于,確定對(duì)接收到的所述第三方服務(wù)器的證書(shū)驗(yàn)證通過(guò)。
在另一種可能的實(shí)施方式中,所述驗(yàn)證模塊具體用于:
根據(jù)所述預(yù)設(shè)證書(shū)庫(kù)中的證書(shū),對(duì)接收到的證書(shū)進(jìn)行驗(yàn)證;
若驗(yàn)證未通過(guò),則判斷所述預(yù)設(shè)證書(shū)與接收到的證書(shū)是否相同,若是,則對(duì)接收到的證書(shū)驗(yàn)證通過(guò),若否,則對(duì)接收到的證書(shū)驗(yàn)證未通過(guò)。
本發(fā)明實(shí)施例提供的訪(fǎng)問(wèn)控制方法及裝置,在終端設(shè)備對(duì)第三方服務(wù)器訪(fǎng)問(wèn)時(shí),終端設(shè)備向代理服務(wù)器發(fā)送對(duì)第三方服務(wù)器進(jìn)行訪(fǎng)問(wèn)的第一訪(fǎng)問(wèn)請(qǐng)求,代理服務(wù)器向終端設(shè)備發(fā)送主服務(wù)器的證書(shū),終端設(shè)備根據(jù)預(yù)設(shè)證書(shū)庫(kù)和/或應(yīng)用程序中的預(yù)設(shè)證書(shū),對(duì)證書(shū)進(jìn)行驗(yàn)證,這樣,只要代理服務(wù)器向終端設(shè)備發(fā)送的證書(shū)未被篡改,即可保證終端設(shè)備對(duì)接收到的證書(shū)驗(yàn)證通過(guò),進(jìn)而可以保證終端設(shè)備可以通過(guò)代理服務(wù)器對(duì)第三方服務(wù)器進(jìn)行正常訪(fǎng)問(wèn),避免了由于對(duì)第三方服務(wù)器的證書(shū)驗(yàn)證不通過(guò)、而導(dǎo)致無(wú)法通過(guò)應(yīng)用程序訪(fǎng)問(wèn)第三方服務(wù)器的問(wèn)題,進(jìn)而提高訪(fǎng)問(wèn)控制的可靠性。
附圖說(shuō)明
為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實(shí)施例提供的訪(fǎng)問(wèn)控制方法的應(yīng)用場(chǎng)景示意圖;
圖2為本發(fā)明實(shí)施例提供的訪(fǎng)問(wèn)控制方法的流程示意圖一;
圖3為本發(fā)明實(shí)施例提供的訪(fǎng)問(wèn)控制方法的流程示意圖二;
圖4為本發(fā)明實(shí)施例提供的一種訪(fǎng)問(wèn)控制裝置的結(jié)構(gòu)示意圖;
圖5為本發(fā)明實(shí)施例提供的另一種訪(fǎng)問(wèn)控制裝置的結(jié)構(gòu)示意圖一;
圖6為本發(fā)明實(shí)施例提供的另一種訪(fǎng)問(wèn)控制裝置的結(jié)構(gòu)示意圖二。
具體實(shí)施方式
為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
圖1為本發(fā)明實(shí)施例提供的訪(fǎng)問(wèn)控制方法的應(yīng)用場(chǎng)景示意圖。請(qǐng)參見(jiàn)圖1,包括終端設(shè)備101、主服務(wù)器102、代理服務(wù)器103和第三方服務(wù)器104。在終端設(shè)備101中安裝有應(yīng)用程序,應(yīng)用程序中包括第三方服務(wù)器的第三方訪(fǎng)問(wèn)接口。主服務(wù)器102和代理服務(wù)器103為終端設(shè)備101中的應(yīng)用程序?qū)?yīng)的服務(wù)器,其中,主服務(wù)器102用于提供應(yīng)用程序所需數(shù)據(jù)信息,代理服務(wù)器103為主服務(wù)器102提供代理功能。第三方服務(wù)器104為終端設(shè)備101中的應(yīng)用程序中的第三方訪(fǎng)問(wèn)接口對(duì)應(yīng)的服務(wù)器。
在本申請(qǐng)中,當(dāng)終端設(shè)備101需要通過(guò)應(yīng)用程序獲取主服務(wù)器102中的數(shù)據(jù)時(shí),終端設(shè)備102直接對(duì)主服務(wù)器102進(jìn)行https訪(fǎng)問(wèn),主服務(wù)器102向終端設(shè)備發(fā)送主服務(wù)器102的證書(shū)。當(dāng)終端設(shè)備101通過(guò)應(yīng)用程序中的第三方訪(fǎng)問(wèn)接口訪(fǎng)問(wèn)第三方服務(wù)器時(shí),終端設(shè)備101通過(guò)主服務(wù)器102的代理服務(wù)器103對(duì)第三服務(wù)器104進(jìn)行https訪(fǎng)問(wèn),在該過(guò)程中,第三方服務(wù)器104無(wú)需向終端設(shè)備101發(fā)送第三方服務(wù)器104的證書(shū),而是由代理服務(wù)器102向終端設(shè)備101發(fā)送主服務(wù)器102的證書(shū)。
由上可知,在本申請(qǐng)中,無(wú)論終端設(shè)備101對(duì)主服務(wù)器102訪(fǎng)問(wèn),還是對(duì)第三方服務(wù)器104訪(fǎng)問(wèn),均向終端設(shè)備發(fā)送主服務(wù)器102的證書(shū),以使終端設(shè)備101對(duì)主服務(wù)器102的證書(shū)進(jìn)行驗(yàn)證,進(jìn)而避免對(duì)第三方服務(wù)器的證書(shū)驗(yàn)證不通過(guò)而導(dǎo)致無(wú)法訪(fǎng)問(wèn)第三方服務(wù)器的問(wèn)題。
下面,通過(guò)具體實(shí)施例對(duì)本申請(qǐng)所示的技術(shù)方案進(jìn)行詳細(xì)說(shuō)明。需要說(shuō)明的是,下面幾個(gè)具體實(shí)施例可以相互結(jié)合,對(duì)于相同或相似的內(nèi)容,在不同的實(shí)施例中不再進(jìn)行贅述。
圖2為本發(fā)明實(shí)施例提供的訪(fǎng)問(wèn)控制方法的流程示意圖一。請(qǐng)參見(jiàn)圖2,該方法可以包括:
s201、終端設(shè)備向代理服務(wù)器發(fā)送對(duì)第三方服務(wù)器進(jìn)行訪(fǎng)問(wèn)的第一訪(fǎng)問(wèn)請(qǐng)求。
在本發(fā)明實(shí)施例中,第一訪(fǎng)問(wèn)請(qǐng)求為基于https的請(qǐng)求。
在終端設(shè)備中安裝有應(yīng)用程序,在應(yīng)用程序中設(shè)置有對(duì)第三方服務(wù)器進(jìn)行訪(fǎng)問(wèn)的第三方訪(fǎng)問(wèn)接口。可選的,第三方訪(fǎng)問(wèn)接口可以對(duì)應(yīng)第三方服務(wù)器的一個(gè)鏈接。當(dāng)用戶(hù)對(duì)第三方訪(fǎng)問(wèn)接口進(jìn)行預(yù)設(shè)操作時(shí),例如點(diǎn)擊操作,終端設(shè)備可以通過(guò)代理服務(wù)器訪(fǎng)問(wèn)第三方服務(wù)器。
可選的,終端設(shè)備向代理服務(wù)器發(fā)送對(duì)第三方服務(wù)器進(jìn)行訪(fǎng)問(wèn)的第一訪(fǎng)問(wèn)請(qǐng)求。可選的,可以在第一訪(fǎng)問(wèn)請(qǐng)求中攜帶第三方服務(wù)器的一個(gè)url,以使代理服務(wù)器可以根據(jù)該url在第三方服務(wù)器中獲取需要反饋給終端設(shè)備的內(nèi)容。當(dāng)然,第一訪(fǎng)問(wèn)請(qǐng)求中還可以包括其它內(nèi)容,本發(fā)明實(shí)施例對(duì)此不作具體限定。
s202、代理服務(wù)器向終端設(shè)備發(fā)送主服務(wù)器的證書(shū)。
在本發(fā)明實(shí)施例中,代理服務(wù)器中存儲(chǔ)的證書(shū)為主服務(wù)器的證書(shū),因此,在代理服務(wù)器接收到第一訪(fǎng)問(wèn)請(qǐng)求之后,代理服務(wù)器向終端設(shè)備發(fā)送主服務(wù)器的證書(shū)。
s203、終端設(shè)備對(duì)接收到的證書(shū)進(jìn)行驗(yàn)證。
可選的,在應(yīng)用程序中預(yù)設(shè)有主服務(wù)器的證書(shū),例如,可以在發(fā)布應(yīng)用程序時(shí),在應(yīng)用程序中內(nèi)置主服務(wù)器的證書(shū)。相應(yīng)的,在終端設(shè)備接收到證書(shū)之后,終端設(shè)備可以根據(jù)終端設(shè)備中的預(yù)設(shè)證書(shū)庫(kù)和/或應(yīng)用程序中的預(yù)設(shè)證書(shū),對(duì)證書(shū)進(jìn)行驗(yàn)證。其中,預(yù)設(shè)證書(shū)庫(kù)中包括多個(gè)權(quán)威機(jī)構(gòu)發(fā)布的權(quán)威證書(shū)。
可選的,終端設(shè)備可以先根據(jù)預(yù)設(shè)證書(shū)庫(kù)中的證書(shū),對(duì)接收到的證書(shū)進(jìn)行驗(yàn)證,若驗(yàn)證通過(guò),則對(duì)主服務(wù)器的證書(shū)驗(yàn)證結(jié)束。若驗(yàn)證未通過(guò),則判斷主服務(wù)器的證書(shū)與應(yīng)用程序中預(yù)設(shè)的主服務(wù)器的證書(shū)是否相同,若是,則對(duì)證書(shū)驗(yàn)證通過(guò),若否,則對(duì)驗(yàn)證驗(yàn)證未通過(guò)。需要說(shuō)明的是,終端設(shè)備通過(guò)預(yù)設(shè)證書(shū)庫(kù)中的證書(shū),對(duì)接收到的證書(shū)的驗(yàn)證過(guò)程可以參見(jiàn)現(xiàn)有技術(shù)中的任意一種過(guò)程,此處不再進(jìn)行贅述。
當(dāng)然,在實(shí)際應(yīng)用過(guò)程中,也可以直接根據(jù)應(yīng)用程序中內(nèi)置的預(yù)設(shè)證書(shū),對(duì)接收到的證書(shū)進(jìn)行驗(yàn)證。
在該過(guò)程中,當(dāng)終端設(shè)備中的證書(shū)庫(kù)中包括的證書(shū)不夠全面時(shí),則終端設(shè)備根據(jù)預(yù)設(shè)證書(shū)庫(kù)中的證書(shū),可能無(wú)法對(duì)接收到的證書(shū)驗(yàn)證通過(guò)。此時(shí),還可以根據(jù)應(yīng)用程序中內(nèi)置的預(yù)設(shè)證書(shū),對(duì)接收到的證書(shū)進(jìn)行驗(yàn)證,由于應(yīng)用程序中內(nèi)置的證書(shū)為主服務(wù)器的證書(shū),該證書(shū)通常不會(huì)被攻擊,當(dāng)終端設(shè)備接收到的證書(shū)未被篡改時(shí),終端設(shè)備接收到的證書(shū)即為主服務(wù)器的證書(shū),則可以保證終端設(shè)備接收到的證書(shū)與應(yīng)用程序中內(nèi)置的預(yù)設(shè)證書(shū)一致,進(jìn)而可以保證終端設(shè)備對(duì)接收到的證書(shū)驗(yàn)證通過(guò)。通過(guò)該方法,可以提高終端設(shè)備對(duì)接收到的證書(shū)進(jìn)行驗(yàn)證的可靠性。
需要說(shuō)明的是,終端設(shè)備對(duì)于主服務(wù)器直接發(fā)送的證書(shū),也可以通過(guò)上述發(fā)送對(duì)接收到的證書(shū)進(jìn)行驗(yàn)證。
s204、代理服務(wù)器向第三方服務(wù)器發(fā)送數(shù)據(jù)獲取請(qǐng)求。
代理服務(wù)器在接收到終端設(shè)備發(fā)送的第一訪(fǎng)問(wèn)請(qǐng)求之后,可以根據(jù)第一訪(fǎng)問(wèn)請(qǐng)求,生成數(shù)據(jù)獲取請(qǐng)求,并向第三方服務(wù)器發(fā)送數(shù)據(jù)獲取請(qǐng)求。
s205、第三方服務(wù)器向代理服務(wù)器發(fā)送目標(biāo)數(shù)據(jù)。
在第三方服務(wù)器接收到數(shù)據(jù)獲取請(qǐng)求之后,獲取對(duì)應(yīng)的目標(biāo)數(shù)據(jù),并向代理服務(wù)器發(fā)送目標(biāo)數(shù)據(jù)。
可選的,為了保證第三方服務(wù)器和代理服務(wù)器之間數(shù)據(jù)傳遞的安全性,第三方服務(wù)器可以按照和代理服務(wù)器的約定加密算法,對(duì)目標(biāo)數(shù)據(jù)進(jìn)行加密,并向代理服務(wù)器發(fā)送加密后的目標(biāo)數(shù)據(jù)。
s206、在終端設(shè)備對(duì)接收到證書(shū)驗(yàn)證通過(guò)后,終端設(shè)備向代理服務(wù)器發(fā)送私鑰,私鑰為終端設(shè)備根據(jù)證書(shū)對(duì)隨機(jī)數(shù)加密得到的。
在終端設(shè)備對(duì)接收到的證書(shū)驗(yàn)證通過(guò)之后,終端設(shè)備生成隨機(jī)數(shù),并通過(guò)接收到的證書(shū)對(duì)生成的隨機(jī)數(shù)進(jìn)行加密,得到私鑰,并向代理服務(wù)器發(fā)送該私鑰。
需要說(shuō)明的是,s204-s205與s206可以順序執(zhí)行,也可以并行執(zhí)行,當(dāng)然,也可以先執(zhí)行s206,再執(zhí)行s04-s205,本發(fā)明實(shí)施例對(duì)此順序不作具體限定。
當(dāng)先執(zhí)行s204-s205,再執(zhí)行s206時(shí),在終端設(shè)備對(duì)接收到的證書(shū)驗(yàn)證通過(guò)之前,代理服務(wù)器先從第三方服務(wù)器獲取得到目標(biāo)數(shù)據(jù),這樣,在終端設(shè)備對(duì)接收到的證書(shū)驗(yàn)證通過(guò)之后,代理服務(wù)器可以快速向終端設(shè)備發(fā)送目標(biāo)數(shù)據(jù),進(jìn)而使得代理服務(wù)器向終端設(shè)備發(fā)送目標(biāo)數(shù)據(jù)的效率較高。
當(dāng)先執(zhí)行s206,再執(zhí)行s204-s205時(shí),在終端設(shè)備對(duì)接收到的證書(shū)驗(yàn)證通過(guò)之后,代理服務(wù)器才向第三方服務(wù)器請(qǐng)求獲取目標(biāo)數(shù)據(jù),相應(yīng)的,在終端設(shè)備對(duì)接收到的證書(shū)未驗(yàn)證通過(guò)時(shí),則代理服務(wù)器無(wú)需向第三方服務(wù)器請(qǐng)求獲取目標(biāo)數(shù)據(jù),這樣,可以避免代理服務(wù)器向第三方服務(wù)器請(qǐng)求不必要的目標(biāo)數(shù)據(jù),進(jìn)而可以降低代理服務(wù)器的負(fù)載。
s207、代理服務(wù)器根據(jù)私鑰加密目標(biāo)數(shù)據(jù)。
在代理服務(wù)器接收到私鑰之后,代理服務(wù)器根據(jù)私鑰對(duì)目標(biāo)數(shù)據(jù)進(jìn)行加密。需要說(shuō)明的是,代理服務(wù)器根據(jù)私鑰對(duì)目標(biāo)數(shù)據(jù)進(jìn)行加密的過(guò)程可以參見(jiàn)現(xiàn)有技術(shù)中的加密過(guò)程,此次不再進(jìn)行贅述。
s208、代理服務(wù)器向終端設(shè)備發(fā)送根據(jù)私鑰加密后的目標(biāo)數(shù)據(jù)。
需要說(shuō)明的是,在代理服務(wù)器和終端設(shè)備本次通信的過(guò)程中,代理服務(wù)器和終端設(shè)備之間交互的數(shù)據(jù)均通過(guò)該私鑰進(jìn)行加密,本發(fā)明對(duì)此不再進(jìn)行贅述。
本發(fā)明實(shí)施例提供的訪(fǎng)問(wèn)控制方法,在終端設(shè)備對(duì)第三方服務(wù)器訪(fǎng)問(wèn)時(shí),終端設(shè)備向代理服務(wù)器發(fā)送對(duì)第三方服務(wù)器進(jìn)行訪(fǎng)問(wèn)的第一訪(fǎng)問(wèn)請(qǐng)求,代理服務(wù)器向終端設(shè)備發(fā)送主服務(wù)器的證書(shū),終端設(shè)備根據(jù)預(yù)設(shè)證書(shū)庫(kù)和/或應(yīng)用程序中的預(yù)設(shè)證書(shū),對(duì)證書(shū)進(jìn)行驗(yàn)證,這樣,只要代理服務(wù)器向終端設(shè)備發(fā)送的證書(shū)未被篡改,即可保證終端設(shè)備對(duì)接收到的證書(shū)驗(yàn)證通過(guò),進(jìn)而可以保證終端設(shè)備可以通過(guò)代理服務(wù)器對(duì)第三方服務(wù)器進(jìn)行正常訪(fǎng)問(wèn),避免了由于對(duì)第三方服務(wù)器的證書(shū)驗(yàn)證不通過(guò)、而導(dǎo)致無(wú)法通過(guò)應(yīng)用程序訪(fǎng)問(wèn)第三方服務(wù)器的問(wèn)題。
在實(shí)際應(yīng)用過(guò)程中,在應(yīng)用程序中可能設(shè)置有多個(gè)第三方訪(fǎng)問(wèn)接口,應(yīng)用程序廠(chǎng)商為了節(jié)約成本,可能僅對(duì)部分第三方訪(fǎng)問(wèn)接口對(duì)應(yīng)的第三方服務(wù)器進(jìn)行代理,即,終端設(shè)備通過(guò)代理服務(wù)器對(duì)部分第三方服務(wù)器進(jìn)行訪(fǎng)問(wèn)。相應(yīng)的,可以在應(yīng)用程序中設(shè)置預(yù)設(shè)服務(wù)器標(biāo)識(shí)集合,當(dāng)?shù)谌椒?wù)器的標(biāo)識(shí)在該預(yù)設(shè)服務(wù)器標(biāo)識(shí)集合中時(shí),則通過(guò)代理服務(wù)器訪(fǎng)問(wèn)該第三方服務(wù)器,若否,則直接訪(fǎng)問(wèn)該第三方服務(wù)器。具體的,請(qǐng)參見(jiàn)圖3所示的實(shí)施例。
圖3為本發(fā)明實(shí)施例提供的訪(fǎng)問(wèn)控制方法的流程示意圖二。在圖2所示實(shí)施例的基礎(chǔ)上,請(qǐng)參見(jiàn)圖3,該方法可以包括:
s301、終端設(shè)備接收用戶(hù)對(duì)第三方訪(fǎng)問(wèn)接口的點(diǎn)擊操作。
s302、終端設(shè)備獲取第三方訪(fǎng)問(wèn)接口對(duì)應(yīng)的第三方服務(wù)器。
s303、終端設(shè)備判斷第三方服務(wù)器的標(biāo)識(shí)是否在預(yù)設(shè)服務(wù)器標(biāo)識(shí)集合中。
若是,則執(zhí)行s304-314。
若否,則執(zhí)行s314-317。
預(yù)設(shè)服務(wù)器標(biāo)識(shí)集合中包括多個(gè)服務(wù)器的標(biāo)識(shí),針對(duì)預(yù)設(shè)服務(wù)器標(biāo)識(shí)集合中每一個(gè)標(biāo)識(shí)對(duì)應(yīng)的第三方服務(wù)器,終端設(shè)備訪(fǎng)問(wèn)該部分第三方服務(wù)器時(shí),均需要通過(guò)代理服務(wù)器進(jìn)行訪(fǎng)問(wèn)。
s304、終端設(shè)備向代理服務(wù)器發(fā)送對(duì)第三方服務(wù)器進(jìn)行訪(fǎng)問(wèn)的第一訪(fǎng)問(wèn)請(qǐng)求,第一訪(fǎng)問(wèn)請(qǐng)求中包括目標(biāo)數(shù)據(jù)的url地址。
s305、代理服務(wù)器向終端設(shè)備發(fā)送主服務(wù)器的證書(shū)。
s306、終端設(shè)備根據(jù)終端設(shè)備中的預(yù)設(shè)證書(shū)庫(kù)和/或應(yīng)用程序中的預(yù)設(shè)證書(shū),對(duì)證書(shū)進(jìn)行驗(yàn)證。
s307、在終端設(shè)備對(duì)接收到的證書(shū)驗(yàn)證通過(guò)之后,生成隨機(jī)數(shù),并根據(jù)接收到的證書(shū)對(duì)隨機(jī)數(shù)進(jìn)行加密,得到私鑰。
s308、終端設(shè)備向代理服務(wù)器發(fā)送私鑰。
s309、向第三方服務(wù)器發(fā)送數(shù)據(jù)獲取請(qǐng)求。
s310、第三方服務(wù)器獲取目標(biāo)數(shù)據(jù),并通過(guò)加密算法加密的目標(biāo)數(shù)據(jù)。
s311、第三方服務(wù)器向代理服務(wù)器發(fā)送加密后的目標(biāo)數(shù)據(jù)。
s312、代理服務(wù)器根據(jù)加密算法對(duì)應(yīng)的解密算法,對(duì)加密的目標(biāo)數(shù)據(jù)進(jìn)行解密,得到目標(biāo)數(shù)據(jù)。
s313、代理服務(wù)器根據(jù)私鑰對(duì)目標(biāo)數(shù)據(jù)進(jìn)行加密。
s314、代理服務(wù)器向終端設(shè)備發(fā)送根據(jù)私鑰加密的目標(biāo)數(shù)據(jù)。
需要說(shuō)明的是,s304-s314的執(zhí)行過(guò)程可以參見(jiàn)圖2所示的實(shí)施例,此處不再進(jìn)行贅述。
s315、終端設(shè)備向第三方服務(wù)器發(fā)送第二訪(fǎng)問(wèn)請(qǐng)求。
s316、第三方服務(wù)器向終端設(shè)備發(fā)送第三方服務(wù)器的證書(shū)。
s317、終端設(shè)備確定對(duì)接收到的第三方服務(wù)器的證書(shū)驗(yàn)證通過(guò)。
在s317中,終端設(shè)備不對(duì)接收到的第三方服務(wù)器的證書(shū)進(jìn)行驗(yàn)證,直接確定接收到的第三方服務(wù)器的證書(shū)驗(yàn)證通過(guò)。
需要說(shuō)明是,在s317之后,終端設(shè)備生成隨機(jī)數(shù),并根據(jù)接收到的第三方服務(wù)器的證書(shū)對(duì)隨機(jī)數(shù)進(jìn)行加密,生成私鑰,在終端設(shè)備和第三方服務(wù)器之后進(jìn)行通信的過(guò)程中,相互傳遞的數(shù)據(jù)均采用私鑰進(jìn)行加密,本發(fā)明實(shí)施例對(duì)此不再進(jìn)行贅述。
圖4為本發(fā)明實(shí)施例提供的一種訪(fǎng)問(wèn)控制裝置的結(jié)構(gòu)示意圖。該裝置,應(yīng)用于主服務(wù)器對(duì)應(yīng)的代理服務(wù)器,請(qǐng)參見(jiàn)圖4,該裝置包括接收模塊11、發(fā)送模塊12、獲取模塊13和加密模塊14,其中,
所述接收模塊11用于,接收終端設(shè)備發(fā)送的、對(duì)第三方服務(wù)器進(jìn)行訪(fǎng)問(wèn)的第一訪(fǎng)問(wèn)請(qǐng)求;
所述發(fā)送模塊12用于,向所述終端設(shè)備發(fā)送所述主服務(wù)器的證書(shū),以使所述終端設(shè)備對(duì)所述證書(shū)進(jìn)行驗(yàn)證;
所述獲取模塊13用于,向所述第三方服務(wù)器請(qǐng)求獲取所述第一訪(fǎng)問(wèn)請(qǐng)求對(duì)應(yīng)的目標(biāo)數(shù)據(jù);
所述加密模塊14用于,在確定所述終端設(shè)備對(duì)接收到的證書(shū)驗(yàn)證通過(guò)后,根據(jù)接收到的證書(shū)對(duì)所述目標(biāo)數(shù)據(jù)進(jìn)行加密;
所述發(fā)送模塊12還用于,向所述終端設(shè)備發(fā)送加密后的目標(biāo)數(shù)據(jù)。
本發(fā)明實(shí)施例提供的訪(fǎng)問(wèn)控制裝置可以執(zhí)行上述方法實(shí)施例所示的技術(shù)方案,其實(shí)現(xiàn)原理以及有益效果類(lèi)似,此處不再進(jìn)行贅述。
在一種可能的實(shí)施方式中,所述加密模塊14具體用于:
接收所述終端設(shè)備發(fā)送的私鑰,所述私鑰為所述終端設(shè)備根據(jù)接收到的證書(shū)對(duì)隨機(jī)數(shù)加密得到的,所述私鑰用于指示所述終端設(shè)備對(duì)所述證書(shū)驗(yàn)證通過(guò);
根據(jù)所述私鑰加密所述目標(biāo)數(shù)據(jù)。
在另一種可能的實(shí)施方式中,所述第一訪(fǎng)問(wèn)請(qǐng)求中包括所述目標(biāo)數(shù)據(jù)的統(tǒng)一資源定位符url地址,相應(yīng)的,所述獲取模塊13具體用于:
根據(jù)所述url地址,向所述第三方服務(wù)器發(fā)送數(shù)據(jù)獲取請(qǐng)求;
接收所述第三方服務(wù)器發(fā)送的、通過(guò)預(yù)設(shè)加密算法加密的數(shù)據(jù);
根據(jù)所述預(yù)設(shè)加密算法對(duì)應(yīng)的解密算法解密所述數(shù)據(jù),得到所述目標(biāo)數(shù)據(jù)。
本發(fā)明實(shí)施例提供的訪(fǎng)問(wèn)控制裝置可以執(zhí)行上述方法實(shí)施例所示的技術(shù)方案,其實(shí)現(xiàn)原理以及有益效果類(lèi)似,此處不再進(jìn)行贅述。
圖5為本發(fā)明實(shí)施例提供的另一種訪(fǎng)問(wèn)控制裝置的結(jié)構(gòu)示意圖一。該裝置應(yīng)用于終端設(shè)備,所述終端設(shè)備中安裝有應(yīng)用程序。請(qǐng)參見(jiàn)圖5,該裝置可以包括發(fā)送模塊21、接收模塊22、驗(yàn)證模塊23,其中,
所述接收模塊22用于,在所述發(fā)送模塊21向代理服務(wù)器發(fā)送對(duì)第三方服務(wù)器進(jìn)行訪(fǎng)問(wèn)的第一訪(fǎng)問(wèn)請(qǐng)求之后,接收所述代理服務(wù)器發(fā)送的主服務(wù)器的證書(shū),所述主服務(wù)器為所述應(yīng)用程序?qū)?yīng)的服務(wù)器;
所述驗(yàn)證模塊23用于,根據(jù)所述終端設(shè)備中的預(yù)設(shè)證書(shū)庫(kù)和/或所述應(yīng)用程序中內(nèi)置的預(yù)設(shè)證書(shū),對(duì)接收到的證書(shū)進(jìn)行驗(yàn)證,其中,所述預(yù)設(shè)證書(shū)為內(nèi)置在所述應(yīng)用程序中的所述主服務(wù)器的證書(shū)。
本發(fā)明實(shí)施例提供的訪(fǎng)問(wèn)控制裝置可以執(zhí)行上述方法實(shí)施例所示的技術(shù)方案,其實(shí)現(xiàn)原理以及有益效果類(lèi)似,此處不再進(jìn)行贅述。
圖6為本發(fā)明實(shí)施例提供的另一種訪(fǎng)問(wèn)控制裝置的結(jié)構(gòu)示意圖二。在圖5所示實(shí)施例的基礎(chǔ)上,請(qǐng)參見(jiàn)圖6,所述裝置還包括獲取模塊24和確定模塊25,其中,
所述接收模塊22還用于,在所述發(fā)送模塊21向代理服務(wù)器發(fā)送對(duì)第三方服務(wù)器進(jìn)行訪(fǎng)問(wèn)的第一訪(fǎng)問(wèn)請(qǐng)求之前,接收用戶(hù)對(duì)第三方訪(fǎng)問(wèn)接口的點(diǎn)擊操作;
所述獲取模塊24用于,獲取所述第三方訪(fǎng)問(wèn)接口對(duì)應(yīng)的所述第三方服務(wù)器;
所述確定模塊25用于,確定向所述第三方服務(wù)器的標(biāo)識(shí)在預(yù)設(shè)服務(wù)器標(biāo)識(shí)集合中。
在一種可能的實(shí)施方式中,所述發(fā)送模塊21還用于,在所述確定模塊25確定若確定所述第三方服務(wù)器不在所述預(yù)設(shè)服務(wù)器標(biāo)識(shí)集合中時(shí),向所述第三方服務(wù)器發(fā)送第二訪(fǎng)問(wèn)請(qǐng)求;
所述接收模塊22還用于,接收所述第三方服務(wù)器發(fā)送的、所述第三方服務(wù)器的證書(shū);
所述驗(yàn)證模塊23還用于,確定對(duì)接收到的所述第三方服務(wù)器的證書(shū)驗(yàn)證通過(guò)。
在另一種可能的實(shí)施方式中,所述驗(yàn)證模塊23具體用于:
根據(jù)所述預(yù)設(shè)證書(shū)庫(kù)中的證書(shū),對(duì)接收到的證書(shū)進(jìn)行驗(yàn)證;
若驗(yàn)證未通過(guò),則判斷所述預(yù)設(shè)證書(shū)與接收到的證書(shū)是否相同,若是,則對(duì)接收到的證書(shū)驗(yàn)證通過(guò),若否,則對(duì)接收到的證書(shū)驗(yàn)證未通過(guò)。
本發(fā)明實(shí)施例提供的訪(fǎng)問(wèn)控制裝置可以執(zhí)行上述方法實(shí)施例所示的技術(shù)方案,其實(shí)現(xiàn)原理以及有益效果類(lèi)似,此處不再進(jìn)行贅述。
本領(lǐng)域普通技術(shù)人員可以理解:實(shí)現(xiàn)上述各方法實(shí)施例的全部或部分步驟可以通過(guò)程序指令相關(guān)的硬件來(lái)完成。前述的程序可以存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中。該程序在執(zhí)行時(shí),執(zhí)行包括上述各方法實(shí)施例的步驟;而前述的存儲(chǔ)介質(zhì)包括:rom、ram、磁碟或者光盤(pán)等各種可以存儲(chǔ)程序代碼的介質(zhì)。
最后應(yīng)說(shuō)明的是:以上各實(shí)施例僅用以說(shuō)明本發(fā)明實(shí)施例的技術(shù)方案,而非對(duì)其限制;盡管參照前述各實(shí)施例對(duì)本發(fā)明實(shí)施例進(jìn)行了詳細(xì)的說(shuō)明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分或者全部技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明實(shí)施例方案的范圍。