双界面智能卡操作系统的设计与测试

发布者:Quail最新更新时间:2012-02-04 来源: eefocus关键字:智能卡  COS  ROM 手机看文章 扫描二维码
随时随地手机看文章

  1. 引 言

  智能卡(smart card又称集成电路卡)将一个集成电路芯片镶嵌于塑料基片中,封装成卡的形式,其外形与覆盖磁条的磁卡相似。

  笔者在利用北京市嵌入式系统重点实验室生产的智能卡进行符合中国人民银行金融卡规范的BES COS开发过程中,针对该款芯片的硬件特性进行了COS的设计与实现,并根据规范设计了测试用例,完成了测试。

  2. 智能卡硬件概述

  BES1332EF是一款基于8051的双界面智能卡芯片。非接触式接口支持ISO 14443 TYPE A协议,接触式接口支持ISO/IEC7816 T=0协议。有8K的ROM,32K的EFLASH,1K的RAM,硬件随机数发生器,CRC模块以及DES模块。

  3. 智能卡操作系统

  智能卡操作系统是一个专用系统,和传统意义上的操作系统有很大的差别,它更类似于一个监控程序。COS主要包含通信、命令解释、文件系统以及安全四个模块。

  3.1通信模块

  传输管理器负责智能卡和接口设备之间的数据通信,接收过程中要处理对输入数据的缓冲,响应过程控制数据的发送。通信使用的协议是ISO7816-3 所规定的T=0 的异步半双工字符传输协议。当接口设备给卡上电之后,首先由卡发送一个复位应答信息(ATR)给接口设备,然后接口设备发送命令头来启动命令处理过程。传输管理器在正确地接收到命令后交给下一个功能模块进行处理,昀后还要把该命令的执行结果返回给接口设备。

  3.2命令解释模块

  命令解释器对外部输入的每条命令做语法分析,分析和检查命令参数是否正确,然后根据命令参数的含义执行相应的功能模块。如果发现参数有错,将从该模块直接返回错误信息。

  3.3文件系统

  主控文件(Master File , MF)。主控文件是整个文件系统的根(可看做根目录),每张卡有且只有一个主控文件。专用文件(Dedicated File,DF)。在MF下针对不同的应用建立起来的一种文件,是位于MF之下的含有EF的一种文件结构(可看做文件目录),它存储了某个应用的全部数据以及与应用操作相关的安全数据。基本文件(Elementary File,EF)。基本文件存储了各种应用的数据和管理信息,它存在于 MF和DF下。

  3.4安全模块

  安全模块主要分成两个部分。第一部分就是用于数据加密、校验等的基础功能模块。包括随机数产生、3DES加密、MAC计算模块、 CRC计算模块等。第二部分是文件的权限控制模块。在BES COS中, MF、DF和EF的文件头中保存着一个权限范围,而系统在某一时刻都有着当前的权限值,如果权限值在权限范围中,则可以进行相应操作,否则,则需要外部认证等手段改变系统当前的权限值。

  4. 智能卡的测试

  4.1测试环境

  智能卡的测试主要分两个部分,一是硬件测试,二是软件测试。从硬件测试的层面来说,选取一个功能强的专用于测试读卡器是十分必要的。比如在IC卡的7816通信接口还没有完全实现的时候,通过普通的读卡器对卡片进行操作,返回值在读卡器这边是无法看到的,因为大多数读卡器屏蔽了不符合7816的TPDU规定的数据,而如果每次都用示波器观察硬件信号的话,效率又比较低。所以应该尽量选择可以看到底层交互数据的读卡器。

  从软件测试的层面来说,选取一个对上层提供了友好的接口的读卡器也是十分必要的。例如我在开发BES COS时使用的读卡器 Collis,提供了与其配套的脚本开发环境Collis Conclusion,可以方便的设置读卡器的电压,频率,等待超时时间等。还提供了设定期望返回值的功能。

  4.2测试脚本

  测试脚本主要分为功能正确情况测试,功能异常情况测试,参数测试,安全机制测试以及应用流程测试。

  功能正确情况测试是指在输入的参数都合法,执行的条件都具备,所执行的命令应该可以正常执行的情况下,检查所测命令是否能够正确执行涉及的功能步骤。功能异常情况测试是指在输入的参数都合法,但执行的条件不具备,检测COS是否都返回了相应的错误代码。参数测试是指,固定所测命令参数P1、P2、Lc和数据与正确且不变的情况下,利用穷举法便利每一个错误的CLA作为输入参数,测试COS是否都能正确响应错误代码,其他的参数测试同理。安全机制测试是指在操作一个基本文件时,该文件可能有一个或者多个安全控制机制。应用流程测试,是指将命令组合起来成为一个应用流程,检测整个流程是否都能正确执行,检测基本命令之间是否会有影响。

  5. 结束语

  目前COS已经通过了第三方的测试,目前正在准备上金融卡检测中心的测试平台。COS开发中昀大的困难就是调试不便,直到后来在芯片中加入了OCI,才可实现单步调试以及存储单元值的查看。COS的开发语言C/汇编也比较低级,影响了开发的效率以及易维护性。相信随着IC卡成本的降低,支持java语言的java卡会更加的普及。

 

 

