永久锁定攻击检测的制作方法

文档序号:6537450阅读:119来源:国知局
永久锁定攻击检测的制作方法
【专利摘要】除了其他事项之外,本申请文档讨论了一种攻击检测模块,所述模块配置成在从设备受到多次连续攻击之后永久性地关闭从设备。
【专利说明】永久锁定攻击检测
[0001]优先权要求
[0002]本申请根据专利法典35U.S.C.§ 119(e)要求2013年2月7日提交的美国临时申请序列号为61/762,262,题为“永久锁定攻击检测”的优先权,其全部内容以引用方式并入本文。
【技术领域】
[0003]本专利申请整体涉及安全领域,更具体地讲涉及永久锁定攻击检测。
【背景技术】 [0004]在主/从架构中,主设备或程序可控制一个或多个从设备或程序。例如,主设备可包括移动电话、平板电脑、或一个或多个其他个人电子设备,从设备可包括用于这种主设备的附件,例如头戴耳机、外部监视器、或利用通信标准或协议,例如通用串行总线(USB)或其他标准等连接的一个或多个其他附件。

【发明内容】

[0005]除其他事项外,本专利申请讨论了配置成在多个连续攻击之后永久性地关闭从设备的攻击检测模块。
[0006]本部分旨在提供对本专利申请主题的概述。并非旨在提供对本发明的排他性或穷举性解释。包括【具体实施方式】以提供有关本专利申请的进一步信息。
【专利附图】

