安全代码生成方法和使用方法及用于其的可编程设备的制作方法

文档序号:6566457阅读:357来源:国知局
专利名称:安全代码生成方法和使用方法及用于其的可编程设备的制作方法
技术领域
本发明涉及通过可编程用户设备生成用于用户认证和用于对信息进 行存储、签署以及加密/解密的可再现安全代码的方法。本发明还涉及将 所述可再现安全代码用于各种安全目的的方法和对应的可编程用户设 备。
背景技术
在服务提供方通过电子介质向公众提供服务和传递信息的许多情况 下,需要提供对接收服务或与服务提供方交换信息的个人的验证识别的 机制。传统认证方案釆用用户名和密码对来认证用户。然而,这种简单 方法提供了最小的安全性。为了实现更高程度的安全性,日益普通的是 使用所谓的双因素认证。这种双因素认证基于"你所知道的"要素(如 密码)和"你所具有的"要素; 一个示例是银行支付卡(你所具有的) 和对应的PIN (个人标识号)代码(你所知道的)。
如果通过开放的电信或计算机网络发送密码,则它可以容易地被其 他方捕获。因此,理想的是,准许使用所谓的一次性密码(动态密码) 来代替固定(静态)密码(如PIN码)。出于这个目的,许多银行例如正 在使用卡状半导体装置(也称为安全令牌),该卡状半导体装置计算并在
小屏幕上显示一次性通行码(passcode)(即,时变数字)。通过在尝试认 证(登录)时将这个数字输入到系统中,这样做的个人证明他拥有该装 置。在美国专利No. 4599489中公开了这种半导体装置的一个示例。为了 增加安全性,该半导体装置本身有时受"打开"该装置所需要的PIN码 保护。如果这样,则在显示正确的通行码数字之前首先必须输入正确的 PIN。
这种半导体装置的一个问题是它们的获得和分发成本较大。另一个
问题是,作为几种服务(举例来说,如经由因特网来自各种机构的银行
服务,使用每一个都需要单独的半导体装置)的登记用户的个人,将不
得不保持并且处理多个不同的装置。如果多个服务提供方可以使用同一 个半导体装置作为用于多种服务的公共或通用"多码计算器",则这确实
有益于公众。
另一方面,己知允许在各种电子设备中实现安全措施的方案。例如, 可以将软件存储在通信终端中,以用于用户与服务提供方之间的安全通 信服务。所需的软件可以作为独立计算机程序存储在终端存储器中。在 同一个终端中,针对各种用途,可以存储源自不同服务提供方的应用。
想要使用针对一服务(如安全通信服务)的计算机程序的个人,在 他被允许在计算机上运行该程序以与服务提供方进行安全通信之前,通 常必须向服务提供方登记该程序。 一旦成为登记用户,他就可以通常通 过键入他的用户名和密码,例如可以是如上所述的由卡状半导体装置提 供的一次性密码,而在任何计算机上运行该程序。这个过程确认用户拥 有正确的用户名和密码,或者在后一情况下,拥有正确的卡状半导体装 置和对应的PIN (如果需要)。
为了避免由专用于多个服务提供方中的相应服务提供方的多个卡状 装置带来的问题,本发明试图使用现有和未来的电子信息技术装置,典 型的是具有通信能力的电子信息技术装置,来用于安全身份验证。
为了实现这个目的,发明人认为,代替将用户身份捆绑至专门设计 并专用于一个用途的卡状半导体装置,将用户身份捆绑至他已经拥有或 主要出于另一比标识验证更一般的用途而获取的一件设备,成本更低且 更具有灵活性。
本发明的一个意图是,避免需要对要在根据本发明的系统中使用的 现有用户设备的硬件构造进行任何修改或增补。因此,适于规定用途的 电子用户设备应当至少是可编程的,并且包括至少一个数据输入接口、 数据处理装置、数据存储装置以及数据输出能力。另外,为使所述设备 根据本发明进行操作,数据存储装置必须包括存储有独特标识单个设备 的设备标识符的可读防篡改存储部。
为了易于和选定的服务提供方进行信息交换,设备应当优选地向用 户提供合适的通信功能。这种通信能力可以是设备固有的或者是作为功 能扩展而增加的。
因此,原理上,可以将各种电子用户设备用于实现本发明。然而, 符合GSM (全球移动通信系统)技术的移动电话(蜂窝电话)被认为特
别适于本发明的用途,因为每个GSM移动电话己经具有存储在防篡改存 储器中的独特设备标识符,即,国际移动设备身份码(IMEI),这是主要 用来针对GSM网络或运营商标识各GSM移动电话的15位代码。GSM 移动电话中具有IMEI码通常是强制性的,以使电话可在GSM网络中操 作。因此,去除或改变IMEI码将造成移动电话不能针对其主要用途(即, 电信)进行操作。
在这点上,从美国专利No. 6164547和5956633中己知这样的示例, 使用IMEI码分别用于检查移动站的兼容性和用于控制移动站的使用/激 活权力。另外,从美国专利申请公报No. 2003/0236981和2004/0030906 中,分别己知将IMEI码用作用于对单独的SMS (短消息业务)消息进 行加密的密钥,和用于通过以IMEI码作为密钥计算的数字签名来对这种 消息进行认证。
WO 01/31840 Al是现有技术的又一示例,描述了可以怎样基于个人 标识号(PIN)、订户标识符(典型地为GSM网络中的IMSI)、设备标识 符(典型地为GSM网络中的IMEI)以及时间(因此是时变通行码),在 移动站中生成第一一次性密码,接着在认证服务器处使用该第一一次性 密码以使能够在移动站与计算机系统之间进行电信连接。为了执行识别 过程,认证服务器使用从移动站接收到的订户标识符(IMSI)来在数据 库中搜索与该订户相关联的PIN码和设备标识符(IMEI),并且在检索到 时,将全部三个实体与时间相组合,以生成用于和第一一次性密码进行 比较的第二一次性密码。
这种方法使得能够针对一个计算机系统或服务提供方进行认证,但 是在不损害安全性的情况下不可能由一个以上的服务提供方使用。如果 由一个以上的服务提供方使用,则该方法需要将相同的标识符(PIN、 IMEI
以及IMSI)分发至每一个计算机系统,由此损害了针对所有涉及方的安 全性。而且,这种方法仅可以用于认证,而不能用于如签署、加密以及 安全分发的其它安全功能,也不可能用于对举例来说诸如存储在移动电 话中的私有PKI(公钥基础设施)密钥的敏感信息的本地加密和存取控制。
WO 01/31840 Al中描述的现有技术识别处理是针对用户隐藏而不 需要用户交互的处理,并且它在认证时刻仅表现对用户的弱认证。另外, 在处理中需要的所有标识符,包括用户PIN在内,都存储在移动站以及 相应服务提供方处的计算机系统中。这种方法还局限于使用时间作为向 一次性密码计算输入的变量的唯一来源,这又限制了该方法的灵活性。
在日本专利申请No. 2003-410949中,公开了这样一种系统和方法, 其生成独特代码,并且例如釆用图片的形式在用户的移动终端上显示该 独特代码。用户使用该图片和用于向服务提供方或计算机系统认证其本 身的"用户秘密",来访问服务,如取款或支付服务。除了需要额外的用 户交互以外,该方法还具有这样的弱点,该独特代码可能被无意地从显 示器公开。这种方法不使用移动终端标识符来生成用户认证数据。移动 终端仅被用作通信终端,而未被用作双因素认证中的强拥有因素(你所 具有的)。
就本发明而言,移动电话的IMEI码将被用作使移动电话根据本发明 进行操作所需要的独特设备标识符。
可以用来接入多个不同服务提供方的安全机制通常基于所谓的公钥 算法。在PKI系统中,私钥需要安全存储,而公钥则可以在由受信任第 三方签署的目录或证书中公布。为了确保仅可以在用户单独控制下使用 私钥, 一般将密钥存储在硬件密钥容器(如智能卡或SIM (订户身份码 模块)卡)中。这种系统的主要问题在于硬件的制造和分发成本。本发 明提供了一种对于防篡改的用户可控密钥容器的这种需求的更便宜的解 决方案。

