CN104798040A - 用于在没有内部非易失性存储器的设备中提供防回滚保护的方法 - Google Patents

用于在没有内部非易失性存储器的设备中提供防回滚保护的方法 Download PDF

Info

Publication number
CN104798040A
CN104798040A CN201380057848.1A CN201380057848A CN104798040A CN 104798040 A CN104798040 A CN 104798040A CN 201380057848 A CN201380057848 A CN 201380057848A CN 104798040 A CN104798040 A CN 104798040A
Authority
CN
China
Prior art keywords
firmware
lafvn
equipment
fvn
safety element
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201380057848.1A
Other languages
English (en)
Inventor
S·克里希纳穆尔蒂
J·R·奥多诺霍
N·巴蒂亚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN104798040A publication Critical patent/CN104798040A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/30Security of mobile devices; Security of mobile applications
    • H04W12/35Protecting application or service provisioning, e.g. securing SIM application provisioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1433Saving, restoring, recovering or retrying at system level during software upgrading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Stored Programmes (AREA)

Abstract

给出了用于在不具有内部非易失性存储器的设备中提供防回滚保护的方法、系统、计算机可读介质和装置。一个实施例包括用于提供防回滚保护的设备。该设备可以获取与针对设备的第一固件安装相关联的固件版本号,其中,该设备是在不包括非易失性存储器的基底上实现的。该设备可以获取最低可接受固件版本号,其中,该最低可接受固件版本号存储在安全元件环境中,该安全元件环境利用独立于该基底的存储器。该设备可以比较固件版本号和最低可接受固件版本号,其中,如果固件版本号低于最低可接受固件版本号,则不允许该第一固件安装。在至少一个安排中,该设备包括近场通信(NFC)控制器。

Description