【附图说明】
[0007]在未必按比例绘制的附图中,类似的数字在不同的视图中可表示类似的部件。具有不同字母下标的类似的数字可表示类似部件的不同情形。附图以举例的方式而非限定的方式总体上示出了本专利申请中讨论的各种实施例。
[0008]图1总体上图示了示出示例锁定算法的流程图。
[0009]图2总体上图示了图解表示,示出了可作为示例实施例一部分的计算机系统的示例形式的机器。
【具体实施方式】
[0010]除其他事项之外,本发明人认识到用于主机或从设备攻击检测的锁定算法。在一个实例中,本文描述的锁定算法能成功计算连续攻击的次数而不受交替的加电复位(POR)影响,并且能基于(例如,可编程数字,例如2-225之间或更大)连续攻击的次数执行永久锁定。系统可包括配置成存储锁定状态的非易失性存储器(NVM),锁定状态在某些实例中一旦设置便不能清除。
[0011]在一个实例中,可能需要对主机和从设备之间的通信协议(例如USB)的识别(ID)部件(例如ID引脚)进行验证。这样的一种验证可包括对主设备攻击的从设备。在这种验证期间,主设备可向附属设备发送校验和(例如,随机数所附的校验和)。从设备可将该校验和与内部生成的校验和进行比较。如果内部校验和与接收到的校验和匹配,则主设备为合法设备。如果内部校验和与接收到的校验和不匹配,则主设备不是合法设备。在一个实例中,如果内部校验和连续多次与接收到的校验和不匹配(校验和失配),则锁定算法可永久性地关闭从设备。
[0012]在一个实例中,主机或从设备中的至少一个可包括专用NVM寄存器用于存储对连续校验和失配的计数。在一个实例中,锁定算法可假定每次附连都是一次攻击,从而使攻击者规避锁定的机会最小化。这样,针对没有攻击的每次从设备附连,NVM寄存器可接收两次写入。每次附连被推定有罪为攻击,直到另外证明是无辜的为止。
[0013]图1总体上图示了示出示例锁定算法100的流程图。在101处,主设备(主机)可从从设备(从属)请求设备ID。在102处,从设备可向主设备发送该设备ID。在103处,从设备可读取NVM锁定寄存器、将内容写入计数器并将NVM锁定寄存器递增。在工厂最终测试中可将NVM寄存器全部清零。在104处,从设备可将计数器的值与上限比较。如果在104处,计数器值大于上限,则在105处,从设备可被关闭(例如,永久性地)并且可忽略将来的ID发送。如果在104处,计数器值小于或等于上限,则在106处,从设备可将该计数器值写入NVM寄存器。在107处,从设备可从主设备接收随机数/校验和。在108处,从设备可生成内部校验和并且将该内部校验和与从主设备接收的校验和进行比较。如果在108处,内部校验和与接收到的校验和相同,则确定为有效的主设备并且在109处,从设备可将计数器和NVM寄存器清零(例如,全部清零)。如果在108处,内部校验和不同于接收到的校验和,则确定为非法主设备。在110处,从设备可继续进行验证。
[0014]在一个实例中,连续校验和失配的上限可以与客户讨论,但是可以相对低(例如,小于100,小于50等)。另外,在某些实例中,以上方法可由主设备执行或添加到主设备。
[0015]具有差分或简单功耗分析(DPA、SPA)的边通道攻击会要求对从属/主设备的重复迭代。即使借助现有的DPA/SPA对策,未来也存在这些对策会被规避的可能性。失配校验和可表明试图进行验证的无效主设备。这样,可能有利的是,在超过最大攻击次数之后锁定ID协议。
[0016]图2是计算机系统1000的示例形式的机器的图解表示,其中可运行使得机器执行本文所讨论的方法中的任何一个或多个的一组指令。在替代实施例中,机器作为独立设备运行或者可以连接(例如联网)到其他机器。在联网部署中,机器可在服务器-客户网络环境中作为服务器或客户机,或者在对等(或分布式)网络环境中作为对等机运行。该机器可为服务器计算机、客户端计算机、个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、网络设备、网络路由器、交换机或桥接器、或能执行指定由该机器采取行动的一组指令(序列或另外方式)的任何机器。另外,尽管仅图示单个机器,但是术语“机器”还应该被看作包括单独或联合运行执行本文讨论的方法的任何一个或多个的一组(或多组)指令的机器的任意集合。
[0017]示例计算机系统1000包括处理器1002 (例如,中央处理单元(CPU)、图形处理单元(GPU)或两者)、主存储器1004和静态存储器1006,经由总线1008彼此通信。计算机系统1000还可包括视频显示单元1010 (例如,液晶显示器(IXD)或阴极射线管(CRT))。计算机系统1000还包括数字字母输入设备1012 (例如,键盘)、光标控制设备1014 (例如,鼠标)、盘驱动单元1016、信号生成设备1018 (例如,扬声器)和网络接口设备1020。
[0018]盘驱动单元1016包括机器可读介质1022,其上存储实现本文所述的方法或功能的任何一个或多个的一组或多组指令(例如软件1024)。软件1024还可以完全或至少部分地驻留在主存储器1004、静态存储器1006和/或在由计算机系统1000、主存储器1004、静态存储器1006和还构成机器可读介质的处理器1002执行期间驻留在处理器1002内。
[0019]软件1024还通过网络接口设备1020在网络1026上发送或接收。
[0020]尽管在示例实施例中机器可读介质1022示出为单个介质,但是术语“机器可读介质”应当被看作包括存储一组或多组指令的单个介质或多个介质(例如,中央或分布式数据库和/或相关的缓存器或服务器)。术语“机器可读介质”还应当被看作包括能存储、编码或执行由机器运行的一组指令以及使得机器执行本公开的方法的任何一个或多个的任何介质。术语“机器可读介质”因此将看作包括但不限于固体存储器、光学和磁媒介和载波信号。
[0021]某些实施例在本文被描述为包括逻辑或多个模块、部件或机构。模块、逻辑、部件或机构(在下文统称为“模块”)可以是能执行某些操作并且配置成或以某种方式布置的有形单元。在示例实施例中,一个或多个计算机系统(例如,独立式、客户端或服务器计算机系统)或计算机系统的一个或多个部件(例如,处理器或处理器组)可通过软件(例如,应用程序或应用程序部分)配置成操作以执行如本文所述的某些操作的“模块”。
[0022]在各种实施例中,“模块”可以机械或电子方式实现。例如,模块可以包括永久配置成执行某些操作的专用电路或逻辑(例如,在专用处理器中)。模块还可包括由软件暂时配置成执行某些操作的可编程逻辑或电路(例如,包含在通用处理器或其他可编程处理器)。应当理解,决定机械方式在专用和永久配置电路中,或在暂时配置电路(例如过软件配置)中实现模块可通过成本和时间考虑因素来驱动。
[0023]因此,术语“模块”应当理解成包含有形实体,为物理构成,永久配置(例如,硬连线)或暂时配置(例如,编程)以某种方式操作和/或执行本文描述某种操作的实体。考虑其中暂时配置(编程)模块或部件的实施例,模块或部件中的每一个无需在任意一个情形中及时地配置或实例化。例如,如果模块或部件包括使用软件配置的通用处理器,则通用处理器可配置为不同时间下的各自不同模块。软件因为可以配置处理器在一次情形中构成特定模块以及在不同情形下构成不同模块。
[0024]模块可为其他模块提供信息以及从其他模块接收信息。因此,所述的模块可看作以通信方式耦接。如果多个这种模块同时存在,则可通过信号发送(例如,通过适当电路和总线)实现连接模块的通信。在其中不同次数配置或实例化多个模块的实施例中,例如可以通过在多个模块可访问的存储器结构中存储和获取信息来实现这些模块之间的通信。例如,一个模块可执行操作,并且将该操作的输出存储在以通信方式耦接的存储器设备中。另外的模块随后可在稍后访问存储器设备来获取并且处理存储的输出。模块还可引发与输入或输出设备的通信,并且可在某资源上运行(例如,信息集合)。
[0025]另外的注释和实例
[0026]在实例I中,系统包括锁定计数器和配置成检测对从设备的攻击的攻击检测模块。攻击检测模块配置成:响应于接收的设备ID请求向主设备发送该设备ID ;使锁定计数器递增;如果锁定计数器的递增值大于上限,则永久性地关闭从设备;以及,如果锁定计数器的递增值小于或等于上限:则从主设备接收校验和;生成内部校验和;将接收的校验和与生成的内部校验和进行比较;以及,如果接收的校验和与内部校验和相同,则将锁定计数
器清零。
[0027]在实例2中,实例I任选地包括主设备和具有锁定计数器和攻击检测模块的从设备。
[0028]在实例3中,实例1-2中的任何一个或多个的从设备任选地配置成使用有线通用串行总线(USB)通信协议耦接到主设备。
[0029]在实例4中,实例1-3中的任意一个或多个的主设备任选地包括个人电子设备和包括用于移动电子设备的附件的从设备。
[0030]在实例5中,实例1-4中的任何一个或多个任选地包括锁定寄存器,其中攻击检测模块配置成:在将锁定计数器递增之前,将锁定寄存器的值写入锁定计数器;如果锁定计数器的递增值小于或等于上限,则将锁定计数器的递增值写入锁定寄存器;以及,如果接收的校验和与内部校验和相同,则将锁定计数器和锁定寄存器清零。
[0031]在实例6中,实例1-5中的任何一个或多个的锁定寄存器任选地包括非易失性(NVM)锁定寄存器。
[0032]在实例7中,实例1-6中的任何一个或多个的攻击检测模块任选地配置成从主设备接收作为一随机数的附加校验和的所述校验和并且使用该随机数生成内部校验和。
[0033]在实例8中,其中实例1-7中的任何一个或多个的锁定计数器的值任选地与从设备的加电复位(POR)无关。
[0034]在实例9中,一种用于检测对从设备的攻击的方法包括:从主设备接收设备ID请求;响应于接收到的设备ID请求将该设备ID发送到主设备;将锁定计数器递增;将锁定计数器的递增值与上限比较;如果锁定计数器的递增值大于上限,则永久性地关闭从设备;以及,如果锁定计数器的递增值小于或等于上限:从主设备接收校验和;生成内部校验和;将接收的校验和与内部生成的校验和比较;以及,如果接收的校验和与内部校验和相同,则将锁定计数器清零。
[0035]在实例10中,实例1-9中的任何一个或多个的从设备任选地配置成根据有线通用串行总线(USB)通信协议耦接到主设备。
[0036]在实例11中,实例1-10中的任何一个或多个的主设备任选地包括个人电子设备和具有用于移动电子设备的附件的从设备。
[0037]在实例12中,实例1-11中的任何一个或多个包括:在将锁定计数器递增之前,将锁定寄存器的值写入锁定计数器;如果锁定计数器的递增值小于或等于上限,则将锁定计数器的递增值写入锁定寄存器;以及,如果接收的校验和与内部校验和相同,则将锁定计数器和锁定寄存器清零。
[0038]在实例13中,实例1-12中的任何一个或多个的锁定寄存器任选地包括非易失性(NVM)锁定寄存器。
[0039]在实例14中,从实例1-13中的任何一个或多个的主设备接收校验和任选地包括从主设备接收作为一随机数的附加校验和的校验和,以及生成实例1-13中的任何一个或多个的内部校验和任选地包括使用该随机数。
[0040]在实例15中,一种具有其上存储指令的非易失性机器可读存储介质,该指令在被机器执行时使得机器执行以下操作,包括:从主设备接收设备ID请求;响应于接收的设备ID请求将该设备ID发送到主设备;将锁定计数器递增;将锁定计数器的递增值与上限比较;如果锁定计数器的递增值大于上限,则永久性地关闭从设备;以及,如果锁定计数器的递增值小于或等于上限:则从主设备接收校验和;生成内部校验和;将接收的校验和与内部生成的校验和比较;以及,如果接收的校验和与内部校验和相同,则将锁定计数器清零。
[0041]在实例16中,实例1-15中的任何一个或多个的从设备任选地配置成根据有线通用串行总线(USB)通信协议耦接到主设备。
[0042]在实例17中,实例1-16中的任何一个或多个的主设备任选地包括个人电子设备以及包括用于移动电子设备的附件的从设备。
[0043]在实例18中,操作进一步包括:在将锁定计数器递增之前,将锁定寄存器的值写入锁定计数器;如果锁定计数器的递增值小于或等于上限,则将锁定计数器的递增值写入锁定寄存器;以及,如果接收的校验和与内部校验和相同,则将锁定计数器和锁定寄存器清零。
[0044]在实例19中,实例1-18中的任何一个或多个的锁定寄存器任选地包括非易失性(NVM)锁定寄存器。
[0045]在实例20中,从实例1-19中的任何一个或多个的主设备中接收校验和任选地包括从主设备接收作为一随机数的随机校验和的校验和,并且生成实例1-19中的任何一个或多个的内部校验和任选地包括使用该随机数。
[0046]在实例21中,一种系统或装置可包括,或可任选地与实例1-20中的任何一个或多个的任何部分的任意部分或组合相结合从而包括,执行实例1-20的功能中的任何一个或多个的装置,或者包括指令的机器可读介质,在由机器执行时,该指令使得机器执行实例1-20的功能中的任何一个或多个。
[0047]以上【具体实施方式】包括对构成【具体实施方式】一部分的附图的引用。附图以举例说明的方式示出了可实践本发明的特定实施例。这些实施例在本文也称作“实例”。这些实例可包括除了那些所示出或描述之外的组件。然而,本发明人还设想到其中仅提供所示或所述的那些组件的实例。此外,本发明人还设想到或者相对于特定实例(或其一个或多个方面)或者相对于本文所示或所述其他实例(或者其一个或多个方面),利用所示或所述的那些组件的任何组合或排列(或其一个或多个方面)的实例。
[0048]在本申请文档中提及的所有出版物、专利、和专利文档其全文以弓I用方式并入本文,仿佛以引入方式单独并入一样。在本申请文档与以引用方式如此并入的那些文档之间使用不一致的情况下,在并入的参考文献中的使用应当认为是对本申请文档的使用的补充,对于不可调和的不一致,以本申请文档中的使用为准。
[0049]在本申请文档中,正如在专利文档中通用的那样,使用了术语“一个”或“一种”从而包括一个或多于一个,与“至少一个”或“一个或多个”的任何其他情形或使用无关。在本申请文档中,术语“或者”用来指代非排他性的或者,从而“A或者B”包括“有A没有B”,“有B没有A”,以及“有A也有B”,除非另外指明。在本申请文档中,术语“包括”和“在其中”用作各自术语“包含”和“其中”的通俗英语等同物。而且,在所附权利要求中,术语“包括”和“包含”是开放式的,即,除了在权利要求中这样的术语之后列出的那些组件之外的组件的系统、设备、物品或程序运转仍将认为落入该权利要求范围内。此外,在所附权利要求中,术语“第一”、“第二”和“第三”等仅用作标签,并且并非旨在对其对象施加数值需求。
[0050]本文所述的方法实例可以是至少部分执行的机器或计算机。有些实例可包括使用指令编码的计算机可读介质或机器可读介质,所述指令可操作将电子设备配置成执行上述实例中描述的方法。这种方法的实现可包括代码,例如微代码、汇编语言代码、高级语言代码等。这种代码可包括用于执行各种方法的计算机可读指令。该代码可形成计算机程序产品的一部分。另外,在一个实例中,例如在执行期间或其他时间,该代码可有形地存储在一个或多个易失性、非瞬时性或非易失性有形计算机可读介质。这些有形计算机可读介质的实例可包括但不限于硬盘、可拆除磁盘、可拆除光盘(例如,致密盘和数字视频盘)、磁带、存储卡或存储棒、随机存取存储器(RAM)、只读存储器(ROM)等。
[0051]以上说明旨在是示例性的,而非限制性的。例如,可以相互结合地使用上述实例(或其一个或多个方面)。例如在浏览以上说明时本领域技术人员可以使用其他实施例。根据专利实施细则37C.F.R.§ 1.72(b)提供说明书摘要从而允许读者快速确定技术公开的实质。根据以下理解提交说明书摘要,它将不用于解释或限制权利要求的范围和含义。另外,在以上【具体实施方式】中,各个特征可组合在一起从而精简本公开。这不应当解释为想要表达未要求保护的公开特征对任意权利要求是必不可少的。相反,具有创造性的主题可能少于某些公开实施例的所有特征。这样,所附权利要求由此并入【具体实施方式】中,每个权利要求作为单独实施例表示 其自身,并且设想这些实施例可以各种结合或排列方式彼此结合。应当参考所附权利要求以及与这些权利要求所赋予的整个范围一起来确定本发明的范围。
【权利要求】
1.一种攻击检测系统,包括: 锁定计数器;以及 攻击检测模块,配置成检测对从设备的攻击,其中所述攻击检测模块配置成: 响应于接收的设备ID请求将所述设备ID发送到主设备; 递增所述锁定计数器; 如果所述锁定计数器经递增后的值大于上限,则永久性地关闭所述从设备;以及 如果所述锁定计数器经递增后的值小于或等于所述上限,则: 从所述主设备接收校验和; 生成内部校验和; 将所接收的校验和与所生成的内部校验和进行比较;以及 如果所接收的校验和与所述内部校验和相同,则将所述锁定计数器清零。
2.如权利要求1 所述的系统,包括: 主设备;以及 包含所述锁定计数器和所述攻击检测模块的从设备; 其中所述从设备配置成使用有线通用串行总线通信协议耦接到所述主设备,以及 其中所述主设备包括个人电子设备而所述从设备包括用于移动电子设备的附件。
3.如权利要求1所述的系统,包括: 锁定寄存器, 其中所述攻击检测模块配置成: 在递增所述锁定计数器之前,将所述锁定寄存器的值写入所述锁定计数器; 如果所述锁定计数器经递增后的值小于或等于所述上限,则将所述锁定计数器经递增后的值写入所述锁定寄存器;以及 如果所接收的校验和与所述内部校验和相同,则将所述锁定计数器和所述锁定寄存器清零。
4.如权利要求3所述的系统,其中所述锁定寄存器包括非易失性存储器锁定寄存器。
5.如权利要求1所述的系统,其中所述攻击检测模块配置成: 从所述主设备接收作为一随机数的附加校验和的所述校验和;以及 使用所述随机数生成所述内部校验和。
6.如权利要求1所述的系统,其中所述锁定计数器的值不受所述从设备的加电复位的影响。
7.一种用于检测对从设备的攻击的方法,包括: 从主设备接收设备ID请求; 响应于接收的设备ID请求将设备ID发送到所述主设备; 递增锁定计数器; 将所述锁定计数器经递增后的值与上限进行比较; 如果所述计数器经递增后的值大于所述上限,则永久性地关闭所述从设备;以及 如果所述锁定计数器经递增后的值小于或等于所述上限,则: 从所述主设备接收一校验和; 生成内部校验和;将所接收的校验和与所生成的内部校验和进行比较;以及 如果接收的校验和与所述内部校验和相同,则将所述锁定计数器清零。
8.如权利要求7所述的方法,包括: 在递增所述锁定计数器之前,将锁定寄存器的值写入所述锁定计数器; 如果所述锁定计数器经递增后的值小于或等于所述上限,则将所述锁定计数器经递增后的值写入所述锁定寄存器;以及 如果所接收的校验和与所述内部校验和相同,则将所述锁定计数器和所述锁定寄存器都清零。
9.如权利要求7所述的方法,其中从所述主设备接收校验和包括:从所述主设备接收作为一随机数的附加校验和的校验和,并且 其中生成所述内部校验和包括使用所述随机数。
10.如权利要求7所述的方法,其中递增所述锁定计数器不受所述从设备的加电复位的影响。
【文档编号】G06F21/64GK103984893SQ201410045113
【公开日】2014年8月13日 申请日期:2014年2月7日 优先权日:2013年2月7日
【发明者】罗伯特·A·卡德, 杰斐逊·霍普金斯, C·克莱恩, M·J·米斯克, 迈克尔·史密斯, 约翰·R·特纳, 尹杰勇 申请人:快捷半导体(苏州)有限公司, 快捷半导体公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1