发明内容
本发明的一个方面涉及一种通过可编程用户设备生成可再现安全代
码的方法,该可再现安全代码用于用户认证,并且用于对信息进行存储、 签署以及加密/解密,所述可编程用户设备包括至少一个数据输入接口 、 数据处理装置以及数据存储装置,该数据存储装置包括预存储有独特标 识所述用户设备的设备标识符的可读防篡改存储部, 所述方法包括以下步骤
经由所述数据输入接口将用户个人代码输入到所述用户设备中, 从所述用户设备的所述数据存储装置中取得所述设备标识符, 基于至少所述设备标识符和所述用户个人代码的组合,在所述用户 设备内部计算安全代码,以及 输出计算出的安全代码,
由此计算出的安全代码本身既表示所述用户又表示所述用户设备。
本发明的上述方法生成用于双因素用户标识的数据,而不需要按任 何方式登记或存储用户个人代码。
在优选实施方式中,根据本发明的上述方法在所述在所述用户设备 内部计算安全代码的步骤之前还包括以下步骤
向所述用户设备输入表示对所述用户以他/她的用户名进行登记的 服务提供方的服务提供方代码,
基于所述设备标识符、所述用户个人代码以及所述服务提供方代码 的组合,在所述用户设备内部计算安全代码,以及
输出计算出的安全代码,
由此计算出的安全代码本身针对一个特定服务提供方表示所述用户 和所述用户设备。
通过输入用于计算安全代码的服务提供方代码,可以针对每一个服 务提供方生成不同安全代码,而不需要改变任何其它标识符(用户个人 代码和设备标识符)。本发明的上述方法使得用户能够针对一个以上的服 务提供方使用同一设备来进行双因素用户标识,而不需要在服务提供方 自之间共享敏感数据。
本发明的一个具体方面涉及一种对用户设备的用户进行认证的方 法,所述用户以他/她的用户名和通过根据本发明的方法获得的关联安全
代码登记在服务提供方处的客户文件中, 所述方法包括以下步骤 向所述服务提供方指示用户名,
在所述服务提供方处,在所述客户文件中进行搜索,以查找指示的 用户名,并且如果在所述文件中存在指示的用户名,则向所述用户返回 邀请,
向所述用户设备输入用户个人代码,并且从所述用户设备的数据存 储装置中取得所述用户设备的所述设备标识符, 在所述用户设备内部计算所述安全代码,
向所述用户设备输入从所述服务提供方作为所述邀请而接收到的变 量,并且基于所述安全代码和所述变量,使用加密算法来在所述用户设 备内部计算一次性密码,
向所述服务提供方指示计算出的一次性密码,
在所述服务提供方处,从所述客户文件中检索与所述用户指示的所 述用户名对应的安全代码,
基于从所述客户文件中检索到的安全代码以及与向所述用户返回并 由所述用户设备使用的变量相同的变量,使用与所述用户设备所使用的 加密算法相同的加密算法,在所述服务提供方处计算一次性密码,
在所述服务提供方处,比较刚才计算出的一次性密码和从所述用户 接收到的一次性密码,并且
如果两个一次性密码相同,则认证结果为肯定,确认由用户名标识 的所述用户拥有所述用户设备并且拥有对应的用户个人代码,否则,认 证结果为否定。
本发明的另一方面涉及一种在可编程用户设备上安全存储信息的方 法,所述可编程用户设备包括至少一个数据输入接口、数据处理装置以 及数据存储装置,所述数据存储装置包括预存储有独特标识所述用户设 备的设备标识符的可读防篡改存储部,所述方法包括在存储之前对所述 信息进行加密的信息加密步骤和在检索到存储的加密信息后对该信息进 行解密的信息解密步骤,其中
所述信息加密步骤包括使用安全代码作为加密密钥来对要存储的信 息进行加密的步骤,并且
所述信息解密步骤包括使用同一安全代码作为解密密钥来检索存储 的加密信息的步骤,
所述安全代码是通过以下步骤生成的
经由所述数据输入接口将用户个人代码输入到所述用户设备中, 从所述用户设备的所述数据存储装置中取得所述设备标识符, 基于至少所述设备标识符和所述用户个人代码的组合,在所述用户
设备内部计算安全代码,以及
分别针对所述信息加密步骤/所述信息解密步骤,输出计算出的安全代码。
本发明的又一方面涉及一种对要在用户设备的用户与服务提供方之 间交换的信息元素进行签署的方法,所述用户以他/她的用户名和通过根 据本发明的方法获得的关联安全代码登记在服务提供方处的客户文件 中,
所述方法包括以下步骤
如果在所述用户设备处不存在要由所述用户签署的信息元素,则从 所述服务提供方向所述用户设备传递所述信息元素,
向所述用户设备输入用户个人代码,并且从所述用户设备的数据存 储装置中取得所述用户设备的所述设备标识符,
在所述用户设备内部计算所述安全代码,
基于所述安全代码和要签署并传递到所述服务提供方的所述信息元 素,使用加密算法,在所述用户设备内部计算"签名",
向所述服务提供方传递所述用户名和所述"签名",并且如果在所述 服务提供方处不存在要由所述用户签署的所述信息元素,则还向所述服 务提供方传递所述信息元素,
在所述服务提供方处,从所述客户文件中检索与从所述用户接收到 的所述用户名对应的安全代码,
基于从所述客户文件中检索到的所述安全代码以及所述信息元素,
使用与所述用户设备使用的加密算法相同的加密算法,在所述服务提供 方处计算"签名",
在所述服务提供方处,比较刚才计算出的"签名"和从所述用户接 收到的"签名",并且
如果两个"签名"相同,则确认所述用户设备处的所述用户已经专 门对所述信息元素进行了签署并且该信息元素尚未被修改,否则,签署 结果为否定。
在一具体实施方式
中,所述"签名"可以包括数字或电子签名,或
者消息认证代码(MAC)。
本发明的再一方面涉及一种安全从用户设备的用户向服务提供方传 递信息元素的方法,所述用户以他/她的用户名和通过根据本发明的方法 获得的关联安全代码登记在服务提供方处的客户文件中,
所述方法包括以下步骤-
向所述用户设备输入用户个人代码,并且从所述用户设备的数据存 储装置中取得所述用户设备的设备标识符,
在所述用户设备内部计算所述安全代码,
使用加密算法并使用所述安全代码作为加密密钥,在所述用户设备 内部对要向所述服务提供方传递的所述信息元素进行加密,
向所述服务提供方传递所述用户名和加密信息元素,
在所述服务提供方处,从所述客户文件中检索与从所述用户接收到 的所述用户名对应的安全代码,以及
使用与所述用户设备使用的加密算法相同的加密算法,在所述服务 提供方处,使用从所述客户文件中检索到的所述安全代码作为解密密钥, 来对所述加密信息元素进行解密。
本发明的又一方面涉及一种安全从服务提供方向用户设备的用户传 递信息元素的方法,所述用户以他/她的用户名和通过根据本发明的方法 获得的关联安全代码登记在服务提供方处的客户文件中,
所述方法包括以下步骤
在所述服务提供方处,从所述客户文件中检索要被传递所述信息元
素的所述用户的所述安全代码,
使用加密算法并使用所述安全代码作为加密密钥,对所述信息元素 进行加密,
向所述用户传递加密信息元素,
当在所述用户设备中接收到所述加密信息元素后,向所述用户设备 输入用户个人代码,并且从所述用户设备的数据存储装置中取得所述用 户设备的所述设备标识符,
在所述用户设备内部计算所述安全代码,以及
使用与所述服务提供方使用的加密算法相同的加密算法,在所述用 户设备中使用刚才计算出的安全代码作为解密密钥,来对所述加密信息 元素进行解密。
这一安全从服务提供方向用户设备的用户传递信息元素的方法,可 以用于发送消息,并且用于保持针对其他方应当秘密的信息,以及用于 发送不应被复制的数字内容(如电子票,或要被保护不受违法复制的其 它数字内容、音乐、视频、软件等)。
本发明还涉及一种可编程用户设备,该可编程用户设备包括至少一 个数据输入接口、数据处理装置以及数据存储装置,该数据存储装置包 括预存储有独特标识所述用户设备的设备标识符的可读防篡改存储部, 所述可编程用户设备被编程为根据本发明的任一前述方法运行一处理。
优选的是,所述用户设备的设备标识符是在向用户交付之前嵌入在 该设备中的产品序列号,并且对于移动电话(蜂窝电话),所述设备标识
符可以是国际移动设备身份码(对于GSM电话是IMEI码)。
一般来说,本发明可以允许将用户设备用作针对来自多个服务提供 方的多种服务的公共或通用"多码计算器"。


