移动装置与基站之间的安全会话通信的制作方法

文档序号:15233396发布日期:2018-08-21 19:59阅读:303来源:国知局

本申请涉及移动装置(例如智能手机)与基站(例如车辆、服务器或第二移动装置)之间的安全通信。



背景技术:

移动装置(例如,智能手机)已经变得普遍并且不止用于语音对话和发送文本消息。高速互联网的越来越高的可用性再加上新的技术(例如蓝牙技术(bluetooth)和近场通信(nearfieldcommunication,nfc))已能够实现新的用途(例如移动支付、健康监测等)。然而,这些技术并不是完全安全的,并且凭借其自身是无法取得信任来在两个装置之间传递敏感或安全性可能很关键的信息。

移动装置的额外使用实例包括与车辆(或者像房屋、服务器、第二移动装置等这样的其他基站)进行交互以使车辆(或其他基站)执行进入、启动、上锁/解锁以及其他功能。一些现有技术参考文献公开了这些使用实例。然而,这些参考文献未能为移动装置与车辆之间的通信提供高效且有效的安全性。标准化通信技术(例如蓝牙技术和无线保真技术(wirelessfidelity,wifi))未能使通信获得足够的安全。

因此需要用于在移动装置和车辆(或其他基站)之间进行安全通信的新型改进技术。



技术实现要素:

本发明公开了一种在不依赖于无线传送机制(例如,蓝牙或wifi)提供的任何安全性的情况下使命令变得安全并且控制移动装置与车辆之间的通信的高效方法。

该方法可依赖于被称为vak的预共享密钥的知识。该密钥以带外安全方式从后端系统共享到移动装置和车辆。对于每个移动装置和/或移动装置的用户密钥是唯一的(例如,移动装置的用户a与第一vak相关联,并且移动装置的用户b与第二vak相关联)。此外,移动装置的每个用户可关联多辆车辆中的每辆车辆的不同vak。用户可登录到移动装置(例如,移动装置上的应用程序)。移动装置可基于登录信息来识别哪个vak与用户相关联。移动装置可防止用户使用与其他用户相关联的vak。因此,vak可用来确认装置的标识。车辆可存储代表多个不同移动装置和/或用户的多个密钥。

该解决方案还实现了被称为dsk的短暂会话密钥,该短暂会话密钥用于在认证移动装置之后保护消息。暂时和短暂密钥既防止整个会话的重放,又确保会话间消息的保密–知道一个会话密钥并不会让人解密来自任何其他会话的消息。

还提供了一种可选的计数器。该计数器对防止消息重放攻击很有用。该计数器可在认证期间可选地用作随机数。

符合本公开的车辆因此包括:(i)主远程信息处理模块、(ii)包括天线和处理器的连接模块。连接模块配置成:(a)经由车辆访问密钥(vehicle-access-key,vak)认证移动装置;(b),如果(a),则向移动装置发出短暂会话密钥(ephemeral-session-key,dsk);(c),如果(b),则建立与移动装置的有效会话;(d)在(a)期间利用车辆访问密钥并且在(c)期间利用短暂会话密钥加密到移动装置的一些或所有消息。连接模块配置成一经预定时间间隔结束即自动撤销短暂会话密钥。

根据本发明,提供一种计算系统,包括:

主远程信息处理模块,

连接模块,该连接模块包括天线、处理器,该连接模块配置成:

(a)经由车辆访问密钥(vehicle-access-key,vak)认证移动装置;

(b),如果(a),则向移动装置发出短暂会话密钥(ephemeral-session-key,dsk);

(c),如果(b),则建立与移动装置的有效会话;

(d)在(a)期间利用车辆访问密钥并且在(c)期间利用短暂会话密钥加密到移动装置的消息。

根据本发明的一个实施例,连接模块配置成自动撤消短暂会话密钥。

根据本发明的一个实施例,连接模块配置成一经预定时间间隔结束即自动撤销短暂会话密钥。

根据本发明的一个实施例,时间间隔在(b)期间开始。

根据本发明的一个实施例,连接模块配置成:在(c)期间拒绝来自移动装置的利用车辆访问密钥加密的消息,但是接受来自另一个移动装置的利用不同车辆访问密钥加密的消息。

根据本发明的一个实施例,连接模块配置成一经接收到包含有效车辆访问密钥标识和有效车辆访问密钥散列的未加密消息即开始(a)。

根据本发明的一个实施例,连接模块配置成在包含车辆访问密钥加密数据的消息中包含未加密的车辆访问密钥认证码。

根据本发明的一个实施例,连接模块配置成在包含短暂会话密钥加密数据的消息中包含未加密的短暂会话密钥散列。

