首页> 中国专利> 智能卡装置、认证用虚拟代码生成装置、利用认证用虚拟代码生成装置的认证用虚拟代码生成方法及认证用虚拟代码验证服务器

智能卡装置、认证用虚拟代码生成装置、利用认证用虚拟代码生成装置的认证用虚拟代码生成方法及认证用虚拟代码验证服务器

摘要

提供智能卡装置、认证用虚拟代码生成装置、利用认证用虚拟代码生成装置的认证用虚拟代码生成方法及认证用虚拟代码验证服务器。上述方法,包括:当内置有I C芯片的卡片被标记时,向上述卡片发送时间数据的步骤;从上述卡片接收基于上述时间数据生成的一次认证用虚拟代码的步骤;利用上述一次认证用虚拟代码生成二次认证用虚拟代码的步骤;将上述一次认证用虚拟代码及上述二次认证用虚拟代码中的至少一个发送至服务器的步骤;及邀请上述服务器进行对上述至少一个认证用虚拟代码的验证的步骤。

著录项

  • 公开/公告号CN115668255A

    专利类型发明专利

  • 公开/公告日2023-01-31

    原文格式PDF

  • 申请/专利权人 森斯通株式会社;

    申请/专利号CN202280004617.3

  • 发明设计人 刘昌训;

    申请日2022-03-02

  • 分类号G06Q20/34;G06Q20/36;G06Q20/40;G06Q20/38;

  • 代理机构北京集佳知识产权代理有限公司;

  • 代理人王培超

  • 地址 韩国首尔

  • 入库时间 2023-06-19 18:27:32

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2023-01-31

    公开

    国际专利申请公布

说明书

技术领域

本发明涉及智能卡装置、认证用虚拟代码生成装置、利用认证用虚拟代码生成装置的认证用虚拟代码生成方法及认证用虚拟代码验证服务器。

背景技术

代码形式的数据拥有很多领域。不仅有结算时使用的卡号、账号,还有用于识别用户的IPIN号、身份证号等为代码形式数据认证用虚拟代码生成装置。

但是,在使用上述代码数据的过程中,经常发生泄漏事故。在卡号的情况下,因在卡片表面直接记载有实际卡号,视觉上泄露给他人,而在使用磁性装置进行结算时,卡号直接传递至POS装置而导致泄漏。

为不直接泄漏实际代码,曾尝试使用虚拟代码,但为了探索对应于实际代码的虚拟代码,需要用于识别用户的数据。

但在OTP(One Time Password)的情况下,需要另外的OTP生成装置而带来不便,尤其是在用户终端的情况下,因用于生成OTP的种子数据的泄露,存在安全漏洞。

因此,需要基于用户所持有的卡片的卡片数据,生成用户认证所需的虚拟安全代码及在无需另外的OTP生成装置即可生成OTP代码的同时,防止种子数据的泄露,从而提高安全性的方案。

发明内容

发明要解决的问题

本发明的目的在于提供智能卡装置、认证用虚拟代码生成装置、利用认证用虚拟代码生成装置的认证用虚拟代码生成方法及认证用虚拟代码验证服务器。

本发明所要解决的课题不限于上述内容,而对于本领域技术人员,未提及的其他课题可通过下面的记载将变得更加明了。

解决问题的方法

为解决上述课题,根据本发明的一方面的一种认证用虚拟代码生成方法,由认证用虚拟代码生成装置进行,包括:当内置有IC芯片的卡片被标记时,向上述卡片发送时间数据的步骤;从上述卡片接收基于上述时间数据生成的一次认证用虚拟代码的步骤;利用上述一次认证用虚拟代码生成二次认证用虚拟代码的步骤;将上述一次认证用虚拟代码及上述二次认证用虚拟代码中的至少一个发送至服务器的步骤;及邀请上述服务器进行对上述至少一个认证用虚拟代码的验证的步骤。

在本发明中,上述一次认证用虚拟代码包括多个代码;在上述多个代码中,第一代码基于上述时间数据及第一OTP生成;在上述多个代码中,第二代码从上述第一代码中去除作为上述卡片的识别信息的第一UID(user identification)生成。

在本发明中,上述生成第二认证用虚拟代码的步骤,从上述第一代码中去除作为上述认证用虚拟代码生成装置的识别信息的第二UID生成第三代码;结合上述第一代码、上述第二代码及上述第三代码,生成上述二次认证用虚拟代码。

在本发明中,上述卡片基于上述第一代码及上述第二代码进行验证;上述认证用虚拟代码生成装置基于上述第一代码及上述第三代码进行验证。

在本发明中,上述生成第二认证用虚拟代码的步骤,基于上述一次认证用虚拟代码生成第二OTP;基于上述第二OTP及作为上述认证用虚拟代码生成装置的识别信息的第二UID,生成上述二次认证用虚拟代码。

在本发明中,上述二次认证用虚拟代码,通过包含于上述二次认证用虚拟代码中的上述第二OTP及验证用第二OTP的比较进行验证;上述验证用第二OTP是基于与生成上述第二OTP时所利用的种子数据相同的种子数据,通过上述服务器生成的。

在本发明中,上述一次认证用虚拟代码用于线下出入控制及在线登录时的用户认证。

在本发明中,上述二次认证用虚拟代码用于金融结算时的用户认证。

在本发明中,上述时间数据是与APDU(Application Protocol Data Unit)命令结合的形式。

为解决上述课题,根据本发明的另一方面的一种智能卡装置,NFC模块,通过卡片标记从认证用虚拟代码生成装置接收时间数据;及IC模块,基于上述接收到的时间数据生成一次认证用虚拟代码;上述一次认证用虚拟代码自我发送,以用于用户认证或用于生成二次认证用虚拟代码;上述二次认证用虚拟代码是利用上述一次认证用虚拟代码通过上述认证用虚拟代码生成装置生成的;上述一次认证用虚拟代码及上述二次认证用虚拟代码中的至少一个,通过上述认证用虚拟代码生成装置传送至上述服务器,以通过服务器进行验证。

