簡體   English   中英

如何在iOS中保護SQLite數據庫?

[英]How Should I Secure a SQLite Database in iOS?

我正在開發醫療iOS應用。 我希望對用戶的數據進行加密,因此,如果他們的iPhone被盜,小偷將無法訪問其健康信息。 合法所有者應該能夠訪問其信息(與該問題有所不同)。

我正在考慮使用SQLCipher加密整個數據庫,並將SQLCipher密碼放入鑰匙串中。

這是個好技術嗎?

另外,我是否正確理解(既然一切都在設備上了),那么堅定的黑客無論如何都能闖入?

旨在進行兩因素加密:您應該按照說明對數據庫進行加密,但是要求用戶在每次啟動應用程序時都輸入密碼。 數據庫的密鑰將是密碼的哈希值,並帶有一個隨機數。 將密碼鹽存儲在鑰匙串中。

堅定的黑客可以通過文件系統訪問來訪問加密的SQLite數據庫。 如果他們能夠破壞鑰匙串加密,那么他們很容易就能破解數據庫,但是通過要求用戶提供密碼(或密碼),它有助於抵御這種攻擊。

我認為您的解決方案很有意義。 它提供了很好的安全性,並使您的應用程序易於使用。

使用鑰匙串的主要好處是用戶備份是安全的,因為鑰匙串的內容沒有通過iphone備份。 (但是我想你已經知道了)

但是,這是巨大的安全性,因為潛在的黑客將不得不對iphone進行物理訪問。 而且,如果iphone被引腳阻塞,那么獲取數據的唯一快捷方法可能就是物理訪問設備的閃存,這並不是最容易的事情。

老實說,如果您強迫用戶輸入長密碼,我認為用戶不會使用您的應用。 而且,如果您讓他們使用自己喜歡的任何密碼,黑客將能夠使用字典攻擊來破壞數據庫加密。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM