具有稳定、可靠的卡内操作系统是智能卡正常工作的基础,智能卡操作系统控制外界与智能卡之间的通信,管理卡片的存储空间,并且在卡内对于各种命令进行处理,所以在COS 开发过程中有必要对COS 进行充分且全面的测试。COS 的主要特点: 它是一个专用系统; COS 一般是根据某种卡片的特点以及应用范围来设计开发的,具有高可靠性; COS 所要完成的功能需遵循相关的国际规范以及行业规范; 支持同一应用类型的COS 往往遵循同样的规范,这使得COS 的测试有一定的重用性。

以上特点决定了常规的软件测试方法不能直接用于COS 测试。

1 智能卡操作系统

1. 1 COS 组成结构

COS 的主要功能是从智能卡传出和传入数据,控制执行相关的命令,管理维护文件系统,管理与执行加密算法。其结构可划分为两个层次: 功能层和微内核层。

功能层主要实现COS 的业务逻辑,包含通信管理、安全管理、命令解释、文件管理四大模块。

1) 通信管理模块: 对输入缓冲区中收到的数据进行奇偶校验,以及对分组长度等进行正确性判断,但不对信息的内容进行判断,以ISO/ IEC 7816- 4 中有关命令结构作为判断的标准; 接收经过命令处理、文件管理处理、安全认证后的数据,并按照ISO/ IEC 7816- 4中有关命令结构要求将其打包成完整的结果报文,放入到输出缓冲区,发送结果报文。 
    2) 安全管理模块: 接受通信管理模块的调度,并将处理后的信息返回给通信管理模块; 对通信管理模块接收的数据进行安全验证,但不对数据内容进行验证,若安全验证失败,则直接返回验证失败。 
    3)命令解释模块: 接受安全管理模块的调度,并将处理后的数据信息( 与命令相对应的响应代码) 返回给安全管理模块; 需要作数据内容上的鉴别( 检查命令的各项参数是否正确) ,然后执行相应的操作,完成对卡内有关数据的操作,若对数据内容鉴别未通过,则直接返回错误码给通信管理模块。 
    4)文件管理模块: 接受命令管理模块的调度; 数据在卡内是以文件形式存在的,文件管理模块须提供文件的建立、修改、删除等基本操作,文件访问的安全控制等。

微内核的主要功能: 为上层的功能层提供硬件支持,实现终端与卡内硬件的通信。微内核分为接口层、驱动层,接口层为功能层提供服务,将功能层的服务请求转化成对驱动层的调用,为功能层提供统一的接口。驱动层主要实现对底层硬件的各种驱动操作。

1. 2 COS 的状态转移过程

各功能模块在完成特定请求的过程中可能还需要向其他功能模块发出请求。各模块之间是调度请求和数据响应的关系,在一对关系中调度请求表现为模块的输出,数据响应表现为模块的输入,调度和响应都用事务表示,事务所代表的是一组数据,以及对数据的操作。

事务1: 智能卡收到终端的APDU 请求; 
    事务2: 智能卡向终端发出的APDU 响应; 
    事务3: 通信管理模块接收到APDU 命令,进行校验后,调用命令解释模块对APDU 指令进行处理; 
    事务4: 命令解释模块向通信管理模块返回处理后的数据或异常事件; 
    事务5: 命令解释模块在APDU 命令的处理过程中,需要访问文件而调用文件系统模块; 
    事务6: 文件系统模块将处理后的信息返回给命令解释模块; 
    事务7: 文件系统模块在对文件操作时需要进行安全控制时调用安全模块; 
    事务8: 安全管理模块在涉及安全性相关的文件时调用文件系统模块; 
    事务9: 命令解释模块向安全管理模块发出的响应事件; 
    事务10: 安全管理模块向命令解释模块发出的处理数据请求; 
    事务11: 安全管理模块向通信管理模块发出的响应事件或异常事件; 
    事务12: 通信管理模块为完成终端发出的APDU请求,向COS 微内核发出的调用底层硬件接口请求; 
    事务13: 命令解释模块为完成安全管理模块请求,向COS 微内核发出的调用底层硬件接口请求; 
    事务14: 文件系统模块为完成安全管理模块请求,向COS 微内核发出的调用底层硬件接口请求; 
    事务15: 安全管理模块为完成安全管理模块请求,向COS 微内核发出的调用底层硬件接口请求。

1. 3 智能卡通信过程

智能卡与终端之间的通信是通过命令--响应对实现的。终端向卡发送命令( 以C- APDU 形式) ,卡收到命令后,由COS 对接收的命令报文进行处理,然后将处理结果打包成响应报文( 以R- APDU 形式) 返回给终端。

C- APDU 由两部分组成 : 一个必备的连续4 字节的命令头,用CLA、I NS、P1 和P2 表示,以及一个可选的长度可变的条件体。在C- APDU 中发送的数据的字节数由1 字节的L c 定义,期望卡回送的R- AP

