安全测距的方法和架构与流程

文档序号:16366588发布日期:2018-12-22 08:28阅读:213来源:国知局
安全测距的方法和架构与流程

本申请涉及2016年11月10日提交的美国临时专利申请62/420,360和2016年4月14日提交的美国临时专利申请62/322,780并要求其权益。

基于称为ieee802.15.4a的ieee标准的超宽带无线电可以提供精确测距,这可以用于测量或确定各自包括这些无线电中的一个的两个物体之间的距离。关于根据该标准进行测距的更多信息可以在来自mitsubishielectricresearchlaboratories的zafersahinoglu和sinangezici在2006年的文章“rangingintheieee802.15.4astandard”中找到。



技术实现要素:

通过使用由一个或多个测距密钥独立生成或从一个或多个测距密钥导出的测距码,安全测距可用于设备之间的无线电(无线)通信,诸如(1)两个智能电话或(2)智能电话或可穿戴设备与另一设备之间,以允许两个设备基于所接收信号的飞行时间单独地确定设备之间的远近或距离。安全测距的目标是提供两个设备接近的保证。结合相互认证,其可用于为无线交互提供更高级别的安全性来抵御中继攻击。相互认证后,设备可以获得关于它们彼此邻近的保证,并且可参与可能需要该保证的进一步交互。邻近保证可以用作通常通过输入密码或指纹等来表示的用户同意的替代或补充。邻近验证启用的交互的示例可以包括交换数据诸如设备状态或发送策略信息或接受策略信息或发送命令或解锁另一设备。

在一个实施方案中,一种数据处理系统可以包括:第一无线电收发器,其被配置为发送本地生成的伪随机测距码并使用本地生成的代码序列以用于与接收的测距码相关联以确定该数据处理系统与另一系统诸如另一设备之间的距离;应用程序处理系统,其被配置为处理一个或多个用户应用程序,例如蜂窝电话用户应用程序;以及耦接到应用程序处理系统并通过一个或多个硬件总线耦接到第一无线电收发器的安全处理系统和/或安全元件,该安全处理系统被配置为在第一无线电收发器与安全处理系统之间建立加密通信信道,并且被配置为向第一无线电收发器提供一个或多个测距密钥以允许第一无线电收发器生成本地生成的伪随机测距码。在一个实施方案中,第一无线电收发器是超宽带射频收发器,并且数据处理系统包括蜂窝电话收发器。在一个实施方案中,该系统还可以包括第二无线电收发器,诸如蓝牙收发器或wifi收发器或近场通信(nfc)收发器,或耦接到应用程序处理系统和安全处理系统的其他类型的无线电;第二无线电收发器可被配置为在另一设备与数据处理系统之间提供网络通信(或其他类型的通信),该数据处理系统可以是蜂窝电话或手表,其可以在该蜂窝电话与该另一设备之间的安全测距操作之后解锁该另一设备。

在一个实施方案中,安全元件(其可以是每个设备中的安全元件处理系统的一部分)可以使用例如每个设备上的蓝牙收发器来执行设置操作以建立安全通信信道,然后相互认证每个安全处理元件,然后执行安全密钥交换以提供一组一个或多个测距密钥以及一个或多个数据密钥,这些密钥可用于加密在测距过程中使用的带时间戳的信息。在一个实施方案中,通过安全密钥交换产生的一个或多个测距密钥可以以加密的形式提供给超宽带无线电收发器,该超宽带无线电收发器被配置为使用伪随机码与在另一设备上的另一超宽带无线电执行飞行时间测距操作。

在另一个实施方案中,一个或多个设备可以执行一种方法,该方法可以包括:从第一设备中的处理系统接收加密测距密钥;解密该加密测距密钥;确定一个或多个会话参数;在第一设备处本地导出来自测距密钥和一个或多个会话参数的代码序列;从第二设备接收代码序列;利用所导出的代码序列对所接收的代码序列执行相关性运算,以确定所接收的代码序列是否与所导出的代码序列匹配;以及基于所接收的代码序列与所导出的代码序列之间的相关性来确定第一设备与第二设备之间的距离。在一个实施方案中,第一设备和第二设备中的每一者独立地和单独地与相关性运算同时地导出所导出的代码序列,并且第一设备可以是蜂窝电话或智能电话或手表,第二设备可以是移动系统,该移动系统包括多个测距无线电,每个测距无线电单独地且独立地执行相关性运算并且还导出所导出的代码序列。在一个实施方案中,所导出的代码序列是即时导出的,以用于使用所导出的代码序列的相关性运算。在一个实施方案中,成功的测距操作致使蜂窝电话或智能电话或手表解锁另一设备并且可以向该另一设备提供用户数据,其中用户数据可以包括以下中的一项或多项:用于该另一设备的用户设置(例如,在用户的房屋或公寓中打开哪些灯)或者联系人或标识信息或目的地信息等。在一个实施方案中,会话参数可以包括以下中的至少一者:一个或多个序列标识符;或一个或多个会话标识符;或一个或多个发射器标识符。在一个实施方案中,所导出的代码序列由确定性随机数发生器导出,该确定性随机数发生器接收由测距密钥和一个或多个会话参数的组合创建的种子作为输入。

