验证装置、便携终端和验证方法

文档序号:6557802阅读:143来源:国知局
专利名称:验证装置、便携终端和验证方法
技术领域
本发明涉及一种可访问便携终端具备的IC卡的程序的验证技术。
背景技术
近年来,作为实现普适计算(Ubiquitous Computing)的手段之一,正推进TRON(The Real-time Operating system Nucleus,实时操作系统核心)的开发。提出了如下技术,即在内置了e-TRON卡等IC(IntegratedCircuit,集成电路)卡的便携终端中,当在终端间传递电子票据等电子权利价值(下面记作“电子价值”。)时,在双方的IC卡之间直接进行电子价值的收发。作为将这种技术应用于不完善的电子价值收费中的系统实例,在日本特开2003-337887号公报中公开了确保高安全性与简易性的电子价值收费系统。
为了实现这种系统,提出了如下方式,即内置于便携终端中的IC卡、与同样存储在便携终端中的程序(以下记作“终端程序”。)通过相互进行消息的收发,而协同地动作。在这种方式中,终端程序通过向设置在便携终端上的库提供预定形式的消息,从而向IC卡或其它终端程序发送消息。所谓预定形式的消息例如是发送源ID(src)、发送目的地ID(dst)、消息的类别(mtype)、消息的内容(param)。
上述方式未提及IC卡验证终端程序的手段,即消除不正当用户经由终端程序来利用IC卡的担心的手段。但是,对于这种担心,如果终端程序是单一的,则与ISO7816-4的外部验证(EXTERNAL AUTHENTICATION)指令等一样,通过与现有的外部验证方式组合来解决。即,在IC卡中预先保存正规终端程序所保存的秘密信息,通过使用例如哈希函数的验证,来限制可利用该IC卡的终端程序(或其用户)。
上述验证方法对单一的终端程序是有效的,但在便携终端上执行多个程序的环境下,未必安全。即,若多个终端程序中的任一个验证成功、而该验证成功的程序存在于便携终端内,则即使除此之外的终端程序未验证成功,也存在被全部程序利用IC卡的功能的可能性。

