一种存储卡身份认证方法及其系统的制作方法

文档序号:6463263阅读:106来源:国知局
专利名称:一种存储卡身份认证方法及其系统的制作方法
技术领域
本发明涉及存储卡,具体涉及一种存储卡身份认证方法及其系统。
背景技术
存储卡作为数据存储的媒介,广泛应用于各类应用中,如导航应用、多
媒体应用、移动通信应用等等。目前常用的存储卡主要有袖珍闪存卡CF、 多媒体存储卡MMC、安全数码卡SD等等。这些存储卡具备广泛的通用性, 即插即用,但是通用性也会给存储卡上的数据安全带来隐患,而这些众多的 存储卡相关标准中并没有对卡上的数据安全提供相应的保障。
在某些应用场合,存储卡上存储的应用数据是很重要的,需要防止非法 的上位机软件对其进行读写访问,以免关键数据被非法窃取,因此可以采用 某些安全算法在应用软件与存储卡之间建立身份认证机制,双方认证通过 后,应用软件才具有对存储卡中存储的数据文件进行访问的权限。这时的存 储卡实际成为定制的存储卡,定制存储卡只能被通过身份认证的上位机软件 所访问,从而防止非法的上位机软件对定制存储卡存储的相关应用关键数据 的盗取。与现有的存储卡相比,定制存储卡内置一个特殊的身份认证文件、 一整套安全算法及加密机制用于存储卡与上位机的身份认证功能;并对存储 卡上的关键数据进行访问监控,防止非法的上位机软件对存储卡上数据的盗 取。同时只要相关上位机软件具备相应的身份认证功能,定制存储卡同样也 可以用在手机、数码相机、全球定位导航系统GPS、个人电脑等多种场合, 保持现有存储卡的通用性。
要在应用软件与存储卡之间建立起身份认证机制,现有方式是利用底层 存储卡驱动建立存储卡通讯通道,并通过存储卡通道承载扩展的相关身份认 证协议。而各类应用软件可能运行在多种操作系统平台之上,每种操作系统 对底层存储卡驱动的处理存在很多差异,甚至根本不提供对底层存储驱动的应用程序接口 API函数,导致应用软件要想做到通用性,实现跨平台的身份 认证,无法直接通过存储卡通讯通道进行协议扩展来实现身份认证过程。
同时,各操作系统提供给应用软件的共同的开发接口有文件系统API, 进一步,文件系统通常有高速緩冲存储器cache,可能会导致文件读写命令 不会即时转换成底层驱动扇区读写指令。