根据本发明的一个实施例,连接模块配置成将短暂会话密钥分成第一块(dsk1)和第二块(dsk2)。

根据本发明的一个实施例,第一块和第二块均是计算短暂会话密钥所必需的。

根据本发明的一个实施例,连接模块配置成通过分解短暂会话密钥使得第一块为第一因子并且第二块为第二因子来拆分短暂会话密钥。

根据本发明的一个实施例,连接模块配置成在第一消息中发送第一块并且在随后的第二消息中发送第二块。

根据本发明的一个实施例,连接模块配置成发送第二块以答复来自移动装置的有效应答。

根据本发明的一个实施例,连接模块配置成向移动装置发送加密的随机数。

根据本发明的一个实施例,应答必须包括基于随机数的值,以便应答有效。

根据本发明的一个实施例,连接模块配置成发送具有第一块或第二块的短暂会话密钥汇编指令。

根据本发明的一个实施例,连接模块配置成递增随机数并且在(c)之前将递增的随机数发送到移动装置。

根据本发明的一个实施例,车辆访问密钥为第一车辆访问密钥,短暂会话密钥为第一短暂会话密钥,并且连接模块配置成存储多个车辆访问密钥和多个短暂会话密钥。

根据本发明的一个实施例,连接模块配置成在(c)期间一经接收到来自移动装置的利用车辆访问密钥加密的消息即撤销短暂会话密钥。

根据本发明的一个实施例,连接模块配置成在到移动装置的每个消息中包含未加密的移动装置元数据,该元数据使移动装置能够路由该消息。

附图说明

为了更好地理解本发明,可以参考以下附图中所示的实施例。附图中的部件未必是按比例绘制并且相关的元件可以省略,或者在某些情况下,比例可能已经被夸大了,以便强调并且清楚地举例说明本文中所述的新颖的特征。另外,如本领域中所已知的,可不同地设置系统部件。进一步地,在附图中,相似的附图标记在若干视图中始终标示相应的部分。

图1为车辆计算系统的框图;

图2为包含车辆计算系统的主车辆的俯视平面图;

图3为车辆计算系统的框图;

图4为在主车辆和移动装置之间建立有效会话的流程图,其中时间向下推移;

图5为在主车辆和移动装置之间建立有效会话的流程图,其中时间向下推移;

图6为包括图4的操作的流程图;

图7为提供和撤销车辆访问密钥的流程图。

具体实施方式

虽然本发明可以体现为各种形式,但是在附图中示出并且在下文中将描述一些示例性和非限制性的实施例,要理解的是本公开将被视为本发明的范例,而非意在将本发明限制到所举例说明的具体实施例。

在本申请中,转折连词的使用意在包括连接词。定冠词或者不定冠词的使用并非意在表明基数。特别是,“该”客体或者“一”客体的引用意在还表示多个可能的这种客体的其中一个。进一步地,连词“或者”可用来传达作为一种选择的同时存在的特征以及作为另一种选择的相互排斥的可选方案。换言之,连词“或者”应该理解为包括作为一种选择的“和/或”以及作为另一种选择的“任一者/或者”。

图1示出了基站(例如主车辆200)的计算系统100。虽然将基站论述为主车辆200,但是基站可为任何适合的装备装置(例如移动电话、平板电脑、服务器等)。连接主车辆200意味着主车辆200配置成(a)从外部实体(例如,基础设施、服务器、连接到的其他车辆)接收无线数据以及(b)将无线数据传送到外部实体。主车辆200可为自主的、半自主的或者手动的。主车辆200包括马达、电池、由马达驱动的至少一个车轮以及配置成使至少一个车轮围绕轴转动的转向系统。主车辆200可为化石燃料驱动的(例如,柴油、汽油、天然气)、混合电动的、纯电动的、燃料电池驱动的等。

例如,在米勒(miller)的第15/076,210号美国专利申请、普拉萨德(prasad)的第8,180,547号美国专利、拉沃伊(lavoie)的第15/186,850号美国专利申请、达马托(d’amato)的第2016/0117921号美国专利公开以及胡的第14/972,761号美国专利申请中描述了车辆,上述所有美国专利申请或美国专利特此通过引用整体纳入到本文中。主车辆200可包括miller、prasad、lavoie、d’amato以及胡的上述美国专利申请或美国专利中所描述的任何特征。

计算系统100驻留在主车辆200中。计算系统100除了其他方面之外还能够实现主车辆200内的机械系统的自动控制,并且有助于主车辆200与外部实体(例如,连接到的基础设施、互联网、连接到的其他车辆)之间进行通信。计算系统100包括数据总线101、一个或多个处理器108、易失性存储器(vm)107、非易失性存储器(nvm)106、用户界面105、远程信息处理单元104、致动器和马达103以及本地传感器102。

