用于增进对访问软件应用的限制性的系统和方法

文档序号:6454124阅读:243来源:国知局
专利名称:用于增进对访问软件应用的限制性的系统和方法
技术领域
本发明一般涉及访问移动设备上的软件应用,尤其涉及增进对访问移动设备上的 软件应用的限制性。
背景技术
使用个人识别号(PIN)以及使用口令——后者因口令能实现附加特性(例如,字 母数字)而更为广泛——来限制对软件应用和服务的访问是普遍的且被广泛地认可。但是,使用PIN和/或口令来限制访问的弱点是众所周知的。例如,PIN或口令在 使用时会容易被窃取,在它们被传送时尤其如此。最获公认的用于克服由秘密PIN或口令 曝露导致的弱点的方法之一是代之以使用“一次性口令”。即,仅一次使用有效的PIN或口 令。显然,如果一次性口令在其被使用时曝露,则此曝露不构成问题,因为该一次性口 令再使用时不再有效。现在,访问服务或应用(在下文中,称为“目标应用”)的实体应当使 用所谓的口令生成器设备来为下一次访问获得有效的一次性口令。这些口令生成器设备常常使用顺序算法或时间相关算法来对一次性口令的计算 播种并随后为访问者显示它们。对PIN/ 口令曝露问题的这种解决方案产生了另一问题。 即,如果一次性口令生成器落入未经授权者手中会发生什么?显然,违法分子此时将处在 可访问“本应”受限制的目标应用的理想处境中。这个新问题——即一次性口令生成器将落入未经授权者手中的可能性——可容 易地通过请求到恒常或固定PIN或口令才能使用一次性口令生成器来解决。这一次,PIN/ 口令恒常这一事实不构成问题,这是由于这样的固定PIN/ 口令不被传送,且该恒常口令仅 被使用或输入到该一次性口令生成器中,由此不容易被曝露这一事实。当然,访问实体应当携带附加设备——即该一次性口令生成器——这一事实至少 并非是优势。并且,这普遍被视为是不便的处境。由于普遍趋势是携带一台设备——即蜂窝电话——来用于所有可能的用途,因此 自然的办法是使用访问实体的蜂窝电话作为一次性口令生成器。即,将能够计算一次性口 令的软件应用下载到蜂窝电话中,由此除其它功能之外尤其将该蜂窝电话转换成一次性口 令生成器。如今,这种办法被广泛地使用,并且数家公司正营销这种解决方案。但是,现在已 确认有一种相对较新的问题。我们在此所指的是蜂窝电话软件应用缺乏安全性的问题。蜂窝电话应用容易被曝露、窃用和侵入,因此是不安全的,基于Java的应用尤其 如此。Java应用毫不费力就能被的逆向工程,并且对熟练的入侵者要使诸如口令等的数据 保密是很难的。现在,PIN/ 口令原理的真正本质是共享秘密这一事实构成目前用于限制对应用的 访问的方法的弱点。对秘密PIN/ 口令的知识并不被限制于访问服务或应用的实体、而是也 必须为受限制蜂窝电话一次性口令生成器应用所知这一事实确实是安全性漏洞。为什么 应用应当知道PIN 因为这是为了使应用能够核实并将由访问实体输入的口令与正确的PIN/ 口令作比较所必需的。如果黑客能读取蜂窝电话存储器并由此读取期望的口令,则他也能以与经授权的所有人一样的方式使用一次性口令生成器软件。总而言之,固定口令方法的弱点之一源于要被访问的一次性口令生成器应用知道秘密这一事实,因此如果违法分子可访问到此秘密,就意味着该违法分子知道了 口令,并且 能假扮经授权实体并由此访问到一次性口令生成器应用。用于克服上述安全性漏洞的简单直接的办法包括不是保持PIN而是代之以保持或存储固定PIN的散列值。如众所周知的,任何散列函数均是单向函数,并且在理论上不可 能从PIN的散列值向PIN本身逆行。这一事实克服了上述的安全性问题,这是由于假定黑 客读取到PIN的散列值,他将无法推论出PIN,由此一次性口令生成器应用限制性看起来是 安全的这一事实。绝大多数一次性口令生成器蜂窝电话软件应用在如此使用散列函数。但是,这种安全性仅是表面上的,因为黑客有简易方式来克服这种散列障碍。本发 明的目的之一是为了揭露目前使用的存储PIN的散列值的办法固有的缺乏安全性问题,以 及示出真正克服一次性口令生成器类型的蜂窝电话受限制应用缺乏安全性问题的方法。虽然散列函数不可逆因而攻击者不能从PIN的散列值演绎或推论出PIN本身是完 全正确的。但是攻击者能将整个一次性口令生成器应用复制到PC并创建脚本,该脚本将仅 仅是简单地尝试所有可能的PIN组合,直至最终正确的PIN将被输入从而一次性口令生成 器将在该PC中工作的那一刻。因此,攻击者能知道在特定蜂窝电话中运行特定应用的正确PIN。值得注意的是, 在一次性生成器应用限定尝试以允许有限数目个接连的错误PIN的情形中,这种限定容易 通过在PC中重启应用来克服。自然,攻击者可运行一次性口令生成器应用,而其将显示此刻正确的一次性口令 值。结果,攻击者就能访问目标应用,由此破坏了对目标应用的限制性。显然的结论是目前 使用的要求PIN的保护对蜂窝电话一次性口令生成器应用的访问的方法是不安全的。附图简述通过结合附图参考详细描述和权利要求书可得到对本发明更完整的理解,在附图 中相似的附图标记通篇指代相似要素,并且其中

