一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

网络定时同步的制作方法

2021-10-27 20:18:00 来源:中国专利 TAG:同步 申请 定时 设备 多个

网络定时同步
1.本技术是国际申请日为2017年9月8日、发明名称为“网络定时同步”的进入中国国家阶段的pct申请no.201780052633.9的分案申请。
技术领域
2.本公开整体涉及计算设备,并且更具体地,涉及在通过网络通信的多个设备之间同步时间。


背景技术:

3.已经开发了各种协议来通过计算机网络同步计算机时钟。在许多情况下,协议可促进分发从维持主时钟诸如美国海军天文台的原子钟的源提供的定时信息。例如,最值得注意的协议中的一个是用于在连接到互联网的计算机之间同步时间的网络时间协议(ntp)。通过该协议接收的定时信息不仅可用于在用户的计算机上显示时间,还可用于协调各种操作的性能,诸如向计算机分发软件更新,显示通知,调用备份实用程序,为电子邮件加盖时间戳等。随着时序要求的改变,已经开发了其他网络协议以实现更精确的时间同步。例如,ieee 802.1as可在各种音频和视频应用中使用,以在消费或产生音频和视频内容的设备之间同步时间。


技术实现要素:

4.本公开描述了其中时间在网络中的节点之间同步的实施方案。在各种实施方案中,一种装置包括第一电路,该第一电路具有第一时钟,该第一时钟被配置为维持耦合到网络的节点的本地时间值。第一电路被配置为将包括第一现时(nonce)的第一消息发送到维持网络的参考时间值的第二电路。第一电路从第二电路接收第二消息,该第二消息包括第二现时并且与标识参考时间值的时间戳相关联。第一电路将第一现时与第二现时进行比较以确定时间戳是否有效,并且响应于确定时间戳有效,使用时间戳来使第一时钟与第二时钟同步。在一些实施方案中,第一电路在与第二电路交换期间发送第一消息,以确定第一电路和第二电路之间的传播延迟,并且通过基于传播延迟和时间戳确定第一时钟和第二时钟之间的偏移,使用时间戳来使第一时钟与第二时钟同步。
附图说明
5.图1是示出实现时间同步的网络的示例的框图。
6.图2是示出被配置为促进时间同步的硬件安全模块的示例的框图。
7.图3a和图3b是示出同步通信中的消息的示例的图。
8.图4a

4c是示出传播延迟交换中的消息的示例的图。
9.图5是示出消息中的一个或多个中包括的完整性校验值字段的示例的图。
10.图6是示出消息中的一个或多个中包括的现时字段的示例的图。
11.图7a和图7b是示出包括传播延迟交换和同步通信的时间同步的示例的通信图。
12.图8是示出用于同步通信的边界检查的示例的流程图。
13.图9a和图9b是示出可由网络部件执行的其他方法的示例的流程图。
14.图10是示出示例性计算机系统的框图。
具体实施方式
15.本公开包括对“一个实施方案”或“实施方案”的提及。出现短语“在一个实施方案中”或“在实施方案中”并不一定是指同一个实施方案。特定特征、结构或特性可以与本公开一致的任何合适的方式被组合。
16.在本公开内,不同实体(其可被不同地称为“单元”、“电路”、其他部件等)可被描述或声称成“被配置为”执行一个或多个任务或操作。此表达方式—被配置为[执行一个或多个任务]的[实体]—在本文中用于指代结构(即,物理的事物,诸如电子电路)。更具体地,此表达方式用于指示此结构被布置成在操作期间执行一个或多个任务。结构可被说成“被配置为”执行某个任务,即使该结构当前并非正被操作。“被配置为通过网络传送流量的节点”旨在覆盖例如具有在操作期间执行该功能的电路的设备,即使当前未使用所讨论的设备(例如,电源未连接到其)。因此,被描述或表述成“被配置为”执行某个任务的实体是指用于实施该任务的物理的事物,诸如设备、电路、存储有可执行程序指令的存储器等等。该短语在本文中不被用于指代无形的事物。因此,“被配置为”结构在本文中不被用于指代软件实体,诸如应用编程接口(api)。
[0017]
术语“被配置为”并不旨在意指“可配置为”。例如,未经编程的fpga不会被认为是“被配置为”执行某个特定功能,虽然其可能“能被配置为”执行该功能并且在编程之后可以“被配置为”执行该功能。
[0018]
所附权利要求书中的表述结构“被配置为”执行一个或多个任务明确地旨在对该权利要求要素不援引35u.s.c.
§
112(f)。于是,所提交的本技术中没有任何权利要求旨在要被解释为具有装置