本文所述的方法和系统可通过数据处理系统诸如一个或多个智能电话、平板电脑、膝上型计算机、智能手表、可穿戴设备、音频附件、另一设备内的机载计算机,和其他数据处理系统以及其他消费电子设备来实现。本文所述的方法和系统还可由执行存储在一个或多个非暂态机器可读介质中的可执行的计算机程序指令的一个或多个数据处理系统来实现,该编程指令在被执行时致使所述一个或多个数据处理系统执行本文所述的一个或多个方法。因此,本文所述的实施方案可包括方法、数据处理系统和非暂态机器可读介质。

以上概述不包括本公开的所有实施方案的详尽列表。所有系统和方法可根据以上概述的各个方面和实施方案以及以下具体实施方式中所公开的那些的所有合适的组合来实践。

附图说明

本发明以举例的方式进行说明,并且不仅限于各个附图的图,在附图中类似的标号指示类似的元件。

图1示出了用于在两个设备之间执行安全测距的系统的示例。

图2示出了用于在两个设备之间执行安全测距的系统的示例,每个设备包括测距无线电和蓝牙无线电。

图3为示出根据本文所述的一个实施方案的方法的流程图。

图4示出了用于执行安全测距的系统的示例,其中测距码在每个设备上与用于执行安全测距的相关性运算同时独立地和本地地生成。

图5a是示出根据一个实施方案的用于在延长的时间段内生成测距密钥的方法的流程图。

图5b示出了根据一个实施方案的用于生成与确定性随机数发生器一起使用的种子的示例。

图6a、图6b和图6c示出了两个设备(诸如智能电话和使用该智能电话解锁的另一设备)之间的双向测距操作的三个示例。

图7示出了根据一个实施方案的数据分组的示例,其包括附加代码序列,该附加代码序列可以是本地导出的代码序列,其基于如本文所述的测距密钥和一个或多个会话参数而导出。

图8示出了可用于本文所述的一个或多个实施方案中的双向测距操作的图。

图9是示出数据处理系统的示例的框图,该系统包括通过安全接口耦接在一起的安全元件系统和应用程序处理器系统。

图10是数据处理系统的另一个示例的框图,该系统包括安全区域处理(sep)系统和单独的安全元件,以与测距无线电安全地操作。

具体实施方式

将参考以下讨论的细节来描述各种实施方案和方面,并且附图将对各种实施方案进行说明。以下说明书和附图为例示性的,并且不应被理解为限制性的。描述了许多具体细节,以提供对各个实施方案的全面理解。然而,在某些实例中,熟知的或常规的细节并未被描述,以便提供对实施方案的简明论述。

在本说明书中提到的“一个实施方案”或“实施方案”是指结合该实施方案所述的特定特征、结构或特性可被包括在至少一个实施方案中。在本说明书中的各个位置出现短语“在一个实施方案中”不一定都是指同一个实施方案。在随后的附图中所描绘的过程由包括硬件(例如,电路、专用逻辑部件等等)、软件或这两者的组合的处理逻辑部件来执行。虽然下文按照某些顺序操作来描述该过程,但应当理解,所描述的某些操作可以不同的顺序执行。此外,某些操作也可并行执行而非按顺序执行。

图1中所示的系统101在一个实施方案中可用于在可被称为设备a和设备b的两个设备之间执行安全测距。设备a可以是例如智能电话、可穿戴设备(例如,手表),或平板电脑或其他数据处理系统,设备b可以是另一数据处理系统或另一设备,诸如在一个实施方案中包括安全处理元件的移动系统。在一个实施方案中,设备b或另一设备可以是例如门、房屋、公寓、棚屋、闸门或机动装置或车辆、移动系统、自行车、保险装置、保险箱、壁橱、笔记本电脑、台式电脑、平板电脑、服务器电脑系统、智能电话、可穿戴设备(例如智能手表)、挂锁、箱子、rfid阅读器、rfid标签等。如图1中的设备a所示的设备102可以包括耦接在一起的安全区域或安全元件处理系统107和应用程序处理系统105。应用程序处理系统105可以例如执行用户程序,诸如电话或文本消息收发应用程序或网络浏览器应用程序等。安全元件处理器107可以执行密码操作,诸如加密或解密设备102上的文件或执行其他安全性操作,诸如接收并保护用户密码或用户指纹等。设备102还可以包括一个或多个测距无线电,诸如耦接到天线108a的测距无线电108。测距无线电(rr)108可以实现为超宽带无线电,其类似于实现称为ieee802.15.4a的ieee标准的无线电。测距无线电108可以将伪随机测距码发送到设备103上的测距无线电,并且可以接收此类代码的传输。在一个实施方案中,可以采用双向测距,其中测距无线电108将第一代码序列发送到设备103上的一个或多个测距无线电,并且这些测距无线电中的每一者用被发送回测距无线电108的代码序列进行响应,测距无线电108然后可以响应于来自设备103上的测距无线电之一的代码序列。图8示出了两个测距无线电之间的双向测距操作的示例。在图1所示的示例中,设备103可以是包括一个或多个测距无线电的另一设备。在图1所示的示例中,有六个测距无线电分布在另一设备的外围周围,以允许设备a(设备102)和设备b(设备103)执行三角测量以相对于可以是智能电话的设备102定位另一设备。应当理解,在另选实施方案中可以采用少于六个的测距无线电。还应当理解,设备103可以使用单个测距无线电,但是具有分散在另一设备上的天线,其中测距无线电可以与不同的天线执行时分复用,以提供与分散在另一设备周围的六个测距无线电相同的结果。设备103中的每个测距无线电包括耦接到无线电的对应天线。测距无线电112、114、116、118、120和122通过一个或多个总线耦接到设备103中的安全处理元件111(例如,安全区域或安全元件处理器)。安全元件处理系统111和安全元件处理107可以执行图3中所示的方法或图5中所示的方法。此外,测距无线电108、112、114、116、118、120和122中的每一者可以以图4所示的形式实现,以允许从由安全元件处理系统107和安全元件处理系统111建立的一个或多个测距密钥本地和独立地生成测距码。

