【问题标题】:Is the KeyStore encrypted by default?KeyStore是否默认加密?
【发布时间】:2018-01-16 12:07:35
【问题描述】:

我目前有一些代码将我的敏感信息存储在KeyStore 中,如下所示:

static readonly char[] Password = null;

//Create KeyStore
ks = KeyStore.GetInstance(KeyStore.DefaultType);
prot = new KeyStore.PasswordProtection(Password);

//AddUserName
var alias = MakeAlias("UserName", serviceId);
var usernameSecretKey = new SecretAccount(username);
var usernameEntry = new KeyStore.SecretKeyEntry(usernameSecretKey);
ks.SetEntry(alias, usernameEntry, prot);

现在这里有PasswordProtection,但密码是null

从设备上拉出我的Keystore 文件,我可以看到数据已加密(不是纯文本)。但是这些数据是否足够加密,或者通过调用 File.Decrypty(password = null); 之类的东西来解密很简单

【问题讨论】:

  • 您可以从here获取Keystore的所有功能

标签: c# android encryption xamarin.android keystore


【解决方案1】:

Keystore默认不加密,但里面包含了加密后的密钥信息,受密码保护

https://docs.oracle.com/javase/7/docs/api/java/security/KeyStore.html

【讨论】:

  • 我不确定我是否完全理解“它包含受密码保护的加密密钥信息”的意思。你能举个例子吗?
  • @user1:密钥库可能包含公共证书、私有密钥和秘密密钥。只有私钥是加密证书,您需要提供密码。此外,整个密钥库使用一个 MAC 进行完整性检查(但未加密),该 MAC 的密钥是从密码生成的。
猜你喜欢
  • 1970-01-01
  • 2015-08-18
  • 2011-03-09
  • 2012-04-07
  • 1970-01-01
  • 2011-06-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多