2010-10-03 47 views
2

我一直在致力於開發此分析工具以幫助解釋和分析捆綁包內的數據庫。保護數據庫對我們來說非常重要,只有通過我們的軟件才能訪問數據庫。在Python中實現它的最好方法是什麼?加密將被捆綁在pyexe文件中的Sqlite數據庫文件

我知道可能沒有明確的解決方案,但威懾在這裏真正重要。

非常感謝。

+0

一個專有的目標 - 幫助你鎖定你的東西 - 並不是許多人花費時間免費的東​​西。 – 2010-10-03 05:23:53

+0

阻止人們獲取他們已有的數據非常困難(見證DRM)。鎖定對數據庫的訪問權限的最好方法是根本不發送它,而是使用通過互聯網發送的查詢。大量的例子(即所有webapps的99%)。我不知道這個架構是否可以用於你的應用,但其他任何東西都很難(對於確定的攻擊者來說可能是不可能的)。 – 2010-10-03 05:40:39

回答

3

這個問題每個月大概在SQLite用戶郵件列表上。

無論你做了多少加密等操作,如果數據庫在客戶端機器上,那麼解密密鑰也會在某個時刻在機器上。攻擊者將能夠獲得該密鑰,因爲它是他們的機器。

一個更好的方式來看待這個問題是在金錢方面 - 一個壞人需要花費多少錢才能獲得數據。這通常最多是幾百美元。只需要一個人獲得密鑰,然後他們就可以爲每個人發佈數據庫。

因此,無論是Donal提到的Web服務還是花幾分鐘模糊數據庫。例如,如果您使用APSW,那麼您可以在幾行內寫入一個VFS,以便對數據庫內容進行異或運算,以便常規SQLite不會打開它,文件查看器也不會顯示正常的SQLite頭。 (在APSW中有示例代碼顯示如何執行此操作。)

因此,任何擁有數據庫內容的人都必須故意這樣做。

+0

FWIW,這是指向[示例代碼](http://apidoc.apsw.googlecode.com/hg/example.html#example-vfs)的鏈接,它顯示瞭如何通過XORing模糊數據庫文件的內容。 – martineau 2013-10-02 22:55:37

4

有人通過將SQLCipher重新構建爲DLL並替換Python的sqlite3.dll here,從而使Python和SQLCipher一起工作。

+0

@Michael:我不應該提供這個答案嗎? – 2013-12-23 08:01:26

相關問題