本公開提供一種數據庫加密方法、裝置、電子設備、系統及存儲介質,該方法包括:對目標應用程序的數據庫接口進行動態注入處理,其中,目標應用程序通過數據庫接口對數據庫進行數據操作,動態注入處理用于對數據操作中的敏感列數據進行加密和/或解密,在目標應用程序通過數據庫接口對數據庫進行數據操作的過程中,可以自動完成敏感列數據的加密和解密過程,無需進行數據庫協議的適配、無需修改和重新編譯源代碼,對應用程序透明、無侵入。無侵入。無侵入。
【技術實現步驟摘要】
一種數據庫加密方法、裝置、電子設備、系統及存儲介質
[0001]本公開涉及異構計算領域,尤其涉及一種數據庫加密方法及裝置、電子設備、系統及存儲介質。
技術介紹
[0002]數據庫加密系統,是圍繞數據庫安全相關產品的重要組成部分。數據庫加密的核心是將數據庫中的重要敏感信息,以加密的形式行進存儲。傳統的數據庫加密技術方案包括基于網絡代理的加密方案和基于應用層的加密方案?;诰W絡代理的加密方案需要對數據庫的網絡協議層面進行處理,而不同的數據庫有著各自不同的協議和網文規范,存在數據庫協議適配兼容性的問題?;趹脤拥募用芊桨甘窃诳蛻舳藨贸绦騼炔窟M行加密解密處理,應用程序必須重新開發或者改寫,增加對數據進行加解密的功能,無法對現有系統做到透明、無侵入。
技術實現思路
[0003]本公開提供一種數據庫加密方法、裝置、電子設備、系統以及存儲介質,以解決相關技術中的問題,通過對應用程序的數據庫接口進行動態注入處理,在應用程序通過數據庫接口對數據庫進行數據操作的過程中,可以自動完成敏感列數據的加密和解密過程,無需進行數據庫協議的適配、無需修改和重新編譯源代碼,對應用程序透明、無侵入。
[0004]本公開的第一方面實施例提出了一種數據庫加密方法,方法應用于終端,該終端包括多種處理器,該方法包括:對目標應用程序的數據庫接口進行動態注入處理,其中,目標應用程序通過數據庫接口對數據庫進行數據操作,動態注入處理用于對數據操作中的敏感列數據進行加密和/或解密。
[0005]在本公開的一些實施例中,目標應用程序為Java程序,數據庫接口為Java數據庫連接JDBC接口,動態注入處理為Java hook處理,數據庫采用結構化查詢語言SQL。
[0006]在本公開的一些實施例中,數據庫接口包括第一接口、第二接口以及第三接口,目標應用程序的數據庫接口進行動態注入處理包括:對目標應用程序的第一接口進行第一hook處理,目標應用程序通過第一接口向數據庫發起SQL語句直接運行,第一hook處理用于對SQL語句中的敏感列數據進行加密;對目標應用程序的第二接口進行第二hook處理,目標應用程序通過第二接口向數據庫發起參數化SQL語句運行,第二hook處理用于對參數化SQL語句中的敏感列數據進行加密;對目標應用程序的第三接口進行第三hook處理,目標應用程序通過第三接口獲取SQL查詢的結果集,第三hook處理用于對結果集中的敏感列數據進行解密。
[0007]在本公開的一些實施例中,第一接口為Statement應用程序接口API,第二接口為PrepareStatement API,第三接口為ResultSet API。
[0008]在本公開的一些實施例中,對目標應用程序的第一接口進行第一hook處理包括:獲取待執行的SQL語句;對SQL語句進行語法解析,確定SQL語句的解析結果;在SQL語句為插
入或更新操作時,根據SQL語句的解析結果,確認SQL語句中是否有敏感列數據;若SQL語句中有敏感列數據,對敏感列數據進行加密。
[0009]在本公開的一些實施例中,對目標應用程序的第二接口進行第二hook處理包括:獲取待執行的參數化SQL語句;對參數化SQL語句進行語法解析,確定參數化SQL語句的解析結果;在參數化SQL語句為插入或更新操作且參數化SQL語句為參數設置操作時,根據解析結果,確認參數化SQL語句的參數值是否為敏感列數據;若參數值為敏感列數據,對參數值進行加密。
[0010]在本公開的一些實施例中,對目標應用程序的第三接口進行第三hook處理包括:獲取待返回的結果集;確認結果集對應的SQL語句是否為查詢操作;若結果集對應的SQL語句為查詢操作,解析結果集,根據解析結果對結果集中的敏感列數據進行解密。
[0011]本公開的第二方面實施例提出了一種數據庫加密裝置,該裝置包括:注入模塊,用于對目標應用程序的數據庫接口進行動態注入處理,其中,目標應用程序通過數據庫接口對數據庫進行數據操作,動態注入處理用于對數據操作中的敏感列數據進行加密和/或解密。
[0012]本公開的第三方面實施例提出了一種電子設備,包括:至少一個處理器;以及與至少一個處理器通信連接的存儲器;其中,存儲器存儲有可被至少一個處理器執行的指令,指令被至少一個處理器執行,以使至少一個處理器能夠執行本公開第一方面實施例中描述的方法。
[0013]本公開的第四方面實施例提出了一種存儲有計算機指令的非瞬時計算機可讀存儲介質,其中,計算機指令用于使計算機執行本公開第一方面實施例中描述的方法。
[0014]本公開的第五方面實施例提出了一種數據庫加密系統,該數據庫加密系統包括本公開第二方面實施例中描述的數據庫加密裝置或本公開第三方面實施例中描述的電子設備。
[0015]綜上,本公開提出的數據庫加密方法,該方法包括:對目標應用程序的數據庫接口進行動態注入處理,其中,目標應用程序通過數據庫接口對數據庫進行數據操作,動態注入處理用于對數據操作中的敏感列數據進行加密和/或解密,在目標應用程序通過數據庫接口對數據庫進行數據操作的過程中,可以自動完成敏感列數據的加密和解密過程,無需進行數據庫協議的適配、無需修改和重新編譯源代碼,對應用程序透明、無侵入。
[0016]應當理解的是,以上的一般描述和后文的細節描述僅是示例性和解釋性的,并不能限制本公開。
附圖說明
[0017]此處的附圖被并入說明書中并構成本說明書的一部分,示出了符合本公開的實施例,并與說明書一起用于解釋本公開的原理,并不構成對本公開的不當限定。
[0018]圖1為本公開實施例提供的一種數據庫加密方法的流程圖;
[0019]圖2為本公開實施例提供的一種Java hook處理的示例圖;
[0020]圖3為本公開實施例提供的一種數據庫加密方法的示例圖;
[0021]圖4為本公開實施例提供的一種數據庫加密方法的示例圖;
[0022]圖5為本公開實施例提供的一種數據庫加密方法的流程圖;
[0023]圖6為本公開實施例提供的一種數據庫加密方法的流程示意圖;
[0024]圖7為本公開實施例提供的一種數據庫加密方法的流程示意圖;
[0025]圖8為本公開實施例提供的一種數據庫加密方法的流程示意圖;
[0026]圖9本公開實施例提供的一種數據庫加密裝置的結構示意圖;
[0027]圖10本公開實施例提供的電子設備的結構示意圖。
具體實施方式
[0028]下面詳細描述本公開的實施例,實施例的示例在附圖中示出,其中自始至終相同或類似的標號表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附圖描述的實施例是示例性的,旨在用于解釋本公開,而不能理解為對本公開的限制。
[0029]為了便于理解本公開的方案,首先對本公開涉及到的相關技術進行介紹。
[0030]數據庫加密系統,是圍繞數據庫安全相關產品的重要組成部分。數據庫加密的核心是將數據庫中的重要敏感信息,以加密的形式本文檔來自技高網...
【技術保護點】
【技術特征摘要】
1.一種數據庫加密方法,其特征在于,所述方法包括:對目標應用程序的數據庫接口進行動態注入處理,其中,所述目標應用程序通過所述數據庫接口對數據庫進行數據操作,所述動態注入處理用于對所述數據操作中的敏感列數據進行加密和/或解密。2.根據權利要求1所述的方法,其特征在于,所述目標應用程序為Java程序,所述數據庫接口為Java數據庫連接JDBC接口,所述動態注入處理為Java hook處理,所述數據庫采用結構化查詢語言SQL。3.根據權利要求2所述的方法,其特征在于,所述數據庫接口包括第一接口、第二接口以及第三接口,所述對目標應用程序的數據庫接口進行動態注入處理包括:對所述目標應用程序的所述第一接口進行第一hook處理,所述目標應用程序通過所述第一接口向所述數據庫發起SQL語句直接運行,所述第一hook處理用于對所述SQL語句中的所述敏感列數據進行加密;對所述目標應用程序的所述第二接口進行第二hook處理,所述目標應用程序通過所述第二接口向所述數據庫發起參數化SQL語句運行,所述第二hook處理用于對所述參數化SQL語句中的所述敏感列數據進行加密;對所述目標應用程序的所述第三接口進行第三hook處理,所述目標應用程序通過所述第三接口獲取SQL查詢的結果集,所述第三hook處理用于對所述結果集中的所述敏感列數據進行解密。4.根據權利要求3所述的方法,其特征在于,所述第一接口為Statement應用程序接口API,所述第二接口為PrepareStatement API,所述第三接口為ResultSet API。5.根據權利要求3所述的方法,其特征在于,所述對所述目標應用程序的第一接口進行第一hook處理包括:獲取待執行的所述SQL語句;對所述SQL語句進行語法解析,確定所述SQL語句的解析結果;在所述SQL語句為插入或更新操作時,根據所述SQL語句的解析結果,確認所述SQ...
【專利技術屬性】
技術研發人員:白巖,梁志勇,
申請(專利權)人:北京原點數安科技有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。