发明内容
因此,本发明的课题在于,在与终端程序之间进行消息发送的IC卡中,通过针对每个终端程序单独管理是否验证成功,提高IC卡的安全性。
本发明的验证装置具备随机数生成单元,当接收到具有第1类别的消息时,其生成随机数,并将包含于该消息中的发送源与该随机数对应起来存储;发送源验证单元,当从所述发送源接收到具有第2类别的消息时,在存储有与该发送源对应的所述随机数的情况下,判定根据本验证装置所保存的验证密钥与所述随机数而算出的值、和包含于所述具有第2类别的消息中的值(例如包含于消息内容中的值)是否一致;和处理执行单元,在通过所述发送源验证单元判定为所述算出的值、和包含于所述消息中的值一致的情况下,当从所述发送源接收到具有第3类别的消息时,其执行与该消息的类别对应的处理。
本发明的验证方法包含如下步骤在接收到具有第1类别的消息时,生成随机数,并将包含于该消息中的发送源与该随机数对应起来存储;当从所述发送源接收到具有第2类别的消息时,在存储有与该发送源对应的所述随机数的情况下,判定根据本验证装置保存的验证密钥与所述随机数而算出的值、和包含于所述具有第2类别的消息中的值是否一致;和在判定为所述算出的值、和包含于所述消息中的值一致的情况下,当从所述发送源接收到具有第3类别的消息时,执行与该消息的类别对应的处理。
根据这些发明,验证装置对每个消息发送源单独生成随机数,并根据使用该随机数与验证密钥而算出的值,执行发送源的验证。由此,实现消息的发送源识别符单位的验证,进而实现发送源单位的单独验证。因此,即便在验证装置上可执行多个程序的环境下,也可避免象以往那样,随着一个程序的验证成功、其它不正当程序也被肯定验证的担心。结果,提高验证装置的安全性等级。
这里,验证装置例如是IC卡。所谓发送源例如是终端程序,但也可以是在便携终端的外部。另外,发送源也可以是IC卡。
在上述验证装置是IC卡、上述发送源是终端程序的情况下,同一便携终端可具备可相互进行消息的通信的IC卡与终端程序。当便携终端具备多个终端程序时,该便携终端可采用如下结构。即,便携终端具备IC卡作为上述验证装置,还具备对该IC卡发送具有所述第1至第3类别的消息的多个终端程序,所述IC卡根据所述消息,对每个终端程序单独进行随机数的生成、发送源的验证、处理的执行。利用具有这种结构的便携终端,在便携终端内,IC卡可针对每个终端程序单独管理验证是否成功,所以可实现排除了不正当程序对IC卡的利用的安全性的提高。
优选本发明的验证装置还具备存储单元,其以赋予顺序的方式存储预定数量的验证成功的消息发送源的识别符;和存储控制单元,其在通过所述发送源验证单元判定为所述算出的值、和包含于所述消息中的值一致时,使所述发送源的识别符存储在所述存储单元的开头,在接收到具有所述第3类别的消息时,在所述消息的发送源的识别符已存储在所述存储单元中的情况下,所述存储控制单元将该识别符移动到所述存储单元的开头。
根据本发明,发送消息的时刻越晚的发送源的识别符,被存储在存储单元的越开头部分。由此,将消息发送频度高的发送源的识别符优先保存在验证装置中,可有效管理识别符。
另外,所述存储控制单元也可在存储后的识别符数量超过所述预定数量的情况下,删除所述存储单元最末尾的识别符。由此,可将存储单元中保存的识别符数量保持为恒定。结果,在抑制存储区域的数据容量的同时,实现识别符的有效管理。在可存储容量有限制的IC卡中,这种数据量的抑制特别有效。
并且,所述存储控制单元也可在存储后的识别符数量超过所述预定数量的情况下,暂时中断处理,输出用于通知该情况的消息。之后,若根据来自用户的指示,删除或保存识别符,则用户可简单迅速地把握识别符数量超过上限值的情况,同时,可容易地判断是否删除,尤其适合于容易地判断删除的对象。