为解决上述课题,根据本发明的又一方面的一种认证用虚拟代码生成装置,包括:通信部,当内置有IC芯片的卡片被标记时,向上述卡片发送时间数据,从上述卡片接收基于上述时间数据生成的一次认证用虚拟代码;代码生成部,利用上述一次认证用虚拟代码生成二次认证用虚拟代码;验证邀请部,通过通信部将上述一次认证用虚拟代码及上述二次认证用虚拟代码中的至少一个发送至服务器,并邀请上述服务器进行对上述至少一个认证用虚拟代码的验证。

为解决上述课题,根据本发明的还一方面的一种认证用虚拟代码验证服务器,在被服务器进行的方法中,包括:从认证用虚拟代码生成装置接收一次认证用虚拟代码及二次认证用虚拟代码中的至少一个的步骤;进行对上述一次认证用虚拟代码及上述二次认证用虚拟代码中的至少一个的验证的步骤;在上述二次认证用虚拟代码包括多个代码的情况下,上述进行验证的步骤,在上述多个代码中,基于第一代码及第二代码提取作为卡片的识别信息的第一UID(user identification),进行对上述卡片的验证;在上述多个代码中,基于上述第一代码及第三代码提取作为上述认证用虚拟代码生成装置的识别信息的第二UID,进行对上述认证用虚拟代码生成装置的验证。

在本发明中,在上述二次认证用虚拟代码包括第二OTP及上述第二UID的情况下,上述进行验证的步骤,基于与生成上述第二OTP时所利用的种子数据相同的种子数据,生成验证用第二OTP;比较包含于上述二次认证用虚拟代码中的上述第二OTP及验证用第二OTP;若上述第二OTP及验证用第二OTP相同,则结束对上述卡片及上述认证用虚拟代码生成装置的验证。

在本发明中,在接收到上述一次认证用虚拟代码的情况下,上述进行验证的步骤,利用第一验证算法,基于上述一次认证用虚拟代码提取作为卡片的识别信息的第一UID(user identification),进行对上述卡片的验证。

此外,还可提供用于实现本发明的其他方法、其他系统及用于记录执行上述方法的计算机可读存储介质。

发明效果

根据本发明,在标记卡片时,认证用虚拟代码生成装置向智能卡装置提供时间数据,从而无需另外的OTP装置,可利用基于NFC方式获取的时间数据,生成用户认证所需的虚拟安全代码。

在认证用虚拟代码生成装置上标记智能卡装置,在两个装置之间收发数据时,为防止窃取该数据,可重新加工智能卡装置中生成的一次认证用虚拟代码,在认证用虚拟代码生成装置中重新生成二次认证用虚拟代码。

另外,在线下出入控制或在线登录的情况下,通过一次认证用虚拟代码验证进行用户认证,而在金融结算的情况下,通过利用一次认证用虚拟代码生成的二次认证用虚拟代码的验证进行用户认证,从而可根据情况改变安全水平。

另外,因智能卡装置可适用于线下出入控制情况和金融结算情况的所有情况,从而可将金融卡片(个人卡或法人卡)也可扩展使用于公司的出入卡。

本发明的效果不限于上述效果,而对于本领域技术人员,未提及的其他效果可通过下面的记载将变得更加明了。

附图说明

图1为根据本发明的基于认证用虚拟代码的用户认证系统的结构图;

图2为根据本发明的智能卡装置的概略结构图;

图3为根据本发明的认证用虚拟代码生成装置的概略结构图;

图4为根据本发明的由认证用虚拟代码生成装置执行的认证用虚拟代码生成方法的顺序图;

图5为用于说明根据本发明的时间数据的示意图;

图6为用于说明根据本发明的一次认证用虚拟代码验证的示意图;

图7为用于说明根据本发明的二次认证用虚拟代码验证的示意图;

图8为根据本发明的由智能卡装置执行的认证用虚拟代码生成方法的顺序图。

具体实施方式

本发明的优点及特征和事先方法,将结合附图和将要详细描述的实施例变得明了。但是,本发明不受下述实施例的限制而可通过各种形式实现,本实施例的目的旨在更好地说明本发明,为本发明所属技术领域的技术人员理解提供帮助,而本发明只受权利要求书的限制。

用于本说明书的术语用于说明实施例,而非限制本发明。在本说明书中,在没有特别说明的情况下,单数也可以指复数。用于说明书的“包括(comprises)”及/或“包括(comprising)”不排除所涉及的构件的不排除一个以上的其他构件的存在或添加。在本说明书中,相同的附图标记指相同的构件,“及/或”包括所涉及的各构件及一个以上的所有组合。为便于说明用“第一”、“第二”等表示各种构件,但这些构件不受上述术语的限制。这些术语的目的只是区分一个构件和另一个构件。因此,在下面体积的第一构成构件,在本发明的技术思想之内,也可以是第二构成构件。

如果没有其他的定义,用于本说明书的所有术语(技术及科学术语)所指的意思是本领域技术人员通常所理解的意思。另外,一般所使用的定义在词典中的术语,在没有明确的其他定义之外,不能过度夸大。

在进行说明之前,对用于本说明书的术语进行简单的说明。但请注意,术语的说明旨在帮助理解本说明书,因此,除明确限定本发明的之外,不能视为限定本发明的技术思想。

在本说明书中,“字符”为构成代码的构件,包括全部或部分大写字母、小写字母、数字及特殊符号等。

在本说明书中,“代码”是指由字符罗列而成的字符串。

在本说明书中,“OTP(One Time Password)”是为用户认证临时生成,且按单位时间变更的随机代码,可包括由字符构成的特定位数的代码。

在本说明中,“认证用虚拟代码”是指由认证用虚拟代码生成手段生成的,由认证用虚拟代码验证手段验证的代码。即“认证用虚拟代码”是指为进行验证而在单位计数中临时赋予的虚拟的代码。在此,根据不同的实施例,认证用虚拟代码生成手段可以是智能卡装置,也可是认证用虚拟代码生成装置,但非限制。

在本说明书中,“详细代码”是指包含于认证用虚拟代码中的部分代码。

