【问题标题】:how to prevent database and shared preferences from being hacked如何防止数据库和共享首选项被黑客入侵
【发布时间】:2018-04-22 18:37:30
【问题描述】:

我正在开发一个密码管理器应用程序,它将您的帐户及其密码存储在数据库中,并将应用程序的密码存储在共享首选项中,以便其他人无法访问您的帐户

保护数据的最佳方法是什么 假设我创建了一个方法来加密数据并创建一个方法来解密它,以便普通用户可以读取数据

如果设备被root,黑客是否可以将应用程序数据移动到具有相同应用程序的另一台设备上,以便即使被加密也可以读取数据库,因为另一台设备中的应用程序具有解密方法

有没有后门方法让黑客远程将数据传输到另一个设备并由应用程序自己解密数据

如果加密方法包含生成随机加密密钥并将其存储在密码字符串中作为下一行(密码中不允许多行),这是一种安全的方法,因为黑客破解了包含加密的完整密码字符串密钥然后使用应用程序对其进行解密

假设我创建了一个单独的加密密钥......它应该永久存储在某个地方......但是如果黑客可以访问它,他可以通过应用程序本身破解加密吗?如果是,可以将加密密钥存储在用户无法访问的地方

注意:制作与设备的 IMEI 相关的加密密钥不是解决方案,因为我打算让应用程序在设备之间同步数据,因此许多设备可能访问同一个帐户

【问题讨论】:

  • 您试图以错误的方式解决此问题。从用户密码中派生一个加密密钥并用它加密数据。如果没有用户密码,并且如果您正确地进行加密,则无法访问数据。

标签: android sql encryption sharedpreferences


【解决方案1】:

如果有人有根,他们就拥有一切。从基本的角度来看,他们可以伪装成用户,您的应用程序会为他们解密内容,然后他们就会得到结果。

对敏感内容进行加密使用主密码作为基础意味着它对某些类型的攻击是安全的——但如果攻击者可以有一个软件监视该密码进入他们仍然可以窃取它。但它确实可以防止某些部分,因为当软件“冷”(即密码不存在或未加载)时,受保护的数据是安全的(如果加密是可靠的)。

【讨论】:

  • 我可以让应用程序阻止在root设备中运行,这样黑客就无法解密数据
【解决方案2】:

有一个外部库非常适合加密使用 Facebook Conceal 的 Shared Pref dat

Hawk

【讨论】:

    猜你喜欢
    • 2015-10-08
    • 1970-01-01
    • 2020-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-26
    相关资源
    最近更新 更多