【发布时间】:2021-09-15 04:46:42
【问题描述】:
我正在努力让我的应用用户能够将他们的数据与云同步。但是我计划通过加密他们的数据来安全地做到这一点。我的计划是根据堆栈交换上接受的答案执行以下操作:
https://security.stackexchange.com/questions/157422/store-encrypted-user-data-in-database
- 使用密钥派生函数将用户密码转换为加密密钥
- 使用加密安全的伪随机数生成器生成单独的密钥,用于加密用户的数据
- 使用派生密钥加密生成的密钥
- 生成的数据加密密钥密文随后可以安全地存储在数据库的用户表中
我面临的障碍是密钥派生功能。我对 iOS 和 Android 有相同的应用程序,想知道是否有一个可供 iOS (swift) 和 Android (kotlin) 访问的库。我担心的是,如果我为密钥派生函数使用不同的库,我将无法为 iOS 和 Android 创建相同的密钥,因此如果用户例如从使用切换时将无法解密他们的数据Android 到 iOS,反之亦然。以前有没有人遇到过这个问题,如果有,您使用了什么库或工具?我的担心是没有根据的,不会有问题吗?我试图避免使用 KMS,因为我认为那会很昂贵。
【问题讨论】:
-
我正在使用CryptLib 对用户数据进行跨平台加密和解密。看看有没有帮助。
-
@LalitFauzdar 否。 “支持 SHA-256 散列密钥。切勿使用纯文本作为加密密钥”。是的,你也不应该在密码上使用 SHA-256。对安全一无所知的人不应该创建跨平台加密库。
标签: android ios swift kotlin encryption