在一个实施方案中,可以使用与测距通信信道不同的无线电协议或通信信道来建立第一通信信道。例如,可以在每个设备上使用蓝牙无线电或wifi无线电或nfc无线电以在设备之间建立安全连接,然后允许每个设备上的安全元件执行安全密钥交换,从中可以导出或者生成测距密钥。

无线通信信道诸如蓝牙(bt)或wifi或nfc无线电或其他无线信道可以用于其更高的效率,并且还因为它支持已经明确定义的安全传输协议。该信道的建立已经提供了一种对邻近的暗示,但是容易遭受中继攻击,其中攻击者充当两个设备之间的简单中继器,因此可以让设备相信它们在彼此的距离内,而这是欺骗性的。现有无线协议的这种中继攻击漏洞可能是执行安全测距的核心原理。

为了准备安全测距,可以使用与安全测距所使用的无线通信信道不同的无线通信信道来交换密钥材料(因此可能易受中继攻击)。

当设备进入用于该初始无线通信信道(bt/wifi、nfc无线电、其他无线电)的范围时,该信道用于发起通信,这可以提供第一级加密以实现完美的前向保密性。

基础技术诸如bt或wifi或nfc无线电可以通过预先建立的配对来提供相互认证。在隐私方面,蓝牙低功耗(来自版本4.2)支持在已经配对的设备之间建立隐私保护信道,允许设备使用看似随机的标识符。

使用该第一信道,两个端点设备上的安全处理器(例如,安全元件处理系统107和111)可以在应用程序级别使用每侧上的安全处理器已知的先前交换信息来建立相互认证的密钥交换(共享对称密钥或相应的公钥)。此类方案的一个示例是由globalplatform定义的安全信道协议11。所得的交换密钥由k_ab表示。注意,作为交换的结果,可以共享一个或多个密钥,例如,如果生成了公共秘密然后用于导出多个密钥。在这种情况下,k_ab表示所有这些密钥的集合,并且一般称为“密钥材料”。

为了实现隐私目标并防止跟踪用户,安全处理器可能不会释放任何标识符或可链接项,直到另一方的认证成功为止,并且该标识符应被加密以使窃听者看不到。由例如安全蓝牙信道提供的安全性提供认证和加密,使得安全处理器信道可以不必向其认证的密钥交换协议添加额外的调整。

该架构的一个重要特征是在一个实施方案中,能够组合通信信道/应用程序处理器和安全处理器信道的密钥材料,以便提高安全性。此功能可以提供隐私优势,将来自通信层的完美前向保密性与改进的性能和来自安全处理器的强相互认证相结合。

因此,在一个实施方案中,安全处理器在应用程序级别交换的密钥材料k_ab在被进一步使用之前与来自例如bt/wifi或nfc连接的其他密钥材料和/或协议的转录本的其他部分组合。其他密钥材料的此类示例是蓝牙链接密钥,它是由于两个设备的成功蓝牙配对而由这两个设备共享的128比特密钥,其随后被重新用于这两个已经配对的设备之间的进一步连接。因此,可以将k_ab和链接密钥注入标准密钥导出函数,以便获得替换k_ab的新材料。为了代替链接密钥本身,可以使用从该链接密钥导出的密钥,或者甚至如果该密钥可供sw使用,则可使用从后者导出的蓝牙会话密钥或值。

然后,密钥材料k_ab可用于以下用例:

1)密钥确认:双方由此确认他们生成了相同的密钥并绑定bt/wifi连接和相互认证会话,即他们得到保证:他们在wifi/bt上与之通信的实体是其安全处理器已经过认证的同一实体。

2)安全测距:共享密钥(表示为k_ab)可用于生成不可预测的信号,诸如用于测距无线电的前导码或测距码,或用于保护测距无线电中的交换数据。

3)数据传输:在完成安全测距之前/之后,该密钥材料可用于保护在双方之间传输的数据的完整性和保密性。

4)长期预共享秘密建立:在一个实施方案中,通过安全处理器之间的相互认证密钥交换生成的共享密钥k_ab被保持为长期秘密mk_ab并保留在安全处理器边界内(例如,在如图9所示的安全元素系统903内)。然后在安全处理器之间的另一种类型的相互认证密钥交换协议的进一步迭代期间使用它。在一个实施方案中,目标是只使用一次完备的基于非对称密钥的协议(诸如安全信道协议11(scp11)),或者例如每隔几千次使用一次,然后用基于预共享对称密钥的更简单协议(例如安全信道协议3(scp03))替换scp11,其中每一方发出随机质询,并且从预共享密钥和两个质询的串联导出共享会话密钥。图5示出了使用这两种不同协议的方法的示例。

在一个实施方案中,密钥材料k_ab不像用于用例1、2和3那样使用,而是对于每个用例,k_ab被导出到专用于该用例和该会话的特定会话密钥材料中。例如,代替使用k_ab进行安全测距,使用由两个设备交换的参数将k_ab导出到由k_ab_r表示的仅用于安全测距的密钥材料中。导出函数可以是例如x9.63密钥导出函数。

在一个实施方案中,一旦安全测距操作已经完成,就可以修改用于用例3的密钥材料,以在保证邻近之前和之后的数据交换之间进行清楚的分离。

