LOCKED from INSTALLEDINSTALLEDLOCKED from SELECTABLESELECTABLELOCKED from application specific stateapplication specific states图例:发卡方安全域(ISD)辅助安全域(SSD)应用 图8.2 应用生命周期状态变迁图 8.3.1.6. 应用生命周期状态说明 关于应用生命周期状态的几点说明如下: 1. 应用安装之后进入INSTALLED状态,同是否个人化无关。 2. 应用安装之后只有在SELECTABLE状态下才可使用该应用。 3. 应用在LOCKED状态下可以删除该应用。 8.3.2. 安全域生命周期状态
本规范定义下述安全域生命周期状态: ? INSTALLED ? SELECTABLE ? PERSONALIZED ? LOCKED
不存在私有的安全域生命周期状态。
17
8.3.3. INSTALLED状态
当安全域处于INSTALLED状态时,表明该安全域成为CMSAC注册表中的一条表项,该表项可以被卡外授权实体访问。该状态下安全域不能被选择。此时该安全域尚不能和可执行加载文件或应用关联,因此应用还无法使用该安全域提供的安全域服务。
8.3.3.1. SELECTABLE状态
安全域处于SELECTABLE状态意味着该安全域可以接收来自卡外实体的命令(特别是个人化命令)。该状态下,安全域还没有密钥,无法和可执行加载文件或应用关联,因此应用还无法使用该安全域提供的安全域服务。从INSTALLED状态到SELECTABLE状态的变迁不可逆。向SELECTABLE状态的变迁过程可以和安全域的安装过程绑定。
8.3.3.2. PERSONALIZED状态
安全域变迁到PERSONALIZED状态所需的信息同安全域相关,但是必须指出的是安全域应该拥有行使全部功能(及该安全域在环境中可用)所需的所有个人化数据及密钥。从SELECTABLE状态到PERSONALIZED状态(由安全域自身发起)的变迁不可逆。
安全域处于PERSONALIZED状态时可能同应用相关联,这些关联应用可以使用该安全域提供的服务。
8.3.3.3. LOCKED状态 主安全域或通过主安全域鉴权的卡外实体以LOCKED状态作为一项安全管理的控制手段,阻止安全域的选择。
如果主安全域检测到来自卡片内部的威胁,并且判定该威胁同某个特定的安全域相关,则主安全域将其状态设置为LOCKED来阻止该安全域被选择。
如果通过主安全域鉴权的卡外实体判定卡上的某个特定安全域因为商业或安全原因需要被锁定,也可以借助主安全域将该安全域的状态设置为LOCKED。
安全域处于LOCKED状态时,如果适合的话,将会阻止该安全域用于委托管理。锁定某个安全域,将阻止新的可执行加载文件或应用同该安全域建立关联,而且应用也无法通过主安全域访问该安全域提供的服务。此时,若主安全域要求该安全域执行DAP验证,该安全域应该返回验证失败的提示。
一旦安全域处于LOCKED状态,只有主安全域有权对该安全域解锁。主安全域确保安全域回到之前的状态。
2
18
8.3.3.4. 安全域删除
在安全域生命周期的任意时刻,主安全域都可能收到删除该安全域的请求。 若安全域物理上被删除,则之前用于存储该安全域的空间将会被回收并重新使用。该安
2
全域在CMSAC注册表中的相应条目也将被删除。主安全域将不再保存该安全域的任何痕迹。
图7.3给出了安全域生命周期的状态变迁示例。状态变迁通常是一个顺序过程,其中可能出现反向变迁或状态跳跃的情况。
LOCKED from INSTALLEDINSTALLEDLOCKED from SELECTABLESELECTABLELOCKED from PERSONALIZEDPERSONALIZED图例:发卡方安全域(ISD)安全域 图8.3 安全域生命周期状态变迁图 8.4. 生命周期示例 本节给出一张CMSAC卡整个生命周期(从卡片制成到卡片废止)的示例。同时,还将显示几个可执行加载文件、可执行模块和应用的状态,以及它们同卡生命周期的关系。图7.4给出了这些状态的示例。
2
19
图8.4 卡及应用生命周期示意图
应用A:当卡片生产时,应用代码以可执行加载文件中可执行模块的形式出现在可擦写永久存储器中。应用代码按照应用特定的方式安装。只要卡片不处于CARD_LOCKED状态,代码将在卡片整个生命周期中使用,直至卡片被废止。
应用B:当芯片生产时,应用代码以可执行加载文件中可执行模块的形式出现在不可擦写永久存储器中。应用代码在卡片初始化之前被安装。在卡片被废止前,应用B及其可执行加载文件在卡片整个生命周期的某个时刻被删除。因为应用B的可执行加载文件存储在不可擦写永久存储器中,该应用无法从卡片上物理删除。
应用C:应用代码以可执行加载文件中可执行模块的形式出现,按照应用特定的方式加载。发卡后,当卡片处于SECURED状态时安装该应用。在卡片废止前,应用被使用了一段时间并随着它的可执行加载文件一起被删除。因为应用及其可执行加载文件存储在可擦写永久存储器中,将从存储器中删除该应用、同其相关可执行加载文件及其所有可执行模块,相应的存储器空间将会被回收并重新使用。
20
应用D:应用代码以可执行加载文件中可执行模块的形式出现,按照应用特定的方式加载。只要卡片不处于CARD_LOCKED状态,应用D将在卡片的整个生命周期中使用,直至卡片被废止。
应用E:应用代码以可执行加载文件中可执行模块的形式出现,在发卡后当卡片处于SECURED状态时加载并安装。只要卡片不处于CARD_LOCKED状态,应用E将在卡片的整个生命周期中使用,直至卡片被废止。
应用F:应用代码以同应用E相同的可执行加载文件中可执行模块的形式出现,在发卡后当卡片处于SECURED状态时加载并安装。应用F在卡片生命周期中的某个时刻被删除。
9. 安全域
9.1. 概述
安全域是一种具有特殊权限的应用,其拥有用于安全信道的建立密钥,并进行卡片应用的管理。
每一个应用以及可执行加载文件(Executable Load File)都与一个安全域相关联。应用可以使用它所关联的安全域提供的安全服务。
所有卡片都必须至少拥有一个安全域:主安全域(Issuer Security Domain)。支持多安全域的卡片允许应用提供方通过它所拥有的安全域来管理自己的应用,并使用安全域密钥向应用提供密码服务,这些安全域密钥与主安全域完全隔离,并且不受主安全域的控制。
安全域的主要功能: 1. 密钥隔离
每个安全域负责管理自己的密钥,以确保来自于不同应用提供方的应用及数据可以在同一张卡片上共存,而不会破坏彼此的机密性及完整性。
2. 应用服务
与安全域相关联的密钥及密码运算用于:
a) 对个人化操作的支持:在应用提供者的应用进行个人化过程中提供安全通信
支持;
b) 对运行时消息的支持:为没有自己的安全消息密钥的应用提供运行时消息安
全通信支持。
9.1.1. 主安全域
主安全域首先是一个安全域,但是它具有其它安全域所不具有一些的特性: ? 主安全域是卡上安装的第一个应用。
? 主安全域生命周期状态继承至卡片的生命周期状态,而不具备普通安全域的生命周
期状态;
? 在没有其它应用被选择时,主安全域是缺省选中应用; ? 可被没有命令数据域的SELECT指令选中;
21