GlobalPlatform Technology Secure Channel Protocol ‘03‘ 标准 - 安全通道协议简介

GlobalPlatform Technology Secure Channel Protocol '03' (以下简称SCP03)是GlobalPlatform Technology Card Specification v2.3 的附录D(Amendment D),它是安全通道的建立和使用的规范和协议。安全通道的建立的标志即通讯双方都形成三个安全通道共享密钥(Derived Session Key),它们是Kmac, Krmac, Kenc(即标准中的S-MAC,S-RMAC,S-ENC)。

SCP03还是分成两大部分,第一部分,对S-MAC,S-RMAC,S-ENC的生成和通讯双方双向认证的过程做出一种规范并说明; 第二部分,说明了安全通道建立后如何利用这三个密钥进行安全通道通信的框架和流程。第二部分的框架可以便捷用于各种场合,可能某些安全体系采用其它方法完成S-MAC,S-RMAC,S-ENC(或者称为Kmac, Krmac, Kenc)的生成并做了双向认证(比如汽车电子钥匙的相关标准),但是一旦安全通道建立,都会按SCP03第二部分所描述的框架进行安全通信。本文也主要描述SCP03第二部分的内容,如何利用S-MAC,S-RMAC,S-ENC进行安全通信的过程。

下图是一个读卡设备发送APDU Command和智能卡返回APDU Response的完整的SCP03 APDU Exchange Secure Messaging流程示意图 :

针对上面流程示意图,以下分成以下四个大步骤进行描述:(以下描述中的加密和生成MAC细节示意图均引用于《Secure Channel Protocol’03’- Public Release v1.1.2》标准)

一、流程示意图中的Step1-1是读卡设备对APDU Command加密和生成MAC的过程,首先读卡设备对APDU Command进行加密,加密采用S-ENC,加密的过程如下图所示:

接下来,加密完成后,APDU Command的MAC生成过程如下图所示:

二、流程示意图中的Step2-1是智能卡收到APDU Command后解密和校验过程,首先是校验C-MAC,是Step1-1-b的逆向操作,然后是解密APDU Command,是Step1-1-a逆向操作。

三、流程示意图中的Step2-2是智能卡对APDU Response加密和生成MAC的过程,首先是APDU Response的加密过程,细节如下图所示:

接下来是APDU Response的MAC生成过程,如下图所示:

四、流程示意图中的Step1-2是读卡设备收到APDU Response后解密和校验过程,首先是校验APDU Response的R-MAC,是Step2-2-b的逆向操作;然后是APDU Response的解密过程, 是Step2-2-a的逆向操作;

以上是对APDU Exchange Secure Messaging流程的简要介绍,关于流程还有以下几点说明:

1)MAC chaining value的处理,细节可参考SCP03中的Figure6-3,MAC chaining value初始值为零,每完成一轮Command-Response,这一轮的MAC计算结果就是下一轮处理的MAC chaining value。

2)ICV是AES CBC加解密所需的参数,这个值来源于一个计数值,要求通讯双方保持同步,每完成一轮Command-Response向前计数,ICV实际使用值可以是计数值的加密结果,标准要求,智能卡用的计数值最高位为1,读卡设备用的的计数值最高位是零,其它位相同。

3)个人觉得可以在实际项目中参考SCP03的框架进行安全体系设计,如当前标准使用AES,实际使用可以选用其它算法,但借鉴SCP03的基本原理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值