




已阅读5页,还剩21页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
11. 算法(加解密和Hashing)GP卡可以支持多种类型的安全功能供应用使用。本附录包含几个可能用于GP的加解密算法和Hash方法的示例。11.1 数据加密标注(DES)数据加密标准(DES)是对称加解密算法,它要求使用相同的密钥来加密和解密数据。在它的最简单形式中它使用一个8字节密钥来加密一个8字节数据块,并且相同的密钥用于解密获得原始的明文。3DES使用组合的DES操作进行加密和解密。本规范中使用的3DES采用ISO/IEC 18033-3中定义的密钥选项2。11.1.1 加密/解密对加密定义了两种不同变化。11.1.1.1 CBC模式CBC模式的3DES采用如ANSI X9.52和ISO 10116中的定义,初始化链接值为00 00 00 00 00 00 00 00。11.1.1.2 ECB模式ECB模式的3DES采用如ANSI X9.52和ISO 10116中的定义。11.1.2 MAC计算链接数据加密方法在ISO 9797中定义。11.1.2.1 完全3DES MAC完全3DES MAC是在ISO9797-1中定义的MAC算法3,采用输出转换3,不截断,并用DES代替块加密。11.1.2.2 单一DES加最终3DES MAC这也是大家所知道的零售密钥。它是在ISO9797-1中定义的MAC算法3,采用输出转换3,不截断,并用DES代替块加密。11.2 哈希算法哈希是单向摘要操作,对于任意长度的数据返回一个固定长度的哈希值。哈希不是加解密算法而只是提供数据的完整性。它不提供认证或保密性。11.2.1 安全哈希算法(SHA-1)SHA-1在ISO 10118-3和FIPS PUB 180-1中定义。11.2.2 MULTOS非对称哈希算法对GP的MULTOS的非对称哈希算法在MULTOS文档MAO-DOC-REF-009中描述。11.3 公开密钥加解密方案1(PKCS#1)不同于DES,使用共享的密钥,公开密钥加解密使用私钥(秘密保存在一个实体上)和公钥。RSA(Rives/Shamir/Adleman)是GP所用的公开密钥算法之一。产生一个RSA签名的过程包括使用PKCS#1标准。签名方案是PKCS#1中定义的RSA SSA-PKCS1-v1_5。该方案应用于要签名数据的摘要,通过SHA-1算法生成。签名结果的大小同公钥模块的大小相同。校验一个签名的过程为,将公钥应用于(提供哈希的)签名,并比较此哈希值和要校验的数据的哈希值。11.4 DES填充除非相反地指定,在执行DES操作之前对一块数据进行填充可通过下列方式进行:l 在数据块的右边添加一个80;l 如果合成后数据块长度是8字节倍数,则不需要填充其它的;l 在数据块右方添加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.2 DAP验证密钥如果安全域支持DAP验证,则安全域应当要么有一个RSA公钥或者一个DES密钥来验证加载文件数据块(LFDB)签名。密钥用途最短长度说明DAP验证加载文件数据块(LFDB)签名验证(RSA公钥)1024位仅DAP验证DAP验证加载文件数据块(LFDB)签名验证(DES密钥)16字节仅DAP验证表C-2:其它额外的安全域密钥建议RSA密钥为大于上述最短长度的32位的倍数。12.2 加载文件数据块哈希(LFDB Hash)如果发生委托管理加载和/或加载文件包含一个或多个DAP块,则需要INSTALL for load命令中存在加载文件数据块哈希(LFDB Hash)域。此域的用途是提供加载文件数据块(LFDB)的SHA-1摘要,并用于确保加载文件数据块(LFDB)的内容未被以任何方式修改。因为Hash自身是没有用任何方式来保证安全的,因此它用于其它安全操作中用以确保加载文件数据块(LFDB)未被修改并用修改后的数据生成了一个新的Hash。OPEN应当在创建可执行加载文件(ELF)前验证加载文件数据块(LFDB)的完整性。图C-1详细说明了安全域、应用提供方和控制授权机构计算加载文件数据块哈希(LFDB Hash)的方法。图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:加载令牌计算生成加载令牌时确保如下各项:l 只有此签名包含的应用代码(加载文件数据块的哈希)可被装载到卡片上;l 加载文件数据块的AID仅可以是包含在签名中的那个;l 可执行加载文件(从加载文件数据块中导出的)和可执行加载文件中的所有可执行模块仅可以和签名中包含的安全域相关联。l 令牌的发行方仅可以是具有令牌验证权限的安全域的安全域提供方(如卡片发行方)。加载令牌是对下面数据的RSA签名,这些数据包含在要传送到卡片的实际INSTALL for load命令中。名称长度引用控制参数P11引用控制参数P21以下数据域的长度(包括长度域)-参见下面的注释1加载文件AID长度1加载文件AID5-16安全域AID长度1安全域AID0或5-16加载文件数据块哈希的长度1加载文件数据块哈希20加载参数域长度1-2加载参数变长表C-3:包含在加载令牌中的数据元素注意“以下数据域长度”是在添加令牌之前的INSTALL命令的Lc值。它用一个字节编码最高值到255。12.4.2 安装令牌安装令牌允许对安装处理进行验证。该令牌是将先前加载文件(可执行加载文件)中包含应用(可执行模块)安装在卡片上的签名授权。OPEN应当请求具有令牌验证权限的安全域来验证安装令牌。图C-4显示了安装令牌的产生。图C-4:安装令牌计算生成安装令牌时确保如下各项:l 只有此签名包含的应用(可执行模块)并且出现在可执行加载文件中可被安装到卡片上;l 只有包含在此签名中的那个实例AID可被用作选择该实例的AID;l 应用仅可以用签名中所包含的权限进行安装;l 只有签名中包含的参数可被用于安装该应用;l 安装令牌的发行方仅可以是具有令牌验证权限的安全域的安全域提供方(如卡片发行方)。安装令牌是对下面数据的RSA签名,这些数据包含在INSTALL for install命令中。名称长度引用控制参数P11引用控制参数P21以下数据域的长度(包括长度域)-参见下面的注释1可执行加载文件AID长度1可执行加载文件AID5-16可执行模块AID长度1可执行加载文件中的AID5-16实例AID长度1实例AID5-16权限长度1权限(字节1-字节2-字节3)1或3 安装参数域长度1-2安装参数(系统和应用)域变长表C-4:包含在安装令牌中的数据元素注意“以下数据域长度”是在添加令牌之前的INSTALL命令的Lc值。它用一个字节编码最高值到255。12.4.3 设为可选令牌设为可选令牌允许对安装以设为可选处理过程进行验证。该令牌是对将应用设置为可以选择的签名授权。OPEN应当请求具有令牌验证权限的安全域来验证设为可选令牌。下图显示了设为可选令牌的产生。图C-5:设为可选令牌计算生成设为可选令牌时确保如下各项:l 只有包含在签名中的应用并且出现在可执行加载文件中可以在卡片上设置为可以选择;l 只有包含在此签名中的那个实例AID可被用作选择该实例的AID;l 仅可以将应用以签名中所包含的权限设置为可以选择;l 只有签名中包含的参数可被用于将应用设置为可以选择;l 设为可选令牌的发行方仅可以是具有令牌验证权限的安全域的安全域提供方(如卡片发行方)。设为可选令牌是对下面数据的RSA签名,这些数据包含在INSTALL for make selectable命令中。名称长度引用控制参数P11引用控制参数P21以下数据域的长度(包括长度域)-参见下面的注释1可执行加载文件AID长度(=00)1可执行模块AID长度(=00)1实例AID长度1实例AID5-16权限长度1权限(字节1-字节2-字节3)1或3 设为可选参数域长度1设为可选参数域0-n表C-5:包含在设为可选令牌中的数据元素注意“以下数据域长度”是在添加令牌之前的INSTALL命令的Lc值。它用一个字节编码最高值到255。12.4.4 引渡令牌引渡令牌允许对引渡处理过程进行验证。该令牌是对将应用从一个安全域引渡到另一个的签名授权。OPEN应当请求具有令牌验证权限的安全域来验证引渡令牌。下图显示了引渡令牌的产生。图C-6:引渡令牌计算生成引渡令牌时确保如下各项:l 只有包含在签名中的应用或可执行加载文件可以被引渡; l 引渡令牌的发行方仅可以是具有令牌验证权限的安全域的安全域提供方(如卡片发行方)。引渡令牌是对下面数据的RSA签名,这些数据包含在要实际要发送到卡片的INSTALL for extradition命令中。名称长度是否必须引用控制参数P11必须引用控制参数P21必须以下数据域的长度(包括长度域)-参见下面的注释1必须安全域AID长度1必须安全域AID5-16有条件的长度=01必须应用或可执行加载文件AID长度1必须应用或可执行加载文件AID5-16必须长度=01必须引渡参数域长度1必须引渡参数域0-n有条件的表C-6:包含在引渡令牌中的数据元素注意“以下数据域长度”是在添加令牌之前的INSTALL命令的Lc值。它用一个字节编码最高值到255。12.4.5 注册表更新令牌注册表更新令牌允许对注册表更新处理过程进行验证。该令牌是对为某应用更新GP注册表数据的签名授权,并且可选地将应用从一个安全域引渡到另一个。OPEN应当请求具有令牌验证权限的安全域来验证注册表更新令牌。图C-7显示了注册表更新令牌的产生。图C-7:注册表更新令牌计算生成注册表更新令牌时确保如下各项:l 仅可以对包含在此签名中的应用的注册表条目进行更新(并且引渡,在采用注册表更新来引渡的情况下);l 应用的GP注册表条目仅可用签名中包含的权限和/或参数进行更新;l 注册表更新令牌的发行方仅可以是具有令牌验证权限的安全域的安全域提供方(如卡片发行方)。注册表更新令牌是对下面数据的RSA签名,这些数据包含在要实际要发送到卡片的INSTALL for for registry update命令中。名称长度是否必须引用控制参数P11必须引用控制参数P21必须以下数据域的长度(包括长度域)-参见下面的注释1必须安全域AID长度1必须安全域AID0或5-16有条件的长度=01必须应用AID长度1必须应用AID5-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:删除令牌计算生成删除令牌时确保如下各项:l 只有包含在此命令中的应用或可执行加载文件可以被删除;l 删除令牌的发行方仅可以是具有令牌验证权限的安全域的安全域提供方(如卡片发行方)。删除令牌是对下面数据的RSA签名,这些数据包含在要实际要发送到卡片的DELETE card content命令中。名称长度引用控制参数P11引用控制参数P21以下数据域的长度(包括长度域)-参见下面的注释1应用或可执行加载文件AID标签(4F)1AID长度1应用或可执行加载文件AID5-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:加载、安装和设为可选令牌计算生成组合的加载、安装和设为可选令牌时确保如下各项:l 只有包含在签名中应用代码可以加载到卡片上;l 加载文件数据块LFDB的AID仅可以是在签名中包含的那个;l 可执行加载文件ELF(从加载文件数据块LFDB中导出的)和可执行加载文件中的所有可执行模块EM仅可关联到签名中包含的安全域;l 只有包含在此签名中的应用(可执行模块EM)并出现在可执行加载文件ELF中,可以被安装到卡片上;l 仅有包含在此签名中的实例AID可以作为选择该实例的AID;l 应用只能以包含在签名中权限进行安装;l 仅有包含在此签名中的参数可被用于安装该应用;l 组合的加载、安装和设为可选令牌的发行方仅可以是具有令牌验证权限的安全域的安全域提供方(如卡片发行方)。组合的加载、安装和设为可选令牌是对下面数据的RSA签名,这些数据包含在INSTALL for load, install and make selectable命令中。名称长度引用控制参数P11引用控制参数P21以下数据域的长度(包括长度域)1加载文件AID长度1加载文件AID5-16安全域AID长度1安全域AID0或5-16加载文件数据块哈希值(LFDB Hash)的长度1加载文件数据块哈希值(LFDB Hash)0或20加载参数域长度1加载参数域变长引用控制参数P11引用控制参数P21以下数据域的长度(包括长度域)1可执行加载文件AID长度1可执行加载文件AID0或5-16可执行模块AID长度1可执行加载文件中的AID0或5-16实例AID长度1实例AID5-16权限长度1权限(字节1-字节2-字节3)1或3安装参数域长度1安装参数(系统和应用)域变长表C-9:包含在加载、安装和设为可选令牌中的数据元素注意“以下数据域长度”是在添加令牌之前的INSTALL命令的Lc值。它用一个字节编码最高值到255。12.5 收条收条是可选的。它们由具有产生收条权限的安全域生成,这些安全域需要掌握适当的收条密钥。删除收条由具有产生收条权限的安全域生成的,由执行该功能的适当数据,连同卡片唯一数据CUD组成。每个收条通过下列方式之一生成:l 对称加解密,使用收条密钥、ICV为2进制0以及附录B.1.2.2中描述的签名方法单一DES加最终3DES MAC。在生成签名前,数据需要根据附录B.4DES填充进行填充; l 非对称加解密,使用具有产生收条权限的安全域的私钥来对收条数据的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可执行加载文件AID5-16安全域AID长度1安全域AID5-16表C-10:加载收条中包含的数据元素12.5.2 安装收条和设为可选收条安装/设为可选收条提供对通过委托安装/设为可选处理完成的成功安装/设为可选的确认。安装/设为可选收条可以包含在对INSTALLfor install命令、INSTALLfor make selectable和INSTALLfor install and make selectable命令的响应报文中。在INSTALLfor personalization命令的响应报文中不返回安装收条。图C-11详述安装/设为可选收条的算法。图C-11:安装/设为可选收条算法安装/设为可选收条是下列数据的签名:名称长度11.1.6节中定义的确认数据1-n可执行加载文件AID长度1可执行加载文件AID5-16实例AID长度指示1实例AID5-16表C-11:安装/设为可选收条中包含的数据元素12.5.3 引渡收条引渡收条提供确认:指定的旧安全域将指定的应用或可执行加载文件引渡到指定的新安全域,在指定的卡片上,经由委托管理处理。引渡收条可以在对INSTALLfor extradition命令的响应报文中返回。图C-12详述由具有产生收条权限的安全域执行的引渡收条的算法。图C-12:引渡收条算法引渡收条是下列数据的签名:名称长度是否必须11.1.6节中定义的确认数据1-n必须AID长度指示1必须旧安全域AID5-16必须AID长度指示1必须应用实例或可执行加载文件AID5-16必须AID长度指示1必须新安全域AID5-16必须表C-12:引渡收条中包含的数据元素12.5.4 注册表更新收条注册表更新收条提供确认:在指定的卡片上指定应用的GP注册表数据(权限和/或注册表更新参数)被修改为指定的值。如果注册表更新用于引渡,注册表更新收条也可提供确认:指定的旧安全域将指定的应用引渡到指定的新安全域,在指定的卡片上,经由委托管理处理。下图详述由具有产生收条权限的安全域执行的注册表更新收条的算法。图C-13:注册表更新收条算法注册表更新收条是下列数据的签名:名称长度是否必须11.1.6节中定义的确认数据1-n必须AID长度指示1必须旧安全域AID0或5-16有条件的AID长度指示1必须应用AID0或5-16有条件的AID长度指示1必须新安全域AID0或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 删除收条删除收条提供证明:从指定的卡片上通过委托删除处理,指定的安全域删除了一个应用、可执行加载文件,或可执行加载文件及其所有应用实例。删除收条可以在对DELETEcard content命令的响应报文中返回。图C-14详述由具有产生收条权限的安全域执行的删除收条的算法。图C-14:删除收条算法删除收条是下列数据的签名:名称长度11.1.6节中定义的确认数据1-nAID长度指示1应用实例或可执行加载文件AID5-16表C-14:删除收条中包含的数据元素如果该功能是删除一个可执行加载文件及其所有应用实例,仅有可执行加载文件AID在收条中返回。12.5.6 组和的加载、安装和设为可选收条组和的加载、安装和设为可选收条提供确认:通过委托安装过程完成一次成功安装。组和的加载、安装和设为可选收条可以在对INSTALL for load, install and make selectable命令的响应报文中返回。图C-15详述组和的加载、安装和设为可选收条的算法。图C-15:加载、安装和设为可选收条算法组和的加载、安装和设为可选收条是下列数据的签名:名称长度11.1.6节中定义的确认数据1-n可执行加载文件AID长度1可执行加载文件AID5-16实例AID长度指示1实例AID5-16安全域AID长度1安全域AID5-16表C-15:加载、安装和设为可选收条中包含的数据元素12.6 DAP校验加载文件数据块签名校验用于确保应用经过有效性验证。为了支持DAP校验,卡片上必须存在具有DAP校验权限的安全域。该安全域应当掌握适当的密钥。12.6.1 PKC方案实体按照附录B.2.1-安全哈希算法(SHA-1)中的定义对加载文件数据块哈希LFDB Hash生成签名,即对加载文件数据块哈希计算SHA-1摘要并应用DAP校验私钥来获得签名。此RSA签名是用DAP校验私钥对加载文件数据块哈希SHA-1消息摘要(即哈希的哈希值)进行解密运算。数据填充采用SHA-1和PKCS#1中的定义。签名提供给任何负责加载该签名应用代码到GP卡的实体。验证该DAP的安全域的AID和签名一起作为DAP块被放在要传送到卡片的加载文件中。12.6.2 DES方案安全域提供方生成加载文件数据块哈希的签名。此签名是按照附录B.1.2.2-单一DES加最终3DES对加载文件数据哈希计算的MAC。数据填充采用附录B.4-DES填充中的定义。签名提供给任何负责加载该签名应用代码到GP卡的实体。验证该DAP的安全域的AID和签名一起作为DAP块被放在要传送到卡片的加载文件中。12.7 基于MULTOS的GlobalPlatform为了执行卡片内容管理操作,基于MULTOS的GP智能卡需要下列密钥:l 发卡方密钥在卡片内容加载操作过程中,可以可选地提供下列密钥:l 应用提供方密钥l 应用提供方传输密钥这些密钥在MAO-DOC-REF-009中描述。12.7.1 加解密结构基于MULTOSd 的GP智能卡采用下列加解密结构:l 公钥证书l 卡片内容管理证书n 应用加载证书n 应用删除证书l 应用提供方签名l 密钥变换单元这些结构在MAO-DOC-REF-009中描述。13. 安全通道协议01(已过时)此安全通道协议已过时,并将在本规范将来的版本中删除。建议采用其它安全通道协议,如安全通道协议02(SCP02)。13.1 安全通信13.1.1 SCP01安全通道SCP01提供3层安全:互相认证 由此卡片和卡外实体各自都证明他们掌握相同的密钥;完整性和数据来源认证 由此卡片确信从卡外实体收到的数据确实是按正确的顺序来自认证的卡外实体并且未遭到篡改。保密性 由此从卡外实体传送到卡片的数据,对未授权机构是不可见的。应当始终以保密数据发送的敏感数据(如密钥)采用更强的安全性。SCP01支持最多3个辅助逻辑通道。SCP01中仅支持显式建立逻辑通道。SCP01中同时支持隐式和显式终止安全通道。SCP01中卡片应当支持下列由“i”定义的实现选项(参见附录HGP数据值和卡片识别数据CRD):l i=05:显式建立模式、在修改的APDU上采用C-MAC、ICV设为0、ICV不加密、3个安全通道密钥;l i=15:显式建立模式、在修改的APDU上采用C-MAC、ICV设为0、ICV加密、3个安全通道。实现选项15是增强的实现选项05,因此建议采用。13.1.2 互相认证完成互相认证是通过建立安全通道并对卡片和卡外实体双方都提供保证他们是在和认证的实体进行通信。如果互相认证过程中的任何步骤失败,则应当重新开始该过程,即生成新的盘问口令和安全通道会话。安全通道是由卡外实体使用在本节中定义的INITIALIZE UPDATE和EXTERNAL AUTHENTICATE命令显式建立。应用可以使用适当的API将APDU传递到安全域,例如GP Java Card的processSecurity()方法。显式建立安全通道允许卡外实体指示卡片(参见附录D.4.2EXTRENAL AUTHENTICATE命令)当前安全通道所需的安全级别,并且对所有后续在卡片和卡外实体间交换的报文应用此安全级别,直到安全通道会话结束。它也同样给与卡外实体选择要使用的密钥版本号和密钥标识的可能性(参见INITIALIZE UPDATE命令)。注意:显式安全通道建立也允许卡片告知卡外实体所支持的安全通道协议,使用返回的安全通道协议标识。安全通道总是由卡外实体发起建立(参见附录D.4.1INITIALIZE UPDATE命令),通过传递一个“主机”盘问口令(对此安全通道会话的唯一随机数)到卡片。卡片在收到此盘问口令后,生成它自己的“卡片”盘问口令(同样也是对此安全通道会话的唯一随机数)。卡片采用主机盘问口令、卡片盘问口令和它内部的静态密钥,建立新的安全通道会话密钥,并用新建立的安全通道会话密钥生成第一个加密值(卡片密文)(参见附录D.3.1DES会话密钥)。此卡片密文连同卡片盘问口令、安全通道协议标识、和其它数据被发送回卡外实体。现在卡外实体具备卡片用于生成卡片密文的所有相同信息,它应当能够生成相同的安全通道会话密钥和相同的卡片密文,并且通过进行比较,它能够认证该卡片。卡外实体现在采用一个相似的过程来生成要传回卡片的第二个加密值(主机密文)(参见附录D.4.2EXTERNAL AUTHENTICATE命令)。因为卡片具有主机用于生成主机密文的所有相同信息,它应当能够生成相同的主机密文并且,通过进行比较,它能够对卡外实体进行认证。13.1.2.1 SCP01互相认证流程下面的流程是卡片和卡外实体间互相认证的一个示例。此流程显示了发生在安全域和卡外实体间的互相认证。图D-1:互相认证流程(安全域)在7.3.4节运行时消息支持的描述的流程中显示了展开的认证过程,从中可以看到一个应用如何使用关联的安全域的服务来完成互相认证。图D-2:互相认证流程(使用安全域的服务)13.1.3 报文完整性C-MAC通过对APDU命令头和数据域采用多个链接的DES操作(采用在互相认证过程中建立的安全通道会话密钥)来生成。卡片在收到包含C-MAC的报文后,采用相同的安全通道会话密钥,执行相同的操作,并通过比较它内部生成的C-MAC和从卡外实体收到的C-MAC可以确信整个命令的完整性。(如果报文同时也采用报文数据保密性,C-MAC在加密之前应用于报文数据域。)发送到卡片的命令的序列的完整性,是通过采用将来自当前命令C-MAC(可能被加密)作为下一命令的初始化链接向量(ICV)来得到。这可确保卡片收到一个命令序列中的所有命令。13.1.4 报文数据保密性报文数据域的加密是对要发送到卡片的命令报文的全部数据域应用多个链接的DES操作,与它的内容无关(明文和/或已被保护的敏感数据)。13.1.5 ICV加密作为一种增强的C-MAC机制,ICV在被用于计算下一个C-MAC前加密。采用的加密机制是用C-MAC会话密钥的3DES。会话的第一个ICV,用于对EXTERNAL AUTHENTICATE命令生成C-MAC,是不加密的。13.1.6 安全级别不包含在安全通道会话中的通信的当前安全级别应当设为NO_SECURITY_LEVEL。对于安全通道协议01,安全通道会话中确定的安全级别是下列值组合成的位图:AUTHENTICATED、C-MAC、和C_DESCRYPTION。当前安全级别应按如下设置:l NO_SECURITY_LEVEL,当安全通道会话已终止或尚未完成建立;l AUTHENTICATED,在成功处理EXTERNAL AUTHENTICATE命令之后:一旦安全通道会话终止,AUTHENTICATED应当被清除。l AUTHENTICATED和C_MAC,在成功处理P1指示为C_MAC(P1=01)的EXTERNAL AUTHENTICATE命令之后:一旦安全通道会话终止,AUTHENTICATED和C_MAC应当被清除。l AUTHENTICATED、C_MAC、和C_DESCRYPTION,在成功处理P1指示为C_MAC和命令加密(P1=03)的AUTHENTICATE命令之后:一旦安全通道会话终止,AUTHENTICATED、C_MAC、和C_DESCRYPTION应当被清除。13.1.7 协议规则为了与第10章中描述的安全通信的一般规则一致,安全通道协议01采用下列协议规则:l 安全通道会话建立成功应当将当前安全级别设置为EXTERNAL AUTHENTICATE命令中指出的安全级别:至少设置为AUTHENTICATED;l 当前安全级别应当应用于整个安全通道会话,除非按应用请求被成功修改。l 当当前安全级别等于NO_SECURITY_LEVEL:n 如果在同一个应用会话中安全通道会话中断,则进入命令应当以安全错误被拒绝;n 否则不应当对进入的命令进行安全校验。处理命令的应用负责采用它自己的安全规则。l 如果安全通道会话是活动的(即,当前安全级别至少设为AUTHENTICATED),进入命令的安全性应当按照当前安全级别进行检查,不管命令的安全报文指示:n 当命令的安全性不匹配(也非超过)当前安全级别,命令应当以安全错误被拒绝,安全通道会话中断且当前安全级别重设为NO_SECURITY_LEVEL;n 如果发现安全错误,命令应当以安全错误被拒绝,安全通道会话中断且当前安全级别重设为NO_SECURITY_LEVEL;n 所有其它情况下,安全通道会话应当保持活动且当前安全级别不变。应用负责进一步处理命令。l 如果安全域支持应用数据加密和/或解密,它应当在受请求时加密或解密一块机密数据。如果不支持该服务或如果适当的加解密密钥(之一)不可用,该请求应当被拒绝但(如果有任何)在操作中的当前安全级别、会话安全级别和安全通道会话不应当被影响。l 如果安全通道会话中断,它仍被视为未被终止。l 当下述情况之一,当前安全通道会话应被终止(如果被中断或仍然打开时)且当前安全级别重设为NO_SECURITY_LEVEL:n 试图建立一个新的安全通道会话(新的INITIALIZE UPDATE命令);n 应用会话终止(例如选择新应用);n 关联的逻辑通道终止;n 卡片会话终止(卡片复位或断电);n 由应用显式终止(例如调用GP API)。13.2 加解密密钥密钥用途长度注释安全通道加密密钥(S-ENC)安全通道认证和加密(DES)16字节必须安全通道报文认证码密钥(S-MAC)安全通道MAC验证(DES)16字节必须数据加密密钥(DEK)敏感数据解密(DES)16字节必须表D-1:安全域安全通道密钥安全域,包括发卡方安全域应当至少有一个包含3个密钥的密钥组,用于创建和使用安全通道。这些密钥都是双倍长DES密钥并且是以下:l 安全通道加密密钥(S-ENC)和安全通道MAC密钥(S-MAC)。这些密钥仅用于在建立安全通道过程中生成安全通道会话密钥;l 数据加密密钥(DEK)勇于解密敏感数据,例如密钥或私钥。此密钥是双倍长度DES密钥并用作静态密钥。13.3 加解密用途13.3.1 DES会话密钥DES会话密钥应当在每次建立安全通道时生成,并用于互相认证过程。如果当前安全级别指示需要安全报文,这些相同的会话密钥可以被后续命令使用。生成会话密钥可确保每个安全通道会话使用不同的密钥组。虽然这在对密钥进行加密操作时不需要,它对于认证操作、MAC生成和校验和命令报文加密和解密是很重要的。因此只有从静态安全通道加密密钥(S-ENC)和安全通道MAC密钥(S-MAC)建立会话密钥是必要的。创建DES会话密钥使用静态安全通道加密密钥(S-ENC)和安全通道MAC密钥(S-MAC)和随机主机和卡片盘问口令。创建会话密钥包括3个步骤。l 生成会话密钥推导数据。(相同的推导数据同时用于安全通道加密和安全通道MAC会话密钥。)l 创建安全通道加密会话密钥;l 创建安全通道MAC会话密钥。用于生成这些密钥的DES操作总是采用ECB模式的3DES。图D-3:会话密钥步骤1生成推导数据图D-4:会话密钥步骤2生成S-ENC会话密钥图D-5:会话密钥步骤3生成S-MAC会话密钥13.3.2 认证密文卡片和卡外实体(主机)两者都会生成认证密文。卡外实体校验卡片密文而卡片校验主机密文。采用S-ENC会话密钥和附录B.1.2.1完全3DES中描述的签名来生成或验证认证密文。13.3.2.1 卡片认证密文将8字节主机盘问口令和8字节卡片盘问口令相连接组合成16字节块,通过它进行卡片密文生成和验证。采用与附录B.4DES填充中定义的相同的填充规则,数据应当用额外的8字节块(80 00 00 00 00 00 00 00)进行填充。签名方法,采用S-ENC会话密钥和二进制0作为ICV,应用于此24字节块并生成8字节的签名结果就是卡片密文。13.3.2.2 主机认证密文将8字节卡片盘问口令和8字节主机盘问口令相连接组合成16字节块,通过它进行主机密文生成和验证。采用与附录B.4DES填充中定义的相同的填充规则,数据应当用额外的8字节块(80 00 00 00 00
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 国产医疗器械2025年市场拓展:区域协同与产业链整合策略报告
- 2025年体育彩票服务行业研究报告及未来行业发展趋势预测
- 公共基础常识补充中公课堂内部vip补充资料讲课文档
- 红十字会急救课件
- 2025年新型城镇化建设工程担保管理细则合同
- 2025年电商平台全股权及运营业务整合转让合同
- 2025年老旧小区自来水管网改造及蓝图绘制合同
- 2025年绿色建筑能耗监测与分析服务合同
- 环卫劳务合同(标准版)
- 安全法制培训课件
- 《管理学基础》课程标准(含课程思政)
- 《涡街流量计交流会》课件
- QC/T 1206.1-2024电动汽车动力蓄电池热管理系统第1部分:通用要求
- 国企内部控制审计服务方案
- 宁德时代笔试题库
- 骨干教师专业成长规划
- 广医三院产房个案护理分享
- 工程人员驻场服务方案
- 中小学校保安服务方案(技术方案)
- 直播供货协议合同范本
- DB3411∕T 0039-2024 废包装桶回收再利用技术规范
评论
0/150
提交评论