可能安装任意包含在可执行加载文件中的应用。
如果该阶段有任何可用的个人化信息,可以对应用进行个人化处理。
2
卡外实体可以利用CMSAC_READY状态执行下述操作: ? 可以加载和(或)安装安全域(非主安全域) ? 可以插入安全域密钥用于区分主安全域密钥
8.1.1.2. INITIALIZED状态
INITIALIZED状态是一个管理卡生产的状态,从CMSAC_READY状态到INITIALIZED状态的变迁过程不可逆。它的功能超出本规范的讨论范围。该状态用于指示某些初始化数据已经载入(例如,主安全域密钥和(或)数据),但是卡片还不能发到最终用户手中。 8.1.1.3. SECURED状态
SECURED状态作用于发卡后。在这种状态下,如果卡片有发行后卡片行为,例如应用加载、安装和激活,主安全域将会强制实行中国移动安全策略。从INITIALIZED状态到SECURED状态的变迁过程不可逆。
卡片能够接受卡应用和应用内容的变化。
SECURED状态用于通知卡外实体主安全域已包含所有必需的密钥及安全元素,可以完全正常地工作。
8.1.1.4. CARD_LOCKED状态 CARD_LOCKED状态允许中国移动禁用安全域和应用的功能。从SECURED状态到CARD_LOCKED状态的变迁过程可逆的。只有中国移动可以实现卡片从SECURED到CARD_LOCKED(通过Set Status命令)状态的转变。
将卡片设置为CARD_LOCKED状态,意味着除主安全域外卡片无法工作。
该状态下,包括任意形式数据管理(特别是主安全域密钥和数据)的卡应用变化均不允许。 主安全域,或拥有相应权限的卡上应用,或通过中国移动鉴权的卡外实体均可能向卡片发起从SECURED状态到CARD_LOCKED状态的变迁。
在CARD_LOCKED状态下:
可以支持的命令:Select ISD;Set Status;GET DATA
不支持的功能:应用下载、删除;Put Key;卡上内容更改;SIM应用功能。
2
12
8.1.1.5. TERMINATED状态
TERMINATED状态标明卡片及卡生命周期的结束。从其它状态到TERMINATED状态的变迁过程均是不可逆的。当卡片处于TERMINATED状态时,所有的APDU指令都将转发到主安全域,但主安全域只对GET DATA命令作出响应。
TERMINATED状态用于永久性禁用所有的卡片功能,包括绝大部分主安全域自身的功能。当卡片出现严重的安全威胁或过期等原因时,该状态向应用提供逻辑上销毁卡片的机制。
主安全域,或拥有相应权限的卡上应用,或通过中国移动鉴权的卡外实体均可能向卡片发起从其它状态到TERMINATED状态的变迁。
8.1.2. 卡生命周期状态变迁 卡生命周期状态变迁如图7.1所示。状态变迁通常是一个顺序过程,其中可能出现反向变迁或状态跳跃的情况。 CMS2AC_READYINITIALIZEDSECUREDCARD_LOCKEDTERMINATED图示:发卡方安全域特权应用
13
图8.1 卡生命周期状态变迁
8.1.3. 卡生命周期状态说明
1. CMSAC_READY 和 INITIALIZED状态用于发卡前阶段,不区分CMSAC_READY和
INITIALIZED状态,都属于个人化之前的卡片状态。
2. SECURED状态表示出厂后卡片可用状态(在CARD_LOCKED前)。 3. 在CARD_LOCKED状态下
a) 可以支持的功能:Select ISD;Set Status;GetData;Get Status;
b) 不支持的功能:应用下载、删除;Put Key;卡上内容更改;SIM应用功能等; c) 只有中国移动可以实现卡片从SECURED到CARD_LOCKED(通过Set Status命令)
状态的转变。
4. TERMINATED状态是不可逆转的,只可以接收Get Data指令。
8.2. 可执行加载文件/可执行模块生命周期
可执行加载文件是一个或多个应用可执行代码(可执行模块)在卡上的容器。它可能驻留在不可擦写永久存储器中或作为加载文件数据块的镜像出现在可擦写永久存储器中。可执行加载文件的存储格式超出了本规范的讨论范围。 2
主安全域在CMSAC注册表中获取和维护可执行加载文件生命周期信息。 8.2.1. 可执行加载文件生命周期 可执行加载文件生命周期只能拥有一个状态。
8.2.1.1. LOADED状态
主安全域负责所有驻留在不可擦写永久存储器或可擦写永久存储器中现有的可执行加载文件的LOADED状态。通过加载文件传送到卡片的可执行加载文件,在成功完成加载过程后
22
将成为CMSAC注册表的表项。不可擦写永久存储器中的可执行加载文件,自动在CMSAC注册表中拥有表项,并同主安全域关联。
8.2.1.2. 删除可执行加载文件
主安全域可能收到删除可执行加载文件的请求。如果无法物理删除该可执行加载文件(例如,该文件存储在不可擦写永久存储器中),将执行下述操作(除了无法回收实际的空间)。
2
2
14
若可执行加载文件物理上被删除,则之前用于存储该文件的空间将会被回收并重新使
2
用。该文件在CMSAC注册表中的相应条目及包含的每个可执行模块也将被删除。卡片将不再保存该文件的任何记录信息及可执行模块的痕迹。
如果收到请求,要求删除可执行加载文件中可执行模块的各个应用实例,则这些应用将执行7.3.1.4节的操作。
8.2.2. 可执行模块生命周期
可执行模块的生命周期同可执行加载文件的生命周期相关联。
8.3. 应用及安全域生命周期
应用或安全域的生命周期从该应用从可执行模块实例化后开始。生命周期反映主安全域控制及应用直接控制的状态。
2
应用成为CMSAC注册表中的表项,当主安全域或同可执行加载文件相关联的安全域发起应用安装流程时,主安全域将应用的生命周期状态设置为初始的INSTALLED状态。在应用安装过程中,主安全域收到请求后负责将应用的状态设置为SELECTABLE状态以便该应用可用。尽管这些状态的变迁是由主安全域实际执行,但是可以由获得委托管理特权的安全域发起。
一旦应用或安全域可供选择,它将管理自身的生命周期。这些状态变迁的定义与应用或安全域相关,不受主安全域的控制。
在应用或安全域生命周期的任一时刻,主安全域均可通过将其状态设置为LOCKED来控制其安全保护。主安全域还控制卡上应用的删除。
2
主安全域在CMSAC注册表中拥有和维护生命周期状态信息。主安全域可能向卡外实体通告生命周期状态信息。
8.3.1. 应用生命周期状态
本规范定义下述应用生命周期状态: ? INSTALLED ? SELECTABLE ? LOCKED
除上述状态外,应用也可以定义自己应用的状态。
2
应用一旦到达SELECTABLE状态,它将负责管理自身的下一个状态。只要不同CMSAC规范定义的状态冲突,应用可以任意选择下一个同本应用相关的状态。如果主安全域没有收到来自应用的指令,主安全域可能不会执行这些变迁,而由应用自身定义和执行状态变迁。
2
注:如果应用使用了主安全域不支持的API,当向CMSAC API迁移时,主安全域将不再执行应用专有的状态变迁。
15
8.3.1.1. INSTALLED状态
当应用处于INSTALLED状态时,表明应用的可执行代码已经正确链接,而且已经完成所
2
有必需的内存分配工作。该应用成为CMSAC注册表中的一条表项,该表项可以被卡外授权实体访问。此时,应用不能被选择。安装过程无需同应用个人化相关,个人化操作可以单独完成。
8.3.1.2. SELECTABLE状态
应用处于SELECTABLE状态意味着应用可以接收来自卡外实体的命令。从INSTALLED状态到SELECTABLE状态的变迁不可逆。应用在进入SELECTABLE状态前必须正确安装且能正常工作。向SELECTABLE状态的变迁过程可以和应用的安装过程绑定。
应用在SELECTABLE状态下的行为超出了本规范的讨论范围。 8.3.1.3. LOCKED状态
主安全域或通过主安全域鉴权的卡外实体以LOCKED状态作为一项安全管理的控制手段,阻止应用的选择和执行。
如果主安全域检测到来自卡片内部的威胁,并且判定该威胁同某个特定应用相关,则主安全域将其状态设置为LOCKED来阻止该应用被选择。
如果通过主安全域鉴权的卡外实体判定卡上的某个应用因为商业或安全原因需要被锁定,也可以借助主安全域将该应用的状态设置为LOCKED。
一旦应用处于LOCKED状态,只有主安全域有权对该应用解锁。主安全域确保应用回到之前的状态。
8.3.1.4. 应用删除 在卡片生命周期的任意时刻,主安全域都可能收到删除该应用的请求。
若可执行加载文件物理上被删除,则之前用于存储该文件的空间将会被回收并重新使2
用。该应用在CMSAC注册表中的相应条目也将被删除。主安全域将不再保存该应用的任何痕迹。
8.3.1.5. 应用专有生命周期状态
这些状态同应用相关。当应用处于这些状态时,应用的行为由应用自身决定,超出了本规范的讨论范围。主安全域不执行任何相关的状态变迁。
图7.2给出了应用生命周期的状态变迁示例。状态变迁通常是一个顺序过程,其中可能出现反向变迁或状态跳跃的情况。
16