基本信息
标准简介
标准目录
中文样稿
1 Scope
This standard specifies the security requirements for the security protection of embedded software in IC card with CPU of EAL4 enhanced level and EAL5 enhanced level, including the security problem definition, security objectives, security requirements, rationale, etc.
This standard is applicable to the testing, evaluation and procurement of embedded software products in IC card with CPU, and may also be used to guide the research and development of such products.
2 Normative references
The following referenced documents are indispensable for the application of this document. For dated references, only the edition cited applies. For undated references, the latest edition of the referenced document (including any amendments) applies.
GB/T 18336 (All parts) Information technology - Security techniques - Evaluation criteria for IT security
GB/T 25069-2010 Information security technology - Glossary
3 Terms, definitions and abbreviations
3.1 Terms and definitions
For the purposes of this document, the terms and definitions given in GB/T 25069-2010, GB/T 18336.1 and the followings apply.
3.1.1
personalization data
data written in the personalization process of embedded software in IC card, which is used to configure parameters related to specific applications or users
3.2 Abbreviations
For the purposes of this document, the following abbreviations apply.
CM: Configuration Management
EAL: Evaluation Assurance Level
EEPROM: Electrically-Erasable Programmable Read-only Memory
IC: Integrated Circuit
I/O: Input/Output
RAM: Random-Access Memory
ROM: Read-Only Memory
ST: Security Target
TOE: Target of Evaluation
TSF: TOE Security Functionality
Foreword i
Introduction iii
1 Scope
2 Normative references
3 Terms, definitions and abbreviations
3.1 Terms and definitions
3.2 Abbreviations
4 Descriptions of embedded software in IC card
5 Security problem definition
5.1 Assets
5.2 Threats
5.3 Organizational security policies
5.4 Assumptions
6 Security objectives
6.1 Security objectives for the TOE
6.2 Security objective for environment
7 Security requirements
7.1 Security functional requirements
7.2 Security assurance requirements
8 Rationale
8.1 Rationale of security objectives
8.2 Rationale of security requirements
8.3 Component dependencies
Bibliography
信息安全技术
具有中央处理器的IC卡嵌入式软件
安全技术要求
1 范围
本标准规定了对EAL4增强级和EAL5增强级的具有中央处理器的IC卡嵌入式软件进行安全保护所需要的安全技术要求,涵盖了安全问题定义、安全目的、安全要求、基本原理等内容。
本标准适用于具有中央处理器的IC卡嵌入式软件产品的测试、评估和采购,也可用于指导该类产品的研制和开发。
2 规范性引用文件
下列文件对于本文件的应用是必不可少的。凡是注日期的引用文件,仅注日期的版本适用于本文件。凡是不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件。
GB/T 18336(所有部分) 信息技术 安全技术 信息技术安全评估准则
GB/T 25069—2010 信息安全技术 术语
3 术语和定义、缩略语
3.1 术语和定义
GB/T 25069—2010和GB/T 18336.1中界定的以及下列术语和定义适用于本文件。
3.1.1
个人化数据 Personalization data
在IC卡嵌入式软件的个人化过程中写入的数据,用于配置与特定应用或用户相关的参数。
3.2 缩略语
下列缩略语适用于本文件。
CM:配置管理(Configuration Management)
EAL:评估保障级(Evaluation Assurance Level)
EEPROM:电可擦除可编程只读存储器(Electrically-Erasable Programmable Read-only Memory)
IC:集成电路(Integrated Circuit)
I/O:输入/输出(Input/Output)
RAM:随机存取存储器(Random-Access Memory)
ROM:只读存储器(Read-Only Memory)
ST:安全目标(Security Target)
TOE:评估对象(Targetof Evaluation)
TSF:TOE安全功能(TOE Security Functionality)
4 IC卡嵌入式软件描述
具有中央处理器的IC卡嵌入式软件(简称IC卡嵌入式软件)存放在IC卡的非易失性存储器(例如ROM、EEPROM 或Flash等)中,并在IC卡芯片内运行。该软件用于管理芯片硬件资源和数据,通过芯片的通信接口与IC卡终端设备交换信息,以响应用户发起的数据加密、数据签名及鉴权认证等应用请求,实现对应用功能的支持。
一般情况下,IC卡嵌入式软件由负责处理芯片硬件接口,实现文件管理、安全支撑、通信处理和应用处理等功能的模块组成,其中安全支撑模块提供安全配置、安全事务处理及密码支持等功能,以便为其他模块的安全执行提供支持,以保护IC卡的内部数据及安全功能。文件管理模块和通信处理模块作为基础模块,主要用于实现对应用功能的支持。IC卡嵌入式软件的一般结构及运行环境如图1所示。
在嵌入式软件的运行环境中,用户和(TOE开发、个人化及发卡等阶段的)管理员可通过IC卡终端与IC卡嵌入式软件交互,管理员也可能通过操作芯片中的IC专用软件下载嵌入式软件并配置IC卡硬件平台。另一方面,攻击者可以通过发送、监听和篡改通信消息以及探测IC卡芯片电路等方式实施攻击,以获取或破坏敏感数据信息,甚至滥用安全功能。为此,IC卡嵌入式软件应采取防护措施以保障嵌入式软件的数据和功能的安全。
TOE:IC卡嵌入式软件
应用处理模块
文件管理模块
安全支撑模块
通信处理模块
TC卡芯片硬件接口处理模块
TC卡芯片支撑嵌入式软件的运行
具有中央处理器的TC卡芯片
通过智能卡终端使用TOE
用户
通过芯片提供的功能,下载嵌入式软件,进行安全配置等管理
管理员
图1 IC卡嵌入式软件的一般结构及运行环境
5 安全问题定义
5.1 资产
需要保护的资产:
——TSF数据(如TOE中的访问控制列表、鉴别状态、安全配置数据、管理性的密钥等信息);
——用户数据(TOE中不属于TSF数据的信息,如用户身份标识等信息);
——安全能力(如TOE的签名能力和动态码产生能力等)。
应用说明:ST编写者应根据具体的应用情况细化对资产的描述。
5.2 威胁
5.2.1 物理操纵(T.Physical_Manipulation)
攻击者可利用IC卡芯片失效性分析和半导体逆向工程技术,对IC卡芯片实施物理剖片,以获取IC卡芯片设计信息和嵌入式软件的二进制代码,进而探测TSF数据和用户数据信息。
攻击者也可能对IC卡芯片实施物理更改,以达到获取或改变数据信息或安全功能的目的。
IC卡芯片可能会在未上电或已上电状态下受到此类攻击,在遭受攻击后可能会处于无法操作的状态。
5.2.2 信息泄漏(T.Info_Leak)
攻击者可对TOE正常使用过程中泄漏的信息加以利用,以猜测TSF数据或用户数据。
功耗、电磁辐射、I/O 特性、运算频率、时耗等侧信道信息的变化情况都有可能造成信息的泄漏。攻击者可通过采用接触式(如功耗)或非接触式(如电磁辐射和时耗)的信号测量,得到与正在执行的操作有关的信息,进而采用信号处理和统计分析等技术来获得密钥等敏感信息。
5.2.3 故障利用(T.Failure_Exploitation)
攻击者可通过分析TOE的运行故障以获取TSF数据、用户数据或滥用TOE的安全功能。
这些故障可能是通过改变TOE的运行环境(如温度、电压、频率等,或通过注入强光等方式)而触发的,也可能是由于TOE本身的设计缺陷而自发产生的,这些故障可能导致TOE的代码、系统数据或执行过程发生错误,使TOE在故障下运行,从而导致敏感数据泄漏。
5.2.4 生命周期功能滥用(T.Lifecycle_Misuse)
攻击者可利用相关接口,尤其是测试和调试接口来获取TSF数据或用户数据。这些接口在TOE生命周期的过往阶段是必要的,但在现阶段是被禁止的。例如,若测试命令或调试命令在使用阶段仍可用,则可被攻击者用于读取存储器内容或执行其他功能。
5.2.5 逻辑攻击(T.Logical_Attack)
攻击者可利用TOE的逻辑接口,采用暴力猜解、被动侦听或适应性地选择指令输入等方式来获取/修改用户数据或TSF数据,或者滥用TOE的安全功能,主要包括以下形式:
a) 密码攻击:攻击者可利用密码算法或协议的安全缺陷实现攻击,以达到获取密钥、猜测随机数或解密密文等目的。
b) 重放攻击:攻击者可通过重放历史数据,如重放通过侦听获得的鉴别数据来旁路安全机制,以获取敏感数据信息或滥用TOE的安全功能。
c) 访问控制措施旁路:攻击者可通过利用TOE对文件及其他数据的访问控制缺陷,绕过访问控制规则,以读取、删除或修改用户数据或TSF数据。
d) 残余信息利用:攻击者可利用TOE对计算过程中的残留信息的处理缺陷,在TOE执行过程中对未删除的残留信息进行攻击,以获取敏感信息或滥用TOE的安全功能。
应用说明:逻辑接口是TOE与智能终端之间的数据交换接口,包括语法上遵循国际标准定义或行业私有定义的指令与响应码。攻击者可能利用认证系统或指令系统缺陷,通过分析指令及其响应码,绕过存储器访问控制机制,以非法获得存储器内容、密钥和PIN 等信息,或达到滥用TOE安全功能等目的。ST编写者应根据应用情况完善对逻辑攻击的描述。
5.2.6 非法程序攻击(T.IllegalPrg_Attack)
攻击者可通过安装带有恶意代码的应用程序(如木马程序)来获取/修改TOE代码或数据,或滥用TOE的安全功能;在TOE进入使用阶段前,开发者(或配置者)也可能有意地(或无意地,如使用了恶意的编译器)引入非法程序或错误,使TOE在使用阶段泄漏敏感信息或导致安全功能被滥用。
应用说明:对于可以下载新应用的嵌入式软件而言,需要在整个生命周期阶段考虑此攻击;对于无法下载新应用的单应用的嵌入式软件,主要在使用阶段前的其他生命周期阶段中考虑此攻击。
5.3 组织安全策略
5.3.1 密码管理(P.Crypto_Management)
密码的使用必须符合国家制定的相关信息技术安全标准。
5.3.2 标识数据管理(P.IdData_Management)
IC卡嵌入式软件的初始化、个人化等过程应具备标识TOE的能力。
应用说明:IC卡嵌入式软件的初始化、个人化过程可产生多种标识信息,这些信息存储在IC卡内部,可用于向外部发行实体标识TOE,如厂商信息、版本号、激活时间等,以实现对生产情况的回溯查询能力。这些标识信息随嵌入式软件的不同而存在差异,在编写ST 文档时应描述具体的标识方法和内容。
5.3.3 芯片选型(P.Chip_Selection)
TOE应采用至少通过EAL4+测评的IC卡芯片。
5.4 假设
5.4.1 通信信道(A.Comm_Channel)
假定TOE与IC卡终端之间的通信信道是安全可靠的(如满足私密性和完整性)。
应用说明:ST编写者应根据嵌入式软件的具体应用情况解释“安全可靠”的具体含义。
5.4.2 应用程序(A.App_Program)
假定在TOE中安装应用程序的流程符合规范,且合法安装的应用程序不包含恶意代码。
5.4.3 芯片硬件(A.Chip_Hardware)
假定TOE运行所依赖的底层芯片具备足以保证TOE安全运行所需的物理安全防护能力。
应用说明:TOE的底层芯片必须能够抵抗物理攻击、环境干扰攻击、侧信道攻击等。同时,芯片提供的密码功能可以是由处理器或安全算法库来实现的。
5.4.4 外部数据管理(A.OutData_Management)
假定存放在TOE之外的数据,如TOE设计信息、初始化数据、管理性密钥等敏感信息,会以一种安全的方式进行管理。
5.4.5 人员(A.Personnel)
假定使用TOE的人员已具备基本的安全防护知识并具有良好的使用习惯,且以安全的方式使用TOE。TOE开发、生产、个人化和发卡各阶段的操作人员均按安全的流程进行操作。
6 安全目的
6.1 TOE安全目的
6.1.1 标识数据存储(O.IdData_Storage)
TOE应具备在非易失性存储器中存储初始化数据和个人化数据的能力。
6.1.2 用户标识(O.User_Identification)
TOE应明确地标识出可使用各种逻辑接口的用户。
6.1.3 用户鉴别(O.User_Authentication)
用户应通过鉴别过程才可访问或使用TOE中的用户数据和安全功能数据。
6.1.4 防重放攻击(O.Replay_Prevention)
TOE应提供安全机制以抵御重放攻击,如采用只可一次性使用的随机因子等措施。
6.1.5 残留信息清除(O.ResidualInfo_Clearance)
TOE应确保重要的数据在使用完成、或遭受掉电攻击后会被删除或被安全处理,不会留下可被攻击者利用的残留数据信息。
6.1.6 信息泄漏防护(O.InfoLeak_Prevention)
TOE应提供控制或限制信息泄漏的方法,使得通过测量功耗、电磁辐射、时耗等信息的变化情况无法或难以获得用户数据和安全功能数据。
6.1.7 数据访问控制(O.DataAcc_Control)
TOE应对在TOE内部的用户数据和安全功能数据实施访问控制措施,防止在未授权情况下被访问、修改或删除。
6.1.8 状态恢复(O.Status_Recovery)
TOE在检测到故障后应将工作状态恢复或调整至安全状态,防止攻击者利用故障实施攻击。
6.1.9 生命周期功能控制(O.Lifecycle_Control)
TOE应对自身安全功能的可用性进行生命周期阶段划分,或进行权限控制,以防止攻击者滥用这些功能(如下载模式下的某些功能应在TOE交付后关闭)。
6.1.10 密码安全(O.Crypto_Security)
TOE应以一个安全的方式支持密码功能,其使用的密码算法必须符合国家、行业或组织要求的密码管理相关标准或规范。
应用说明:如果TOE所使用的密码算法均由芯片实现,则应将此安全目的移至ST 的环境安全目的中。
6.2 环境安全目的
6.2.1 人员(OE.Personnel)
TOE开发、初始化和个人化等生命周期阶段中涉及的特定人员应能严格地遵守安全的操作规程,以保证TOE在生命周期过程中的安全性。
6.2.2 通信信道(OE.Comm_Channel)
TOE与IC卡终端之间的通信路径是可信的,能为通信过程提供保密性和完整性保障。
6.2.3 应用程序(OE.App_Program)
安装应用程序到TOE的流程必须规范,且合法安装的应用程序不应包含恶意代码。
6.2.4 芯片硬件(OE.Chip_Hardware)
TOE的底层芯片必须能够抵抗物理攻击、环境干扰攻击和侧信道攻击等。
6.2.5 外部数据管理(OE.OutData_Management)
应对在IC卡芯片外部存储的相关数据(如TOE的设计信息、开发及测试工具、实现代码及相关文档、初始化数据、管理性密钥等)进行机密性和完整性处理,并采取安全的管理措施。
7 安全要求
7.1 安全功能要求
7.1.1 安全功能要求概述
表1列出了IC卡嵌入式软件的安全功能组件,其详细内容将在下面分条描述。在描述过程中,方括号【】中的粗体字内容表示已经完成的操作,粗体斜体字内容表示还需在安全目标(ST)中确定的赋值及选择项。
表1 安全功能组件
组件分类 安全功能组件 序号 备注
EAL4+ EAL5+
FCS类:密码支持 FCS_CKM.1密钥生成 1 √ √
FCS_CKM.4密钥销毁 2 √ √
FCS_COP.1密码运算 3 √ √
FDP类:用户数据保护 FDP_ACC.1子集访问控制 4 √ √
FDP_ACF.1基于安全属性的访问控制 5 √ √
FDP_IFC.1子集信息流控制 6 √ √
FDP_ITT.1基本内部传送保护 7 √ √
FDP_RIP.1子集残余信息保护 8 √ N/A
FDP_RIP.2完全残余信息保护 9 N/A √
FIA类:标识和鉴别 FIA_AFL.1鉴别失败处理 10 √ √
FIA_ATD.1用户属性定义 11 √ √
FIA_SOS.1秘密的验证 12 ○ √
FIA_UAU.1鉴别的时机 13 √ √
FIA_UAU.4一次性鉴别机制 14 √ √
FIA_UAU.5多重鉴别机制 15 ○ √
FIA_UAU.6重鉴别 16 √ √
FIA_UID.1标识的时机 17 √ √
FMT类:安全管理 FMT_MOF.1安全功能行为的管理 18 √ √
FMT_MSA.1安全属性的管理 19 √ √
FMT_MSA.3静态属性初始化 20 √ √
FMT_MTD.1TSF数据的管理 21 √ √
FMT_MTD.2TSF数据限值的管理 22 √ √
FMT_SMF.1管理功能规范 23 √ √
FMT_SMR.1安全角色 24 √ √
FPT类:TSF保护 FPT_FLS.1失效即保持安全状态 25 √ √
FPT_ITT.1内部TSF数据传送的基本保护 26 √ √
FPT_RCV.4功能恢复 27 √ √
FPT_RPL.1重放检测 28 √ √
FPT_TST.1TSF测试 29 ○ √
注:√代表在该保障级下应选择该组件;○代表在该保障级下可选择该组件;N/A 代表在该保障级下该组件不适用。
7.1.2 安全功能要求描述
7.1.2.1 密钥生成(FCS_CKM.1)
FCS_CKM.1.1 IC卡嵌入式软件安全功能应根据符合下列标准【赋值:相关标准】的一个特定的密钥生成算法【赋值:密钥生成算法】和规定的密钥长度【赋值:密钥长度】来生成密钥。
应用说明:该组件仅适用于密钥生成功能由嵌入式软件本身完成的情况,此时ST编写者应根据密码算法的具体情况,赋值国家主管部门认可的相关标准及参数。若密钥由外部环境生成,则可以不选择此组件。
7.1.2.2 密钥销毁(FCS_CKM.4)
FCS_CKM.4.1 IC卡嵌入式软件安全功能应根据符合下列标准【赋值:标准列表】的一个特定的密钥销毁方法【赋值:密钥销毁方法】来销毁密钥。
应用说明:ST编写者应根据密码算法的具体情况赋值国家主管部门认可的相关标准及密钥销毁方法。
7.1.2.3 密码运算(FCS_COP.1)
FCS_COP.1.1 IC卡嵌入式软件安全功能应根据符合下列标准【赋值:标准列表】的特定的密码算法【赋值:密码算法】和密钥长度【赋值:密钥长度】来行执【赋值:密码运算列表】。
应用说明:ST编写者应根据密码算法的具体情况赋值国家主管部门认可的相关标准及参数。
7.1.2.4 子集访问控制(FDP_ACC.1)
FDP_ACC.1.1 IC卡嵌入式软件安全功能应对【用户,管理员,赋值:其他主体列表】【选择:删除、修改、读取,使用,【赋值:其他具体操作列表】】【用户数据,赋值:其他客体列表】】执行【IC 卡嵌入式软件用户数据访问控制策略】。
应用说明:ST编写者应根据具体情况细化用户数据和操作列表,且根据用户和管理员操作客体和相应控制策略的不同,应在ST 中将此组件分为不同的点进行描述,此原则适用于以下各组件的描述情况。
7.1.2.5 基于安全属性的访问控制(FDP_ACF.1)
FDP_ACF.1.1 IC卡嵌入式软件安全功能应基于【用户,管理员,赋值:其他主体列表】的【鉴别状态,赋值:其他安全策略相关的安全属性或属性组】对客体执行【IC 卡嵌入式软件用户数据访问控制策略】。
FDP_ACF.1.2 IC卡嵌入式软件安全功能应执行以下规则,以决定在受控主体与受控客体间的一个操作是否被允许:【用户鉴别是否通过,管理员鉴别是否通过,赋值:在受控主体和受控客体间,通过对受控客体采取受控操作来管理访问的一些规则】。
FDP_ACF.1.3 IC卡嵌入式软件安全功能应基于以下附加规则:【赋值:基于安全属性的,明确授权主体访问客体的规则】,明确授权主体访问客体。
FDP_ACF.1.4 IC卡嵌入式软件安全功能应基于【赋值:基于安全属性的,明确拒绝主体访问客体的规则】明确拒绝主体访问客体。
应用说明:ST编写者应根据具体应用细化客体和操作列表。若嵌入式软件没有附加访问控制策略,可不对FDP_ACF.1.3和FDP_ACF.1.4的相应赋值项赋值。
7.1.2.6 子集信息流控制(FDP_IFC.1)
FDP_IFC.1.1 IC卡嵌入式软件安全功能应对【用户数据访问,赋值:其他导致受控信息流入、流出受控主体的操作列表】执行【数据传输过程的保密性处理策略,赋值:其他信息流控制策略】。
7.1.2.7 基本内部传送保护(FDP_ITT.1)
FDP_ITT.1.1 在IC卡嵌入式软件物理上分隔的部分之间,如不同软件模块之间传递用户数据时,IC卡嵌入式软件安全功能应执行【数据传输过程的保密性处理策略,【赋值:其他信息流控制策略】】,以防止用户数据被【选择:泄漏,篡改,或无法使用】。
7.1.2.8 子集残余信息保护(FDP_RIP.1)
FDP_RIP.1.1 IC卡嵌入式软件安全功能应确保一个资源的任何先前信息内容,在【选择:分配资源到、释放资源自】下列客体:【EEPROM、Flash,赋值:其他客体列表】时不再可用。
7.1.2.9 完全残余信息保护(FDP_RIP.2)
FDP_RIP.2.1 IC卡嵌入式软件安全功能应确保一个资源的任何先前信息内容,在【选择:分配资源到、释放资源自】所有客体时不再可用。
7.1.2.10 鉴别失败处理(FIA_AFL.1)
FIA_AFL.1.1 IC卡嵌入式软件安全功能应能检测出当【选择:【赋值:正整数】,管理员可设置的【赋值:可接受数值范围】内的一个正整数】时,与【选择:用户鉴别,管理员鉴别,【赋值:其他鉴别事件列表】】相关的未成功鉴别尝试。
FIA_AFL.1.2 当【选择:达到,超过】所定义的未成功鉴别尝试次数时,IC卡嵌入式软件安全功能应采取的【赋值:动作列表(如临时锁定鉴别功能至一段时间后再开启,或永久锁定鉴别功能并进入废止阶段)】。
7.1.2.11 用户属性定义(FIA_ATD.1)
FIA_ATD.1.1 IC卡嵌入式软件安全功能应维护属于单个用户的下列安全属性列表:【选择:用户标识、PIN 和密钥等鉴别数据、用户角色、【赋值:其他安全属性】】。
7.1.2.12 秘密的验证(FIA_SOS.1)
FIA_SOS.1.1 IC卡嵌入式软件安全功能应提供一种机制以验证秘密满足保证鉴别机制安全性的安全要求。
应用说明:此安全功能要求中的秘密是指如鉴别密钥、PIN 等IC卡嵌入式软件安全功能数据。在EAL5+的情况下,IC卡嵌入式软件应对保存的秘密的质量进行验证,以加强秘密设置的安全性。