数据总线101在电子部件之间交换电子信号或数据。处理器108对电子信号或数据执行操作以产生改变的电子信号或数据。易失性存储器107存储由处理器108几乎即时重新调用的数据。非易失性存储器106存储重新调用到易失性存储器107和/或处理器108的数据。非易失性存储器106包括一系列非易失性存储器(包括硬盘驱动器、固态硬盘(solidstatedisk,ssd)、数字化视频光盘(digitalvideodisk,dvd)、蓝光光盘(blu-ray)等)。用户界面105包括显示器、触摸屏显示器、键盘、按钮以及使用户能够与计算系统进行交互的其他装置。远程信息处理单元104经由蓝牙、蜂窝数据(例如,3g(the3rdgenerationtelecommunication,第3代移动通信技术)、lte(longtermevolution,长期演进))、通用串行总线(universalserialbus,usb)等能够与外部实体进行有线和无线通信。

致动器/马达103产生确实的成效。致动器/马达103的示例包括燃料喷射器、挡风玻璃刮水器、制动灯电路、变速器、安全气囊、安装到传感器的马达(例如,配置成旋转本地传感器102的马达)、发动机、动力传动系统马达、转向器、盲区警示灯等。

本地传感器102将数字读数或测量值传送到处理器108。本地传感器102的示例包括温度传感器、旋转传感器、安全带传感器、速度传感器、摄像机、激光雷达传感器、雷达传感器、红外传感器、超声波传感器、时钟、湿度传感器、雨水传感器、光传感器等。应当领会的是,图1的各种电子部件中的任何电子部件均可包括单独的或专用的处理器和存储器。例如,在miller、prasad、lavoie以及胡的上述美国专利申请或美国专利中描述了计算系统100的结构和操作的更多细节。

图2大致示出并且举例说明了包括计算系统100的主车辆200。一些本地传感器102安装在主车辆200的外部(其他本地传感器102位于车辆200内部)。本地传感器102a配置成检测车辆200前方的对象。本地传感器102b配置成检测尾随感测范围109b所示的尾随车辆200的对象。左侧传感器102c和右侧传感器102d配置成对车辆200的左侧和右侧执行类似的功能。

如前所述,本地传感器102a至102d可为超声波传感器、激光雷达传感器、雷达传感器、红外传感器、摄像机、麦克风及其任意组合等。主车辆200包括位于车辆内部中或者车辆外部上的多个其他本地传感器102。本地传感器102可包括miller、prasad、lavoie、d’amato以及胡的上述美国专利申请或美国专利中公开的任何或所有传感器。图1和图2中所示的部件的总体设置是现有技术。

应当领会的是,主车辆200,更具体而言,主车辆200的处理器108配置成执行本文中所述的方法和操作。在某些情况下,主车辆200配置成经由存储在计算系统100的易失性存储器107和/或非易失性存储器106上的计算机程序来执行这些功能。

至少当一个或多个处理器中的至少一个处理器与存储软件程序的存储器进行通信时,一个或多个处理器“配置成”执行所公开的方法步骤、框或者操作,该软件程序具有体现所公开的方法步骤或框的代码或指令。prasad的美国专利中呈现了关于处理器、存储器以及软件如何协作的进一步描述。根据一些实施例,与主车辆200进行通信的移动电话或外部服务器执行下面论述的一些或全部方法和操作。

主车辆200可包括prasad的车辆的一些或全部特征。计算系统100可包括prasad的vccs(vehiclecomputingandcommunicationsystem,车辆计算与通信系统)的一些或全部特征。主车辆200可与prasad的图1中所示的一些或全部装置(包括游离或移动装置、通信塔、电信网络、互联网以及数据处理中心(即,一个或多个服务器))进行通信。本申请中所述的每个实体可共享参考图1和图3所述的任何或全部特征。

当在权利要求中使用时,术语“负载车辆”特此限定为意指:“一种车辆包括:马达、多个车轮、动力源以及转向系统;其中马达将扭矩传递到多个车轮中的至少一个车轮,从而驱动多个车轮中的至少一个车轮;其中动力源向发动机供应能量;并且其中转向系统配置成使多个车轮中的至少一个车轮转向”。主车辆200可为负载车辆。

当在权利要求中使用时,术语“装备的电动车辆”特此限定为意指“一种车辆包括:电池、多个车轮、马达、转向系统;其中马达将扭矩传递到多个车轮中的至少一个车轮,从而驱动多个车轮中的至少一个车轮;其中电池为可再充电的并且配置成向马达供应电能,从而驱动马达;并且其中转向系统配置成使多个车轮中的至少一个车轮转向”。主车辆200可为装备的电动车辆。

