6.1.1 检测目的:
验证IC卡的工作温度符合标准要求。
6.1.2 检测要求:
在0℃~50℃条件下,卡应正常工作不变形,外观无明显变化。
6.1.3 检测方法:
(一)工作温度上限测试应按照GB/T 2423.2中的“试验Bd”或“试验Bb”进行,试验时间2小时;
(二)工作温度下限测试应按照GB/T 2423.1中的“试验Ad”或“试验Ab”进行,试验时间2小时;
6.2 表面印刷符合性测试
6.2.1 检测目的:
验证IC卡的印刷图案与文字位置、印刷色差、印刷牢度符合要求。
6.2.2 检测要求:
(一)印刷图案及文字的位置应符合《
居民健康卡技术规范修订说明》要求;
(二)条码和磁条应能被正确识读;
(三)测试样卡与标准样卡的色差ΔE≤5.00;
(四)耐磨测试200个周期后,对卡的图象、颜色、字符进行目测,应无明显变化。
6.2.3 检测方法:
使用相关测试仪器进行测试。
6.3 随机数随机特性
6.3.1 检测目的:
验证居民健康卡SAM卡及居民健康卡随机数发生器生成的随机数的随机性符合相关安全要求。
6.3.2 检测要求:
随机数的随机性应符合NIST SPECIAL PUBLICATION 800-22 的频率测试、块内频率测试、游程测试、块内最长游程测试、二进制矩阵测试、离散付利叶变换测试、非重叠模板匹配测试、重叠模板匹配测试、MAURER'S 普通统计测试、线性复杂性测试、连续测试、近似熵测试、累积和测试、随机漂移测试、随机漂移变异测试等15项要求。
6.3.3 检测方法:
对IC卡产生的随机数进行分析。
6.4 居民健康卡用户卡COS检测
为保障居民健康卡功能的正确性及其使用的安全性,居民健康卡COS功能应符合《
居民健康卡技术规范》、《居民健康卡用户卡命令集》及《居民健康卡应用规范》的要求,其载体应为已通过卫生部备案的芯片。
居民健康卡文件结构见《
居民健康卡技术规范》。
6.4.1 应用功能测试
6.4.1.1 读卡识别数据区信息
检测目的:
验证居民健康卡能够完成卡片基本数据区(MF\DDF1\EF05、MF\DDF1\EF06和MF\DDF1\EF07)的信息读取。
检测要求:
应符合《居民健康卡应用规范》中6.1.1中相关要求。
检测方法:
按照《居民健康卡应用规范》中6.1.1中的流程描述,进行卡片基本数据区(MF\DDF1\EF05、MF\DDF1\EF06和MF\DDF1\EF07)的数据读取。
6.4.1.2 写卡识别数据区信息
检测目的:
验证居民健康卡能够完成卡片基本数据区(MF\DDF1\EF05、MF\DDF1\EF06和MF\DDF1\EF07)的信息更新。
检测要求:
应符合《居民健康卡应用规范》中6.1.2中相关要求。
检测方法:
按照《居民健康卡应用规范》中6.1.2中的流程描述,进行卡片基本数据区(MF\DDF1\EF05、MF\DDF1\EF06和MF\DDF1\EF07)的数据更新。
6.4.1.3 读卡身份识别数据区信息(读 DF01应用数据)
检测目的:
验证居民健康卡能够完成身份识别数据区(MF\DDF1\DF01\EF05、MF\DDF1\DF01\EF06、MF\DDF1\DF01\EF07和MF\DDF1\DF01\EF08)的信息读取。
检测要求:
应符合《居民健康卡应用规范》中6.2.1中相关要求。
检测方法:
按照《居民健康卡应用规范》中6.2.1中的流程描述,进行身份识别数据区(MF\DDF1\DF01\EF05、MF\DDF1\DF01\EF06、MF\DDF1\DF01\EF07和MF\DDF1\DF01\EF08)的数据读取。
6.4.1.4 写卡身份识别数据区信息(写 DF01应用数据)
检测目的:
验证居民健康卡能够完成身份识别数据区(MF\DDF1\DF01\EF05、MF\DDF1\DF01\EF06、MF\DDF1\DF01\EF07和MF\DDF1\DF01\EF08)的信息更新。
检测要求:
应符合《居民健康卡应用规范》中6.2.2中相关要求。
检测方法:
按照《居民健康卡应用规范》中6.2.2中的流程描述,进行身份识别数据区(MF\DDF1\DF01\EF05、MF\DDF1\DF01\EF06、MF\DDF1\DF01\EF07和MF\DDF1\DF01\EF08)的数据更新。
6.4.1.5 读卡基础健康信息数据区信息(读DF02应用数据)
检测目的:
验证居民健康卡能够完成基础健康信息数据区(MF\DDF1\DF02\EF05、MF\DDF1\DF02\EF06、MF\DDF1\DF02\EF07和MF\DDF1\DF02\EF08)的信息读取。
检测要求:
应符合《居民健康卡应用规范》中6.3.1中相关要求。
检测方法:
按照《居民健康卡应用规范》中6.3.1中的流程描述,进行基础健康信息数据区(MF\DDF1\DF02\EF05、MF\DDF1\DF02\EF06、MF\DDF1\DF02\EF07和MF\DDF1\DF02\EF08)的数据读取。
6.4.1.6 写卡基础健康信息数据区信息(写DF02应用数据)
检测目的:
验证居民健康卡能够完成基础健康信息数据区(MF\DDF1\DF02\EF05、MF\DDF1\DF02\EF06、MF\DDF1\DF02\EF07和MF\DDF1\DF02\EF08)的信息更新。
检测要求:
应符合《居民健康卡应用规范》中6.3.2中相关要求。
检测方法:
按照《居民健康卡应用规范》中6.3.2中的流程描述,进行基础健康信息数据区(MF\DDF1\DF02\EF05、MF\DDF1\DF02\EF06、MF\DDF1\DF02\EF07和MF\DDF1\DF02\EF08)的数据更新。
6.4.1.7 写卡住院信息(读、写DF03应用数据)
检测目的:
验证居民健康卡能够完成住院信息的写入,即管理数据区(MF\DDF1\DF03\EF05和MF\DDF1\DF03\EE01~EE05)的信息更新。
检测要求:
应符合《居民健康卡应用规范》中6.4.1中相关要求。
检测方法:
按照《居民健康卡应用规范》中6.4.1中的流程描述,进行管理数据区(MF\DDF1\DF03\EF05和MF\DDF1\DF03\EE01~EE05)的数据更新。
6.4.1.8 写卡门诊信息(读、写DF03应用数据)
检测目的:
验证居民健康卡能够完成门诊信息的写入,即管理数据区(MF\DDF1\DF03\EF06和MF\DDF1\DF03\ED01~ED05)的信息更新。
检测要求:
应符合《居民健康卡应用规范》中6.4.2中相关要求。
检测方法:
按照《居民健康卡应用规范》中6.4.2中的流程描述,进行管理数据区(MF\DDF1\DF03\EF06和MF\DDF1\DF03\ED01~ED05)的数据更新。
6.4.1.9 住院费用提取及报销(读、写DF03应用数据)
检测目的:
验证居民健康卡能够完成住院报销,即管理数据区(MF\DDF1\DF03\EF05和MF\DDF1\DF03\EE01~EE05)的信息读取和更新。
检测要求:
应符合《居民健康卡应用规范》中6.4.3中相关要求。
检测方法:
按照《居民健康卡应用规范》中6.4.3中的流程描述,进行管理数据区(MF\DDF1\DF03\EF05和MF\DDF1\DF03\EE01~EE05)的数据读取和更新。
6.4.1.10 门诊费用提取及报销(读、写DF03应用数据)
检测目的:
验证居民健康卡能够完成门诊费用报销流程,即管理数据区(MF\DDF1\DF03\EF06和MF\DDF1\DF03\ED01~ED05)的信息更新。
检测要求:
应符合《居民健康卡应用规范》中6.4.4中相关要求。
检测方法:
按照《居民健康卡应用规范》中6.4.4中的流程描述,进行管理数据区(MF\DDF1\DF03\EF06和MF\DDF1\DF03\ED01~ED05)的数据更新。
6.4.2 命令功能测试
6.4.2.1 APPLICATION BLOCK命令
检测目的:
验证APPLICATION BLOCK命令功能正确。
检测要求:
应符合《居民健康卡用户卡命令集》5.3.1相关要求。
检测方法:
(一)未进行外部认证,进行应用锁定操作,卡片应返还状态码 ‘6982’;
(二)未取随机数,进行应用锁定操作,卡片应返还状态码 ‘6984’;
(三)无MAC,进行应用锁定操作,卡片应返还状态码 ‘6700’或‘6987’;
(四)MAC数据错误,进行应用锁定操作,卡片应返还状态码 ‘6988’;
(五)按照《居民健康卡应用规范》相关应用描述,正确进行应用临时锁定操作,应用应被锁定;
(六)选择临时锁定的应用,卡片应返还状态码 ‘6283’(选择文件无效),同时返回FCI;
(七)对临时锁定的应用,进行应用临时锁定操作,卡片应返还状态码 ‘6985’;
(八)选择被锁定的应用,应禁止对应用下的文件进行访问。
(九)选择被锁定的应用,除取随机数、内部认证、外部认证、应用永久锁定、卡片锁定、应用解锁外,其他命令都不能执行。
(十)对临时锁定的应用,进行应用永久锁定操作,卡片应返还状态码 ‘9000’。
(十一)应用被永久锁定后,除卡片锁定命令外,对应用进行的任何操作,应返回错误状态码‘9303’。
6.4.2.2 APPLICATION UNBLOCK命令
检测目的:
验证APPLICATION UNBLOCK命令功能正确。
检测要求:
应符合《居民健康卡用户卡命令集》5.3.2中相关要求。
检测方法:
(一)按照《居民健康卡应用规范》相关应用描述,对临时锁定的应用进行应用解锁操作,应用应被解锁;
(二)选择被解锁后的应用,卡片应返还状态码 ‘9000’(选择文件有效),同时返回FCI;
(三)在应用被解锁后,对应用下的数据进行读写操作应成功;
(四)对永久锁定的应用进行应用解锁操作,卡片应返还状态码 ‘9303’;
(五)对未锁定的应用,进行应用解锁操作,卡片应返还状态码 ‘6985’;
(六)未进行外部认证,进行应用解锁操作,卡片应返还状态码 ‘6982’;
(七)未取随机数,进行应用解锁操作,卡片应返还状态码 ‘6984’;
(八)无MAC,进行应用解锁操作,卡片应返还状态码 ‘6700’或‘6987’;
(九)MAC数据错误,进行应用解锁操作,卡片应返还状态码 ‘6988’。
6.4.2.3 CARD BLOCK命令
检测目的:
验证CARD BLOCK命令功能正确。
检测要求:
应符合《居民健康卡用户卡命令集》5.3.3中相关要求。
检测方法:
(一)按照《居民健康卡应用规范》相关应用描述,对卡片进行锁定操作,卡片应被锁定;
(二)卡片锁定后,卡片内所有应用失效,所有命令都不能执行,卡片返回状态码 ‘6A81’;
(三)未进行外部认证,进行卡片锁定操作,卡片应返还状态码 ‘6982’;
(四)未取随机数,进行卡片锁定操作,卡片应返还状态码 ‘6984’;
(五)无MAC,进行卡片锁定操作,卡片应返还状态码 ‘6700’或‘6987’;
(六)MAC数据错误,进行卡片锁定操作,卡片应返还状态码 ‘6988’。
6.4.2.4 EXTERNAL AUTHENTICATION命令
检测目的:
验证EXTERNAL AUTHENTICATION命令功能正确。
检测要求:
应符合《居民健康卡用户卡命令集》5.3.4中相关要求。
检测方法:
(一) 按照《居民健康卡应用规范》相关描述,进行外部认证操作,应成功;
(二) 未取随机数,进行外部认证操作,卡片应返还状态码 ‘6984’;
(三) Lc不为‘11’,进行外部认证操作,卡片应返还状态码 ‘6700’;
(四) 使用错误密钥标识,进行外部认证操作,卡片应返还状态码 ‘6A88’;
(五) 鉴别数据错误,进行外部认证操作,卡片应返还状态码 ‘63Cx’;
(六) 16次外部认证失败,卡片应返还状态码 ‘6983’;
(七) 应支持密钥版本数据。
6.4.2.5 GET CHALLENGE命令
检测目的:
验证GET CHALLENGE命令功能正确。
检测要求:
应符合《居民健康卡用户卡命令集》5.3.5中相关要求。
检测方法:
(一) 卡片应支持8字节随机数获取;
(二) Le为‘00’,发送取随机数命令,卡片应返还状态码 ‘6700’;
(三) Le为‘04’,发送取随机数命令,卡片应返还状态码 ‘6700’;
6.4.2.6 INTERNAL AUTHENTICATION命令
检测目的:
验证INTERNAL AUTHENTICATION命令功能正确。
检测要求:
应符合《居民健康卡用户卡命令集》5.3.6中相关要求。
检测方法:
(一) 按照《居民健康卡应用规范》相关描述,进行内部认证操作,应成功;
(二) Lc不为为‘11’,进行外部认证操作,卡片应返还状态码 ‘6700’;
(三) 应支持密钥版本数据。
6.4.2.7 READ BINARY命令
检测目的:
验证READ BINARY命令功能正确。
检测要求:
应符合《居民健康卡用户卡命令集》5.3.7中相关要求。
检测方法:
(一)按照《居民健康卡应用规范》相关应用描述,对MF\DDF1\DF03\EE01~EE05和MF\DDF1\DF03\ED01~ED05进行逐字节读取,应成功;
(二)按照《居民健康卡应用规范》相关应用描述,对MF\DDF1\DF03\EE01~EE05和MF\DDF1\DF03\ED01~ED05进行最大返回字节读取,应成功;
(三)未进行外部认证,对文件进行读取,卡片应返还状态码 ‘6982’;
(四)未选择文件,发送此命令,卡片应返还状态码 ‘6986’;
(五)读取超出偏移地址的数据,卡片应返还状态码 ‘6B00’;
(六)Le =‘00’,读出自要读的首字节起的256个字节;如果在读出256个字节前已到达文件最后一个字节,则自要读的首字节起的全部字节将被读出。
(七)Le不正确时,卡片应返还状态码 ‘6Cxx’, ‘xx’为实际长度;
(八)读取记录文件,卡片应返还状态码 ‘6981’。
6.4.2.8 READ RECORD命令
检测目的:
验证READ RECORD命令功能正确。
检测要求:
应符合《居民健康卡用户卡命令集》5.3.7中相关要求。
检测方法:
(一)按照《居民健康卡应用规范》相关应用描述,对所有记录文件使用记录号进行读取,应成功;
(二)按照《居民健康卡应用规范》相关应用描述,对变长记录文件使用记录标识符进行读取,应成功;
(三)对定长记录文件使用记录标识符进行读取,卡片应返还状态码 ‘6985’;
(四)未进行外部认证,对文件进行读取,卡片应返还状态码 ‘6982’;
(五)未选择文件,对文件进行读取,卡片应返还状态码 ‘6986’;
(六)Le不等于记录长度、也不等于‘00’时,卡片应返还状态码 ‘6700’;
(七)Le等于记录长度或等于‘00’时,卡片应返还全部数据及状态码;
(八)读取二进制文件,卡片应返还状态码 ‘6981’。
6.4.2.9 SELECT命令
检测目的:
验证SELECT命令功能正确。
检测要求:
应符合《居民健康卡用户卡命令集》5.3.9中相关要求。
检测方法:
(一)通过文件标识符选择卡中所有文件,卡片应返还状态码 ‘9000’;
(二)通过文件名或AID选择卡中居民健康卡应用环境(DDF1)和其下DF文件,卡片应返还状态码 ‘9000’;
(三)选择DDF或DF文件,卡片应返还FCI信息,且格式正确;
(四)数据域为空时,卡片应选择MF文件;
(五)卡片应支持部分文件名选择;
(六)Lc与P1、P 2不一致时,卡片应返还状态码 ‘6700’;
(七)当所选文件标识符或文件名或AID不存在时,卡片应返还状态码 ‘6A82’。
6.4.2.10 UPDATE BINARY命令
检测目的:
验证UPDATE BINARY命令功能正确。
检测要求:
应符合《居民健康卡用户卡命令集》5.3.10中相关要求。
检测方法:
(一)按照《居民健康卡应用规范》相关应用描述,对MF\DDF1\DF03\EE01~EE05和MF\DDF1\DF03\ED01~ED05进行逐字节更新,应成功;
(二)未进行外部认证,对文件进行更新,卡片应返还状态码 ‘6982’;
(三)未选择文件,发送此命令,,卡片应返还状态码 ‘6986’;
(四)偏移地址超出了EF,,卡片应返还状态码 ‘6B00’;
(五)Lc为空时,卡片应返还状态码 ‘6700’;
(六)更新记录文件,卡片应返还状态码 ‘6981’;
(七)MAC错误,卡片应返还状态码 ‘6988’;
(八)MAC错误5次,卡片应临时锁定当前应用。
(九)应用临时锁定后,该应用下所有文件无效。
6.4.2.11 UPDATE RECORD命令
检测目的:
验证UPDATE RECORD命令功能正确。
检测要求:
应符合《居民健康卡用户卡命令集》5.3.11中相关要求。
检测方法:
(一)按照《居民健康卡应用规范》相关应用描述,对定长记录或变长记录文件使用记录号进行更新,应成功;
(二)按照《居民健康卡应用规范》相关应用描述,对循环记录文件使用“上一个记录”进行更新,应成功;
(三)对循环记录文件使用指定记录号方式进行更新,卡片应返还状态码 ‘6985’;
(四)对定长记录或变长记录文件使用“上一个记录”更新,卡片应返还状态码 ‘6985’;
(五)更新定长记录或变长记录文件时,记录号错误,卡片应返还状态码 ‘6A83’或‘6A84’;
(六)更新变长记录文件时,记录标识符不正确,卡片应返还状态码 ‘6A85’;
(七)更新变长记录文件时,记录内容不正确时,卡片应返还状态码 ‘6A85’;
(八)未进行外部认证,对文件进行更新,卡片应返还状态码 ‘6982’;
(九)未选择文件,对文件进行更新,卡片应返还状态码 ‘6986’;
(十)Lc为空时,卡片应返还状态码 ‘6700’;
(十一)更新二进制文件,卡片应返还状态码 ‘6981’;
(十二)MAC错误,卡片应返还状态码 ‘6988’;
(十三)MAC错误5次,卡片应临时锁定该应用;
(十四)应用临时锁定后,该应用下所有文件无效。
6.4.2.12 WRITE RECORD命令
检测目的:
验证WRITE RECORD命令功能正确。
检测要求:
应符合《居民健康卡用户卡命令集》5.5.2中相关要求。
检测方法:
(一)按照《居民健康卡应用规范》相关应用描述,对管理数据区(MF\DDF1\DF03\EF05和MF\DDF1\DF03\EF06)使用记录号进行写“00”,应成功;
(二)对其他定长记录文件、循环记录文件使用指定记录号方式进行更新,卡片应返还状态码 ‘6985’;
(三)WRITE RECORD命令操作时,记录号错误,卡片应返还状态码 ‘6A83’;
(四)未进行外部认证,对文件进行写记录操作,卡片应返还状态码 ‘6982’;
(五)未选择文件,对文件进行写记录操作,卡片应返还状态码 ‘6986’;
(六)Lc等于‘00’或不正确时,卡片应返还状态码 ‘6700’;
(七)写二进制文件,卡片应返还状态码 ‘6981’;
(八)MAC错误,卡片应返还状态码 ‘6988’;
(九)MAC错误5次,卡片应临时锁定该应用;
(十)应用临时锁定后,该应用下所有文件无效。
6.4.2.13 ERASE RECORD命令
检测目的:
验证ERASE RECORD命令功能正确。
检测要求:
应符合《居民健康卡用户卡命令集》4.5.2中相关要求。
检测方法:
(一)按照《居民健康卡应用规范》相关应用描述,对管理数据区(MF\DDF1\DF03\EF05和MF\DDF1\DF03\EF05)使用记录号进行擦除“FF”,应成功;
(二)对其他定长记录文件、循环记录文件使用指定记录号方式进行擦除操作,卡片应返还状态码 ‘6985’;
(三)ERASE RECORD命令操作时,记录号错误,卡片应返还状态码 ‘6A83’;
(四)未进行外部认证,对文件进行擦除记录操作,卡片应返还状态码 ‘6982’;
(五)未选择文件,对文件进行擦除记录操作,卡片应返还状态码 ‘6986’;
(六)Lc等于‘00’或不正确时,卡片应返还状态码 ‘6700’;
(七)写二进制文件,卡片应返还状态码 ‘6981’;
(八)MAC错误,卡片应返还状态码 ‘6988’;
(九)MAC错误超限,卡片应临时锁定该应用;
(十)应用临时锁定后,该应用下所有文件无效。
6.4.3 安全机制及状态机
6.4.3.1 内部认证
检测目的:
验证内部认证执行的条件及对卡片安全状态的影响。
检测要求:
(一) 应符合《居民健康卡用户卡命令集》5.3.6中相关要求;
(二) 应符合《居民健康卡应用规范》相关要求。
检测方法:
(一) 内部认证操作,应可以在任何路径下操作;
(二) 不管内部认证操作成功与否,不改变卡片所处的路径;
(三) 不管内部认证操作成功与否,不应影响卡片所处的安全状态;
6.4.3.2 外部认证
检测目的:
验证外部认证所实现的安全状态。
检测要求:
(一) 应符合《居民健康卡用户卡命令集》5.3.4中相关要求;
(二) 应符合《居民健康卡应用规范》相关要求。
检测方法:
(一)外部认证成功,卡片安全状态改变;
(二)外部认证不成功,卡片安全状态不应该改变;
(三)引用全局参考参数进行的外部认证,应能在任何目录下进行;
(四)引用专有参考参数进行的外部认证,仅能在专有参数所在的DF下进行;
(五)未进行选择其他DF或卡片复位操作,外部认证获得的安全状态应一直保持;
(六)如果进行了选择其他DF或卡片复位操作,外部认证获得的安全状态应失去;
(七)用于某一特定功能的密钥不能用作其他用途;
6.4.3.3 文件保护权限
检测目的:
验证外部认证所实现的文件保护状态。
检测要求:
(一) 应符合《居民健康卡用户卡命令集》5.3.4中相关要求;
(二) 应符合《居民健康卡应用规范》相关要求。
检测方法:
(一)外部认证成功,受其保护的文件应该能够读取或更新;
(二)外部认证成功,仅有受其保护的文件应该能够读取或更新,其他文件不能无权限读取或更新;
6.4.3.4 应用维护安全
检测目的:
验证应用维护操作的状态。
检测要求:
(一) 应符合《居民健康卡用户卡命令集》中相关要求;
(二) 应符合《居民健康卡应用规范》相关要求。
检测方法:
(一) 应用锁定操作不应影响其他应用;
(二) 应用解锁操作不应影响其他应用。
6.4.4 命令参数测试
6.4.4.1 APPLICATION BLOCK命令
检测目的:
验证APPLICATION BLOCK命令CLA、P1、P2、Lc错误时SW返回。
检测要求:
应符合《居民健康卡用户卡命令集》5.3.1中相关要求。
检测方法:
(一)按照《居民健康卡应用规范》相关应用描述,进行应用锁定操作,CLA为‘00’~ ‘83’、 ‘85’~ ‘FE’,卡片应返还状态码 ‘6E00’;
(二)按照《居民健康卡应用规范》相关应用描述,进行应用锁定操作,P1不等于‘00’,卡片应返还状态码 ‘6A86’;
(三)按照《居民健康卡应用规范》相关应用描述,进行应用锁定操作,P2不等于‘00’和‘01’,卡片应返还状态码 ‘6A86’;
(四)按照《居民健康卡应用规范》相关应用描述,进行应用锁定操作,lc不等于‘04’,卡片应返还状态码 ‘6700’。
6.4.4.2 APPLICATION UNBLOCK命令
检测目的:
验证APPLICATION UNBLOCK命令CLA、P1、P2、Lc错误时SW返回。
检测要求:
应符合《居民健康卡用户卡命令集》5.3.2中相关要求。
检测方法:
(一)按照《居民健康卡应用规范》相关应用描述,进行应用解锁操作,CLA为‘00’~ ‘83’、 ‘85’~ ‘FE’,卡片应返还状态码 ‘6E00’;
(二)按照《居民健康卡应用规范》相关应用描述,进行应用解锁操作,P1不等于‘00’,卡片应返还状态码 ‘6A86’;
(三)按照《居民健康卡应用规范》相关应用描述,进行应用解锁操作,P2不等于‘00’,卡片应返还状态码 ‘6A86’;
(四)按照《居民健康卡应用规范》相关应用描述,进行应用解锁操作,lc不等于‘04’,卡片应返还状态码 ‘6700’。
6.4.4.3 CARD BLOCK命令
检测目的:
验证CARD BLOCK命令CLA、P1、P2、Lc错误时SW返回。
检测要求:
应符合《居民健康卡用户卡命令集》5.3.3中相关要求。
检测方法:
(一)按照《居民健康卡应用规范》相关应用描述,进行卡片锁定操作,CLA为‘00’~ ‘83’、 ‘85’~ ‘FE’,卡片应返还状态码 ‘6E00’;
(二)按照《居民健康卡应用规范》相关应用描述,进行卡片锁定操作,P1不等于‘00’,卡片应返还状态码 ‘6A86’;
(三)按照《居民健康卡应用规范》相关应用描述,进行卡片锁定操作,P2不等于‘00’,卡片应返还状态码 ‘6A86’;
(四)按照《居民健康卡应用规范》相关应用描述,进行卡片锁定操作,lc不等于‘04’,卡片应返还状态码 ‘6700’。
6.4.4.4 EXTERNAL AUTHENTICATION命令
检测目的:
验证EXTERNAL AUTHENTICATION命令CLA、P1、P2、Lc错误时SW返回。
检测要求:
应符合《居民健康卡用户卡命令集》5.3.4中相关要求。
检测方法:
(一)按照《居民健康卡应用规范》相关应用描述,进行外部认证操作,CLA为‘01’~‘FE’,卡片应返还状态码 ‘6E00’;
(二)按照《居民健康卡应用规范》相关应用描述,进行外部认证操作,P1不等于‘00’,卡片应返还状态码 ‘6A86’;
(三)按照《居民健康卡应用规范》相关应用描述,进行外部认证操作,P2的bit7、bit6、bit5任何一个等于1 时,卡片应返还状态码 ‘6A86’;
(四)按照《居民健康卡应用规范》相关应用描述,进行外部认证操作,lc不等于‘11’,卡片应返还状态码 ‘6700’。
6.4.4.5 GET CHALLENGE命令
检测目的:
验证GET CHALLENGE命令CLA、P1、P2、Le错误时SW返回。
检测要求:
应符合《居民健康卡用户卡命令集》5.3.5中相关要求。
检测方法:
(一)按照《居民健康卡应用规范》相关应用描述,进行取随机数操作,CLA为‘01’~ ‘FE’,卡片应返还状态码 ‘6E00’;
(二)按照《居民健康卡应用规范》相关应用描述,进行取随机数操作,P1不等于‘00’,卡片应返还状态码 ‘6A86’;
(三)按照《居民健康卡应用规范》相关应用描述,进行取随机数操作,P2不等于‘00’,卡片应返还状态码 ‘6A86’;
(四)按照《居民健康卡应用规范》相关应用描述,进行取随机数操作,le不等于‘08’,卡片应返还状态码 ‘6700’。
6.4.4.6 INTERNAL AUTHENTICATION命令
检测目的:
验证INTERNAL AUTHENTICATION命令CLA、P1、P2、Lc错误时SW返回。
检测要求:
应符合《居民健康卡用户卡命令集》5.3.6中相关要求。
检测方法:
(一)按照《居民健康卡应用规范》相关应用描述,进行内部认证操作,CLA为‘01’~‘FE’,卡片应返还状态码 ‘6E00’;
(二)按照《居民健康卡应用规范》相关应用描述,进行内部认证操作,P1不等于‘00’,卡片应返还状态码 ‘6A86’;
(三)按照《居民健康卡应用规范》相关应用描述,进行内部认证操作,P2不等于‘00’,卡片应返还状态码 ‘6A86’;
(四)按照《居民健康卡应用规范》相关应用描述,进行内部认证操作,lc不等于‘11’,卡片应返还状态码 ‘6700’。
6.4.4.7 READ BINARY命令
检测目的:
验证READ BINARY命令CLA、P1错误时SW返回。
检测要求:
应符合《居民健康卡用户卡命令集》5.3.7中相关要求。
检测方法:
(一)按照《居民健康卡应用规范》相关应用描述,进行读二进制操作,CLA为‘01’~ ‘FE’,卡片应返还状态码 ‘6E00’;
(二)按照《居民健康卡应用规范》相关应用描述,进行读二进制操作,P1的bit8等于‘1’,卡片应返还状态码 ‘6A86’。