发明内容
本发明需要解决的技术问题是提供一种存储卡身份认证方法及其系统, 利用文件系统API实现跨平台操作系统的身份认证,进一步能够屏蔽文件系 统API中cache 。
本发明的上述第 一个技术问题这样解决,提供一种存储卡身份认证方 法,其特征在于,包括以下步骤
1.1) 通过调用操作系统文件系统API读写存储卡上的特殊文件建立上位 机应用软件与存储卡之间的数据交互通道;
1.2) 利用所述数据交互通道上的数据交互以及上位机应用软件和存储 卡端的鉴权处理完成身〗分认证。
按照本发明提供的认证方法,所述特殊文件定义为身份认证文件;所述 文件系统位于应用软件所运行的操作系统中;所述存储卡是定制存储卡。
按照本发明提供的认证方法,该认证方法还包括所述存储卡限制未经身 份认证或认证未通过的上位机应用软件访问除所述特殊文件之外的其他所 有或部分存储卡内的文件;所述限制包括但不限于禁止;所迷部分的情况是 可提供存储卡内的 一部分空间作为共享空间。
按照本发明提供的认证方法,所述特殊文件的大小应大于文件系统 cache容量。
按照本发明提供的认证方法,所述数据交互是收发身份认证扩展协议报 文,该报文是相互约定的自定义结构报文。
按照本发明提供的认证方法,所述身份认证扩展协议报文采用加密和校 验,用于保证数据交互的安全性和传输的完整性。按照本发明提供的认证方法,所述身份认证扩展协议报文包括报文头和
报文体;其中
所述报文体包括指令名和报文内容;所述报文内容是随机数、认证算法 计算结果或比较结果。
所述报文头包括上行和下行同步计数字段;所述数据交互包括初始同步 设置以及后续的同步比较、同步计数和置所述同步计数字段,用于保证会话 的完整性,屏蔽文件系统cache的影响;对应的具体实现方法可以多种变化, 其中同步比较两端都必须进行,而同步计数可在存储卡端、上位机应用软 件端或两端同时进行,下面以在存储卡端进行同步计数为例进行说明
(-)应用软件
接收到所述身份认证扩展协议上行报文时,首先应比较所述身份认证扩 展协议上行报文中的下行同步计数器的值是否被置为无效值,且所述身份认 证扩展协议上行报文中的上行同步计数器的值与应用软件的本地计数器值 是否一致,两个条件同时满足时,表示一个完整的文件写命令、文件读命令 过程都被存储卡收到并进行了处理;否则,或者是文件读命令被文件系统 cache命中,或者是文件写命令被文件系统cache命中,或者是二者都被文 件系统cache命中;
向存储卡发送所述身份认证扩展协议下行报文时,需先更新应用软件的 本地计数器的值(一般是自加一),然后将本地计数器的值填入所述身份认 证扩展协议下行报文的下行同步计数器和上行同步计数器字段;
t)存储卡
接收到所述身份认证扩展协议下行报文时,如果所述身份认证扩展协议 下行报文中的下行同步计数器与上行同步计数器的值均为有效值并且相等, 且大于存储卡的本地计数器值,将所述身份认证扩展协议下行报文中的下行 同步计数器值替换存储卡的本地计数器值,接着对所述身份认证扩展协议下 行报文做后续处理;否则,就丢弃此下行报文;
向应用软件发送所述身份认证扩展协议上行报文时,应将所述身份认证 扩展协议上行报文的下行同步计数器置为无效,并将存储卡的本地计数器值填入所述身份认证扩展协议上行报文的上行同步计数器字段; 〇处理
当对所述特殊文件的读写命令被文件系统cache命中时,可通过所述的 上行同步计数器和下行同步计数器进行鉴别,并进行重发,直至对所述特殊 文件的文件写命令、文件读命令被存储卡真正接收到并做相应协议处理为 止。
其中
所述身份认证扩展协议下行报文由应用软件通过文件写命令携带下发 给存储卡;所述身份认证扩展协议上行报文由存储卡通过回应应用软件的文 件读命令携带上发给应用软件,应用软件通过文件读,获取来自存储卡的报 文。
所述上行同步计数器和下行同步计数器的无效值是OxFFFFFFFF;所述 应用软件的本地计数器值即为上次发送身份认证扩展协议下行报文时的下 行计数器值,初始值为0;所述存储卡的本地计数器值即为上次发送身份认 证扩展协议上行报文时的上行计数器值,初始值为0。
按照本发明提供的认证方法,所述操作系统包括但不限制于 WINDOWS, UNIX、 LINUX、 WINCE或UC/OSII系统。
本发明的上述另 一个技术问题这样解决,提供一种存储卡身份认证系 统,具体包括
运行应用软件的上位机,该应用软件内置上位机端鉴权处理装置,调用 操作系统文件系统API收发并处理身份认证扩展协议报文,完成身份认证过 程;
定制的存储卡,预置身份认证文件和卡端鉴权处理装置,处理所述身份 认证扩展协议报文,完成身份认证过程,并在通过身份认证之前,限制上位 机应用软件对存储卡中除了所述身份认证文件之外其它所有或部分文件的 访问;所述限制包括但不限于禁止;所述部分的情况是可提供存储卡内的一 部分空间作为共享空间。
按照本发明提供的认证系统,所述身份认证文件是特殊文件。本发明提供的存储卡身份认证方法及其系统,具有以下效果1.保 证只有通过身份认证的应用软件才能对定制的存储卡进行访问,防止定 制存储卡中的相关应用关键数据被非法上位机软件窃取;2.仅利用文 件系统API就可以与存储卡建立起可靠的数据交互通道,完成身份认 证过程。无需关注底层存储卡驱动的差异,无需关心不同操作系统平台 的差异,减少了开发的工作量,也极大程度降低了兼容性调试工作的难 度,从而有效缩短开发及后期调试时间,提高了效率。


