2013-03-06 50 views
0

我試圖編譯的SQLite(啓用SQLITE_HAS_CODEC)與加密/編解碼器,如一個在wxSQLite或Libtomcrypt發現,使得結果生成將提供一個加密的SQLite數據庫。編譯的Android的SQLite與不同的加密/編解碼器

但是,由於Android安全模型實現了安全沙箱策略,其中任何應用都無法讀取其他應用數據,因此生成的SQLite(使用加密生成)會與所有應用透明地工作並避免安全沙箱策略,或者您需要配置每個分開項目,以便它可以將加密數據保存到SQLite?

我的意思是將其加密數據從所有的應用程序來存儲在SQLite數據庫,或將只爲一個項目,需要配置的適用。

謝謝。

回答

1

我試圖編譯的SQLite(啓用SQLITE_HAS_CODEC)與加密/編解碼器,如一個在wxSQLite或Libtomcrypt發現,使得結果生成將提供一個加密的SQLite數據庫。

我會建議你使用SQLCipher for Android,它已經爲你做了所有這些。

將產生的SQLite(建立與加密)與透明的所有應用程序的工作,避免安全沙箱策略

你可以創建自己的ROM國防部替換標準的SQLite與你加密啓用。但是,沒有應用程序會實際使用加密,因爲它們不會要求用戶輸入密碼並使用它。雖然你可以說你會使用硬連線的密碼,但是你並沒有增加任何安全性,因爲任何人都可以抓取該密碼,然後用它來解密數據庫。

或者您需要單獨配置每個項目,以便它可以將加密數據保存到SQLite?

是的,更重要的是,每個項目都需要詢問用戶密碼。

+0

我很感興趣,創造我自己的ROM MOD這給啓用加密的SQLite的。因此,如果我們能夠通過某種方式中和密碼問題(我承認這是一個複雜的問題),是否有辦法讓結果SQLite能夠透明地加密來自不同應用程序的數據。或者,我們是否可以通過修改Android體系結構的某些部分來啓用該功能,或者由於與Linux內核層完全相關,因此無法啓用該功能。 – user2139641 2013-03-07 10:37:29

+0

@ user2139641:「有沒有辦法,讓所產生的SQLite能夠從透明不同的應用程序數據進行加密」 - 只要您修改SQLite不改變由框架代碼中使用任何公共接口(例如'SQLiteDatabase') ,寫入該框架代碼的框架代碼和應用程​​序不應受到影響。但是,我很不熟悉這種固件修補技術。 – CommonsWare 2013-03-07 11:46:16

0

你可以寫你的數據庫到SD卡/外部存儲,因此,其他應用程序可以讀取它,如果他們知道的路徑。或者你可以提供一個實現它的庫。

+0

我認爲SD卡不像內部存儲那樣安全,並且可以在任何時候將應用程序保留在沒有數據庫數據的情況下移除。我更喜歡定位保存在內部存儲中的原始SQLite數據庫。無論如何感謝您的建議。 – user2139641 2013-03-10 11:29:28