基於開源資料庫原始碼的安全應用定製

2021-06-21 09:47:26 字數 768 閱讀 7815

本文由@lonelyrains

以sqlite為例,sqlite商用版本才自帶有安全相關的功能。想做基於開源免費sqlite的安全軟體定製

基本框架:在**中新增openssl的那一套,使需要頒發證書、簽名、驗籤才能增刪查改sqlite的資料庫,而且存放的資料全是加工的密文。

1、問題:基於密文資料庫的增刪查改怎麼做?

解決方案:直接搜密文很複雜,現在有直接基於密文增刪改查的資料庫,擁有很高的效率,還有各種專利一般安全應用,基本原理就是全同態加解密,不過目前還不成熟。這裡為了方便實現,使用對映表。敏感字段分別加解密。基於對映表的增刪查改對映到實際表中的解密、增刪查改、加密。修改sqlite的原始碼使這個過程對實際應用是透明的。只不過就不支援簡單的基於敏感字段值的匹配來增刪查改。實際應用中應該也不需要。

2、漏洞:對映表被修改,導致對映關係被修改,導致連線到不同的字段。

解決方案:hash完整性校驗:每次經過合法修改表之後,修改對映表的hash值,然後使用證書加密hash值。即使hash加密值被修改,會導致完整性校驗失敗,資料認證無法通過。

3、完善和優化:

1)如果被攻擊,僅hash加密值被修改,資料其實沒有丟失。可以實現乙個認證機制,獲取比一般的增刪查改更高的授權之後,重新修復被修改的hash值。

2)不用每次修改表都重新計算hash,而是一條語句執行完或者乙個儲存過程執行完再計算表的hash,或者一次載入sqlite失效之前才更新對映表的hash值。

4、基於sqlite原始碼的實現工程檔案結構模組說明、原始碼鏈結位址

待完成5、參考cryptdb

linux redis 資料庫 原始碼安裝

一 redis介紹 redis是remote dictionary server的縮寫。他本質上乙個key value資料庫,與memcached類似的nosql型資料庫,但是他的資料可以持久化的儲存在磁碟上,解決了服務重啟後資料不丟失的問題,他的值可以是string 字串 list 列表 sets...

原始碼編譯mariadb資料庫

開始安裝 步驟 環境配置 1.防火牆 2.selinux配置 3.mysql使用者 4.安裝開發工具 5.建立資料庫檔案,並使用者 組修改許可權 編譯過程 6.解壓包 7.編譯三步驟 8.給主程式包 basedir 修改使用者 組許可權 9.設定環境變數 10.生成資料庫檔案 11.設定配置檔案和啟...

原始碼和文件分享 基於C 實現的迷你資料庫

1 引言 1.1 目的 為了深入學習和了解資料庫以及小學期課程需要,我們小組決定自己編寫乙個簡單的mini database。1.2 背景 1970年,ibm的研究員,有 關聯式資料庫之父 之稱的埃德加 弗蘭克 科德 edgar frank codd或e.f.codd 博士在刊物 communica...