新安装补充安全域(SSD)后如何完成自定义配置?
SSD实例独立密钥配置操作指南
首次PUT KEY操作的新旧KVN参数取值规则
- 新安装完成的带委托管理权限的SSD,在未注入独立密钥前,会完全复用所属ISD的密钥上下文,当前实际生效的密钥集就是你通过
pyResMan读到的、KVN为20的那套继承密钥 - 发起首次独立密钥写入的PUT KEY操作时,旧KVN必须填写目标SSD当前实际生效的密钥集版本号,也就是这里的
20:如果填错其他值,卡会返回6A88(引用数据不存在)错误,拒绝操作 - 新KVN按照自定义规则选取即可,要求是和旧KVN值不重复、和SSD后续密钥迭代的版本号不冲突,建议选择不与ISD的
20重合的值(比如通用的首次独立密钥版本01),避免后续跨域安全通道认证时出现版本混淆
独立密钥集的具体配置参数
实际操作中按照规范匹配你规划的3个密钥、80类型的结构即可,具体配置项为:
- 密钥总数量:3个,固定索引为
01、02、03,分别对应安全通道的MAC计算密钥、命令体加密密钥、响应MAC校验密钥 - 密钥类型:统一使用
80(规范定义的Type A对称密钥,适配全局平台2.1.1及以上版本的安全通道),与现有ISD的密钥类型保持一致即可 - 密钥长度:与SSD软件包支持的长度匹配即可,既然现有ISD密钥为80位长度,SSD新密钥集选同长度的80位对称密钥就可以做到全兼容
- 密钥元数据:每个密钥需单独配置对应的使用权限,不要开启全权限通配,避免密钥被滥用:
- 索引
01的MAC密钥:开启安全通道MAC计算、命令完整性校验权限 - 索引
02的加密密钥:开启命令体解密、敏感数据加密权限 - 索引
03的RMAC密钥:开启响应报文校验权限
注意:本次PUT KEY操作需选择「替换现有密钥集」模式,而非追加密钥模式,否则新密钥会被追加到继承的密钥集里,无法实现脱离ISD管控的目标
- 索引
强制SSD切换到新独立密钥集的操作方法
- PUT KEY命令本身不会自动完成密钥集的切换:操作全程的初始安全通道都是用旧的继承密钥(KVN
20)建立的,新写入的密钥默认处于待激活状态 - 当最后一个密钥写入成功后,需要主动向SSD发送
GET DATA命令,查询当前生效的密钥版本号,如果返回值与你设置的新KVN一致,说明新密钥集已经被标记为默认生效集 - 验证切换有效性:使用新KVN对应的密钥尝试建立独立安全通道,如果连接成功,再尝试用原来ISD的继承密钥连接SSD,若返回安全通道认证失败,就说明SSD已经完全脱离ISD的管控范围
- 针对部分旧版本SSD实现不自动激活新密钥的问题,需要在PUT KEY的密钥元数据TLV里,为新密钥集添加「作为安全域默认密钥」的标记位,否则SSD会继续优先使用旧的继承密钥
SSD安装完成后需补充的其他自定义配置
- 委托管理权限边界配置:默认安装的SSD会继承最大的委托管理权限,可在自身域下安装应用、子SSD,需要通过
PUT DATA为SSD配置可安装应用的AID白名单、可发起委托管理操作的合法主体白名单,避免权限越界 - 安全通道策略配置:默认的SSD安全通道策略为允许明文、无MAC的命令访问,需要通过
PUT DATA修改策略为「所有发往SSD的命令必须经过MAC校验,敏感操作的命令体必须加密」,消除明文访问的安全风险 - 本地安全策略配置:如果SSD需要承载敏感应用,需为其配置独立的PIN校验入口、PIN重试次数阈值、生命周期密钥轮换规则,避免出现暴力破解、密钥长期不更新的风险
- 访问控制列表配置:为SSD配置可直接访问的外部应用AID白名单,禁止未授权的应用直接读取SSD内的敏感数据
内容的提问来源于stack exchange,提问作者MJay
相关产品推荐
相关产品推荐

