本說明書涉及計算機領域,尤其涉及一種密文數據篡改的判斷方法、裝置及存儲介質。
背景技術:
1、在如今數據量級日益增多的場景下,企業(yè)可將企業(yè)自身的數據存儲在云服務提供商側,從而降低企業(yè)自身存儲數據的成本。為了防止企業(yè)自身的私有數據被泄露,企業(yè)一般使用密態(tài)計算技術對數據進行加密,并在可信執(zhí)行環(huán)境中進行數據傳輸,以確保數據在企業(yè)側和云服務商側傳輸、存儲、計算的安全性。
2、由于在執(zhí)行業(yè)務時,通常涉及比較運算,即比較數據的大小,因此,企業(yè)可使用密態(tài)計算技術中的保序加密算法對企業(yè)自身的數據進行加密,這是由于保序加密算法在加密過程中保持了數據的相對順序。
3、但保序加密算法不能提供明文數據的完整性保護,即企業(yè)無法判斷對密文數據解密后,得到的數據是否為原來的明文數據,容易對企業(yè)自身造成損失。例如,現有一明文數據{1,2,3,4},加密后的密文數據為{c1,c2,c3,c4},其中c1<c2<c3<c4。攻擊者將密文數據c3篡改成了c3’,c3’仍小于c4,且大于c2,解密之后的明文數據為{1,2,3.2,4},這個相對順序仍舊是合理的,但顯然不是原來的明文數據,而企業(yè)無法辨識出密文數據被篡改。那么,在金融場景下,若密文數據被篡改而不能發(fā)現,則可能導致金融機構對賬錯誤,產生直接經濟損失。
4、因此,如何判斷密文數據是否被篡改是一個亟待解決的問題,基于此,本說明書提供一種密文數據篡改的判斷方法。
技術實現思路
1、本說明書提供一種密文數據篡改的判斷方法、裝置、存儲介質及電子設備,以至少部分的解決現有技術存在的上述問題。
2、本說明書采用下述技術方案:
3、本說明書提供一種密文數據篡改的判斷方法,包括:
4、將待存儲明文數據存儲至云服務提供商時,對所述待存儲明文數據進行加密,得到所述待存儲明文數據的密文數據;根據預設算法,確定所述待存儲明文數據的消息認證碼;
5、將所述密文數據及所述消息認證碼發(fā)送至所述云服務提供商存儲;
6、當通過存儲至所述云服務提供商中的密文數據執(zhí)行業(yè)務時,接收所述云服務提供商發(fā)送的加密數據,所述加密數據包括密文數據及消息認證碼;
7、對所述加密數據中的密文數據進行解密,得到解密結果;
8、根據所述預設算法,確定所述解密結果的消息認證碼;
9、根據所述解密結果的消息認證碼及所述加密數據中的消息認證碼,判斷所述加密數據中的密文數據是否被篡改。
10、可選地,對所述待存儲明文數據進行加密,得到所述待存儲明文數據的密文數據,具體包括:
11、通過保序加密算法對所述待存儲明文數據進行加密,得到所述待存儲明文數據的密文數據。
12、可選地,所述預設算法包括基于哈希的消息認證碼算法或伽羅瓦哈希算法。
13、可選地,將所述密文數據及所述消息認證碼發(fā)送至所述云服務提供商存儲,具體包括:
14、基于所述待存儲明文數據的密文數據及消息認證碼,確定所述待存儲明文數據的加密數據;
15、將所述待存儲明文數據的加密數據發(fā)送至所述云服務提供商存儲。
16、可選地,基于所述待存儲明文數據的密文數據及消息認證碼,確定所述待存儲明文數據的加密數據,具體包括:
17、根據預設拼接順序,對所述待存儲明文數據的密文數據及消息認證碼進行拼接,得到拼接結果;
18、將所述拼接結果確定為所述待存儲明文數據的加密數據。
19、可選地,接收所述云服務提供商發(fā)送的加密數據,具體包括:
20、向所述云服務提供商發(fā)送查詢請求,所述查詢請求包括對獲取的加密數據的查詢條件;
21、接收所述云服務提供商基于所述查詢條件確定出的加密數據。
22、可選地,根據所述解密結果的消息認證碼及所述加密數據中的消息認證碼,判斷所述加密數據中的密文數據是否被篡改,具體包括:
23、判斷所述解密結果的消息認證碼與所述加密數據中的消息認證碼是否匹配,得到判斷結果;
24、若所述判斷結果為不匹配,則所述加密數據中的密文數據被篡改;
25、若所述判斷結果為匹配,則所述加密數據中的密文數據未被篡改。
26、可選地,當所述密文數據被篡改時,所述方法還包括:
27、停止執(zhí)行所述業(yè)務;并向所述云服務提供商發(fā)送數據篡改信息,以使所述云服務提供商發(fā)送日志記錄;
28、接收所述云服務提供商發(fā)送的日志記錄;
29、基于所述日志記錄,確定安全漏洞并修復。
30、本說明書提供了一種密文數據篡改的判斷裝置,所述裝置包括:
31、加密模塊,用于將待存儲明文數據存儲至云服務提供商時,對所述待存儲明文數據進行加密,得到所述待存儲明文數據的密文數據;根據預設算法,確定所述待存儲明文數據的消息認證碼;
32、存儲模塊,用于將所述密文數據及所述消息認證碼發(fā)送至所述云服務提供商存儲;
33、加密數據獲取模塊,用于當通過存儲至所述云服務提供商中的密文數據執(zhí)行業(yè)務時,接收所述云服務提供商發(fā)送的加密數據,所述加密數據包括密文數據及消息認證碼;
34、解密模塊,用于對所述加密數據中的密文數據進行解密,得到解密結果;
35、消息認證碼確定模塊,用于根據所述預設算法,確定所述解密結果的消息認證碼;
36、判斷模塊,用于根據所述解密結果的消息認證碼及所述加密數據中的消息認證碼,判斷所述加密數據中的密文數據是否被篡改。
37、可選地,所述加密模塊,具體用于通過保序加密算法對所述待存儲明文數據進行加密,得到所述待存儲明文數據的密文數據。
38、可選地,所述預設算法包括基于哈希的消息認證碼算法或伽羅瓦哈希算法。
39、可選地,所述存儲模塊,具體用于基于所述待存儲明文數據的密文數據及消息認證碼,確定所述待存儲明文數據的加密數據;將所述待存儲明文數據的加密數據發(fā)送至所述云服務提供商存儲。
40、可選地,所述存儲模塊,具體用于根據預設拼接順序,對所述待存儲明文數據的密文數據及消息認證碼進行拼接,得到拼接結果;將所述拼接結果確定為所述待存儲明文數據的加密數據。
41、可選地,所述加密數據獲取模塊,具體用于向所述云服務提供商發(fā)送查詢請求,所述查詢請求包括對獲取的加密數據的查詢條件;接收所述云服務提供商基于所述查詢條件確定出的加密數據。
42、可選地,所述判斷模塊,具體用于判斷所述解密結果的消息認證碼與所述加密數據中的消息認證碼是否匹配,得到判斷結果;若所述判斷結果為不匹配,則所述加密數據中的密文數據被篡改;若所述判斷結果為匹配,則所述加密數據中的密文數據未被篡改。
43、可選地,當所述密文數據被篡改時,所述裝置還包括:
44、修復模塊,用于停止執(zhí)行所述業(yè)務;并向所述云服務提供商發(fā)送數據篡改信息,以使所述云服務提供商發(fā)送日志記錄;接收所述云服務提供商發(fā)送的日志記錄;基于所述日志記錄,確定安全漏洞并修復。
45、本說明書提供了一種計算機可讀存儲介質,所述存儲介質存儲有計算機程序,所述計算機程序被處理器執(zhí)行時實現上述密文數據篡改的判斷方法。
46、本說明書提供了一種電子設備,包括存儲器、處理器及存儲在存儲器上并可在處理器上運行的計算機程序,所述處理器執(zhí)行所述程序時實現上述密文數據篡改的判斷方法。
47、本說明書采用的上述至少一個技術方案能夠達到以下有益效果:
48、在本說明書提供的密文數據篡改的判斷方法中,將待存儲明文數據存儲至云服務提供商時,對該待存儲明文數據進行加密,得到該待存儲明文數據的密文數據;根據預設算法,確定該待存儲明文數據的消息認證碼。將該密文數據及該消息認證碼發(fā)送至該云服務提供商存儲,當通過存儲至該云服務提供商中的密文數據執(zhí)行業(yè)務時,接收該云服務提供商發(fā)送的加密數據,該加密數據包括密文數據及消息認證碼。對該加密數據中的密文數據進行解密,得到解密結果,根據該預設算法,確定該解密結果的消息認證碼。根據該解密結果的消息認證碼及該加密數據中的消息認證碼,判斷該加密數據中的密文數據是否被篡改。
49、從上述方法中可以看出,由于確定出的消息認證碼與加密密鑰相關,而攻擊者無法知曉加密密鑰,則無法偽造消息認證碼。將明文數據對應的密文數據與消息認證碼結合,企業(yè)方在使用時,可通過密文數據對應的解密結果的消息認證碼與加密數據中的消息認證碼,判斷加密數據中的密文數據是否被篡改。若加密數據中的密文數據被篡改,則密文數據的解密結果對應的消息認證碼也會改變。