图2示出了测距系统200的示例,该系统包括设备201和设备202,这两个设备可以通过两个测距无线电进行通信,诸如设备201上的测距无线电211和设备202上的测距无线电221和223。另外,图2中所示的系统200中的每个设备包括例如蓝牙无线电,诸如设备201中的蓝牙无线电205和设备202中的蓝牙无线电217。每个蓝牙无线电包括耦接到蓝牙无线电的天线,以允许无线电在两个蓝牙无线电之间发射和接收信号。在一个实施方案中,蓝牙无线电可用于建立供安全元件处理器207和219用来建立如本文所述的一个或多个测距密钥的安全连接。在另选实施方案中,另一无线电诸如wifi或nfc无线电可用作蓝牙无线电的替代方案。各个设备上的应用程序处理系统203和应用程序处理系统215可以实现用户程序的执行,诸如蜂窝电话程序或导航程序或文本消息程序等。此外,这些用户应用程序可以提供用户界面来允许用户设置一个设备(诸如智能电话),使得只需通过在走向另一设备(例如,设备b)时利用户的口袋或钱包等中的智能电话或者在用户佩戴被配置为解锁该另一设备的可穿戴设备时解锁该另一设备。图2中所示的系统中的每个设备可以包括存储器(例如,存储器209和225),其存储密码值或参数,诸如可以在密码操作中用于认证或加密或以其他方式保护设备内以及设备之间的通信的证书。具体地讲,存储器209可以包括用于设备202的证书(显示为证书b)以及用于每个设备内的测距无线电的证书。在一个实施方案中,存储器209和225可仅由安全元件107和111访问。在一个实施方案中,安全元件处理系统通过安全接口耦接到蓝牙无线电和测距无线电。图4中示出了此类安全接口。该安全接口可以类似于由appleinc.(cupertino,california)提供的iphone设备内的安全区域处理器与应用程序处理系统之间的安全接口。

图3示出了可以使用图2中所示的测距系统执行的方法。另外,该方法可以使用图4中所示的每个设备内的架构,以便在本地和单独地生成用于在每个设备中执行测距操作的密码代码序列。在操作301中,图2中所示的每个设备(诸如设备a和设备b)可以通过第一通信信道(诸如已经使用一个或多个已知蓝牙协议配对的两个设备之间的蓝牙通信信道)或使用替代无线信道(例如,wifi或nfc)建立安全连接。然后,在操作303中,每个设备中的安全元件然后可以通过在操作301中建立的安全连接进行相互认证。认证可以通过使用在制造中供应的或在现场供应到安全元件中的共享秘密或证书,诸如在最终用户响应于查询进行确认以确定最终用户是否信任给定的共享秘密或证书时。此类确认可以响应于查询,诸如“你信任证书b,该证书由制造商x签署,用于具有设备标识号xyz的设备…”。应当理解,本领域中已知有许多用于在两个元件或设备之间执行相互认证的协议,并且在这种情况下,安全元件207和219或图4中的安全元件401和403可以利用在操作301中建立的安全连接来在进行安全密钥交换操作(诸如图3所示的操作305)之前相互认证。在一个实施方案中,图3中所示的操作305可以与操作303组合地执行。在相互认证之后,安全元件(诸如安全元件207和219或图4中所示的401和403)通过安全连接执行安全密钥交换,以导出测距密钥的一个或多个初始形式和一个或多个相关数据密钥,诸如可以用于加密和解密在测距操作中使用的时间戳信息的数据密钥,所述测距操作诸如图8中所示的包括使用此类时间戳的双向测距操作。可选操作307可以提供进一步的附加安全性。在一个实施方案中,操作307可以包括将从安全连接导出的蓝牙链接密钥或其他密钥注入到测距密钥中以创建最终测距密钥和最终相关数据密钥。在一个实施方案中,密钥导出函数可以将在操作305中导出的蓝牙链接密钥和初始测距密钥作为输入,以根据密钥导出函数创建最终测距密钥或一组测距密钥。此外,还可以将相关数据密钥与蓝牙链接密钥一起注入。然后,在操作309中,安全元件可以使用例如可以存储在安全元件处理系统边界内(诸如图9中所示的存储器905)的测距无线电的公钥来加密最终测距密钥和相关数据密钥。然后,加密测距密钥和相关数据密钥可以通过安全接口从安全元件通过硬件接口发送到一个或多个测距无线电。这显示为操作309,并且图4示出了安全元件与每个设备上的每个测距无线电之间的安全接口的示例。图9还示出了安全元件系统903与测距无线电917之间的安全接口的使用,该测距无线电通过安全接口919耦接到安全元件系统903。

