用于通过使用安全元件来快速认证程序的方法和装置制造方法及图纸

技术编号:22693705 阅读:36 留言:0更新日期:2019-11-30 06:18
由处理器所执行的程序的真实性由安全元件确定,所述安全元件在由处理器所执行的程序的已知为真实的拷贝的经重排序的分段之上计算散列码。相同分段的真实性通过处理器被重排序并且通过处理器被提供到安全元件,所述安全元件为从处理器所接收的经重排序的分段计算第二散列码。如果针对分段的散列值是相同的,则程序分段是相同的。如果针对任何分段的散列值是不同的,则两个程序是不同的。当处理器的程序被确定为不同于已知的良好拷贝的时候,处理器可以被停止或警报信号被生成。

Methods and devices for rapid certification of procedures by the use of safety components

The authenticity of the program executed by the processor is determined by a security element that computes hash codes over a reordered segment of the program executed by the processor that is known to be a true copy. The authenticity of the same segments is reordered by the processor and provided to the security element, which computes the second hash code for the reordered segments received from the processor. If the hash value for a segment is the same, the program segment is the same. If the hash value for any segment is different, the two programs are different. When the program of the processor is determined to be different from the known good copy, the processor can be stopped or an alarm signal can be generated.

【技术实现步骤摘要】
【国外来华专利技术】用于通过使用安全元件来快速认证程序的方法和装置
技术介绍
机动车辆中的许多系统和特征由处理器控制,所述处理器即微处理器、微控制器和数字信号处理器,其中的每一个执行被存储在非暂时性存储器设备中的程序指令,所述非暂时性存储器设备通过总线被耦合到处理器。(如本文中所使用的,术语“总线”是指一组电气并联的导体,其形成在处理器与处理器外围的设备、包括非暂时性存储器设备之间的主要传送路径。)这样的存储器设备可以位于远离处理器处,而存储程序指令的其他非暂时性存储器设备驻留在与执行指令的处理器相同的硅管芯上。当程序指令被改变的时候,执行程序的处理器将相应地改变它所控制的功能或系统。因而有可能简单地通过改变由控制车辆功能或系统的处理器所执行的程序指令来改变车辆的操作特性。因而对于车辆制造商而言变得重要的是维持控制车辆功能的程序的完整性或真实性。换言之,对于车辆制造商而言重要的是阻止执行或使用控制车辆内的处理器的软件的未经授权的修改。提供车辆内的关键功能的一些处理器需要执行程序真实性检查以便确保处理器的程序尚未被不恰当地修改,即不是未经(制造商)授权的。为了快速地检查程序的真实性,一些处理器使用专用安全元件,其可以在处理器外部、即在不同的硅管芯上,或在处理器“内部”、即在相同的硅管芯上,其示例将会是具有在相同硅管芯上的多个处理器的集成电路。无论安全元件可位于哪里,它由车辆的制造商配置(编程)以确认或验证由相关联的处理器所执行的程序的真实性。使用安全元件来验证处理器的程序的真实性呈现至少两个挑战。首先,在处理器与安全元件之间的通信不应当允许某人读取可在验证过程期间在处理器与其相关联的安全元件之间交换的程序指令。其次,在车辆中所使用的处理器必须快速开始。由于通常在处理器开始运行的时候执行真实性检查,所以必须快速执行程序真实性检查。鉴于那两个挑战,用于快速认证由车辆处理器所执行的软件或程序并且要么抑制处理器执行未经授权的程序要么通知车辆操作员的装置和方法将会是在现有技术之上的改进。附图说明图1是用于为位于车辆处的处理器认证计算机程序的装置的框图;图2、图3和图4描绘了用于通过使用被耦合到位于车辆处的处理器的安全元件来为位于车辆处的处理器认证计算机程序的方法的步骤;图5描绘了转移次序表以及异或表,其被使用在图2、图3和图4中所描述和示出的方法中。具体实施方式图1描绘了用于为位于车辆处的处理器快速认证计算机程序的装置100,所述位于车辆处的处理器即由车辆的制造商在车辆的组装时被放置到车辆中的处理器。所述装置100当然包括位于车辆处的处理器102。处理器102通过常规的总线106而被电连接到非暂时性存储器设备104。存储器设备和总线106可以在与处理器102相同的硅管芯上。在其他实施例中,存储器设备与处理器102物理地分离、即在不同的硅管芯上,并且由处理器102通过使用在处理器102与存储器设备104之间延伸的常规总线106来访问。在图1中,车辆系统108、110和112被耦合到总线106,并且因而通过使用总线106来与处理器102通信。那些外围设备108、110和112的操作由被存储在非暂时性存储器元件104中的程序指令114来确定或控制,而无论存储器元件104位于哪里以及在哪里被连接到处理器102。改变指令中的任一个可以因此改变处理器102以及在它外围的设备108、110和112的操作。装置100包括“安全元件”150,所述“安全元件”150在装置100被制造的时候被“耦合”到处理器102并且被预编程以验证存储器设备104中的指令114的真实性。在一个实施例中,安全元件150被视为在处理器102“外部”,因为安全元件150是在车辆的制造时被编程的分离的处理器。在其他实施例中,安全元件150在与处理器102相同的物理管芯上但是与处理器102逻辑分离。为了安全目的,安全元件150的优选的实施例不是可重编程的。为了灵活性目的,安全元件150的替换的实施例是可重编程的。安全元件150可以用至少三(3)种不同的方式被操作地耦合到处理器102。在第一实施例中,安全元件150被连接到总线106,所述总线106在处理器102与由处理器102控制的外围设备108、110、112之间延伸。在其中处理器102和安全元件150在相同的硅管芯上并且该管芯具有板载非暂时性存储器的第二实施例中,用于安全元件150的处理器共享“内部”总线,即在相同硅管芯上的总线。在第三实施例中,输入/输出(I/O)端口152被耦合到处理器102上的对应I/O端口154。I/O端口对I/O端口通信链路156允许在不访问总线106的情况下在处理器与安全元件150之间交换信息。控制线158从安全元件延伸到处理器102,并且将信号从安全元件150运载到处理器102。当来自安全元件150的信号由处理器102接收到的时候,信号使得处理器102停止其操作或引发警报,所述警报通知车辆操作员:程序指令114和存储器设备104并非是真实的,即已经在无制造商的授权的情况下被改变。警报的示例包括点亮告警灯或告警声音,或者禁用车辆的对应特征或操作。本领域普通技术人员应当认识到:可以通过减小必须由安全元件150执行以确定程序的真实性的操作的数目来实现程序和存储器设备104的更快的认证。如本文中所使用的,术语“散列函数”是指可以用于将任意大小的数据映射到固定大小的数据的任何数学函数。由散列函数所返回的数值被称为散列值、散列码、摘要(digest)或简单地散列。安全散列算法2或“SHA-2”算法是将产生对应的散列码的散列函数的一个示例。图2、图3和图4描绘了用于通过使用被耦合到处理器的安全元件来为位于车辆处的处理器认证计算机程序的方法200的步骤,图3和图4简单地示出了不适合于在图2上的方法200的步骤。“真实”程序是由车辆的制造商提供给处理器的一个程序。换言之,由未经授权的第三方做出的对程序的制造商后修改不被视为是真实的。在第一步骤202处,安全元件、诸如在图1中所描绘的安全元件150被提供或获得应由处理器102执行的程序的“真实”拷贝。在第二步骤204处,安全元件从被提供给安全元件的真实拷贝选择指令的分段或子集。“指令段”是预定、固定数目的相继存储器位置(例如256个)的内容,其优选地起始于程序的“开始”或存储器设备内的一地址。作为示例,存储器位置0-255的内容可以是指令的第一分段,而无论那些位置是否包含可执行的指令或数据。位置255-512的内容也可以是“第一”指令段。存储器位置0-7、8-16、0-128也可以是指令段。在优选实施例中,在步骤206处,程序的真实拷贝的指令段由安全元件中的处理器、通过使用伪随机重排序序列来被“重排序”,所述伪随机重排序序列作为“转移次序表”而被提供给安全元件处理器。换言之,在步骤206处,构成来自真实拷贝的分段的指令的次序基本上是“伪置乱的”,其根据已知并且预定的置乱或重排序序列。程序段中的重排序指令帮助阻止剽窃程序,即它帮助阻止拷贝程序的对象(机器)代码以本文档来自技高网...