图1示出根据具本发明的实施例的基于有效PIN生成和使用加密密钥的方法;图2示出根据本发明的实施例的计算正确口令的方法;以及图3示出根据本发明的实施例的限制对软件应用的访问的方法。发明详细描述本发明在此可能是以各种组件和处理步骤的形式来描述的。应当领会,这类组件 和步骤可由配置成执行所说明的功能的任何数目的硬件和软件组件来实现。例如,本发明 可采用电子控制设备、视觉显示设备、输入终端等,它们可在一个或以上控制系统、微处理 器或其它控制设备的控制下实行各种功能。另外,本发明可在任何数目的移动设备中实践, 而蜂窝电话仅是可与本发明联用的一种示例性移动设备。本发明涉及一种增进一次性口令生成器应用——尤其是下载到蜂窝电话中和/或 在其中运行的那些——的安全性的系统和方法。根据本发明,一旦客户设置了应用并确立 了 PIN,则该PIN将不被存储在蜂窝电话存储器中,并且不仅该PIN的散列值将全然不被存储在该蜂窝电话中,而且该PIN的任何其它派生物也将不被存储在该蜂窝电话中。应当领会,根据本发明的一个方面,客户选择的PIN将既不会被记忆或以其它 方式存储在蜂窝电话内部,也不会被存储在蜂窝电话外部——譬如任何像订户身份模块 (SIM)卡那样的蜂窝电话设施、通用串行总线(USB)连接的设施、或者无线设施。另外,根据 本发明的一方面,不仅是PIN而且作用于该PIN的单向函数的任何数字结果也将不被传送 给另一实体以进行存储。换言之,根据本发明的这类对PIN的选择将由客户作出,并且通常仅为该客户所 知。预期的问题是如果软件应用不知道PIN,则应用如何能将访问仅限制于经授权的用 户?如果蜂窝电话既没有对客户选择的PIN的记忆也没有对该PIN的派生物(例如,该PIN 的散列值)的记忆,则其中的一次性口令生成器应用如何能核实或确认或证实该PIN是正 确的?结论是软件应用不能核实或确认或证实客户所输入的PIN。在没有任何关于此PIN的信息的情况下,一次性口令生成器应用无法核实PIN是 否正确。确切而言,这种不可能性正是本发明胜于先前使用的方法的优势之一。这意味着 一次性口令生成器应用将运行——包括在PIN是错误的PIN的情况下。尝试不同PIN的攻 击者将得不到关于其猜测正确PIN成功与否的任何暗示。在任何情形中,应用都将生成并 显示一次性口令。但是在保护一次性口令(OTP)生成器应用的限制性方面本发明提供了比 先前使用的方法更强的保护。参看图1,根据本发明的一个实施例,当PIN首次被输入时(步骤110)——通常是 在注册(步骤100)期间或紧随其后——本发明提供对应用的秘密密钥/数据(“A. S. K. ”) 的计算(步骤120),以及对加密密钥“K”的计算(步骤130),末项(K)是由蜂窝电话所有 人选择的PIN的强函数。根据本发明的实施例,本发明的方法也提供使用“K”对A. S. K.的 加密(& [A. S. K.])(步骤140)。当然,应用在蜂窝电话的任何存储器中将既不保持“K”也 不保存PIN,但是自然将存储也称为密文的&[A. S. K.](步骤150)。参看图2,这样,每次蜂窝电话真正的所有人想要得到在其蜂窝电话中运行的 OTP生成器应用的帮助下生成的OTP时,该真正的所有人可再调用OTP生成器应用(步骤 200),输入仅为该真正的所有人所知的PIN(步骤210),而OTP生成器应用将计算加密密钥 “K” (步骤220),并且有了此“K”,它将解密出所记忆着的eE[A. S. K.](步骤230),4 [互s[A· S. K. ]] = Α. S. K.由而,复原出Α. S. K.,并且由此知道Α. S. K.的OTP生成器应用将准备好计算正确 的 OTP。与之对比,参看图3,试图从应用获得正确OTP的诸如攻击者等的未经授权者可能 将应用复制到PC中(步骤300),在PC中以系统方式就地运行它以尝试所有可能的PIN组 合,并且在每次最大猜测次数用尽时,他可在PC中再次启动以重新运行应用直至猜测出的 正确PIN将能运行该应用。但是根据本发明的方法,输入的任何PIN(步骤310)——无论其 有效还是无效——皆将运行应用以生成OTP (步骤320),然而,当输入的是错误的PIN时,在 任何情形中,这种OTP都将是错误的,因此,攻击者能用以发现所猜测的PIN是否有效的唯 一方式是使用待检查的OTP来访问服务器的目标应用(步骤330)即原始的应用。现在,由 于攻击者并非控制着目标应用这一事实,因此他将仅能够尝试非常有限数目个接连的错误 0ΤΡ(比方说5次尝试)并且此后受攻击的账户将立即变得不可使用并被停止(步骤340)。
5因此,攻击者不能访问目标应用并成功。因而,限制已起作用。这就是本发明的方法确实提供了克服归咎于蜂窝电话中缺乏安全性的问题以及 归咎于普遍认识到的攻击者对保持在蜂窝电话存储器中的所有秘密数据有潜在访问可能 的攻击的途径的原因。根据本发明的方法,由于PIN并不被存储或传送这一事实,要窃取它 是不可能的。虽然在以上已使用一次性口令生成器应用解释了本发明关于如何增进在蜂窝电 话中运行的应用的安全性的优点和优势,但是本领域技术人员应当清楚,以上所提出的相 同方法可用于增进在攻击者能访问到存储在设备存储器中的任何秘密的非安全设备(即, 蜂窝电话、PDA、PC)中运行的任何合需应用的安全性以及限制对其的访问。根据示出了本发明的方法如何增进在蜂窝电话中运行的“必须受限制”应用的限 制性的本发明另一实施例,以下将述及在输入蜂窝电话的数据之上生成PKI数字签名的应 用。关于生成数字签名的应用的进一步的信息请参阅如在授予本发明的发明人的英国专利 No. 2374182和美国专利No. 6,912,659中所描述的应用。显然,应当使PKI私钥保持安全以 对抗未经授权者将获得对这种知识的访问并由此能够数字地签署文档以假扮私钥的正当 所有人的任何可能性。另外,美国专利No. 6,912,659描述了用于使公钥保持机密和秘密的 方法。如在前例中那样,在蜂窝电话中运行的数字签名应用将落入未经授权者手中的可 能性可容易地通过请求到恒常PIN或口令才能使应用生效来避免。但是,如上所述,蜂窝电 话应用容易被曝露、窃用、侵入,因此不安全。现在,口令原理的真正本质是共享秘密这一事 实构成对此访问限制的这种防御的弱点。如以上所解释的,当述及OTP生成器应用时,根据目前使用的防御方法,对秘密即 口令的知识并不被限定于访问服务或应用的实体、而是也必须为受限制的蜂窝电话数字签 名应用所知这一事实确实是安全性漏洞。显然,如果黑客能读取蜂窝电话存储器并由此读取期望的口令,则他也能以与经 授权的所有人一样的方式使用数字签名应用软件。结果,固定口令方法的弱点之一源于这 样的事实要被访问的数字签名应用知道秘密(即,PIN、此PIN的散列值等),因此如果违 法分子可访问此秘密,就意味着该违法分子知道了口令并能假扮经授权实体并且由此能使 用数字签名应用。已讨论过使用PIN的散列值的现用方法所固有的缺乏安全性的问题。攻击者可将数字签名应用复制到PC中并创建脚本,该脚本将仅仅是简单地尝试 所有可能的PIN组合,直至最终正确的PIN被输入并且在PC中的该数字签名应用将工作的 那一刻。因此,攻击者能知道在特定蜂窝电话中运行特定应用——即数字签名应用——的 正确PIN。显然的结论是以往使用的通过请求PIN来保护对蜂窝电话数字签名应用的访问 的方法是不安全的。现在,将证明本发明的方法确实提供了克服蜂窝电话中缺乏安全性的 问题以及普遍认识到的攻击者对存储在蜂窝电话存储器中的所有数字签名应用秘密数据 有潜在访问可能的问题的途径。如在根据本发明的实施例的前例(OTP生成器)中那样,一旦客户设置了数字签名 应用并确立了 PIN,则不仅该PIN将不被保持在蜂窝电话存储器中,该PIN的散列值也将全 然不被保持在该蜂窝电话中,该PIN的可用于核实或确认试探PIN是否是正确PIN的任何其它派生物亦是如此。如前,客户选择的PIN将既不会被记忆或以其它方式存储在蜂窝电话内部,也不 会被外部地存储于任何蜂窝电话设施中。这意味着PIN将不被传送给另一实体以进行保 持,不但是PIN,而且作用于该PIN的单向函数的任何数字结果亦是如此。换言之,这种对运 行数字签名应用的PIN的选择将仅为经授权客户所知。同样如前,在不具有任何关于此PIN 的信息的情况下,数字签名应用没有能核实新输入的PIN是否正确的途径。这意味着数字 签名应用将运行——包括在PIN是错误的PIN的情况下——从而生成数字签名,而在此情 况下其将是无效的数字签名。尝试不同PIN的攻击者将得不到关于其猜测正确PIN成功与 否的任何暗示。在任何情形中,应用都将生成数字签名。如上所述,本发明提供了比目前使用的基于存储PIN的散列值的限制防护更强大 的保护。根据本发明的实施例,一种方法提供当首次输入所选PIN时,在登记期间对PKI 对——即私钥和公钥——的计算、以及对附加加密密钥“K”的计算——末项(“K”)是由蜂 窝电话所有人选择的PIN的强函数,其旨在将对PKI私钥的访问仅限于知道此PIN的实体。 本发明的这一方法也提供了使用“K”对PKI私钥的加密,% [PKI 私钥]。当然,应用在蜂窝电话存储器中将既不保持“K”,也不保持此PIN,但是应用将保 持鸟[PKI私钥]。这样,每次蜂窝电话真正的所有人想要使用在该所有人的蜂窝电话中运行的数字 签名应用来数字签署某些数据时,该蜂窝电话所有人就将再调用数字签名应用,输入仅为 该蜂窝电话所有人所知的PIN,而数字签名应用将计算加密密钥“K”,并且有了此“K”,它将 解密出所记忆着的& [PKI私钥], dE [es [PKI 私钥]]=PKI 私钥,并且因此知道PKI私钥的数字签名应用将准备好在合需数据之上计算正确的数 字签名。在不知道正确PIN的攻击者或任何未经授权者试图访问数字签名应用的处境下。 在此处境下,攻击者可能计划将应用复制到PC中,在PC中以系统方式就地运行它以尝试所 有可能的PIN组合,并且在每次最大猜测次数用尽时,他可在PC中再次重启以重新运行应 用直至猜测出的正确PIN将能运行该应用。但是根据本发明的方法,输入的任何PIN——无 论其有效还是无效——皆将运行数字签名应用以生成数字签名,然而如果输入的是错误的 PIN,则在任何情形中这种数字签名都将是错误的,因此,攻击者能用以发现所猜测的PIN 是否有效的唯一方式是使用以试探PIN获得的计算出的数字签名(S卩,向银行发送经数字 签署的指令以执行交易)。现在,由于攻击者并非控制着银行数字签名应用这一事实,因此将使得该攻击者 仅能够尝试极有限数目个接连的错误数字签名(例如,5次尝试),并且受攻击的账户随后 将变得不可使用且从数字签名银行应用的观点看来变成被停止。因此,攻击者将不能进行 假扮并成功。因此再次地,根据本发明的实施例,对称加密密钥“K”——一方面它是计算为所选 PIN的强函数而另一方面此“K”以及PIN既不被保持在设备的存储器中也不被保持在任何如SIM卡、USB令牌、任何附加SIM卡、附加CPU等设备设施中,而是在每次输入PIN时计算 此“K”,因此显然,应用仅在输入了正确的PIN的情况下才将重新计算出正确的“K”,这个事 实增进了对应用的限制性,而不管攻击者是否可到达任何设备存储器。这是因为,如果重新计算出的加密密钥并非正确的“K”,而比方是从输入的错误 PIN推论出的任何不同的密钥“W”,由此以下数学运算dt[es[PKI私钥]]=错误的私钥将得到错误的私钥。并且使用这样错误的私钥计算出的数字签名将与X. 509证书的公钥不一致,由此 该数字签名将是无效的。如前面提到的,公钥或证书本身不应当被公开成公知,正如以上参 引的专利中所描述的那样。显然,攻击者将仅具有少数几次机会来向等待经客户数字签名 的指令的金融机构发送错误的数字签名,结果该攻击者假扮经授权客户的企图将以失败告 终。应当领会,已使用两种不同蜂窝电话安全性应用或实施例来例示的本发明的方法 并不依赖于应用本身,并且可用在任何需要限制性并在难以阻止攻击者读取存储在设备存 储器中的秘密的企图的环境中运行的应用中。此外,根据本发明的实施例的方法还提供了在知道真PIN的经授权客户想要改变 PIN的任何情况下改换和翻新所选PIN的方法。当经授权客户比方在输入了正确的PIN(旧PIN)之后向应用宣布他用新PIN来改 换和翻新该旧PIN的意图时,应用使用刚输入的旧PIN来计算加密密钥“K”,并将经加密的 应用秘密密钥解密4 [互s[A· S. K. ]] = Α. S. K.从而复原出应用秘密密钥。现在,使用新ΡΙΝ,该应用计算新的加密密钥“ηΚ”并使 用此“ηΚ”加密Α. S. K.。θλ[Α. S. K.]并且应用将其^JA. S. K.])保持在设备存储器中。从现在开始,仅当输入了此新 PIN时,正确的结果才会由应用生成。在此已就特定实施例描述了益处、其它优势、以及对问题的解决方案。然而,这些 益处、优势、对问题的解决方案、以及会导致任何益处、优势、或解决方案发生或变得更显著 的任何要素并不应被解读成任何或所有权利要求或本发明的关键、必要、或本质特征或要 素。本发明的范围相应地不应受除所附权利要求以外任何的限定,在其中对要素单数形式 的引用并非旨在表示“有且仅有一个”,除非明确如此声明,而是确切应为表示“一个或以 上”。上面描述的示例性实施例的要素为本领域普通技术人员所知的所有结构和功能等效 通过引用明确纳入于此,并且旨在被本发明的权利要求所涵盖。
权利要求
1.一种用于增进对使用软件应用的限制性的方法,其中所述软件应用被配置成生成动 态识别码并且其中对所述软件应用的访问是通过向用户请求个人识别号(PIN)来限制的, 所述方法包括使用具有存储器的设备,其中所述软件应用被存储在所述存储器中; 向所述用户请求输入原始PIN,其中所述原始PIN不被存储在所述存储器中,并且任何 关于所述原始PIN的信息不被存储在所述存储器中; 使用所述原始PIN作为种子数字来创建真加密密钥; 使用所述真加密密钥来将应用秘密数据加密成密文; 在所述存储器中存储所述密文;并且 其中任何时候所述软件应用被任何人访问时,都向所述访问的人请求PIN,其中所请求到的 PIN并不由所述软件应用证实;不经任何证实地使用所请求到的PIN作为种子数字来创建加密密钥;以及 使用所述加密密钥来解密所述密文。
2.如权利要求1所述的方法,其特征在于,所述PIN包括口令。
3.如权利要求1所述的方法,其特征在于,所述PIN包括口令与数字的组合。
4.如权利要求1所述的方法,其特征在于,所述设备包括蜂窝电话。
5.如权利要求4所述的方法,其特征在于,所述设备存储器包括外部设施。
6.如权利要求4所述的方法,其特征在于,所述外部设施包括订户身份模块(SIM)。
7.如权利要求4所述的方法,其特征在于,所述外部设施包括通用串行总线(USB)连接 的设备存储器。
8.如权利要求4所述的方法,其特征在于,所述外部设施包括无线存储器设备。
全文摘要
公开了用于增进对访问诸如蜂窝电话等的移动设备上的软件应用的限制性的系统和方法。根据示例性实施例,用于增进对访问软件应用的限制性的计算机实现的系统和方法包括使用具有存储器的设备,其中该软件应用被存储在此存储器中;以及向用户请求原始PIN,其中该原始PIN不被存储在此存储器中,并且任何关于该原始PIN的信息也不被存储在此存储器中。本发明还包括使用原始PIN作为种子数字来创建真加密密钥;使用该真加密密钥来将应用秘密数据加密成密文;以及在此存储器中存储该密文。本发明还包括向正访问目标软件应用的访问者请求PIN,其中所请求到的PIN并不由该软件应用证实;不经任何证实地使用所请求到的PIN作为种子数字来创建加密密钥;以及使用该加密密钥来解密密文。
文档编号G06F21/22GK101999125SQ200780007358
公开日2011年3月30日 申请日期2007年1月29日 优先权日2006年1月31日
发明者I·J·拉巴顿 申请人:西德维技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1