GP卡片规范附录BH.docx
- 文档编号:25250398
- 上传时间:2023-06-06
- 格式:DOCX
- 页数:35
- 大小:341.38KB
GP卡片规范附录BH.docx
《GP卡片规范附录BH.docx》由会员分享,可在线阅读,更多相关《GP卡片规范附录BH.docx(35页珍藏版)》请在冰豆网上搜索。
GP卡片规范附录BH
11.算法(加解密和Hashing)
GP卡可以支持多种类型的安全功能供应用使用。
本附录包含几个可能用于GP的加解密算法和Hash方法的示例。
11.1数据加密标注(DES)
数据加密标准(DES)是对称加解密算法,它要求使用相同的密钥来加密和解密数据。
在它的最简单形式中它使用一个8字节密钥来加密一个8字节数据块,并且相同的密钥用于解密获得原始的明文。
3DES使用组合的DES操作进行加密和解密。
本规范中使用的3DES采用ISO/IEC18033-3中定义的密钥选项2。
11.1.1加密/解密
对加密定义了两种不同变化。
11.1.1.1CBC模式
CBC模式的3DES采用如[ANSIX9.52]和[ISO10116]中的定义,初始化链接值为‘0000000000000000’。
11.1.1.2ECB模式
ECB模式的3DES采用如[ANSIX9.52]和[ISO10116]中的定义。
11.1.2MAC计算
链接数据加密方法在[ISO9797]中定义。
11.1.2.1完全3DESMAC
完全3DESMAC是在[ISO9797-1]中定义的MAC算法3,采用输出转换3,不截断,并用DES代替块加密。
11.1.2.2单一DES加最终3DESMAC
这也是大家所知道的零售密钥。
它是在[ISO9797-1]中定义的MAC算法3,采用输出转换3,不截断,并用DES代替块加密。
11.2哈希算法
哈希是单向摘要操作,对于任意长度的数据返回一个固定长度的哈希值。
哈希不是加解密算法而只是提供数据的完整性。
它不提供认证或保密性。
11.2.1安全哈希算法(SHA-1)
SHA-1在[ISO10118-3]和FIPSPUB180-1中定义。
11.2.2MULTOS非对称哈希算法
对GP的MULTOS的非对称哈希算法在MULTOS文档[MAO-DOC-REF-009]中描述。
11.3公开密钥加解密方案1(PKCS#1)
不同于DES,使用共享的密钥,公开密钥加解密使用私钥(秘密保存在一个实体上)和公钥。
RSA(Rives/Shamir/Adleman)是GP所用的公开密钥算法之一。
产生一个RSA签名的过程包括使用PKCS#1标准。
签名方案是PKCS#1中定义的RSASSA-PKCS1-v1_5。
该方案应用于要签名数据的摘要,通过SHA-1算法生成。
签名结果的大小同公钥模块的大小相同。
校验一个签名的过程为,将公钥应用于(提供哈希的)签名,并比较此哈希值和要校验的数据的哈希值。
11.4DES填充
除非相反地指定,在执行DES操作之前对一块数据进行填充可通过下列方式进行:
●在数据块的右边添加一个80;
●如果合成后数据块长度是8字节倍数,则不需要填充其它的;
●在数据块右方添加2进制0,直到数据块长度是8的倍数。
如果填充的数据块要用于生成MAC,在DES操作后删除填充的数据。
12.安全内容管理
本附录定义了安全地改变和/或修改GP卡内容应当采用的一些不同方法。
在现在这个时候,这些方法是为GP指定的仅有的方法。
取决于卡片的实现,可以支持这些方法的任何子集。
12.1密钥
为了执行后续小节中描述的卡片内容管理操作,需要各种不同的密钥。
12.1.1令牌和收条密钥
如果支持委托管理,具有令牌验证权限的安全域和具有生成收条权限的安全域,应当有不同的密钥。
这些密钥用于安全地管理卡片和它的内容。
密钥
用途
最短长度
说明
令牌
令牌验证(RSA公钥)
1024位
仅委托管理
收条
可选地生成收条(DES)
16字节
仅委托管理
收条
可选地生成收条(RSA)
1024位
仅委托管理
表C-1:
令牌和收条密钥
建议RSA密钥为大于上述最短长度的32位的倍数。
12.1.1.1令牌密钥
如果卡片支持委托管理,具有令牌验证权限的安全域应当有一个RSA公钥用于验证令牌。
如果令牌验证密钥不存在,令牌验证和相应的委托管理操作应当失败。
12.1.1.2收条密钥
如果卡片支持委托管理特别是产生收条,具有产生收条权限的安全域应当要么有一个公认的无歧义的DES密钥,或者一个RSA私钥用于产生收条。
如果收条生成密钥不存在,生成收条和相应的委托管理操作应当失败。
12.1.2DAP验证密钥
如果安全域支持DAP验证,则安全域应当要么有一个RSA公钥或者一个DES密钥来验证加载文件数据块(LFDB)签名。
密钥
用途
最短长度
说明
DAP验证
加载文件数据块(LFDB)签名验证(RSA公钥)
1024位
仅DAP验证
DAP验证
加载文件数据块(LFDB)签名验证(DES密钥)
16字节
仅DAP验证
表C-2:
其它额外的安全域密钥
建议RSA密钥为大于上述最短长度的32位的倍数。
12.2加载文件数据块哈希(LFDBHash)
如果发生委托管理加载和/或加载文件包含一个或多个DAP块,则需要INSTALL[forload]命令中存在加载文件数据块哈希(LFDBHash)域。
此域的用途是提供加载文件数据块(LFDB)的SHA-1摘要,并用于确保加载文件数据块(LFDB)的内容未被以任何方式修改。
因为Hash自身是没有用任何方式来保证安全的,因此它用于其它安全操作中用以确保加载文件数据块(LFDB)未被修改并用修改后的数据生成了一个新的Hash。
OPEN应当在创建可执行加载文件(ELF)前验证加载文件数据块(LFDB)的完整性。
图C-1详细说明了安全域、应用提供方和控制授权机构计算加载文件数据块哈希(LFDBHash)的方法。
图C-1:
加载文件数据块哈希计算
数据的填充按SHA-1中的定义。
摘要在加载文件数据块(LFDB)被封装到加载文件的TLV结构(即不包含标签C4和它的长度)之前生成。
如果发生委托管理,加载令牌是包扩此哈希的多个域的签名,从而证明发卡方是为连接此哈希的加载文件数据块(LFDB)生成的令牌。
如果加载文件包含DAP块,DAP验证是此哈希值的实际签名,证明该DAP块是由验证连接此哈希的加载文件数据块(LFDB)的内容的机构所生成的。
12.3加载文件数据块签名(DAP验证)
加载文件数据块签名提供对加载文件数据块的验证,在开始处理实际的加载文件数据块之前。
OPEN应当请求连接该加载文件数据块签名的安全域来验证此签名。
加载文件数据块签名是对加载文件数据块哈希的签名。
每个加载文件数据块签名都和它所连接的安全域AID一起放在TLV结构的DAP块中。
DAP块放在加载文件的开头。
图C-2详细说明了应用提供方或控制授权机构执行加载文件数据块签名计算的方法。
图C-2:
加载文件数据块签名计算
12.4令牌
令牌是公开密钥签名,由发卡方生成。
令牌证明发卡方授权执行卡片内容管理操作,它们根据本附录生成和验证。
生成的令牌可被在多张卡上使用,取决于发卡方的安全策略。
令牌是RSA签名,是对适当数据的SHA-1消息摘要(用令牌私钥)解密。
数据填充采用SHA-1和PKCS#1中定义的机制。
令牌的签名方案在附录B.2.1中定义–安全哈希算法(SHA-1)。
12.4.1加载令牌
加载令牌是将应用代码传送到卡片的签名授权。
它允许对加载请求进行验证。
OPEN应当请求具有令牌验证权限的安全域来验证加载令牌。
下图所示为加载令牌的产生。
图C-3:
加载令牌计算
生成加载令牌时确保如下各项:
●只有此签名包含的应用代码(加载文件数据块的哈希)可被装载到卡片上;
●加载文件数据块的AID仅可以是包含在签名中的那个;
●可执行加载文件(从加载文件数据块中导出的)和可执行加载文件中的所有可执行模块仅可以和签名中包含的安全域相关联。
●令牌的发行方仅可以是具有令牌验证权限的安全域的安全域提供方(如卡片发行方)。
加载令牌是对下面数据的RSA签名,这些数据包含在要传送到卡片的实际INSTALL[forload]命令中。
名称
长度
引用控制参数P1
1
引用控制参数P2
1
以下数据域的长度(包括长度域)--参见下面的注释
1
加载文件AID长度
1
加载文件AID
5-16
安全域AID长度
1
安全域AID
0或5-16
加载文件数据块哈希的长度
1
加载文件数据块哈希
20
加载参数域长度
1-2
加载参数
变长
表C-3:
包含在加载令牌中的数据元素
注意“以下数据域长度”是在添加令牌之前的INSTALL命令的Lc值。
它用一个字节编码最高值到255。
12.4.2安装令牌
安装令牌允许对安装处理进行验证。
该令牌是将先前加载文件(可执行加载文件)中包含应用(可执行模块)安装在卡片上的签名授权。
OPEN应当请求具有令牌验证权限的安全域来验证安装令牌。
图C-4显示了安装令牌的产生。
图C-4:
安装令牌计算
生成安装令牌时确保如下各项:
●只有此签名包含的应用(可执行模块)并且出现在可执行加载文件中可被安装到卡片上;
●只有包含在此签名中的那个实例AID可被用作选择该实例的AID;
●应用仅可以用签名中所包含的权限进行安装;
●只有签名中包含的参数可被用于安装该应用;
●安装令牌的发行方仅可以是具有令牌验证权限的安全域的安全域提供方(如卡片发行方)。
安装令牌是对下面数据的RSA签名,这些数据包含在INSTALL[forinstall]命令中。
名称
长度
引用控制参数P1
1
引用控制参数P2
1
以下数据域的长度(包括长度域)--参见下面的注释
1
可执行加载文件AID长度
1
可执行加载文件AID
5-16
可执行模块AID长度
1
可执行加载文件中的AID
5-16
实例AID长度
1
实例AID
5-16
权限长度
1
权限(字节1-字节2-字节3)
1或3
安装参数域长度
1-2
安装参数(系统和应用)域
变长
表C-4:
包含在安装令牌中的数据元素
注意“以下数据域长度”是在添加令牌之前的INSTALL命令的Lc值。
它用一个字节编码最高值到255。
12.4.3设为可选令牌
设为可选令牌允许对安装以设为可选处理过程进行验证。
该令牌是对将应用设置为可以选择的签名授权。
OPEN应当请求具有令牌验证权限的安全域来验证设为可选令牌。
下图显示了设为可选令牌的产生。
图C-5:
设为可选令牌计算
生成设为可选令牌时确保如下各项:
●只有包含在签名中的应用并且出现在可执行加载文件中可以在卡片上设置为可以选择;
●只有包含在此签名中的那个实例AID可被用作选择该实例的AID;
●仅可以将应用以签名中所包含的权限设置为可以选择;
●只有签名中包含的参数可被用于将应用设置为可以选择;
●设为可选令牌的发行方仅可以是具有令牌验证权限的安全域的安全域提供方(如卡片发行方)。
设为可选令牌是对下面数据的RSA签名,这些数据包含在INSTALL[formakeselectable]命令中。
名称
长度
引用控制参数P1
1
引用控制参数P2
1
以下数据域的长度(包括长度域)--参见下面的注释
1
可执行加载文件AID长度(=00)
1
可执行模块AID长度(=00)
1
实例AID长度
1
实例AID
5-16
权限长度
1
权限(字节1-字节2-字节3)
1或3
设为可选参数域长度
1
设为可选参数域
0-n
表C-5:
包含在设为可选令牌中的数据元素
注意“以下数据域长度”是在添加令牌之前的INSTALL命令的Lc值。
它用一个字节编码最高值到255。
12.4.4引渡令牌
引渡令牌允许对引渡处理过程进行验证。
该令牌是对将应用从一个安全域引渡到另一个的签名授权。
OPEN应当请求具有令牌验证权限的安全域来验证引渡令牌。
下图显示了引渡令牌的产生。
图C-6:
引渡令牌计算
生成引渡令牌时确保如下各项:
●只有包含在签名中的应用或可执行加载文件可以被引渡;
●引渡令牌的发行方仅可以是具有令牌验证权限的安全域的安全域提供方(如卡片发行方)。
引渡令牌是对下面数据的RSA签名,这些数据包含在要实际要发送到卡片的INSTALL[forextradition]命令中。
名称
长度
是否必须
引用控制参数P1
1
必须
引用控制参数P2
1
必须
以下数据域的长度(包括长度域)--参见下面的注释
1
必须
安全域AID长度
1
必须
安全域AID
5-16
有条件的
长度=0
1
必须
应用或可执行加载文件AID长度
1
必须
应用或可执行加载文件AID
5-16
必须
长度=0
1
必须
引渡参数域长度
1
必须
引渡参数域
0-n
有条件的
表C-6:
包含在引渡令牌中的数据元素
注意“以下数据域长度”是在添加令牌之前的INSTALL命令的Lc值。
它用一个字节编码最高值到255。
12.4.5注册表更新令牌
注册表更新令牌允许对注册表更新处理过程进行验证。
该令牌是对为某应用更新GP注册表数据的签名授权,并且可选地将应用从一个安全域引渡到另一个。
OPEN应当请求具有令牌验证权限的安全域来验证注册表更新令牌。
图C-7显示了注册表更新令牌的产生。
图C-7:
注册表更新令牌计算
生成注册表更新令牌时确保如下各项:
●仅可以对包含在此签名中的应用的注册表条目进行更新(并且引渡,在采用注册表更新来引渡的情况下);
●应用的GP注册表条目仅可用签名中包含的权限和/或参数进行更新;
●注册表更新令牌的发行方仅可以是具有令牌验证权限的安全域的安全域提供方(如卡片发行方)。
注册表更新令牌是对下面数据的RSA签名,这些数据包含在要实际要发送到卡片的INSTALL[forforregistryupdate]命令中。
名称
长度
是否必须
引用控制参数P1
1
必须
引用控制参数P2
1
必须
以下数据域的长度(包括长度域)--参见下面的注释
1
必须
安全域AID长度
1
必须
安全域AID
0或5-16
有条件的
长度=0
1
必须
应用AID长度
1
必须
应用AID
5-16
有条件的
权限长度
1
必须
权限(字节1-字节2-字节3)
0-3
有条件的
注册表更新参数长度
1
必须
注册表更新参数
0-n
有条件的
表C-7:
包含在注册表更新令牌中的数据元素
注意“以下数据域长度”是在添加令牌之前的INSTALL命令的Lc值。
它用一个字节编码最高值到255。
12.4.6删除令牌
删除令牌是对从卡片上删除卡片内容的签名授权。
它允许对卡片内容删除处理进行验证。
该令牌是对在DELETE命令APDU中选择的域的签名,并添加到DELETE命令。
图C-8显示了删除令牌的产生。
图C-8:
删除令牌计算
生成删除令牌时确保如下各项:
●只有包含在此命令中的应用或可执行加载文件可以被删除;
●删除令牌的发行方仅可以是具有令牌验证权限的安全域的安全域提供方(如卡片发行方)。
删除令牌是对下面数据的RSA签名,这些数据包含在要实际要发送到卡片的DELETE[cardcontent]命令中。
名称
长度
引用控制参数P1
1
引用控制参数P2
1
以下数据域的长度(包括长度域)--参见下面的注释
1
应用或可执行加载文件AID标签(4F)
1
AID长度
1
应用或可执行加载文件AID
5-16
对数字签名的控制引用模板标签(B6)
0或1
对数字签名的控制引用模板长度
0-3
对数字签名(令牌)的控制引用模板,如表11-22中的定义,由(TLV格式的)令牌发行者id(标签42)、卡片特征数据CIN(标签45)、应用提供方id(标签5F20)和令牌标识/编号(标签93)组成
0-n
表C-8:
包含在删除令牌中的数据元素
注意“以下数据域长度”是在添加令牌之前的DELETE命令的Lc值。
它用一个字节编码最高值到255。
12.4.7加载、安装和设为可选令牌
组合的加载、安装和设为可选令牌允许对组合的加载和安装处理进行验证。
该令牌是对加载可执行加载文件并将包含在先前加载文件(可执行加载文件)中的应用安装到卡片的签名授权。
OPEN应当请求具有令牌验证权限的安全域来验证组合的加载、安装和设为可选令牌。
图C-9显示了组合的加载、安装和设为可选令牌的产生。
图C-9:
加载、安装和设为可选令牌计算
生成组合的加载、安装和设为可选令牌时确保如下各项:
●只有包含在签名中应用代码可以加载到卡片上;
●加载文件数据块LFDB的AID仅可以是在签名中包含的那个;
●可执行加载文件ELF(从加载文件数据块LFDB中导出的)和可执行加载文件中的所有可执行模块EM仅可关联到签名中包含的安全域;
●只有包含在此签名中的应用(可执行模块EM)并出现在可执行加载文件ELF中,可以被安装到卡片上;
●仅有包含在此签名中的实例AID可以作为选择该实例的AID;
●应用只能以包含在签名中权限进行安装;
●仅有包含在此签名中的参数可被用于安装该应用;
●组合的加载、安装和设为可选令牌的发行方仅可以是具有令牌验证权限的安全域的安全域提供方(如卡片发行方)。
组合的加载、安装和设为可选令牌是对下面数据的RSA签名,这些数据包含在INSTALL[forload,installandmakeselectable]命令中。
名称
长度
引用控制参数P1
1
引用控制参数P2
1
以下数据域的长度(包括长度域)
1
加载文件AID长度
1
加载文件AID
5-16
安全域AID长度
1
安全域AID
0或5-16
加载文件数据块哈希值(LFDBHash)的长度
1
加载文件数据块哈希值(LFDBHash)
0或20
加载参数域长度
1
加载参数域
变长
引用控制参数P1
1
引用控制参数P2
1
以下数据域的长度(包括长度域)
1
可执行加载文件AID长度
1
可执行加载文件AID
0或5-16
可执行模块AID长度
1
可执行加载文件中的AID
0或5-16
实例AID长度
1
实例AID
5-16
权限长度
1
权限(字节1-字节2-字节3)
1或3
安装参数域长度
1
安装参数(系统和应用)域
变长
表C-9:
包含在加载、安装和设为可选令牌中的数据元素
注意“以下数据域长度”是在添加令牌之前的INSTALL命令的Lc值。
它用一个字节编码最高值到255。
12.5收条
收条是可选的。
它们由具有产生收条权限的安全域生成,这些安全域需要掌握适当的收条密钥。
删除收条由具有产生收条权限的安全域生成的,由执行该功能的适当数据,连同卡片唯一数据CUD组成。
每个收条通过下列方式之一生成:
●对称加解密,使用收条密钥、ICV为2进制0以及附录B.1.2.2中描述的签名方法—单一DES加最终3DESMAC。
在生成签名前,数据需要根据附录B.4—DES填充进行填充;
●非对称加解密,使用具有产生收条权限的安全域的私钥来对收条数据的SHA-1摘要进行解密(签名),签名采用附录B.2.1—安全哈希算法(SHA-1)中描述的方法。
除了适当的加解密密钥之外,具有产生收条权限的安全域同时还跟踪记录一个确认计数器。
确认计数器是一个16位的值,每次产生收条后增加1。
确认计数器初始为0。
当达到它的最大值时,确认计数器可以不复位为0。
卡片不需要支持超过32767的计数值。
12.5.1加载收条
加载收条提供对通过委托加载处理完成的成功加载的确认。
加载收条可以包含在对一系列LOAD命令中的最后一条LOAD命令的响应报文中。
图C-10详述加载收条的算法。
图C-10:
加载收条算法
加载收条是下列数据的签名:
名称
长度
11.1.6节中定义的确认数据
1-n
可执行加载文件AID长度
1
可执行加载文件AID
5-16
安全域AID长度
1
安全域AID
5-16
表C-10:
加载收条中包含的数据元素
12.5.2安装收条和设为可选收条
安装/设为可选收条提供对通过委托安装/设为可选处理完成的成功安装/设为可选的确认。
安装/设为可选收条可以包含在对INSTALL[forinstall]命令、INSTALL[formakeselectable]和INSTALL[forinstallandmakeselectable]命令的响应报文中。
在INSTALL[forpersonalization]命令的响应报文中不返回安装收条。
图C-11详述安装/设为可选收条的算法。
图C-11:
安装/设为可选收条算法
安装/设为可选收条是下列数据的签名:
名称
长度
11.1.6节中定义的确认数据
1-n
可执行加载文件AID长度
1
可执行加载文件AID
5-16
实例AID长度指示
1
实例AID
5-16
表C-11:
安装/设为可选收条中包含的数据元素
12.5.3引渡收条
引渡收条提供确认:
指定的旧安全域将指定的应用或可执行加载文件引渡到指定的新安全域,在指定的卡片上,经由委托管理处理。
引渡收条可以在对INSTALL[forextradition]命令的响应报文中返回。
图C-12详述由具有产生收条权限的安全域执行的引渡收条的算法。
图C-12:
引渡收条算法
引渡收条是下列数据的签名:
名称
长度
是否必须
11.1.6节中定义的确认数据
1-n
必须
AID长度指示
1
必须
旧安全域AID
5-16
必须
AID长度指示
1
必须
应用实例或可执行加载文件AID
5-16
必须
AID长度指示
1
必须
新安全域AID
5-16
必须
表C-12:
引渡收条中包含的数据元素
12.5.4注册表更新收条
注册表更新收条提供确认:
在指定的卡片上指定应用的GP注册表数据(权限和/或注册表更新参数)被修改为指定的值。
如果注册表更新用于引渡,注册表更新收条也可提供确认:
指定的旧安全域将指定的应用引渡到指定的新安全域,在指定的卡片上,经由委托管理处理。
下图详述由具有产生收条权限的安全域执行的注册表更新收条的算法。
图C-13:
注册表更新收条算法
注册表更新收条是下列数据的签名:
名称
长度
是否必须
11.1.6节中定义的确认数据
1-n
必须
AID长度指示
1
必须
旧安全域AID
0或5-16
有条件的
AID长度指示
1
必须
应用AID
0或5-16
有条件的
AID长度指示
1
必须
新安全域AID
0或5-16
有条件的
权限长度
1
必须
权限(字节1-字节2-字节3)
0-3
有条件的
注册表更新参数长度
1
必须
注册表更新参数
0-n
有条件的
表C-13:
注册表更新收条中包含的数据元素
是否出现有条件的数据取决于哪个注册表数据(权限和/或注册表更新参数)被更新以及注册表更新是否用于引渡。
更多详情和数据格式参见11.5.2.3.5节和11.5.2.3.7节。
安全域AID在引渡时出现。
12.5.5删除收条
删除收条提供证明:
从指定的卡片上通过委托删除处理,指定
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- GP 卡片 规范 附录 BH