【技术保护点】
1.一种用于通过使用被操作地耦合到位于车辆处的处理器的安全元件来为所述位于车辆处的处理器认证计算机程序(程序)的方法,所述位于车辆处的处理器被配置成执行程序,所述程序包括被布置在序列中的可执行指令,所述方法包括:/n对从所述程序的第一拷贝的第一预定分段所获得的预定数目的指令进行重排序,所述第一拷贝已知为真实的,所述重排序根据第二序列,其不同于所述第一序列;/n计算从所述第一拷贝所获得的所述经重排序的预定数目的指令的第一散列码,所述第一散列码通过使用第一散列函数来被计算;/n将第一所计算的散列码存储在安全元件中;/n在位于车辆处的处理器中:/n对从所述程序的第二拷贝的相同的预定分段所获得的相同预定数目的指令进行重排序,所述程序的第二拷贝获得自位于车辆处的处理器,所述位于车辆处的处理器也耦合到所述元件,所述第二拷贝的真实性是未知的,来自所述第二拷贝的指令的重排序根据相同的第二序列;/n将从所述第二拷贝的预定分段所获得的经重排序的第一数目的指令提供到安全元件;/n在所述安全元件中:/n计算从所述第二拷贝的预定分段所获得的所述第一数目的指令的第二散列码,所述第二散列码由安全元件通过使用第一散列函数来被计算;/n确定所述第一和第二散列码是否是相同的;/n由此,如果所述第一和第二散列码由安全元件确定成不相同,则从安全元件向处理器提供抑制信号,所述抑制信号使得处理器变更程序的执行。/n...

