2

我创建了一个加密模块并将其导出为 jar 文件。

为了通过 FIPS 验证,库在加载时需要进行自我完整性测试。

这样做的第一个想法是在运行时读取 jar 文件,进行哈希并将其与保存在某处的签名进行比较。

通过解压缩使用 jar 文件的应用程序 apk,我找不到 jar。所以我猜jar中的类保存在classes.dex中,对吗?是否可以从 classes.dex 中恢复 jar?

4

3 回答 3

1

在加载模块之前,您需要执行“批准的完整性技术”。NIST“批准”的唯一完整性验证方法是: - DSA/RSA/ECDSA 签名 - C/MAC 或 HMAC

请参阅FIPS140-2 实施指南文档中的“6.4 批准的完整性技术” 。

简单的 MD5/SHA-1/SHA-2 哈希是不够的。

于 2012-12-18T19:21:44.353 回答
0

dex 格式不公开,但确实存在将其提取到 jar 的工具,称为 dex2jar,可在此处找到http://code.google.com/p/dex2jar/

不要认为它解决了你的问题,只是认为你想知道。

于 2012-02-29T22:19:19.940 回答
0

是否可以从 classes.dex 中恢复 jar?

不。

而且,它对你没有一点好处。谁更改了您的 JAR,也只会更改哈希值。

于 2011-12-01T23:22:32.527 回答