用于在没有内部非易失性存储器的设备中提供防回滚保护的方法
背景技术
本申请内容的方面涉及具有近场通信(NFC)技术的设备。NFC技术可以通过将不同设备触碰在一起或将它们非常靠近而在它们之间建立无线通信。NFC允许双向通信。例如,当两个设备都开启时可以进行NFC点对点通信。另外,通信也可能是在NFC设备和无源的NFC芯片之间的。例如,NFC可以涉及发起者和目标,其中发起者生成能够启动被动目标(例如、牌、钥匙扣、卡)的射频场。
NFC技术可以有助于安全业务(比如支付业务)中的信息交换。具有NFC功能的移动设备可以用于无接触支付系统,类似于那些当前用在信用卡和电子票智能卡中的移动设备。例如,具有NFC功能的移动设备允许用户将财务账户存储在虚拟钱包中,然后在接受这样的支付方法的终端处使用具有NFC功能的移动设备。具有NFC功能的移动设备还可以用作接入控制的标识,例如取代用于物理接入(例如,酒店房间)或控制(例如,发动汽车)的传统钥匙。NFC能够促进其它类型的信息(例如,在移动电话之间传输媒体、场地入口的门票)。
假定具有NFC功能的移动设备会涉及到安全业务中,保护具有NFC功能的移动设备不受恶意攻击是很重要的。尽管软件安全性一般是由在系统内对多个方法进行分层来提供的,但是关键的考虑是系统应该运行最新和最安全的软件版本。
系统上通常使用的攻击途径是回滚攻击,其中,使系统运行更旧的、不安全的软件版本而不是最新版本。运行较旧的软件版本可以使系统更容易受到潜在攻击。因此,为了防止回滚攻击,需要在更新或安装软件时安装最新软件版本。
防回滚保护的当前方法是由移动设备的操作系统来检查安装的或更新的软件的版本号。但是,攻击者能够很容易地找到操作系统中的易攻击点以操作代码并覆盖这一保护机制。
另一种方法是使用e-Fuse技术来提供“最近安装的版本”信息。因为e-Fuse无法被物理地重写,它们是相当安全的。但是,这一方法有一些缺点,因为通常有固定的相对较低数量的电熔丝可用,并且一旦这些耗尽就无法再提供防回滚保护。因此,一旦无法用正确的版本号更新e-Fuse,则有回滚攻击的潜在可能。
例如,每次有对版本号的更新,则用新的版本号更新e-Fuse。因此,如果e-Fuse技术允许十次更新,那么对于第十一次更新,新的版本号无法存储在e-Fuse上。
另外,在e-Fuse方法中,要求对芯片的物理访问,并且这只能实现在单个芯片上。因此,e-Fuse方法是无法扩展的。在e-Fuse方法中,该实现需要在芯片制造工厂中进行。
发明内容
描述了在没有内部非易失性存储器的设备中提供防回滚保护的某些实施例。
本发明的各个实施例确保被下载到设备上的新的固件版本高于先前版本,以便防止回滚攻击。由于固件版本逐渐增加,通过将潜在的固件升级版本与安全元件环境中存储的版本号进行比较,可以防止该设备受到回滚攻击。另外,由于该版本号存储在移动设备的安全元件环境中,因此本发明在启动阶段就提供防回滚保护,甚至当设备没有内部非易失性存储器时也提供防回滚保护。此外,本发明的实施例可以防止软件和硬件攻击。
一个实施例包括用于在设备中提供防回滚保护的方法,包括:获取与针对所述设备的第一固件安装相关联的固件版本号(FVN),其中,所述设备是在不包括非易失性存储器的基底上实现的;获取最低可接受固件版本号(LAFVN),其中,所述LAFVN存储在安全元件环境中,其中,所述安全元件环境利用独立于所述基底的存储器;以及比较所述FVN和所述LAFVN,其中,如果所述FVN小于所述LAFVN,则不允许所述第一固件安装。
另一个实施例包括用于提供防回滚保护的设备,包括:一个或多个处理器;以及存储计算机可读指令的存储器,当所述计算机可读指令由所述一个或多个处理器执行时,使得所述设备进行以下操作:获取与针对所述设备的第一固件安装相关联的固件版本号(FVN),其中,所述设备是在不包括非易失性存储器的基底上实现的;获取最低可接受固件版本号(LAFVN),其中,所述LAFVN存储在安全元件环境中,其中,所述安全元件环境利用独立于所述基底的存储器;以及比较所述FVN和所述LAFVN,其中,如果所述FVN小于所述LAFVN,则不允许所述第一固件安装。
另一个实施例包括存储计算机可执行指令的一个或多个计算机可读介质,当所述计算机可执行指令被执行时使得设备进行以下操作:获取与针对所述设备的第一固件安装相关联的固件版本号(FVN),其中,所述设备是在不包括非易失性存储器的基底上实现的;获取最低可接受固件版本号(LAFVN),其中,所述LAFVN存储在安全元件环境中,其中,所述安全元件环境利用独立于所述基底的存储器;以及比较所述FVN和所述LAFVN,其中,如果所述FVN小于所述LAFVN,则不允许所述第一固件安装。
另一个实施例包括用于提供防回滚保护的设备,包括:一个或多个处理器;用于获取与针对所述设备的第一固件安装相关联的固件版本号(FVN)的单元,其中,所述设备是在不包括非易失性存储器的基底上实现的;用于获取最低可接受固件版本号(LAFVN)的单元,其中,所述LAFVN存储在安全元件环境中,其中,所述安全元件环境利用独立于所述基底的存储器;以及用于比较所述FVN和所述LAFVN的单元,其中,如果所述FVN小于所述LAFVN,则不允许所述第一固件安装。
附图说明
以举例说明的方式示出本公开内容的方面。在附图中,相同的引用序号指示相似的元件,并且:
图1A示出了可以合并一个或多个实施例的有具有NFC功能的移动设备的系统的简化图;
图1B示出了可以合并一个或多个实施例的有至少两个具有NFC功能的移动设备的对等通信系统的简化图;
图2A依照本发明的一个实施例示出了展示具有NFC功能的移动设备的框图;
图2B依照本发明的另一个实施例示出了展示具有NFC功能的移动设备的框图;
图2C依照本发明的另一个实施例示出了展示具有NFC功能的移动设备的框图;
图3依照一些实施例示出了提供防回滚保护的示例方法;
图4依照一些实施例示出了系统级流程图的示例;
图5依照一些实施例示出了NFCC启动、固件安装和签名认证的示例;
图6是依照一些实施例的更新安全环境中存储的最近安装的固件版本号的示例性方法;
图7是依照一些实施例的在强制更新之后更新安全环境中存储的最近安装的固件版本号的示例性方法;以及
图8示出了可以实现一个或多个实施例的计算系统的示例。
具体实施方式
下面将针对附图描述几个解释说明性的实施例,附图是实施例的一部分。下面虽然描述了可以在其中实现本申请内容的一个或多个方面的特定实施例,但是也可以使用其它实施例并且可以在不脱离本申请内容的范围或所附权利要求的精神的前提下做出各种修改。
NFC技术可以要求NFC控制器(NFCC)用作对敏感的或有价值的信息(例如,支付业务)的传输途径。但是,NFC技术也可能容易被窃听。因此,NFCC需要不受窃听的安全性,比如被用作对其被用于传输的数据的攻击途径。具体来讲,需要确保NFCC无法用作针对其传输的数据的中间人(MITM)攻击的主机。
MITM攻击是一种活跃的窃听形式,其中,攻击者与受害者(例如,发起者、目标)进行独立连接并且在它们之间中继消息,使受害者相相信它们在直接相互交谈,但实际上其对话是由攻击者控制的。
如果该NFCC运行较旧的固件版本,MITM攻击可能是由NFCC控制的,尤其是在较旧版本具有已知的安全问题时。例如,在固件升级过程中,运行在移动设备上的高等级应用可以配置NFCC并请求在该NFCC上进行固件安装(例如,补丁)。但是,攻击者可以使用该固件安装请求将NFCC上的固件回滚到较旧的版本。该高等级应用可以使用标准协议与NFCC(例如,NFC控制器接口(NCI))通信或者它可以使用专有机制。本发明可以提供固件安装过程中的防回滚保护。
图1A示出了可以合并一个或多个实施例的有具有NFC功能的移动设备的系统的简化图。
图1A中示出的依照本发明的一个实施例的NFC模块140可以被安装在移动设备110中。移动设备110还可以包括应用处理器120和用户识别模块(SIM)卡130。NFC模块140可以通过接触或非接触NFC来与读卡器150通信。NFC模块140可以包括NFC控制器(NFCC)145。根据这一实施例,NFCC 145是嵌入在NFC模块140中的。应用处理器可以包括高级应用(例如,支付处理应用、操作系统)以便与NFC模块140和NFCC 145通信。
具有NFC功能的移动设备通信的示例可以包括想要使用该移动设备为所购买的商品向零售商进行支付的用户。移动设备可以向位于结账台处的销售读卡器150的点发送个人财务信息(例如,信用卡账号信息)。用户可以将配备有NFC模块140的移动设备110靠近读卡器150以完成购买。读卡器150通过NFC接收用户的信用卡细节(通常存储在移动设备110的安全环境中),并且用传统方法处理该支付,并向用户返回可以存储在该移动设备110中的电子收据。
此外,依照本发明的一个实施例,第二NFC模块190可以被安装在第二移动设备160中,并且能够实现与移动设备110的对等通信,如图1B中所示。类似于移动设备110,第二移动设备160还可以包括应用处理器170、SIM卡180和第二NFC模块190。该第二NFC模块190可以包括第二NFCC195。
点对点通信的例子可以包括:一个用户通过NFC向第二用户传输图片、视频和其它信息,这是由它们双方将各自的具有NFC功能的移动设备相互非常靠近来进行的。当设备非常靠近时,NFC模块140可以尝试向第二NFC模块190发送信息(包括认证信息)。在第二NFC模块190接收该消息并执行认证之后,这两个设备可以共享信息。
依照一些实施例,移动设备110利用NFC模块140来协同在安全环境中取回或存储数据。例如,移动设备110可以获取安全元件环境中存储的信用卡数据并通过NFC模块140来传输它。另外,具有NFC功能的移动设备很有可能可以包括安全元件环境,因为NFC可以用于处理敏感信息(例如,在执行财务业务时)。因此,本发明可以在该设备(例如,NFCC 145)没有内部非易失性存储器时利用安全元件环境来存储版本号。
移动信用卡支付处理事务是涉及利用NFCC 145连同安全元件环境的移动设备110的事务的一个示例。在这一示例中,NFCC 145可以是存储该信用卡信息的安全元件环境和用于辅助该事务的应用处理器120之间的中间方。因此,通过使用NFCC 145,用于由移动设备处理的支付的应用处理器120可以向读卡器150发送敏感的财务信息。另外,应用处理器120和NFCC 145都能够与安全元件环境通信,以取回敏感数据以便实现这一支付处理事务。
上述事例示出了由于NFCC 145处理敏感信息,则NFCC也可以访问移动设备的安全元件环境。另外,NFCC 145可以有进行周期性固件升级的固件部件。因此从安全性的角度来看,应该防止NFCC 145上的固件回滚到较旧的版本,尤其是如果较旧的版本有一些关联的安全性问题的话。NFCC145上的较旧的固件版本可以被用于破坏NFCC 145,以便将NFCC 145用作MITM攻击的机制。
因此,为了避免回滚攻击,在升级NFCC 145上的固件时需要安装最新的固件版本。依照本发明的一些实施例,NFCC 145可以对比检查移动设备想要安装的安装文件的固件版本号(FVN)和当前的固件版本号。这可以通过将最低可接受的固件版本号(LAFVN)(其可以与当前固件版本号相关联)存储在移动设备110的安全元件环境中来完成。该LAFVN可以用于与FVN比较以防止回滚。
本发明可以确保被下载到NFCC 145上的新的固件版本高于先前版本,以便防止回滚攻击。由于固件版本逐渐增减,通过将潜在的固件升级版本与LAFVN比较,可以保护NFCC 145不受到回滚攻击。另外,由于LAFVN存储在移动设备的安全元件环境中,因此即使是在设备(例如,NFCC 145)没有非易失性存储器时,本发明也提供在启动阶段的防回滚保护。
软件系统中用于防回滚保护的方法要包括对设备(例如,NFCC 145)中的非易失性存储器的使用。但是,这一方法要求设备(例如,NFCC 145)中存在可重写的非易失性存储器,这种存储器既昂贵又相对不可靠,尤其是当设备是以很小的几何尺寸(例如,<65nm)实现的时。
例如,NFCC 145可以被制造入半导体材料的薄基底的表面。用于实现诸如NFCC 145的设备的集成电路(IC)已经移植到更小的几何尺寸,以允许每个芯片上封装更多的电路。每一单元区域这一增加的容量可以用于降低成本和/或增加功能。但是,具有毫微米量级设备的IC也不是没有它们的问题,其中主要问题就是电流泄漏。因此,由半导体制造商提供设计规则来确保IC正确工作。设计规则集合指定某些几何和连接限制,以确保足够余量以考虑半导体制造过程中的变化。因此,当设备(例如,NFCC 145)以很小的几何尺寸(例如,<65nm)被实现时,该设备可能被设计为没有非易失性存储器,这可能是基于设计规则的。
因此,一些设备(例如,NFCC 145)可能没有使用非易失性存储器,这是因为制造该设备的基底不支持非易失性存储器。依照本发明的实施例,防回滚保护是通过将最低可接受固件版本号存储在安全位置来提供的。该移动设备可以包括制造在其它支持非易失性存储器的基底上的其它部件。例如,安全元件环境可以被制造在另一个基底上,该基底没有很小的几何尺寸并且可以包括非易失性存储器。因此,依照一些实施例,最低可接受固件号可以被存储在安全元件环境的非易失性存储器中。
先前的防回滚保护方法包括在应用级别上存储最低可接受的固件版本号。但是,因为移动设备中的高级应用可能很容易受到攻击,因此应用级别可能不够安全。
例如,高级软件应用可以是操作系统级别的应用。但是,该操作系统(例如,安卓操作系统)的源代码可以是开源代码。因此,该开源代码可能是容易受到攻击的。攻击者可以很容易地找到软件中的弱点,因此最佳实践方式是不在高级软件应用中存储高敏感度信息。
例如,高级软件应用容易受到循环攻击,其可以造成攻击者获取到移动设备上的超级用户特权。有了超级用户特权,攻击者能够控制NFCC 145。因此,从安全性的角度看,将敏感信息存储在高级软件应用层并不是最佳实践方式,因为它可以被操纵。
通过将固件的版本号存储在安全元件环境中,本发明的实施例克服了上面提到的缺点。本发明能够利用具有NFC功能的移动设备110也包括安全元件环境的现实。因此,通过将版本号存储在安全元件环境而不是高级软件应用层,移动设备可以不那么容易受到攻击。在一些实施例中,该安全元件环境是无法被任何外部程序、总线或设备端口访问或篡改的安全存储器执行分区。
此外,与先前提到的e-Fuse方法不同,在本发明的实施例中,对版本号更新的次数可以没有限制。安全元件环境可以总是被重写以包括更新的版本号。通过将该版本号存储在移动设备110的安全元件环境中,可以产生更健壮的系统,因为其可以提供更好的防回滚保护。
本发明的实施例可以不使用非易失性存储器提供防回滚保护。尺寸很小(例如,<65nm)的非易失性存储器可能是昂贵的和不可靠的。如前所述,NFCC可以被嵌入到被制造在具有很小几何尺寸的基底上的芯片上。另外,NFCC实现方面的成本压力意味着需要找到在不使用内部非易失性存储器的情况下提供针对回滚攻击的保护的机制。此外,有可能可以使用硬件攻击修改该非易失性存储器,以允许回滚到较旧的固件版本。
因此,当发起NFCC固件升级时,本发明的实施例对比检查版本号和安全元件环境中存储的LAFVN,以确保该版本号在增加以便提供对硬件和软件攻击的防回滚保护。
安全执行环境
依照本发明的实施例,考虑两种不同类型的安全元件环境。它们是独立安全元件,也称为安全执行环境(SEE)和可信执行环境(TEE)。
该SEE由软件和防篡改硬件组成。TEE在可信运行元件部分中描述。SEE功能就像守卫,因为它是专门被设计为防篡改并且存储敏感信息的。它能够提供高等级的安全性并且能够与TEE工作(在下面的部分中更详细地描述)。例如,由于安全元件环境所提供的高等级安全性,该安全元件环境可以由移动支付应用使用。在一些实施例中,SEE是无法被外部程序访问的安全存储器执行。另外,SEE可以依照SEE中存储的策略来强制执行指令。
SEE被专门设计为保护不受硬件攻击。例如,硬件攻击可以是侵入式攻击。侵入式攻击可以包括对芯片进行解封装并用酸腐蚀移除钝化层以获得与内部线路的电接触。另外,硬件攻击也可以是半侵入式攻击。半侵入式攻击可以包括对芯片进行解封装以接入其表面但是钝化层保持原封不动。
与先前的只提供针对软件攻击的保护的防回滚保护方法(例如,信任区技术、基于软件的版本控制)不同,本发明提供针对软件和硬件攻击的防回滚保护。通过将固件版本号存储在SEE中,本发明能够提供针对软件和硬件攻击的保护。本发明利用具有NFC功能的移动设备中已有的安全元件环境。
该SEE由于其安全特性(例如,安全固件系统、数据分区、访问控制、单独的操作系统)专门设计用于存储敏感信息。另外,SEE可以独立于栈的其它部分。因此,SEE的属性使其成为存储数据的理想位置。例如,SIM卡(也存储蜂窝网络的敏感订阅密钥)可以是SEE。
依照一些实施例,SEE可以包括非易失性存储器。如前所述,相比于NFCC 145,SEE可以制造在不同的基底上。例如,SEE可以被制造在可以设计为具有非易失性存储器的基底上。
依照不同实施例,安全元件环境可以是SEE(例如,SIM卡)或TEE(例如,芯片的硬件分区的安全部分)。具有NFC功能的移动设备可以具有连接到NFCC 145的安全元件环境。因此,NFCC 145可以与安全元件环境接口,以获取敏感数据。
依照另一个实施例,除了SIM卡,控制授权者(例如,原始设备制造商(OEM))可以具有OEM控制的安全元件环境。在这一实施例中,NFCC145可能无法访问SIM卡,但是可以访问该OEM控制的安全元件环境。因此,由OEM控制的安全元件环境也可以由NFCC 145使用。这可以提供更好的安全性,因为SIM卡是可移除并且可交换的。
因此,通过将版本号存储在安全元件环境中,能够使攻击者更难以将固件回滚到较旧的版本,这是因为攻击者需要危害安全元件环境,这不像攻击栈的其它部分那么容易。从安全性的角度来看,将版本号存储在安全元件环境中降低了攻击者破坏版本号的风险。
图2A依照本发明的一个实施例示出了具有NFC功能的移动设备110的框图。参照图2A,移动设备110包括应用处理器120、SIM卡130和包括NFC控制器(NFCC)145的NFC模块140。依照这一实施例,安全元件环境(例如,安全执行环境(SEE)220)也嵌入在NFC模块140中。该应用处理器可以包括高级应用(例如,支付处理应用、操作系统)以用于与NFC模块140和NFCC 145通信。
如图2A中所示,SEE 220可以嵌入到NFC模块140中。这一实施例的例子包括具有嵌入的SEE的NFC芯片。在这一示例中,NFC模块可以不需要与SIM卡通信以接收最近安装的版本号。
图2B是依照本发明的另一个实施例示出具有NFC功能的移动设备的框图。依照这一实施例,SEE 220被嵌入在SIM卡130中。在这一示例中,NFC模块可以与SIM卡130通信以接收最近安装的版本号。
图2C是依照本发明的另一个实施例示出具有NFC功能的移动设备的框图。依照这一实施例,SEE 220被存储在外部SD卡230中。SD卡230可以包括存储器240和能够与SEE 220通信的控制器250。在这一示例中,NFC模块可以与SD卡通信以接收最近安装的版本号,并且NFC模块不需要与SIM卡130通信。
可信执行环境
依照另一个实施例,安全元件环境可以是TEE。TEE是可以驻留在移动设备的主处理器中的安全区域。与SEE类似,TEE可以确保敏感数据在可信环境中被存储、处理和保护。TEE能够执行授权的安全软件(例如,可信应用)并通过强制实施保护、保密、完整性和数据访问权来提供端到端安全性。TEE可以由软件和硬件构成,并且可以用于提供对软件攻击的额外保护等级。TEE辅助访问权的控制并存储敏感应用。例如,TEE可以是片上系统(SoC)的受保护硬件分区中的安全区域。TEE的另一个示例可以包括具有唯一设备密钥的安全存储,以及可以在其中独立于该移动设备的其余部分地执行代码的执行环境。TEE还可以过滤对直接存储在SEE上的信息的访问。
TEE是与操作系统并行运行的独立环境,并且能够向移动设备提供安全服务。TEE可以比操作系统更安全,但是可能不像SEE那么安全。因此,TEE可以提供在SEE的高等级保护和操作系统的低等级保护之间的安全环境。
依照一些实施例,TEE可以包括非易失性存储器。如上所述,包括TEE的芯片可以被制造在不同于NFCC 145的基底上。例如,包括TEE的芯片可以被设计为具有非易失性存储器。
将SEE和/或TEE用于防回滚保护
图3是概述了用于针对没有非易失性存储器的设备(例如,NFCC 145)提供防回滚保护的一系列步骤300的流程图。操作开始于步骤305,移动设备将最低可接受固件版本号(LAFVN)存储在安全元件环境中。如上所述,SEE和TEE是安全元件环境的两个例子。LAFVN可以对应于运行在NFCC145上的当前固件版本号。通过将当前版本号存储在安全位置,本发明可以通过保护不受软件和硬件攻击来防止回滚和MITM。
接下来,在步骤310中,NFC模块140获取与移动设备的固件安装请求相关联的固件版本号(FVN)。高等级应用或控制授权可以请求固件安装。NFC模块140可以从应用处理器120接收固件安装请求。另外,NFCC 145可以直接接收更新NFCC固件的固件安装请求。
然后在步骤315中,NFC模块140将LAFVN与FVN比较。另外,NFCC145也可以进行这一比较。如果该比较指示FVN小于LAFVN,这可能造成新的安装将固件回滚到较旧的版本,则本发明的实施例可以不允许新的安装继续进行。
如步骤320中所示,NFC模块140可能不允许固件安装并要求移动设备110上传具有适当FVN(例如,至少等于该LAFVN的FVN)的固件安装。依照另一个实施例,应用处理器120、NFC模块140或NFCC 145可以不允许该固件安装。为了解释说明这一步骤,描述了下面的示例,其中,使用应用处理器120的移动设备110可以在NFCC 145上请求与FVN相关联的固件升级。为了避免固件回滚到较早的版本,NFCC 145可以从安全元件环境取回LAFVN并将该FVN与LAFVN比较。如果比较结果指示FVN小于LAFVN,则NFCC不允许这一固件安装,因为它可能回滚到较旧的固件版本。
例如,接收到的FVN是版本号1.2,NFCC检查确保其高于或等于安全元件环境中存储的LAFVN。在这一示例中,安全元件环境中存储的LAFVN是版本号1.3。一旦NFCC 145接收到版本号,它可以比较这两个值。在这一示例中,比较结果可以指示FVN不高于或等于LAFVN;因此,NFCC 145将不允许这一安装。NFCC 145可以通知移动设备110其无法安装版本号1.2,因为安全元件环境中存储的版本号是1.3,而下一次固件升级需要高于或等于版本1.3。
作为替代,如果该比较结果指示FVN等于或大于LAFVN,则处理过程继续到步骤325。在步骤325中,固件安装被移动设备110所允许。NFC模块140或NFCC 145可以允许该固件安装。为了解释说明这一步骤描述了下面的示例,其中,使用应用处理器120的移动设备110可以在NFCC 145上请求与FVN相关联的固件升级。为了避免固件回滚到较旧的版本,该NFCC 145可以从安全元件环境取回LAFVN并将FVN与LAFVN进行比较。在这一示例中,该比较结果得出FVN大于LAFVN,则NFCC 145可以允许这一固件安装,因为该固件是从NFCC 145上运行的当前版本的升级。
另外,如果FVN大于LAFVN,则LAFVN可以被更新到等于FVN。下面在图6和图7中更详细地讨论用于更新安全元件环境的方法。
图3依照本发明的一个实施例示出了用于提供防回滚保护的方法;图4依照本发明的一个实施例示出了系统级流程图。
图4是依照本发明的一个实施例描述在移动设备中的部件之间的通信步骤400的流程图。例如,在步骤410处,初始化NFCC 145的启动序列。在启动序列期间,NFCC 145可能特别容易受到回滚攻击,尤其是在没有内部非易失性存储器时。该启动序列可以由具有这样的授权中心的任何部件(例如,移动设备、控制授权中心、高等级应用、应用处理器)来发起。在步骤420处,例如,移动设备提供与所请求的固件安装相关联的固件版本号(FVN)。该FVN可以由能够向NFCC 145提供所请求的固件安装文件的任何部件提供给NFCC 145。
一旦NFCC 145接收到该FVN,在步骤430处,该NFCC 145检查SEE或TEE中存储器的特定应用或文件以查找允许运行在NFCC 145中的最低可接受固件版本号(LAFVN)。如果没有找到这样的应用或文件,则如步骤440中所示,NFCC接受该FVN并继续到步骤470。依照另一个实施例,当NFCC 145检查安全元件环境并且该安全元件环境中没有存储版本时,NFCC 145可以将该版本号写入安全元件环境。
作为替代,如果在步骤430中找到应用或文件,则处理过程继续到比较步骤450。比较步骤450类似于图3的比较步骤315。如果该比较步骤指示FVN不小于LAFVN,则照常启动并继续到步骤470。但是,如果该比较步骤指示FVN小于LAFVN,则其转到步骤460,在步骤460中,NFCC 145通知移动设备110只有在上传了适当更新的固件版本之后才能继续启动。
在图4示出了防回滚保护的示例的同时,图5示出了具有认证特征的防回滚保护的示例。依照这一实施例,如果攻击者试图载入未认证的固件版本,则固件将不会被上传,因为没有向它签发认证的签名密钥。攻击者可能发现较旧版本的固件中的易攻击点并尝试上传较旧的固件版本。因此,较旧的版本但是签名的版本可能会被攻击者利用,除非安装防回滚机制。依照本发明的实施例,如图5中进一步描述的,NFCC 145可以除了防回滚保护之外还提供验证。
图5示出了在NFCC启动和固件安装请求过程中移动设备110、NFCC145和安全元件环境之间的通信步骤500的示例性实施例。依照这一实施例,移动设备110可以在步骤505处初始化NFCC 145进行启动。在步骤510处,NFCC 145苏醒并发送NFCC上运行的固件的当前版本号。作为替代,移动设备110可以解析接收到的来自NFCC的确认以获取NFCC固件版本。例如,NFCC所发送的CORE_INIT_RSP将固件版本信息包含在“制造商特定信息”字节中。
在步骤515处(它可以是一个可选的步骤),移动设备可以比较与请求固件安装相关联的FVN和NFCC固件版本。如果该NFCC固件版本小于FVN,则移动设备可以继续处理该安装请求。这一可选步骤515可以用于在NFCC上的固件已经是当前版本时阻止固件升级请求。
在步骤520处,移动设备110可以在NFCC 145上请求固件安装,其中,该固件安装与FVN相关联。该固件安装可以是完全的固件安装或部分安装(例如,补丁安装)。在接收这一请求之后,在步骤525处,NFCC 145探测LAFVN所附属的安全元件环境。依照另一个实施例,如果NFCC 145没有找到安全元件环境或LAFVN,则NFCC 145继续进行常规的启动序列并安装该固件。
NFCC 145可以被要求使用不同通信机制与安全元件环境通信。例如,标准机制(例如,高通非易失性应用)可以用于与安全元件环境通信。依照另一个实施例,可以存在多个安全元件环境,并且NFCC 145可以针对一个版本号探测不同的安全元件环境实例。例如,移动设备可以具有SIM卡安全元件环境,但是也可以具有OEM控制的安全元件环境。这能够提供冗余,因为运营商可以强制通过SIM卡进行防回滚保护,而OEM可以向OEM控制的安全元件环境提供防回滚保护。
在步骤530处,安全元件环境可以向NFCC 145发送LAFVN。作为替代,该安全元件环境可以简单地验证(即,真或假)该FVN是最近的固件版本。
在步骤535处,NFCC 145将FVN与LAFVN比较,并且如果LAFVN不小于FVN,则NFCC 145继续进行固件安装。在步骤540处,NFCC接受来自移动设备110的安装请求。
另外,不应该允许向NFCC 145上安装来自未知源的任何固件。从安全性的角度来看,需要一种机制只允许可信方来升级NFCC 145上的固件。因此,依照一些实施例,在固件安装文件被载入到NFCC 145上之前,源对其进行数字签名。
通过验证该升级的源,本发明添加防止攻击的另一层保护。例如,一些恶意实体可以上传能够使该恶意实体接管NFCC 145的代码。在没有任何用于认证该升级的机制的情况下,该升级过程可以通过并且坏的代码可能潜在地被载入到NFCC 145上。为了防止这样的攻击,NFCC 145具有公钥,并且它能够验证该升级是否来自可信方。
可以在步骤545处发起签名验证,在这一步骤处,移动设备110发送具有数字签名的固件安装。
在步骤550中,NFCC 145可以利用公钥来验证接收到的签名以确保该固件来自可信源。例如,公钥基础设施(PKI)认证是针对这种认证的一般方法。如果提供的固件不是来自可信源,则不允许该安装继续。如果该认证处理过程失败,NFCC 145以信号通知移动设备110该签名是不可信的,并且因此将不会进行升级。
在步骤555处,如果签名被验证是有效的,则允许该固件安装并升级该固件。
在与FVN相关联的固件被升级后,依照一些实施例,NFCC 145可以请求安全元件环境将LAFVN更新到等于FVN,如步骤560中所示。在步骤565中,安全元件环境可以将LAFVN更新到等于FVN。
在固件安装后更新LAFVN
存储在安全元件环境中的LAFVN可以在若干情况下被更新。首先,当与FVN相关联的新的固件安装被上传并且其版本号大于安全元件环境中存储的LAFVN时,LAFVN被更新到等于FVN,如图6中所描述的。作为替代,如图7中所描述的,安全元件环境的控制授权中心可以直接强制更新。
如图5中的步骤560和565所示,在NFCC 145成功升级其固件之后,NFCC 145可以与安全元件环境通信以升级当前存储的版本号。
图6是概述用于在LAFVN小于FVN时升级LAFVN的一系列步骤600的流程图。NFCC 145可以使用标准机制(例如,全球平台)与安全元件环境通信,并更新该安全元件环境中存储的LAFVN。
如步骤605中所示,与固件安装相关联的FVN由移动设备110提供给NFCC 145。在步骤610中,NFCC 145可以确定存储在安全元件环境中的LAFVN小于FVN。因此,在步骤615中,NFCC 145可以将LAFVN更新为等于FVN。如前所述,可以使用标准机制(例如,全球平台)来完成这一更新,以便重写安全元件环境中的版本号。
依照另一个实施例,在自然递增示例中,一旦较新的固件被上传,LAFVN就自然地递增到最近的版本号。因此,一旦上传了较高的版本,在安全元件环境中LAFVN可以被递增到该版本号。
在强制更新之后更新LAFVN
依照本发明的一个实施例,控制授权中心(例如,OEM、安全元件授权中心)可能只想让具有高于门限(例如,10)的版本号的NFCC 145与该控制授权中心通信。例如,OEM或运营商可以决定做出只有手机版本必须至少是10才能与安全元件授权中心通话的要求,因为公知的是,低于10的手机版本号具有易受攻击的安全性。
依照这一实施例,控制授权中心可以直接升级存储在安全元件环境中的LAFVN。存在用于修改安全元件环境上的数据的安全协议。另外,该控制授权中心可以拥有该安全元件环境上的长期密钥,这样它就有能力来升级该安全元件环境。
图7是概述在强制更新之后用于更新安全环境中存储的LAFVN的一系列步骤700的流程图。
在针对固件更新的推动期间,如步骤705中所示,控制授权中心可以推动NFCC 145更新其固件。例如,控制授权中心可能要求:在NFCC 145能够与该控制授权中心通信之前,NFCC 145需要某个固件版本号。因此在步骤710处,新的固件被上传到NFCC 145上。依照本发明的实施例,一旦与FVN相关联的固件被加载到NFCC 145上,在步骤715中,NFCC 145可以取回安全元件环境中的LAFVN。在步骤720中,如果NFCC 145确定该LAFVN小于FVN,则NFCC可以将安全元件环境中存储的LAFVN更新为等于FVN。
依照另一个实施例,控制授权中心可以用新号码覆盖LAFVN,因为控制授权中心可以知道较旧的版本有缺点和易被攻击。例如,使用公知机制(例如,全球平台)的控制授权中心可以告诉NFCC 145某个版本是现在的最新版本号。
另外,在这一发明的上下文中,固件安装可以代表整体的完整固件形象,其替代当前加载的版本,或者其能够代表现有固件的部分更新(例如,补丁)。
公知的机制(例如,全球平台标准)可以用于与安全元件环境通信并升级版本号。作为替代,专有的通信语言可以用于与该安全元件环境通信并升级版本号。
本发明的实施例可以比依赖于内部非易失性存储器的方法更安全,因为SEE和TEE技术是被明确地设计为提供高等级的硬件安全的。另外,本发明的实施例并不像e-Fuse技术方法一样限制为有限的版本数量。
本发明的实施例利用现有的和高度安全的远程供应机制(例如,如全球平台所定义的)来更新所要求的版本而无需用户干预。
本发明的实施例只允许版本号逐渐增加。因此,发往安全元件环境的降低版本号的请求是不会被处理的。
如图8中所示的计算机系统可以被合并为如前所述的移动设备的一部分。例如,计算机系统800可以代表本申请中讨论的移动设备的一些部件。计算机系统800可以执行图1的移动设备110的各个部件的功能。图8提供了能够执行各个其它实施例所提供的方法的计算机系统800的一个实施例的示意图。应该注意的是,图8只是要提供各个部件的概括图解,可以根据需要利用这些部件中任何或全部部件。因此,图8概括地示出了可以如何以相对独立或相对更集成化的方式来实现独立系统元件。
计算机系统800被示为包括能够通过总线805电子耦合(或者可以根据情况通信地连接)的硬件单元。例如,NFCC 145和安全元件环境之间的安全通信(例如,使用全球平台标准)可以通过总线805。硬件单元可以包括一个或多个处理器810,包括但并不仅限于一个或多个通用处理器和/或一个或多个专用处理器(比如数字信号处理芯片、图形加速处理器等等);一个或多个输入设备815,其可以包括但并不仅限于鼠标、键盘等等;以及一个或多个输出设备820,其可以包括但并不仅限于显示设备、打印机等等。例如,应用处理器120可以是计算机系统800中的处理器的示例。
计算机系统800还可以包括(和/或与其通信)一个或多个非暂时性存储器设备825,其可以包括但并不仅限于本地和/或网络可访问存储器和/或可以包括但并不仅限于硬盘驱动、驱动阵列、光存储设备、固态存储设备,例如随机存取存储器(“RAM”)和/或只读存储器(“ROM”),它们可以是可编程的、闪速可更新的等等。这些存储设备可以被配置为实现任何适当的数据存储,包括但并不仅限于各种文件系统、数据库结构等等。例如,SIM卡130、SEE 220可以是计算机系统800中的存储设备825的示例。
计算机系统800还可以包括通信子系统830,其可以包括但并不仅限于调制解调器、网卡(无线或有线)、红外通信设备、无线通信设备和/或芯片组(比如蓝牙TM设备、802.11设备、Wi-Fi设备、WiMax设备、蜂窝通信设备、NFC模块140、NFCC 145等)等等。通信子系统830可以允许与网络(举例而言,比如下面描述的网络)、其它计算机系统和/或本文描述的任何其它设备之间交换数据。在很多实施例中,计算机系统800还将包括工作存储器835,其可以包括如上所述的RAM或ROM设备。
计算机系统800还可以包括软件单元,当前其被示为位于工作存储器835中,包括操作系统840(例如,高等级应用)、设备驱动、可执行库和/或其它代码,例如一个或多个应用程序845,如本文所述,应用程序845可以包括由各个实施例提供的计算机程序,和/或可以被设计为实现其它实施例所提供的方法和/或配置系统。仅仅举例而言,针对以上讨论的方法描述的一个或多个过程可以被实现为计算机(和/或计算机中的处理器)可执行的代码和/或指令;在一个方面,依照所描述的方法,这些代码和/或指令可以用于配置通用计算机和/或使通用计算机(或其它设备)适于执行一个或多个操作。
这些指令和/或代码的集合可以存储在非暂时性计算机可读存储介质上,比如上述的非暂时性存储设备825。在一些情况中,可以将存储介质合并到计算机系统(比如计算机系统800)内。在其它实施例中,存储介质可以独立于计算机系统(例如,可移除介质,比如压缩光盘)和/或以独立封装提供,使得存储介质可以用于编程、配置和/或适配其上存储有指令/代码的通用计算机。这些指令可以采取可执行代码的形式,可执行代码可以由计算机系统800执行和/或可以在计算机系统800上进行编译和/或安装时(例如,使用多个一般可用编译器、安装程序、压缩/解压工具等中的任何一个)采取源和/或可安装代码的形式,然后则可以获得可执行代码的形式。
对于本领域的技术人员显而易见的是,可以依照具体要求做出大量变型。例如,可以使用定制化的硬件,和/或可以在硬件、软件(包括便携软件,比如小应用程序等)或二者组合中实现特定单元。此外,可以采用到其它计算设备(比如网络输入/输出设备)的连接。
如上所述,在一个方面,一些实施例可以采用计算机系统(比如计算机系统800)来执行依照本发明的各个实施例的方法。依照实施例的集合,作为对处理器810执行工作存储器835中包含的一个或多个指令的一个或多个序列(其可以被合并到操作系统840和/或其它代码中,比如应用程序845)的响应,这些方法的过程中的一些或全部过程由计算机系统800执行。可以从另一个计算机可读介质(比如一个或多个非暂时性存储设备825)将这些指令读入到工作存储器835中。仅仅举例而言,工作存储器835中包含的指令序列的执行可以使得处理器810执行本文所述的方法的一个或多个过程。
本文所用的术语“机器可读介质”和“计算机可读介质”指的是参与提供使机器以特定形式工作的数据的任何介质。在使用计算机系统800实现的实施例中,各个计算机可读介质可以涉及用于向处理器810提供用于执行的指令/代码和/或可以用于存储和/或携带这样的指令/代码。在很多实施方式中,计算机可读介质是物理的和/或有形的存储介质。这样的介质可以采取非易失性媒介或易失性媒介的形式。非易失性媒介包括,例如光盘和/或磁盘,例如永久性存储设备825。易失性媒介包括但并不限于动态存储器,例如工作存储器835。
物理和/或有形计算机可读媒介的一般形式包括,例如软盘、柔性盘、硬盘、磁带或任何其它磁介质、CD-ROM、任何其它光介质、打孔卡、纸带、具有打孔模式的任何其它物理介质、RAM、PROM、EPROM、FLASH-EPROM、任何其它存储芯片或磁盘,或者计算机可以从其读取指令和/或代码的任何其它介质。
各种形式的计算机可读媒介可以参与向处理器810携带用于执行的一个或多个指令的一个或多个序列。仅仅举例而言,该指令可以首先被加载到远程计算机的磁盘和/或光盘上。远程计算机可以将指令载入到它的动态存储器中并将该指令作为信号通过传输介质发送以便由计算机系统800接收和/或执行。
通信子系统830(和/或其部件)一般将会接收信号,然后总线805可以将该信号(和/或该信号携带的数据、指令等)携带到工作存储器835,处理器810从该存储器取回并执行指令。工作存储器835接收到的指令可以在由处理器810执行之前或之后可选地存储在非暂时性存储设备825上。
上面讨论的方法、系统和设备是示例。各种配置可以酌情省略、替代或添加各种过程或部件。例如,在替代配置中,该方法可以按照不同于所描述的顺序执行,和/或可以添加、省略和/或组合各个步骤。并且,关于某些配置所描述的特性可以组合在各个其它配置中。配置的不同方面和元素可以用类似的方式组合。并且,技术会进步,并且因此很多元素仅仅是示例而并不能限制发明内容或权利要求的范围。
在说明书中给出了具体细节以提供对示例性配置(包括实现)的深入理解。但是,可以不用这些具体细节实践配置。例如,已经去掉不必要的细节显示了众所周知的电路、处理、算法、结构和技术以便避免模糊这些配置。这一说明书只提供了示例性配置,而并不限制权利要求的范围、应用性或配置。相反,先前对这些配置的描述将向本领域的技术人员提供能够实现所描述的技术的说明书。可以在不脱离本发明内容的精神或范围的前提下在功能和元素排列方面做出各种改变。
并且,配置可以描述为作为流程图或框图示出的处理过程。虽然每个处理可以将操作描述为序列化的处理过程,但是很多操作可以并行或并发执行。另外,操作顺序可以被重新排列。一个处理可以有附图中没有包括的额外步骤。此外,方法的示例可以由硬件、软件、固件、中间件、微代码、硬件描述语言或它们的任意组合来实现。在软件、固件、中间件或微代码中实现时,用于执行必要任务的程序代码或代码段可以被存储在永久性计算机可读介质(比如存储介质)中。处理器可以执行所描述的任务。已经描述了若干示例配置,也可以在不脱离本公开内容的精神的前提下使用各种修改、替代性结构和等效物。例如,上述元件可以是更大的系统的部件,其中,其它规则可以优先于,或者修改本发明的应用。此外,可以在考虑上述元素之前、过程中或之后进行多个步骤。因此,上面的描述并不限制权利要求书的保护范围。