再次参考图3,在操作311中,测距无线电接收加密的测距密钥和加密的相关数据密钥并解密这两个密钥,然后可以确定会话参数,诸如一个或多个会话标识符、一个或多个序列标识符,以及一个或多个发射器标识符,然后基于解密的测距密钥以及一个或多个会话参数在测距无线电本地导出密码代码序列。然后,在操作313中,每个设备可以使用密码代码序列并且还使用作为ieee标准802.15.4a的一部分的测距前导码来执行安全测距(还可以用于执行除了使用在操作311中本地生成的密码代码序列执行的测距之外的测距)。在操作315中,每个设备上的每个安全元件可以比较从相关获得的距离,以验证它们如预期并且匹配。例如,图4中所示的安全元件401可以从控制器423接收距离数据,并且还从安全元件403(其从控制器455获得距离数据)接收距离数据。如果这些距离在预定容限内匹配并且密码代码序列符合预期并且匹配,则每个安全元件可以确定它已经与已认证的另一设备安全地执行了测距操作,因此可以在验证安全连接和安全测距已经执行之后执行额外的密码操作或数据交换操作或其他操作(参见图3中的操作317)。例如,安全测距(在操作315之后)可以致使设备b执行致使设备b自身解锁的密码操作,然后设备b和智能电话或可穿戴设备两者可以在设备之间交换数据,诸如用户的身份、用户的偏好(例如,打开的灯)、目的地、新的或修改的联系人信息等。在其他实施方案中,安全测距可以导致计算机或其他数据处理系统解锁或执行被指定为在两个设备之间成功测距之后执行的操作的另一操作。

在一些实施方案中,可以执行操作315的变型。在一个实施方案中,在一个或多个测距无线电中执行相关,并且仅将距离值传送到安全元件。在一个实施方案中,测距操作可以由设备中的一个完成,使结果安全地传送到另一设备。其他实施方案可以执行这些实施方案的各种组合。

实际上,图3所示的方法可以允许智能电话或其他数据处理系统(例如智能手表或其他可穿戴设备)(设备a)的用户走向另一设备(设备b)并使该另一设备响应于认证智能电话并与智能电话执行如本文所述的安全测距操作而解锁自己。在一个实施方案中,用户可以能够走向另一设备(设备b)而不触摸该另一设备(设备b)并致使该另一设备(设备b)解锁自己;在另一个实施方案中,可以要求用户触摸另一设备(设备b),诸如房屋的门把手,以便致使该另一设备(设备b)解锁。除了解锁另一设备(设备b)之外或作为解锁另一设备(设备b)的替代方案,还可以使用电话或手表来允许用户打开该另一设备中的功能或系统、更改该另一设备中的设置,或者可以使用该另一设备执行的任何其他操作。

在一个实施方案中,安全测距操作313可以在序列的发送侧包括密码代码序列以及一个或多个加密时间戳的传输。在序列的接收侧,设备将与相关性运算同时地在本地导出密码代码序列,并将本地导出的密码代码序列与接收到的代码序列相关以执行安全测距。这可以在图4中看到,因为每个设备在接收密码代码序列的同时在本地独立地生成密码代码序列。如果代码序列不匹配,则测距无线电可以警告安全元件,攻击者试图欺骗系统并且试图访问例如另一设备。在图4所示的系统中,设备a包括安全元件401,其可以是安全元件系统903或安全元件系统1005,并且还包括通过安全接口405耦接到安全元件401的测距无线电415。类似地,设备b包括可以类似于安全元件903或安全元件系统1005的安全元件403,以及通过安全接口407耦接到安全元件403的测距无线电417。在一个实施方案中,安全接口405和407是安全接口电路,其为测距无线电与安全元件之间的数据连接提供增强的安全性。

在图4所示的示例中,安全元件通过设置过程402创建一个或多个测距密钥和一个或多个相关数据密钥,诸如密钥409和411(其中测距密钥表示为k_ab_r,并且相关数据密钥表示为k_ab_d)。在一个实施方案中,设置过程402可以使用操作301至309生成加密形式的测距密钥和相关数据密钥,然后通过安全接口将加密密钥发送到设备上的相应测距无线电。例如,安全元件401可以利用测距无线电415的公钥对测距密钥和相关数据密钥进行加密,并将该加密密钥集发送到测距无线电,测距无线电然后可以解密这两个密钥(使用测距无线电的私钥),然后以本文描述的方式使用密钥来生成密码代码序列,这可以与一个实施方案中的操作311相同。

在图4所示的示例中,密码代码序列的生成在每一侧单独地且独立地执行(即,单独地在设备a中且独立于设备b)。例如,测距无线电a将接收加密的测距密钥和相关数据密钥,并将密钥解密。然后可以将测距密钥与会话参数(诸如会话标识符或序列标识符或发射器标识符,或此类会话参数的组合)组合,以创建种子419,然后该种子可以用作随机数发生器421的输入。种子419可以是测距密钥和一个或多个会话参数的级联(或其他组合)。

在各种实施方案中,随机数发生器421可以是伪随机数发生器(prng),诸如确定性随机比特发生器(drbg),或者可以使用伪随机函数(prf)族来实现。在此类实施方案中,随机数发生器421被配置为以确定的方式操作,以为给定的种子生成相同的随机数序列。可以通过使用计数器或其他增量器来生成随机数序列,以致使随机数发生器421基于特定种子输出随机数序列作为输出431。然后,在一个实施方案中,可以由前导码选择器、循环移位器和极性改变器429进一步处理那些输出431,这些前导码选择器、循环移位器和极性改变器可以选择前导码、将输出循环移位并且在一个实施方案中还反转一个或多个比特的极性。