【技术特征摘要】
【国外来华专利技术】20170419 US 15/4910711.一种用于通过使用被操作地耦合到位于车辆处的处理器的安全元件来为所述位于车辆处的处理器认证计算机程序(程序)的方法,所述位于车辆处的处理器被配置成执行程序,所述程序包括被布置在序列中的可执行指令,所述方法包括:
对从所述程序的第一拷贝的第一预定分段所获得的预定数目的指令进行重排序,所述第一拷贝已知为真实的,所述重排序根据第二序列,其不同于所述第一序列;
计算从所述第一拷贝所获得的所述经重排序的预定数目的指令的第一散列码,所述第一散列码通过使用第一散列函数来被计算;
将第一所计算的散列码存储在安全元件中;
在位于车辆处的处理器中:
对从所述程序的第二拷贝的相同的预定分段所获得的相同预定数目的指令进行重排序,所述程序的第二拷贝获得自位于车辆处的处理器,所述位于车辆处的处理器也耦合到所述元件,所述第二拷贝的真实性是未知的,来自所述第二拷贝的指令的重排序根据相同的第二序列;
将从所述第二拷贝的预定分段所获得的经重排序的第一数目的指令提供到安全元件;
在所述安全元件中:
计算从所述第二拷贝的预定分段所获得的所述第一数目的指令的第二散列码,所述第二散列码由安全元件通过使用第一散列函数来被计算;
确定所述第一和第二散列码是否是相同的;
由此,如果所述第一和第二散列码由安全元件确定成不相同,则从安全元件向处理器提供抑制信号,所述抑制信号使得处理器变更程序的执行。


2.根据权利要求1所述的方法,其中变更程序执行的步骤包括阻止处理器执行程序的第二拷贝。


3.根据权利要求1所述的方法,其中变更程序执行的步骤包括通过处理器生成警报信号。


4.根据权利要求1所述的方法,其中所述处理器被配置成请求安全元件认证程序的第二拷贝。


5.根据权利要求1所述的方法,其中所述安全元件被配置成如果处理器不请求认证则请求对程序的第二拷贝的认证。


6.根据权利要求1所述的方法,其中所述用于对从所述程序的第一拷贝的第一预定分段所获得的预定数目的指令进行重排序并且计算第一散列码的步骤由不是安全元件的部分的处理器执行。


7.根据权利要求1所述的方法,其中所述用于对从所述程序的第一拷贝的第一预定分段所获得的预定数目的指令进行重排序并且计算第一散列码的步骤由机动车辆制造商执行,并且其中存储第一所计算的散列码的步骤在从制造商装运车辆之前被执行。


8.根据权利要求1所述的方法,其中用于对从所述程序的第二拷贝的相同预定分段所获得的相同预定数目的指令进行重排序并且将从第二拷贝的预定分段所获得的经重排序的第一数目的指令提供到安全元件的...

【专利技术属性】
技术研发人员:BJ法雷尔J施韦格勒SK达什
申请(专利权)人:大陆汽车系统公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利