配置带DAP验证的补充安全域(SSD)的正确步骤及问题排查
补充安全域(SSD)配置最佳实践与错误排查
错误原因分析
1. NumberFormatException
旧版本GlobalPlatformPro对-new-keyver参数的十六进制格式解析存在bug,无法识别带0x前缀的十六进制值,改用十进制或无前缀的十六进制值即可解决。
2. 0x6985(使用条件未满足)
这个错误核心是当前安全通道权限不足以执行目标操作,分两种场景:
- 设置SSD密钥/公钥时:可能用SSD默认密钥建立的通道权限不足,无法修改密钥集或导入DAP公钥;也可能密钥的版本、类型等属性不符合GP规范。
- 加载小程序时:SSD未正确启用DAP验证,或当前通道未通过SSD高权限认证,同时小程序签名公钥未被SSD正确识别。
正确的SSD配置步骤
前置准备
- 生成2048位以上RSA密钥对(用于DAP验证)
- 用该密钥对签名目标小程序(生成带签名的CAP文件)
- 已完成SSD(AID:
A000000151535041)安装并授权DAPVerification权限
步骤1:建立SSD高权限安全通道
使用SSD初始密钥建立高权限加密通道(-secure-channel 03):
gp -sdaid A000000151535041 -key 404142434445464748494A4B4C4D4E4F -secure-channel 03
步骤2:设置SSD安全通道密钥集
使用v20.01.23版本GlobalPlatformPro,-new-keyver用十进制值(115对应0x73),同时明确指定密钥类型为RSA:
gp -d -v -i -sdaid A000000151535041 -new-keyver 115 -put-key rsaPublicKey.pem -key 404142434445464748494A4B4C4D4E4F -key-type RSA
步骤3:导入DAP公钥到SSD
确保公钥为PEM格式,执行导入命令:
gp -sdaid A000000151535041 -key 404142434445464748494A4B4C4D4E4F -put-dap-key rsaPublicKey.pem -keyver 115
步骤4:加载签名小程序
先用新版本密钥建立通道,再加载签名后的CAP文件:
# 建立新版本密钥通道 gp -sdaid A000000151535041 -key 404142434445464748494A4B4C4D4E4F -keyver 115 -secure-channel 03 # 加载签名小程序 gp -to A000000151535041 -key 404142434445464748494A4B4C4D4E4F -keyver 115 -load signed_applet.cap
额外注意事项
- 确保SSD生命周期状态为可操作(Operational),若处于初始化状态需先激活:
gp -sdaid A000000151535041 -key 404142434445464748494A4B4C4D4E4F -activate - 小程序签名必须使用与导入SSD的DAP公钥配对的私钥,签名需覆盖小程序所有组件
- 优先使用稳定版GlobalPlatformPro(v20.01.23及以上),避免旧版本兼容性问题
内容的提问来源于stack exchange,提问作者MJay
相关产品推荐
相关产品推荐