Claims (48)

1.一种用于在设备中提供防回滚保护的方法,包括:
获取与针对所述设备的第一固件安装相关联的固件版本号(FVN),其中,所述设备是在不包括非易失性存储器的基底上实现的;
获取最低可接受固件版本号(LAFVN),其中,所述LAFVN存储在安全元件环境中,其中,所述安全元件环境利用独立于所述基底的存储器;以及
比较所述FVN和所述LAFVN,其中,如果所述FVN小于所述LAFVN,则不允许所述第一固件安装。
2.根据权利要求1所述的方法,其中,所述设备包括近场通信(NFC)控制器。
3.根据权利要求1所述的方法,其中,所述安全元件环境是防止软件和硬件攻击的独立安全执行环境(SEE)。
4.根据权利要求1所述的方法,其中,所述安全元件环境是片上系统(SoC)的硬件受保护部分中的可信执行环境(TEE)。
5.根据权利要求1所述的方法,其中,如果所述FVN大于所述LAFVN,则将所述LAFVN更新为等于所述FVN。
6.根据权利要求5所述的方法,其中,所述LAFVN是使用全球平台机制来更新的。
7.根据权利要求1所述的方法,其中,所述LAFVN是由控制授权中心来更新的。
8.根据权利要求1所述的方法,其中,所述第一固件安装是所述设备上现有固件的部分更新。
9.根据权利要求1所述的方法,其中,所述第一固件安装是所述设备上现有固件的完全更新。
10.根据权利要求1所述的方法,其中,所述LAFVN存储在所述安全元件环境内的应用中。
11.根据权利要求1所述的方法,还包括基于与所述第一固件安装相关联的数字签名来认证所述第一固件安装。
12.根据权利要求1所述的方法,其中,如果所述FVN小于所述LAFVN,则请求上传具有大于LAFVN的版本号的第二固件安装。
13.一种用于提供防回滚保护的设备,包括:
一个或多个处理器;以及
存储计算机可读指令的存储器,当所述计算机可读指令由所述一个或多个处理器执行时,使得所述设备进行以下操作:
获取与针对所述设备的第一固件安装相关联的固件版本号(FVN),其中,所述设备是在不包括非易失性存储器的基底上实现的;
获取最低可接受固件版本号(LAFVN),其中,所述LAFVN存储在安全元件环境中,其中,所述安全元件环境利用独立于所述基底的存储器;以及
比较所述FVN和所述LAFVN,其中,如果所述FVN小于所述LAFVN,则不允许所述第一固件安装。
14.根据权利要求13所述的设备,其中,所述设备包括近场通信(NFC)控制器。
15.根据权利要求13所述的设备,其中,所述安全元件环境是防止软件和硬件攻击的独立安全执行环境(SEE)。
16.根据权利要求13所述的设备,其中,所述安全元件环境是片上系统(SoC)的硬件受保护部分中的可信执行环境(TEE)。
17.根据权利要求13所述的设备,其中,如果所述FVN大于所述LAFVN,则将所述LAFVN更新为等于所述FVN。
18.根据权利要求17所述的设备,其中,所述LAFVN是使用全球平台机制来更新的。
19.根据权利要求13所述的设备,其中,所述LAFVN是由控制授权中心来更新的。
20.根据权利要求13所述的设备,其中,所述第一固件安装是所述设备上现有固件的部分更新。
21.根据权利要求13所述的设备,其中,所述第一固件安装是所述设备上现有固件的完全更新。
22.根据权利要求13所述的设备,其中,所述LAFVN存储在所述安全元件环境内的应用中。
23.根据权利要求13所述的设备,还包括所述设备基于与所述第一固件安装相关联的数字签名来认证所述第一固件安装。
24.根据权利要求13所述的设备,其中,如果所述FVN小于所述LAFVN,则请求上传具有大于LAFVN的版本号的第二固件安装。
25.一种存储计算机可执行指令的计算机可读介质,当所述计算机可执行指令被执行时,使设备进行以下操作:
获取与针对所述设备的第一固件安装相关联的固件版本号(FVN),其中,所述设备是在不包括非易失性存储器的基底上实现的;
获取最低可接受固件版本号(LAFVN),其中,所述LAFVN存储在安全元件环境中,其中,所述安全元件环境利用独立于所述基底的存储器;以及
比较所述FVN和所述LAFVN,其中,如果所述FVN小于所述LAFVN,则不允许所述第一固件安装。
26.根据权利要求25所述的计算机可读介质,其中,所述设备包括近场通信(NFC)控制器。
27.根据权利要求25所述的计算机可读介质,其中,所述安全元件环境是防止软件和硬件攻击的独立安全执行环境(SEE)。
28.根据权利要求25所述的计算机可读介质,其中,所述安全元件环境是片上系统(SoC)的硬件受保护部分中的可信执行环境(TEE)。
29.根据权利要求25所述的计算机可读介质,其中,如果所述FVN大于所述LAFVN,则将所述LAFVN更新为等于所述FVN。
30.根据权利要求29所述的计算机可读介质,其中,所述LAFVN是使用全球平台机制来更新的。
31.根据权利要求25所述的计算机可读介质,其中,所述LAFVN是由控制授权中心来更新的。
32.根据权利要求25所述的计算机可读介质,其中,所述第一固件安装是所述设备上现有固件的部分更新。
33.根据权利要求25所述的计算机可读介质,其中,所述第一固件安装是所述设备上现有固件的完全更新。
34.根据权利要求25所述的计算机可读介质,其中,所述LAFVN存储在所述安全元件环境内的应用中。
35.根据权利要求25所述的计算机可读介质,还包括所述设备基于与所述第一固件安装相关联的数字签名来认证所述第一固件安装。
36.根据权利要求25所述的计算机可读介质,其中,如果所述FVN小于所述LAFVN,则请求上传具有大于LAFVN的版本号的第二固件安装。
37.一种用于提供防回滚保护的设备,包括:
一个或多个处理器;
用于获取与针对所述设备的第一固件安装相关联的固件版本号(FVN)的单元,其中,所述设备是在不包括非易失性存储器的基底上实现的;
用于获取最低可接受固件版本号(LAFVN)的单元,其中,所述LAFVN存储在安全元件环境中,其中,所述安全元件环境利用独立于所述基底的存储器;以及
用于比较所述FVN和所述LAFVN的单元,其中,如果所述FVN小于所述LAFVN,则不允许所述第一固件安装。
38.根据权利要求37所述的设备,其中,所述设备包括近场通信(NFC)控制器。
39.根据权利要求37所述的设备,其中,所述安全元件环境是防止软件和硬件攻击的独立安全执行环境(SEE)。
40.根据权利要求37所述的设备,其中,所述安全元件环境是片上系统(SoC)的硬件受保护部分中的可信执行环境(TEE)。
41.根据权利要求37所述的设备,其中,如果所述FVN大于所述LAFVN,则将所述LAFVN更新为等于所述FVN。
42.根据权利要求41所述的设备,其中,所述LAFVN是使用全球平台机制来更新的。
43.根据权利要求37所述的设备,其中,所述LAFVN是由控制授权中心来更新的。
44.根据权利要求37所述的设备,其中,所述第一固件安装是所述设备上现有固件的部分更新。
45.根据权利要求37所述的设备,其中,所述第一固件安装是所述设备上现有固件的完全更新。
46.根据权利要求37所述的设备,其中,所述LAFVN存储在所述安全元件环境内的应用中。
47.根据权利要求37所述的设备,还包括用于基于与所述第一固件安装相关联的数字签名来认证所述第一固件安装的单元。
48.根据权利要求37所述的设备,其中,如果所述FVN小于所述LAFVN,则请求上传具有大于LAFVN的版本号的第二固件安装。
CN201380057848.1A 2012-11-07 2013-11-07 用于在没有内部非易失性存储器的设备中提供防回滚保护的方法 Pending CN104798040A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/670,932 US9910659B2 (en) 2012-11-07 2012-11-07 Methods for providing anti-rollback protection of a firmware version in a device which has no internal non-volatile memory
US13/670,932 2012-11-07
PCT/US2013/068874 WO2014074674A1 (en) 2012-11-07 2013-11-07 Methods for providing anti-rollback protection in a device which has no internal non-volatile memory

