【问题标题】:Can we limit 'Security Level' in Secure Channel Protocol (SCP) 02 communication?我们可以限制安全通道协议 (SCP) 02 通信中的“安全级别”吗?
【发布时间】:2019-03-27 07:08:24
【问题描述】:

我有一种情况,我想在卡上加载和安装一个小程序。 SCP_02 将用于通过 ISD 或 CM 执行身份验证。但我希望 SCP_02 身份验证仅在最大安全性的情况下执行,即 C-MAC 和加密。 ISD(或任何额外的 SSD,如果需要)不应允许任何其他安全级别。

有可能实现吗?


external-authenticate (Ex-Auth) 命令的预期结果:

普通的前身份验证:8482000010f7d23150e635fd93d4e5ef76368f3d68
预期回复:6986

C-MAC Ex-Auth:8482010010f7d23150e635fd93d4e5ef76368f3d68
预期回复:6986

Enc + C-MAC Ex-Auth:8482030010f7d23150e635fd93d4e5ef76368f3d68
预期响应:9000(认证成功)

【问题讨论】:

  • 请注意,您应该使用数据加密密钥 (DEK)(或者是 KEK 的密钥加密密钥 - 我忘了)来额外保护通过通道发送的敏感信息。
  • @MaartenBodewes 我不明白你的意思。你能提供更多细节吗?如果我使用额外的加密,ISD 怎么知道?
  • 他指的是用于 PUTKEY 命令的 DEK。如果您将新的敏感材料传输到卡上,您可以使用另一个密钥进行加密,而不是消息加密密钥。只需查看 PUTKEY 的工作原理并确定此概念对您是否重要
  • @maaren 感谢您的帮助,但不是我现在期待的解毒剂。

标签: security smartcard javacard globalplatform


【解决方案1】:

全球平台规范中没有符合您需求的机制。 我看到的两种可能性是:

  • 使用卡专有设置和约定
  • 当我看到您与小程序个性化相关的其他问题时,您可以在小程序中执行以下操作:
    1. 选择要个性化的小程序
    2. 直接对小程序执行init-update和ext-auth,并使用SecureChannel.processSecurity()将身份验证过程重定向到安全域
    3. SecureChannel.getSecurityLevel()检查安全级别

【讨论】:

  • 感谢您的回答。您能否提供有关第一个建议的更多信息?如何在卡上注入专有设置?仅供参考>我正在使用第三方卡加载小程序。
  • 第一个答案意味着:阅读你的卡供应商的手册,看看他是否提供了额外的设置
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-30
相关资源
最近更新 更多