功能要素。如果申请人在申请过程期间想要援引节段112(f),则其将使用“用于”[执行功能]“的装置”结构来表述权利要求要素。
[0019]
如本文所用,术语“第一”、“第二”等充当其之后的名词的标签,并且不暗指任何类型的排序(例如,空间的、时间的、逻辑的等),除非有明确指出。例如,第一电路和第二电路之间的交换可包括多个消息的通信。术语“第一”和“第二”可用于指交换中的消息中的任何两个。换句话说,例如,“第一”消息和“第二”消息不限于交换中的初始两个消息。
[0020]
如本文所用,术语“基于”用于描述影响确定的一个或多个因素。该术语不排除可能有附加因素可影响确定。也就是说,确定可仅基于指定的因素或基于所指定的因素及其他未指定的因素。考虑短语“基于b确定a”。此短语指定b是用于确定a的因素或者b影响a的确定。此短语并不排除a的确定也可基于某个其他因素诸如c。这个短语还旨在涵盖a仅基于b来确定的实施方案。如本文所用,短语“基于”因此与短语“至少部分地基于”是同义的。
[0021]
如本文所用,术语“同步”是指针对第一时钟计算要对第一时钟进行的调整以确定第二时钟的值。虽然该术语包括将第一时钟中的值调整为与第二时钟具有相同的时间,但是出于本公开的目的,该术语还包括不调整第一时钟中的值。例如,使第一时钟与第二时钟“同步”可包括计算第一时钟的调整并且将调整应用于第一时钟输出的时间值,以便确定第二时钟的时间值。
[0022]
传统时间同步方案的一个问题是他们通常不考虑安全性问题。该设计失效可允许恶意人员潜在地干扰计算设备对当前时间的感知。例如,该人员可通过提供宣布不正确时间的消息来试图欺骗可信时间源。该人员还可在延迟之后试图重播消息并且让接收者认为重播的消息是新鲜的(例如,以对应于接收者的偏移时钟的延迟重播该消息)。在这样做时,该人员可能够干扰由设备执行的预定操作并且可导致其他问题。
[0023]
本公开描述了用于提高时间同步系统的安全性的各种技术。在下面描述的各种实施方案中,计算机网络实现用于管理具有相应本地时钟的网络节点之间的时钟同步的协议。该协议可用于通过将第一组一个或多个消息从主时钟传送到从时钟来周期性地宣布网络时钟的当前时间,以及通过传送第二组消息来确定时钟之间的偏移,以便考虑网络在分配宣布的当前时间时引入的传播延迟。为了提高这些消息的安全性,在一些实施方案中,将完整性校验值(icv)添加到每个消息。如本文所用,术语“完整性校验值”将根据其在本领域中理解的含义来解释,并且包括可用于验证数据的完整性并通过将键控函数(即,使用密码密钥的函数)应用于数据来计算。包含该值可允许消息被验证并且抵抗恶意实体的篡改。在一些实施方案中,交换中包括一个或多个现时,其用于确定传播延迟,然后在当前时间的后续宣布中重复。如本文所用,术语“现时”将根据其在本领域中理解的含义来解释,并且包括仅在操作或一组操作中使用一次的任意且不可预测的数字。例如,可使用随机或伪随机数生成器算法来确定现时。以这种方式包含现时可防止恶意实体试图干扰节点的本地时间来重播较旧的通知。在一些实施方案中,网络节点可收集用于确定传播延迟的信息,该传播延迟也可用于确定本地时钟和网络时钟之间的预期偏移。然后,节点可将该预期偏移与根据标识后续宣布中的当前时间的时间戳计算的偏移进行比较。如果预期偏移与计算的偏移显著不同,则节点可丢弃该宣布,因为他可以是非法的。
[0024]
在一些实施方案中,与时间同步相关联的消息还可由使用定时信息耦合到网络节点的安全电路处理(与处理该处理的节点本身相反)。如本文所用,术语“安全电路”指的是保护隔离的内部资源不被外部实体直接访问的电路。如下面将描述的,在各种实施方案中,安全电路可维护网络节点的本地时钟和用于生成或验证消息中包括的icv的密钥。在某些情况下,使用安全电路来处理消息(与节点相反)可为网络提供附加的安全性。
[0025]
本公开开始于结合图1和图2实现时间同步的安全网络中的部件的描述。关于图3a

7b描述节点之间的网络通信。由网络部件执行的方法参考图8

9b描述。最后,关于图10讨论可用于实现一个或多个网络部件的示例性计算机系统。
[0026]
现在转向图1,描绘了被配置为实现时间同步的网络100的框图。在所示实施方案中,网络100包括通过链路112耦合到多个节点120a

c的开关110。节点120a

b又经由链路122耦合到相应的硬件安全模块(hsm)130a

b,其包括本地时钟132a

