一种通过新型文件系统实现智能卡或USB设备上文件隐藏和数据
备份的方法
1 所属技术领域
本发明属于智能卡/集成电路芯片设计和应用领域,尤其涉及高计算性能、超大存储容量、高速传输接口的智能卡设计和应用。
本发明所指的智能卡是指基础功能符合或采用ISO/IEC 7816标准,增强功能采用工业界最新技术的新型智能卡。
2 背景技术
智能卡又叫IC卡,是一种将具有存储、加密及数据处理能力的集成电路芯片镶嵌于塑料基片中的卡片。智能卡根据嵌装的芯片来划分,可分成存储器卡和微处理器卡两大类。存储器卡采用存储器芯片作为卡芯,只有“硬件”组成,包括数据存储器和安全逻辑控制等;微处理器卡采用微处理器芯片作为卡芯,由硬件和软件共同组成。硬件部分通常包括用于计算和控制的硬件微处理器、用于存储运行时或工作数据的随机存取存储器(SRAM/DRAM/SDRAM)、用于存储程序代码的只读存储器(通常用ROM实现,最新进展是采用非挥发性可改写存储器,如EEPROM/FLASH来实现),用于存储用户数据的非挥发性可改写存储器(EEPROM/FLASH)。软件部分包括监控程序或COS(Card Operating System,卡片操作系统)以及各类应用程序等。本发明中的智能卡就是指微处理器卡。
智能卡的基本特性和功能在ISO/IEC 7816系列标准中有所规定。智能卡集成电路的典型结构如图一所示,除了作为芯片核心的微处理器外,通常还包括四个附加功能模块:存储运行时或工作数据的随机存取存储器(SRAM/DRAM/SDRAM)、用于存储程序代码的存储器(ROM/EEPROM/FLASH)、用于存储用户数据的非挥发性可改写存储器(EEPROM/FLASH)和串行通信单元(I/O接口)。通过逻辑电路将上述五部分模块连接起来并集成在一块集成电路中,电路和数据的安全性通过半导体工艺及软件有效地进行保障。
IC卡具有突出的3S特点,即Standard(国际标准化)、Smart(灵巧智能化)和Security(安全性),具有存储量大、可靠性强、安全性高等优点。目前,智
能卡已广泛用于电信、金融、政府、交通、医疗、公共管理、互联网等领域。
以智能卡在移动通信领域内的应用为例,SIM(Subscriber Identity Module,用户识别模块)卡装载在手机终端中,完成了GSM网络上的用户身份识别和鉴权、话音通信支撑、短消息业务以及其它各类基于STK的增值业务。SIM卡技术在GSM网络中获得成功后,目前已大量应用在各类移动通信网络中,如CDMA网络中使用了UIM卡、PHS网络中使用了PIM卡、3G网络中使用了USIM卡等。本发明所描述的新型智能卡技术可以使用在上述的各个行业和应用中。
长期以来,智能卡集成电路和软件技术一直沿用了其诞生以来的基本设计理念和内部架构。一方面,智能卡技术获得了巨大的商业成功;另一方面,智能卡技术也受到越来越多其它新技术的挑战,如果不能够在技术平台上尽快地实施升级,智能卡也面临着被淘汰的危险。传统SIM卡的容量在16K至128K字节之间,并采用8位CPU。由于存储容量有限,8位微处理器的处理能力也很低,传统SIM卡能开展的业务极其有限;而运营商已经从价格战转入应用和服务的竞争,推出的业务越来越复杂,大量的新型移动增值业务,如手机电视、移动电子商务、多媒体应用,都需要进行大量的数学计算和数据吞吐;当今社会对信息安全也提出了更高的要求,相应的密码算法也越来越复杂,如数字签名、数字证书、DRM(Digital Rights Management,数字版权管理)也需要进行大量的计算和高速的处理。运营商渴望能够推出高附加值或杀手级的应用,有效提升其业务收入,这就需要作为连接运营商与用户之间唯一桥梁的SIM卡具有超过M字节的存储量和高性能的微处理器,显然,传统的SIM卡是无法满足这些要求的,无法帮助运营商在新业务推广上取得大的突破。
运营商为了增强自己在产业链上的绝对优势地位,不断发展自己的增值业务,并设法通过各种手段尝试对手机厂家和业务进行控制,但由于手机厂家众多和手机特有的销售模式使得运营商无法很好地在手机平台上建立和统一其业务,所以这种尝试收效甚微。而SIM卡作为运营商唯一完全可控的环节,如能具备超大容量和超强计算能力,并能够支撑运营商的业务发展,无疑将成为运营商推广自己业务和获得产业控制权、防止终端和业务失控的一个重要手段。
而由于在海量存储(USB/SD/MMC等)与SIM同时应用时各类数据之间共享同一存储区域,以及海量存储对于PC的可见性,使得数据安全和SIM数据隐藏成为一种必要的考虑。同时,由于SIM卡数据(包含电话簿,短信以及各类STK应用)随着应用的激增以及人们对于超大容量数据库备份和编辑的需求,使得智能卡又必须为SIM数据和PC端提供必要的安全通信接口。如何实现安全的数据通信将是这种多应用智能卡必须解决的重要问题。
3 发明的目的和要解决的技术问题
本发明旨在解决上述SIM和USB/SD/MMC等海量存储接口共享存储介质时遇到的问题,提供一种即能够实现SIM数据保护,又能够通过某种途径对SIM或USB数据进行备份和编辑的解决方案,从而向最终客户提供有价值、有竞争力的新型安全智能卡。
本发明的目的之一在于智能卡中SIM文件的隐藏,即在用户使用海量存储接口时对SIM文件的不可访问性。
本发明的目的之二是SIM数据的读入/出,完成如电话簿、短信等内容通过USB接口的在PC端的备份和对SIM卡上相同文件的写入。
由上述目的以及USB/SD/MMC的特性可以看出,由于这种海量存储接口要求对WINDOWS下的FAT文件系统做到完全兼容,如果采用WINDOWS的固有文件接口进行操作,将使得SIM与USB/SD/MMC等共享在同一存储区域的数据对PC的完全可见,SIM操作的安全性将不能够得到保障。
为此,方案必须绕过WINDOWS原有的文件操作接口,通过特定的与智能卡内部结构类似的文件系统连接方式对SIM内容进行操作,并在文件备份输出时屏蔽SIM内部的路径和原文件名。在完成上述功能要求和目的的基础上,下面提出本发明需要解决的一些关键技术问题,也就是本发明的关键技术特征:
首先,为了实现对智能卡上文件的准确完整读取和写入,新型文件系统构造的文件格式必须与智能卡上各个逻辑区域对应文件格式完全相同。
其次,在PC上文件输出时,应仅允许操作智能卡上如电话簿和短信等特定文件,并且PC端输出文件路径可控,而屏蔽智能卡内文件和路径名,即备份文件和原有SIM文件的不可回溯性。最终满足一种PC输出文件与智能卡上文件的单向控制的对应关系。
第三,由于此文件系统接口访问的主要对象是SIM数据与海量存储数据共享的逻辑存储区域,因此,构建的新型文件系统对共享区和其他逻辑区域的控制权限将成为接口设计需要考虑的一个重要因素。
第四,新型文件系统运行在PC端,较少受到空间的限制。因此,在读取智能卡数据时可充分利用Cache的作用,如何设计通过增大Cache容量和较好的Cache算法以减少对flash的读取次数将对备份速度有着较大的影响。
第五,与WINDOWS固有文件操作接口结构的最大相似度可以使得操作简单,而接口的完全相异则能够保证在同时操作两种文件系统时不至于产生逻辑混乱。
因此,与智能卡上单一的文件系统不同,此文件系统设计必须考虑到PC上原有类型和接口的定义。
4 技术方案(即发明的内容)
为实现上述目的,本发明提供一种支持SIM数据编辑、超大容量存储、高速传输的智能卡上文件隐藏和特定数据备份的新型文件系统和用户备份接口。通过这种可靠和安全的数据传输,用户可以方便的对SIM卡内数据(如个人信息,电话簿,短信以及手机设置等)或敏感的USB数据进行编辑、增删和备份,而同时不影响智能卡内其他数据的操作。
本发明涉及的智能卡运行环境是基于RTOS来做系统管理的多任务、多应用平台,同时包括了卡内文件系统模块以及对应的FLASH扇区操作接口,具体环境描述图如图1所示。
本发明的结构如图2所示,包括了文件API层,文件系统层,以及底层扇区读取接口(方案利用了USB接口)。通过构造底层扇区传输接口,将智能卡上文件分扇区读出,并通过WINDOWS平台下构建特定的文件系统组织文件的创建,读/写,属性等操作。由文件系统实现的这些文件基本操作基础上可以方便、快速地进行具体的应用开发,为用户提供各种SIM或USB设备文件的输入/输出,并进行灵活的处理和与PC数据的交互。
具体来讲,这种新型的智能卡文件隐藏和数据备份单元主要实现如下三方面的功能。
首先,在智能卡读写接口模块中必须提供一个稳定、快速的通信接口,能够实现对智能卡内数据的读入/出,实践中由于USB接口的广泛应用和其在大批量数据传输时的可靠性,因此方案中采用了USB接口作为基本的读写接口,并通过USB协议挂接智能卡中底层FLASH读写操作,实现了一个由智能卡到上位机的可靠数据传输通路,从而使得文件系统能够以类似访问WINDOWS硬盘的方式来读写相应智能卡内数据。
本发明的第二部分是文件系统模块,主要实现与智能卡中扇区读写挂接的文件管理,并且需要保证文件读出和写入的完全一致以及可靠传输。这是整个方案设计最重要的组成部分。
本模块可以借鉴智能卡端RTOS下的文件系统管理,设计的重点在于:
1. FLASH驱动的加载:
由于智能卡中存储介质的多样性,系统需要考虑备份的数据与介质的对应关系。同时,由于USB对扇区的读取有介质的限制,即USB接口仅能够访问其所控制的特定逻辑盘,使得实现时逻辑盘的加载需要根据USB接口的访问位置,进行与对应的智能卡内文件系统参数作相同的加载设置。
2. CACHE的大小和算法:
高速缓存(Cache)技术是当代处理器普遍采用的一种体系结构技术, 主要是为了解决高速CPU 和低速DRAM 主存间速度匹配的问题,在主存和CPU 之间设置的一个高速的容量相对较小的存储器。CPU 访问存储器时,首先检查Cache,如果访问的数据在Cache 中,则CPU就能很快完成访问。一般来说,Cache 的命中率决定于Cache 容量、Cache控制算法和Cache 的结构。这样,可以提高系统性能,降低系统成本。
由于嵌入式系统中RAM空间有限,因此Cache的功能不能得到充分的发挥,而在PC端,由于较少受到内存空间限制,因此,可以开辟出较大的空间用于扇区的缓存。采取较大的Cache可以提高命中率,而且由于智能卡每一次经由数据通路进行扇区读写时,都要花费较长的时间,因此,在频繁的读取/写入时,大的缓存将大大减少数据的读写时间,提高系统操作的安全性和效率。
Cache的算法由于USB接口仅对单块FLASH进行操作,因此可以不必考虑扇区大小不同引起的Cache分配问题,采用LFU(least-frequently-used) 算法,即最先移出最少使用的文档,即能够做到有效和稳定的Cache分配。
3. 文件的管理结构:
文件的结构必须采用与智能卡中文件系统完全相同的框架方能够实现数据的对应输出。因此,文件系统的管理必须适应于嵌入式系统的文件系统结构。作为匹配嵌入式系统的文件管理器, 在其结构上可以比MS-DOS FAT 文件系统更简化,更灵活,以提高整个系统的存储效率。
首先介绍一下嵌入式智能卡的文件管理方法。
依据应用目的和需求, 嵌入式文件管理器的基本结构设计, 可以采用两种不同的设计思路:
– 结构上兼容MS-DOS FAT 文件系统。这种结构较为复杂, 占用系统资源较多。但采取这种方式, Flash 存储器上的数据文件就可以被MS-DO S 或Windows 的FAT 文件系统(FAT 12/16/32) 向下兼容