下面结合附图和具体实施例进一 步对本发明进行详细说明。
图1是本发明上位机应用软件与存储卡身份认证方法及其系统示意图2是本发明上位机端与卡端数据流交互示意图3是本发明导航应用软件与定制SD卡的身份认证过程示意图。
具体实施例方式
首先,说明本发明核心思想和注意事项 (-)核心思想
一般地,各操作系统提供给应用软件的共同的开发接口只能是文件系统 层API,协议的扩展也就只能考虑架构在对文件的读写操作之上;
(二)注意事项
但是,文件系统通常有cache,导致文件读写命令可能不会即时转换成 底层驱动扇区读写指令下发给存储卡。在这种情况下,需要一种有效的方法, 保证应用软件只利用文件系统API,屏蔽文件系统cache的影响,与存储卡 建立起可靠的数据交互通道,完成身份认证过程。
第二步,说明本发明关键具体实施步骤
(-)利用文件系统API建立身份认证扩展协议报文的数据通道
如图1所示,包括上位机1和定制存储卡2,其中对于上位机l而言底层服务包括操作系统、cache管理、存储卡驱动, 这部分对上层应用而言,其具体实现是各有差异的,也是不可见的;公共接 口包括文件系统,这部分不随底层服务的差异而不同;上层应用可包括各类 应用软件;
对于定制存储卡2而言,底层服务包括存储卡驱动;上层应用包括身份 认证软件;
这样利用文件系统这一公共接口,可以屏蔽底层服务的差异,建立跨操 作系统平台的身份认证扩展协议报文的数据通道。
t)数据交互
如图2所示,基本数据交互方法如下
1) 应用软件在对特殊身份认证文件进行写操作时,需要先更新上位机 端的本地计数器值(例如加l),并令下行身份认证扩展协议报文的下行 同步计数器值和上行同步计数器值等于更新后的上位机端本地计数器值,组 装好下行身份认证扩展协议报文后,将下行身份认证扩展协议报文作为"写" 操作的输入参数下发给定制存储卡;
2) 定制存储卡在收到"写"操作(已经由操作系统底层驱动转化为扇 区写)时,需要先将定制存储卡的本地计数器与下行身份认证扩展协议报文
中的下行同步计数器和上行同步计数器相比较,只有下行身份认证扩展协议 报文中的下行同步计数器值和上行同步计数器值为有效值并相等,且都大于 定制存储卡的本地计数器值,才接着处理下行身份认证扩展协议报文,并用 下行身份认证扩展协议报文中的下行同步计数器值替换定制存储卡的本地 计数器;否则认为该下行身份认证扩展协议报文曾被文件系统的cache命中 过,丟弃该下行身份认证扩展协议报文。
3 )应用软件进行身份认证内部逻辑处理,调用文件系统API向定制存 储卡下发文件读操作。
4)定制存储卡在回应"读,,操作(已经由操作系统底层驱动转化为扇 区读)时,需要先将上行身份认证扩展协议报文中的下行同步计数器置为无 效,并令上行身份认证扩展协议报文中的上行同步计数器值等于定制存储卡的本地计数器值,组装好上行身份认证扩展协议报文后,将上行身份认证扩
展协议报文作为"读"操作返回数据传给应用软件;
5) 应用软件在获得特殊身份认证文件读操作回应时,首先应比较上行 身份认证扩展协议报文中的下行同步计数器的值是否为无效,且上行同步计 数器的值与上位机端的本地计数器是否一致,两个条件同时满足时表示一个 完整的读写过程都被定制存储卡收到并进行了处理;否则或者是读操作被文 件系统Cache命中,或者是写操作被文件系统Cache命中,或者是二者都被 文件系统Cache命中,此时需要采用 一定的重发策略进行重发。
6) 当应用软件对特殊身份认证文件的读写已经到达文件末尾时,将从 该特殊身份认证文件的起始处重新开始读写。
7) 为降低文件写操作被文件系统Cache命中的几率,每次对特殊身份 认证文件进行写操作的大小应该大于2K或者4K。
8 )多次重复步骤1 ) - 5 ),即可利用文件系统API,屏蔽文件系统cache 的影响,在应用软件与定制存储卡建立起可靠的数据交互通道,完成身份认 证过程。
最后,以一个具体应用"导航应用软件和定制SD卡的认证过程,,详细 说明本发明
(-)定制的SD卡需预先创建特殊身份认证文件,该文件大小应大于文件 系统的Cache大小,比如可取256K。由于特殊身4分认证文件是定制SD卡 事先创建,卡端本身是可以知道该文件所在的扇区范围,因而能有效控制上 位机端对卡端的访问,除了限定范围内的扇区,定制SD卡其它扇区均不能 在未通过身份认证时被访问。从而可以实现特殊身份认证文件不可被删除, 不可被格式化,也不能被随意改写,仅用于导航应用软件与定制SD卡的身 份认证;在通过认证之前,该特殊身份认证文件是唯一可被上位机端文件系 统访问的文件,其它文件不能^皮访问。
(二)上下行身份认证扩展协议报文的格式包含报文头、数据体和校验值。 其中报文头包括下行同步计数器、上行同步计数器等等。数据体可以包括指 令名、定制SD卡序列号、计算数据及结果等等,为了数据安全,最好采用加密算法进行加密。校-睑值是对数据体的校验值,以保证数据传输的正确性。
为以下描述方便,对指令名做如下简单约定
1) 指令名0x30,表示指令名为"产生随机数";
2) 指令名0x50,表示指令名为"执行认证算法";
3) 指令名0x70,表示指令名为"回送比较结果";
(H)理想情况下,定制SD卡对导航应用软件的身份认证步骤,如图3所 示,具体包括
1) 上位机端首先发起,导航应用软件本地计数器值初始设置为 0x00000000,向定制SD卡下发文件读操作。
2) 在初始化状态时,定制SD卡本地计数器值为0x00000000,收到文 件读操作时,则从"初始化状态"转为"产生随机数状态",产生一个随机 数;令上行身份认证扩展协议报文中的下行同步计数器值为无效,即设置下 行同步计数器值为OxFFFFFFFF,同时,令上行同步计数器值等于定制SD 卡本地计数器值,上行身份认证扩展协议报文中的指令名为0x30;将下行 同步计数器值、上行同步计数器值,指令名、卡片序列号、随机数等填入相 应字段,并对数据体进行加密、产生校验值后组成上行身份认证扩展协议报 文,作为文4牛读操:作的回应。
3) 导航应用软件收到文件读操作的回应,首先比较上行身份认证扩展 协议报文中的下行同步计数器值是否置为无效(OxFFFFFFFF)并且上行身 份认证扩展协议报文中的上行同步计数器值是否等于导航应用软件本地计 数器值,不满足条件则丢弃该报文;满足则进行后续处理导航应用软件本 地计数器值加1,然后对上行身份认证扩展协议报文数据体进行校验和解密 后,用收到的随机数执行认证算法;接着令下行身份认证扩展协议报文中的 下行同步计数器和上行同步计数器的值均等于导航应用软件本地计数器值, 令下行身份认证扩展协议报文中的指令名为0x50,将下行同步计数器值、 上行同步计数器值、指令名、执行认证算法后得到的认证计算值等填入相应 字段,并对数据体进行加密、产生校验值后组成下行身份认证扩展协议报 文,向定制SD卡发出文件写操作。4) 定制SD卡收到文件写操作时,首先比较下行身份认证扩展协议报
文中的下行同步计数器值是否等于上行同步计数器值,并且是否都为有效值
(即不等于OxFFFFFFFF),并且大于定制SD卡本地计数器值,若不满足 条件则丟弃该报文,定制SD卡状态、本地计数器都不改变;若满足条件则 进行后续处理用收到的下行身份认证扩展协议报文中的下行同步计数器值 更新定制SD卡的本地计数器值,即SD卡本地计数器值=下行同步计数器 值,然后对下行身份认证扩展协议报文数据体进行校验、解密后,用收到的 认证计算值与定制SD卡本地计算值比较,定制SD卡由"产生随机数状态" 转为"比较执行算法结果状态",如果比较结果相同则认证通过,置位相应 标志位,比4交结果不相同则认i正失败,相应标志位不变。
5) 导航应用软件在发完包含"执行认证算法"指令名的下行身份认证 扩展协议报文后,向定制SD卡下发文件读操作。
6) 定制SD卡在"比较执行算法结果状态"时,收到文件读操作,则 从"比较执行算法结果状态"转为"回送比较结果状态,,,令上行身份认证 扩展协议报文中的下行同步计数器值为无效,即令下行同步计数器值为 OxFFFFFFFF,令上行同步计数器值等于定制SD卡本地计数器值,令上行身 份认证扩展协议报文中的指令名为0x70;从相应的标志位查询认证是否通 过,填写比较结果;将下行同步计数器值、上行同步计数器值,指令名、比 较结果等填入上行身份认证扩展协议报文的相应字段,并对数据体进行加 密、产生校验值后组成上行身份认证扩展协议报文,作为文件读操作的回应。
7) 导航应用软件收到文件读操作的回应,首先比较上行身份认证扩展 协议报文中的下行同步计数器值是否置为无效(OxFFFFFFFF),并且上行 同步计数器值是否等于本地计数器值,若不是则丢弃该报文或进行重发;若 是则进行后续处理本地计数器值加l,然后对上行身份认证扩展协议报文 数据体进行校验和解密后,检查上行身份认证扩展协议报文中的指令名是否 为0x70,是则用收到的比较结果决定上位机是否转为"认证通过状态"; 否则丟弃该净艮文。
非理想情况下,则需要利用上下行身份认证扩展协议报文中的上行同步 计数器值和下行同步计数器值,以及认证过程中各指令名的逻辑关系来屏蔽上位机端文件系统Cache的影响,具体如下 导航应用软件
对于步骤3,如果上行身份认证扩展协议报文中的下行同步计数器值置 为无效(OxFFFFFFFF),并且上行同步计数器值等于导航应用软件本地计 数器值,两个条件同时满足则表示文件读操作被定制SD卡收到并进行了处 理,否则丟弃该上行身份认证扩展协议报文,重复步骤l进行重发。
对于步骤7,如果上行身份认证扩展协议报文中的下行同步计数器值置 为无效(OxFFFFFFFF),并且上行同步计数器值等于导航应用软件本地计 数器值,两个条件同时满足则表示一个完整的文件写、文件读过程都被定制 SD卡收到并进行了处理;否则或者是读操作;故文件系统Cache命中,或者 是写操作被文件系统Cache命中,或者是二者都被文件系统Cache命中a) 如果下行同步计数器值置为无效(OxFFFFFFFF),但上行同步计数器值小 于导航应用软件本地计数器值,则表示步骤3中发送的文件写操作被文件系 统的Cache命中,步骤5的文件读操作被定制SD卡收到并做了处理,则应 用上行身份认证扩展协议报文中携带的随机数重新执行认证算法后,重发步 骤3中的文件写操作;为了降低文件写操作被Cache命中的几率,需要调整 写内容的长度,如调整至2K、 4K大小。b)如果下行同步计数器值不等于 无效值(OxFFFFFFFF),表示文件读操作被Cache命中。此时需要采用重 发策略进行重发。
定制SD卡
对于步骤4,如果下行身份认证扩展协议报文中的下行同步计数器值小 于等于定制SD卡的本地计数器值,表示由导航应用软件发送的文件写操作 曾被文件系统的Cache命中过,重发后新的文件写操作已经被定制SD卡收 到并处理了,则直接丢弃该报文;
对于步骤6,定制SD卡如果处在"产生随机数状态"收到文件读操作, 则表示步骤3发送的文件写操作被文件系统的Cache命中了 ,而步骤5所发 送的文件读#:作则绕过文件系统的Cache先发送到了定制SD卡,定制SD 卡则重新产生随机数,重发步骤2中的文件读操作的回应。通过这样的处理,导航应用软件仅利用文件系统API就可以与定制SD 卡建立起可靠的数据交互通道,完成身份认证过程,从而保证了仅有那些通 过认证的应用软件才能对定制SD卡中的地理信息进行访问,有效防止非法 软件对定制SD卡中地理信息数据的盗取。
权利要求
1、一种存储卡身份认证方法,其特征在于,包括以下步骤1.1)通过调用操作系统文件系统API读写存储卡上的特殊文件建立上位机应用软件与存储卡之间的数据交互通道;1.2)利用所述数据交互通道上的数据交互以及上位机应用软件和存储卡端的鉴权处理完成身份认证。
2、 根据权利要求1所述认证方法,其特征在于,该认证方法还包括 所述存储卡限制未经身份认证或认证未通过的上位机应用软件访问除所述 特殊文件之外的其他所有或部分存储卡内的文件。
3、 根据权利要求1所述认证方法,其特征在于,所述特殊文件的大 小大于文件系统cache容量。
4、 根据权利要求1所述认证方法,其特征在于,所述数据交互是收 发身份认证扩展协议报文。
5、 根据权利要求4所述认证方法,其特征在于,所述身份认证扩展 协议报文采用加密和校验。
6、 根据权利要求4所述认证方法,其特征在于,所述身份认证扩展 协议报文包括指令名和报文内容;所述报文内容是随机数、认证算法计算结 果或比较结果。
7、 根据权利要求6所述认证方法,其特征在于,所述身份认证扩展 协议报文还包括上行和下行同步计数字段;所述数据交互包括初始同步设置 以及后续的同步比较、同步计数和置所述同步计数字段。
8、 根据权利要求7所述认证方法,其特征在于,所述同步计数在存 储卡端、上位机应用软件端或两端同时进行。
9、 根据权利要求1所述认证方法,其特征在于,所述操作系统是 WINDOWS、 UNIX、 LINUX、 WINCE或UC/OSII系统。
10、 一种存储卡身份认证系统,其特征在于,包括 运行应用软件的上位机,该应用软件内置上位机端鉴权处理装置,调用 操作系统文件系统API收发并处理身份认证扩展协议报文,完成身份认证过程;定制的存储卡,预置身份认证文件和卡端鉴权处理装置,处理所述身份 认证扩展协议报文,完成身份认证过程,并在通过身份认证通过之前,限制 上位机应用软件对存储卡中除了所述身份认证文件之外其它所有或部分文4牛的i方问。
全文摘要
本发明涉及一种存储卡身份认证方法及其系统,其中系统包括运行调用操作系统文件系统API的应用软件的上位机和定制的存储卡;方法包括通过调用操作系统文件系统API读写存储卡上的特殊文件建立上位机应用软件与存储卡之间的数据交互通道;利用所述数据交互通道上的数据交互以及上位机应用软件和存储卡端的鉴权处理完成身份认证。这种方法及其系统进一步在数据交互通道两端采用同步计数和同步比较的方式屏蔽文件系统API中cache,能够适应多种操作系统,减少开发工作量,极大程度地降低了兼容性调试工作难度,从而有效缩短开发及后期调试时间,提高效率。
文档编号G06F21/00GK101551838SQ200810103359
公开日2009年10月7日 申请日期2008年4月3日 优先权日2008年4月3日
发明者预 秦, 蒋曲明 申请人:凤凰微电子(中国)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1