图3示出了计算系统100的更具体的实施方式。如图所示,计算系统100包括连接模块300、主远程信息处理模块320以及多个其他模块340。

连接模块300包括一个或多个处理器301、易失性存储器302、非易失性存储器303、一个或多个天线304以及数据总线305。主远程信息处理模块320包括一个或多个处理器322、易失性存储器323、非易失性存储器324、一个或多个天线321以及数据总线325。

其他模块340包括多个模块(例如致动器/马达模块341、用户界面模块342以及本地传感器模块343)。其他模块340中的每个模块包括一个或多个处理器、易失性存储器以及非易失性存储器。至少一些致动器/马达模块连接到马达/致动器103(例如马达、发动机等)。

其他模块340控制主车辆200的实质性驾驶和安全功能(例如向车轮提供动力、执行安全功能(例如,展开安全气囊)、控制收音机、制订车辆的路线等)。

主远程信息处理模块320是主车辆200与外部实体(例如,服务器、其他车辆、互联网、移动装置等)之间的主要通信桥梁。连接模块300是(a)主车辆200与特定移动装置之间的主要通信桥梁以及(b)与主车辆200进行通信的至少一些外部实体的认证器。如下所述,连接模块300经由天线304与特定移动装置直接进行通信,并且授权特定移动装置控制主远程信息处理模块320和/或一些或全部其他模块340。因此,主远程信息处理模块320的天线321可配备成通过互联网进行远程通信(例如,蜂窝通信),而连接模块300的天线304可仅配备成进行短程通信(例如,蓝牙低功耗通信)。连接模块300可配置成仅接受和广播在连接模块处理器301处准备的消息,而主远程信息处理模块320可配置成接受和广播在任何模块处准备的消息。

图4示出了与协商移动装置380与主车辆200之间的会话相关的操作。一经协商会话,即在移动装置380和主车辆200两者上发生有效会话。在有效会话期间,连接模块300将移动装置380发出的命令转发到其他模块340。例如,一经配对,主车辆200即可使移动装置380能够发出:使主车辆200解锁其车门的解锁命令、使主车辆200锁上其车门的上锁命令、马达启动命令、发动机启动命令、车窗调节命令、应急命令等。在连接模块300开始有效会话之前,连接模块300可以拒绝包括对其他模块340的命令在内的任何消息。

除了可从移动装置380发送到主远程信息处理模块320然后由主远程信息处理模块320转发到连接模块300的认证请求402之外,图4中的通信可专属地在移动装置380和连接模块300之间进行。可供选择地,如下面所公开的,所有通信均可以通过主远程信息处理模块320进行路由。

认证请求402为对连接模块300认证移动装置380的请求。认证请求402包括(a)车辆访问密钥(vehicleaccesskey,vak)id(“vak_id”)和(b)vakid的标签(“tag_vak”)。

虽然未示出,但是源自移动装置380的一个、多个或全部消息以及源自主车辆200的连接模块300的一个、多个或全部消息可包括未加密的路由元数据。路由元数据可(i)指示接收实体(移动装置380或主车辆200)将消息路由到接收实体内的特定位置(例如,特定程序或一块特定硬件)。路由元数据可(ii)指示发送实体将消息路由到特定接收实体。

例如,并且参考图3,连接模块300可能缺少天线。这样,当传送消息时,连接模块可使第一路由元数据包含在该消息中,该第一路由元数据指示主远程信息处理模块320将该消息路由到特定移动装置。连接模块可使第二路由元数据包含在该消息中,该第二路由元数据指示移动装置的远程信息处理器将该消息路由到移动装置380内的特定硬件或软件。这样,连接模块300可能缺少天线304并且经由主远程信息处理模块320与移动装置380进行通信。

车辆访问密钥为用来促进图4的协商会话的密钥。为了图4的目的,移动装置380和连接模块300二者已经存储(即,得知)vak。vakid为存储在移动装置380和连接模块300中的特定vak的唯一标识符(即,名称)。下面参考图7来讨论为移动装置380和主车辆200生成和分配vak和vakid。

vakid的标签为利用预先存储在移动装置380上的散列函数执行的vakid的散列。当本申请陈述已经执行关于某事物的散列(例如,已经执行关于vakid的散列)时,至少有两件事是可能的:首先,所列输入为到散列函数的唯一输入;其次,散列函数在生成散列时使用所列输入并且可能还使用其他输入。