b。如图所示,节点120c耦合到主控主机(gm)140,其包括网络时钟142。开关110还耦合到包括本地时钟132d的hsm 130d。在各种实施方案中,网络100可与所示不同地实现。因此,在一些实施方案中,可存在更多(或更少)的开关110和/或节点120。在一些实施方案中,gm 140可耦合到开关110(与节点120相反)。在一些实施方案中,本文关于hsm 130描述的功能可由节点120中的电路实现。
[0027]
在一些实施方案中,网络100是被配置为在节点120之间传送网络流量的局域网(lan)。在各种实施方案中,网络流量通过开关110在节点120之间路由。因此,开关110可被配置为对来自节点120的接收消息(即,数据帧)进行排队,并且分析由帧指定的源和目的地
地址,以便将消息适当地发送到他们的指定目的地。在一些实施方案中,开关110被配置为根据ieee 802.3(即,以太网帧)路由数据帧;然而,在其他实施方案中,可支持其他网络协议。
[0028]
节点120可对应于被配置为通过网络通信的任何合适的设备。在一些实施方案中,节点120可以是家庭或办公室网络内的设备诸如台式计算机和膝上型计算机、移动设备、智能电视、智能电器等。在一些实施方案中,节点120是制造工厂内的机器,其被配置为执行各种操作。在一些实施方案中,节点120是交通工具诸如飞机、船、汽车、娱乐车等中的电子控制单元(ecu)。如本文所用,术语“电子控制单元(ecu)”应根据其在本领域中理解的含义来解释,并且包括控制交通工具的一个或多个操作的嵌入式系统(例如,微控制器)。在一些实施方案中,节点120可包括例如传送扭矩控制消息和车轮速度消息以便控制马达的操作的马达ecu,传送制动控制消息以便施加制动的制动系统ecu,处理从一个或多个lidar传感器接收的数据的lidar ecu,传送轭控制器的角度等的飞行轭ecu,等等。
[0029]
在各种实施方案中,节点120(和开关110)被配置为使用同步时间用于各种目的,包括协调通过网络100的流量通信。例如,从多个lidar传感器接收流的ecu可生成交通工具的周围环境的整体视图,其取决于ecu及其传送流的传感器之间的同步时间。也就是说,第一lidar传感器和第二lidar传感器可对他们各自的流加时间戳,使得ecu可确定每个传感器在给定时间正在查看什么。如果这些时间戳是由不同步的时钟生成的,那么当一个lidar传感器指示存在物体时,ecu可能在确定物体是否存在于交通工具前方时存在问题,而另一个传感器给出了交通工具前方没有任何东西的外观,因为他包含错误的时间戳。作为另一个示例,在一些实施方案中,通过网络100传送的流量根据指示特定节点120何时应该传送特定流量的调度进行协调。例如,如果时间没有跨节点120同步,则节点120a可在分配给节点120b的时隙期间开始传送网络流量。此冲突可导致节点获取错误信息或显著延迟信息,这可与时间关键任务相关联。
[0030]
在一个实施方案中,硬件安全模块(hsm)130是被配置为出于各种目的向节点120提供时间信息134的安全电路。在一些实施方案中,每个hsm 130包括本地时钟132,其被配置为维持该节点120处的本地时间的值,其通过hsm 130与网络时钟142同步。如下面将更详细地描述的,在各种实施方案中,可执行网络100的时间同步,使得给定的hsm 130使其本地时钟132与驻留在给定hsm 130和主控主机140之间的路径上的相邻节点120或开关110的hsm 130同步,并且是更靠近主控主机140的跳。因此,hsm 130a和hsm 130b可使他们的本地时钟132a和132b与hsm 130d中的本地时钟132d同步,本地时钟132d耦合到更靠近节点120c和主控主机140的一跳的节点120。因为在图1中没有其他更近的节点120,hsm 130d又可与主控主机140中的网络时钟142同步。换句话说,网络100的时间同步可被视为树结构,其中给定子节点与其父节点同步,并且主控主机140用作树结构中的根节点。
[0031]
当执行两个hsm 130的时钟之间的同步时,提供定时信息的hsm 130(例如,hsm 130d)可被称为主机,而接收定时信息的hsm 130(例如,hsm 130a和130b)可被称为从机。作为执行同步的一部分,在各种实施方案中,从机可确定其与其主机之间的传播延迟(例如,hsm 130a和hsm 130d之间的延迟)。从机还可确定其本地时钟132和主机的时钟之间的偏移(例如,时钟132a和132d之间的偏移)。一旦确定了这些值,hsm 130就可向其节点120提供信息134,其中定时信息包括与网络时钟142的当前值相关联的时间值,并且基于本地时钟132
的值、传播延迟和确定的偏移来计算。在各种实施方案中,hsm 130依赖于维持本地时间和同步时间(与节点120相反),因为hsm 130可采用各种安全技术使得他们比节点120更安全,如下面参考图2所述。
[0032]
在一个实施方案中,主控主机(gm)140是被配置为维持网络100的网络时间(即本地时钟132被同步的参考时间)的电路。也就是说,虽然hsm 130d可充当hsm 130a和hsm 130b的主机,但是gm 140是所示实施方案中的最终权限(即,“主控主机”)。如上所述,在所示实施方案中,gm 140包括被配置为跟踪网络时间的当前值的网络时钟142。在一些实施方案中,gm 140可以是若干主时钟中的一个,并且通过选举过程被选择为主控主机。如上所述,在一些实施方案中,gm 140可耦合到开关110(与图1中所示的节点120e相反)和/或可实现下面讨论的hsm 130的功能。在各种实施方案中,gm 140还被配置为通过同步(sync)通信152和传播延迟(pdelay)交换154促进与hsm 130d的时间同步。(尽管图1中的gm 140和hsm 130d之间仅示出了通信152和交换154以简化该图,但是还从hsm 130d向hsm 130a和130b提供通信152和交换154。)
[0033]
在所示实施方案中,同步通信152是由主机(例如,gm 140或hsm 130d)传送的消息,以宣布由其同步时钟132或网络时钟142识别的网络时间的当前值。在各种实施方案中,给定的同步通信152包括时间戳,该时间戳识别当从主机发送同步通信152时的网络时间的当前值,并且可由给定的从机使用以确定从机的本地时钟132与主机的时钟132或时钟142之间的偏移(即差值)。在各种实施方案中,所确定的偏移是1)主机的时钟和从机的时钟之间的时间差以及2)主机的时钟和从机的时钟之间的频率差,因为在某些情况下,他们的频率可略微不同。由于时钟132和142的各个频率可随温度变化而波动,因此可周期性地(例如,每秒八次)发送同步通信152。在一些实施方案中,给定同步通信152包括两个消息:在特定时间发送的同步消息(下面参考图3a讨论),以及包括指定特定时间(即同步消息被发送的时间)的网络时间值的时间戳的跟进消息(下面参考图3b讨论)。在一些实施方案中,这些消息包括ieee 802.1as帧的内容。
[0034]
在所示实施方案中,pdelay交换154是主机和从机之间的交换,以便确定主机和从机之间的传播延迟。也就是说,因为消息穿过网络100需要时间,所以同步通信152中指定的时间戳在其到达hsm 130时被延迟。为了解决这个问题,hsm 130确定传播延迟和停留时间以适当地调整同步通信152中的时间戳,使得其准确地反映当前网络时间。在一些实施方案中,交换154包括从机向主机发送消息(在下面和图4a中称为pdelay请求)并且从主机接收对应的响应(在下面和在图4b中称为pdelay响应)。然后通过以下项可确定传播延迟:1)计算第一消息的到达时间与其出发时间之间的差值,2)计算第二消息的到达时间与其出发时间之间的差值,以及3)确定差值的平均值。值得注意的是,使用两个消息的到达和出发时间是为了说明到达时间戳和出发时间戳由主机的时钟和从机的时钟提供的事实,如上所述,他们可以是不同步的。例如,hsm 130d可基于本地时钟132d记录第一消息的出发时间和第二消息的到达时间,但是依靠gm 140为第一消息的到达时间和第二消息的出发时间提供时间戳,这些时间戳基于网络时钟142。在一些实施方案中,第二消息可包括这两个时间戳。在其他实施方案中,第二消息包括第一消息的到达时间的时间戳,并且发送第三消息(在下面并且在图4c中称为pdelay跟进),其指定第二消息的出发时间的时间戳。在一些实施方案中,pdelay交换154周期性地执行(例如,每秒一次),因为传播延迟可随着链路112和122的
温度改变而改变。在一些实施方案中,在交换154中传送的消息包括ieee 802.1as帧的内容。
[0035]
为了提高同步通信152和pdelay交换154的安全性,在各种实施方案中,hsm 130和gm 140被配置为执行各种技术以使他们更能抵抗恶意实体的篡改。在一些情况下,如果节点120变得受损并且通过广播其自己的同步通信152开始欺骗该hsm 130的主机或gm 140,则这些技术可保护hsm 130。这些技术还可防止中间人攻击诸如开关110变得受损并且试图重播来自旧同步通信152或pdelay交换154的消息。
[0036]
首先,在一些实施方案中,在同步通信152和pdelay交换154期间,将完整性校验值(icv)添加到在gm 140和hsm 130之间发送的一个或多个消息。使用各种算法中的任一种可计算该icv。例如,在一个实施方案中,gm 140和hsm 130被配置为使用消息验证码(mac)算法诸如基于hash的mac(hmac)算法来计算icv。在另一个实施方案中,icv是使用数字签名算法(dsa)计算的数字签名。在又一个实施方案中,icv包括使用密码块链接(cbc)模式中的高级加密标准(aes)加密的mac。在一些实施方案中,用于确定icv的密钥对于参与通信并且hsm 130及其主机已知的给定hsm 130是唯一的。例如,如果hsm 130d正在向hsm 130a发送第一消息并且向hsm 130b发送第二消息,则使用第一密钥计算第一消息中的icv,并且使用不同于第二密钥的第二密钥来计算第二消息中的icv。因此,hsm 130a和130b不仅能够验证所接收消息的完整性,而且还能够验证该消息,因为hsm 130d是唯一具有对于该hsm 130唯一的密钥的其他实体。因此,如果hsm 130接收包括icv的消息并且不能确定icv是有效的,则该消息是可疑的并且可被hsm 130忽略。在这样做时,hsm 130和gm 140可防止试图欺骗来自gm 140或特定hsm 130的消息的实体。包括icv的消息的示例在下面参考图3a

