安全数据传递方法

文档序号:6592602阅读:538来源:国知局
专利名称:安全数据传递方法
安全数据传递方法本发明涉及使智能卡的多个组件之间的数据传递安全。
背景技术
智能卡的芯片一般包含处理器或微控制器连同例如随机存取存储器(RAM)的易 失性存储器以及例如闪存、电可擦除可编程只读存储器(EEPROM)或甚至是只读存储器 (ROM)的非易失性存储器。执行智能卡中由软件进行的操作要求从芯片的非易失性存储器至易失性存储器 的多次数据交换。因此,由存储在非易失性存储器中的数据构成的任何应用要求向易失性 存储器的传递。这适用于当读取可能特别包含与保密码关联的数据以将其与经由输入提供的值 比较的文件时以及当读取密钥以执行加密计算时。这也适用于当读取存储在ROM中的常数的静态表时,例如包含表征记录在卡中的 文件的访问权限的数据。经由芯片中的数据总线发生的这种传递阶段对电磁类干扰非常敏感。因此存在一 种欺诈技术,这种技术在传递数据的同时使卡处于电磁辐射源中,由此使欺诈者访问正常 时保持隐藏的数据。例如,这种干扰可能在传输数据的同时修改数据,在这种情形下,装载入易失性存 储器中的数据不同于非易失性存储器中的源数据。这种敏感性提供绕过对卡中包含的文件的访问权限、欺诈地恢复卡的密钥或密码 和/或修改卡的配置参数的可能。这就是为何要提供检测这些修改的措施,以便在检测到这种修改的情况下阻止正 在执行的操作。一种方法包括在传输后验证传递中的数据与源数据相同。数据可包括一些或全部 的单元,即构成一个或多个文件的一些或全部的数据。具体地说,在传递后,验证写入易失性存储器的单元的每个字节与源单元的每个 字节相同,这对应于读和验证类操作。但是该已知方法对某些攻击仍然无效。如果攻击者制造如何干扰传递以修改复制 入非易失性存储器中的数据,并且如果攻击者知道如何在读取和验证操作中再现相同的干 扰,那么修改可不被发觉地通过。在这些情形下,读和验证操作没有检测到异常,因为这只证明在复制期间之前受 干扰的数据也在验证之前的读取操作中受到干扰。发明目的本发明的目的是提出一种解决上述缺陷的方案,即给出一种方法,该方法在芯片 的组件之间传递数据时提供更好的安全级别。发明概述如此,本发明提供一种将智能卡的源存储器中存储的源数据与从源存储器复制入 智能卡的“目的地”存储器中的传递数据进行比较的方法,其中从源存储器读出关联于,例
3如,含源数据的文件的源单元的完整值,其中对与源单元对应的重构单元计算完整值,从传 递的数据加上(如果合适的话)传递的数据以外的源单元中的任何数据来重构所述单元, 并当完整性计算给出与源单元完整值相同的值时确定传递的数据等于源数据。在复制中,经过数据总线传送的是源数据,然而在验证中,经过数据总线传送的是 完整值。因此在复制和验证过程中经过总线送传送的值是不同的,以使在复制和验证中对 数据总线施加相同干扰的攻击完全无效。本发明还提供如上所述的方法,其中包含源数据的单元的完整值和和对重构单元 计算出的完整值是对该数据的循环冗余校验值。本发明还提供如上所述的方法,其中将不同于传递用数据的基准值从非易失性存 储器复制至易失性存储器,首先将所述基准值预存储在非易失性存储器中,并其次将其预 存储在智能卡的读出软件中,并将易失性存储器中的传递值与存储在读出软件中的值比较 以确定传递数据是否与源数据相同。本发明还提供如上所述的方法,其中在复制源数据的同时复制基准值。附图简述