在本说明书中,“单位计数”是定义为按特定时间间隔设置,随着时间间隔变化的单位。例如,1计数可按特定时间间隔(例如,1.5秒)设定使用。

在本说明书中,“认证用虚拟代码生成函数”是指用于生成认证用虚拟代码的函数。

在本说明书中,“用户”可以是利用智能卡装置接近安保的特定空间(线下或在线空间),或利用智能卡装置进行金融结算的用户,但非限制。

在本说明书中,“UID(user identification)”是指为识别用户按不同用户不重复赋予的固有的代码形式的值。

在本说明书中,“时间数据”是指当前时刻的时间数据。即用于认证用虚拟代码生成及验证的时间数据,可以都是指相同时刻的时间数据。

下面,结合附图对本发明的实施例进行详细说明。

图1为根据本发明的基于认证用虚拟代码的用户认证系统的结构图;

图2为根据本发明的智能卡装置的概略结构图;

图3为根据本发明的认证用虚拟代码生成装置的概略结构图;

图4为根据本发明的由认证用虚拟代码生成装置执行的认证用虚拟代码生成方法的顺序图;

图5为用于说明根据本发明的时间数据的示意图;

图6为用于说明根据本发明的一次认证用虚拟代码验证的示意图;

图7为用于说明根据本发明的二次认证用虚拟代码验证的示意图;

图8为根据本发明的由智能卡装置执行的认证用虚拟代码生成方法的顺序图。

请参阅图1,基于认证用虚拟代码的用户认证系统(下称“系统”)包括管制服务器100、智能卡装置10、认证用虚拟代码生成装置20及服务器30。在此,系统可包括较之如图1所示的构件更少或更多的构件。

智能卡装置10是指用户使用的实体卡。根据不同的实施例,在智能卡装置10的表面可表示能够识别卡片或用户的信息中的一部分或也可不表示任何信息。

根据不同的实施例,智能卡装置10可以是出入控制卡、金融结算用卡(例如,信用卡、支票卡、现金卡、法人卡等)。

具体而言,在智能卡装置10为出入控制用出入卡的情况下,智能卡装置10可用于用户在线下出入需要安保的特定空间,或用于在线登录特定站点或应用。在智能卡装置10为金融结算卡的情况下,智能卡装置10可用于用户进行金融交易。但卡片的形式、种类及目的不限于此。对智能卡装置10的详细说明将在稍后的内容中进行。