5讨论。
[0037]
第二,在一些实施方案中,hsm 130被配置为在pdelay交换154期间提供现时,其在一个或多个后续同步通信152期间由其主机重复。(在一些实施方案中,主机还可包括如图7b所讨论的交换中的附加现时。)在这样做时,hsm 130和gm 140可防止恶意实体重播在提供现时之前发送的同步通信152,因为他们将缺少现时。因此,如果hsm 130接收到包括与先前提供的现时不同的现时的同步通信152,则hsm 130可忽略通信152为可疑的。下面参考图3a、图3b、图4a和图6讨论包括现时的消息的示例。
[0038]
第三,在一些实施方案中,hsm 130被配置为在pdelay交换154期间确定预期偏移,并使用预期偏移对从给定同步通信152计算的偏移执行边界检查,以便确定同步通信152是否有效。尽管如上所述主要执行pdelay交换154以确定传播延迟,但是可能根据在确定延迟时获得的信息来确定主机的时钟和从机的时钟之间的偏移。具体地,通过以下项可确定该偏移:1)计算第一消息的出发时间和第二消息的到达时间的平均值,2)计算第一消息的到达时间和第二消息的出发时间的平均值,3)确定两个平均值之间的差值,使得差值是偏移。在此类实施方案中,hsm 130被配置为确定该偏移并且将其与基于后续同步通信152中包括的时间戳计算的偏移进行比较。如果计算的偏移与预期的偏移不同而超过特定阈值,则包含在同步通信152中的时间戳是可疑的。因此,hsm 130可忽略同步通信152并且不基于可疑时间戳试图提供时间信息134。在这样做时,hsm 130可防止欺骗和/或中间人攻击。参考图8更详细地描述用于执行边界检查的方法的示例。
[0039]
现在转向图2,描绘了hsm 130的框图。如上所述,在一些实施方案中,hsm 130用于代替节点120的定时保持和同步,因为hsm 130可由于下面讨论的原因而更安全。还如所指
出的,在一些实施方案中,gm 140可实现关于hsm 130描述的功能,以便提高gm 140的安全性。在所示实施方案中,hsm 130包括经由互连260耦合在一起的网络接口210、一个或多个处理器220、只读存储器(rom)230,本地时钟132、密码加速器240和密钥存储装置250。rom 230还包括固件232。密钥存储装置250还包括一个或多个icv密钥252。在一些实施方案中,hsm 130可包括比所示更多(或更少)的部件。
[0040]
在一个实施方案中,网络接口210被配置为促进与节点120的通信。因此,接口210可跨链路122执行编码和解码数据,在一些实施方案中,链路122是串行外围接口(spi)总线。在各种实施方案中,接口210还被配置为通过过滤进入的读取和写入操作来将内部部件220

