2017-09-22 18 views
0

好吧,讓我們說我的手機上有一個應用程序,它使用數據庫(SQLLite/RealmDb等)存儲應用程序使用的數據,然後一些不良實體(黑客)獲取我的無根電話和以某種方式獲得訪問權限。你可以在手機之間移動移動sql數據庫並使用它嗎?

如果實體可以反編譯代碼並創建自己的應用程序(或只是需要數據的部分)來使用數據庫,那麼他可以將數據庫從我的設備移動到另一設備上(或我的另一個應用程序設備,它並不重要),然後訪問/使用數據庫中的數據(數據是否被加密)?

舉例來說,只是獲得加密的數據並直接發送到休息API並獲取有效的響應。

是否存在對移動數據庫的「篡改連接」,因此無法在其他設備/應用程序沙箱中使用?它可能與數據庫和操作系統不同。

Desclaimer: 我所有的應用程序和API的使用JWT令牌和服務器端驗證和對HTTPS的頂部釘扎到證書服務器,所以我不要求最佳實踐的安全性。看看這個問題更像是一個需要我出售安全管理的問題,我試圖回答「可以這樣做嗎?」

+0

如果他們可以獲得根訪問權限並保留數據,那麼只需轉到** data/data/bases_package_name/databases **並複製該文件,然後使用sqlite管理器來查看和操作數據庫即可。無論如何,這是SQLite的。我經常將SQLite數據庫複製到Windows並使用SQLite管理器(瀏覽器擴展),甚至有時操縱數據庫並反轉進程,然後在設備上獲取更改的數據庫(不知道IOS)。 – MikeT

回答

0

Realm和SQLite都支持單個文件。所以如果黑客可以訪問文件系統。他們可以複製文件並隨心所欲地做任何事情,包括閱讀和修改文件。

如果您的應用程序附帶預先填充的數據庫,那麼他們可以反編譯應用程序並將其複製出來。

如果您擔心從設備泄漏數據,可以通過加密本地數據庫來防止這種情況。 Realm對於Android和iOS都有in-built encryption,如果您包含SQLCipher,則SQLite支持它。

只要您的加密密鑰沒有存儲在設備上,但是從本地登錄派生或從服務器發送,那麼擁有本地數據庫應該100%安全,而不必擔心數據泄露。

+0

SQLCipher的唯一問題是它是全部或沒有。 – MikeT

+0

您會不會考慮爲數據庫隨機生成加密密鑰並將其存儲在android keystore/ios鑰匙串中? – Sturla

相關問題