转:智能卡测试操作系统技术

具有稳定、可靠的卡内操作系统是智能卡正常工作的基础,智能卡操作系统控制外界与智能卡之间的通信,管理卡片的存储空间,并且在卡内对于各种命令进行处理,所以在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􀀁DU 数据字段的最大字节数由1 字节的L e 指定

对命令功能的测试主要是测试各命令之间的相互关系以及命令序列所完成的功能。根据ISO 7816- 4中规定的命令执行时需要满足的条件及有关命令间的相互关系,描述执行命令序列的过程,然后以非正常和正常事件作为输入来设计测试用例。

    在EVDO 卡的测试过程中,利用团队自主开发的自动化测试工具,引入脚本技术,实现COS 测试的自动化,大大地提高了测试的效率。引入自动化测试技术具有如下优势:

    1)使测试可以快速准确地进行,减少人为的操作失误,更多更频繁地运行测试脚本,使得脚本的执行效率高于手工测试,缩短发布产品的时间; 
    2)对新版本的程序运行已有的测试脚本,特别是在程序更新较频繁时,自动化测试可以在短时间内测试已有的脚本; 
    3)更好地利用资源,使繁琐的任务自动化可提高测试的准确性以及测试人员的积极性,从而使测试人员能有更多精力来设计更好的测试用例; 
    4) 自动化测试可通过重复执行相同的测试脚本来获得测试的可重复性和一致性。

    2. 2 防拔插和耐久性测试

    防拔插测试主要检测因突然断电而使操作中断后智能卡能否自动恢复。主要涉及的是在正常环境下执行正确的命令序列,COS 写FLASH 时,突然断电,智能卡能够保证卡内的数据依然具有完整性。若命令未能成功执行,验证卡内数据与命令执行前是否完全一致,若一致则表示卡片的防插拔功能是有效的。智能卡的使用寿命是有限的,对智能卡的插拔次数决定了智能卡的物理寿命,一般来说,约在1 万次左右; 而数据存储器的擦写次数决定了集成电路芯片的寿命,各厂家生产的芯片其指标是不同的。故而必须对智能卡实施耐久性测试,检验存储器的擦写次数是否会因为日常使用而超出芯片存储器擦写的最大值。对文件的操作是使用智能卡时主要涉及的内容,因而需要模拟日常使用智能卡的行为,对所有文件的访问频率进行统计,找出具有相对较高访问频率的那些文件,在个人化过程中分散存储这些文件,避免某一块存储区域擦写过度,均衡整个存储器的擦写。

    3 结束语

    根据COS 的特点给出了COS 的测试方案,对于每个测试项给出了其测试的方法和技术。在测试中,结合对测试结果的分析,进一步补充测试用例。在EVDO 卡的开发中按照文中的测试方案进行了测试,经反复测试,开发的EVDO 卡通过了第3 方测试,该卡正应用于生产。

转载于:https://www.cnblogs.com/liubaocheng999/p/3560755.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/294160.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android之添加快捷方式(Shortcut)到手机桌面

在两个手机上测试,发现小米手机上添加了快捷方式后不能移除,三星手机可以。权限 要在手机桌面上添加快捷方式,首先需要在manifest中添加权限。 <!-- 添加快捷方式 --><uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"…

C# 使用阿里云发送短信

最近有个项目&#xff0c;短信服务使用的是阿里云的&#xff0c;想要使用阿里云平台的短信服务&#xff0c;首先要注册一个阿里云账号&#xff0c;由于发送短信消息需要用到短信签名、短信模板ID&#xff08;已添加并通过审核&#xff09;1、注册阿里云账号&#xff08;地址&am…

如果太阳系毁灭,这种神秘粒子就是真凶!

185年12月7日这一天&#xff0c;东汉中平二年乙丑&#xff0c;一位天文学家观测到天空出现了一颗极其明亮的星体&#xff0c;他并不知道这意味着什么。这颗突然出现于苍穹之中的星星在夜空中照耀了八个月后&#xff0c;又忽然消逝了。《后汉书天文志》中留下了这段记载&#xf…

Centos7 安装gitlab 8.7.5

简介&#xff1a;GitLab 是一个用于仓库管理系统的开源项目。使用Git作为代码管理工具&#xff0c;并在此基础上搭建起来的web服务。1. Web框架使用Ruby on Rails。2. 基于MIT代码发布协议。3. 需要gitolite协同工作。安装要求&#xff1a;ruby 1.9.3MySQLgitgitoliteredis如果…

ocx c++

引用&#xff1a;http://www.baike.com/wiki/ocx ocx&#xff0c;使用它可以很快地在网址、台式应用程序、以及开发工具中加入特殊的功能。 编辑摘要目录 [ 隐藏 ]1 定义2 用途ocx - 定义 ActiveX控件.ActiveX控件是可重用的软件组件。 ocx - 用途 使用它可以很快地在网址、台式…

男人会为女人改变多少

男人会为女人改变多少 女人都想改造男人   从前有人说&#xff0c;女人征服男人&#xff0c;然后通过男人征服世界&#xff1b;而现在是女人改造男人&#xff0c;然后男人按照女人的意愿改造世界。女人喜欢男人&#xff0c;这八成是错不了的&#xff0c;但女人永远不满意男人…