应当领会的是,为了使散列有效,移动电话上的散列函数和到该散列函数的输入必须等同于主车辆上的散列函数和到该散列函数的输入。因此,就移动装置在散列中包含其他输入(例如,日期)而言,主车辆在计算互补散列(下面讨论)时必须包含相同的输入。

通常,散列函数将任意数学运算应用于输入。例如,一个散列函数可通过将每个输入相乘在一起然后从相乘结果中减去七来生成输出。因此,如果到散列函数的输入为127、434以及22,则散列函数的输出将为(127*434*22-7)=1212589。作为另一个示例,一个散列函数可对每个输入的第一值求和。因此,如果到散列函数的输入为127、434以及22,则散列函数的输出将为(1+4+2)=7。存在许多其他可能性。

散列函数的要点是确认到一种运算(例如,在移动装置380上执行的运算)的输入等于另一种运算(例如,在主车辆200上执行的运算)的输入,而不一直公开输入的精确值。因此,如果主车辆200从移动装置380接收到1212589的散列,执行关于存储在主车辆200上的值的互补散列,以及输出1212589的互补散列,则主车辆200得知移动装置380上的输入(这里为127、434以及22)与主车辆200上的输入(同样为127、434以及22)相同。拦截1212589的散列的人(例如,黑客)将无法对127、434以及22的输入进行逆向工程,这是因为1212589的散列可能是任意一连串输入(例如,4、7、43307;或者2、14、44307等)的结果或者可能是任何散列函数的结果。

在框404,主车辆200执行关于vakid的互补散列(即,应用相同的散列函数)并且将在402接收到的散列与在404生成的互补散列进行比较。如果散列匹配,则主车辆200以挑战406进行应答。挑战406包括(a)根据vak(“enc_vak”)单独加密的计数器(其类似于滚动码)(“ctr”)和随机生成的随机数(“n”)以及(b)vak(“tag_vak”)的散列。该计数器可用作该随机数。该计数器可在框404随机生成。

在框408,移动装置380解密该计数器和该随机数,执行关于解密后的计数器和随机数的互补散列,以及将该互补散列与包含在挑战406中的散列进行比较。如果散列匹配,则移动装置380计算作为该随机数和该vak的函数的移动应答(“r_ph”)并且发送挑战应答410。挑战应答410包括(a)根据vak(“enc_vak”)单独加密的递增的计数器(“ctr+1”)和计算出的移动应答(“r_ph”)以及(b)vak(“tag_vak”)的散列。

根据优选实施例,散列(即,加密密钥的“tag_”)可替换为消息认证码(messageauthenticationcode,mac)。这可选地适用于术语“散列”或“tag_”在本申请中的每一次使用。

mac可包括以下所列的一部分或全部:(1)加密密钥的未加密id。如其他地方所论述的,每个加密密钥(例如,vak和dsk)在生成时可与唯一的id配对。(2)消息中根据加密密钥加密的所有数据的第一未加密散列。第一散列可进一步包括未加密id。(3)未加密加密密钥的第二未加密散列。(4)具有作为到散列函数的输入的(2)和(3)的第三未加密散列。根据特别优选的实施例,mac仅包括(1)、(2)以及(4),而不包括(3)。当本申请论述互补散列时,该互补散列适用于mac。换句话说,一经接收到具有mac的消息,移动装置380或主车辆200即可执行以下互补散列步骤:(a)确保未加密id是正确的,(b)基于该id,确保(3)未加密加密密钥的第二未加密散列是正确的,(c)如果(a)和(b)得到确认,则解密该消息,以及(d)在(c)之后确认(4)第三未加密散列是正确的。

在框412,主车辆200解密递增的计数器和计算出的应答,执行或引用vak的互补散列,以及将vak的互补散列与挑战应答410中的vak的散列进行比较。如果散列匹配并且递增的计数器超过了经由挑战406发送的原始计数器,则主车辆200计算作为该随机数和该vak的函数的车辆应答(“r_veh”)。

用于计算车辆应答r_veh的函数与用于计算移动装置应答r_ph的函数相同。主车辆200将车辆应答r_veh与移动装置应答r_ph进行比较。如果应答匹配,则主车辆200生成随机短暂会话密钥(“dsk”)。会话密钥具有有限使用期,如果黑客计算出dsk,则该有限使用期限制暴露。换句话说,主车辆200将仅识别dsk,从而仅识别在预定时间(例如,6小时)内根据dsk加密的消息。

在生成dsk之后,主车辆200发送确认414。确认414包括根据vak(“enc_vak”)加密的dsk和vak(“tag_vak”)的散列。在框416,移动装置380确认vak的散列是有效的(如上所述,通过将确认414中的vak的散列与移动装置380执行的互补散列进行比较)。如果散列有效,则移动装置380利用vak解密dsk,存储dsk,以及发送会话请求418。

