[英]How Should I Secure a SQLite Database in iOS?
旨在进行两因素加密:您应该按照说明对数据库进行加密,但是要求用户在每次启动应用程序时都输入密码。 数据库的密钥将是密码的哈希值,并带有一个随机数。 将密码盐存储在钥匙串中。
坚定的黑客可以通过文件系统访问来访问加密的SQLite数据库。 如果他们能够破坏钥匙串加密,那么他们很容易就能破解数据库,但是通过要求用户提供密码(或密码),它有助于抵御这种攻击。
我认为您的解决方案很有意义。 它提供了很好的安全性,并使您的应用程序易于使用。
使用钥匙串的主要好处是用户备份是安全的,因为钥匙串的内容没有通过iphone备份。 (但是我想你已经知道了)
但是,这是巨大的安全性,因为潜在的黑客将不得不对iphone进行物理访问。 而且,如果iphone被引脚阻塞,那么获取数据的唯一快捷方法可能就是物理访问设备的闪存,这并不是最容易的事情。
老实说,如果您强迫用户输入长密码,我认为用户不会使用您的应用。 而且,如果您让他们使用自己喜欢的任何密码,黑客将能够使用字典攻击来破坏数据库加密。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.