2016-11-08 97 views
0

我遇到問題。我使用xyz.db文件並將其存儲在資源文件夾中。我將所有數據從xyz.db複製到存儲在存儲文件夾中的data/data/com.xyz/abc.sqlite中的應用程序數據庫。現在我想保護資產的xyz.db文件。因爲它可以通過逆向工程從apk中輕鬆提取。請幫我保護我的資產文件夾的數據庫文件。如何保護android數據庫文件?

+0

檢查與數據庫加密相關的技術。像SQLCiphe一樣。 – Akshay

+0

查看https://www.guardsquare.com/dexguard,它可以加密資產並解密廣告運行時 – Aegis

回答

1

沒有最終解決您的問題。 任何你將要使用的技術都可以被一個有技巧的攻擊者擊敗。

你必須接受,如果你想在你的apk文件中存儲數據庫xyz.sql,並且你希望你的應用程序使用它,那麼也可能有人反轉你的應用程序來檢索它。基本上只是因爲在某個時刻的純文本信息將在手機上可用。

希望我已經夠

2

清潔您可以執行以下操作,以相對難以在DB訪問數據。

  1. 密碼保護的zip文件包含在運行時應該提取的db。
  2. 使用對稱密鑰對文件進行加密,並在運行時對其進行解密。
  3. 利用sqlcipher對靜態數據執行加密。

在上述兩種情況下,您都需要擔心存儲密碼或密鑰。沒有確定的方法來保護文件,但上面的內容需要更多的努力,應該添加爲基本保護。

0

保持安全考慮的

作爲Android的通常的數據庫文件的訪問權限決定誰可以使用你的數據庫。如果您遵循本系列以下文章中介紹的標準方式,您的數據庫文件將位於您的應用程序的專用目錄中。這意味着您的應用程序擁有數據庫文件並且沒有其他人可以訪問它。即使使用其他不常見的方式來創建數據庫,您也只能授予對該文件的訪問權限。因此其他人可以訪問你的所有數據庫或者什麼都不是沒有迴旋的餘地。

Still:您絕不應該依賴數據庫中的窺探數據。任何敏感數據都應該加密。非常敏感的數據根本不應該存儲在設備上。請記住,如果設備丟失,設備的任何不當行爲發現者都可以訪問數據庫文件以及您的應用。在根設備上可以讀取所有文件。像SQLite的編輯器應用程序可以很容易地閱讀甚至是最敏感的數據 - 如果他們沒有被加密:

  • 在數據隱私是最重要的情況下,你必須恢復到安全的服務或強制用戶輸入祕密每次加密和存儲數據或分別讀取和解密它們。 source