然后,可以将来自循环移位器429的输出的结果提供给相关器425或rf收发器427。当测距无线电a正在向其他测距无线电发射时,来自循环移位器429的输出通过输出434被提供给rf收发器427的发射器,以允许发射密码代码序列,使其由其他测距无线电诸如测距无线电417接收。当测距无线电415正在接收密码代码序列时,rf收发器427中的接收器向相关器425提供输出433,该输出是接收的代码序列,该相关器还从循环移位器429接收输出435以在相关器425中执行常规的相关性运算,从而确定密码代码序列是否与根据输出435上本地生成的密码代码序列匹配,并且还使用本领域已知的技术执行测距操作。相关器425的相关性运算的输出可以被提供给控制器423,该控制器可以指示距离以及密码代码序列是否匹配(在这种情况下,两个设备不会被攻击)。控制器423可以提供要组合到如本文所述的种子419中的会话参数,并且还可以与安全元件401通信以指示安全测距操作是否成功。测距无线电417以与测距无线电415类似的方式工作,并且包括类似的元件,诸如随机数发生器453,其生成输出463,然后可以使用循环移位器461对输出463进行移位和反转,以提供两个输出,一个输出到相关器457,另一个输出到rf收发器459。控制器455可以提供并跟踪会话参数,会话参数可以作为输入与测距密钥一起提供以创建种子451,该种子成为确定性随机数发生器453的输入。

在一个实施方案中,为来自确定性随机数发生器(drng)的特定输出指定特定前导码、循环移位和极性改变的参数可以包括在来自drng的特定输出的一个或多个部分内(例如,随机数发生器421和453),并且这些参数可以由循环移位器(例如,前导码选择器、循环移位器和极性反转器429和461)使用,以执行由来自drng的特定输出的这些部分指定的特定移位和反转。

例如,特定输出中的一个字段可以指定特定的前导码(即96个中的随机1个)、特定的循环移位(即随机),并且另一个字段可以指定特定的极性反转(即随机),因此循环移位和极性反转随着来自drng的随机输出的变化而变化。这样,将额外的可变性注入到本地导出的代码序列中。这还确保测距系统的每一侧(即,设备a和b)将为来自drng的每个特定输出产生相同的前导码、循环移位和极性反转。应当理解,在一个实施方案中,对于给定的测距密钥和一组会话参数,测距系统中的每一侧将从drng产生相同的输出。

在一个实施方案中,来自drng和移位器/反转器429和461的多个输出可以组合以生成长的非重复序列;换句话说,来自drng和前导码选择器、循环移位器和极性反转器429和461的一些大量输出(例如,512个)可以被级联以创建密码代码序列,并且该密码代码序列仅用于会话中的一个序列标识符。对于会话中的下一个序列标识符,可以生成另一组512个输出。这些操作使得复制或预测该序列变得非常困难。

在一个实施方案中,可以实现各种技术以强化防御对系统的旁道攻击。旁道攻击是基于从系统物理实现泄漏的信息(例如,功耗,电磁泄漏等)来破坏系统安全性的尝试,并且可以通过减少信息泄漏或消除泄漏的信息与秘密信息之间的相关性来抵抗。可以在密码过程内的各个点处实现对旁道攻击的抵抗。在一个实施方案中,可以通过将抵御旁道攻击的防护集中于drng的初始状态的构造,来提高系统的整体性能。一旦生成初始状态的过程被强化以防止旁道攻击,就可以使用密码安全的drng,这减少或消除了在drbg生成阶段期间实施旁道对策的需要,并且能够改善密码操作的性能。在一个实施方案中,可以通过将利用参数的密钥导出集中到单个步骤中来实现旁道抵抗,从而仅允许该阶段的旁道防护。在一个实施方案中,可以通过级联每个参数的导出来启用旁道抵抗,这限制了每个中间结果变化的次数。例如,密钥导出函数(kdf)可以基于测距密钥(key)和一组参数(param1,param2,param3)以级联方式计算种子(seed),使得seed=kdf(kdf(kdf(key,param1),param2),param3)。此类级联可以减少对密钥导出函数的旁道防护的需要,因为攻击者可以捕获该函数的更少量的输入或输出。

图3中所示的方法和图4中所示的架构可以利用会话参数来执行,会话参数将额外的随机参数引入到运算中以便阻止试图伪造安全测距操作的攻击者。每个设备中的控制器或每个设备中的安全元件可以基于两个设备之间的安全密钥交换或其他通信来维护和控制会话参数。在图6a所示的示例中,两个单独的会话被示为两个单独的双向测距操作,每个会话具有单独的会话标识符。在设备600与602之间的第一会话中,来自设备600的传输601到达设备602,并且设备602用传输603响应设备600,设备600又通过序列标识符3(如传输605所示)响应设备602。在传输失败或会话失败的情况下,会话可以作为第二具有(和不同)会话标识符的第二会话重复,并且包括三个传输607、609和611,每个传输具有特定的序列标识号。例如,从设备602到设备600的传输609被示出具有序列标识符2,序列标识符2可以与测距密钥一起用作输入以从两个值创建种子,这又可以从确定性随机数发生器生成输出,然后输出密钥由例如前导码选择器、循环移位器和极性改变器进一步处理,以导出密码代码序列。图6b和6c示出了一个示例,其中具有单个测距无线电的单个设备(例如智能电话)向另一设备(例如移动系统)上的一个或多个测距无线电进行广播。在图6b所示的示例中,设备a传输625中将广播发送到移动系统上的所有六个传感器(测距无线电)。作为响应,测距无线电被配置为以预定顺序依次响应(以避免rf冲突)并且还确保每一侧知道与传输相关联的序列标识符。因此,传输627、629、631、633、635和637来自该移动系统上的不同测距无线电,并且每个都具有相关联的不同序列标识符,这些标识符可以用作输入以与测距密钥一起创建种子。例如,可以将测距密钥和序列标识符级联或以其他方式组合以创建种子,使得密码代码序列对于系列627至637中的每个序列或传输是不同的。在传输637之后,设备621用传输639进行响应,传输639被示出具有序列标识符8,该序列标识符再次与测距密钥一起用作输入以创建种子,该种子又用于输入到架构如图4所示的确定性随机数发生器中。