通过以下参照附图对本发明实施方式的实施例的说明,根据本发明
的用户设备和生成安全代码的方法的进一步特征将显现出来,其中 图1是例示根据本发明的用户设备的基本组件的示意框图, 图2是例示生成表示用户设备的用户和用户设备本身的安全代码的 过程的示意流程图,
图3是例示本地安全存储信息的过程的示意流程图,
图4是例示使用由图3的过程安全存储的信息的过程的示意流程图, 图5是例示从服务提供方分发利用用户的公钥加密的信息的过程的
示意流程图,
图6是例示从服务提供方分发利用用户的安全代码加密的信息的过 程的示意流程图,
图7是例示根据本发明一个实施方式对用户进行认证的过程的示意 流程图,以及
图8是例示在服务提供方处的初始用户登记的过程的示意流程图。
具体实施例方式
参照图1,根据本发明的用户设备包括至少一个数据输入接口 (如 数字小键盘、全键盘1,或其它接口装置)、数据处理装置(如微处理器 控制器2),以及数据存储装置3 (如RAM、 ROM以及/或高速缓冲存储 器,并且包括优选为ROM的可读防篡改存储部4,在该可读防篡改存储 部4中存储有独特标识该设备的设备标识符),还包括诸如显示窗5、计 算机监视器等的数据输出能力,并且对于本发明的一些实施方式,可选 的是还包括通信模块6,该通信模块用于与诸如标准计算机外围设备、计 算机网络的外部设备进行单向或双向通信,该通信模块可能包括用于任 一种专用或公共电信业务的收发器装置。
本发明的用户设备是可编程的,即,它能够执行读取到其微处理器 的存储器中的计算机程序和应用。为了实现本发明的一些实施方式,用 户设备还应当能够与将用户登记为客户或订户的服务提供方交换信息。 因此,符合GSM技术的移动电话(蜂窝电话)被视为特别适合于本发明 的目的。然而,设想其它个人电子设备,如便携式计算机(膝上型)和 手持式信息设备(PDA:个人数字助理)甚或台式个人计算机(PC)以 及未来的移动电话,在按与GSM移动电话类似的方式设置有恰当的设备
身份码(EI)时,当然也可以使用。还可以预见未来的袖珍式计算器或 专用普通密码生成器也可以使用。
安全代码计算软件
可以将用于计算安全代码所需的软件永久地存储在本发明的用户设 备中。例如可以在制造时将它实现在该设备中。为了准许使用上述合适 种类的现有设备,可以经由任何类型的数据提供介质(如软盘、光盘
(CD-ROM)以及插入式数据存储装置(存储棒或存储卡)在任何时刻
向所述设备提供专用应用。在该设备具有通信能力的情况下,可以从软 件厂商经由所述设备的通信网络将所述应用下载至所述设备,以用于直 接执行和/或进行存储以备以后使用。
根据本发明,安全代码计算软件是完全不包含秘密的通用计算机程 序。可以向公众公开这种程序或应用,以便在任何合适的用户设备上使 用。原理上,除了因使用不同操作系统、编程语言、编译器等而造成的 计算机相关差异外,这种应用对于每一个用户设备都可以是相同的。
在不损害安全性的情况下原理上自由分发安全代码计算软件和可以 从一个设备向另一设备复制该软件这一特征,是本发明的主要优点,尤 其是与在用户软件本身中需要存在秘密的安全方案相比。
由安全代码软件执行的计算典型地基于用于生成安全代码的单向加 密算法(例如,散列算法)和用于对信息元素进行加密/解密的双向加密 算法的应用,但是也可以使用各种其它种类的加密算法。所用的加密方 法对于本发明的实现不是决定性的。然而,安全代码应当充分独特,并 且它应当不能从代码本身导出其输入数据元素(即,单向加密)。安全代 码计算软件的另一重要特征是,它被设计成每当要使用安全代码时就读 取独特标识受关注设备的设备标识符,并且从来不将计算出的安全代码 存储在该设备中。
安全代码计算
参照图2,在一个实施方式中,根据本发明的通过可编程用户设备
(参见图1)和刚才描述的用户软件生成安全代码的方法,包括三个主要 步骤
持有设备的用户经由设备数据输入接口将他/她的用户个人代码键 入到该设备中(步骤S1),
该设备从它本身的数据存储装置4中取得设备标识符(步骤S2),
以及
基于取得的设备标识符和键入的用户个人代码的组合,该用户设备
在其内部计算安全代码(步骤S3)。
由此获得的安全代码基于两个因素。因此,被视为双因素认证方案, 用户个人代码构成"你所知道的"部分,而设备标识符则构成"你所具 有的"部分。安全代码表示用户和用户设备的独特标识,但不能根据安 全代码重新计算出原始输入标识符(用户个人代码和设备标识符)。根据 本发明的方法防止了输入标识符被暴露给任何其他方,并且还是不需要 按任何方式存储用户个人代码的方法。
原理上,用户可以自由选择键入任何合适的个人代码,以生成安全 代码。个人代码当然可以是针对不同用途的不同个人代码。在该情况下, 安全代码既表示用户又表示用户设备。该代码现在可以通过设备的数据
输出能力输出,如显示在显示窗5中,或者可以通过通信模块6输出, 以发送到某外部本地或远程设备,例如发送到位于服务提供方的位置处 的通信设备。
尽管图2中未示出,但另选的是,在适于本发明的实施方式时,在 用户设备内部计算安全代码可以基于三个因素的组合。除了上述两个因 素(即,设备标识符和用户个人代码)以外,在计算安全代码时还可以 包括由服务提供方或由用户自己选择的用于标示服务提供方的服务提供 方代码。这种"三因素"安全代码本身表示针对服务提供方的用户和用 户设备,或者由相应服务提供方提供的特定服务。这种服务提供方代码 当然可以存储在用户设备的数据存储装置3中,以供以后使用。
替代引入服务提供方代码作为独立的第三代码,可以把服务提供方 的某种表示合并到用户个人代码中,使其变成两部分代码,从而对于每
个服务提供方都有一个不同的安全代码。
本发明的方法能够针对每一个服务提供方生成特定的或不同的安全 代码,这使得用户能够将同一设备用于一个以上的服务提供方处的安全 服务,而不会损害安全性。服务提供方不需要共享相同的安全代码,并 且服务提供方不能够重新计算出输入的标识符。
随着生物特征编码技术的发展,还设想这样的可能性,即,使生物 特征数据可以作为根据本发明的安全代码的一部分。因此,表示用户的 生物特征数据可以单独构成用户个人代码,或者可以作为用户个人代码 的构成部分,由此从"你所具有的"转变到"你是"的情况。在这种情 况下,用户设备需要配备有或者连接至合适的输入装置,以准许从用户 的特征扫描生物特征细节并将其提供给用户设备。
典型的是,用户个人代码和服务提供方代码中的每一个都可以包括 字母字符序列和/或数字字符序列,该序列容易记住,并且在处理中被转
换成二进制编码数据序列。用户代码和服务提供方代码还可以是单独的 或者与其它信息项相组合,包括己转换成二进制编码数据序列的信息项。 表示用户的生物特征数据是这种预编码二进制数据的示例。
在任何情况下,安全代码的计算都可以包括简单的算术运算,或者 复杂的加密运算,或者使用其它种类的加密技术。然而,这种运算应当 使得不能根据所述代码和/或根据对输入元素中的一些的获知而导出针对 计算的输入数据元素。
信息的加密/解密
下面,参照图3,当在用户设备上存储信息的元素时可以使用本发 明的安全代码,使用该安全代码作为加密密钥在存储所述信息之前对该 信息进行加密。该过程典型地可以包括下列步骤
用户通过键盘1指定或启动例如生成需要安全存储的信息元素(例 如,PKI (公钥基础设施)系统中的私钥)的过程或计算机程序(步骤
Sl),
用户典型地经由键盘1将用户个人代码键入到设备中(步骤S2),
该设备从它本身的数据存储装置4中取得设备标识符,并在它本身
内部计算安全代码(步骤S3和S4),以及
该设备使用安全代码作为加密密钥,对信息元素进行加密,并且将
加密的信息元素存储在该设备的数据存储装置3中(步骤S5和S6)。 如果用户针对不同用途而选择使用不同个人代码,则他/她可以例如
出于本地安全存储信息元素的目的而选择一个特定代码。
在所示出的实施例中,生成了 "双因素"安全代码,但是,特别是
在要安全存储的信息元素涉及服务提供方时,同样也可以使用"三因素"
安全代码。
随后,在用户设备内,可以使用安全代码作为解密密钥,在使用之 前检索如上在存储在设备上之前加密的信息元素并对其进行解密。如图4
所示,这种过程可以包括下列步骤
用户例如通过键盘1选择或者通过其它装置指定一个或更多个安全
存储在设备上的信息元素(步骤S1),
用户典型地经由键盘1将存储所涉及的信息元素时使用的个人代码
键入到设备中(步骤S2),
该设备从它本身的数据存储装置4中取得设备标识符,并在它本身 内部计算安全代码(步骤S3和S4),以及
该设备使用安全代码作为解密密钥,对信息元素进行解密,从而使 得用户可以在恰当时间读取和/或使用解密的信息元素(步骤S5和S6)。
在一优选实现中,出于安全原因,在使用之后总是将解密的信息元 素删除,而仅将加密的信息保留在设备的数据存储装置3中。
用于安全通信的安全代码
在一优选实施方式中,用户设备配备有通信功能,该通信功能准许 通过有线或无线通信网络来与服务提供方进行单向和/或双向数据通信。
在这种情况下,如果服务提供方想要使用非对称双密钥加密方案, 由此在向用户发送之前对要向用户分发的信息进行加密,则如图5所示, 可以利用加密方案的公钥在发送之前对该信息进行加扰(步骤S1)。如果
进行设置而使得按通过使用安全代码作为加密密钥而获得的加密格式将 加密系统的对应私钥预先存储在用户设备上,那么,用户设备可以被编 程为在接收到加扰信息时执行以下操作
使用安全代码作为解密密钥,来对存储在设备上的加密的私钥进行 解密(步骤S5),并且
使用解密的私钥对从服务提供方接收到的加扰信息进行去扰(步骤
S6)。
在这种情况下,不需要将安全代码存储在服务提供方的位置处。公 钥可以由用户指定,或者被预先存储在服务提供方的位置处,或者可通 过通知/公告牌服务而公开获得。
另选的是,代替使用双密钥加密方案,如果进行了设置而使得在服 务提供方的位置处可存储提供方服务的用户的安全代码,则服务提供方 可以针对秘密信息的分发而使用本发明的安全代码。如图6所示,在发 送之前使用安全代码作为加密密钥来对信息进行加密(图6中的步骤Sl) 的这种处理可以包括使用刚计算出的设备的安全代码对从服务提供方接 收到的加密信息进行解密的步骤(图6中的步骤S4和S5)。
在两种情况下,在使用之后,出于安全的原因,优选的是删除解密 的信息,不再设备上留下其痕迹(除非使用安全代码作为本地加密密钥 来将它存储在本地,如图3所示)。
用于认证的安全代码
另外,实际上可以将安全代码用作用于对用户的身份和属于他/她的 用户设备进行验证的基础。
在本发明的一个实施方式中,用户设备包括通信模块6 (参见图1)。 就根据本发明的认证方法而言,可以将由此提供的通信功能用于经由用 户设备本身而与服务提供方优选地以"在线"方式交换信息。在这种情 况下,参照图7,假定用户已经以他/她的用户名和根据本发明的关联安 全代码登记在服务提供方处的客户文件中,则对用户设备的用户进行认 证的方法可以包括以下步骤-.
将用户名键入到电子设备中,并且将键入的用户名从该设备发送到 服务提供方(步骤S2),
在服务提供方处,在客户文件中进行搜索,以査找从电子设备接收 到的用户名,并且如果在该文件中存在所述用户名,则从服务提供方向
电子设备发送邀请(步骤S3和S4),
将用户个人代码键入到电子设备中,并且从该电子设备的数据存储
装置中取得该设备的设备标识符(步骤S5),
基于所述设备标识符和所述用户个人代码在该电子设备内部计算安 全代码(步骤S6),
基于所述安全代码和从服务提供方作为所述邀请的一部分而接收到 的变量,利用加密算法,在该电子设备内部计算一次性密码(步骤S7),
从该电子设备向服务提供方发送计算出的一次性密码(步骤S7),
在服务提供方处,从客户文件中检索与从该电子设备接收到的用户 名对应的安全代码(步骤S8),
基于从客户文件中检索到的安全代码以及与传输至该电子设备并由 该电子设备使用的变量相同的变量,利用与用户设备使用的加密算法相 同的加密算法,在服务提供方处计算一次性密码(步骤S9),以及
在服务提供方处,比较刚计算出的一次性密码和从电子设备接收到 的一次性密码(步骤SIO)。
如果一次性密码相同,则认证结果为肯定,确认由用户名标识的用 户拥有该电子设备,并且拥有对应的用户个人代码,否则,认证结果为 否定。
当用户设备配备有通信模块时,本发明还可以通过根据要在用户设 备与服务提供方或者其它第三方之间传送的消息或者根据其摘要来计算 数字签名或MAC (消息认证代码)而用于消息认证,根据本发明的安全 代码是参与这种计算的一个要素。
在本发明的另一实施方式中,在用户设备不包括通信模块,由此不 可以经由用户设备本身而与服务提供方直接交换信息的情况下,或者如 果不便于通过设备交换所有信息,则用户可以充任用户设备与服务提供
方之间的"中介"。为了和服务提供方通信,用户接着可以使用任何可用 的通信手段,如可连接至因特网的个人计算机,例如,按可接受的方式, 优选地按实时方式,实现了用户向服务提供方发出指示和服务提供方向 用户返回响应的交换这一要点。在出于安全考虑需要时,当然可以按任 何常规方式对通信链路或其信道进行加扰或加密。
原理上,不管是否存在用于设备到设备通信的技术方案,本发明的 认证方法都可以和图7所示方法相类似,只不过在用户设备缺乏通信功 能时以个人和某中其它通信方案作为"中介"。
还设想到这样的可能性,即,代替从服务提供方作为来自其的邀请 的一部分而接收变量(图7中的步骤S7),可以通过用户设备本身生成要 用于在用户设备内部计算一次性密码的变量。在这情况下,必须进行设
置,使得服务提供方能够在该侧计算一次性密码时使用相同变量(图7 中的步骤S9),以与从用户设备接收到的一次性密码进行比较(图7中的 步骤IO)。这种设置是本领域技术人员已知的,并且例如可以包括使用时 变数字或顺序数字的同步部分的机制。
初始用户登记
对于向公众提供的许多服务来说, 一般来说,这种服务的客户或用 户必须向相应的服务提供方进行登记,以获准使用相关的服务(例如, 预订服务)。就针对这种服务使用本发明的实施方式而言,这也是一种情 况。因此,如图7中的步骤Sl所示,例如,前提条件是用户最初以他/ 她的用户名和通过本发明的方法获得的关联安全代码在服务提供方进行. 登记。
用户获得他/她的安全代码的一种方式是,执行上面在"安全代码计 算"部分阐述的并且在图2中例示的方法的步骤,生成"双因素代码"。 另一种方式是,首先输入特定服务提供方代码(其可以仅与一个特定服 务有关),接着计算"三个因素代码",这也在所述部分中提到过。这种
过程如图8所示,可以包括以下步骤
从服务提供方向用户发送服务提供方代码(步骤Sla),或者由用户
选择服务提供方代码(步骤Slb),
在用户位置处,向用户设备输入服务提供方代码(步骤S2), 典型地通过键盘将用户个人代码键入到电子设备中(步骤S3),
从该电子设备的数据存储装置取得该设备的设备标识符(步骤S4),
可选地把服务提供方代码存储在该电子设备的数据存储装置中(步
骤S5),
基于设备标识符、用户个人代码以及服务提供方代码,在该电子设
备内部计算安全代码(步骤S6),
将用户名和计算出的安全代码发送给服务提供方(步骤S7),以及 将用户名和从用户接收到的关联安全代码登记在服务提供方处的客
户文件中(步骤S8)。
在任一情况下,可以通过任何可用的通信手段(如通过邮政业务的
信件、传真,甚或通过话音通信)来实现用户与服务提供方之间的信息交换。
尽管基于以软件实现本发明对优选实施方式进行了说明,但本发明 可以通过执行与上述实施方式的软件类似的任务的硬件组件来实现。
权利要求
1、一种通过可编程用户设备生成可再现安全代码的方法,该可再现安全代码用于用户认证,并且用于对信息进行存储、签署以及加密/解密,所述可编程用户设备包括至少一个数据输入接口、数据处理装置以及数据存储装置,该数据存储装置包括预存储有独特标识所述用户设备的设备标识符的可读防篡改存储部,所述方法的特征在于,其包括以下步骤经由所述数据输入接口将用户个人代码输入到所述用户设备中,从所述用户设备的所述数据存储装置中取得所述设备标识符,基于至少所述设备标识符和所述用户个人代码的组合,在所述用户设备内部计算安全代码,以及输出计算出的安全代码,由此计算出的安全代码本身既表示所述用户又表示所述用户设备。
2、 根据权利要求1所述的方法,该方法在所述在所述用户设备内部 计算安全代码的步骤之前还包括以下步骤向所述用户设备输入表示对所述用户以他/她的用户名进行登记的 服务提供方的服务提供方代码,基于所述设备标识符、所述用户个人代码以及所述服务提供方代码 的组合,在所述用户设备内部计算安全代码,以及输出计算出的安全代码,由此计算出的安全代码本身针对一个特定服务提供方表示所述用户 和所述用户设备。
3、 根据权利要求1或2所述的方法,其中,所述用户个人代码和所 述服务提供方代码各包括相应的字母字符序列和/或数字字符序列,或者 二进制数据序列。
4、 根据权利要求1或2所述的方法,其中,表示所述设备的所述用户的生物特征数据构成所述用户个人代码的全部或一部分。
5、 根据权利要求3所述的方法,其中,所述服务提供方代码表示由 所述服务提供方提供的服务。
6、 根据权利要求2所述的方法,该方法还包括在所述用户设备的所 述数据存储装置中存储所述服务提供方代码的步骤。
7、 根据权利要求6所述的方法,其中,所述在所述用户设备内部计算安全代码的步骤,基于所述设备标识符、所述用户个人代码以及预先 存储在所述用户设备的所述数据存储装置中的所述服务提供方代码的组合。
8、 一种对用户设备的用户进行认证的方法,所述用户以他/她的用户名和通过根据任一前述权利要求所述的方法获得的关联安全代码登记 在服务提供方处的客户文件中,所述方法的特征的在于,其包括以下步骤 向所述服务提供方指示用户名,在所述服务提供方处,在所述客户文件中进行搜索,以查找指示的 用户名,并且如果在所述文件中存在指示的用户名,则向所述用户返回 邀请,向所述用户设备输入用户个人代码,并且从所述用户设备的所述数 据存储装置中取得所述用户设备的所述设备标识符, 在所述用户设备内部计算所述安全代码,向所述用户设备输入从所述服务提供方作为所述邀请而接收到的变 量,并且基于所述安全代码和所述变量,使用加密算法来在所述用户设 备内部计算一次性密码,向所述服务提供方指示计算出的一次性密码,在所述服务提供方处,从所述客户文件中检索与所述用户指示的所 述用户名对应的安全代码,基于从所述客户文件中检索到的安全代码以及与向所述用户返回并 由所述用户设备使用的变量相同的变量,使用与所述用户设备所使用的 加密算法相同的加密算法,在所述服务提供方处计算一次性密码,在所述服务提供方处,比较刚才计算出的一次性密码和从所述用户 接收到的一次性密码,并且 如果两个一次性密码相同,则认证结果为肯定,确认由用户名标识 的所述用户拥有所述用户设备并且拥有对应的用户个人代码,否则,认 证结果为否定。
9、 根据权利要求8所述的方法,其中,由所述用户提供给所述服务 提供方的指示和由所述服务提供方返回给所述用户的响应,是通过使得 可以在所述用户与所述服务提供方之间交换信息的通信方案来传输的。
10、 根据权利要求9所述的方法,其中,所述用户设备设置有通信功能,该通信功能使得所述用户可以通过所述设备的数据输入接口向所 述服务提供方输入他/她的指示以传送给所述服务提供方,并且使得所述 用户可以将来自所述服务提供方的响应直接接收到所述用户设备中。
11、 根据权利要求9所述的方法,其中,所述双向通信方案包括在所述用户设备外部可用于所述用户的公共通信服务或设施。
12、 一种在可编程用户设备上安全存储信息的方法,所述可编程用户设备包括至少一个数据输入接口 、数据处理装置以及数据存储装置, 所述数据存储装置包括预存储有独特标识所述用户设备的设备标识符的 可读防篡改存储部,所述方法包括在存储之前对所述信息进行加密的信 息加密步骤和在检索到存储的加密信息后对该信息进行解密的信息解密 步骤,所述方法的特征在于所述信息加密步骤包括使用安全代码作为加密密钥来对要存储的信 息进行加密的步骤,并且所述信息解密步骤包括使用同一安全代码作为解密密钥来检索存储 的加密信息的步骤,所述安全代码是通过以下步骤生成的经由所述数据输入接口将用户个人代码输入到所述用户设备中, 从所述用户设备的所述数据存储装置中取得所述设备标识符, 基于至少所述设备标识符和所述用户个人代码的组合,在所述用户 设备内部计算安全代码,以及分别针对所述信息加密步骤/所述信息解密步骤,输出计算出的安全 代码。
13、 根据权利要求12所述的方法,其中,表示所述设备的所述用户 的生物特征数据构成所述用户个人代码的全部或一部分。
14、 一种对要在用户设备的用户与服务提供方之间交换的信息元素进行签署的方法,所述用户以他/她的用户名和通过根据权利要求1到7中的任一项所述的方法获得的关联安全代码登记在服务提供方处的客户 文件中,所述方法的特征在于,其包括以下步骤如果在所述用户设备处不存在要由所述用户签署的信息元素,则从 所述服务提供方向所述用户设备传递所述信息元素,向所述用户设备输入用户个人代码,并且从所述用户设备的所述数 据存储装置中取得所述用户设备的所述设备标识符,在所述用户设备内部计算所述安全代码,基于所述安全代码和要签署并传递到所述服务提供方的所述信息元 素,使用加密算法,在所述用户设备内部计算"签名",向所述服务提供方传递所述用户名和所述"签名",并且如果在所述 服务提供方处不存在要由所述用户签署的所述信息元素,则还向所述服 务提供方传递所述信息元素,在所述服务提供方处,从所述客户文件中检索与从所述用户接收到 的所述用户名对应的安全代码,基于从所述客户文件中检索到的所述安全代码以及所述信息元素, 使用与所述用户设备使用的加密算法相同的加密算法,在所述服务提供 方处计算"签名",在所述服务提供方处,比较刚才计算出的"签名"和从所述用户接 收到的"签名",以及如果两个"签名"相同,则确认所述用户设备处的所述用户已经专 门对所述信息元素进行了签署并且该信息元素尚未被修改,否则,签署 结果为否定。
15、 根据权利要求14所述的对信息元素进行签署的方法,其中,所 述"签名"包括数字或电子签名,或者消息认证代码(MAC)。
16、 一种安全从用户设备的用户向服务提供方传递信息元素的方法, 所述用户以他/她的用户名和通过根据权利要求1到7中的任一项所述的方法获得的关联安全代码登记在服务提供方处的客户文件中,所述方法的特征在于,其包括以下步骤向所述用户设备输入用户个人代码,并且从所述用户设备的所述数 据存储装置中取得所述用户设备的所述设备标识符, 在所述用户设备内部计算所述安全代码,使用加密算法并使用所述安全代码作为加密密钥,在所述用户设备 内部对要向所述服务提供方传递的所述信息元素进行加密,向所述服务提供方传递所述用户名和加密信息元素,在所述服务提供方处,从所述客户文件中检索与从所述用户接收到 的所述用户名对应的安全代码,以及使用与所述用户设备使用的加密算法相同的加密算法,在所述服务 提供方处,使用从所述客户文件中检索到的所述安全代码作为解密密钥, 来对所述加密信息元素进行解密。
17、 一种安全从服务提供方向用户设备的用户传递信息元素的方法, 所述用户以他/她的用户名和通过根据权利要求1到7中的任一项所述的方法获得的关联安全代码登记在服务提供方处的客户文件中,所述方法的特征在于,其包括以下步骤在所述服务提供方处,从所述客户文件中检索要被传递所述信息元 素的所述用户的所述安全代码,使用加密算法并使用所述安全代码作为加密密钥,对所述信息元素 进行加密,向所述用户传递加密信息元素,当在所述用户设备中接收到所述加密信息元素后,向所述用户设备 输入用户个人代码,并且从所述用户设备的所述数据存储装置中取得所 述用户设备的所述设备标识符,在所述用户设备内部计算所述安全代码,以及 使用与所述服务提供方使用的加密算法相同的加密算法,在所述用 户设备中使用刚才计算出的安全代码作为解密密钥,来对所述加密信息 元素进行解密。
18、 一种可编程用户设备,该可编程用户设备包括至少一个数据输 入接口、数据处理装置以及数据存储装置,该数据存储装置包括预存储 有独特标识所述用户设备的设备标识符的可读防篡改存储部,所述用户 设备的特征在于,其被编程为根据任一前述权利要求所述的方法运行一 过程。
19、 根据权利要求18所述的用户设备,所述用户设备的设备标识符 是在向用户交付之前嵌入在该用户设备中的产品序列号。
20、 根据权利要求19所述的用户设备,所述用户设备是移动电话, 即蜂窝电话,该移动电话的设备标识符是国际移动设备身份码,对于GSM 电话则是IMEI码。
全文摘要
本发明提供安全代码生成方法和使用方法及用于其的可编程设备。描述了一种通过可编程用户设备生成安全代码的方法。生成的安全代码本身既表示用户又表示用户设备。在一个实施方式中,表示对用户以他/她的用户名进行登记的服务提供方的服务提供方代码,构成对计算安全代码的基础的附加。安全代码可用于多种安全应用,如用于用户认证,和用于信息的本地存储,以及用于对要在用户与服务提供方之间或者要在服务提供方与用户之间交换的信息进行签署和加密/解密。
文档编号G06F21/34GK101103358SQ200680002014
公开日2008年1月9日 申请日期2006年1月11日 优先权日2005年1月11日
发明者埃里克·林德摩, 彼得·陶戈波尔 申请人:恩凯普公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1