APK签名验签服务 svs.syan.com.cn 上线
SVS提供数字证书, 数字签名的有效性和是否信任的验证服务, 支持RSA/SM2等非对称算法, 支持:
- 证书验证, CRL校验, 支持自定义细粒度验证条件
- PKCS#1, PKCS#7, Q1(SM2), Q7(SM2)等数字签名验证
- XML签名验证
安卓应用签名及追溯中, 使用了PKI/数字证书作为基础技术. 因此, 在数字签名验证通过后, 同时需要对数字证书的有效性, 合法性进行验证. 对数字证书的验证分为两种:
- 离线验证: 离线验证是将CA证书链导入到验证客户端(例如手机)中, 在验证客户端, 逐级校验签名证书和签发者证书, 直至CA根证书的过程.
- 在线验证: 在线验证是将签名证书发送到验证服务器上, 由远程验证服务器返回验证结果. 在线验证的方式有两种: OCSP和SVS.
离线验证和在线验证的对比如下表:
特性 | 离线验证 | 在线验证 |
---|---|---|
速度 | 无需联网, 快 | 需联网, 受网络带宽速度影响 |
CRL验证 | 无 | 有 |
根证书 | 需下载,需客户端保证真实,完整,同步.难度高 | 由服务端保证真实,完整,同步 |
自定义细粒度验证条件 | 无 | 有 |
svs.syan.com.cn是江苏先安科技有限公司提供的专用于安卓应用签名追溯的SVS在线验证服务, 支持所有参与本项目的CA证书验证服务.
在TTSDK中使用本服务的代码示例如下:
String certValue = "MII..";//获得证书的Base64编码值 CertSVSVerifier verifier = (CertSVSVerifier) CertificateVerifierFactory.generateCertVerifier("SVS"); verifier.setVerifyServiceUrl("http://svs.syan.com.cn"); boolean result = verifier.verify(certValue); String errorCode; if(!result){//如果验证失败,获得错误代码 errorCode = verifier.getErrorCode(); }