小白问一下 Android APK 数字签名相关地一个问题

19次阅读

共计 1433 个字符,预计需要花费 4 分钟才能阅读完成。

备份阶段:

●将常用软件 + 密码库 + 其它资源等等加密打包到①[All-In-One.7Z]

●把压缩包②[Passphrase]打印出来离线保存

●计算出③[SHA512(All-In-One.7Z)]并且打印出来离线保存

●把①[All-In-One.7Z]上传到多家墙内网盘

●计算出⑥[SHA512(ZArchiver.APK)]并且打印出来离线保存

●把⑤[ZArchiver.APK]上传到多家墙内网盘

恢复阶段:

(你买了一部新手机 / 二手手机, 无法翻墙, 因为存在🐔和🥚问题)

●从国产安卓内置应用商店中安装任一网盘 APP 并且登录

●从任一备份网盘下载①[All-In-One.7Z]+⑤[ZArchiver.APK]到本地存储

●立刻使用④[XXX]就地计算①[All-In-One.7Z]的“实际校验和”, 并且与之前离线保存得“理论校验和”(即③)比较, 匹配一致则证明压缩包完好无损, 否则从头再来

●继续使用④[XXX]计算⑤[ZArchiver.APK]的“实际校验和”, 并且与之前离线保存得“理论校验和”(即⑥)比较, 匹配一致则证明 APK 完好无损并且立刻安装之, 否则从头再来

●使用 ZArchiver 搭配之前离线保存得②[Passphrase]解压①[All-In-One.7Z]到任意本地目录

●Enjoy~

我的问题是:

大家明显能看出来④[XXX]是整个流程中的罩门: 因为我全程假定其“已经安装”并且“可信”, 事实上在一部新手机上这俩点都不成立

实际上,④[XXX]应该和⑤[ZArchiver.APK]拥有一模一样地备份恢复流程, 但是如果那样问题就又变成了“在没有安装我的前提下, 执行我然后计算我的 HASH”, 这又是一个🐔和🥚的问题了😂😂😂

我的想法是:

●先参照⑤[ZArchiver.APK]的流程来备份④[XXX], 但是微调恢复流程:

从任一网盘下载④[XXX]的 APK 后, 先不校验, 无脑安装之 (显然此时④[XXX] 为“不可信”状态)

启动④[XXX], 计算网盘下载目录中④[XXX]的 APK 的“实际校验和”, 并且与之前离线保存得“理论校验和”比较, 匹配一致则证明 APK 完好无损(并且不需要安装了), 否则从头再来

我的问题是: 此时能否判定④[XXX]为“可信”状态了?

或者问得更具体一点儿:

如果网盘服务商作恶, 技术上是否存在这样地可能: 构造一个 [FakeXXX] 来替换我上传得④[XXX], 更改源代码, 在其中硬编码一些逻辑 / 信息, 使得使用 [FakeXXX] 来计算 [FakeXXX] 的 APK 所产生得结果总是我离线保存得“理论校验和”呢?

●如果实在没有办法, 只能借助外力, 在已经构建好了全套流程地 WINDOWS(见文末解释)上校验④[XXX], 确认完好无损后将其 APK 存储到双插口 U 盘(此类 U 盘既可连接标准 USB 插口被 WINDOWS 读写, 也可连接手机 TYPE-C 插口被 ANDROID 读写), 然后在安卓自带文件管理器中安装

●或者大家还有什么建议 / 方案呢? 因为我这几天搜索了解到,Android APK 其实自带数字签名, 但是和 WINDOWS EXE/MSI 自带地数字签名不一样,Android APK 自带地数字签名似乎不依赖 CA 来为开发者身份背书? 或者说 Android 其实放行任意 CA? 这也是 Android 开放性的根源?

注: 其实此全套流程已经在 WINDOWS 上构建了,④[XXX]的替代品我选择了[], 因为它自带数字签名(解决了“可信”问题), 并且自带 SHA***SUM.EXE, 并且是开源程序

正文完
 0