会话请求418包括根据dsk加密的递增两次的计数器(“ctr+2”)和dsk的散列。在框420,主车辆200通过利用dsk生成互补散列来确认dsk的散列是有效的,并且确认递增两次的计数器超过了递增一次的计数器(“ctr+1”)。如果是这样,则主车辆200识别出会话已经开始并且主车辆200发送开始会话消息422。

开始会话消息422包括(a)根据dsk单独加密的递增三次的计数器(“ctr+3”)和初始化向量(“iv”)以及(b)dsk的散列。在框424,移动装置380解密初始化向量和递增三次的计数器。移动装置380确认dsk的散列是有效的并且递增三次的计数器超过了递增两次的计数器。如果是这样,则移动装置380识别出该会话已经开始。

应当领会的是,除了上述加密技术之外,每个消息还可包括说明该消息的目的的加密的实质性数据(下面论述)。可供选择地,每个消息可不包括任何实质性数据,并且每个接收实体可依靠其在协商过程中的顺序来识别该消息的目的。为了增强该效果,并且如图4和图5中所示,没有两个消息是完全相同的。因此,消息的目的可通过该消息的结构来识别。

在有效会话期间发送各种签名消息(例如心跳挑战、心跳应答、车辆命令以及确收)。签名消息可包括(a)根据dsk加密的实质性数据,以及(b)dsk的散列(其可替换为之前论述的认证码)。可供选择地或者另外,签名消息可包括:(a)初始化向量的散列,(b)首先利用dsk和初始化向量的其中之一加密然后利用dsk和初始化向量中的另一个再加密的实质性数据,以及(c)根据上述技术中的任何技术(例如,单独利用dsk,利用dsk然后利用iv或者利用iv然后利用dsk)加密的再递增的计数器。