Andorid之BINDSERVICE的使用方法总结

bindService用于绑定一个服务。这样当bindService(intent,conn,flags)后,就会绑定一个服务。这样做可以获得这个服务对象本身,而用startService(intent)的方法只能启动服务。 bindService方式的一般过程: ①新建Service类BindService。在BindService类里新建内部类MyBinder…

linux说明管道的作用,Linux管道及重定向的用途是什么

1、重定向在Linux中有时我们在命令的执行过程中&#xff0c;不想将执行结果显示到屏幕上&#xff0c;或者将其结果输出到其他位置这时就需要重定向来解决这个问题了首先了解一下Linux中的3种I/O设备&#xff1a;0&#xff1a;标准输入1&#xff1a;标准输出2&#xff1a;标准错…

磨刀不误砍柴工—Exceptionless搭配log4net记录日志

Exceptionless专注于.net平台提供实时错误和日志报告。主要包括&#xff1a;错误通知、智能分组异常、详细错误报告堆栈跟踪、支持离线、UI查看重要错误和确定优先级、仪表板上的统计信息和趋势、对异常标记为已修复&#xff0c;监视回归、将事件标记为关键等。主要是用于展示、…

豆瓣9.6分!再一次被BBC的纪录片震惊!

英国广播公司BBC的纪录片素来就是高质量的代名词&#xff0c;推出的《地球无限》(Planet Earth)、《地球的力量》(Earth The Power of the Planet)、《冷血生命》(Life In Cold Blood)等片不仅在英国播放时获得极高收视&#xff0c;还获得艾美奖等多个国际奖项的肯定&#xff0…

C++中事件机制的简洁实现

事件模型是被广泛使用的好东西&#xff0c;但是C标准库里没有现成的&#xff0c;其他实现又复杂或者不优雅&#xff0c;比如需要使用宏。现在VC11可以用在XP下了&#xff0c;那么就痛快的拿起C11提供的先进设施组合出一个轻便的实现吧。 为了达到简洁的目的&#xff0c;需要放弃…

监测京东商品价格波动

写着玩的&#xff0c;不用再去每天看要买的商品是否降价&#xff0c;如果降价就发布一条推文。 #!/usr/bin/env python # coding: utf-8 import tweepy import requests import re import sys import datetime import json # 京东的编码是gbk reload(sys) sys.setdefaultencodi…

Andorid之Log图文详解(Log.v,Log.d,Log.i,Log.w,Log.e)的用法总结

在调试代码的时候我们需要查看调试信息&#xff0c;那我们就需要用Android Log类。 android.util.Log常用的方法有以下5个&#xff1a;Log.v() Log.d() Log.i() Log.w() 以及 Log.e() 。根据首字母对应VERBOSE&#xff0c;DEBUG,INFO, WARN&#xff0c;ERROR。 1、Log.v 的调…

SharePoint 2010 master page 控件介绍(5):其他

转&#xff1a;http://blog.csdn.net/lgm97/article/details/6409227 <!-- 处理搜索按下“enter”键和点击后退按钮 --> <input type"text" name"__spDummyText1" style"display:none;" size"1"/> <input type"te…

linux iotop rpm,iotop命令_Linux iotop 命令用法详解:用来监视磁盘I/O使用状况的工具...

iotop命令是一个用来监视磁盘I/O使用状况的top类工具。iotop具有与top相似的UI&#xff0c;其中包括PID、用户、I/O、进程等相关信息。Linux下的IO统计工具如iostat&#xff0c;nmon等大多数是只能统计到per设备的读写情况&#xff0c;如果你想知道每个进程是如何使用IO的就比较…

.NET 6新特性试用 | LINQ功能改进

前言.NET6为LINQ添加了多个新API&#xff0c;在本文中&#xff0c;我们将始终使用User类逐一演示这些添加到LINQ中的内容&#xff1a;public class User {public string Name { get; set; }public int Age { get; set; } }*By方法包括下列方法&#xff1a;DistinctBy: 根据指定…

VS2010下的多线程窗口

多线程的调试一直是一个令人蛋疼的问题&#xff0c;一般的解决方法是写Log。有的时候想要直观地看一下线程的运行状态&#xff0c;简直是困难。幸好vs2010给我们提供了一个多线程窗口。 使用方式&#xff1a; 1、按F5进入调试状态下 2、按图1所示打开多线程窗口 图1 打开多线程…

linux cp 强制yes,linux cp实现强制覆盖

说明&#xff1a;linux下使用cp -fr src dest&#xff0c;发现即使加了-f也是不能强行覆盖的&#xff0c;这是为什么呢&#xff1f;原因&#xff1a;-f其实已经会强制覆盖了&#xff0c;但部份服务器会默认增加别名alias cp’cp -i’&#xff0c;因此当你执行cp时&#xff0c;其…

第2天:汇编语言与Makefile

汇编语言指令 ORG&#xff1a;origin&#xff0c;指定程序从某个地址开始&#xff0c;即把程序装载到内存的某个地址。 如&#xff1a;ORG 0x7c00&#xff0c;0x7c00作为是英特尔指定的。JMP&#xff1a;jump&#xff0c;跳转指令。entry, msg, loop&#xff1a;自定义标签&…