小,便于在傳輸過程中節(jié)省流量。在得到原始數(shù)據(jù)包后,通過同樣的哈希算法計(jì)算得到哈希值,直接與加固數(shù)據(jù)包中攜帶的哈希值進(jìn)行比較即可,方便快捷。
[0081]步驟S340,根據(jù)驗(yàn)證數(shù)據(jù)和第二運(yùn)算結(jié)果驗(yàn)證原始數(shù)據(jù)包,并根據(jù)驗(yàn)證結(jié)果執(zhí)行對(duì)應(yīng)的操作。
[0082]具體的,如果網(wǎng)關(guān)收到的加固數(shù)據(jù)包中不能提取到驗(yàn)證數(shù)據(jù),或第二運(yùn)算結(jié)果與驗(yàn)證數(shù)據(jù)中提取出的第一運(yùn)算結(jié)果不同或不相應(yīng),則數(shù)據(jù)包的驗(yàn)證結(jié)果為驗(yàn)證失敗。如果能提取到驗(yàn)證數(shù)據(jù)并且從驗(yàn)證數(shù)據(jù)中提取的第一運(yùn)算結(jié)果與第二運(yùn)算結(jié)果相同或相應(yīng),則數(shù)據(jù)包的驗(yàn)證結(jié)果為驗(yàn)證成功。如果驗(yàn)證成功,則將原始數(shù)據(jù)包發(fā)送至服務(wù)器,如果驗(yàn)證失敗,則不進(jìn)行發(fā)送,防止驗(yàn)證失敗的數(shù)據(jù)包對(duì)服務(wù)器進(jìn)行攻擊。
[0083]本實(shí)施例中,通過接收終端發(fā)送的加固數(shù)據(jù)包,根據(jù)與終端進(jìn)行通信的通信協(xié)議提取加固數(shù)據(jù)包中的驗(yàn)證數(shù)據(jù),將驗(yàn)證數(shù)據(jù)從加固數(shù)據(jù)包中刪除得到原始數(shù)據(jù)包,根據(jù)與終端相應(yīng)的第二預(yù)設(shè)算法對(duì)原始數(shù)據(jù)包進(jìn)行運(yùn)算得到第二運(yùn)算結(jié)果,根據(jù)驗(yàn)證數(shù)據(jù)和第二運(yùn)算結(jié)果驗(yàn)證原始數(shù)據(jù)包,并根據(jù)驗(yàn)證結(jié)果執(zhí)行對(duì)應(yīng)的操作,通過提取驗(yàn)證數(shù)據(jù)得到原始數(shù)據(jù)包和與終端相應(yīng)的第二預(yù)設(shè)算法對(duì)原始數(shù)據(jù)包進(jìn)行運(yùn)算得到第二運(yùn)算結(jié)果從而能根據(jù)第二運(yùn)算結(jié)果對(duì)原始數(shù)據(jù)包進(jìn)行驗(yàn)證,與終端配合保證數(shù)據(jù)傳輸安全,并且根據(jù)驗(yàn)證結(jié)果執(zhí)行對(duì)應(yīng)的操作,防止驗(yàn)證不通過的數(shù)據(jù)包造成的安全隱患。
[0084]步驟S340,根據(jù)驗(yàn)證數(shù)據(jù)和第二運(yùn)算結(jié)果驗(yàn)證原始數(shù)據(jù)包,并根據(jù)驗(yàn)證結(jié)果執(zhí)行對(duì)應(yīng)的操作進(jìn)一步包括以下步驟:
[0085]步驟S341,提取驗(yàn)證數(shù)據(jù)中的第一運(yùn)算結(jié)果和第三運(yùn)算結(jié)果。
[0086]具體的,由于網(wǎng)關(guān)向終端發(fā)送了第二驗(yàn)證數(shù)據(jù)導(dǎo)致加固數(shù)據(jù)包進(jìn)行了雙層加固,驗(yàn)證數(shù)據(jù)中包括2種不同的運(yùn)算結(jié)果,提取驗(yàn)證數(shù)據(jù)中的第一運(yùn)算結(jié)果和第三運(yùn)算結(jié)果??梢岳斫獾氖牵梢愿鶕?jù)通信協(xié)議的不同,在相應(yīng)的位置提取第一運(yùn)算結(jié)果和第三運(yùn)算結(jié)果O
[0087]步驟S342,將第一運(yùn)算結(jié)果和第二運(yùn)算結(jié)果進(jìn)行對(duì)比驗(yàn)證原始數(shù)據(jù)包。
[0088]具體的,由于第一預(yù)設(shè)算法和第二預(yù)設(shè)算法相同或相應(yīng),第一運(yùn)算結(jié)果和第二運(yùn)算結(jié)果也相同或有相應(yīng)的關(guān)系,如果第一運(yùn)算結(jié)果和第二運(yùn)算結(jié)果相同或符合相應(yīng)關(guān)系,則說明原始數(shù)據(jù)包驗(yàn)證通過,否則驗(yàn)證不通過。如果驗(yàn)證不通過則可以提前結(jié)束驗(yàn)證過程,直接將驗(yàn)證不通過的數(shù)據(jù)包丟棄。
[0089]步驟S343,并根據(jù)第三運(yùn)算結(jié)果和第二驗(yàn)證數(shù)據(jù)驗(yàn)證原始數(shù)據(jù)包。
[0090]具體的,第三運(yùn)算結(jié)果有對(duì)應(yīng)的正確運(yùn)算結(jié)果,將第三運(yùn)算結(jié)果與正確運(yùn)算結(jié)果進(jìn)行對(duì)比,如果相同,則說明數(shù)據(jù)包驗(yàn)證通過,如果不同,則數(shù)據(jù)包驗(yàn)證不通過。正確運(yùn)算結(jié)果通過第二驗(yàn)證數(shù)據(jù)的具體內(nèi)容得到。通過發(fā)送第二驗(yàn)證數(shù)據(jù)至終端,使得接收到根據(jù)第二驗(yàn)證數(shù)據(jù)修改后的數(shù)據(jù)包,可以防止黑客截取傳輸過程中的數(shù)據(jù)包后發(fā)送相同的數(shù)據(jù)包對(duì)服務(wù)器進(jìn)行攻擊,由于黑客接收到第二驗(yàn)證數(shù)據(jù)后并不知道如何根據(jù)第二驗(yàn)證數(shù)據(jù)進(jìn)行相應(yīng)的處理,以致于在網(wǎng)關(guān)收到終端返回的數(shù)據(jù)包后可以分辨發(fā)送方,將驗(yàn)證不通過的數(shù)據(jù)包丟棄。
[0091]在一個(gè)實(shí)施例中,如圖5所示,提供了一種數(shù)據(jù)安全傳輸?shù)难b置,包括:
[0092]第一運(yùn)算模塊510,用于根據(jù)第一預(yù)設(shè)算法對(duì)原始數(shù)據(jù)包進(jìn)行運(yùn)算得到第一運(yùn)算結(jié)果。
[0093]具體的,終端安裝的軟件應(yīng)用在發(fā)布前進(jìn)行了處理,使得其在數(shù)據(jù)傳輸?shù)倪^程中自動(dòng)執(zhí)行相應(yīng)的操作提高數(shù)據(jù)傳輸安全??赏ㄟ^修改軟件應(yīng)用原始代碼的方式改變軟件應(yīng)用與網(wǎng)關(guān)的通信過程。在一個(gè)實(shí)施例中,在發(fā)布軟件應(yīng)用前對(duì)軟件應(yīng)用的代碼加殼,并進(jìn)行加密,對(duì)代碼進(jìn)行混淆處理,降低軟件應(yīng)用被破解的風(fēng)險(xiǎn)。當(dāng)終端需要與網(wǎng)關(guān)進(jìn)行通信時(shí),如登錄應(yīng)用軟件時(shí),獲取需要發(fā)送的數(shù)據(jù)包并對(duì)數(shù)據(jù)包進(jìn)行處理。第一預(yù)設(shè)算法可以根據(jù)需要自定義,如計(jì)算數(shù)據(jù)包的長(zhǎng)度,對(duì)數(shù)據(jù)包的長(zhǎng)度進(jìn)行自定義公式的計(jì)算等。同時(shí)第一預(yù)設(shè)算法是預(yù)先與網(wǎng)關(guān)約定好的相應(yīng)的算法,便于網(wǎng)關(guān)收到加固數(shù)據(jù)包后根據(jù)約定的算法進(jìn)行解析。
[0094]第一加固模塊520,用于根據(jù)與網(wǎng)關(guān)進(jìn)行通信的通信協(xié)議將第一運(yùn)算結(jié)果插入原始數(shù)據(jù)包以獲得加固數(shù)據(jù)包。
[0095]具體的,軟件應(yīng)用由于開發(fā)方式各異,在與網(wǎng)關(guān)進(jìn)行通信時(shí)可能使用不同的通信協(xié)議,如HTTP協(xié)議,SMTP協(xié)議等。第一加固模塊520根據(jù)與網(wǎng)關(guān)進(jìn)行通信的不同的通訊協(xié)議,將第一運(yùn)算結(jié)果插入與協(xié)議相應(yīng)的位置的數(shù)據(jù)包中,得到加固數(shù)據(jù)包。插入的拉置,可根據(jù)通訊協(xié)議的不同自定義,如在通過SMTP協(xié)議時(shí),將第一運(yùn)算結(jié)果插入收件人郵箱地址。加固數(shù)據(jù)包不僅包括原始數(shù)據(jù)包的全部?jī)?nèi)容,還包括用于驗(yàn)證原始數(shù)據(jù)包而加入的驗(yàn)證數(shù)據(jù),包括第一運(yùn)算結(jié)果和/或新增的表明第一運(yùn)算結(jié)果查找位置的特殊字符,如cookie,加固數(shù)據(jù)包用于在網(wǎng)關(guān)收到后,根據(jù)提取的驗(yàn)證數(shù)據(jù)對(duì)原始數(shù)據(jù)包進(jìn)行驗(yàn)證。
[0096]發(fā)送模塊530,用于發(fā)送加固數(shù)據(jù)包至網(wǎng)關(guān),以使得網(wǎng)關(guān)根據(jù)與第一預(yù)設(shè)算法對(duì)應(yīng)的第二預(yù)設(shè)算法對(duì)加固數(shù)據(jù)包進(jìn)行驗(yàn)證。
[0097]具體的,發(fā)送模塊530發(fā)送加固數(shù)據(jù)包至網(wǎng)關(guān),網(wǎng)關(guān)在收到加固數(shù)據(jù)包后會(huì)根據(jù)與第一預(yù)設(shè)算法對(duì)應(yīng)的第二預(yù)設(shè)算法對(duì)加固數(shù)據(jù)包進(jìn)行驗(yàn)證從而達(dá)到終端與網(wǎng)關(guān)關(guān)聯(lián)互動(dòng)保證數(shù)據(jù)傳輸安全的作用,第二預(yù)設(shè)算法可與第一預(yù)設(shè)算法相同或不同。在一個(gè)實(shí)施例中,在發(fā)送加固數(shù)據(jù)包至網(wǎng)關(guān)前,對(duì)加固數(shù)據(jù)包進(jìn)行非對(duì)稱加密,進(jìn)一步保證數(shù)據(jù)包的傳輸安全。
[0098]在一個(gè)實(shí)施例中,第一運(yùn)算模塊510還用于將原始數(shù)據(jù)包進(jìn)行哈希計(jì)算得到哈希值。
[0099]具體的,哈希算法將任意長(zhǎng)度的二進(jìn)制值映射為較短的固定長(zhǎng)度的二進(jìn)制值,這個(gè)小的二進(jìn)制值稱為哈希值。對(duì)于較大的數(shù)據(jù)包進(jìn)行哈希運(yùn)算后可得到較小的哈希值,占用空間小,便于在傳輸過程中節(jié)省流量。
[0100]在一個(gè)實(shí)施例中,通信協(xié)議為HTTP協(xié)議,第一加固模塊520還用于將第一運(yùn)算結(jié)果插入到原始數(shù)據(jù)包的cookie或新增的cookie中。
[0101]具體的,cookie是網(wǎng)站為了辨別用戶身份、進(jìn)行sess1n跟蹤而儲(chǔ)存在用戶本地終端上的數(shù)據(jù),在通過HTTP協(xié)議進(jìn)行通信時(shí),第一加固模塊520將第一運(yùn)算結(jié)果插入到cookie中得到加固數(shù)據(jù)包,簡(jiǎn)單方便。如需要登錄軟件應(yīng)用時(shí),終端向服務(wù)器發(fā)起一次 HTTP 請(qǐng)求,需要發(fā)送的數(shù)據(jù)包為 “Get 1ging ? Username = admin&pwd = admin”,在發(fā)送前對(duì)數(shù)據(jù)包進(jìn)行運(yùn)算得到第一運(yùn)算結(jié)果,如進(jìn)行哈希計(jì)算得到哈希值為12345,將哈希值插入到cookie中,得到加固數(shù)據(jù)包為“Get login ? Username = admi&pwd = adminCookie:af_cookie = 12345 ; ”。
[0102]在一個(gè)實(shí)施例中,如圖6所示,所述裝置還包括:
[0103]第二加固模塊540,用于接收網(wǎng)關(guān)發(fā)送的第二驗(yàn)證數(shù)據(jù),根據(jù)第三預(yù)設(shè)算法對(duì)第二驗(yàn)證數(shù)據(jù)進(jìn)行運(yùn)算得到第三運(yùn)算結(jié)果,將第三運(yùn)算結(jié)果插入到加固數(shù)據(jù)包中,以使得網(wǎng)關(guān)根據(jù)第三運(yùn)算結(jié)果對(duì)加固數(shù)據(jù)包進(jìn)行驗(yàn)證。
[0104]具體的,第一加固模塊520根據(jù)不同的通訊協(xié)議,可將第一運(yùn)算結(jié)果插入數(shù)據(jù)包與協(xié)議相應(yīng)的位置,得到加固數(shù)據(jù)包后,第二加固模塊540當(dāng)接收到網(wǎng)關(guān)發(fā)送的第二驗(yàn)證數(shù)據(jù)時(shí),根據(jù)約定的第三預(yù)設(shè)算法對(duì)第二驗(yàn)證數(shù)據(jù)進(jìn)行運(yùn)算得到第三運(yùn)算結(jié)果,第三預(yù)設(shè)算法可以根據(jù)需要自定義,也可根據(jù)收到的數(shù)據(jù)定義不同的第三預(yù)設(shè)算法,進(jìn)一步提高對(duì)所述加固數(shù)據(jù)包處理的靈活性,降低所述加固數(shù)據(jù)包被黑客破解的概率。如收到的數(shù)據(jù)為“ 1+1”,則對(duì)收到的數(shù)據(jù)進(jìn)行解析,提取特定符號(hào),并獲取與提取的特定符號(hào)對(duì)應(yīng)的第三預(yù)設(shè)算法,如提取的符號(hào)為“ + ”號(hào),則第三預(yù)設(shè)算法為進(jìn)行加法運(yùn)算,得到2,將2插入到加固數(shù)據(jù)包中。
[0105]在一個(gè)實(shí)施例中,如圖7所示,提供了一種數(shù)據(jù)安全傳輸?shù)难b置,包括:
[0106]接收模塊610,用于接收終端發(fā)送的加固數(shù)據(jù)包。
[0107]具體的,由于終端在發(fā)送前對(duì)數(shù)據(jù)包進(jìn)行了處理,所以接收模塊610收到的數(shù)據(jù)包為加固數(shù)據(jù)包。
[0108]提取模塊620,用于根據(jù)與終端進(jìn)行通信的通信協(xié)議提取加固數(shù)據(jù)包中的驗(yàn)證數(shù)據(jù),將驗(yàn)證數(shù)據(jù)從加固數(shù)據(jù)包中刪除得到原始數(shù)據(jù)包。
[0109]具體的,通信協(xié)議可能為HTTP協(xié)議,SMTP協(xié)議等,根據(jù)通信協(xié)議不同從加固數(shù)據(jù)包的不同位置提取驗(yàn)證數(shù)據(jù),如當(dāng)通信協(xié)議為SMTP協(xié)議時(shí),從收件人郵箱地址中提取驗(yàn)證數(shù)據(jù)。提取時(shí)查找與協(xié)議對(duì)應(yīng)的特定位置存在的特定字符串和特定字符串?dāng)y帶的運(yùn)算值,將其提取出來,并將提取出的驗(yàn)證數(shù)據(jù)從加固數(shù)據(jù)包中刪除得到原始數(shù)據(jù)包。
[0110]運(yùn)算模塊630,用于根據(jù)與終端相應(yīng)的第二預(yù)設(shè)算法對(duì)所述原始數(shù)據(jù)包進(jìn)行運(yùn)算得到第二運(yùn)算結(jié)果。
[0111]具體的,與終端相應(yīng)的第二預(yù)設(shè)算法可以根據(jù)需要自定義,如計(jì)算原始數(shù)據(jù)包的長(zhǎng)度,對(duì)原始數(shù)據(jù)包的長(zhǎng)度進(jìn)行自定義公式的計(jì)算等。同時(shí)第二預(yù)設(shè)算法是預(yù)先與終端約定好的相應(yīng)的算法,從而能對(duì)原始數(shù)據(jù)包根據(jù)約定的算法進(jìn)行運(yùn)算得到驗(yàn)證運(yùn)算結(jié)果??梢岳斫獾氖桥c終端相應(yīng)的第二預(yù)設(shè)算法可以與終端的第一預(yù)設(shè)算法相同或不同,如果相同,則在原始數(shù)據(jù)包相同的情況下會(huì)得到與終端計(jì)算出的第一運(yùn)算結(jié)果相同的運(yùn)算結(jié)果,如果不同,則在原始數(shù)據(jù)包相同的情況下會(huì)得到與終端計(jì)算出的第一運(yùn)算結(jié)果不同的運(yùn)算結(jié)果,但是可以獲取第二運(yùn)算結(jié)果和終端計(jì)算得到的攜帶在加固數(shù)據(jù)包中的第一運(yùn)算結(jié)果的對(duì)應(yīng)關(guān)系,利用對(duì)應(yīng)關(guān)系來驗(yàn)證原始數(shù)據(jù)包。
[0112]驗(yàn)證模塊640,用于根據(jù)