图6c示出了来自设备651的对六个测距无线电的广播的另一示例。图6c中所示的示例类似于图6b中所示的示例,不同的是使用了发射器标识符。因此,设备652上的每个测距无线电具有发射器标识符,该发射器标识符与测距密钥一起用于创建种子,该种子又用作如上所述的确定性随机数发生器的输入。因此,传输655到665共享相同的序列标识号,但具有不同的发射器标识号,这将导致产生不同的种子。图5b示出了如何将测距密钥(诸如作为密钥409的一部分的测距密钥)和会话参数作为输入提供给种子发生器525的示例,该种子发生器生成种子,该种子然后用作确定性随机数发生器的输入。

图7示出了基于ieee802.15.4a标准的分组的示例。分组701可以包括传统的uwb前导码703,其可以用于执行传统的测距操作。另外,分组可以包括帧定界符705的起点,其可以以常规方式使用。另外,分组701还可以包括数据709和物理层标头707。在一个实施方案中,密码代码序列711可以是在图3的操作311中产生的或由循环移位器429和循环移位器461输出的本地生成的密码代码序列,并且在本文描述的相关性运算中用于使用密码代码序列执行安全测距,诸如在操作313中执行的安全测距。在一个实施方案中,可以使用图7中所示的分组701来执行两个单独的相关性运算。具体地讲,可以使用uwb前导码703来执行用以执行测距操作的相关性运算,并且可以使用密码代码序列711来执行用以执行安全测距的第二相关性运算。在一个实施方案中,可以比较两个不同的相关性运算以验证系统的安全性。通常,如果系统安全且未受到攻击,则测距操作应该与预定的容差匹配。

图5a示出了如何随时间执行不同密码协议的示例。具体地讲,在操作501中,可以通过例如蓝牙连接建立安全连接,这类似于操作301。然后,可以在操作503中执行安全密钥交换,以导出用于导出测距密钥的长期对称密钥对(例如,mk_ab)。然后在操作505中,在初始使用之后,可以使用长期密钥导出用作测距密钥的会话密钥,该长期密钥可以在预定数量的会话之后被丢弃,使得再次执行操作503以导出用于导出测距的另一长期对称密钥对,然后重复操作505。

在一个实施方案中,可以执行操作,其中另一设备(例如,设备b)中的安全元件可以使用相同的长期对称密钥与移动电话设备中的安全元件配对。然后可以基于长期密钥建立会话密钥。然后可以在有或没有蓝牙会话密钥或由第一通信信道建立的其他密钥的贡献的情况下从会话密钥导出测距密钥。使用长期对称密钥的认证可以快速执行,但是如果密钥被使用太多次,则可能暴露该长期对称密钥。

在一个实施方案中,另一设备(例如,设备b)和移动电话设备或手表中的安全元件各自具有长期非对称密钥对。安全元件可以通过交换公钥来配对。可以使用例如scp11或用于非对称长期密钥的其他安全信道协议,基于非对称长期密钥直接建立会话密钥。可以在有或没有来自bt会话密钥的贡献的情况下从会话密钥导出测距密钥。使用长期非对称密钥相对于使用长期对称密钥可能具有性能缺点,但可能更安全。

在一个实施方案中,在安全元件之间周期性地建立中期对称密钥。可以使用例如scp03或利用对称密钥的其他安全信道协议,基于中期密钥建立会话密钥。然后可以在有或没有来自bt会话密钥的贡献的情况下从会话密钥导出测距密钥。在一个实施方案中,安全元件可以偶尔使用非对称密钥执行运算以生成新的长期对称密钥(mk_ab)。

图9示出了一个系统的示例,该系统包括安全元件和应用程序处理器以及一个或多个测距无线电和一个或多个其他无线电,诸如蓝牙无线电。图9中所示的系统可以在一个实施方案中用作设备201或图4中所示的设备a。此外,图9中所示的系统还可以用在设备b中,设备b包括具有一个或多个测距无线电的安全元件系统,并且可以包括一个或多个应用程序处理器,以向设备b的用户提供导航和无线电或娱乐控制器和其他功能。在一个实施方案中,安全元件系统903可以实现为片上系统。在另一个实施方案中,应用程序处理器921和安全元件系统903可以在片上系统上实现,并且在单个集成电路上包括一个或多个处理器和存储器控制器以及其他部件。在图9所示的示例中,安全元件系统903可以通过在安全元件系统903中执行作为固件911存储的软件来执行密码操作,诸如加密用户文件或验证代码签名或处理用户密码或执行其他安全操作。固件911可以存储可执行程序指令,该指令在安全元件处理器915上执行以提供密码操作或功能。安全元件处理器915还可以耦接到安全元件rom913,该安全元件rom可以是可信软件,其可以通过检查固件的代码签名并验证该签名代码指示该固件是有效的并且没有被破坏,然后允许该固件由安全元件处理器915执行,来在允许固件执行之前验证固件911中的软件。安全元件系统903还可以包括密码加速器诸如密码加速器907,其可以使用硬件加速器执行非对称密码术以及对称密码术。加速器907可以耦接到非易失性和不可变存储器905,其可以以安全方式存储设备标识符或一组设备标识符以及一组一个或多个证书和私钥,这些证书和私钥在一个实施方案中对系统的其余部分是隐藏的并且不能被系统的其余部分读取。密码加速器907可以访问存储器905内的私钥和其他数据,并且不允许对安全元件系统903外部的部件访问存储器905。缺乏对存储器905的访问是安全元件系统903可被认为是“安全的”的一个原因。在一个实施方案中,加速器907可以耦接到加速器存储器909,该加速器存储器可以是用于执行由密码加速器907执行的密码操作的便笺式存储器。在图9所示的实施方案中,系统901包括安全接口919,其可以是允许应用程序处理器921与安全元件处理器915之间的通信的收件箱和发件箱。在一个实施方案中,一个或多个测距无线电917还可以耦接到安全接口919,以允许安全处理器915与一个或多个测距无线电917通信。应用程序处理器921可以耦接到一个或多个总线923,总线耦接到一个或多个输入和输出设备927,诸如触摸屏显示器和蓝牙无线电、其他无线电,诸如wifi和nfc无线电等。输入和输出设备927的示例取决于设备,并且可以包括其他输入或其他输出设备。应用程序处理器921还耦接到应用程序处理器rom或只读存储器925,该只读存储器提供用于引导应用程序处理器的软件。类似地,安全元件rom913提供用于引导安全元件处理器915的代码。

