从远程服务器上安全地存储敏感数据



我有一个Android应用,用户以文本形式输入一些敏感信息。我需要将此数据存储在远程服务器上,该数据由该用户从其他设备中检索。我想将这些数据限于该用户以外的所有人,尤其是流氓数据库管理员 - 用户应该是唯一能够恢复信息的人。

我的方法是,盐将在Android应用中生成,并且将使用此盐搭配每个敏感数据,并将存储以供以后解密以获取实际的原始数据。

这是正确的方法吗?还是任何更好的方法?

如果是,

  1. 用户更改设备怎么办?
  2. 如何在新设备中使用相同的盐,因为不能将盐保存在数据库中?

更新:敏感数据需要存储在Firebase数据库中。

免责声明

我不是安全专业人员。我不是专家。我只是互联网上的一些随机开发人员,他们过去曾做过一些阅读,并刺伤了回答您的问题。如果您想要更多可靠的信息,请转到信息安全性stackexchange。


用户将敏感信息输入您的程序。您希望他们以后能够恢复,因此必须将其保存在某个地方。如何处理?

在哪里保存?

  • 如果设备不需要从其他地方访问该设备。
  • 如果用户可能需要从其他设备访问它(或恢复(。

如何保护它?

  • 加密。

用什么加密?

  • 标准,安全的算法(例如AES(和从用户提供的密码派生的密钥。

但用户倾向于提出较差的密码。如果我们将其发送到服务器,并且数据库可能会受到损害,则如何防止蛮力攻击?

  • 采用键拉伸算法,例如pbkdf2。

这真的有多安全吗?

  • 好吧,如果用户选择较差的密码,然后您的数据库被妥协,蛮力将相对容易。
  • 如果密码曾经离开他们的设备(例如,例如,将应用程序重复使用,以登录服务器或其他内容(,则您正在踩在危险的水域中。

最新更新