关键字:智能卡  COS  ROM 引用地址:双界面智能卡操作系统的设计与测试

上一篇:门票防伪检测系统设计研究
下一篇:基于红外线光电开关的测速系统设计与应用

推荐阅读最新更新时间:2024-03-30 22:23

【STM32H7教程】第10章 STM32H7的FLASH,RAM和栈使用情况
10.1 初学者重要提示 1、为了更好的学习本章知识点,可以看之前做的视频教程第11章,针对H7也将在今年发布视频教程: http://forum.armfly.com/forum.php?mod=viewthread&tid=15408 。 2、本章节以MDK为例进行说明,使用IAR同理。 10.2 MAP文件分析 通过map文件,可以方便的查看工程ROM/FLASH和RAM的占用情况,包括单个源文件,甚至具体到每个函数的rom大小都给出了,通过这些信息可以很好的进行代码优化。MAP文件的内容可分为如下几部分: Section Cross References Removing Unused input se
[单片机]
【STM32H7教程】第10章 STM32H7的FLASH,<font color='red'>RAM</font>和栈使用情况
英特尔傲腾数据中心级持久内存带来新一代内存和存储技术
文:Lisa Spelman,英特尔公司数据中心事业部副总裁兼英特尔®至强®产品与数据中心市场营销总经理 如今,数据浩如烟海、不断累积,对此我们都有耳闻目睹。的确,海量的数据每天都在产生,而这些数据都需要存储、保护和整理。比数据量更值得关注的是数据价值,后者来自数据分析及其中所蕴含的洞察。数据中可能蕴藏着未来的重要商机、推动社会进步以及科学发现的动力。 整个行业都在采用包括基础设施创新、多种工具与手段、以及最佳实践等方法来推动数据分析和挖掘,并取得了长足的进展。但与此同时,这种方式的局限性也正日渐显现。随着数据量和种类的增多,用户期待以越来越快的速度获取数据洞察。为了真正有效利用所有数据,我们必须突破瓶颈,促进数据流动,
[半导体设计/制造]
英特尔傲腾数据中心级持久<font color='red'>内存</font>带来新一代<font color='red'>内存</font>和存储技术
stm32使用SDIO方式+FATFS读写内存
针对stm32f103zet 单片机完成对内存卡的读写操作,可以查看内存卡目录,写入文件,删除文件,更改文件,清空文件内容等,使得stm32f103zet单片机能有一个较大的外部存储空间,可跑文件系统。 内存卡分为有普通卡和高速卡SDHC卡之分 普通内存卡一般大小在2g以下 SD高速卡一般在8g~16g STM32F103ZE-EK开发板原理图 :https://pan.baidu.com/s/1smpn8VN 普通内存卡老式内存卡程序 稳定版本程序代码 :https://pan.baidu.com/s/1mjO9CDU 高速内存卡HCsdcard程序 某些程序待完善程序代码 :https://pan.baidu.co
[单片机]
全面屏双玻璃设计360手机N6 Pro发布 售1699元起
    新浪手机讯11月28日下午消息,360手机召开新品发布会,推出旗下首款全面屏机型“360手机N6 Pro”,定价1699元起。   360首款全面屏幕   N6 Pro的机身前后采用边缘对称的2.5D弧面玻璃面板,玻璃的弧度与前后对称的弧形亮光金属中框,他们让金属材质与玻璃保持了同步的光亮色泽,以呈现同一种色彩。   360手机总裁李开新引用了著名设计师JUNG JIHO的一句话来表达这种感觉:“光是一种很虚幻的东西,但玻璃能让你摸到它。”360特意强调了细节,N6 Pro的屏幕与中框之间的接缝,以及中框与天线的段差均被严格控制在0.1mm,比同档竞品少30%。   360公司的设计师专为N6 Pro的前面板准备了一套全