在另选实施方案中,第一设备(例如,设备a,诸如智能电话或手表)和第二设备(例如,设备b)中的蓝牙或wifi收发器之间的第一无线通信信道用于在这两个收发器之间建立安全连接。在建立并保护第一无线通信信道之后,第一设备中的第一安全处理系统(安全元件处理器)和第二设备中的第二安全处理系统(另一安全元件处理器)交换数据以相互认证(双向认证,其中每个安全元件处理器认证另一安全元件处理器)。然后,第一安全处理系统和第二安全处理系统执行安全密钥交换以导出用于第一设备和第二设备中的nfc无线电之间的近场通信的一个或多个密钥。该实施方案中的nfc无线电使用导出的密钥来允许每个设备内的每个nfc无线电验证另一设备中的另一nfc无线电被安全地认证,从而允许第一设备在第二设备上打开门或在第二设备上执行其他操作。因此,第一设备和第二设备中的nfc无线电取代例如图2中的测距无线电,并且nfc无线电可以具有小于10或50或100厘米的工作距离,使得更长距离的使用不可行(因此超出其中一个距离的远程攻击是不可能的)。

图10示出了图9中所示系统的替代方案的示例。在图10所示的系统中,有两个安全元件1001和1005,以及一个应用程序处理器1009、一个或多个测距无线电1007,以及一个或多个其他无线电(诸如蓝牙无线电、wifi无线电、近场通信无线电、移动电话无线电等)。一个或多个其他无线电可以是i/o(输入/输出)设备1012的一部分。在一个实施方案中,图10中的系统可以用作设备201或图4中的设备a。应用程序处理器1009在结构和功能上可以与应用程序处理器921类似,并且aprom1014和总线1011在结构和功能上可以分别与aprom925和总线923类似。安全元件系统1001在结构和功能上可以类似于安全元件系统903,并且可以通过安全接口1003耦接到应用程序处理器1009,该安全接口在一个实施方案中允许通过收件箱和发件箱进行加密通信。安全接口1003还耦接到安全元件系统1005,该安全元件系统可以为测距无线电1007提供至少一些安全元件处理,而不是要求安全元件系统1001提供用于测距无线电1007的所有安全元件处理。例如,安全元件系统1001可以在图10中的系统引导时验证代码签名,并且可以验证安全元件系统1005,然后在由安全元件系统1001验证之后,安全元件系统1005可以通过执行例如图3中的操作303到315来为测距无线电1007执行安全元件处理。在另一个实施方案中,安全元件系统1005可以执行这些操作的较小子集。将安全元件系统1005而不是安全元件系统101用于这些操作中的大多数可以允许安全元件系统1001(以及应用程序处理器1009)在一个实施方案中在安全元件系统1005已经由安全元件系统1001认证之后保持睡眠或低功率状态。在一个实施方案中,安全元件系统1005与测距无线电1007之间的连接可以是使用安全元件系统1005与测距无线电1007之间的认证和加密通信的硬件连接。在图10所示的实施方案中,安全元件系统1001和应用程序处理器1009通过安全接口1003与安全元件系统1005通信,并且系统1001和处理器1009与测距无线电1007通过安全元件系统1005间接通信;除此之外或作为另外一种选择,测距无线电1007可以通过示为连接1006和1008的直接连接来与安全元件系统1001和应用程序处理器1009传送加密消息。

安全元件系统可以是另一数据处理系统内的处理系统。例如,安全元件系统可以是来自appleinc.(cupertino,ca)的某些iphone中的安全区域协处理器;该协处理器执行其自己的安全引导过程(与主应用程序处理器的安全引导分开)并执行与处理用户密码、指纹等有关的安全协议。可以在2016年1月10日提交的美国临时专利申请号62/276,913和2015年6月5日提交的美国临时专利申请62/171,705中找到关于安全元件系统的实施方案的更多信息,这两个美国临时专利申请以引用方式并入本文。安全元件系统的示例实施方案还在美国专利申请公布2014/0089682a1中描述,该专利申请公布也以引用方式并入本文。

在上述说明书中,已描述特定示例性实施方案。显而易见的是,可在不脱离以下权利要求所给出的更广泛的实质和范围的情况下对那些实施方案作出各种修改。因此,说明书和附图应被认为是出于示例性目的而非限制目的。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1