我正在为 Android 创建一个白标应用程序。
这意味着我会为不同的客户自动创建和更新数千个 Android 应用程序。每个应用程序使用不同的配置,因此它们都会根据客户需求(例如主题、徽标)略有不同
Android 应用程序需要使用密钥进行签名。
我的问题是我应该如何处理为不同客户签署不同的应用程序。
我的解决方案如下:
1. 使用相同的密码为每个应用程序存储不同的密钥库
- 我会为每个应用程序创建一个不同的密钥库,包含一个密钥
- 然后,我将此密钥库存储在 S3 存储桶中。
- 我可以让所有密钥库都使用相同的简单密码(因为不允许空白,否则会导致问题)。
2.为每个应用程序使用不同的自动生成密码存储不同的密钥库
- 与 (1) 相同,但每个密钥库都有一个唯一的自动生成密码。
- 密码将作为纯文本存储在 MySQL 数据库中(或者可能由相同的密钥加密)。
- 这似乎是通过阻碍获得的安全性。因此,我正在考虑采用方法(1)。
3. 创建存储在 S3 中的单个密钥存储,每个应用使用不同的密钥
- 我还可以创建存储在 S3 存储桶中的单个密钥库
- 每个应用程序都将是密钥库中的一个密钥
- 每个密钥可以具有与 (1) 中相同的密码,也可以与 (2) 中的不同
- 我想这个问题是当有数千个密钥时密钥库可能会变得非常大。
我计划采用的解决方案是(1)。
哪种解决方案最好?有没有更好的解决方案?有没有我没有发现的优点和缺点?