如何使用OpenPGP(Yubikey)签署应用程序包(APK)?

时间:2018-06-15 11:04:20

标签: java android apk code-signing jar-signing

我希望签署APK 文件,其中包含存储在我的Yubikey 的 OpenPGP小程序中的OpenPGP密钥。

我知道,有一个solution for APK signing using Yubikey's PIV applet。但是,PIV applet只能处理密钥长度最多为2048位的RSA密钥。

BSI TR-02102-1 Cryptographic Mechanisms Technical Guidelines(翻译英文版)指出,从2023年起(或在2023年及之后的使用中),仅允许密钥长度大于或等于3000位的RSA密钥。第一个可用的标准密钥长度为3072位。我必须遵守 BSI TR-02102

这总结为要求,我必须使用3072位的密钥长度和RSA作为算法,我不能使用PIV APK唱歌方法。

有没有办法使用Yubikey 4的OpenPGP小程序使用标准程序或使用自定义程序对APK文件进行签名?

注意:私钥是在Yubikey上生成的,不可导出。这是由于Yubikey的设计和我的最低安全要求。因此,出口和对话不是一种可能的解决方案。

1 个答案:

答案 0 :(得分:0)

使用支持RSA 3072 4096的USB令牌或智能卡进行个人身份验证吗?甚至Yubikey 5都不支持PIV / FIPS 201-2(这是SmartCard仿真)。我已经搜索了一段时间,但似乎几乎没有任何硬件可以支持它(以防它甚至适用);我可以找到的替代方法是RSA SecurIDNitrokey Pro 2Gemalto IDBridge K50

使用APK签名v2v3上传密钥的强度甚至可能无关紧要……它表示支持RSA 1024, RSA 2048, RSA 4096, RSA 8192, RSA 16384 ,但没有说明实际的释放键具有什么强度,这将是其中相当有趣的部分。 V3SchemeSigner提示PKCS1 V1.5编码格式;但是找出的唯一方法是通过运行ssh-keygen -lf ./rsa_key.pub(从Play商店中检查包的公共密钥)(其中显示了公共密钥文件的指纹,还显示了密钥的强度)。 / p>

security.stackexchange.com可能会提供进一步的线索。