图1是存储在非易失性源存储器中的源单元的图解。图2是将一部分数据从图1的源单元传至易失性存储器的图解。发明详述本发明所根据的理念是在传递后以这样一种方式继续关于所传递数据完整性的 计算,即在由基于传递数据的完整性计算给出的值与关联于源数据的完整值不对应的情况 下判断出传递中已发生修改。该方法应用于从一个单元传递一些或全部数据,所述单元具有存储在源存储器中 的完整值。例如,完整值是所考虑的单元数据的校验和,所述单元基本是一个文件。该完整值 可以是包括跨奇偶校验的纵向冗余校验(LRC)型的,或者是散列型的。该完整值有利地为循环冗余校验(CRC)值,即,专门设计成检测数据传输中的错 误的完整性测试。它可由对应于基于16个二进制标志的循环冗余校验的CRC16值构成。在下面的例子中,该方法包括三个步骤,用于从出现在图1中用附图标记 ELEMENT_X_NV_MEM示意表示的非易失性存储器中的源单元传递数据,并检验传递中的数据 与源数据相同。整个单元ELEMENT_X_NV_MEM的完整值PI_ELT_X是之前被存储在非易失性存储器 中的,这是当该单元一开始被写入非易失性存储器NV_MEM时完成的。如图2所示,一开始从非易失性存储器NV-MEM将源单元ELEMENT_X_NV_MEM中的 一些或全部数据复制至易失性存储器VM_MEM。将写入目的地存储器(即易失性存储器)的 数据表示为 C0PY_ELT_X_V_MEM。有利地,通过将每个复制字节与源单元ELEMENT_X_NV_MEM中的每个相应字节比 较而验证该数据C0PY_ELT_X_V_MEM的正确复制,因此构成了读出和验证操作。当已传递一部分数据时可进行验证,以在将全部数据写入易失性存储器前停止传 递。在最后阶段中,验证传递数据的完整性。如果已将源单元ELEMENT_X_NV_MEM中的
4全部数据写入易失性存储器中,则该验证包括计算写入易失性存储器中的数据的完整性, 并将由所述计算给出的完整值与写入非易失性存储器NV_MEM中的完整值PI_ELT_X比较。如果所传递数据C0PY_ELT_X_V_MEM仅对应于构成单元ELEMENT_X_NV_MEM的一些 数据,那么对重构单元计算完整性。该单元重构的基础是传递的数据C0PY_ELT_X_V_MEM 附加有不是从单元C0PY_ELT_X_V_MEM传递的数据,即图2中的阴影部分。该重构单元对应于存储单元ELEMENT_X_NV_MEM,但包括与写入非易失性存储器 NV_MEM中的非传递数据相关联的、写入易失性存储器V_MEM中的传递数据C0PY_ELT_X_V_ MEM。当数据传递正常发生时,写入非易失性存储器NV_MEM中的源数据与写入易失性 存储器V_MEM中的传递数据相同。结果,在正常情形下,S卩,当不修改地传递数据时,重构单元的完整性与写入非易 失性存储器的存储器单元ELEMENT_X_NV_MEM的完整性PI_ELT_X相同。相反,当在传递过程中已修改数据时,S卩,在复制数据时针对重构单元计算出的完 整性给出不同于PI_ELT_X的值,由此能够检测该异常或修改。如前所述,读出和检查步骤是可选的,只要不是有效地抵消在复制期间和在读出 和验证操作期间相等地施加于传递总线的干扰。然而,该步骤使之有可能尽早地检测出数 据总线可能受到的任何短暂干扰,以在异常情况下尽可能早地停止该过程。本发明的方法因此能检测施加于数据总线的干扰由于它包括通过完整性检查的 验证,对该验证传递的数据——即,值PI_ELT_X与复制用的传递数据不同。因此包括在复 制期间和在验证期间将相同干扰施加于总线的攻击是完全无效的。该方法还关联于在将源数据从非易失性存储器NV_MEM复制至易失性存储器V_ MEM过程中执行的“假读出”操作。在这类情形下,提供被写成VR_NV_MEM的预定的基准值, 它在卡的整个使用寿命内预存储在非易失性存储器中,并且纳入到卡读出器程序的代码 中。例如,该值对应于一个数据字节。在作出复制前,对于假读出随机地确定写成i的评级。然后开始复制操作,这开始于源数据ELEMENT_X_NV_MEM的最初字节,这些字节一 个接一个地传递至易失性存储器。然而,所要传递的第i个字节是“假读出”字节,即,该字节对应于基准值VR_NV_ MEM。一旦已传递该字节,如常继续复制,连续传递来自源数据ELEMENT_X_NV_MEM的第i个 字节,然后是接下来的字节。一旦已将假读出字节写入易失性存储器VR_V_MEM,就将其与结合在卡的读出程序 中的值进行比较,该值必定与VR_NV_MEM相同。这有可能检测在传递中可能发生的某些干 扰。这种附加机构允许比由完整性检查更快地检测某些类型的干扰。实际上,通过这 种机构,可在将数据复制入易失性存储器结束前检测出干扰,由于能立即停止传递,即在完 成对易失性存储器的数据复制前,因此这更为可靠。还应该在前述例子中看到,可选的读出和比较步骤发生在检查传递数据完整性的 步骤前。然而也可在检查完整性的步骤之后实现该可选步骤,只要在某些情形下,可能检测 到完整性值未检测出的错误。
5
由于能有效地应付通过干扰数据总线的攻击,并且就执行时间来说是不费时间 的,因此本发明提供多种优势。最后,不需要将附加数据存储在智能卡的存储器中。
权利要求
一种将存储在智能卡的源存储器(NV_MEM)中的源数据与从所述源存储器(NV_MEM)复制入所述智能卡的“目的地”存储器(V_MEM)的传递数据(COPY_ELT_X_V_MEM)进行比较的方法,其中从所述源存储器NV_MEM)读出与诸如文件之类的含源数据的源单元(ELEMENT_X_NV_MEM)关联的完整性值(PI_ELT_X),其中对与所述源单元(ELEMENT_X_NV_MEM)对应的重构单元计算完整性值,所述单元从所述传递数据(COPY_ELT_X_V_MEM)以及如果合适的话再加上所述源单元(ELEMENT_X_NV_MEM)中除所述传递数据以外的任何数据来重构,并当完整性计算给出与所述源单元的完整性值(PI_ELT_X)相同的值时,确定所述传递数据(COPY_ELT_X_V_MEM)与所述源数据相同。
2.如权利要求1所述的方法,其特征在于,所述含源数据的单元的完整性值(PI_ELT_ X)和对重构单元计算的完整性值是所述数据的循环冗余校验值。
3.如权利要求1或2所述的方法,其特征在于,将不同于传递用数据的参考值(VR_NV_ MEM)从非易失性存储器(NV_MEM)复制至易失性存储器(V_MEM),所述参考值首先被预存储 在所述非易失性存储器(NV_MEM)中,并其次被预存储在所述智能卡的读出软件中,并且将 所述易失性存储器(V_MEM)中的所述传递值(VR_V_MEM)与存储在所述读出软件中的值比 较以确定所述传递数据(C0PY_ELT_X_V_MEM)是否与源数据相同。
4.如权利要求3所述的方法,其特征在于,所述参考值(VR_NV_MEM)是在复制源数据时 复制的。
全文摘要
本发明涉及安全传递数据的方法,在该方法中,将存储在源存储器(NV_MEM)中的源数据与从源存储器(NV_MEM)复制入“目的地”存储器(V_MEM)的传递数据(COPY_ELT_X_V_MEM)进行比较。该方法包括从源存储器(NV_MEM)读出关联于,例如,含源数据的文件的单元(ELEMENT_X_NV_MEM)的完整值(PI_ELT_X),计算由传递数据(COPY_ELT_X_V_MEM)形成的重构单元的完整性,在合适的情况下,用不同于传递数据的源单元(ELEMENT_X_NV_MEM)的数据,当完整性计算给出与源单元的完整值(PI_ELT_X)相同的值时,确定传递的数据(COPY_ELT_X_V_MEM)等于源数据。本发明用来在智能卡的器件之间传递数据。
文档编号G06F21/55GK101911088SQ200980102067
公开日2010年12月8日 申请日期2009年1月8日 优先权日2008年1月11日
发明者C·佩潘, D·德克鲁瓦, G·鲁迪耶 申请人:萨基姆安全公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1