我创建了一个加密模块并将其导出为jar文件。
库在加载时需要进行自我完整性测试才能通过FIPS验证。
这样做的第一个想法是在运行时读取jar文件,制作一个哈希并将其与保存在某处的签名进行比较。
通过解压缩使用jar文件的应用程序apk,我找不到jar。所以我猜jar中的类都保存在classes.dex中,对不对?是否可以从classes.dex中恢复jar?
答案 0 :(得分:1)
在加载模块之前,您需要执行“已批准的完整性技术”。唯一的NIST“已批准”完整性验证方法是: - DSA / RSA / ECDSA签名 - C / MAC或HMAC
请参阅FIPS140-2 Implementation Guidance document中的“6.4已批准的完整性技术”。
简单的MD5 / SHA-1 / SHA-2哈希是不够的。
答案 1 :(得分:0)
是否可以从classes.dex恢复jar?
没有
而且,它对你有点好处。改变你的JAR的人也只会改变哈希值。
答案 2 :(得分:0)
dex格式不是公开的,但是确实存在一个工具可以将它提取到jar,它叫做dex2jar,可以在这里找到http://code.google.com/p/dex2jar/
不要以为它解决了你的问题,只是想你想知道。