响应于接收到签名消息,接收实体(移动装置380或主车辆200)(a)验证该签名消息(通过用互补散列验证任何散列并且确认再递增的计数器超过了移动装置380已知的最后的计数器,以及(b)根据实质性数据执行一些实质性功能(例如,控制马达、解锁车门、启动马达、摇下车窗、准备和发出消息)。

如图4中所示,在有效会话期间发生心跳事件436。心跳事件436使主车辆200和移动装置380能够确认两者之间仍然存在无线连接。在框426,主车辆200确定已经发生心跳状况。心跳状况可设定为发生在预定时间。当从移动装置380接收到任何签名消息时,时间的计数重置为零(例如,根据上述六十秒的示例,如果新的心跳状况设定为发生在30秒内,但是连接模块300接收到了签名心跳应答或者签名车辆命令,则计数器会重置为零,使得新的心跳状况发生在60秒内)。

连接模块300对超过与心跳状况相关的时间的心跳超时(例如,该心跳超时可能在三分钟后发生,而心跳状况可能在一分钟后发生)进行计数。每当从移动装置380接收到签名消息时,该心跳超时就重置为零。

一旦已经发生心跳状况,但是在心跳超时已经在高频率下发生之前,连接模块300就会发送心跳挑战428。例如,根据上述示例,连接模块300在最后一个签名消息之后等待六十秒再发出第一个心跳挑战428。然而,在六十秒之后,连接模块300会频繁地(例如,每五秒一次)发出心跳挑战428直到发生心跳超时为止。如下所述,一旦发生心跳超时,连接模块300就返回到待命状态602并且撤销dsk。

主车辆200响应于框426而发送签名心跳挑战428。在框430,移动装置380验证签名心跳挑战428并且发出签名心跳应答432。在框434,主车辆200验证签名心跳应答432。主车辆200可通过包含不同实质性数据来根据心跳命令过程436生成移动装置命令(未示出)。

车辆控制450发生在有效会话期间。主车辆200将只在有效会话期间(即,只在框420已经发生之后)进行车辆控制450。在框438,移动装置380(a)生成实质性数据(例如,解锁车门、启动发动机、闪烁某个灯、摇下某个车窗),以及(b)发送基于该实质性数据的签名车辆命令。上面描述了签名过程。移动装置380可响应于用户输入(例如,虚拟按钮的点击)而执行框438。

在框442,主车辆200验证车辆命令并且基于解密后的实质性数据来执行某个实质性功能。主车辆200可发送签名确收444。移动装置380可验证确收并且响应于包含在确收中的实质性数据而执行某个实质性功能(例如,显示消息)。

根据某些实施例,在协商会话402、406、410、414、418以及422期间每种通信可应用不同的散列函数。因为移动装置380和主车辆200均知道接收到的通信的类型(认证请求对挑战对移动应答对确认对会话请求对开始会话命令),所以移动装置380和主车辆200均知道要应用哪个散列函数来生成用于验证目的的互补散列。

根据某些实施例,主车辆200和移动装置380在有效会话期间只使用单个散列函数。可供选择地,第一散列函数用于所有心跳挑战,第二散列函数用于所有心跳应答,第三散列函数用于所有车辆命令,第四散列函数用于对此的所有确收,第五散列函数用于所有移动命令,以及第六散列函数用于对此的所有确收。有效会话期间使用的所有散列函数可不同于协商会话期间使用的所有散列函数。

图5示出了与将移动装置380和主车辆200配对相关的操作。除非在说明书或附图中另有说明,否则图5包括与图4相同的特征。图5的操作假设dsk太大而不能在单个消息中发送,因此将dsk分成两块:第一块(“dsk1”)和第二块(“dsk2”)。

一经接收到第一块dsk1和第二块dsk2,移动装置380即组装dsk。作为一个示例,移动装置可将dsk2附加在dsk1之后(例如,如果dsk1为45并且dsk2为875,则dsk将为45875)。作为其他示例,移动装置可将dsk1乘以dsk2,将dsk1提升到dsk2的幂等。

主车辆200可配置成实施图4和图5两者并且基于连接模块300和移动装置380之间建立的无线连接的标识在两者之间进行选择(例如,如果连接模块300确定该无线连接是经由nfc或旧的蓝牙版本,则连接模块300实施图4;如果连接模块300确定该无线连接是经由wifi或更新的蓝牙版本,则连接模块300实施图5)。

在框404,主车辆200计算dsk,然后将dsk分成两个部分:dsk1和dsk2。因此,挑战406包括根据vak加密的dsk1,而不包括dsk2。在框408,移动装置380解密dsk1。在框412,主车辆200包括根据vak加密的dsk2以及在确认414中的递增两次的计数器。在框416,移动装置380解密dsk2并且基于dsk1和dsk2组装dsk。由于确认414中的递增两次的计数器,会话请求418中的计数器递增了三次,并且开始会话命令422中的计数器递增了四次。

虽然未示出,但是确认414除了包括dsk2之外还可包括根据vak加密的汇编指令。当在框416接收并且打开该汇编指令时,该汇编指令指示移动装置380如何将dsk1与dsk2组合起来。处理器可配置成确定是dsk1更小还是dsk2更小并且发送具有dsk1和dsk2中较小者的dsk汇编指令。

图6为图4的方法的流程图。在框602,连接模块300处于待命模式。连接模块300将只在处于待命模式时响应认证请求402(即,连接模块在处于待命模式602时将忽略除了认证请求402以外的任何事物)。

待命模式602特定于唯一的移动装置,使得连接模块300可相对于移动装置a处于待命模式,而不是相对于移动装置b处于待命模式。如下文所述,每个移动装置可与唯一的vak相关联,因此与唯一的vakid相关联。这样,连接模块300可经由特定移动装置在认证请求402中发出的vakid来识别该特定移动装置。每当连接模块300返回到待命模式602时,便撤销任何有效的dsk,这意味着主车辆200不会去验证根据先前有效的dsk加密和/或标记的消息并且必须发出新的dsk。

在接收到认证请求402之后,连接模块300继续进行到框604,在框604,认证移动装置380。如果从移动装置380接收到的任何消息未经验证(有缺陷的散列或者有缺陷的计数器),则发生认证错误609,并且连接模块300返回到待命状态。如果发生超时(即,在预定时间内没有接收到来自移动装置380的消息),则发生认证错误609。否则,认证成功610,并且连接模块继续进行到框606。

如果从移动装置380接收到的任何消息未经验证(有缺陷的散列或者有缺陷的计数器),则发生密钥建立错误611并且连接模块300返回到待命状态。如果发生超时(即,在预定时间内没有接收到来自移动装置380的消息),则发生密钥建立错误611。否则,密钥建立成功612,并且连接模块继续进行到框608,在框608建立有效会话。

如果在有效会话期间(a)任何签名均未经验证或者(b)发生任何心跳超时(如前所述),则发生会话错误613并且连接模块300返回到待命模式602。如上所述,dsk是短暂的,并且在框412发出后的预定时间(例如,一个小时)之后失效。一经失效,即发生会话终止614并且连接模块300拒绝具有基于dsk(例如,用dsk加密,包括dsk的标签)的验证的消息。一经会话终止614,主车辆200即可向移动装置380发送指示移动装置380自动发出认证请求402以生成新的dsk的消息。可根据vak加密或者可根据旧的dsk加密该消息。

图7为将vak预加载到移动装置380和主车辆200上的流程图。后端390(一个或多个服务器)介于移动装置380和主车辆200之间。在框701之前,移动装置380得知:(a)后端390的公钥、(b)车辆元数据(主车辆200的标识)、(c)后端元数据、(e)移动装置元数据、(h)移动装置私钥以及(i)移动装置/后端密钥对[这是私人密码]。

在框701之前,后端390得知(b)车辆元数据、(c)后端元数据、(d)车辆安全对称密钥、(e)移动装置元数据、(f)后端390的私钥、(g)移动装置密钥对(i)到(b)和/或(d)的映射以及(i)私人移动装置密钥对。在框701之前,主车辆200得知(c)后端元数据和(d)车辆安全对称密钥[在制造时设置的]。

为了方便读者,提供了下面的表格:

表1

现在将按顺序描述生成和应用新的vak的过程。移动装置380向后端390发送新的密钥请求701,新的密钥请求701为对主车辆200的连接模块300存储用于移动装置380的新的vak的请求。新的密钥请求包括根据(a)单独加密的(b)和(i)。新的密钥请求包括(e),(e)未加密,从而使新的密钥请求701能够路由到后端390。新的密钥请求包括基于(h)的未加密移动装置公钥。

一经接收到新的密钥请求701,后端390即解密该消息并且经由(g)映射(例如,表或电子表格)确认(i)和(b)匹配。如果存在匹配,则后端390生成vak、该函数(对应于r_ph和r_veh)以及任何散列函数(之前论述的)。后端390根据与(b)相关的(d)车辆安全对称密钥单独加密vak和这些函数。

密钥供应702包括加密的vak、加密的函数以及未加密的元数据。未加密的元数据使主远程信息处理模块320能够以内部消息703(其至少包括根据(d)单独加密的vak和函数)将密钥供应路由到连接模块300。连接模块300利用(d)解密内部消息703,存储vak并且将其中一个函数存储为r_veh,将其他函数存储为散列函数,以及发送应答704。应答704包括根据(c)路由该消息的未加密的元数据和根据vak加密的实质性数据。

在705,主远程信息处理模块320基于(c)后端390的未加密元数据将应答704传递到后端390。一经接收到应答705,后端390即在706将vak和这些函数发送到移动装置380。一经接收到应答705,后端390即可保存vak和这些函数并且将其与车辆元数据关联起来。可供选择地,后端390可永久删除vak和这些函数。

在供应密钥消息706中,根据在新的密钥请求701中的未加密数据中提供的移动装置公钥对vak和这些函数进行加密。消息706包括未加密移动装置元数据(e)。移动装置380用(h)解密消息706。移动装置380存储vak,将其中一个函数存储为r_ph,以及将其他函数存储为散列函数。移动装置380和主车辆200现在可执行如图5和图6中所论述的步骤402至450。

现在将按顺序描述撤销vak的过程。移动装置380发出撤销密钥请求721,该撤销密钥请求721类似于新的密钥请求701(即,根据相同的技术进行加密和发送),但是包括撤销密钥命令而不是新的密钥命令。撤销密钥请求721可包括加密的vakid或者加密的vak。

后端390接收撤销密钥请求721,解密vakid或vak,以及发出撤销密钥命令722(如上所述,如果(i)映射到(b),则其类似于供应密钥消息702(但是包括撤销密钥命令以及加密的vakid或加密的vak))。主远程信息处理模块320基于722生成撤销密钥内部消息723。连接模块300解密撤销密钥内部消息,撤销vak、函数(r_veh)、散列函数,以及生成应答724(其类似于应答704,但是包括加密的vak或vakid)。

主远程信息处理模块320将应答704与应答705一起转发到后端390。后端390解密应答705,将vak和该函数标记为已撤销,以及向移动装置380发送撤销密钥确认726。撤销密钥确认726类似于供应密钥消息706。移动装置380解密撤销密钥确认726并且基于解密后的vak或vakid来撤销vak、函数(r_ph)以及散列函数。

因此,应当领会的是,以下消息对是类似的(根据相同的技术进行加密和路由),但是包括对应于供应密钥命令或者撤销密钥命令的不同基本实质性数据:(i)消息701和721,(ii)消息702和722,(iii)消息703和723,(iv)消息704和724,(v)消息705和725,(vi)消息706和726。应当领会的是,以下消息对至少包括相同的加密数据:(i)消息702和703,(ii)消息704和705,(iii)消息722和723,(iv)消息724和725。

本公开中的各项可注册商标(包括蓝牙和蓝光光盘)。

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