APK签名验签服务 svs.syan.com.cn 上线

SVS提供数字证书, 数字签名的有效性和是否信任的验证服务, 支持RSA/SM2等非对称算法, 支持:

  • 证书验证, CRL校验, 支持自定义细粒度验证条件
  • PKCS#1, PKCS#7, Q1(SM2), Q7(SM2)等数字签名验证
  • XML签名验证

安卓应用签名及追溯中, 使用了PKI/数字证书作为基础技术. 因此, 在数字签名验证通过后, 同时需要对数字证书的有效性, 合法性进行验证. 对数字证书的验证分为两种:

  • 离线验证: 离线验证是将CA证书链导入到验证客户端(例如手机)中, 在验证客户端, 逐级校验签名证书和签发者证书, 直至CA根证书的过程.
  • 在线验证: 在线验证是将签名证书发送到验证服务器上, 由远程验证服务器返回验证结果. 在线验证的方式有两种: OCSP和SVS.

离线验证和在线验证的对比如下表:

离线验证 vs 在线验证
特性 离线验证 在线验证
速度 无需联网, 快 需联网, 受网络带宽速度影响
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();
}