250与外部实体诸如节点120隔离。在一些实施方案中,hsm 130通过仅支持少量命令来呈现有限的攻击面。例如,在一个实施方案中,hsm 130支持允许节点120请求当前时间的命令和为同步通信152或pdelay交换154提供数据的命令。如果接口210从节点120接收不是支持的命令的数据,则接口210可阻止数据进入hsm 130。在这样做时,hsm 130防止例如节点120能够直接访问本地时钟132。
[0041]
在一个实施方案中,处理器220被配置为执行程序指令以实现本文关于hsm 130描述的各种操作。在一些实施方案中,处理器220被硬连线以在引导时从特定地址范围获取,以便从rom 230引导固件232。具体地,因为存储器230是rom(与可容易地写入的一些其他类型的存储器相反),固件232抵抗修改,以及因此被篡改。因此,通过仅使处理器220重启,hsm 130可恢复到默认的可信状态,其在所示实施方案中可通过断言复位信号202启动。因此,处理器220可进一步用于隔离hsm 130中的部件。
[0042]
在一个实施方案中,密码加速器240是被配置为对hsm 130执行密码操作的电路。密码加速器240可实现任何合适的加密算法诸如数据加密标准(des)、高级加密标准(aes)、rivest shamir adleman(rsa)、hmac等。在所示实施方案中,加速器240被配置为使用存储在密钥存储装置250中的密钥,该加速器240可隔离hsm 130的其他部件的访问。也就是说,在一些实施方案中,加速器240可允许icv密钥252由处理器220更新,但是不允许处理器220从存储装置250读取密钥252。
[0043]
在各种实施方案中,密码加速器240被配置为使用icv密钥252来验证包括同步通信152和pdelay交换154的icv。因此,加速器240可被配置为接收消息,使用icv密钥252计算icv,以及将计算的icv与收到的消息中包含的icv进行比较。如果两个icv不匹配,则hsm 130可丢弃该消息而不是将其用于计算时间信息134。icv密钥252可对应于任何合适的算法诸如上面提到的那些算法。如上所述,在一些实施方案中,icv密钥252对于该hsm 130是唯一的

即,没有包括该密钥252的其他hsm 130。
[0044]
现在转向图3a,描绘了同步消息300的图。如上所述,同步消息300是可包括在同步通信152中的消息的示例。在所示实施方案中,消息300包括标头、保留部分(显示为“保留的”)、现时字段(显示为“slavenonce type

length

value(tlv))以及icv字段(显示为“icv tlv”)。虽然这些字段可以是任何合适的大小,但是在该示例中,标头、保留部分、现时字段和icv字段分别具有34个、10个、大约10个和大约30个八位字节的大小。值得注意的是,在所示实施方案中,icv字段包括用于消息300的icv,如将参考图5所讨论的;现时字段包括由主机重复的现时(例如,图1中的gm 140或hsm 130d),如将参考图6所讨论的。在一些实施方案中,同步消息300可包括比所示更多(或更少)的元素。在一些实施方案中,同步消息300是
ieee 802.1as同步帧,其中现时字段和icv字段附加到帧的末尾。
[0045]
现在转向图3b,描绘了同步跟进350的图。如上所述,同步跟进350是可包括在同步通信152中的另一个消息的示例。在所示实施方案中,消息350包括标头、时间戳(显示为“precisionorigintimestamp”)、关于通信152的附加元数据(显示为“follow_up information tlv”)、现时字段(显示为“slavenonce type

length

value(tlv)”)和icv字段(再次显示为“icv tlv”)。虽然这些字段可以是任何合适的大小,但在该示例中,这些字段的大小分别为34个、10个、34个、大约10个和大约30个八位字节。值得注意的是,在所示实施方案中,时间戳指示较早同步消息300的出发时间

即,即消息300离开主机时的网络时间值(例如,作为识别的网络时钟142或基于本地时钟132d和hsm 130d的确定的偏移确定的)。在一些实施方案中,消息350可包括比所示更多(或更少)的元素。在一些实施方案中,消息350是ieee 802.1as同步跟进帧,其中icv字段附加到帧的末尾。
[0046]
现在转向图4a,描绘了pdelay请求400a和pdelay请求400b的图。如上所述,pdelay请求400是可包括在pdelay交换154中并且请求来自主机的对应响应的初始消息的示例。如图所示,消息400a包括标头、两个保留部分(再次显示为“保留的”)、现时字段(再次显示为“slavenonce tlv”)和icv字段。虽然这些字段可以是任何合适的大小,但在该示例中,这些字段的大小分别为34个、10个、10个、大约10个和大约30个八位字节。值得注意的是,在所示实施方案中,现时字段包括由hsm 130发送的现时,以便稍后包含在同步消息300和/或同步跟进消息350中。在一些实施方案中,消息400a可包括比所示更多(或更少)的元素。因此,如请求400b中所示,可省略icv字段。在一些实施方案中,消息400是ieee 802.1as pdelay请求帧,其具有现时字段和/或附加到帧的末尾的icv字段。
[0047]
现在转向图4b,描绘了pdelay响应430a和pdelay响应430b的图。如上所述,pdelay响应430是另一个消息的示例,其可包括在pdelay交换154中,并且是对pdelay请求400的响应。如图所示,消息430a包括标头、时间戳(显示为“requestreceipttimestamp”)、标识请求hsm 130的端口的端口号字段(显示为“requestedportidentity”)和icv字段(再次显示为“icv tlv”)。虽然这些字段可以是任何合适的大小,但在该示例中,这些字段的大小分别为34个、10个、10个和大约30个八位字节。值得注意的是,在所示实施方案中,时间戳指示较早的pdelay请求400的到达时间

