在我的应用程序中硬编码我的密钥库密码可以吗?

2022-03-11 00:00:00 ssl android httpclient keystore java

一般来说,我对SSL和安全性完全是新手。我找到了以下关于如何加载密钥存储库以信任自定义SSL证书的示例(这是使用Apache HTTPClient,btw):

private SSLSocketFactory newSslSocketFactory() {
  try {
    KeyStore trusted = KeyStore.getInstance("BKS");
    InputStream in = context.getResources().openRawResource(R.raw.mystore);
    try {
      trusted.load(in, "ez24get".toCharArray());
    } finally {
      in.close();
    }
    return new SSLSocketFactory(trusted);
  } catch (Exception e) {
    throw new AssertionError(e);
  }
}
我猜您需要访问设备才能修改密钥库,但是仍然.密钥库密码("ez24get")在代码中随时可用,这不是一个问题吗?要危及包含此代码的应用程序的安全,需要采取什么措施?


解决方案

如果您愿意冒这个风险。

任何有足够决心反编译您的代码的人都可以得到它。即使您混淆了代码,您仍然要承担风险,因为他们所需要做的就是查找字符串。

相关文章