具体实施方式
如从以上描述所了解到的,并且根据下面对特定实施例的更具体描述,本发明有利地致力于解决在当前电路卡上存在的限制,例如那些与简单地基于PIN代码来提供数据保护机制有关的限制。如上所述,它们主要与应用(例如GSM/USIM)及其相关的数据(例如IMSI或PLMN列表等等)有关,并且其中不是与任意这样的应用直接链接的数据(例如,用户私人文件、照片、视频、个人消息)落在相同的安全性区段内。
本发明限定了一种数据保护机制,如果需要,该机制可被与已有的PIN保护一起使用,以便为存储在电路卡上的所有类型的数据提供更高的安全性级别。
而且,在电路卡内的数据存储当前是基于初级文件(ElementaryFile),这些初级文件不适应于大量数据的存储。而且,这些文件通常不能用于存储某些类型的数据,例如视频和音乐文件。因此,作为本发明的一部分,建议了一种新的数据存储布置,并且发现这种新布置特别有利于与提高的电路卡安全性相关联的使用。
首先参考图1,提供了可以有利地体现本发明的一个电路卡示例的示意图。
电路卡包括UICC 10,其包括介于存储区域14和ME接口16之间的处理功能12。
如下面将描述的,接口16可以有利地基于USP 2.0/USP Inter-Chip,其简化和加速例如UICC 10与图2的蜂窝电话手机18可以通过简单的电适配器被连接到的PC之间的数据交换。
关于图2,提供了一种移动无线电通信设备的示意图,该移动无线电通信设备可以包括任意形式的移动设备(ME)(例如蜂窝电话手机18),并且其中提供了图1的UICC 10以及相关联的标准存储器22、处理器20和发送/接收功能24,如图所示的。
如上所述,并且下面将进一步论述,在蜂窝电话手机18能够提供的各种存储选项之中,UICC 10可以基于域安全性元件和密码安全性元件的组合来提供非常安全的、容易访问的、并且适当大的存储位置。
与本发明的当前描述和定义有关,应该意识到,“密码”独立地保护对文件/目录/分区的访问,一旦密码被检查就将允许对这些文件/目录/分区的操作。相反,域定义(domain define)服务于一特定实体可以对文件/目录/分区执行的不同的操作。
因此,在一个特定示例中,每个数据元素(例如文件、目录或甚至分区)可以与一个域相关联,并且可能受密码保护(在相关联的域需要密码的情况下)。可以提供各种域,这些域具有对它们各自的允许操作的定义,并且一般以标准化方式提供,以允许互操作性。
作为示例,可能的域可以如下:
“私人”:其中只有所有者(创建该文件/目录/分区的实体)可以具有访问权限。一旦密码被成功验证就授予所有权限。
“受限读写”:其中读写访问权限被授予任意成功通过密码检查的实体。
“受限读”:其中读访问权限被授予任意成功通过密码检查的实体。
“只读”:其无需密码而可以被任意实体读取。
“公开”:其中无需密码读写访问权限被授予任意实体。
任意实体,例如特定用户和/或能够访问UICC中的数据的其他设备/装备,被与一称之为“entity_id”的唯一标识符相关联。该标识符优选地由UICC基于来自ME的请求而分配,并且“请求/结果”结构可以如下:
从ME到UICC:Generate_Entity_Id_Req(entity_name)
从UICC到ME:Generate_Entity_Id_Res(result,entity_name,entity_id)
“entity_name”是能够访问UICC中的数据的实体的公开可获得的名称。
该特定图示示例建议:至少如下具有它们各自的entity_name的公开实体被定义:
-用户(USER)
-ME(ME)
-远程服务器(REMOTE_SERVER)
-ME内的第三方应用(ME_THIRD_PARTY)
当然应该意识到,该列表不是穷尽的,因此可以包括其他实体。
“entity_id”是由UICC分配的针对给定“entity_name”的私人标识符。
“entity_name,entity_id”对将被保存在ME的存储器中,并且ME将确保这些对的机密性。
有利的是,ME负责准确地识别发出请求的实体(希望访问UICC中的数据的实体),例如,如果请求来自ME应用,则ME将在该文档中所定义的接口功能中使用与ME相关联的entity_id。
ME识别不同请求实体的简单方式可以通过使用由ME操作***分配的它们各自的线程或进程标识符。
UICC可以依赖于如下事实:由ME通过的“entity_id”是准确的,因为某些操作直接依赖于该entity_id。因此,从ME向UICC提供这样的准确的“entity_id”用于提高在本建议中所限定的安全性机制。
当文件/目录/分区被创建时,UICC可以针对所创建的元素关联“所有者”的概念。出于这个目的,UICC简单地采用在创建请求功能中所通过的“entity_id”并将其存储为所创建的元素的所有者entity_id。
该所有权的概念可以证明很重要,因为很多操作都仅仅允许文件/目录/分区的所有者(例如,在上述“私人”域中所定义的元素只允许其所有者访问)。
各种安全性接口功能可以被采用。首先,可采用设置密码功能,其中实体可以仅针对其自身的文件/目录/分区使用该功能。如果UICC在接收到请求时意识到所接收的entity_id与所有者entity_id不匹配,则丢弃该请求,并且“请求/结果”结构可以如下:
从ME到UICC:Set_Password_Req(entity_id,pathname,password)
从UICC到ME:Set_Password_Res(result,entity_id,pathname)
entity_id被提供,以使得有利地只有文件/目录/分区的所有者被允许执行请求。路径名(pathname)包含包括文件/目录/分区的名称的路径,并且密码(password)包括为该文件/目录/分区设置的密码。最终结果将是成功或失败。
改变密码功能可以被实体使用,但是仅针对其自身的文件/目录/分区。
如果UICC在接收到请求时意识到所接收的entity_id与所有者entity_id不匹配,则丢弃该请求,并且“请求/结果”结构可以如下:
从ME到UICC:Change_Password_Req(entity_id,pathname,old_password,new_password)
从UICC到ME:Change_Password_Res(result,entity_id,pathname)
除了与上述类似的参数,还采用old_password和new_password,old_password包含文件/目录/分区的当前密码,new_password包含将被设置给文件/目录/分区的新密码。
用于核实密码功能的请求/结果结构可以如下:
从ME到UICC:Verify_Password_Req(entity_id,pathname,password)
从UICC到ME:Verify_Password_Res(result,entity_id,pathname)
在一种布置中,每个实体对一个给定的受保护元素(文件或目录或分区)的密码核实的“尝试”次数可以被限制为三次。在三次失败的尝试之后,该元素不能再被作出这些尝试的实体所访问,直到针对该元素的访问条件改变为止(例如,该元素的所有者改变或删除密码)。
可以如下布置:一实体可以仅对其自身的文件/目录/分区使用“设置域”功能。如果UICC在接收到请求时意识到所接收的entity_id与所有者entity_id不匹配,则丢弃该请求,并且“请求/结果”结构可以如下:
从ME到UICC:Set_Domain_Req(entity_id,pathname,domain)
从UICC到ME:Set_Domain_Res(result,entity_id,pathname)
还可以提供获得域功能,其具有如下“请求/结果”结构:
从ME到UICC:Get_Domain_Req(entity_id,pathname)
从UICC到ME:Get_Domain_Res(result,entity_id,pathname,domain)
此外,可以提供访问条件通知功能,其具有如下相应结构:
从UICC到ME:Access_Condition_Notification(entity_id,pathname,condition)
与上述类似的参数被采用,另外还包括condition(条件)参数,该参数包括针对由pathname所指定的元素需要核实的条件(例如,需要密码)。
一个实体标识符创建功能可以被提供,其具有如下“请求/结果”结构:
从ME到UICC:Generate_Entity_Id_Req(entity_name)
从UICC到ME:Generate_Entity_Id_Res(result,entity_name,entity_id)
对于相关参数,entity_name还是包括实体的公开名称,并且entity_id包括由UICC为每个entity_name分配的唯一标识符。
作为对本发明的该方面的一个示例的进一步图示,下面是与上述可能的域相关的本发明的实现方式的示例。
首先,用户拍摄一照片并将图像文件存储在“/partition1/directory1/image1.jpg”中。Partition1域被定义为“受限读写”。“directory1”和“image1.jpg”不受密码保护。
用户或任意其他实体希望访问“image1.jpg”文件,并且唯一条件是它们需要知道“partition1”的密码。
作为第二示例,用户拍摄一照片,并将图像文件存储在“/partition1/directory1/image1.jpg”中。“partition1”和“directory1”域被定义为“公开”(因此没有密码)。“image1.jpg”受密码保护(域“受限读”)。
用户或任意其他实体希望读取“image1.jpg”文件,并且唯一条件是它们需要知道“image1.jpg”的密码。
在第三示例中,用户拍摄一照片并将图像文件存储在“/partition1/directory1/image1.jpg”中。“partition1”域被定义为“私人”。“directory1”和“image1.jpg”不受密码保护。
用户或任意其他实体希望访问“image1.jpg”文件。但是,只有用户在成功的密码核实之后才能够访问该文件。任意其他实体即使具有正确的密码也不能访问该文件(因为它的entity_id与所有者的entity_id不匹配)。
对于第四示例,用户拍摄一照片并将图像文件存储在“/partition1/directory1/image1.jpg”中。“partition1”、“directory1”和“image1.jpg”域被定义为“只读”。
对于该示例的第一操作,用户或任意其他实体希望读取“image1.jpg”文件,并且文件数据可直接访问,因为不需要密码来读取文件。
但是,对于第二操作,用户或任意其他实体希望更新“image1.jpg”文件,但是只有所有者(用户)将能够在成功的密码核实之后访问该文件。
将会意识到的,本发明可以容易地考虑到如下事实:未来的UICC-ME大数据操作将主要通过USB接口实现。因此,图示示例针对基于USB的ME-UICC接口上的实现方式并且支持EEM(以太网仿真模式)接口类。但是,该解决方案的原理也可在其他USB接口类上应用,例如智能卡CCID(集成电路卡接口设备)。
鉴于此,应该意识到,USB分组具有如下格式:其中EEM分组包含USB分组的有效载荷。EEM分组本身具有被定义为EEM Data(EEM数据)或EEM Command(EEM命令)格式的格式。
EEM Command分组被用于本地USB链路管理,因此不能超出USB设备驱动器层。因此,该图示示例所定义的所有接口功能都将被封装在EEM Data类分组的有效载荷部分中。
如上所述,本发明还包括用来允许改进的数据存储的特征,以便增强对大尺寸/多媒体数据的支持,对于大尺寸/多媒体数据,当前基于初级文件的文件***具有某些限制。本发明的这方面建议用标准文件格式文件***替代大多数已有的初级文件文件***。
为此,特定的ME-UICC接口功能被定义,以便允许ME创建和管理UICC中的文件/目录/分区。
这种ME-UICC功能的示例如下所述。
用来创建文件/目录/分区的Creation(创建)功能可以与如下“请求/结果”结构相关联。
从ME到UICC:Create_Element_Req(entity_id,element_type,pathname,element_parameters)
从UICC到ME:Create_Element_Res(result,entity_id,pathname,additional_info)
这里所采用的参数可以被定义如下。
-entity_id:指示发送创建请求的实体
-element_type:分区或目录或文件
-pathname:包含将被创建的元素的“路径+名称”,例如,
“/partition/global_directory/directory1/image1.jpg”
-element_parameters:特定于给定元素类型的参数(例如,在分区情况下的大小,在文件情况下的文件类型,等等)
-result:包含请求执行结果(成功、失败、带修改的成功…)
-additional_info:当UICC发送比简单的执行结果更多的信息时,这些附加数据项被包括在该参数中(例如,在UICC所创建的分区的大小与所请求的大小不同的情况下)
用来读取分区或目录或文件的Read(读取)功能可以与如下“请求/结果”结构相关联。
从ME到UICC:Read_Element_Req(entity_id,pathname)
从UICC到ME:Read_Element_Res(result,entity_id,pathname,data)
这里,参数可以被定义如下:
-entity_id:指示发送读取请求的实体
-pathname:包含将被读取的元素的“路径+名称”
-result:元素读取结果(成功或失败)
-data:包含读取的元素的数据(例如,位于一读取的分区/目录下的目录和文件的列表或在文件的情况下其自身内容)
可以提供Update(更新)功能,但是仅针对文件定义,并且与如下“请求/结果”结构相关联。
从ME到UICC:Update_File_Req(entity_id,pathname,data_type,data)
从UICC到ME:Update_File_Res(result,entity_id,pathname)
这里,参数包含:
-entity_id:指示发送更新请求的实体
-pathname:包含将被更新的文件的“路径+名称”,例如
“/partition/global_directory/directory1/image1.jpg”
-data_type:指示文件中的数据的类型,例如,jpg、mpeg、txt等等
-data:文件的内容
-result:文件更新结果(成功或失败)
Rename(重命名)功能可以与如下“请求/结果”结构相关。
从ME到UICC:Rename_Element_Req(entity_id,old_pathname,new_name)
从UICC到ME:Rename_Element_Res(result,entity_id,new_pathname)
并且,参数可被定义为:
-entity_id:指示发送重命名请求的实体
-old_pathname:包含将被重命名的元素的旧“路径+名称”
-new_name:仅包含将被重命名的元素的新名称(没有路径)
-result:重命名执行结果(成功或失败)
-new_pathname:包含已经被重命名的元素的“路径+新名称”
Move(移动)功能可以被体现为:
从ME到UICC:Move_Element_Req(entity_id,old_pathname,new_pathname)
从UICC到ME:Move_Element_Res(result,entity_id,new_pathname)
并且,参数定义如下:
-entity_id:指示发送移动请求的实体
-old_pathname:包含将被移动的元素的旧“路径+名称”
-new_pathname:包含已经被被移动的元素的新“路径+名称”
-result:移动执行结果(成功或失败)
Delete(删除)功能可以同样提供,并且根据如下请求/结果结构。
从ME到UICC:Delete_Element_Req(entity_id,pathname)
从UICC到ME:Delete_Element_Res(result,entity_id,pathname)
参数定义可以如下:
-entity_id:指示发送删除请求的实体
-pathname:包含将被删除的元素的“路径+名称”
-result:删除执行结果(成功或失败)
应该注意,如果pathname包含某些受保护的父目录,则对于这些目录的访问条件必须在处理该请求之前被首先满足。
还可以提供Cleaning(清除)功能,用于在所有者已经丢失/忘记相关联的密码(并因此不能访问该分区/目录/文件中的任何数据)的情况下删除分区/目录/文件。
只有分区/目录/文件的所有者可以执行该操作。
UICC必须检查所通过的entity_id对应于所有者entity_id,并且相关的“请求/结果”结构如下。
从ME到UICC:Clean_Element_Req(entity_id,pathname)
从UICC到ME:Clean_Element_Res(result,entity_id,pathname)
参数定义如下:
-entity_id:只有所有者将能够实现该请求
-pathname:包含将被清除(即,删除)的元素的“路径+名称”
-result:清除执行结果(成功或失败)
此外,还可以提供例如与调整分区大小相关的功能,其“请求/结果”结构如下。
a)调整分区大小
从ME到UICC:Resize_Partition_Req(entity_id,name,new_size)
从UICC到ME:Resize_Partition_Res(result,entity_id,new_allocated_size)
相关的参数可以定义如下:
-entity_id:指示发送调整大小请求的实体
-name:分区的名称
-new_size:包含该分区的新的所需存储器大小
-result:调整分区大小结果(成功、失败、带修改的成功(例如,
在所分配的大小与所请求的大小不同的情况下))
-new_allocated_size:代表由UICC分配的分区的真实存储器大小
当然应该意识到,这些接口功能可以根据需要组合提供。
现在参考图3,提供了与在图1的UICC 10的存储器存储区域中创建目录所引起的信号序列相关的信令时序图。
该信号序列是发生在终端用户26、ME 28(例如蜂窝电话手机)和UICC 30(例如图1的UICC 10)之间的信号序列。
图3所示序列开始于来自用户26的要在现有的分区/目录中创建目录的请求32,因此,适当的请求操作34被发送到ME 28,并且可以包含密码名称、域和密码。
如果要求域是“公开的”,用户26则不为目录设置密码,因此“password”参数将为空字串。
ME 28随后向UICC 30传递Create_Element_Request 36,其包括entity_id、element_type、pathname和element_parameters。
在本示例中应该注意,为了创建目录,“element_type”被设置为“目录”,并且“element_parameters”具有空值。
随后通过的信令包括密码核实序列38,其与父目录相关,但是如果父目录不受密码保护则不需要该序列。但是,如果存在若干受保护的目录级别,则必须随后核实每个目录的密码。
密码核实序列38开始于access_condition_notification信号40,其包括parent_directory_path并且还确认需要密码的条件。
表示需要密码的通知42被从ME 28传递到ME用户26,ME用户26进而向ME 28提供回密码44,ME 28进而向UICC 30传递verify_password_request信号46。UICC 30进而向ME 28提供verify_password_result信号48,并且随后在UICC 30和ME 28之间发生信令交换,该信令交换包括create_element_result信号50、set_domain_request信号52、set_domain_result信号54、set_password_request信号56和set_password_result信号58,但是应该意识到,这样的设置密码功能如果密码值为空则不会发生。
该序列以从ME 28传递到用户26的创建目录结果信号60结束。
作为比较,参考图4示出本发明的本实施例的特性的更多细节,图4图示出与文件的创建相关的信号序列。
再次地,与用户26、ME 28和UICC 30相关的信令被示出。
在本示例中,假设终端用户使用ME的照相机功能拍摄一照片,并决定将照片保存在现有的分区/目录中。在62,作出将照片保存在现有的分区/目录中的决定,因此用户26向移动设备28提供创建文件请求64,并且创建文件请求64包括与相关数据有关的路径名、域、密码和数据类型。
随后,create_element_request 66被从ME 28传递到UICC 30,并且为了创建文件,element_type被设置为“文件”,element_parameters包含诸如JPG或MP3之类的文件类型和数据,即文件本身的内容。
如果在68发现在到达要创建文件的位置之前存在受密码保护的目录,则每个目录的密码都应该被核实,并且可以将诸如图3所示序列之类的核实序列38与图4的序列一起采用。
就是说,create_element_result 70被从UICC 30传递到ME 28,并且作为回复,set_domain_request信号72被传递到UICC 30,UICC 30进而发起set_domain_results信号74。假设密码没有被设置为“空”,则set_password_request 76被从ME 28传递到UICC 30,并且作为响应,set_password_result 78被从UICC 30传递到ME 28。在完成ME 28和UICC 30之间的信令交换70-78之后,创建文件结果指示80被ME 28提供到终端用户26。
最后参考图5和6,这里作为比较提供了在采用正确密码的实例(图5)中以及在访问条件没有得到满足的实例(图6)中与尝试读取受保护文件相关的信令图。
因此,首先参考图5,适当的实体26在82通过向ME 28提供读取文件84来提供该实体希望读取在“受限读”域中定义的文件的指示。在读取文件指示84中的路径名包括到将被读取的文件的特定路径,例如“/partition I/directory I/picture 1.jpg”。
read_element_request 86随后被从ME 28发送到UICC 30。
如图5所示,密码核实序列88被应用到文件本身以及在前的目录,其可以受密码保护,在此情况下,提供例如如图5所示的包含信令和指示90-98的密码核实序列。
最初,access_condition_notification信号90被从UICC 30传递到ME28,然后,需要密码指示92被从ME 28提供到实体26,实体26返回核实密码尝试94,该核实密码尝试94进而发起从ME 28到UICC 30的verify_password_request 96。
verify_password_result 98然后被从UICC 30返回到ME 28,以便完成密码核实序列88。
在已经核实密码的情况下,包括所需数据的读取元素结果100被从UICC 30传递到ME 28,以使得包括所需数据的读取文件结果可以被进而传递(102)到请求实体26。
现在参考图6,所示序列与如下过程相关:在104,一实体尝试读取由另一不同实体定义在“私人”域中的文件,并且读取文件指示106被提供到ME 28。
read_element_request 108随后被从ME 28传递到UICC 30,其中,应该意识到,entity_id不同于文件所有者的entity_id。
UICC 30意识到该文件的域包含“私人”域并因此只有文件的所有者可以访问它。由于接收到的entity_id与所有者的entity_id不匹配,因此在从UICC 30传递到ME 28的read_element_result 110中读取请求被拒绝。
读取文件结果指示112随后被从ME 28提供到请求实体26,并且结果指示读取失败,从而其中的数据参数为空。
当然应该意识到,本发明并不局限于上述实施例的细节。
虽然没有明确描述用于运行在USB智能卡ICCD接口类上的应用的实现方式(其将涉及创建支持与该文档中所描述的相同特征的新APDU命令),但是如上所述的相同原理可以被应用到这样的ICCD类。
而且,对于涉及支持USB大容量存储接口类的UICC的情形,如果由实体(例如ME)在这样的UICC中保存的数据元素可无需密码核实被访问,即,数据元素本身不需要密码,其父数据元素也不需要密码,那么该数据元素在被配置为并且表现为类似USB大容量存储设备的UICC被连接到诸如PC的设备时应该也可以被访问。
受密码保护的数据元素必须在UICC被配置为USB大容量存储设备并被连接到不支持密码核实过程的设备时保持无法被访问。
因此,更详细地,对于被体现为被配置为USB大容量存储设备并被连接到诸如PC之类的远程设备的UICC,该UICC可以表现为简单的USB记忆棒的形式。然后,在UICC上由ME或任意其他设备已经保存的无需密码的(即,在上述“公开”域中的)数据元素应该保持可在PC上访问。
但是,对于受密码保护的数据元素,它们在表现为记忆棒的形式的UICC被连接到PC时保持无法被访问。
例如,用户使用ME的照相机拍摄照片并将其无密码地保存在UICC中。当用户随后将UICC通过电适配器***PC时,UICC将表现得像USB记忆棒,并且照片将可以在PC上被访问。但是,如果用户保存照片时设置了密码,该照片在UICC被***PC时则将不可见。
<通过引用并入>
本申请基于2009年1月16日递交的英国专利申请No.0900664.4并要求其优先权权益,该在先申请的公开内容通过引用被整体上结合于此。
标号列表
10UICC
12处理功能
14存储区域
16接口
20处理器
22标准存储器
24发送/接收功能
26用户
28ME
30UICC
32请求
34适当的请求操作
36Create_Element_Request(创建元素请求)
38密码核实序列
40access_condition_notification(访问条件通知)信号
46verify_password_request(核实密码请求)信号
48verify_password_result(核实密码结果)信号
50create_element_result(创建元素结果)信号
52set_domain_request(设置域请求)信号
54set_domain_result(设置域结果)信号
56set_password_request(设置密码请求)信号
60create_directory_result(创建目录结果)信号
64create_file_request(创建文件请求)
66create_element_request(创建元素请求)
70create_element_result(创建元素结果)
72set_domain_request(设置域请求)信号
74set_domain_result(设置域结果)信号
76set_password_request(设置密码请求)
78set_password_result(设置密码结果)
80文件结果指示
82指示
84读取文件指示
86read_element_request(读取元素请求)
90access_condition_notification(访问条件通知)信号
92需要密码指示
94核实密码尝试
96verify_password_request(核实密码请求)
98verify_password_result(核实密码结果)
100读取元素结果
102传递
106读取文件指示
108read_element_request(读取元素请求)
110read_element_result(读取元素结果)
112读取文件结果指示