[手机便携]
LABVIEW的深入探索之LABVIEW能否读写物理内存
熟悉LABVIEW的朋友们都知道,LABVIEW提供了类似于汇编语言的IN OUT指令,可以直接操作计算机端口,这在一般编程语言中是禁止的, 体现了LABVIEW强大的硬件操控能力。 除了直接操作端口外,个别情况下我们可能会遇到直接读写物理内存的问题。LABWINDOWS/CVI提供了几个有关物理内存的函数,自然我们可以通过CIN或者DLL,使LABVIEW间接具有操控物理内存的能力,但这不是我们今天要探索的。 下面是CVI支持的IO端口操作函数和有关物理内存操作的函数列表和简单说明。 Port IO Input Byte From Port inp Input Word From Port inpw Input Doubl
[测试测量]
LABVIEW的深入探索之LABVIEW能否读写物理<font color='red'>内存</font>
STM32栈和堆使用不同RAM的实现方法
最近在调试将开源数据压缩算法zlib移植到STM32的工程中. 由于zlib要占用大量的动态内存(缺省设置下需要至少280kB左右的内存), STM32内部的48kB 的SRAM远远不够用, 因此必须将动态内存分配使用的内存堆(HEAP)设置在外部的扩展RAM中去. 我在使用的STM32中用了一个别人写的已经烧好的IAP Bootloader, Bootloader中会检查用户程序的向量表首地址(即__initial_sp), 如果发现这个地址的值不在内部ram中, 就认定没有合法的用户程序, 而进入死循环状态拒绝跳转. 另外, 从抗干扰性和稳定性角度出发, 我也的确希望栈放在内部ram中. 这就要求: 将stack分配到内部
[单片机]
STM32栈和堆使用不同<font color='red'>RAM</font>的实现方法
单片机的内存分配详解
对于初学者而言,对单片机的内存分配往往最让人头疼,很多人学了单片机几年 都不知道单片机内部的内存使用情况是如何分配的。要了解 ROM、RAM启动,首先 需要对 链接器 Linker 如何分配内存有一定的了解。 通常,对于栈生长方向向下的单片机,其内存一般模型是: 一个进程运行时,所占用的内存,可以分为如下几个部分: 1、栈区(stack):由编译器自动分配释放,存放函数的参数值,局部变量的值等。 2、堆区(heap):一般由程序员分配释放,若程序员不释放,程序结束时可能由OS释放。 3、全局变量、静态变量:初始化的全局变量和静态变量放在一块区域,未初始化的全局变量和和未初始化的静态变量在相邻的的另一块区域。程
[单片机]
IBM另辟蹊径,Power6速度有望超越Intel双核处理器
IBM将凭借下一代Power6处理器实现前所未有的超越。Power6处理器的运行速度将达到4-5GHz,二级缓存达到8Mb,与外置存储器可实现75Gb/s的连接。 Power6的频率和带宽是现有的Power5处理器的两倍,但功耗运行管道深度却丝毫没有增加。IBM将从明年中期开始批量供应这一处理器,届时将给现有的P系列服务器注入一剂强心针。IBM系统和技术集团的Brad McCredie说:“我们需要扩展整个系统。如果你只是增加了多内核而不扩展缓存和内存带宽,并不能真正提高CPU的性能。” IBM将可能在处理器速度上超越英特尔,尽管目前它并没有对最终将正式供应的Power6处理器给定一个明确的速度值。英特尔现在已经可以供应速度达
[焦点新闻]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
最新测试测量文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved