智能卡3G COS软件的设计与实现
文章出处:http://www.nexussmartsolutions.com 作者:覃毅 陈荣征 黄健 人气: 发表时间:2011年09月29日
1 引言
3G系统能提供多类型高质量多媒体业务,能实现全球无缝覆盖,并具有全球漫游能力与固定网络兼容。
COS(Chip Operation System)是智能卡芯片操作系统。是驻留智能卡内的操作系统软件,使智能卡实现“智能”的重要支撑平台。优秀的智能卡COS系统将使智能卡实现“安全可靠的应用智能”。目前,3GCOS主要存在体系结构模型、关键技术的选择以及覆盖模型的建立等三个问题。体系结构模型和关键技术的选择主要体现的是COS系统的效率和扩展性问题,覆盖模型的建立主要是为了适应不同硬件UICC的需要。为了解决系统的效率和扩展问题,本文采用一种将层次结构和微内核结构优点相结合的半层次结构模型;为了解决COS系统在不同硬件上的适应性问题,而又不增加COS系统的代码量,系统决定采用从覆盖模型到特殊模型相映射的方法,当掩模罐装到具体UICC硬件时,由覆盖模型根据具体要掩模的UICC硬件特征抽象出特殊模型,而不直接将覆盖模型掩模到UICC中,这样既可以减少COS系统的代码量,又可以相对增加用户数据可存储量。
2 体系结构设计
当前,比较主流的系统模型主要有四种 J:单块式结构模型、层次结构模型、客户/服务模型、REO模型,通过对四种模型各自的优缺点、适用场景进行详细分析,本文根据3GCOS系统的设计目标和设计原则,提出适合系统实际开发的半层次结构模型,如图1所示。
2.1 各模块功能划分
COS结构模型从整体上可划分为两大层次:功能模块层和微内核层。其中,功能层主要实现COS的应用逻辑处理功能,主要包含通信管理模块、安全管理模块、命令解释模块、文件管理模块。
(1)功能模块层
通信管理模块:对I/O输入缓冲区中接收到的数据采取奇偶校验、累加和及分组长度检验等到手段进行正确性判断,不进行信息内容的判断,判断的标准参见ISO 7816—4 APDU指令结构;接收经过安全管理、命令处理、文件管理处理后的信息,并按照ISO 7816 APDU指令结构要求打包成完整的数据帧,发送到I/O的输出缓冲区。
安全管理模块:接受通信管理模块的调度,并向通信管理模块返回处理后的数据信息;将由通信管理模块接收到的进行安全验证;不做数据内容的验证;当安全验证不通过时,直接向通信管理模块返回数据。
命令解释模块:接受安全管理模块的调度,并向安全管理模块返回处理后的数据信息,即返回与命令相对应的响应代码;需要作数据内容上的鉴别;当数据内容鉴别不通过时,直接向通信模块返回数据。
文件管理模块:接受命令管理模块的调度,并执行命令,向命令解释模块返回数据。
(2)微内核层
微内核整体功能:对功能层的逻辑处理提供硬件支持,实现卡与终端的通信。微内核分为转换层、硬件接口层、硬件三个部分。转换层接受功能层的调度,并将功能层的调度转换为对底层驱动接口的调用,向功能层提供统一的向上接口,实现对覆盖模型各种底层硬件驱动的管理,当由覆盖模型转换为特殊模型时,实现对底层驱动的具体硬件配置,剥离覆盖模型中冗余的底层驱动,在特殊模型中使功能层实现对底层驱动的透明调用;硬件接口层主要实现对底层硬件的驱动调度。
2.2 功能模块之间的状态转换及调度关系
功能层各模块之问的关系表现为程序调度请求和数据响应关系,模块的输出为程序调度请求,输入为调度后得到的数据响应,调度和相应均以事务来表示,而事务表示一组数据以及在数据上的一组操作。3GCOS功能层各模块之间的状态转换与调度关系如图2所示。
图2 模块状态转换及调度关系图
其中,上图中的事务2、事务3表示卡与终端之间的一种通信关系。
3 关键技术
3.1 系统主调度流程的设计
3.1.1 主调度流程
COS系统的调度流程,分主调度流程和功能子流程 。主流程对终端输入指令的接收可以采用轮询方式或中断方式,由于采用轮询方式系统开销较大,故在本文的3GCOS系统中采用了中断调度方式。3GCOS主调度流程的执行步骤如下:
(1)卡上电复位;
(2)发送ATR复位应答指令的第一字节;
(3)初始化系统运行环境:初始化安全环境,清空I/O输入输出缓冲区APDU—IN—buffer、AP.DU— OUT— buffer;
(4)发送ATR剩余字节;
(5)等待中断指令信号;
(6)调度中断处理程序,获取与中断源相对应的中断服务程序入口地址;
(7)根据中断服务程序入口地址,调度执行中断服务程序;
(8)判断输入缓冲区APDU指令的完整性;
(9)APDU指令不完整则返回⑤继续等待中断指令信号;
(10)APDU指令完整,则系统关中断,调度功能执行子流程进行命令处理,返回处理结果到输出缓冲区APDU—OUT—buffer:
(11)调用输出I/O输出驱动,将APDU响应指令发给终端;
(12)清空输输入输出,缓冲区;
(13)开中断,返回。
主层序执行流程图,如图3所示。
3.1.2 算法描述
方案,现已完成软件整体测试,系统运行稳定、可靠,符合ISO/IEC 7816和ISO/IECI443 TYPE B标准以及《中国金融集成电路(IC)卡规范》、《中国金融集成电路(IC)卡应用规范》等标准,现正进行用户测试。
(文/仲恺农业技术学院现代教育技术中心 广东工业大学计算机学院 覃毅 陈荣征 黄健)