本發(fā)明涉及數(shù)據(jù)處理技術(shù)領(lǐng)域,具體涉及一種應(yīng)用于數(shù)據(jù)安全類產(chǎn)品的數(shù)據(jù)庫防篡改方法及系統(tǒng)。
背景技術(shù):
現(xiàn)在政府、企業(yè)和事業(yè)單位組織一般采用為應(yīng)用系統(tǒng)附加堡壘機(jī)、旁路監(jiān)聽及實(shí)時(shí)備份系統(tǒng)的方法,對(duì)應(yīng)用數(shù)據(jù)庫的運(yùn)維操作進(jìn)行監(jiān)控及事后審計(jì),以保證歷史發(fā)生數(shù)據(jù)的真實(shí)性?,F(xiàn)有包含操作審計(jì)功能的應(yīng)用系統(tǒng)或者審計(jì)類數(shù)據(jù)安全應(yīng)用系統(tǒng),偏重于審計(jì)內(nèi)容的全面性和審計(jì)內(nèi)容的展示等方面,一般采用旁路或者數(shù)據(jù)周期備份的方式來保證歷史數(shù)據(jù)真實(shí)性,但沒有從數(shù)據(jù)庫的設(shè)計(jì)模型上來對(duì)數(shù)據(jù)安全進(jìn)行保證,依然存在歷史數(shù)據(jù)被應(yīng)用或者運(yùn)維過程中被篡改的可能性,而且這類數(shù)據(jù)安全保證技術(shù)所需要投入的網(wǎng)絡(luò)資源和硬件設(shè)備等其他成本比較高。如果審計(jì)信息的歷史內(nèi)容被篡改,則審計(jì)數(shù)據(jù)的真實(shí)性無法保證,所以如何保障數(shù)據(jù)庫的歷史記錄的真實(shí)性以及保證審計(jì)數(shù)據(jù)的真實(shí)有效,是現(xiàn)有數(shù)據(jù)安全類產(chǎn)品所面臨的挑戰(zhàn)。
技術(shù)實(shí)現(xiàn)要素:
本申請(qǐng)?zhí)峁┮环N應(yīng)用于數(shù)據(jù)安全領(lǐng)域的應(yīng)用數(shù)據(jù)庫權(quán)限和結(jié)構(gòu)模型設(shè)計(jì)方案,切斷現(xiàn)行應(yīng)用數(shù)據(jù)庫所存在的歷史數(shù)據(jù)信息可能被篡改的途徑,在數(shù)據(jù)安全類產(chǎn)品的升級(jí)、使用和運(yùn)維過程中,解決歷史數(shù)據(jù)被修改后導(dǎo)致審計(jì)信息無法體現(xiàn)數(shù)據(jù)庫歷史真實(shí)情況的問題,極大程度地保障了應(yīng)用數(shù)據(jù)庫歷史數(shù)據(jù)的真實(shí)性。
根據(jù)第一方面,一種實(shí)施例中提供一種應(yīng)用于數(shù)據(jù)安全類產(chǎn)品的數(shù)據(jù)庫防篡改方法,包括設(shè)計(jì)數(shù)據(jù)庫表的邏輯操作,邏輯操作包括邏輯新增、邏輯刪除和邏輯修改。邏輯新增為新增有效數(shù)據(jù)記錄。邏輯刪除為新增一條用于表示對(duì)象數(shù)據(jù)已被刪除的刪除記錄。邏輯修改首先執(zhí)行邏輯刪除用以記錄對(duì)象數(shù)據(jù)已被刪除,其次執(zhí)行邏輯新增用以記錄修改后的對(duì)象數(shù)據(jù)及對(duì)象數(shù)據(jù)的標(biāo)識(shí)。進(jìn)一步的,邏輯操作還包括邏輯查詢,邏輯查詢?yōu)椴樵兂壿媱h除以外的所有有效數(shù)據(jù)記錄。進(jìn)一步的,每個(gè)數(shù)據(jù)庫表的新增記錄增加哈希列,哈希列的字段內(nèi)容可自定義,哈希列中的哈希值和新增記錄一同寫入數(shù)據(jù)庫表。進(jìn)一步的,在每次審計(jì)操作進(jìn)行前,對(duì)需要審計(jì)的數(shù)據(jù)進(jìn)行哈希驗(yàn)證,若哈希驗(yàn)證不通過則采取備份恢復(fù)的方式對(duì)驗(yàn)證無法通過的數(shù)據(jù)進(jìn)行修復(fù)。進(jìn)一步的,每張數(shù)據(jù)庫表均包含用于實(shí)現(xiàn)底層新增到邏輯操作的轉(zhuǎn)換的數(shù)據(jù)結(jié)構(gòu)。進(jìn)一步的,僅保留普通用戶對(duì)于數(shù)據(jù)庫表的寫入權(quán)限。進(jìn)一步的,包括權(quán)限驗(yàn)證步驟,若權(quán)限為新增操作則權(quán)限通過;若權(quán)限為除新增操作以外的其他操作則權(quán)限阻止。
根據(jù)第二方面,一種實(shí)施例中提供一種應(yīng)用于數(shù)據(jù)安全類產(chǎn)品的數(shù)據(jù)庫防篡改系統(tǒng),包括用于數(shù)據(jù)庫訪問層在第一方面實(shí)施例所述的邏輯操作下對(duì)數(shù)據(jù)庫表進(jìn)行操作的裝置;用于設(shè)置哈希列,寫入哈希值和進(jìn)行哈希驗(yàn)證的裝置;用于實(shí)現(xiàn)底層新增到邏輯操作的轉(zhuǎn)換的裝置。
根據(jù)第三方面,一種實(shí)施例中提供一種產(chǎn)品,一種實(shí)施例中提供一種產(chǎn)品,包括存儲(chǔ)器和處理器,存儲(chǔ)器用于存儲(chǔ)程序,處理器用于通過執(zhí)行存儲(chǔ)器存儲(chǔ)的程序以實(shí)現(xiàn)如第一方面實(shí)施例所述的方法。
根據(jù)第四方面,一種實(shí)施例中提供一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),包括程序,所述程序能夠被處理器執(zhí)行以實(shí)現(xiàn)如第一方面實(shí)施例所述的方法。
依據(jù)上述實(shí)施例的應(yīng)用于數(shù)據(jù)安全類產(chǎn)品的數(shù)據(jù)庫防篡改方法,由于僅保留普通用戶對(duì)于數(shù)據(jù)庫表的寫入權(quán)限,每張數(shù)據(jù)庫表均包含用于實(shí)現(xiàn)底層新增到邏輯操作的轉(zhuǎn)換的數(shù)據(jù)結(jié)構(gòu),使得對(duì)數(shù)據(jù)庫表底層采取只增操作模擬增、刪、改操作,只增過程中記錄哈希值作為指紋驗(yàn)證以保證審計(jì)歷史的真實(shí)性,不僅保留了數(shù)據(jù)庫訪問層的所有操作,而且實(shí)現(xiàn)了所有數(shù)據(jù)庫對(duì)象歷史的全過程防篡改。
附圖說明
圖1為實(shí)施例一中應(yīng)用于數(shù)據(jù)安全類產(chǎn)品的數(shù)據(jù)庫防篡改方法的流程圖;
圖2為實(shí)施例二中應(yīng)用于數(shù)據(jù)安全類產(chǎn)品的數(shù)據(jù)庫防篡改系統(tǒng)的結(jié)構(gòu)示意圖;
圖3為實(shí)施例三中產(chǎn)品的的結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面通過具體實(shí)施方式結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步詳細(xì)說明。其中不同實(shí)施方式中類似元件采用了相關(guān)聯(lián)的類似的元件標(biāo)號(hào)。在以下的實(shí)施方式中,很多細(xì)節(jié)描述是為了使得本申請(qǐng)能被更好的理解。然而,本領(lǐng)域技術(shù)人員可以毫不費(fèi)力的認(rèn)識(shí)到,其中部分特征在不同情況下是可以省略的,或者可以由其他元件、材料、方法所替代。在某些情況下,本申請(qǐng)相關(guān)的一些操作并沒有在說明書中顯示或者描述,這是為了避免本申請(qǐng)的核心部分被過多的描述所淹沒,而對(duì)于本領(lǐng)域技術(shù)人員而言,詳細(xì)描述這些相關(guān)操作并不是必要的,他們根據(jù)說明書中的描述以及本領(lǐng)域的一般技術(shù)知識(shí)即可完整了解相關(guān)操作。
另外,說明書中所描述的特點(diǎn)、操作或者特征可以以任意適當(dāng)?shù)姆绞浇Y(jié)合形成各種實(shí)施方式。同時(shí),方法描述中的各步驟或者動(dòng)作也可以按照本領(lǐng)域技術(shù)人員所能顯而易見的方式進(jìn)行順序調(diào)換或調(diào)整。因此,說明書和附圖中的各種順序只是為了清楚描述某一個(gè)實(shí)施例,并不意味著是必須的順序,除非另有說明其中某個(gè)順序是必須遵循的。
在本發(fā)明實(shí)施例中,通過應(yīng)用所在數(shù)據(jù)庫用戶的權(quán)限控制,所有數(shù)據(jù)庫表只能新增數(shù)據(jù),通過所有數(shù)據(jù)庫對(duì)象采取統(tǒng)一的標(biāo)準(zhǔn),使用一定規(guī)則的邏輯操作將數(shù)據(jù)庫底層的新增操作轉(zhuǎn)換為應(yīng)用層的刪除、修改操作,保證了每個(gè)數(shù)據(jù)庫表只有新增操作,保證操作歷史無可篡改的途徑。
實(shí)施例一:
實(shí)施例一提供了一種應(yīng)用于數(shù)據(jù)安全類產(chǎn)品的數(shù)據(jù)庫防篡改方法,請(qǐng)參考圖1,包括以下步驟:
步驟s100:設(shè)計(jì)數(shù)據(jù)庫表的邏輯操作。邏輯操作包括邏輯新增、邏輯刪除、邏輯修改和邏輯查詢。邏輯新增為新增有效數(shù)據(jù)記錄。邏輯刪除為新增一條用于表示對(duì)象數(shù)據(jù)已被刪除的刪除記錄。邏輯修改按照先刪后增的方式進(jìn)行,首先執(zhí)行邏輯刪除用以記錄對(duì)象數(shù)據(jù)已被刪除,其次執(zhí)行邏輯新增用以記錄修改后的對(duì)象數(shù)據(jù)及對(duì)象數(shù)據(jù)的標(biāo)識(shí)。邏輯查詢?yōu)椴樵兂壿媱h除以外的所有有效數(shù)據(jù)記錄。
步驟s110:為每個(gè)數(shù)據(jù)庫表的新增記錄增加哈希列。哈希列的字段內(nèi)容可自定義,哈希列中的哈希值和新增記錄一同寫入數(shù)據(jù)庫表。增設(shè)哈希列的目的在于對(duì),為所有新增記錄進(jìn)行帶有哈希算法的指紋認(rèn)證,周期性校驗(yàn)其有效性,配合適當(dāng)?shù)膫浞菀?guī)則即可實(shí)現(xiàn)審計(jì)歷史數(shù)據(jù)的讀寫存多種機(jī)制防篡改。在每次審計(jì)操作進(jìn)行前,對(duì)需要審計(jì)的數(shù)據(jù)進(jìn)行哈希驗(yàn)證,若哈希驗(yàn)證不通過則采取備份恢復(fù)的方式對(duì)驗(yàn)證無法通過的數(shù)據(jù)進(jìn)行修復(fù)。
步驟s120:為每張數(shù)據(jù)庫表增設(shè)用于實(shí)現(xiàn)底層新增到邏輯操作的轉(zhuǎn)換的數(shù)據(jù)結(jié)構(gòu)。該數(shù)據(jù)結(jié)構(gòu)的作用在于將數(shù)據(jù)庫底層的新增操作轉(zhuǎn)換為應(yīng)用層的刪除、修改操作。普通用戶在應(yīng)用中對(duì)數(shù)據(jù)庫表不再通過sql語句(全稱structuredquerylanguage即結(jié)構(gòu)化查詢語言,是一種數(shù)據(jù)庫查詢和程序設(shè)計(jì)語言,用于存取數(shù)據(jù)以及查詢、更新和管理關(guān)系數(shù)據(jù)庫系統(tǒng),同時(shí)也是數(shù)據(jù)庫腳本文件的擴(kuò)展名。)進(jìn)行數(shù)據(jù)庫表的操作,而是通過按照上述步驟s100中數(shù)據(jù)庫表的邏輯操作實(shí)現(xiàn)的統(tǒng)一組件進(jìn)行增、刪、改、查等操作,在此規(guī)則下數(shù)據(jù)庫訪問層實(shí)現(xiàn)業(yè)務(wù)邏輯。
步驟s130:對(duì)于普通用戶僅保留其對(duì)于數(shù)據(jù)庫表的寫入權(quán)限。數(shù)據(jù)轉(zhuǎn)儲(chǔ)、備份、恢復(fù)等操作使用更高級(jí)權(quán)限進(jìn)行操作,不在應(yīng)用中使用,并由少數(shù)人及更安全的管理機(jī)制進(jìn)行管理。從數(shù)據(jù)庫權(quán)限層面決定數(shù)據(jù)庫表記錄的只增原則,歷史記錄記入數(shù)據(jù)庫系統(tǒng)后則不能以任何方式更改。
在一具體實(shí)施方式中,普通用戶在進(jìn)行應(yīng)用操作時(shí),首先對(duì)其權(quán)限進(jìn)行驗(yàn)證,即權(quán)限驗(yàn)證步驟,若權(quán)限為新增操作則權(quán)限通過;若權(quán)限為除新增操作以外的其他操作則權(quán)限阻止。權(quán)限驗(yàn)證步驟的目的在于對(duì)數(shù)據(jù)庫應(yīng)用操作進(jìn)行二次核查,保證普通用戶的數(shù)據(jù)庫操作權(quán)限只限制在新增記錄,切斷普通用戶對(duì)數(shù)據(jù)庫歷史數(shù)據(jù)更改的途徑。
實(shí)施例二:
實(shí)施例二提供了一種應(yīng)用于數(shù)據(jù)安全類產(chǎn)品的數(shù)據(jù)庫防篡改系統(tǒng),請(qǐng)參考圖2,系統(tǒng)包括用于數(shù)據(jù)庫訪問層在實(shí)施例一所述的邏輯操作下對(duì)數(shù)據(jù)庫表進(jìn)行操作的裝置200;用于設(shè)置哈希列,寫入哈希值和進(jìn)行哈希驗(yàn)證的裝置210;用于實(shí)現(xiàn)底層新增到邏輯操作的轉(zhuǎn)換的裝置220。
實(shí)施例三:
實(shí)施例三提供了一種產(chǎn)品,請(qǐng)參考圖3,該產(chǎn)品包括存儲(chǔ)器300和處理器310。存儲(chǔ)器300用于存儲(chǔ)程序,處理器310用于通過執(zhí)行存儲(chǔ)器300存儲(chǔ)的程序以實(shí)現(xiàn)如實(shí)施例一所述的方法。
實(shí)施例四:
實(shí)施例四提供了一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),包括程序,所述程序能夠被處理器執(zhí)行以實(shí)現(xiàn)如實(shí)施例一所述的方法。
本領(lǐng)域技術(shù)人員可以理解,上述實(shí)施方式中各種方法的全部或部分功能可以通過硬件的方式實(shí)現(xiàn),也可以通過計(jì)算機(jī)程序的方式實(shí)現(xiàn)。當(dāng)上述實(shí)施方式中全部或部分功能通過計(jì)算機(jī)程序的方式實(shí)現(xiàn)時(shí),該程序可以存儲(chǔ)于一計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,存儲(chǔ)介質(zhì)可以包括:只讀存儲(chǔ)器、隨機(jī)存儲(chǔ)器、磁盤、光盤、硬盤等,通過計(jì)算機(jī)執(zhí)行該程序以實(shí)現(xiàn)上述功能。例如,將程序存儲(chǔ)在設(shè)備的存儲(chǔ)器中,當(dāng)通過處理器執(zhí)行存儲(chǔ)器中程序,即可實(shí)現(xiàn)上述全部或部分功能。另外,當(dāng)上述實(shí)施方式中全部或部分功能通過計(jì)算機(jī)程序的方式實(shí)現(xiàn)時(shí),該程序也可以存儲(chǔ)在服務(wù)器、另一計(jì)算機(jī)、磁盤、光盤、閃存盤或移動(dòng)硬盤等存儲(chǔ)介質(zhì)中,通過下載或復(fù)制保存到本地設(shè)備的存儲(chǔ)器中,或?qū)Ρ镜卦O(shè)備的系統(tǒng)進(jìn)行版本更新,當(dāng)通過處理器執(zhí)行存儲(chǔ)器中的程序時(shí),即可實(shí)現(xiàn)上述實(shí)施方式中全部或部分功能。
以上應(yīng)用了具體個(gè)例對(duì)本發(fā)明進(jìn)行闡述,只是用于幫助理解本發(fā)明,并不用以限制本發(fā)明。對(duì)于本發(fā)明所屬技術(shù)領(lǐng)域的技術(shù)人員,依據(jù)本發(fā)明的思想,還可以做出若干簡(jiǎn)單推演、變形或替換。