apksigner verify --verbose(Android)或codesign -dv --verbose=4(iOS)命令提取签名信息,禁止采用非标准工具链解析;输出日志须完整保留至原始日志文件,时间戳精度不低于毫秒级。Signature Algorithm字段完全一致。apksigner verify --print-certs比对APK中MANIFEST.MF与CERT.SF哈希值,差异率必须为0%;iOS应用须校验_CodeSignature/CodeResources文件中每个资源条目的SHA-256哈希值与实际文件哈希值逐字节匹配。| 核验项目 | 合格判定指标 | 标准化验收流程 |
|---|---|---|
| 签名证书有效性 | 证书未过期、未被吊销(OCSP响应码=0,CRL分发点可访问且最新更新时间≤72小时) | 调用RFC 6960 OCSP接口验证,记录响应HTTP状态码、responseStatus字段值、certStatus字段值 |
| 签名完整性 | APK:Verified using v1 scheme (JAR signing): true且Verified using v2 scheme (APK Signature Scheme v2): true;iOS:status=0且valid on device=true | 执行双模式校验命令,截取完整终端输出,关键布尔值须高亮标注 |
| 签名算法合规性 | 证书Signature Algorithm字段值与YD/T 3647-2020表1中允许算法列表完全一致,无子字符串匹配 | 解析X.509证书DER编码,提取OID值(如1.2.840.113549.1.1.11),比对标准附录A白名单 |
| 签名时间戳可信性 | Android:Timestamp Authority证书有效且签名时间在证书有效期内;iOS:CMS时间戳签名由Apple TSA服务签发,TSA证书链可上溯至Apple Root CA | 解析apksigner输出中Timestamp段落,提取TSA证书Subject DN,比对Apple公开根证书库DN字段 |
apksigner sign --v1-signing-enabled true --v2-signing-enabled true --v3-signing-enabled true重签名;验收时v1/v2/v3任一模式返回false即判不合格。codesign -dvvv输出中Authority字段必须包含“Apple Timestamping Authority”;非Apple TSA证书直接拒绝入库。openssl verify -untrusted intermediate.pem -CAfile root.pem cert.pem预验证;缺失即退回整改。ntpdate -s time.apple.com(iOS)或systemctl restart systemd-timesyncd(Android模拟器宿主机),验证timedatectl status | grep "System clock synchronized"返回yes。keytool -printcert -jarfile app.apk提取序列号,与unzip -p app.apk META-INF/MANIFEST.MF | grep "SHA-256-Digest"输出哈希值进行Base64解码后SHA-256再哈希比对,不一致则判定签名篡改。| 标准号 | 标准名称 | 状态 | 发布日期 | 实施日期 |
|---|---|---|---|---|
| YD/T 3646-2020 | 移动应用程序代码签名技术要求 | 现行 | 2020-04-16 | 2020-07-01 |