SuperAPI AI 工具集

device-integrity

测试与质量

查看项目

更新于 10-15 21:12

技能介绍

用途:验证发往服务器的请求来自真实 Apple 设备上运行的合法应用实例。DeviceCheck 提供每设备两个布尔位,用于简单标记(如是否已领取促销);App Attest 使用 Secure Enclave 密钥与 Apple 证明,为敏感请求提供密码学级别的应用合法性证明。

主要能力:DCDevice 生成唯一、临时的设备令牌,每次服务器操作都应重新生成,不可缓存复用;令牌交由服务器与 Apple 的 DeviceCheck API 交互,读取或设置每设备两位(位含义由开发者定义,跨重装保留)。DCAppAttestService(iOS 14+)分三阶段:在 Secure Enclave 生成密钥对、由 Apple 证明该密钥属于运行本应用的真实设备、之后用该密钥对服务器请求签名(断言)。

使用方式:使用前检查 DCDevice.current.isSupported 与 DCAppAttestService.shared.isSupported;每个用户账号在每台设备上只生成一个密钥,keyId 存入 Keychain 并复用;证明时先向服务器取一次性 challenge,计算 SHA-256 后调用 attestKey,把证明对象发给服务器验证并保存公钥与收据;断言时把一次性 challenge 与请求上下文编码为 clientData,计算哈希后调用 generateAssertion,通过请求头传给服务器校验。

适用场景:促销领取、防欺诈标记、敏感接口的请求来源校验。

限制:App Attest 在模拟器及部分设备不可用,扩展仅支持 Action、可扩展 SSO 和 watchOS 扩展;它不替代用户认证、OAuth/JWT/会话、授权、TLS 或证书固定,通过后仍须执行常规鉴权;所有验证必须在服务器完成;需处理 DCError(如 .serverUnavailable 重试、.invalidKey 丢弃重建),并注意开发与生产环境不可混用。具体服务器端点与完整算法资料中指向参考文档,暂未提供。