即,在gm 140处接收消息400时的网络时间的值。在一些实施方案中,消息430a可包括比所示更多(或更少)的元素。因此,如响应430b中所示,主机发送响应430b可包括另一个现时(显示为“masternonce tlv”)。如下面将参考图4c和图7b所描述的,当响应430随后在请求400中与从机提供的原始现时一起被包括在跟进消息中时,这个附加的现时可用于验证响应430。在一些实施方案中,消息430是ieee 802.1as pdelay响应帧,其中icv字段和/或主机提供的现时附加到帧的末尾。
[0048]
现在转向图4c,描绘了pdelay跟进460a和pdelay跟进460b的图。如上所述,pdelay跟进460是另一个消息的示例,其可包括在pdelay交换154中,并且包括关于较早的pdelay响应430的附加信息。如图所示,消息460a包括标头、时间戳(显示为“responseorigintimestamp”)、标识请求hsm 130的端口的端口号字段(显示为“requestedportidentity”)和icv字段(再次显示为“icv tlv”)。虽然这些字段可以是任何合适的大小,但在该示例中,这些字段的大小分别为34个、10个、10个和大约30个八位字节。值得注意的是,在所示实施方案中,时间戳指示pdelay响应430的出发时间

即,当消息430
离开主机时的网络时间的值。在一些实施方案中,消息460可包括比所示更多(或更少)的元素。因此,如跟进460b中所示,可包括第一现时(显示为“slavenonce tlv”)和第二现时(显示为“masternonce tlv”)。在此类实施方案中,第一现时对应于从机400在请求400中包括的现时;第二现时对应于主机在响应430b中包括的现时。如将用图7b描述的,可包括第二主机提供的现时以建立与第一从机提供的现时的关联。在确认该关联时,从hsm 130可通过确认消息430b中的主机提供的现时与跟进460b中的第二现时匹配来确定较早接收的响应430b。在一些实施方案中,消息460是ieee 802.1as pdelay后续帧,其具有附加到帧的末尾的icv字段、从机提供的现时和/或主机提供的现时。
[0049]
现在转向图5,描绘了icv字段500的图。如上所述,icv字段500包括用于消息300

460的icv。在所示实施方案中,字段500另外包括字段500的类型的标识符(显示为“tlvtype”)、字段500的长度(显示为“lengthfield”)、指示字段500有效的时间长度的寿命字段(显示为“lifetimeid”)、指示可遍历的多个链路112的重播计数器(显示为“replaycounter”)、icv密钥252的标识符(显示为“keyid”)、用于产生icv的算法的标识符(显示为“algorithmid”)、保留字段、填充字段和icv。在一些实施方案中,icv字段500可包括比所示更多(或更少)的元素。
[0050]
现在转向图6,描绘了现时字段600的图。如上所述,现时字段600包括消息300和400中的现时。在所示实施方案中,字段600另外包括字段600的类型的标识符(显示为“tlvtype”)、字段600的长度(显示为“lengthfield”)、指示自一些初始状态以来使用的数字(显示为“noncecount”)以及现时(显示为“slavenonce”)。在一些实施方案中,icv字段600可包括比所示更多(或更少)的元素。
[0051]
现在转向图7a,描绘了主机(例如,图1中的gm 140或hsm130d)与从机(例如,图1中的hsm 130a、b或d)之间的时间同步700a的通信图。在所示实施方案中,同步700a包括pdelay交换154,用于确定传播延迟,然后是同步通信152,以确定调整到网络时间的主机的时钟与从机的时钟之间的偏移。在一些实施方案中,同步700a可包括在重复同步700a之前的通信152的附加性能。
[0052]
如图所示,pdelay交换154可在时间t1开始pdelay请求400a的出发,其包括现时和从从机到主机的icv。从机还可存储t1的时间戳(如时钟132所示)。在时间t2,请求400a到达主机,主机验证请求400a的icv并且存储该现时以便随后包含在同步通信152中。在时间t3,主机发送包括t2的时间戳的pdelay响应430a(如时钟142所示),以及到从机的icv。在时间t4,响应430a到达从机,其确认icv并且存储t4的时间戳。随后,包括t3的时间戳的pdelay跟进460a到达从机,其验证icv。然后,从机可通过计算t4和t3之间的差值的平均值以及t2和t1之间的差值来确定传播延迟。
[0053]
如图所示,同步通信152可在时间t5开始,其中主机向从机发送包括现时和icv的同步消息300。在时间t6,同步消息300到达从机,其通过验证icv并且确认消息300中包括的现时与pdelay请求400a中包括的较早的现时匹配来确定消息300是否有效。在一些实施方案中,从机通过比较现时来确定是否存在匹配。在另一实施方案中,从机通过比较基于现时生成的校验和来确定是否存在匹配

在一些实施方案中,这些校验和可包括在一个或多个消息400a、300和350中以代替(或除此之外)包括现时。随后,主机发送同步跟进350,其包括t5的时间戳和从机的较早的现时的副本,其验证现时和icv。如果同步消息300和跟进350都
有效,则从机通过基于先前确定的传播延迟调整t5的时间戳并且确定t6的时间戳与t5的调整的时间戳之间的差值而计算调整到网络时间的主机时钟与其时钟之间的偏移。
[0054]
在各种实施方案中,在使用所确定的偏移来计算来自本地时钟132的网络时间之前,从机还通过将计算的偏移与从标识t1