图1是表示本发明的便携终端的功能结构图。
图2是用于说明便携终端执行的程序验证处理的第1阶段、和第2阶段的前半部分的图。
图3是用于说明便携终端执行的程序验证处理的第2阶段的后半部分的图。
图4是用于说明便携终端执行的程序验证处理的第3阶段的图。
具体实施例方式
下面,参照为了例示而附加的附图来说明本发明的一个实施方式。
本实施方式的便携终端1如图1所示,至少具备IC卡2(对应于验证装置)和程序存储部3。便携终端1例如是便携电话或PDA(PersonalDigital Assistance,个人数字助手),但只要是具有通信功能的终端装置,则不限定其功能或用途。
IC卡2具备消息收发部21、随机数生成部22(对应于随机数生成单元)、随机数存储部23、发送源验证部24(对应于发送源验证单元)、存储控制部25(对应于存储控制单元)、已验证发送源存储部26(对应于存储单元)、处理执行部27(对应于处理执行单元)。这些各构成要素经由未图示的总线而连接成可相互输入输出信号。从确保对外部程序或装置的高隐匿性与抗性的观点来看,期望IC卡2具有抗篡改性。对IC卡2分配识别符i。
消息收发部21与终端程序31~33之间经由总线进行各种消息的收发。消息的细节将在后面动作说明中叙述,但本实施方式中,包含附图在内,接收或发送的消息均以<发送源ID、发送目的地ID、消息类别、消息内容>的形式来表述。另外,消息类别中的“Rn(n为自然数)”表示IC卡2中的处理正常完成。相反,“En(n为自然数)”表示IC卡2中的处理异常结束。
随机数生成部22以具有类别“1”的消息的接收为契机,生成随机数n。
随机数存储部23可参照地保存由随机数生成部22生成的随机数n、和与之对应的发送源ID的组。随机数存储部23的初始状态为表示空状态的“null”。
发送源验证部24保存验证密钥k。作为验证密钥k,例如可使用称为PIN(Personal Identity Number,个人识别码)码的用户识别用密码。发送源验证部24在确认了与消息发送源对应的随机数n的存储后的情况下,以具有类别“2”的消息的接收为契机,进行发送源的验证。在发送源的验证中,例如可使用SHA-1(SecureHash Algorithm 1,安全哈希算法1)或MD5(Message Digest 5,消息摘要5)这样的安全的哈希函数。发送源验证部24将上述验证密钥k与上述确认了存储的随机数n代入预定的哈希函数H中,生成哈希值,将该值与上述消息的内容(例如“m”)相对照。在对照的结果是双方的值一致的情况下,设验证成功。将成功的验证结果通知给存储控制部25。将失败的验证结果通知给发送源。
存储控制部25执行已验证发送源存储部26中的已验证发送源ID的追加与删除、或存储顺序的变更。另外,在处理执行部27执行处理之前,判定已验证发送源存储部26的有序列表中有无发送源ID。
已验证发送源存储部26可更新地保存对验证成功的发送源ID赋予了顺序的列表。在本实施方式中,将可存储在列表中的识别符数量的最大值设为3,将初始状态设为从开头ID起降序地为(a2、a3、a4)。另外,“a4”是除终端程序31~33以外的终端程序的识别符。
处理执行部27以具有类别“3”的消息的接收为契机,执行作为该消息的内容而保存的“data”的处理。
在程序存储部3中,存储有终端程序31~33。终端程序31、32、33均为用于处理包含于消息中的预定数据的应用程序,分别具有“a1、a2、a3”的识别符。
下面,参照图2~图4,说明本实施方式的便携终端1的动作、一起说明构成本发明的验证方法的各步骤。
作为说明的前提,便携终端1正在启动终端程序31、32、33。
当便携终端1的用户指示利用IC卡2时(图2的S1),首先从程序31向IC卡2发送消息<a1,i,“1”,null>(S2)。“null”如上所述,表示消息内容为空数据。另外,所谓利用IC卡2例如是在IC卡2的库中登录新的个人信息(电话号码等)的处理、或检索已有的个人信息进行更新的处理等。
当IC卡2接收到上述消息时,确认发送目的地ID是IC卡2的识别符i,消息类别为“1”(S3)。此时,若消息类别为“1”以外的类别,则中断处理。
之后,IC卡2通过随机数生成部22生成随机数n,将该随机数n与作为发送源ID的“a1”对应起来,存储在随机数存储部23中(S4)。由于随机数存储部23的初始值为“null”,所以该存储处理的结果为随机数存储部23被更新为组(a1,n)。更新后,由消息收发部21将消息<i,a1,“R1”,n>返回给终端程序31(S5)。
接收到上述消息的终端程序31根据其类别“R1”,督促用户输入验证密钥,并将该输入结果得到的验证密钥设为k’(S6)。终端程序31在使用预定的哈希函数H算出m=H(k’|n)后(S7),将发送目的地设为IC卡2,发送将该值作为内容的消息<a1,i,“2”,m>(S8)。
当IC卡2接收到上述消息时,与S3一样,确认发送目的地ID是IC卡2的识别符i并确认消息类别(S9)。因为消息类别是“2”,所以IC卡2在S10执行基于该该消息类别的处理。即,IC卡2判定包含于S9中接收到的上述消息中的发送源ID“a1”是否已存储在随机数存储部23中,即终端程序31是否是过去发送过消息的程序(S10)。由发送源验证部24执行该判定。
前进到图3,在已存储有“a1”的情况下(S10;是),移动到后述S12及S12之后的处理。在未存储的情况下,即检索失败的情况下(S10;否),IC卡2向终端程序31返回表示该情况的错误消息(S11)。该消息利用<i,a1,“E1”,err>来表述,根据包含错误类别“E1”与错误原因的“err”,可识别出发送源a1未注册。
在S12中,IC卡2接受发送源a1已登录的情况,利用发送源验证部24从随机数存储部23取得与发送源a1对应的随机数n。接着,按如下步骤进行发送源a1的验证。首先,发送源验证部24将自己保存的验证密钥k、和S12中取得的发送源a1的随机数n代入预定的哈希函数H中。接着,将作为计算结果的哈希值与S8中接收到的消息的内容即“m”相对照,根据其一致/不一致,确定发送源a1的验证是否成功(S13)。若一致,则验证成功,若不一致,则验证不成功。
若S6中输入的验证密钥k’是正规的,则在作为发送源的终端程序31中,使用S5中取得的随机数n理应能生成相同的哈希值。因此,只要在上述计算结果一致的情况下,就可判断为发送源a1、即终端程序31是正规的程序。
另一方面,在验证失败的情况下(S13;否),与S11一样,将表示该情况的错误消息<i,a1,“E2”,err>从IC卡2发送给终端程序31(S14)。该情况下,终端程序31根据错误类别“E2”和其内容“err”,检测出验证失败,结束程序验证处理。
在S13中验证成功的情况下(S13;是),存储控制部25在已验证发送源存储部26的列表的开头,追加作为已验证的(验证成功的)发送源的识别符的“a1”(S15)。已验证发送源存储部26的初始状态如上所述,为(a2、a3、a4),但可存储的识别符的最大值为3。因此,随着“a1”的追加,从已验证发送源存储部26中删除存储在最末尾的“a4”,上述列表被更新成(a1、a2、a3)。在更新之后,与S5一样,将表示已把验证结果反映到列表中的消息<i,a1,“R2”,null>从消息收发部21发送到终端程序31(S16)。
之后,参照图4,说明IC卡2实际执行从终端程序31所指示的处理的第3阶段。
当终端程序31通过发送消息<a1,i,“3”,data>,向IC卡2指示处理“data”时(S17),IC卡2根据发送目的地ID,确认消息是发送给本卡的。同时,确认消息类别(S18)。
另外,虽然“data”是由与消息类别“3”相对应的处理所处理的任意数据,但在程序执行不伴随有数据处理的情况下,也可以是“null”。
在发送目的地ID不是“i”的情况下,IC卡2在抛弃该消息之后,中断处理,但若发送目的地ID是“i”,则执行与消息类别“3”对应的处理。即,S19中,IC卡2通过存储控制部25参照已验证发送源存储部26的列表,判定有无作为发送源ID的“a1”。在列表中不存在“a1”的情况下(S19;否),向作为消息发送源的终端程序31发送表示该情况的错误消息<i,a1,“E3”,err>(S20),结束一连串的程序验证处理。
在上述判定的结果为已验证发送源存储部26的列表中存在“a1”的情况下(S19;是),存储控制部25将该“a1”移动到该列表的开头(S21)。但是,在本实施方式中,由于在图3所示的S15的时刻已经在开头存储了“a1”,所以“a1”的位置不移动,仍在开头不变。在执行S19的处理的时刻,在已验证发送源存储部26的列表例如是(a2、a3、a1)的情况下,S21的处理结果为将列表更新为(a1、a2、a3)。
在S22中,处理执行部27还执行“data“的处理,作为与消息类别“3”对应的处理。在执行之后,IC卡2为了通知处理的执行已正常完成,由消息收发部21发送消息<i,a1,“R3”,ret>(S23)。另外,“ret”表示“data”的处理结果,有时也可能是“null”。
对于终端程序32、33,也可按与终端程序31一样的处理步骤来执行S17~S23的一连串处理(图4所示的第3阶段)(S24)。
即便在S18中确认了发送目的地ID与消息类别,对于ID未存储在已验证发送源存储部26中的发送源程序,仍视为验证未成功的终端程序,不执行所指示的处理。IC卡2由此根据发送源ID来个别地防止验证未成功的终端程序的处理的执行,并防患于未然,排除不正当程序或用户利用IC卡2。由此,维持高的安全性。
如上所述,具备IC卡2的便携终端1对每个终端程序31~33进行访问验证。即,在便携终端1的用户想通过终端程序31来利用IC卡2的信息的情况下,必须进行基于终端程序31的发送源验证处理,同样,在期望基于终端程序32、33的利用的情况下,必须进行这些终端程序的独立的验证处理。因此,确实消除了不管终端程序31~33中是否存在不正当终端程序都允许该程序的访问这种以往的担心。
另外,由作为存储单元的已验证发送源存储部26将验证成功的终端程序ID依次保存在开头,同时,伴随着该动作而删除验证时的老的终端程序的ID。因此,IC卡2可优先保存验证后使用的可能性高的已验证发送源ID,同时将所需数据容量抑制为固定量。当把发明应用于存储数据容量有限的便携终端的IC卡时,这种数据保存的效率化特别有效。
权利要求
1.一种验证装置,其特征在于,具备随机数生成单元,当接收到具有第1类别的消息时,其生成随机数,并将包含于该消息中的发送源与该随机数对应起来存储;发送源验证单元,当从所述发送源接收到具有第2类别的消息时,在存储有与该发送源对应的所述随机数的情况下,判定根据本验证装置所保存的验证密钥与所述随机数而算出的值、和包含于所述具有第2类别的消息中的值是否一致;和处理执行单元,在通过所述发送源验证单元判定为所述算出的值、和包含于所述消息中的值一致的情况下,当从所述发送源接收到具有第3类别的消息时,其执行与该消息的类别对应的处理。
2.根据权利要求1所述的验证装置,其特征在于,还具备存储单元,其以赋予顺序的方式存储预定数量的、验证成功的消息发送源的识别符;和存储控制单元,其在通过所述发送源验证单元判定为所述算出的值、和包含于所述消息中的值一致时,使所述发送源的识别符存储在所述存储单元的开头,在接收到具有所述第3类别的消息时,在所述消息的发送源的识别符已存储在所述存储单元中的情况下,所述存储控制单元将该识别符移动到所述存储单元的开头。
3.一种便携终端,其特征在于具备IC卡作为权利要求1所述的验证装置,还具备多个终端程序,对该IC卡发送具有所述第1~第3类别的消息,所述IC卡根据所述消息,对每个终端程序单独进行随机数的生成、发送源的验证、处理的执行。
4.一种验证方法,其特征在于,包含如下步骤在接收到具有第1类别的消息时,生成随机数,并将包含于该消息中的发送源与该随机数对应起来存储;当从所述发送源接收到具有第2类别的消息时,在存储有与该发送源对应的所述随机数的情况下,判定根据本验证装置保存的验证密钥与所述随机数而算出的值、和包含于所述具有第2类别的消息中的值是否一致;和在判定为所述算出的值、和包含于所述消息中的值一致的情况下,当从所述发送源接收到具有第3类别的消息时,执行与该消息的类别对应的处理。
全文摘要
一种可访问便携终端具备的IC卡的程序的验证技术。IC卡(2)具备随机数生成部(22)、发送源验证部(24)、和处理执行部(27)。随机数生成部(22)在接收到类别“1”的消息时,生成随机数n,将包含于该消息中的发送源(a1)与随机数n对应起来,存储在随机数存储部(23)中。发送源验证部(24)在从发送源(a1)接收到类别“2”的消息时,在存储有与发送源(a1)对应的随机数n的情况下,将根据IC卡(2)保存的验证密钥与随机数n而算出的值m、和包含于类别“2”的消息中的值m进行对照。在两个值一致的情况下,当从发送源(a1)接收到类别“3”的消息时,处理执行部(27)执行与该消息的类别对应的处理。
文档编号G06K19/10GK1831876SQ20061006796
公开日2006年9月13日 申请日期2006年3月10日 优先权日2005年3月11日
发明者寺田雅之, 森谦作, 石井一彦, 本乡节之 申请人:株式会社Ntt都科摩
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1