JWS的x5c头中x509证书合法性校验需核验哪些字段?
你现有校验逻辑已经完成了JWS签名校验、证书链签名校验的基础步骤,要确认JWS确实来自苹果,你可以校验X509证书中以下几个不可伪造的字段:
可校验的核心字段
- 主题备用名称(SAN, Subject Alternative Name):苹果官方的业务证书SAN字段会明确标注对应业务的官方域名,你可以对照苹果对应服务文档给出的合法域名列表校验该字段,字段内容在证书签发时由CA固化,无法篡改,校验通过即可证明证书所有权属于苹果。
- 颁发者(Issuer)字段:提前在本地预置苹果官方公开的根CA证书、中间CA证书的标识,校验证书链的颁发路径必须完全匹配苹果官方的信任链,不要信任JWS头x5c字段携带的根证书。
- 证书主题(Subject)中的组织名(O, Organization):正规CA签发的苹果证书组织名固定为
Apple Inc.,可作为辅助校验项。
现有逻辑优化建议
你当前的根证书校验逻辑存在安全漏洞:恶意攻击者可以自行构造一组合法的自签名证书链,也能通过你当前的自签校验规则。你需要把根证书校验逻辑替换为用本地预存的苹果官方根CA证书来校验整个证书链的合法性,从根源上避免伪造证书链通过校验。
另外建议补充证书有效期校验,直接拒绝过期或尚未生效的证书。
内容的提问来源于stack exchange,提问作者Merricat
相关产品推荐
相关产品推荐