t4的时间戳计算的另一个偏移(例如,“预期的”偏移)进行比较来进一步执行边界检查。在各种实施方案中,从机通过以下项计算该预期偏移:1)确定中点702a(t1和t4的平均值)和中点702b(t2和t3的平均值),以及2)确定中点702a和702b之间的差值以产生预期的偏移。如果预期偏移与从同步通信152计算的偏移相差超过阈值(在一些实施方案中t1和中点702a之间的距离),则从同步通信152计算的偏移是可疑的并且可被丢弃。然而,如果偏移之间的差值小于(或等于)阈值,则从机可基于本地时钟132的值和从同步通信152计算的偏移来继续确定网络时间,并且可将该确定的网络时间作为时间信息134提供给节点120。
[0055]
现在转向图7b,描绘了主机(例如,gm 140或hsm130d)与从机(例如,hsm 130a、b或d)之间的时间同步700b的另一个示例的通信图。在所示实施方案中,同步700b包括pdelay交换154,后面是同步通信152。值得注意的是,同步700b类似于同步700a,但是其对现时的使用不同。
[0056]
如图所示,同步可在时间t1开始,其中从机发送包括第一现时(显示为现时a)的pdelay请求400b,其在t2到达主机。在t3,主机发送响应430b,其包括t2的时间戳和在t4处被接收的第二现时(显示为nonce b)。然后,主机将跟进460b发送到响应430b,跟进460b包括第一现时和第二现时以及t3的时间戳。通过在跟进460b中包括第一现时和第二现时,主机建立第二现时与第一现时的关联。基于该关联,从机然后可通过将响应430b中的第二现时与跟进460中的第二现时进行比较(其可包括比较现时和基于如上所述的现时生成的校验和)来确定较早接收的响应430b是否有效。换句话说,以这种方式关联第一现时和第二现时允许稍后验证较早的消息,即使主机由于定时约束而不能包括第一现时。反过来,能够验证该较早消息可防止恶意实体使用其他一些现时重播较旧的响应430b。
[0057]
如图所示,在已经验证消息430b和460b的验证之后,同步700b可继续进行,如同步700a中所讨论的那样,同步消息300和后续消息350的发送都包括用于验证消息300和350的第一现时。
[0058]
现在转向图8,描绘了边界检查800的流程图。边界检查800是用于检查从诸如上面讨论的同步跟进350的同步消息中的时间戳确定的偏移的边界的方法的一个示例。在各种实施方案中,边界检查800由具有第一时钟电路(例如,本地时钟132)的装置执行,该第一时钟电路被配置为维持用于协调网络上的流量的第一时间值和同步电路诸如hsm 130。在此类实施方案中,执行检查800的装置可充当试图与对应主机同步的从机。
[0059]
在步骤810中,同步电路确定通过网络的传播延迟,用于接收与维持第二时间值的第二时钟电路(例如,网络时钟142)相关联的同步信息。在此类实施方案中,步骤810包括同步电路通过网络发送第一消息(例如,pdelay请求400)并且通过网络接收第二消息(例如,pdelay响应430)。
[0060]
在步骤820中,同步电路基于第一消息的出发时间和到达时间(例如,时间t1和t2)以及第二消息的出发时间和到达时间(例如,时间t3和t4)来确定第一时间值和第二时间值之间的预期偏移。在一些实施方案中,步骤820包括计算第一消息的到达时间和第二消息的
出发时间之间的第一平均值(例如,中点702b),计算第一消息的出发时间和第二消息的到达时间之间的第二平均值(例如,中点702a),以及确定第一平均值和第二平均值之间的差值,预期偏移是差值。在一些实施方案中,同步电路存储第一消息的出发时间和第二消息的到达时间,并且在第二消息内接收第一消息的到达时间(例如,pdelay响应430),接收包括第二消息的出发时间的第三消息(例如,pdelay跟进460)。
[0061]
在步骤830中,同步电路接收指定第二时间值的时间戳的同步信息(例如,同步通信152)。在一些实施方案中,所接收的同步信息包括指定第三消息的时间戳和完整性校验值的第三消息(例如,同步跟进350)。在此类实施方案中,步骤830包括使用完整性校验值来验证第三消息。在一些实施方案中,所接收的同步信息包括包含现时的第四消息(例如,同步消息300),并且步骤830包括同步电路通过将现时与在第一消息中发送的现时进行比较来验证所接收的同步信息。在一些实施方案中,第二帧中的现时包括在附加到第二帧的末尾的字段(例如,现时字段600)中,其具有完整性校验值字段(例如,icv字段500)。
[0062]
在步骤840中,同步电路通过将预期偏移与基于时间戳计算的偏移进行比较来确定时间戳是否有效。电子控制单元(ecu)基于第一时间值和计算的偏移在网络上传送网络流量。
[0063]
现在转向图9a,描绘了icv检查900的流程图。icv检查900是用于检查在诸如上面讨论的同步跟进350的同步消息中找到的icv的方法的一个示例。尽管下面关于同步消息进行了描述,但是可关于包括icv的其他消息执行icv检查900的其他实施方案。在各种实施方案中,icv检查900由包括icv诸如hsm 130的消息的接收方执行;然而,对于生成包括icv的帧的发送方也可考虑对应的方法。
[0064]
在步骤910中,检查利用接收同步消息(例如,同步跟进350)的安全电路,该同步消息指定与主时钟(例如,网络时钟142)相关联的时间值和消息的完整性校验值。在一些实施方案中,ecu被配置为根据网络的主时钟通过网络传送流量。在各种实施方案中,网络节点包括主时钟,并且被配置为使用对安全电路唯一的密钥来计算完整性校验值。在步骤920中,安全电路基于完整性校验值确定同步消息是否有效。在步骤930中,响应于确定同步消息有效,安全电路提供与到ecu的时间值相关联的时间信息(例如,时间信息134)。
[0065]
在一些实施方案中,检查900还包括通过发送请求响应的第一消息(例如,pdelay请求400)和接收包括响应的第二消息(例如,pdelay响应430)来确定安全电路与同步消息的发送方之间的传播延迟。在此类实施方案中,第一消息和第二消息包括完整性校验值。在各种实施方案中,在步骤930中,基于主时钟的传播延迟和时间值来确定时间信息。在一些实施方案中,完整性校验值被附加到第一消息和第二消息的末尾(例如,如图4a和图4b所示的icv tlv)。在一些实施方案中,安全电路基于第一消息的出发时间和第二消息的到达时间来计算偏移,并且基于偏移与基于时间值计算的偏移之间的比较来确定同步消息是否有效。
[0066]
现在转向图9b,描绘了现时检查950的流程图。现时检查950是用于检查在多个帧诸如上面讨论的pdelay请求400和同步跟进350中找到的现时的方法的一个示例。在各种实施方案中,现时检查950由试图将其时钟与主机的时钟同步的从机执行;然而,对于接收现时并将其插入另一个帧的主机也可考虑对应的方法。
[0067]
在步骤960中,第一电路向第二电路发送包括第一现时的第一消息(例如,pdelay
请求400)。在此类实施方案中,第一电路具有第一时钟(例如,本地时钟132),其被配置为维持耦合到网络的通信节点的本地时间值,并且第二电路具有维持网络的网络时间值的第二时钟(例如,网络时钟142)。在一些实施方案中,在与第二电路交换期间发送了第一消息以确定第一电路和第二电路之间的传播延迟。
[0068]
在步骤970中,第一电路从第二电路接收第二消息(例如,同步消息300),其包括第二现时(例如,同步消息300中的slavenonce tlv)并且与标识网络时间值的时间戳(例如,图3b中的preciseorigintimestamp)相关联。在一些实施方案中,步骤970包括从第二电路接收第二消息的跟进消息,使得时间戳包括在跟进消息中,并且在从第二电路发送了第二消息时指示网络时间值。
[0069]
在步骤980中,第一电路将第一现时与第二现时进行比较以确定时间戳是否有效。在一些实施方案中,第二消息包括用于第二消息的密码校验和,并且步骤980包括第一电路的密码电路(例如,密码加速器240)使用存储在密码电路中的密钥来验证密码校验和,以确定时间戳是否有效。
[0070]
在步骤990中,响应于确定时间戳有效,第一电路使用时间戳来使第一时钟与第二时钟同步。在一些实施方案中,第一电路使用时间戳以通过基于传播延迟和时间戳确定第一时钟和第二时钟之间的偏移来使第一时钟与第二时钟同步。在一些实施方案中,步骤980包括1)计算第一时钟和第二时钟之间的预期偏移,使得基于从步骤960讨论的交换确定的定时信息计算预期偏移,以及2)通过将确定的偏移与预期偏移进行比较来验证确定的偏移。
[0071]
示例性计算机系统
[0072]
现在转向图10,描绘了示例性计算机系统1000的框图。计算机系统1000是计算机系统的一个实施方案,该计算机系统可用于实现安全网络100的一个或多个部件诸如节点120或主控主机140。在所示实施方案中,计算机系统1000包括处理器子系统1020,处理器子系统1020经由互连器1080(例如,系统总线)耦合到系统存储器1040和i/o接口1060。i/o接口1060耦合到一个或多个i/o设备1070。计算机系统1000可以是各种类型的设备中的任一种,包括但不限于服务器系统、个人计算机系统、网络计算机、嵌入式系统等。尽管为了方便在图10中示出了单个计算机系统1000,但是系统1000也可实现为一起操作的两个或更多个计算机系统。
[0073]
处理器子系统1020可包括一个或多个处理器或处理单元。在计算机系统1000的各种实施方案中,处理器子系统1020的多个实例可耦合到互连器1080。在各种实施方案中,处理器子系统1020(或1020内的每个处理器单元)可包含高速缓存或其他形式的板载存储器。
[0074]
系统存储器1040是可用的存储程序指令,其可由处理器子系统1020执行以使系统1000执行本文描述的各种操作。系统存储器1040可使用不同的物理、非暂时性存储介质来实现,诸如硬盘存储装置、软盘存储装置、可移动磁盘存储装置、闪存、随机存取存储器(ram

sram、edo ram、sdram、ddr sdram、rambus ram等)、只读存储器(prom、eeprom等)等。计算机系统1000中的存储器不限于诸如存储器1040的主存储装置。相反,计算机系统1000还可包括其他形式的存储装置,诸如处理器子系统1020中的高速缓冲存储器和i/o设备1070上的辅助存储装置(例如,硬盘驱动器、存储阵列等)。在一些实施方案中,这些其他形式的存储装置还可存储可由处理器子系统1020执行以执行本文描述的操作的程序指令。
[0075]
根据各种实施方案,i/o接口1060可以是被配置为耦合到其他设备并与其通信的各种类型的接口中的任何一种。在一个实施方案中,i/o接口1060是从前侧到一个或多个后侧总线的桥芯片(例如,南桥)。i/o接口1060可经由一个或多个对应的总线或其他接口耦合到一个或多个i/o设备1070。i/o设备1070的示例包括存储设备(硬盘驱动器、光盘驱动器、可移动闪存驱动器、存储阵列、san或其相关联的控制器)、网络接口设备(例如,到本地或广域网)或其他设备(例如,图形、用户界面设备等)。在一个实施方案中,计算机系统1000经由网络接口设备1070(例如,被配置为通过wifi、蓝牙、以太网等进行通信)耦合到网络。
[0076]
***
[0077]
尽管上文已经描述了具体实施方案,但这些实施方案并非要限制本公开的范围,即使仅相对于特定特征描述单个实施方案的情况下也是如此。本公开中提供的特征示例意在进行例示,而非限制,除非做出不同表述。上述说明书意在涵盖此类替代形式、修改形式和等价形式,这对知晓本公开有效效果的本领域技术人员将是显而易见的。
[0078]
本公开的范围包括本文(明确或暗示)公开的任意特征或特征组合或其任意推广,而无论其是否减轻本文解决的任何或所有问题。因此,在本专利申请(或要求享有其优先权的专利申请)进行期间可针对特征的任何此类组合作出新的权利要求。具体地,参考所附权利要求书,可将从属权利要求的特征与独立权利要求的特征进行组合,并可通过任何适当的方式而不是仅通过所附权利要求书中所列举的特定组合来组合来自相应独立权利要求的特征。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