Publications (1)

Publication Number Publication Date
CN104798040A true CN104798040A (zh) 2015-07-22

Family

ID=49641863

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380057848.1A Pending CN104798040A (zh) 2012-11-07 2013-11-07 用于在没有内部非易失性存储器的设备中提供防回滚保护的方法

Country Status (6)

Country Link
US (1) US9910659B2 (zh)
EP (1) EP2917828A1 (zh)
JP (1) JP6321023B2 (zh)
KR (1) KR20150083878A (zh)
CN (1) CN104798040A (zh)
WO (1) WO2014074674A1 (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105574720A (zh) * 2015-12-14 2016-05-11 联想(北京)有限公司 安全的信息处理方法以及信息处理装置
CN106406939A (zh) * 2016-09-05 2017-02-15 惠州Tcl移动通信有限公司 一种基于emmc芯片的移动终端防回滚方法及系统
CN107678762A (zh) * 2017-09-26 2018-02-09 杭州中天微系统有限公司 一种系统版本升级方法及装置
CN108304727A (zh) * 2017-01-12 2018-07-20 联发科技股份有限公司 数据处理的方法与装置
CN108985049A (zh) * 2018-06-06 2018-12-11 晶晨半导体(上海)股份有限公司 防回滚方法及系统
CN110134545A (zh) * 2019-04-03 2019-08-16 上海交通大学 基于可信执行环境的提供虚拟nvram的方法及系统
WO2020118639A1 (zh) * 2018-12-13 2020-06-18 深圳市大疆软件科技有限公司 无人飞行器及其固件升级方法
CN113486360A (zh) * 2021-07-14 2021-10-08 上海瓶钵信息科技有限公司 基于risc-v的安全启动方法及系统
CN113672878A (zh) * 2020-05-14 2021-11-19 新唐科技股份有限公司 防止回滚攻击的系统及方法
US11640288B2 (en) 2017-09-26 2023-05-02 C-Sky Microsystems Co., Ltd. System version upgrading method and apparatus

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8972973B2 (en) 2012-06-27 2015-03-03 Microsoft Technology Licensing, Llc Firmware update discovery and distribution
US9235404B2 (en) 2012-06-27 2016-01-12 Microsoft Technology Licensing, Llc Firmware update system
US9110761B2 (en) * 2012-06-27 2015-08-18 Microsoft Technology Licensing, Llc Resource data structures for firmware updates
US8949818B2 (en) * 2012-06-29 2015-02-03 Intel Corporation Mechanism for facilitating dynamic and trusted cloud-based extension upgrades for computing systems
US9287935B2 (en) * 2013-08-01 2016-03-15 Blackberry Limited Method and apparatus for anti-eavesdropping in vunerable NFC applications
WO2015058082A1 (en) * 2013-10-18 2015-04-23 Board Of Trustees Of Michigan State University Near field communication system and method for controlling transmission power of near field communication system
US9448888B2 (en) * 2013-11-15 2016-09-20 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Preventing a rollback attack in a computing system that includes a primary memory bank and a backup memory bank
US9875092B2 (en) * 2014-04-17 2018-01-23 Mistral Mobile Viral distribution of mobile application software
US9830217B2 (en) * 2015-01-29 2017-11-28 Qualcomm Incorporated Selective block-based integrity protection techniques
JP6433844B2 (ja) * 2015-04-09 2018-12-05 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置、中継装置、情報処理システム、およびソフトウェアアップデート方法
JP6595822B2 (ja) * 2015-07-07 2019-10-23 キヤノン株式会社 情報処理装置及びその制御方法
KR102453705B1 (ko) * 2015-09-25 2022-10-11 삼성전자주식회사 호스트의 정당성 여부에 따라 선택적으로 결제 기능을 온(on)하는 결제 장치의 동작 방법
EP3176695A1 (en) * 2015-12-04 2017-06-07 Gemalto Sa Method for managing a package in a secure element
WO2017172434A1 (en) * 2016-04-01 2017-10-05 Pcms Holdings, Inc. Internet of things software securtiy configuration
US20180004502A1 (en) * 2016-06-30 2018-01-04 Dell Products L.P. Basic input/output system (bios) update control
US10754988B2 (en) * 2016-08-30 2020-08-25 Winbond Electronics Corporation Anti-rollback version upgrade in secured memory chip
US10346152B2 (en) * 2016-09-20 2019-07-09 At&T Intellectual Property I, L.P. Facilitating use of a universal integrated circuit card (UICC) for secure device updates
US9899053B1 (en) 2016-10-11 2018-02-20 Seagate Technology Llc Protecting against unauthorized firmware updates using induced servo errors
WO2018091093A1 (en) * 2016-11-17 2018-05-24 Huawei Technologies Co., Ltd. Electronic device, software provisioning server and methods thereof
IT201600117182A1 (it) * 2016-11-21 2018-05-21 Futura Spa Ribobinatrice.
CN110023941B (zh) 2016-12-29 2021-04-09 华为技术有限公司 一种实现安全操作系统切换的片上系统和方法
US10069860B1 (en) 2017-02-14 2018-09-04 International Business Machines Corporation Protection for computing systems from revoked system updates
TWI700627B (zh) 2017-05-23 2020-08-01 慧榮科技股份有限公司 認證韌體資料之資料儲存裝置與資料儲存方法
CA3071288C (en) * 2017-08-22 2021-03-09 Absolute Software Corporation Firmware integrity check using silver measurements
CN109508534A (zh) * 2017-09-14 2019-03-22 厦门雅迅网络股份有限公司 防止通过软件降级进行攻击的方法、嵌入式系统
US10810311B2 (en) * 2017-09-21 2020-10-20 Samsung Electronics Co., Ltd. Internet-of-things module
CN111357003A (zh) 2018-01-29 2020-06-30 惠普发展公司,有限责任合伙企业 预操作系统环境中的数据保护
US10659054B2 (en) * 2018-02-23 2020-05-19 Nxp B.V. Trusted monotonic counter using internal and external non-volatile memory
US10394542B1 (en) 2018-04-16 2019-08-27 Infineon Technologies Ag Low-power device recovery using a backup firmware image
US10713364B2 (en) * 2018-05-08 2020-07-14 WhiteSource Ltd. System and method for identifying vulnerabilities in code due to open source usage
CN109271185A (zh) * 2018-08-30 2019-01-25 郑州云海信息技术有限公司 一种cpld版本更新方法、装置、设备及存储介质
US11397815B2 (en) * 2018-09-21 2022-07-26 Hewlett Packard Enterprise Development Lp Secure data protection
US11100228B2 (en) * 2018-10-25 2021-08-24 Dell Products, L.P. System and method to recover FPGA firmware over a sideband interface
CN109673009B (zh) * 2018-11-13 2022-06-21 浙江合众新能源汽车有限公司 一种vcu软件空中升级方法及装置
US11222490B2 (en) * 2019-06-14 2022-01-11 International Business Machines Corporation Physical modification of circuits for automotive security
US11301566B2 (en) 2019-07-03 2022-04-12 Ati Technologies Ulc Firmware anti-rollback
US11507666B2 (en) * 2019-08-27 2022-11-22 Red Hat, Inc. Trusted execution environment verification of a software package
EP4325729A1 (en) * 2022-08-17 2024-02-21 Renesas Design Austria GmbH Dynamic function loading
WO2024071861A1 (ko) * 2022-09-30 2024-04-04 삼성전자 주식회사 업데이트 방법 및 이를 위한 전자 장치

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030217357A1 (en) * 2002-05-14 2003-11-20 Parry Travis J. Monitoring firmware
CN1678963A (zh) * 2002-08-28 2005-10-05 皮尔兹有限公司 用于安全临界过程的故障保险控制的安全控制器以及用于将新的操作程序装载到这种安全控制器上的方法
GB2430774A (en) * 2005-10-03 2007-04-04 Nec Technologies Software updating with version comparison steps
CN101361354A (zh) * 2005-11-23 2009-02-04 高通股份有限公司 用于在通信系统中将软件升级通知传递给装置的方法
WO2009068931A1 (en) * 2007-11-30 2009-06-04 Nokia Corporation Method, device and system for firmware update by near-field communication
CN101507248A (zh) * 2006-09-07 2009-08-12 诺基亚公司 管理涉及安全模块应用的信息
CN101816148A (zh) * 2007-08-06 2010-08-25 伯纳德·德莫森纳特 用于验证、数据传送和防御网络钓鱼的系统和方法
CN102662699A (zh) * 2012-03-27 2012-09-12 惠州Tcl移动通信有限公司 一种更新移动终端nfc固件的方法及其移动终端

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6996817B2 (en) * 2001-12-12 2006-02-07 Valve Corporation Method and system for upgrading and rolling back versions
US20030115469A1 (en) * 2001-12-14 2003-06-19 Intel Corporation Systems and methods for detecting and deterring rollback attacks
US8250562B2 (en) * 2002-08-30 2012-08-21 Sun Microsystems, Inc. Barrier mechanism for firmware upgrade
US7907729B2 (en) * 2002-09-13 2011-03-15 Bally Gaming, Inc. Rollback attack prevention system and method
US7797693B1 (en) * 2003-12-12 2010-09-14 Hewlett-Packard Development Company, L.P. NAND mobile devices capable of updating firmware or software in a manner analogous to NOR mobile devices
US20050132351A1 (en) * 2003-12-12 2005-06-16 Randall Roderick K. Updating electronic device software employing rollback
US7222340B2 (en) * 2004-01-27 2007-05-22 Research In Motion Limited Software-delivered dynamic persistent data
US7907531B2 (en) * 2005-06-13 2011-03-15 Qualcomm Incorporated Apparatus and methods for managing firmware verification on a wireless device
BRPI0520723B1 (pt) * 2005-11-30 2019-04-30 Telecom Italia S.P.A Método para verificar automaticamente atualizações de um aplicativo de software, terminal de comunicações sem fio adaptado para ser usado em uma rede de comunicações sem fio, e, rede de comunicações sem fio
ATE470909T1 (de) * 2006-04-24 2010-06-15 Ericsson Telefon Ab L M Prüfung der berechtigung der installation einer softwareversion
US8520850B2 (en) * 2006-10-20 2013-08-27 Time Warner Cable Enterprises Llc Downloadable security and protection methods and apparatus
US8888597B2 (en) * 2007-01-09 2014-11-18 Bally Gaming, Inc. Systems for providing amusement
US11275826B2 (en) 2007-01-31 2022-03-15 Nokia Technologies Oy Managing applications related to secure modules
US20080196024A1 (en) * 2007-02-08 2008-08-14 Ibm Corporation Method and Apparatus for Changing Software Components in an Information Handling System
WO2008108084A1 (ja) * 2007-03-02 2008-09-12 Panasonic Corporation 再生装置、システムlsi、初期化方法
US7929959B2 (en) * 2007-09-01 2011-04-19 Apple Inc. Service provider activation
US7860836B1 (en) * 2007-12-26 2010-12-28 Emc (Benelux) B.V., S.A.R.L. Method and apparatus to recover data in a continuous data protection environment using a journal
US8725123B2 (en) 2008-06-05 2014-05-13 Headwater Partners I Llc Communications device with secure data path processing agents
US8275858B2 (en) * 2008-09-18 2012-09-25 Mitac Technology Corp. Method for updating firmware of radio frequency identification reader through network system
US8171547B2 (en) 2008-12-03 2012-05-01 Trend Micro Incorporated Method and system for real time classification of events in computer integrity system
US9020009B2 (en) 2009-05-11 2015-04-28 Qualcomm Incorporated Inserted pilot construction for an echo cancellation repeater
JP5744004B2 (ja) * 2010-07-23 2015-07-01 パナソニック インテレクチュアル プロパティ コーポレーション オブアメリカPanasonic Intellectual Property Corporation of America Nfc通信装置およびその制御方法
US8522322B2 (en) * 2010-09-22 2013-08-27 Intel Corporation Platform firmware armoring technology
WO2012077331A1 (ja) * 2010-12-06 2012-06-14 パナソニック株式会社 通信装置、通信方法及び通信システム
US8745612B1 (en) * 2011-01-14 2014-06-03 Google Inc. Secure versioning of software packages
WO2012122994A1 (en) * 2011-03-11 2012-09-20 Kreft Heinz Off-line transfer of electronic tokens between peer-devices
US20130125108A1 (en) * 2011-11-16 2013-05-16 General Electric Company System and method for upgrading firmware
US9068858B2 (en) * 2012-04-13 2015-06-30 Elster Solutions, Llc Generic and secure AMI end device configuration
US9110761B2 (en) * 2012-06-27 2015-08-18 Microsoft Technology Licensing, Llc Resource data structures for firmware updates
GB2507596B (en) * 2012-10-30 2014-09-17 Barclays Bank Plc Secure computing device and method
US20140250290A1 (en) * 2013-03-01 2014-09-04 St-Ericsson Sa Method for Software Anti-Rollback Recovery

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030217357A1 (en) * 2002-05-14 2003-11-20 Parry Travis J. Monitoring firmware
CN1678963A (zh) * 2002-08-28 2005-10-05 皮尔兹有限公司 用于安全临界过程的故障保险控制的安全控制器以及用于将新的操作程序装载到这种安全控制器上的方法
GB2430774A (en) * 2005-10-03 2007-04-04 Nec Technologies Software updating with version comparison steps
CN101361354A (zh) * 2005-11-23 2009-02-04 高通股份有限公司 用于在通信系统中将软件升级通知传递给装置的方法
CN101507248A (zh) * 2006-09-07 2009-08-12 诺基亚公司 管理涉及安全模块应用的信息
CN101816148A (zh) * 2007-08-06 2010-08-25 伯纳德·德莫森纳特 用于验证、数据传送和防御网络钓鱼的系统和方法
WO2009068931A1 (en) * 2007-11-30 2009-06-04 Nokia Corporation Method, device and system for firmware update by near-field communication
CN102662699A (zh) * 2012-03-27 2012-09-12 惠州Tcl移动通信有限公司 一种更新移动终端nfc固件的方法及其移动终端

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105574720A (zh) * 2015-12-14 2016-05-11 联想(北京)有限公司 安全的信息处理方法以及信息处理装置
CN106406939A (zh) * 2016-09-05 2017-02-15 惠州Tcl移动通信有限公司 一种基于emmc芯片的移动终端防回滚方法及系统
CN108304727A (zh) * 2017-01-12 2018-07-20 联发科技股份有限公司 数据处理的方法与装置
CN107678762A (zh) * 2017-09-26 2018-02-09 杭州中天微系统有限公司 一种系统版本升级方法及装置
US11640288B2 (en) 2017-09-26 2023-05-02 C-Sky Microsystems Co., Ltd. System version upgrading method and apparatus
WO2019233022A1 (zh) * 2018-06-06 2019-12-12 晶晨半导体(上海)股份有限公司 防回滚方法及系统
CN108985049A (zh) * 2018-06-06 2018-12-11 晶晨半导体(上海)股份有限公司 防回滚方法及系统
WO2020118639A1 (zh) * 2018-12-13 2020-06-18 深圳市大疆软件科技有限公司 无人飞行器及其固件升级方法
CN111417926A (zh) * 2018-12-13 2020-07-14 深圳市大疆软件科技有限公司 无人飞行器及其固件升级方法
CN110134545A (zh) * 2019-04-03 2019-08-16 上海交通大学 基于可信执行环境的提供虚拟nvram的方法及系统
CN110134545B (zh) * 2019-04-03 2020-12-22 上海交通大学 基于可信执行环境的提供虚拟nvram的方法及系统
CN113672878A (zh) * 2020-05-14 2021-11-19 新唐科技股份有限公司 防止回滚攻击的系统及方法
CN113672878B (zh) * 2020-05-14 2023-09-29 新唐科技股份有限公司 防止回滚攻击的系统及方法
CN113486360A (zh) * 2021-07-14 2021-10-08 上海瓶钵信息科技有限公司 基于risc-v的安全启动方法及系统
CN113486360B (zh) * 2021-07-14 2022-11-11 上海瓶钵信息科技有限公司 基于risc-v的安全启动方法及系统

Also Published As

Publication number Publication date
EP2917828A1 (en) 2015-09-16
US20140130151A1 (en) 2014-05-08
JP6321023B2 (ja) 2018-05-09
KR20150083878A (ko) 2015-07-20
JP2015533444A (ja) 2015-11-24
WO2014074674A1 (en) 2014-05-15
US9910659B2 (en) 2018-03-06

Similar Documents

Publication Publication Date Title
CN104798040A (zh) 用于在没有内部非易失性存储器的设备中提供防回滚保护的方法
US10635430B2 (en) Over-the-air provisioning of application library
US20240112172A1 (en) Digital transaction apparatus, system, and method with a virtual companion card
US8909144B2 (en) Communications devices comprising NFC communicators
EP2761553B1 (en) Payment system
KR101330867B1 (ko) 결제 디바이스에 대한 상호인증 방법
US20190392427A1 (en) Digital transaction system and method with a virtual companion card
US20070280509A1 (en) Systems and methods for storing data to a handheld device
CN106339866A (zh) 中继装置
Alattar et al. Host-based card emulation: Development, security, and ecosystem impact analysis
CN101714216B (zh) 半导体元件、生物体认证方法和系统、便携式终端
CN105761067A (zh) 智能pos机安全模块及其启动方法
JP2012094146A (ja) 特に資源の利用に関する利用者の認証によって保護された関数の実行を制御する方法及びシステム
KR20200033560A (ko) 보안 엘리먼트를 이용하여 서비스를 제공하는 전자 장치 및 그의 동작 방법
JP4509291B2 (ja) Icカード、icカードのプログラム更新装置、および、その方法
CN205540909U (zh) 智能pos机安全模块
US20180068307A1 (en) Method of Controlling an Electronic Device and Corresponding Electronic Device
EP3937454A1 (en) Secure end-to-end pairing of secure element to mobile device
KR20240028895A (ko) 애플릿의 비접촉 통신 제어 방법 및 장치

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
AD01 Patent right deemed abandoned
AD01 Patent right deemed abandoned

Effective date of abandoning: 20190611