认证用虚拟代码生成装置20可以是出入控制装置(例如,门禁、门锁等),可以是用户使用的用户终端。此时,用户终端是具备驱动应用的应用处理器(applicationprocessor,AP)的任意的电子设备。用户终端包括无法携带的台式(desktop)电脑或可携带的移动装置(例如,智能手机(smart phone)、平板电脑、PDA(personal digitalassistant)、EDA(enterprise digital assistant)、PMP(portable multimedia player)、PND(personal navigation device)、可穿戴设备(wearable device)等,但非限制。对认证用虚拟代码生成装置20的详细说明将在稍后的内容中进行。

服务器30为认证用虚拟代码验证手段,进行对从认证用虚拟代码生成装置20接收到的认证用虚拟代码的验证。但非限制,根据不同的实施例,可由认证用虚拟代码生成装置20替代服务器30验证认证用虚拟代码。

此时,服务器30可以是与认证用虚拟代码生成装置20进行通信的安全相关服务器或金融公司服务器,但非限制。另外,请参阅图1,虽然服务器30表示为由一个服务器构成,但也可以够成为多个服务器相互连接的系统形式。

如图1所示,智能卡装置10、认证用虚拟代码生成装置20及服务器30可通过通信网相互收发各种数据、信号或信息。

在此,通信网可利用各种形式的通信网,例如,WLAN(Wireless LAN)、Wi-Fi、Wibro、Wimax、HSDPA(High Speed Downlink Packet Access)等无线通信方式或以太网(Ethernet)、xDSL(ADSL,VDSL)、HFC(Hybrid Fiber Coax)、FTTC(Fiber to The Curb)、FTTH(Fiber To The Home)等有线通信方式。

另外,通信网不限于上述介绍的通信方式,除上述通信方式之外,还可包括其他广为公知或今后将要开发的所有形式的通信方式。

请参阅图2,智能卡装置10可包括NFC模块12及IC模块14。在此,智能卡装置10可包括较之如图2所示的构件更少或更多的构件。

NFC(Narrow Frequency Communication)模块12(即NFC芯片)为通信模块,可与认证用虚拟代码生成装置20收发各种数据。在此,NFC模块12可形成为小程序(applet)形式,但非限制。NFC模块12在智能卡装置10在认证用虚拟代码生成装置20中被标记(tag)之后,可从认证用虚拟代码生成装置20接收时间数据。

IC模块14(即IC芯片)可生成一次认证用虚拟代码。在此,IC模块14可形成为小程序(applet)形式,但非限制。

IC模块14可利用接收到的时间数据生成一次认证用虚拟代码。具体而言,IC模块14不仅可利用接收到的时间数据生成一次认证用虚拟代码,还可利用存储于存储器(未图示)的卡片数据及认证用虚拟代码生成函数生成一次认证用虚拟代码。

在此,卡片数据可包括申请该智能卡装置10的发放的用户的用户识别信息和卡片识别信息。在此,上述卡片识别信息可包括作为上述智能卡装置10的识别信息的第一UID(user identification)、secret、卡号、序列号,但非限制,可包括卡片相关的所有信息。在此,上述用户识别信息可包括身份证号,但非限制,可包括用户相关的所有个人信息。

在IC模块14中,除存储有用户识别信息及卡片识别信息之外,还可存储有发放和管理智能卡装置10的公司(例如,制卡公司、金融公司、安全公司、在线应用或应用服务公司等)的URL地址等。例如,在智能卡公司10的IC模块14中存储有特定金融公司的URL地址的情况下,在认证用虚拟代码生成装置20中标记该智能卡装置10之后,认证用虚拟代码生成装置20可获取上述URL地址。此时,URL地址可以是该金融公司的程序或应用的安装信息或执行信息。

即IC模块14中除用户识别信息及卡片识别信息之外,还可以存储各种信息。上述各种信息在认证用虚拟代码生成装置20中标记智能卡装置10之后,由认证用虚拟代码生成装置20从智能卡装置10接收该信息。

智能卡装置10还可包括可控制智能卡装置10的整体运行的处理器(未图示)。处理器(未图示)可处理通过上述构件输入或输出的信号、数据、信息等,或驱动存储的应用程序。在此,处理器(未图示)以区别于IC模块14的结构进行说明,但根据不同的实施例,IC模块14也可以起到处理器(未图示)的作用。

参阅图3,认证用虚拟代码生成装置20可包括通信部22、存储器24及处理器26。在此,认证用虚拟代码生成装置20可包括较之如图3所示的构件更少或更多的构件。

通信部22在上述智能卡装置10被认证用虚拟代码生成装置20标记之后,通过上述通信网向上述智能卡装置10发送时间数据,并从上述智能卡装置10接收基于上述时间数据生成的一次认证用虚拟代码。此外,被标记时两个装置可相互收发各种数据。

存储器24认证用虚拟代码生成装置20可存储支持认证用虚拟代码生成装置20的各种功能的数据。存储器24可存储在认证用虚拟代码生成装置20中驱动的多个应用程序(application program或应用(application))、用于认证用虚拟代码生成装置20的运行的至少一个处理器、数据、命令。上述应用程序中的一部分,可为认证用虚拟代码生成装置20的基本功能存在。

处理器26除控制与上述应用程序相关的工作之外,通常还控制认证用虚拟代码生成装置20的整个工作。因处理器26可处理通过上述构件输入或输出的信号、数据、信息等,或驱动存储于存储器24的应用程序,从而可向上述智能卡装置10或服务器30提供或处理适当的信息或功能。

另外,处理器26为驱动存储于存储器24的应用程序,可控制如图3所示的构件中的至少一部分。进一步地,处理器26为驱动上述应用程序,可组合运行包含于认证用虚拟代码生成装置20的构件中的至少两个以上。

请参阅图3,处理器26可包括代码生成部262及验证邀请部164。在此,处理器26可包括较之如图3所示的构件更少或更多的构件。

代码生成部262可利用在智能卡装置10中生成的一次认证用虚拟代码生成二次认证用虚拟代码。

验证邀请部264可通过通信部22将上述一次认证用虚拟代码及上述二次认证用虚拟代码中的至少一个发送至服务器,并邀请上述服务器进行对上述至少一个认证用虚拟代码的验证。

虽然未在图3中表示,处理器26除代码生成部262及验证邀请部264之外,还可包括执行各种计算工作及判断工作等的构件。

下面,将结合图4至图7对在认证用虚拟代码生成装置20中执行的基于认证用虚拟代码的用户认证方法进行详细说明。

请参阅图4,认证用虚拟代码生成装置20的通信部22在内置IC芯片的卡片被标记时,可向上述智能卡装置10发送时间数据(S110)。

因智能卡装置10无法自行获取时间数据,可通过标记从认证用虚拟代码生成装置20获得时间数据。

此时,上述时间数据是与APDU(Application Protocol Data Unit)命令结合的形式。请参阅图5,时间数据可以结合于APDU命令之后的形式传递至智能卡装置10。但是,结合形式不限于此。

认证用虚拟代码生成装置20的通信部22可从上述智能卡装置10接收基于上述时间数据生成的一次认证用虚拟代码(S120)。

即智能卡装置10在接收时间数据之后,可一并使用接收到的时间数据和存储于卡片内的卡片数据(例如,secret、第一UID)生成一次认证用虚拟代码,并将其传递至认证用虚拟代码生成装置20。

上述一次认证用虚拟代码可包括第一代码及第二代码。在此,第一代码及第二代码为上述一次认证用虚拟代码的详细代码,除第一代码及第二代码之外,一次认证用虚拟代码还可包括很多的详细代码。

上述一次认证用虚拟代码的第一代码可基于上述时间数据及第一OTP生成。首先,智能卡装置10可利用第一认证用虚拟代码生成函数,以存储于卡片内的secret值和上述时间数据作为种子数据生成第一OTP。此时,可根据不同的实施例,种子数据还可利用除secret值及时间数据之外的值。

接着,智能卡装置10可利用第一认证用虚拟代码生成函数,在上述接收到的时间数据加上生成的第一OTP生成第一代码。

智能卡装置10可利用第一认证用虚拟代码生成函数,从上述第一代码中去除作为上述卡片的识别信息的第一UID(user identification)生成上述第二代码。在此,第一UID为存储于智能卡装置10的数据,是可以识别智能卡装置10的固有值。

第一代码=时间数据+第一OTP

第二代码=第一代吗-第一UID

智能卡装置10可组合所生成的详细代码(第一代码及第二代码)生成一次认证用虚拟代码。作为一实施例,智能卡装置10可利用第一认证用虚拟代码生成函数,按特定规则结合多个详细代码生成上述一次认证用虚拟代码。上述第一认证用虚拟代码生成函数可包含组合多个详细代码的规则(即详细代码结合函数)。

结合多个详细代码生成一个认证用虚拟代码的方式可使用各种方式。作为上述详细代码结合函数的一例,智能卡装置10可通过交替安排M位的第一代码和N位的第二代码的方式生成认证用虚拟代码。另外,作为另一例,详细代码结合函数可以是在第一代码后面结合第二代码的函数。随着包含于认证用虚拟代码的详细代码的增加,详细代码结合函数也可以是多样的。

这样生成的一次认证用虚拟代码发送至认证用虚拟代码生成装置20。

认证用虚拟代码生成装置20的代码生成部262,可利用上述一次认证用虚拟代码生成二次认证用虚拟代码(S130)。

在S130步骤之前,认证用虚拟代码生成装置20的代码生成部262,首先可根据上述智能卡装置10的种类判断是否生成二次认证用虚拟代码。具体而言,代码生成部262可基于与一次认证用虚拟代码一同接收到的卡片数据,进行上述判断工作(根据不同实施例,卡片数据也可在标记时接收)。即代码生成部262可根据上述卡片数据判断上述智能卡装置10是出入控制用卡还是金融结算用卡。另外,若确定上述智能可装置10为出入控制用卡,则不生成二次认证用虚拟代码,而若基于卡片数据确定上述智能卡装置10为金融结算用卡,则可生成认证用虚拟代码。

根据不同的实施例,可根据认证用虚拟代码生成装置20的种类,确定是否生成二次认证用虚拟代码。具体而言,在认证用虚拟代码生成装置20为出入控制装置的情况下,可无需上述判断工作直接不生产二次认证用虚拟代码。在认证用虚拟代码生成装置20为用户终端的情况下,代码生成部262可根据上述智能卡装置10的种类判断是否生成二次认证用虚拟代码。具体而言,代码生成部262可基于与一次认证用虚拟代码一同接收到的卡片数据,进行上述判断工作(根据不同实施例,卡片数据也可在标记时接收)。即代码生成部262若基于上述卡片数据确认上述智能卡装置10为出入控制用卡,则不生成二次认证用虚拟代码,而若基于上述卡片数据确认上述智能卡装置10为金融结算用卡,则可生成二次认证用虚拟代码。

虽然上面以代码生成部262进行判断工作为例进行说明,但非限制,也可由处理器260的其他构件进行上述判断工作。

若通过上述过程确定生成二次认证用虚拟代码,则在S130步骤中,代码生成部262可利用上述一次认证用虚拟代码生成二次认证用虚拟代码。此时,为生成二次认证用虚拟代码,首先,需在服务器30中进行对一次认证用虚拟代码的验证。服务器30可通过验证提取包含于一次认证用虚拟代码中的多个详细代码(第一代码及第二代码),并将其传递至认证用虚拟代码生成装置20。

虽然上面以在服务器30中进行对用于生成二次认证用虚拟代码的一次认证用虚拟代码的验证,但根据不同的实施例,也可由不是服务器30的认证用虚拟代码生成装置20进行该验证。对验证认证用虚拟代码的方法的说明将在稍后的内容中进行。

在本说明书中,生成二次认证用虚拟代码的方式可分为进行一次OTP计算的方式和进行两次OTP计算的方式。

进行一次OTP计算的方式(第一方式),只在智能卡装置10中生成一次认证用虚拟代码时进行OTP计算,二次认证用虚拟代码的代码长度将变长。

在上述第一方式中,代码生成部262可利用第二认证用虚拟代码,从接收到的第一代码中去除作为上述认证用虚拟代码生成装置20的识别信息的第二UID,生成第三代码。在此,第二UID为存储于认证用虚拟代码生成装置20的数据,是可以识别认证用虚拟代码生成装置20的固有值。

第三代码=第一代吗-第二UID

接着,代码生成部262可利用第二认证用虚拟代码,结合在智能卡装置10中生成的第一代码、在智能卡装置10中生成的第二代码及在认证用虚拟代码生成装置20中生成的第三代码,生成二次认证用虚拟代码。

代码生成部262可组合所生成的多个详细代码(第一代码、第二代码及第三代码)生成二次认证用虚拟代码。作为一实施例,代码生成部262可利用第二认证用虚拟代码生成函数,按特定规则结合多个详细代码生成上述二次认证用虚拟代码。上述第二认证用虚拟代码生成函数可包含组合多个详细代码的规则(即详细代码结合函数)。结合多个详细代码生成一个认证用虚拟代码的方式可使用如上所述的方式。

在上述第一方式中,包含于一次认证用虚拟代码中的第一代码及第二代码和包含于二次认证用虚拟代码中的第一代码及第二代码,都是在智能卡装置10中生成的,意味着相同的代码。在智能卡装置20中新生成第三代码并与上述第一代码及第二代码结合生成二次认证用虚拟代码。

进行两次OTP计算的方式(第二方式),在智能卡装置10中生成一次认证用虚拟代码时进行OTP计算,之后在认证用虚拟代码生成装置20中生成二次认证用虚拟代码是再进行一次OTP计算,二次认证用虚拟代码的代码长度没有变化(即与一次认证用虚拟代码的长度相同)。

在上述第二方式中,代码生成部262可基于上述一次认证用虚拟代码生成第二OTP,基于上述第二OTP及作为上述认证用虚拟代码生成装置的识别信息的第二UID,生成上述二次认证用虚拟代码。在此,第二UID为存储于认证用虚拟代码生成装置20的数据,是可以识别认证用虚拟代码生成装置20的固有值。

代码生成部262可利用第二认证用虚拟代码,不仅使用上述时间数据及secret值,还追加使用上述一次认证用虚拟代码作为种子数据,生成上述第二OTP。

接着,代码生成部262可在包含于利用第二认证用虚拟代码在智能卡装置10中生成的第一代码中的上述时间数据(时间数据可以是二次认证用虚拟代码生成邀请时刻),加上上述所生成的第二OTP生成第一代码。代码生成部262可利用第二认证用虚拟代码生成函数,从上述第一代码中去除作为上述认证用虚拟代码生成装置20的识别信息的第二UID(user identification)生成第二代码。在此,第二UID为存储于认证用虚拟代码生成装置20的数据,是可以识别认证用虚拟代码生成装置20的固有值。

第一代码=时间数据+第二OTP

第二代码=第一代吗-第二UID

在此,时间数据为当前时刻的时间数据,生成上述一次认证用虚拟代码时使用的时间数据和生成上述二次认证用虚拟代码时使用的时间数据可以相同。即因第一OTP和第二OTP是相同的时刻生成的,因此可利用相同的当前时间数据。

代码生成部262可组合所生成的详细代码(第一代码及第二代码)生成二次认证用虚拟代码。作为一实施例,代码生成部262可利用第二认证用虚拟代码生成函数,按特定规则结合多个详细代码生成上述二次认证用虚拟代码。上述第二认证用虚拟代码生成函数可包含组合多个详细代码的规则(即详细代码结合函数)。结合多个详细代码生成一个认证用虚拟代码的方式可使用如上所述的方式。

在上述第二方式中,包含于一次认证用虚拟代码中的第一代码及第二代码和包含于二次认证用虚拟代码中的第一代码及第二代码各为在智能卡装置10和认证用虚拟代码生成装置20中生成的,是不同的代码。即包含于一次认证用虚拟代码中的第一代码及第二代码是利用第一OTP及第一UID生成的,而包含于二次认证用虚拟代码中的第一代码及第二代码是利用第二OTP及第二UID生成的,各不相同。

上述第一认证用虚拟代码生成函数和第二认证用虚拟代码生成函数各存储于智能卡装置10和认证用虚拟代码生成装置20,但被驱动的最初时刻可以相同。即用户获得智能卡装置10的发放,在认证用虚拟代码生成装置20中通过最初标记向服务器30完成对上述智能卡装置10的用户注册,则各存储于智能卡装置10和认证用虚拟代码生成装置20的第一认证用虚拟代码生成函数和第二认证用虚拟代码生成函数可开始驱动。即第一认证用虚拟代码生成函数和第二认证用虚拟代码生成函数可以相同。

这样完成用户注册之后,服务器中可存储作为智能卡装置10的识别信息的第一UID及作为认证用虚拟代码生成装置20的识别信息的第二UID中的至少一个。即服务器30在用户注册时,可在验证算法内,在分配给用户的区域存储上述第一UID及上述第二UID中的至少一个。根据不同的实施例,服务器30在一个区域存储上述第一UID,且可将第二UID匹配于上述第一UID进行存储。根据不同的实施例,服务器30在一个区域存储上述第二UID,且可将第一UID匹配于上述第二UID进行存储。根据不同的实施例,服务器30可在两个区域各存储上述第一UDI及上述第二UID。

另外,用户注册时,服务器30不仅存储上述第一UID及上述第二UID,还可一同存储与上述智能卡装置10相关的的上述卡片数据及与上述认证用虚拟代码生成装置20相关的终端数据。

认证用虚拟代码生成装置20的通信部22可向服务器发送上述一次认证用虚拟代码及上述二次认证用虚拟代码中的至少一个(S140)。

认证用虚拟代码生成装置20的验证邀请部264邀请上述服务器30进行对上述至少一个认证用虚拟代码的验证(S150)。

根据不同的实施例,在智能卡装置10为出入控制用出入卡的情况下,即用户利用智能卡装置10在线下出入需要安保的特定空间,或在线登录特定站点或应用的情况下,服务器30可接收对上述一次验证用虚拟代码的验证邀请。具体而言,在智能卡装置10中生成的一次认证用虚拟代码可自行发送至服务器30用于用户认证。

请参阅图6,认证用虚拟代码生成装置20(具体为代码生成部264)可向服务器30发送在智能卡装置10中生成的一次认证用虚拟代码邀请验证。服务器30可基于验证算法进行对一次认证用虚拟代码的验证,并将验证结果发送至认证用虚拟代码生成装置20。

此时,认证用虚拟代码生成装置20可立即将一次认证用虚拟代码传递至服务器30邀请验证,但也可输出至显示部(未图示),以使用户肉眼确认一次认证用虚拟代码或复制之后输入或粘贴至其他程序或网页。认证用虚拟代码生成装置20可向服务器30发送由用户输入或粘贴的一次认证用虚拟代码邀请验证。

认证用虚拟代码生成装置20可根据验证结果,进行线下出入控制及在线登录时的用户验证。即若一次认证用虚拟代码为正常代码,则可允许用户出入上述安保的特定空间或登录上述特定站点或应用。

根据不同的实施例,在智能卡装置10为金融结算用卡的情况下,即用户利用智能卡装置10进行金融交易的情况下,服务器30可接收对上述二次验证用虚拟代码的验证邀请。即在智能卡装置10中生成的一次认证用虚拟代码可发送至服务器20用于生成二次认证用虚拟代码。

请参阅图7,认证用虚拟代码生成装置20(具体为代码生成部262)可利用在智能卡装置10中生成的一次认证用虚拟代码生成二次认证用虚拟代码。认证用虚拟代码生成装置20(具体为代码生成部264)可向服务器30发送所生成的二次认证用虚拟代码邀请验证。服务器30可基于验证算法进行对二次认证用虚拟代码的验证,并将验证结果发送至认证用虚拟代码生成装置20。

此时,认证用虚拟代码生成装置20为获取用于生成二次认证用虚拟代码的种子数据,可向服务器30邀请对一次认证用虚拟代码的验证。服务器30可基于验证算法,从一次认证用虚拟代码提取第一代码、第二代码、时间数据、secret值、第一UID中的至少一个,传递至认证用虚拟代码生成装置20。认证用虚拟代码生成装置20可以第一代码、第二代码、时间数据、secret值、第一UID中的至少一个作为种子数据,生成二次认证用虚拟代码。如上所述,对用于生成二次认证用虚拟代码的一次认证用虚拟代码的验证,可在服务器30中进行,但根据不同的实施例,也可由认证用虚拟代码生成装置20直接进行该验证。

认证用虚拟代码生成装置20可根据验证结果,在金融结算时进行用户认证。即若二次认证用虚拟代码为正常代码,则可允许用户进行金融交易。

下面,将具体说明对认证用虚拟代码的验证方法。

根据不同的实施例,在服务器30接收对一次认证用虚拟代码的验证邀请的情况下,可利用对应于第一认证用虚拟代码生成函数的验证算法,基于上述一次认证用虚拟代码搜索存储第一UID的区域,提取第一UID。

此时,如上所述,上述一次认证用虚拟代码包括多个详细代码,多个详细代码可由设定第一UID的存储区域搜索的开始位置的第一代码,及按照特定搜索方式,设定从上述开始位置向上述第一UID的存储区域的搜索路径的第二代码构成。

第一代码和第二代码在具备认证用虚拟代码认证手段的服务器30内,具备用于验证一次认证用虚拟代码的相关关系,但为了提高安全性,具备认证用虚拟代码认证手段的智能卡装置10,可作为详细代码生成函数只包括生成第一代码的第一函数和生成第二代码的第二函数,而不包括对第一代码和第二代码的相关关系的数据。

另外,作为一实施例,在一次认证用虚拟代码通过按照第一代码及第二代码的特定规则的组合生成的情况下,第一代码和第二代码可履行用于搜索验证算法内的实际值(第一UID)的存储区域的各自的作用。例如,第一代码设定存储位置搜索的开始位置,而第二代码沿特定搜索方向设定从上述开始位置到上述第一UID的存储区域的搜索路径。因此,之后若智能卡装置10每个单位计数提供正常生成的认证用虚拟代码,则服务器30将从对应于第一代码的开始位置沿对应于第二代码的搜索路径移动的位置判定为存储第一UID的区域。

具体而言,服务器30可利用验证算法提取包含于一次认证用虚拟代码中的多个详细代码。上述一次认证用虚拟代码是将多个详细代码按照特定规则结合生成的。服务器30可利用与生成一次认证用虚拟代码时使用的详细代码结合函数相同的函数,从一次认证用虚拟代码提取多个详细代码。例如,在生成结合了两个详细代码(即第一代码及第二代码)的一次认证用虚拟代码的情况下,服务器30可向一次认证用虚拟代码的字符排列适用详细代码结合函数,分理出第一代码及第二代码。此时,详细代码之间可包括相关关系。

在一次认证用虚拟代码中包括第一代码及第二代码的情况下,作为详细代码之间具备相关关系的一实施例,服务器30确定对应于第一代码的搜索的开始位置,将从上述搜索开始位置沿对应于第二代码的搜索路径移动的位置相对应的值视为第一UID。

另外,作为另一实施例,智能卡装置10每隔单位就计数提供新的一次认证用虚拟代码时,服务器30可基于在各计数中变更的第一代码及第二代码设定开始位置和搜索路径,以搜索第一UID。

另外,作为一实施例,服务器30可为利用具备相关关系的多个详细代码查找第一UID,可包括验证算法。验证算法为在使用包含于一次认证用虚拟代码的各详细代码时,可搜索第一UID的算法。例如,在包括从一次认证用虚拟代码确定第一UID的搜索的开始位置的第一代码和提示从开始位置的存储区域的方向的第二代码的情况下,在对应于第一代码的位置指示对应于第二代码的方向时,验证算法为调节成在该位置安排第一UID的算法。因利用验证算法,服务器30即使包含于一次认证用虚拟代码的第一代码和第二代码发生变更,也能查找到第一UID。

另外,作为一实施例,在结合在上述时间数据加上第一OTP的第一代码和从上述第一代码去除第一UID的第二代码生成上述一次认证用虚拟代码的情况下,服务器30可通过从上述第一代码值减去上述第二代码值提取实际值(即第一UID)。

另外,作为一实施例,服务器30可比较搜索上述存储区域提取的第一UID和从上述第一代码值减去上述第二代码值提取的第一UID,若两个值相同,则判定上述一次认证用虚拟代码为正常代码。但是,无需这样的比较过程,服务器30只利用各个值也能判断该一次认证用虚拟代码是否为正常代码(例如,通过提取的值是否与存储于服务器30的DB内的信息一致进行判断)。

根据不同的实施例,在服务器30接收对二次认证用虚拟代码的验证邀请的情况下,可利用对应于第二认证用虚拟代码生成函数的验证算法,基于上述二次认证用虚拟代码搜索存储第一UID的区域及存储第二UID的区域中的至少一个,提取第一UID及第二UID中的至少一个。

在上述第一方式中,如上所述,上述二次认证用虚拟代码结合第一代码、第二代码及第三代码生成。服务器30可利用对应于第二认证用虚拟代码生成函数的验证算法,基于上述二次认证用虚拟代码搜索存储第一UID的区域,提取第一UID,搜索存储第二UID的区域,提取第二UID。

服务器30可利用验证算法提取包含于二次认证用虚拟代码中的多个详细代码。上述二次认证用虚拟代码是将多个详细代码按照特定规则结合生成的。服务器30可利用与生成二次认证用虚拟代码时使用的详细代码结合函数相同的函数,从二次认证用虚拟代码提取多个详细代码。例如,在生成结合了三个详细代码(即第一代码、第二代码及第三代码)的二次认证用虚拟代码的情况下,服务器30可向二次认证用虚拟代码的字符排列适用详细代码结合函数,分理出第一代码、第二代码及第三代码。此时,详细代码之间可包括相关关系。

在二次认证用虚拟代码中包括第一代码、第二代码及第三的情况下,作为详细代码之间具备相关关系的一实施例,服务器30确定对应于第一代码的搜索的开始位置,将从上述搜索开始位置沿对应于第二代码的搜索路径移动的位置相对应的值视为第一UID。另外,确定对应于第一代码的搜索的开始位置,将从上述开始位置沿对应于第三代码的搜索路径移动的位置相对应的值视为第二UID。

另外,作为另一实施例,认证用虚拟代码生成装置20每隔单位就计数提供新的一次认证用虚拟代码时,服务器30可基于在各计数中变更的第一代码、第二代码及第三代码设定开始位置和搜索路径,以搜索第一UID及第二UID。

另外,作为一实施例,服务器30可为利用具备相关关系的多个详细代码查找第一UID及第二UID,可包括验证算法。验证算法为在使用包含于二次认证用虚拟代码的各详细代码时,可搜索第一UID及第二UID的算法。例如,在包括从二次认证用虚拟代码确定第一UID及第二UID的搜索的开始位置的第一代码、提示从开始位置的第一UID的存储区域的方向的第二代码和提示从开始位置的第二UID的存储区域的方向的第三代码的情况下,算法为在对应于第一代码的位置指示对应于第二代码的方向时,调节成在该位置安排第一UID,在对应于第一代码的位置指示对应于第三代码的方向时,调节成在该位置安排第二UID的算法。因利用验证算法,服务器30即使包含于二次认证用虚拟代码的第一代码、第二代码及第三代码发生变更,也能查找到第一UID及第二UID。

另外,作为一实施例,在结合在上述时间数据加上第一OTP的第一代码和从上述第一代码去除第一UID的第二代码及从上述第一代码去除第二UID的第三代码生成上述二次认证用虚拟代码的情况下,服务器30可通过从上述第一代码值减去上述第二代码值提取实际值(即第一UID),从上述第一代码值减去上述第三代码值提取实际值(即第二UID)。

即上述服务器30基于上述第一代码及上述第二代码,提取上述第一UID,以进行对上述智能卡装置10的验证,而基于上述第一代码及上述第三代码,提取上述第二UID,以进行对上述认证用虚拟代码生成装置20的验证。

另外,作为一实施例,服务器30可比较搜索上述存储区域提取的第一UID和从上述第一代码值减去上述第二代码值提取的第一UID,若两个值相同,则结束对上述二次认证用虚拟代码的一次验证(即对上述智能卡装置的验证),且比较搜索上述存储区域提取的第二UID和从上述第一代码值减去上述第三代码值提取的第二UID,若两个值相同,则结束对上述二次认证用虚拟代码的二次验证(即对上述认证用虚拟代码生成装置的验证),从而可判定上述二次认证用虚拟代码为正常代码。但是,无需这样的比较过程,服务器30只利用各个值也能判断该二次认证用虚拟代码是否为正常代码(例如,通过提取的值是否与存储于服务器30的DB内的信息一致进行判断)。

在上述第二方式中,如上所述,上述二次认证用虚拟代码通过结合基于一次认证用虚拟代码生成的第二OTP及基于上述第二UID生成的第一代码及第二代码生成。服务器30可通过比较接包含于收到的上述二次认证用虚拟代码的上述第二OTP及验证用第二OTP,进行对上述二次认证用虚拟代码的验证。在此,上述验证用第二OTP是基于与生成上述第二OTP时所利用的种子数据相同的种子数据,通过上述服务器30生成的。

具体而言,服务器30可从上述二次认证用虚拟代码分离上述第一代码和上述第二代码,并基于分离得到的上述第一代码和上述第二代码搜索上述第二UID,确认一同存储的卡片数据(例如,secret值)。在此,分离详细代码并利用详细代码搜索实际值的方法如上所述。

接着,服务器30可搜索匹配于搜索到的第二UID的第一UID。

服务器30可利用这样通过第二UID提取出来的值即secret值及第一UID和当前时间数据,生成一次认证用虚拟代码,并以生成的一次认证用虚拟代码和上述secret值及时间数据作为种子数据,生成验证用第二OTP。

在比较这样生成的验证用第二OTP和包含于上述第二认证用虚拟代码的第二OTP时,若两个值相同,则服务器30可判定上述二次认证用虚拟代码为正常代码。即若上述第二OTP和上述验证用第二OTP相同,则用作种子数据的值(一次认证用虚拟代码和上述secret值及时间数据)全部相同,且若一次认证用虚拟代码相同,则由该值生成的二次认证用虚拟代码也相同,因此,可验证为上述智能卡装置10及上述认证用虚拟代码生成装置20正常。

下面,将结合图8对在智能卡装置10中执行的基于认证用虚拟代码的用户认证方法进行详细说明。

请参阅图8,智能卡装置10可通过卡片标记从认证用虚拟代码生成装置接收时间数据(S210),并基于上述接收到的时间数据,生成一次认证用虚拟代码(S220)。

智能卡装置10生成一次认证用虚拟代码,认证用虚拟代码生成装置20生成二次认证用虚拟代码和服务器30进行对一次认证用虚拟代码和二次认证用虚拟代码中至少一个的验证,与上述参阅图1至图7说明内容充,因此,在此不再赘述。

另外,本发明的智能卡装置10可一同进行金融结算和出入控制。即在智能卡装置10为公司的法人卡或员工的个人卡的情况下,各用户可用该卡用做公司的出入卡。

虽然以依次执行图4及图8所示的步骤为例进行记载,但这只是示例性地说明本实施例的技术思想,但本领域技术人员可在不脱离本实施例的本质特征的范围之内进行各种修改及变形,以变更图4及图8所示的步骤的顺序执行或并列执行一个以上的步骤,因此,图4及图8中记载的步骤不受时间顺序的限制。

如上所述的本发明还可提供用于记录执行上述认证用虚拟代码生成方法的计算机程序的计算机可读存储介质。

上述程序可包括可使上述计算机的处理器(CPU)通过上述计算机的装置接口读取的由C、C++、JAVA、机器语言等计算机语言编码的代码(Code),以使上述计算机读取程序执行由程序实现的上述方法。上述代码可包括与定义执行上述方法所需功能的函数等相关的功能代码(Functional Code),还可包括由上述计算机的处理器按照固定的程序执行上述功能所需的执行顺序相关控制代码。另外,还可包括存储器相关代码,该代码指示在上述计算机的内部或外部存储器的哪个位置(地址)参考由上述计算机的处理器执行上述功能所需的追加信息或媒体。另外,在上述计算机的处理器为执行上述功能而需要与远程(Remote)的其他计算机服务等进行通信的情况下,代码可包括植入如何利用上述计算机的通信模块与远程的其他计算机或服务等进行通信,在通信时需要收发很重信息或媒体等。

本发明实施例的方法或算法的步骤可以硬件直接实现,或以通过硬件进行的软件模块实现,或通过上述方式的结合实现。软件模块可常驻于RAM(Random Access Memory)、ROM(Read Only Memory)、EPROM(Erasable Programmable ROM)、EEPROM(ElectricallyErasable Programmable ROM)、闪速存储器(Flash Memory)、硬盘、可拆卸磁盘、CD-ROM或本发明所述技术领域中公知的任意形式的计算机可读记录媒介中。

上述实施例仅用以说明本发明而非限制,本领域的普通技术人员应当理解,可以对本发明进行修改、变形或者等同替换。而在不脱离本发明的精神和范围内,其均应涵盖在本发明的权利要求范围当中。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号