本發(fā)明涉及計(jì)算機(jī),尤其涉及一種超算接口可信鑒別方法、超算接口可信鑒別系統(tǒng)及計(jì)算設(shè)備。
背景技術(shù):
1、超級(jí)計(jì)算中心api是指超級(jí)計(jì)算中心對(duì)外提供軟件服務(wù)的一種接口方式。基于超級(jí)計(jì)算中心api提供的服務(wù),用戶可以方便地管理其名下的所有計(jì)算資源、網(wǎng)絡(luò)資源和存儲(chǔ)資源,并且,可以根據(jù)業(yè)務(wù)需求快速調(diào)度資源、擴(kuò)縮容資源。為了滿足全場(chǎng)景接入需求,api通常是基于http協(xié)議來(lái)開(kāi)發(fā)。
2、但是,現(xiàn)有的超級(jí)計(jì)算中心api在實(shí)現(xiàn)上往往存在如下安全問(wèn)題:1)身份驗(yàn)證和授權(quán)過(guò)于簡(jiǎn)單,僅依賴用戶名和密碼組合很容易會(huì)被破解;2)參數(shù)容易被篡改,超級(jí)計(jì)算中心api請(qǐng)求被攔截后,攻擊者很容易通過(guò)篡改請(qǐng)求參數(shù)來(lái)達(dá)到獲取敏感數(shù)據(jù)、窮舉接口漏洞的目的;3)無(wú)法拒絕服務(wù)攻擊,向超級(jí)計(jì)算中心api發(fā)送大量請(qǐng)求會(huì)耗盡服務(wù)器資源,導(dǎo)致正常用戶無(wú)法訪問(wèn)超級(jí)計(jì)算中心api提供的服務(wù);4)權(quán)限范圍控制不足,導(dǎo)致用戶很容易訪問(wèn)到超出其授權(quán)范圍的其他信息。
3、因此,需要一種超算接口可信鑒別方法,來(lái)解決上述技術(shù)方案中存在的問(wèn)題。
技術(shù)實(shí)現(xiàn)思路
1、為此,本發(fā)明提供一種超算接口可信鑒別方法及超算接口可信鑒別系統(tǒng),以解決或至少緩解上面存在的問(wèn)題。
2、根據(jù)本發(fā)明的一個(gè)方面,提供一種超算接口可信鑒別方法,在服務(wù)端執(zhí)行以控制客戶端對(duì)超算接口的訪問(wèn)權(quán)限,所述超算接口用于對(duì)外提供算力資源服務(wù),所述算力資源服務(wù)用于管理計(jì)算資源、網(wǎng)絡(luò)資源和存儲(chǔ)資源,所述服務(wù)端與客戶端通信連接,所述方法包括:響應(yīng)于客戶端的登錄請(qǐng)求,對(duì)所述客戶端進(jìn)行用戶身份認(rèn)證;響應(yīng)于客戶端在用戶身份認(rèn)證通過(guò)后獲取超算接口的密鑰對(duì)的請(qǐng)求,向所述客戶端返回密鑰對(duì),其中,所述密鑰對(duì)包含所述客戶端的用戶標(biāo)識(shí)、與所述用戶標(biāo)識(shí)相對(duì)應(yīng)的第一密鑰信息;所述客戶端適于基于所述第一密鑰信息對(duì)請(qǐng)求信息進(jìn)行簽名,生成第一可信標(biāo)識(shí),所述請(qǐng)求信息包含來(lái)自所述客戶端的第一時(shí)間戳;接收所述客戶端基于所述用戶標(biāo)識(shí)發(fā)送的超算接口請(qǐng)求,所述超算接口請(qǐng)求包含所述請(qǐng)求信息和所述第一可信標(biāo)識(shí);從所述服務(wù)端獲取與所述用戶標(biāo)識(shí)相對(duì)應(yīng)的第二密鑰信息,基于所述第二密鑰信息對(duì)所述超算接口請(qǐng)求進(jìn)行簽名,生成第二可信標(biāo)識(shí);通過(guò)對(duì)比所述第一可信標(biāo)識(shí)與所述第二可信標(biāo)識(shí)是否一致,以對(duì)所述超算接口請(qǐng)求進(jìn)行第一可信鑒別,以及,通過(guò)判斷來(lái)自所述客戶端的所述第一時(shí)間戳與所述服務(wù)端的第二時(shí)間戳的時(shí)間差值是否小于等于時(shí)差閾值,以對(duì)所述超算接口請(qǐng)求進(jìn)行第二可信鑒別;如果所述第一可信鑒別和所述第二可信鑒別均通過(guò),則向所述客戶端提供所述算力資源服務(wù),以便所述客戶端通過(guò)所述算力資源服務(wù)管理所述客戶端的用戶標(biāo)識(shí)對(duì)應(yīng)的計(jì)算資源、網(wǎng)絡(luò)資源和存儲(chǔ)資源。
3、可選地,在根據(jù)本發(fā)明的超算接口可信鑒別方法中,還包括:如果所述第一可信鑒別和/或所述第二可信鑒別未通過(guò),則拒絕向客戶端提供所述算力資源服務(wù)。
4、可選地,在根據(jù)本發(fā)明的超算接口可信鑒別方法中,還包括:判斷預(yù)定時(shí)間間隔內(nèi)所述用戶標(biāo)識(shí)對(duì)應(yīng)的超算接口請(qǐng)求次數(shù)是否超過(guò)流量控制閾值,如果超過(guò)流量控制閾值,則對(duì)所述客戶端進(jìn)行流量限制,以限制所述客戶端繼續(xù)發(fā)送超算接口請(qǐng)求。
5、可選地,在根據(jù)本發(fā)明的超算接口可信鑒別方法中,通過(guò)對(duì)比所述第一可信標(biāo)識(shí)與所述第二可信標(biāo)識(shí)是否一致,以對(duì)所述超算接口請(qǐng)求進(jìn)行第一可信鑒別,包括:如果所述第一可信標(biāo)識(shí)與所述第二可信標(biāo)識(shí)一致,則確定第一可信鑒別通過(guò);如果所述第一可信標(biāo)識(shí)與所述第二可信標(biāo)識(shí)不一致,則確定第一可信鑒別未通過(guò);通過(guò)判斷來(lái)自所述客戶端的所述第一時(shí)間戳與所述服務(wù)端的第二時(shí)間戳的時(shí)間差值是否小于等于時(shí)差閾值,以對(duì)所述超算接口請(qǐng)求進(jìn)行第二可信鑒別,包括:如果所述時(shí)間差值小于等于時(shí)差閾值,則確定第二可信鑒別通過(guò);如果所述時(shí)間差值大于時(shí)差閾值,則確定第二可信鑒別未通過(guò)。
6、可選地,在根據(jù)本發(fā)明的超算接口可信鑒別方法中,所述請(qǐng)求信息包括:請(qǐng)求方法、請(qǐng)求路徑、請(qǐng)求頭、請(qǐng)求查詢參數(shù)、請(qǐng)求參數(shù)、請(qǐng)求行為信息;其中,所述請(qǐng)求頭包括所述第一時(shí)間戳、host字段和數(shù)據(jù)類型,所述請(qǐng)求行為信息包含請(qǐng)求可信加密方法、超算接口版本信息、服務(wù)信息和授權(quán)范圍;所述客戶端適于基于所述請(qǐng)求信息生成規(guī)整請(qǐng)求字符串,并基于所述第一密鑰信息對(duì)所述規(guī)整請(qǐng)求字符串進(jìn)行簽名,生成第一可信標(biāo)識(shí)。
7、可選地,在根據(jù)本發(fā)明的超算接口可信鑒別方法中,所述客戶端進(jìn)一步適于:對(duì)所述請(qǐng)求頭、請(qǐng)求查詢參數(shù)、請(qǐng)求參數(shù)進(jìn)行規(guī)整;將所述請(qǐng)求方法和請(qǐng)求路徑,與規(guī)整后的請(qǐng)求頭、請(qǐng)求查詢參數(shù)、請(qǐng)求參數(shù)進(jìn)行字符串拼接,生成規(guī)整請(qǐng)求體;將所述請(qǐng)求行為信息和所述密鑰對(duì)中的用戶標(biāo)識(shí),與所述規(guī)整請(qǐng)求體進(jìn)行拼接,生成規(guī)整請(qǐng)求字符串;利用所述請(qǐng)求可信加密方法,對(duì)可信標(biāo)識(shí)前綴、所述第一密鑰信息以及所述規(guī)整請(qǐng)求字符串進(jìn)行加密,并轉(zhuǎn)換成16進(jìn)制字符串,得到所述第一可信標(biāo)識(shí)。
8、可選地,在根據(jù)本發(fā)明的超算接口可信鑒別方法中,向所述客戶端提供所述算力資源服務(wù),包括:向所述客戶端提供與所述授權(quán)范圍相對(duì)應(yīng)的算力資源服務(wù)。
9、可選地,在根據(jù)本發(fā)明的超算接口可信鑒別方法中,基于所述第二密鑰信息對(duì)所述超算接口請(qǐng)求進(jìn)行簽名,生成第二可信標(biāo)識(shí),包括:從所述超算接口請(qǐng)求中獲取請(qǐng)求信息;對(duì)所述請(qǐng)求信息中的請(qǐng)求頭、請(qǐng)求查詢參數(shù)、請(qǐng)求參數(shù)進(jìn)行規(guī)整;將所述請(qǐng)求信息中的請(qǐng)求方法和請(qǐng)求路徑,與規(guī)整后的請(qǐng)求頭、請(qǐng)求查詢參數(shù)、請(qǐng)求參數(shù)進(jìn)行字符串拼接,生成規(guī)整請(qǐng)求體;將所述請(qǐng)求信息中的請(qǐng)求行為信息和所述密鑰對(duì)中的用戶標(biāo)識(shí),與所述規(guī)整請(qǐng)求體進(jìn)行拼接,生成規(guī)整請(qǐng)求字符串;利用所述請(qǐng)求信息中的請(qǐng)求可信加密方法,對(duì)可信標(biāo)識(shí)前綴、所述第一密鑰信息以及所述規(guī)整請(qǐng)求字符串進(jìn)行加密,并轉(zhuǎn)換成16進(jìn)制字符串,得到所述第一可信標(biāo)識(shí)。
10、可選地,在根據(jù)本發(fā)明的超算接口可信鑒別方法中,所述服務(wù)端包括服務(wù)監(jiān)聽(tīng)模塊、第二請(qǐng)求簽名模塊、用戶密鑰管理模塊;接收所述客戶端基于所述用戶標(biāo)識(shí)發(fā)送的超算接口請(qǐng)求,包括:所述服務(wù)監(jiān)聽(tīng)模塊監(jiān)聽(tīng)客戶端基于所述用戶標(biāo)識(shí)發(fā)送的超算接口請(qǐng)求,響應(yīng)于監(jiān)聽(tīng)到所述超算接口請(qǐng)求,向所述第二請(qǐng)求簽名模塊發(fā)送對(duì)所述超算接口請(qǐng)求的簽名請(qǐng)求;從所述服務(wù)端獲取與所述用戶標(biāo)識(shí)相對(duì)應(yīng)的第二密鑰信息,基于所述第二密鑰信息對(duì)所述超算接口請(qǐng)求進(jìn)行簽名,生成第二可信標(biāo)識(shí),包括:所述第二請(qǐng)求簽名模塊響應(yīng)于所述簽名請(qǐng)求,從所述用戶密鑰管理模塊獲取與所述用戶標(biāo)識(shí)相對(duì)應(yīng)的第二密鑰信息,基于所述第二密鑰信息對(duì)所述超算接口請(qǐng)求進(jìn)行簽名,生成第二可信標(biāo)識(shí)。
11、根據(jù)本發(fā)明的一個(gè)方面,提供一種超算接口可信鑒別系統(tǒng),包括:客戶端;服務(wù)端,與所述客戶端通信連接,適于執(zhí)行如上所述的方法,以控制客戶端對(duì)超算接口的訪問(wèn)權(quán)限,所述超算接口用于對(duì)外提供算力資源服務(wù),所述算力資源服務(wù)用于管理計(jì)算資源、網(wǎng)絡(luò)資源和存儲(chǔ)資源;其中,所述服務(wù)端包括:
12、用戶賬戶管理模塊,適于響應(yīng)于客戶端的登錄請(qǐng)求,對(duì)所述客戶端進(jìn)行用戶身份認(rèn)證;
13、用戶密鑰管理模塊,適于響應(yīng)于客戶端在用戶身份認(rèn)證通過(guò)后獲取超算接口的密鑰對(duì)的請(qǐng)求,向所述客戶端返回密鑰對(duì),其中,所述密鑰對(duì)包含所述客戶端的用戶標(biāo)識(shí)、與所述用戶標(biāo)識(shí)相對(duì)應(yīng)的第一密鑰信息;所述客戶端適于基于所述第一密鑰信息對(duì)請(qǐng)求信息進(jìn)行簽名,生成第一可信標(biāo)識(shí),所述請(qǐng)求信息包含來(lái)自所述客戶端的第一時(shí)間戳;
14、服務(wù)監(jiān)聽(tīng)模塊,適于接收所述客戶端基于所述用戶標(biāo)識(shí)發(fā)送的超算接口請(qǐng)求,所述超算接口請(qǐng)求包含所述請(qǐng)求信息和所述第一可信標(biāo)識(shí);
15、第二請(qǐng)求簽名模塊,適于從所述用戶密鑰管理模塊獲取與所述用戶標(biāo)識(shí)相對(duì)應(yīng)的第二密鑰信息,基于所述第二密鑰信息對(duì)所述超算接口請(qǐng)求進(jìn)行簽名,生成第二可信標(biāo)識(shí);
16、可信鑒別模塊,適于通過(guò)對(duì)比所述第一可信標(biāo)識(shí)與所述第二可信標(biāo)識(shí)是否一致,以對(duì)所述超算接口請(qǐng)求進(jìn)行第一可信鑒別,以及,通過(guò)判斷來(lái)自所述客戶端的所述第一時(shí)間戳與所述服務(wù)端的第二時(shí)間戳的時(shí)間差值是否小于等于時(shí)差閾值,以對(duì)所述超算接口請(qǐng)求進(jìn)行第二可信鑒別;
17、服務(wù)提供模塊,如果所述第一可信鑒別和所述第二可信鑒別均通過(guò),則所述服務(wù)提供模塊適于向所述客戶端提供所述算力資源服務(wù),以便所述客戶端通過(guò)所述算力資源服務(wù)管理所述客戶端的用戶標(biāo)識(shí)對(duì)應(yīng)的計(jì)算資源、網(wǎng)絡(luò)資源和存儲(chǔ)資源。
18、根據(jù)本發(fā)明的一個(gè)方面,提供一種計(jì)算設(shè)備,包括:至少一個(gè)處理器;存儲(chǔ)器,存儲(chǔ)有程序指令,其中,程序指令被配置為適于由上述至少一個(gè)處理器執(zhí)行,所述程序指令包括用于執(zhí)行如上所述的超算接口可信鑒別方法的指令。
19、根據(jù)本發(fā)明的一個(gè)方面,提供一種計(jì)算機(jī)程序產(chǎn)品,包括計(jì)算機(jī)程序/指令,其中,所述計(jì)算機(jī)程序/指令被處理器執(zhí)行時(shí)實(shí)現(xiàn)如上所述的方法。
20、根據(jù)本發(fā)明的一個(gè)方面,提供一種存儲(chǔ)有程序指令的可讀存儲(chǔ)介質(zhì),當(dāng)該程序指令被計(jì)算設(shè)備讀取并執(zhí)行時(shí),使得該計(jì)算設(shè)備執(zhí)行如上所述的超算接口可信鑒別方法。
21、根據(jù)本發(fā)明的技術(shù)方案,提供了一種超算接口可信鑒別方法,在對(duì)客戶端用戶進(jìn)行身份認(rèn)證的基礎(chǔ)上,客戶端和服務(wù)端還分別基于各自獲取到的第一密鑰信息和第二密鑰信息來(lái)對(duì)本次超算接口請(qǐng)求的請(qǐng)求信息進(jìn)行加密,并分別生成第一可信標(biāo)識(shí)和第二可信標(biāo)識(shí),服務(wù)端通過(guò)對(duì)比第一可信標(biāo)識(shí)和第二可信標(biāo)識(shí)來(lái)判斷請(qǐng)求信息是否被篡改、超算接口請(qǐng)求是否可信,并且,還通過(guò)驗(yàn)證客戶端與服務(wù)端請(qǐng)求的時(shí)間差來(lái)進(jìn)一步判斷超算接口請(qǐng)求是否可信。基于此,能夠加強(qiáng)對(duì)用戶訪問(wèn)超算接口的權(quán)限控制和授權(quán)保護(hù)機(jī)制,防止超算接口請(qǐng)求信息被篡改。
22、進(jìn)一步地,服務(wù)端還通過(guò)驗(yàn)證客戶端發(fā)送請(qǐng)求的次數(shù)是否超過(guò)流量控制閾值,來(lái)決定是否對(duì)客戶端進(jìn)行流量限制。基于此,能夠避免服務(wù)攻擊。
23、此外,通過(guò)向客戶端提供與授權(quán)范圍相對(duì)應(yīng)的算力資源服務(wù),能夠控制客戶端用戶對(duì)算力資源服務(wù)的授權(quán)訪問(wèn)范圍。
24、上述說(shuō)明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說(shuō)明書(shū)的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)能夠更明顯易懂,以下特舉本發(fā)明的具體實(shí)施方式。