转:智能卡测试操作系统技术相关推荐

  1. 操作系统文件系统实验_现代电脑操作系统原理课程,案例:Apple 操作系统技术演进...

    实验环境 ChCore 课程实验代码及说明.zip 大纲.txt 1.1 操作系统的定义.mp4 1.2 为什么学习操作系统.mp4 1.3 操作系统面临的挑战.mp4 1.4 案例:Apple 操作 ...

  2. Fuzzing(模糊测试)技术,你真的了解吗?

    每当大家讨论模糊测试技术的时候,对它的第一印象往往定格在:漏洞挖掘常用技术.闭源软件漏洞挖掘.二进制文件检测分析.黑盒漏洞检测技术等等.或者,你的心里也是这么想的?但是,我想说:经历了不同时代范式的迭 ...

  3. 测试工程师技术之外软技能提升指南

    测试工程师技术之外软技能提升指南 目录:导读 前言 另一个角度看"级别" 业内划分 技能之外 跳槽要关注哪些方面 大公司 宽赛道 技术文化 降维打击 人是如何不断变强的 思维转变 ...

  4. linux 中级 教程pdf,Linux初中级学习者指导Linux操作系统技术合集.pdf

    红联的个人空间 Linux操作系统技术合集 作者:红联 Linux操作系统技术合 集 ─────Linux初, 中级学习者教程 Linux有些神奇,有人就这么说,Linux有些意思,我想尝尝,尚末安装 ...

  5. MBIST:用于嵌入式存储器的可测试设计技术

    MBist技术可以自动实现存储器单元或阵列的RTL级内建自测试电路,MBIST的EDA工具支持多种测试算法的自动实现,可针对一个或多个内嵌存储器自动创建BIST逻辑,并完成BIST逻辑与存储器的连接, ...

  6. 宜建立自主可控的车用芯片和操作系统技术体系

    万物互联时代,操作系统的边界在不断突破,面向"人机物"融合的泛在计算场景,能够支撑分布式人机物协同应用的操作系统将是产业未来之光.操作系统在经过主机时代.PC互联时代.移动互联时代 ...

  7. 5. 第五阶段 测试开发技术 - JAVA

    5. 第五阶段 测试开发技术 - JAVA 第一章 初识JAVA java简介 java语言的特性 搭建java环境 第一个java程序 public class Helloworld{public ...

  8. 智能卡与RFID技术

    智能卡与RFID技术 一.绪论 1.1.RFID技术的基本概述 1.2.RFID技术的介绍及市场现状 1.3.我身边的RFID 1.3.1. 物流仓储管理 1.3.2. 宠物管理 1.3.3. 智能停 ...

  9. 智能变电站测试关键技术

    自2009年国家电网公司组织推进智能电网战略以来,基于IEC 61850标准的智能变电站自动化技术获得了快速发展,我国已成为智能变电站投运数量最多的国家.智能变电站二次系统基于SCD展开,采用&quo ...

最新文章

  1. struts1生成验证码
  2. VMWare安装Linux系统之CentOS-6.6
  3. freeRtos学习笔记 (7)信号量
  4. 构建乘积数组(剑指offer)
  5. python requests和urllib_Python——深入理解urllib、urllib2及requests(requests不建议使用?)...
  6. 解决 c3p0 和 MySQL 集成情况下,连接长时间闲置后重新使用时报错的问题
  7. opencv+python视频实时质心显示
  8. Linux内存映射私有对象,Linux访问内存映射的对象
  9. linux ldd命令详解
  10. 【Object C】从Java 一步步走向Object C
  11. 非香农类信息不等式_ICLR 2020 | 北大图灵班满分论文:基于计算约束下有用信息的信息论...
  12. 如何用计算机声卡录声音,录音声卡怎么设置 录音声卡设置教程
  13. IDEA 配置文件位置
  14. 生活不易!一个月薪 12000 的北京程序员的真实生活 !
  15. java计算机毕业设计html5健身房信息管理系统MyBatis+系统+LW文档+源码+调试部署
  16. LPC2141芯片解密 芯片解密干什么
  17. android远程打电话,Android打电话功能 Android实战教程第三篇之简单实现拨打电话功能...
  18. EasyUI给databox,timebox赋予当前时间
  19. 电气潮流运算Matlab怎么编程,基于Matlab的电力系统潮流编程计算
  20. C语言吸引人眼球的题目,公众号文章标题如何吸引用户眼球,12个写出好标题的技巧...

热门文章

  1. 安装elasticsearch-php,安装 |《Elasticsearch-PHP 中文文档 6.0》| PHP 技术论坛
  2. Github上排名前五的开源网络监控工具
  3. Python 开发的 10 个小贴士,你知道几个?
  4. 7个免费的Linux FTP客户端工具
  5. GET和POST有什么区别?
  6. java同事不写泛型_跳了一次JAVA泛型擦除的坑
  7. html在线拖拽环绕,jQuery实现html元素拖拽
  8. zoom 用户被锁定_重新考虑Zoom的用户体验
  9. 页面滚动时触发图片逐帧播放_如何在滚动效果上创建逐帧运动图像
  10. 文本字段和表单设计-UI组件系列