本技術(shù)涉及網(wǎng)絡(luò)安全,尤其涉及一種第三方服務(wù)訪(fǎng)問(wèn)方法及裝置。
背景技術(shù):
1、隨著信息技術(shù)和互聯(lián)網(wǎng)的迅猛發(fā)展,越來(lái)越多的應(yīng)用程序需要通過(guò)第三方服務(wù)進(jìn)行功能擴(kuò)展和數(shù)據(jù)交換,在這種應(yīng)用場(chǎng)景下,應(yīng)用程序編程接口(applicationprogramming?interface,api)憑證作為api訪(fǎng)問(wèn)的身份認(rèn)證和權(quán)限控制手段,其安全性直接影響到整個(gè)系統(tǒng)的安全。
2、現(xiàn)有的存儲(chǔ)和管理api憑證方式通常包括將明文api憑證存儲(chǔ)在配置文件中,或者將api密文和解密密鑰一起存儲(chǔ)在配置文件中,一旦配置文件被攻陷,api憑證極有可能被攻擊者竊取和濫用。
技術(shù)實(shí)現(xiàn)思路
1、本技術(shù)提供一種第三方服務(wù)訪(fǎng)問(wèn)方法及裝置,用于提高api憑證的安全性。
2、第一方面,本技術(shù)實(shí)施例提供一種第三方服務(wù)訪(fǎng)問(wèn)方法,該方法可以由api安全網(wǎng)關(guān)所執(zhí)行,所述方法包括:接收第一客戶(hù)端發(fā)送的針對(duì)第三方服務(wù)的第一訪(fǎng)問(wèn)請(qǐng)求,所述第一訪(fǎng)問(wèn)請(qǐng)求中攜帶api密文憑證;所述api密文憑證是通過(guò)第二客戶(hù)端對(duì)所述第一客戶(hù)端訪(fǎng)問(wèn)所述第三方服務(wù)所需要的api明文憑證進(jìn)行加密后生成的;所述第二客戶(hù)端是所述api安全網(wǎng)關(guān)為所述第一客戶(hù)端確定的;確定所述第一訪(fǎng)問(wèn)請(qǐng)求對(duì)應(yīng)的所述第二客戶(hù)端,并將所述第一訪(fǎng)問(wèn)請(qǐng)求轉(zhuǎn)發(fā)至所述第二客戶(hù)端;所述第二客戶(hù)端用于對(duì)所述api密文憑證進(jìn)行解密,將解密后的api明文憑證攜帶于第二訪(fǎng)問(wèn)請(qǐng)求中并發(fā)送至所述第三方服務(wù)。
3、在一種可能的實(shí)現(xiàn)方式中,接收第一客戶(hù)端發(fā)送的針對(duì)第三方服務(wù)的第一訪(fǎng)問(wèn)請(qǐng)求之前,還包括:接收針對(duì)第一客戶(hù)端的api明文憑證的加密請(qǐng)求;所述加密請(qǐng)求中包括第一客戶(hù)端的網(wǎng)絡(luò)協(xié)議ip地址和所述api明文憑證;根據(jù)預(yù)設(shè)分配方法將所述api明文憑證分配至所述第二客戶(hù)端;接收所述第二客戶(hù)端對(duì)所述api明文憑證加密后的所述api密文憑證;所述api密文憑證用于配置至所述第一客戶(hù)端。
4、在一種可能的實(shí)現(xiàn)方式中,根據(jù)預(yù)設(shè)分配方法將所述api明文憑證分配至所述第二客戶(hù)端,包括:所述第二客戶(hù)端屬于待分配客戶(hù)端集合中的任一客戶(hù)端,所述待分配客戶(hù)端集合中不包括所述第一客戶(hù)端;所述第二客戶(hù)端被分配所述api明文憑證的概率是根據(jù)所述第二客戶(hù)端已記錄的密鑰數(shù)量、所述第二客戶(hù)端能夠記錄的密鑰數(shù)量的最大值、所述待分配客戶(hù)端集合中所有客戶(hù)端已記錄的密鑰數(shù)量以及所述所有客戶(hù)端能夠記錄的密鑰數(shù)量的最大值確定的。
5、在一種可能的實(shí)現(xiàn)方式中,接收第一客戶(hù)端發(fā)送的針對(duì)第三方服務(wù)的第一訪(fǎng)問(wèn)請(qǐng)求之前,所述方法還包括:接收所述第一客戶(hù)端發(fā)送的隨機(jī)數(shù)生成請(qǐng)求;生成隨機(jī)數(shù)并將所述隨機(jī)數(shù)發(fā)送至所述第一客戶(hù)端;所述第一訪(fǎng)問(wèn)請(qǐng)求包括所述隨機(jī)數(shù)和所述api密文憑證。
6、在一種可能的實(shí)現(xiàn)方式中,所述第一訪(fǎng)問(wèn)請(qǐng)求中還包括所述第一客戶(hù)端生成的通用唯一識(shí)別碼uuid以及api憑證簽名;所述api憑證簽名是所述第一客戶(hù)端對(duì)所述隨機(jī)數(shù)、所述api密文憑證和所述uuid進(jìn)行拼接后簽名得到的;接收第一客戶(hù)端發(fā)送的針對(duì)第三方服務(wù)的第一訪(fǎng)問(wèn)請(qǐng)求之后,確定所述第一訪(fǎng)問(wèn)請(qǐng)求對(duì)應(yīng)的所述第二客戶(hù)端之前,還包括:對(duì)所述api憑證簽名驗(yàn)證通過(guò),且確定所述uuid有效。
7、在一種可能的實(shí)現(xiàn)方式中,接收第一客戶(hù)端發(fā)送的針對(duì)第三方服務(wù)的第一訪(fǎng)問(wèn)請(qǐng)求之后,確定所述第一訪(fǎng)問(wèn)請(qǐng)求對(duì)應(yīng)的所述第二客戶(hù)端之前,還包括:通過(guò)異常檢測(cè)模型,確定所述第一訪(fǎng)問(wèn)請(qǐng)求為正常訪(fǎng)問(wèn)請(qǐng)求;所述異常檢測(cè)模型是通過(guò)對(duì)歷史訪(fǎng)問(wèn)數(shù)據(jù)對(duì)應(yīng)的時(shí)間序列數(shù)據(jù)進(jìn)行訓(xùn)練得到的。
8、第二方面,本技術(shù)實(shí)施例提供一種第三方服務(wù)訪(fǎng)問(wèn)方法,該方法可以由第一客戶(hù)端來(lái)執(zhí)行,所述方法包括:確定所述第一客戶(hù)端訪(fǎng)問(wèn)第三方服務(wù)的所需的api密文憑證;所述api密文憑證是通過(guò)第二客戶(hù)端對(duì)所述第一客戶(hù)端訪(fǎng)問(wèn)所述第三方服務(wù)所需要的api明文憑證進(jìn)行加密后生成的;所述第二客戶(hù)端是api安全網(wǎng)關(guān)為所述第一客戶(hù)端確定的;生成攜帶所述api密文憑證的第一訪(fǎng)問(wèn)請(qǐng)求并發(fā)送至所述api安全網(wǎng)關(guān),所述第一訪(fǎng)問(wèn)請(qǐng)求被用于觸發(fā)所述api安全網(wǎng)關(guān)確定處理所述第一訪(fǎng)問(wèn)請(qǐng)求的所述第二客戶(hù)端,所述第二客戶(hù)端用于將所述api密文憑證解密得到的api明文憑證攜帶于第二訪(fǎng)問(wèn)請(qǐng)求中并發(fā)送至所述第三方服務(wù)。
9、在一種可能的實(shí)現(xiàn)方式中,生成攜帶所述api密文憑證的第一訪(fǎng)問(wèn)請(qǐng)求,包括:向所述api安全網(wǎng)關(guān)發(fā)送隨機(jī)數(shù)生成請(qǐng)求;接收所述api安全網(wǎng)關(guān)發(fā)送的隨機(jī)數(shù);生成攜帶所述隨機(jī)數(shù)和所述api密文憑證的第一訪(fǎng)問(wèn)請(qǐng)求。
10、在一種可能的實(shí)現(xiàn)方式中,生成攜帶所述隨機(jī)數(shù)和所述api密文憑證的第一訪(fǎng)問(wèn)請(qǐng)求,包括:確定通用唯一識(shí)別碼uuid;將所述隨機(jī)數(shù)、所述api密文憑證和所述uuid進(jìn)行拼接后簽名,得到api憑證簽名;生成攜帶所述隨機(jī)數(shù)、所述api密文憑證、所述uuid和所述api憑證簽名的第一訪(fǎng)問(wèn)請(qǐng)求。
11、在一種可能的實(shí)現(xiàn)方式中,所述第一訪(fǎng)問(wèn)請(qǐng)求還包括起始符和結(jié)束符。
12、第三方面,本技術(shù)實(shí)施例提供一種第三方服務(wù)訪(fǎng)問(wèn)方法,該方法可以由第二客戶(hù)端來(lái)執(zhí)行,所述方法包括:接收api安全網(wǎng)關(guān)發(fā)送的第一訪(fǎng)問(wèn)請(qǐng)求,所述第一訪(fǎng)問(wèn)請(qǐng)求是第一客戶(hù)端針對(duì)第三方服務(wù)的訪(fǎng)問(wèn)請(qǐng)求,所述第一訪(fǎng)問(wèn)請(qǐng)求中攜帶api密文憑證;確定所述第一客戶(hù)端對(duì)應(yīng)的密鑰;根據(jù)所述密鑰對(duì)所述api密文憑證進(jìn)行解密,將解密后的api明文憑證攜帶于第二訪(fǎng)問(wèn)請(qǐng)求中并發(fā)送至所述第三方服務(wù)。
13、在一種可能的實(shí)現(xiàn)方式中,接收api安全網(wǎng)關(guān)發(fā)送的第一訪(fǎng)問(wèn)請(qǐng)求之前,所述方法還包括:接收所述api安全網(wǎng)關(guān)分配的關(guān)于所述第一客戶(hù)端的api明文憑證;根據(jù)所述第一客戶(hù)端的ip地址生成所述第一客戶(hù)端對(duì)應(yīng)的密鑰;根據(jù)所述第一客戶(hù)端對(duì)應(yīng)的密鑰和所述api明文憑證,生成所述api密文憑證;將所述api密文憑證發(fā)送至所述api安全網(wǎng)關(guān)。
14、第四方面,本技術(shù)實(shí)施例提供一種第三方服務(wù)訪(fǎng)問(wèn)裝置,所述裝置包括,接收模塊,用于接收第一客戶(hù)端發(fā)送的針對(duì)第三方服務(wù)的第一訪(fǎng)問(wèn)請(qǐng)求,所述第一訪(fǎng)問(wèn)請(qǐng)求中攜帶api密文憑證;所述api密文憑證是通過(guò)第二客戶(hù)端對(duì)所述第一客戶(hù)端訪(fǎng)問(wèn)所述第三方服務(wù)所需要的api明文憑證進(jìn)行加密后生成的;所述第二客戶(hù)端是所述api安全網(wǎng)關(guān)為所述第一客戶(hù)端確定的;確定模塊,用于確定所述第一訪(fǎng)問(wèn)請(qǐng)求對(duì)應(yīng)的所述第二客戶(hù)端,發(fā)送模塊,用于將所述第一訪(fǎng)問(wèn)請(qǐng)求轉(zhuǎn)發(fā)至所述第二客戶(hù)端;所述第二客戶(hù)端用于對(duì)所述api密文憑證進(jìn)行解密,將解密后的api明文憑證攜帶于第二訪(fǎng)問(wèn)請(qǐng)求中并發(fā)送至所述第三方服務(wù)。
15、在一種可能的實(shí)現(xiàn)方式中,所述接收模塊還用于,接收針對(duì)第一客戶(hù)端的api明文憑證的加密請(qǐng)求;所述加密請(qǐng)求中包括第一客戶(hù)端的網(wǎng)絡(luò)協(xié)議ip地址和所述api明文憑證;所述裝置還包括分配模塊,所述分配模塊用于根據(jù)預(yù)設(shè)分配方法將所述api明文憑證分配至所述第二客戶(hù)端;所述接收模塊還用于,接收所述第二客戶(hù)端對(duì)所述api明文憑證加密后的所述api密文憑證;所述api密文憑證用于配置至所述第一客戶(hù)端。
16、在一種可能的實(shí)現(xiàn)方式中,所述接收模塊還用于,接收所述第一客戶(hù)端發(fā)送的隨機(jī)數(shù)生成請(qǐng)求;所述裝置還包括生成模塊,所述生成模塊用于,生成隨機(jī)數(shù);所述發(fā)送模塊還用于,并將所述隨機(jī)數(shù)發(fā)送至所述第一客戶(hù)端;所述第一訪(fǎng)問(wèn)請(qǐng)求包括所述隨機(jī)數(shù)和所述api密文憑證。
17、在一種可能的實(shí)現(xiàn)方式中,所述裝置還包括驗(yàn)證模塊,所述驗(yàn)證模塊用于對(duì)所述api憑證簽名驗(yàn)證通過(guò),且確定所述uuid有效。
18、在一種可能的實(shí)現(xiàn)方式中,所述確定模塊還用于,通過(guò)異常檢測(cè)模型,確定所述第一訪(fǎng)問(wèn)請(qǐng)求為正常訪(fǎng)問(wèn)請(qǐng)求;所述異常檢測(cè)模型是通過(guò)對(duì)歷史訪(fǎng)問(wèn)數(shù)據(jù)對(duì)應(yīng)的時(shí)間序列數(shù)據(jù)進(jìn)行訓(xùn)練得到的。
19、第五方面,本技術(shù)實(shí)施例提供一種第三方服務(wù)訪(fǎng)問(wèn)裝置,所述裝置包括,確定模塊,用于確定所述第一客戶(hù)端訪(fǎng)問(wèn)第三方服務(wù)的所需的api密文憑證;所述api密文憑證是通過(guò)第二客戶(hù)端對(duì)所述第一客戶(hù)端訪(fǎng)問(wèn)所述第三方服務(wù)所需要的api明文憑證進(jìn)行加密后生成的;所述第二客戶(hù)端是api安全網(wǎng)關(guān)為所述第一客戶(hù)端確定的;生成模塊,用于生成攜帶所述api密文憑證的第一訪(fǎng)問(wèn)請(qǐng)求;發(fā)送模塊,用于發(fā)送所述第一訪(fǎng)問(wèn)請(qǐng)求至所述api安全網(wǎng)關(guān),所述第一訪(fǎng)問(wèn)請(qǐng)求被用于觸發(fā)所述api安全網(wǎng)關(guān)確定處理所述第一訪(fǎng)問(wèn)請(qǐng)求的所述第二客戶(hù)端,所述第二客戶(hù)端用于將所述api密文憑證解密得到的api明文憑證攜帶于第二訪(fǎng)問(wèn)請(qǐng)求中并發(fā)送至所述第三方服務(wù)。
20、在一種可能的實(shí)現(xiàn)方法中,所述發(fā)送模塊還用于,向所述api安全網(wǎng)關(guān)發(fā)送隨機(jī)數(shù)生成請(qǐng)求;所述裝置還包括接收模塊,所述接收模塊用于接收所述api安全網(wǎng)關(guān)發(fā)送的隨機(jī)數(shù);所述生成模塊具體用于,生成攜帶所述隨機(jī)數(shù)和所述api密文憑證的第一訪(fǎng)問(wèn)請(qǐng)求。
21、在一種可能的實(shí)現(xiàn)方法中,所述確定模塊還用于,確定通用唯一識(shí)別碼uuid;所述裝置還包括處理模塊,所述處理模塊用于將所述隨機(jī)數(shù)、所述api密文憑證和所述uuid進(jìn)行拼接后簽名,得到api憑證簽名;所述生成模塊具體用于,生成攜帶所述隨機(jī)數(shù)、所述api密文憑證、所述uuid和所述api憑證簽名的第一訪(fǎng)問(wèn)請(qǐng)求。
22、第六方面,本技術(shù)實(shí)施例提供一種第三方服務(wù)訪(fǎng)問(wèn)裝置,所述裝置包括,接收模塊,用于接收api安全網(wǎng)關(guān)發(fā)送的第一訪(fǎng)問(wèn)請(qǐng)求,所述第一訪(fǎng)問(wèn)請(qǐng)求是第一客戶(hù)端針對(duì)第三方服務(wù)的訪(fǎng)問(wèn)請(qǐng)求,所述第一訪(fǎng)問(wèn)請(qǐng)求中攜帶api密文憑證;確定模塊,用于確定所述第一客戶(hù)端對(duì)應(yīng)的密鑰;解密模塊,用于根據(jù)所述密鑰對(duì)所述api密文憑證進(jìn)行解密,發(fā)送模塊,用于將解密后的api明文憑證攜帶于第二訪(fǎng)問(wèn)請(qǐng)求中并發(fā)送至所述第三方服務(wù)。
23、在一種可能的實(shí)現(xiàn)方式中,所述接收模塊還用于,接收所述api安全網(wǎng)關(guān)分配的關(guān)于所述第一客戶(hù)端的api明文憑證;所述裝置還包括生成模塊,所述生成模塊用于,根據(jù)所述第一客戶(hù)端的ip地址生成所述第一客戶(hù)端對(duì)應(yīng)的密鑰;以及,根據(jù)所述第一客戶(hù)端對(duì)應(yīng)的密鑰和所述api明文憑證,生成所述api密文憑證;所述發(fā)送模塊還用于,將所述api密文憑證發(fā)送至所述api安全網(wǎng)關(guān)。
24、第七方面,本技術(shù)實(shí)施例提供一種第三方服務(wù)訪(fǎng)問(wèn)設(shè)備,該設(shè)備包括存儲(chǔ)器和處理器,所述存儲(chǔ)器,用于存儲(chǔ)計(jì)算機(jī)程序或指令;所述處理器,用于調(diào)用所述存儲(chǔ)器中存儲(chǔ)的計(jì)算機(jī)程序或指令,執(zhí)行如第一方面至第三方面中任一種可能的實(shí)現(xiàn)方式中的方法。
25、第八方面,本技術(shù)實(shí)施例提供一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中存儲(chǔ)有指令,當(dāng)計(jì)算機(jī)讀取并執(zhí)行所述指令時(shí),使得所述計(jì)算機(jī)執(zhí)行如第一方面至第三方面中任一種可能的實(shí)現(xiàn)方式中的方法。
26、第九方面,本技術(shù)實(shí)施例提供一種計(jì)算機(jī)程序產(chǎn)品,所述計(jì)算機(jī)程序產(chǎn)品中存儲(chǔ)有指令,當(dāng)計(jì)算機(jī)讀取并執(zhí)行所述指令時(shí),使得計(jì)算機(jī)執(zhí)行如第一方面至第三方面中任一種可能的實(shí)現(xiàn)方式中。