CN103189877B - 软件认证 - Google Patents

软件认证 Download PDF

Info

Publication number
CN103189877B
CN103189877B CN201180052461.8A CN201180052461A CN103189877B CN 103189877 B CN103189877 B CN 103189877B CN 201180052461 A CN201180052461 A CN 201180052461A CN 103189877 B CN103189877 B CN 103189877B
Authority
CN
China
Prior art keywords
public keys
call number
cipher key
private cipher
received
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.)
Active
Application number
CN201180052461.8A
Other languages
English (en)
Other versions
CN103189877A (zh
Inventor
J·卢卡里拉
R·塔米宁
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.)
Nokia Technologies Oy
Original Assignee
Nokia Oyj
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 Nokia Oyj filed Critical Nokia Oyj
Publication of CN103189877A publication Critical patent/CN103189877A/zh
Application granted granted Critical
Publication of CN103189877B publication Critical patent/CN103189877B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • 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/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms

Landscapes

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

Abstract

一种装置具有至少一个安全存储器区域,该至少一个安全存储器区域包含有多个预安装的公共密钥以用于验证软件真实性。使得该装置接收指示,其指示根据公共密钥体系使用私有密钥签名的软件包已经被接收到;从所述安全存储区域,检查与签名所述软件包所使用的所述私有密钥相关联的公共密钥是否被禁用;以及若与所述私有密钥相关联的公共密钥被禁用,则阻止执行所接收到的软件包,和否则,进行至使用与所述私有密钥相关联的公共密钥,验证所接收到的软件包的真实性。

Description

软件认证
技术领域
本发明通常涉及软件安全。尽管不是绝对的,但更准确地说,本发明涉及软件废止、更新以及软件签名。
背景技术
软件签名是一种广泛使用的方法,以用于确保电子设备仅运行那些它想要运行的代码和已经由被可信实体提供的代码。基于以下几方面原因,对在电子设备上运行哪些软件进行控制很重要:设备安全,客户的私密性、品牌保护、设备证书、符合立法当局规定,保护设备的软件资产,启动应用和服务业务等。失去对可执行软件的控制对消费者和设备制造商都会产生严重的影响。
公共秘密加密(PKI)是一种这样的方法,其能够被用于签名软件和验证软件的真实性(authenticity)。PKI使用密钥对,其包括公共密钥和私有密钥。私有密钥被用于签名软件,并应仅由控制哪些软件会被允许在具体设备上执行的实体知晓。这种实体例如可以是设备制造商。公共密钥应被保存于设备上,设备被配置为使用公共密钥以用于在允许新软件在该设备上执行之前对该软件执行加密检查。
发明内容
根据本发明第一个示例性方面,提供一种装置,其包括:
至少一个安全存储器区域,其包含有多个预安装的公共密钥,以用于验证软件真实性;
至少一个处理器;和
至少一个存储器,其包含计算机程序代码,所述至少一个存储器和所述计算机程序代码被配置为,通过用所述至少一个处理器,使得该装置至少:
接收指示,其指示根据公共密钥体系使用私有密钥签名的软件包已经被接收到;
从所述安全存储区域,检查与签名该软件包所使用的所述私有密钥相关联的公共密钥是否被禁用;和
若与该私有密钥相关联的公共密钥被禁用,则阻止执行所接收到的软件包,和否则,进行至使用与该私有密钥相关联的公共密钥,验证所接收到的软件包的真实性。
根据本发明的第二个示例性方面,提供一种方法,其包括:
维护安全存储区域,所述安全存储区域包含有多个预安装的公共密钥,以用于验证软件真实性;
接收指示,其指示根据公共密钥体系使用私有密钥签名的软件包已经被接收到;
从所述安全存储区域,检查与签名该软件包所使用的所述私有密钥相关联的公共密钥是否被禁用;和
若与该私有密钥相关联的公共密钥被禁用,则阻止执行所接收到的软件包,和否则,进行至使用与该私有密钥相关联的公共密钥,验证所接收到的软件包的真实性。
根据本发明第三个示例性方面,提供一种方法,其包括:
获取多个公共-私有密钥对,
将所述公共-私有密钥对中的多个公共密钥预安装于电子装置的安全存储区域中,以用于验证将运行于该电子装置中的软件的真实性;以及
将所述公共-私有密钥对中的多个私有密钥保存在分离的地方,以用于签名将运行于该电子装置中的软件。
根据本发明第四个示例性方面,提供一种计算机程序,其包含在计算机可读介质上,包含有计算机可执行程序代码,当由装置的至少一个处理器执行时,其中该装置包括至少一个安全存储区域,该安全存储区域包含有用于验证软件真实性的多个预安装的公共密钥,使得该装置:
接收指示,其指示根据公共密钥体系使用私有密钥签名的软件包已经被接收到;
从所述安全存储区域,检查与签名该软件包所使用的所述私有密钥相关联的公共密钥是否被禁用;和
若与该私有密钥相关联的公共密钥被禁用,则阻止执行所接收到的软件包,和否则,进行至使用与该私有密钥相关联的公共密钥,验证所接收的软件包的真实性。
根据本发明第五个实例性方面,提供一种装置,其包含:
存储部件,其包含有用于验证软件真实性的预安装的公共密钥;
用于接收指示的部件,该指示表示根据公共密钥体系使用私有密钥签名的软件包已经被接收到;
用于从所述安全存储区域,检查与签名该软件包所使用的所述私有密钥相关联的公共密钥是否被禁用的部件;和
被配置为若与该私有密钥相关联的公共密钥被禁用,则阻止执行所接收到的软件包,和否则,进行至使用与该私有密钥相关联的公共密钥,验证所接收的软件包的真实性的部件。
任何前述存储器介体可包括数字数据存储器,诸如数据光盘或软盘、光学存储器,磁盘,全息存储器,光磁存储器,相变存储器,电阻随机存储器,磁随机存储器,固态电解质存储器,铁电随机存储器,有机存储器或聚合物存储器。存储器介质可形成于除了保存记忆外不带其它实质功能的设备中或它可形成为带有其他功能的设备的一部分,包括但不局限于计算机的存储器、芯片组、和电子设备的子组。
已经在前面说明了本发明的几个非限定示例性方面和实施例。上述实施例仅用于解释所选择的可以被用于实现本发明的方面和步骤。可以仅参照本发明某些实例性方面来提供某些实施例。应当知道的是,对应实施例同样可以应用于其他示例性方面。
附图说明
仅作为例子,参照附图描述本发明,其中:
图1表示通常的软件签名过程;
图2表示根据本发明示例性实施例的软件签名过程;
图3是根据本发明示例性的方法的流程图;
图4A是根据本发明示例性的另一方法的流程图;
图4B是根据本发明示例性的另一方法的流程图;
图5示出包含有安全执行环境的示例性设备;
图6表示根据本发明示例性实施例的装置中的密钥管理;和
图7提供其中可以应用本发明的各个实施例的装置的示例性模块图。
具体实施方式
在下面的说明中,相同数字表明相同的单元。
对电子设备,像移动电话的常见安全威胁是包含在该设备自己软件中的缺陷。恶意黑客能够利用该缺陷并获取所需要功能的控制,像补贴锁(subsidylock)。在电子设备的研究和开发阶段,可能包含有具有安全隐患缺陷的许多软件版本被创建和签名以用于该目标电子设备。正常工作流可能包含实现、测试和固定设备软件的许多阶段,作为制造准备给消费者市场的设备过程的一部分。
由于可能包含有安全威胁缺陷的研究和开发版本软件能够在目标设备上执行,所以当它们泄露给公众时,它们就产生了安全威胁。处理这个的一种可能方法是当设备准备进入消费者市场时改变软件签名所使用的公共-私密密钥对。这意味着保存于设备硬件中的密钥对中的公共部分需要被改变。卖给消费者的每个设备都具有与在早期研究和开发阶段所使用的密钥不同的密钥。这种方法中,用研究和开发阶段密钥所签名的任何软件图像都将不能运行于卖给消费者的设备上。
公共密钥被永久地编程到设备硬件中,从而改变该密钥已经意味着制造新设备。控制私有密钥的实体被迫生成新的私有/公共密钥对并获取包含有新公共密钥的新硬件部分。新硬件部分例如一定是已经订购于外部芯片供应商。从而,新部分已经被传送到设备生产线以用于组装新设备,并且软件签名方案已经被改变来使用新密钥,而之前所生成的所有软件包将不再能运行于该新设备硬件上。换句话说,改变所使用密钥将是一种消耗资源、金钱的艰巨任务,并给芯片组合设备制造商带来物流负担。
本发明的示例性实施例现在提供新类型的公共密钥管理来进行软件签名。
本发明的示例性实施例引入将几个公共密钥一次注入设备硬件。在另一个示例性实施例中,基于索引的管理被创建来控制公共密钥的使用。
根据本发明的示例性实施例的装置包括多个预安装的公共密钥,而不是仅包含一个公共密钥。多个公共密钥可以被保存于安全存储区域。某些预安装密钥可能被禁用于进一步的使用。
图1示出用于装置106的通常的软件签名过程。该装置包含处理硬件107(专用集成电路,ASIC)和闪存108。
在模块101中生成公共-私有密钥对。生成的私有密钥102应当保密并应当仅可用于授权的软件制造商。生成的公共密钥103被保存于装置106的硬件107中。公共密钥可嵌入在硬件107的一次性可编程存储器(OTP)中。
在模块105中,用私有密钥102来签名软件图像104以获得签名后的软件图像(或软件包)109。签名的软件图像109和关联签名110被提供给装置106的闪存108。于是,装置106的硬件107对照嵌入在硬件107中的公共密钥103来验证签名110。在这种情形中,在签名方案中改变密钥对实质上意味着需要具有新硬件的新装置,因为公共密钥103被嵌入在装置106内部。
图2示出根据本发明示例性实施例用于装置206的软件签名过程。该装置包括处理硬件207(专用集成电路,ASIC)和闪存108。
在模块201中生成几个公共-私有密钥对。生成的私有密钥202应当保密并应当仅可用于授权的软件制造商。生成的公共密钥203被保存于装置206的硬件207中。公共密钥203可嵌入在硬件207的一次性可编程存储器(OTP)中。私有密钥202和公共密钥203可以分别被设置有索引211和212。
在模块205中,用几个私有密钥202中的当前活动私有密钥来签名软件图像104,从而获得被签名的软件图像(或软件包)109。被签名的软件图像109和关联签名被提供给装置206的闪存108。接着,装置206的硬件207确认正在使用有效的公共-私有密钥对,并接着对照嵌入在硬件207中的几个公共密钥203中的当前活动密钥来验证签名110。在这种情况下,在签名方案中改变密钥对涉及禁用之前使用的密钥对并采用新的密钥对,并且在密钥改变后可以使用完全相同的装置206。索引211和212可以用于禁用和改变密钥对。
图3是流程图,其示出根据本发明示例性实施例的另一种方法。该方法涉及制造电子装置。电子装置例如可以是专用集成电路或某些其它硬件组件。
在阶段310,获取多个公共-私有密钥对。该密钥可被生成或它们可从某些适当的源获取。例如,该密钥可以事先被生成。
在阶段320,公共-私有密钥对的多个公共密钥被预安装于电子装置中,以为了被用于验证将在该电子装置上运行的软件的真实性。公共密钥可以被保存于电子装置的安全存储区域。
在阶段330,公共-私有密钥对的多个私有密钥被保存于单独的地方,以为了被用于签名为该电子装置而准备的软件。
在本发明示例性实施例中,为公共-私有密钥对建立索引表,其将公共和私有密钥映射到索引号上。于是,该索引号可以被用于控制正使用的公共-私有密钥对,并如本文件其他地方所述那样用于根据本发明的各种实施例来验证所使用密钥对的有效性。
图4A是流程图,其示出根据本发明实施例的方法。该方法例如可被实现在图2的装置206中。
在阶段410,接收用私有密钥签名的软件包。在阶段420,检查与签名该软件包所使用的私有密钥相关联的公共密钥是否被禁用。如果与该私有密钥相关联的公共密钥被禁用,在阶段430中,所接收软件包的执行被禁止。否则,该过程进行到阶段440,以使用与该私有密钥相关联的公共密钥来验证所接收软件包的真实性。若真实性未被确认,则过程进行到阶段430,从而所接收软件包的执行被禁止。否则,在阶段450中允许执行该软件包并且/或采取进一步的安全措施。
在本发明示例性实施例中,多个预安装公共密钥具有相关联的公共密钥索引号,并且安全存储区域包含指示当前所使用的公共密钥的当前公共密钥索引号。
接着,随着所接收的软件包,私有密钥索引号被接收到,所接收私有密钥索引号和所保存的当前公共密钥索引号相比较。如果所接收的私有密钥索引号等于当前公共密钥索引号,则该过程进行以使用与该私有密钥相关联的公共密钥来验证所接收软件包的真实性。如果所接收私有密钥索引号不同于当前公共密钥索引号时,作出进一步的检查。
在本发明示例性实施例中,该过程如下继续进行:若所接收私有密钥索引号与被禁用的公共密钥索引号匹配,则所接收软件包的执行被禁止。否则,过程向前进行以使用与该私有密钥相关联的公共密钥来验证所接收软件包的真实性。在本发明示例性实施例中,所接收私有密钥索引号被保存作为当前公共密钥索引号,从而私有-公共密钥对被更改为新的一个。另外,之前的公共密钥被禁用。通过禁用之前的公共密钥,由之前的私有-公共密钥对签名的任何软件都被废止。
在本发明另一示例性实施例中,该过程如下继续进行:若所接收的私有密钥索引号小于当前公共密钥索引号,则所接收软件包的执行被禁止。若所接收私有密钥索引号大于当前公共密钥索引号,则过程向前进行以使用与该私有密钥相关联的公共密钥来验证所接收软件包的真实性。在本发明示例性实施例中,所接收私有密钥索引号被保存作为当前公共密钥索引号,从而私有-公共密钥对被更改为新的一个。在这种情况下,之前的公共密钥自动变成禁用,由之前的私有-公共密钥对签名的任何软件被废止。
图4B是流程图,其示出根据本发示例性明实施例的方法。所示出的方法可以是图4A中所示方法的一部分,并例如可以被置于图4A的阶段420的否分支中。
在阶段460,所接收私有密钥索引号与保存于设备中的当前公共密钥索引号相比较。若索引号相同,则过程进行到阶段470,从而从图4A的阶段440继续执行。在这种情况下,可以推断所接收软件使用与之前相同的私有-公共密钥对。
若索引号不同,则在阶段480,所接收私有密钥索引号被保存作为当前公共密钥索引号,从而新的私有-公共密钥对被投入使用。从而过程继续进行到阶段470并从图4A的阶段440继续执行。
许多电子设备,例如像移动电话装备,有安全执行环境(SEE),以用于执行安全关键代码和操控敏感内容。图5示出包含有这种安全执行环境的示例性设备501。设备501包含处理硬件502和非易失性存储器503(例如闪存)。处理硬件502包含公共处理单元(PUBPU)504,用于代码和数据的公共存储器(PUBMEM)505,以及安全执行环境(SEE)506。SEE506包含安全处理单元(SECPU)507,用于代码和数据的安全存储器(SECMEM)508,并访问一次性可编程(OTP)存储器509。SEE506与处理环境(PUBPU和PUBMEM)的剩余部分在逻辑和/或物理上分离,在该处理环境中执行大部分的软件,像设备的操作系统(OS)。这使得SEE506成为可信的并与操作系统隔离的环境,这可为整个设备501提供安全服务和功能。SEE506可提供的服务中的一个是在允许任何新的软件在设备501上运行之前验证它是由可信源签名过的。
图6示出根据本发明示例性实施例的装置中的密钥管理。该装置包括处理硬件601和非易失性存储器602。
非易失性存储器602包括被签名的软件图像603以及签名604和闪存索引号605。闪存索引号605指示在签名软件图像603中已经被使用的私有密钥的索引号。
处理硬件601包括可信初始化代码606,OTP索引号607和保存于OTP存储器中的与索引号608相关联的几个公共密钥。可信初始化代码606是一段计算机程序代码,其运行于处理硬件601的可信部分(诸如结合图5所公开的SEE)中并被配置为认证新的软件。OTP索引号607指示当前被使用的公共密钥的索引号。
在本发明示例性实施例中,图6的装置如下运行:
1.可信初始化代码606读取闪存索引号605。
2.可信初始化代码606读取OTP索引号607,并将它与闪存索引号605相比较。若闪存索引号605等于或大于OTP索引号607,则软件图像603的执行被允许继续进行。若闪存索引号605小于OTP索引号607,则软件图像603的执行被停止并且相反的措施将被实施。相反措施可由SEE实施。
3.若软件图像603的执行被允许继续进行,则可信初始化代码606将由来自OTP存储器的闪存索引号606定义的正确公共密钥608投入使用。
4.过程继续进行来验证签名图像603的签名604。这可由可信初始化代码或某些其他代码来完成。如果图像认证失败,则软件图像603的执行不被允许并且相反的措施将被实施。相反措施可由可信初始化代码或在SEE中实施。
5.若图像认证成功,则软件图像603的执行被允许并且/或采取进一步的安全检查。例如,软件版本号可以被用于这种安全检查。
在本发明示例性实施例中,OTP索引号607用作对公共密钥的回复保护。OTP索引号607定义可由可信初始化代码接受的最小索引号。在本发明示例性实施例中,OTP索引号607仅对可信软件(例如运行于SEE中的软件)是软件可编程的和可变更的。由于安全OTP索引号607提供的回复保护,闪存索引号605可以是公共信息并不需要保护。
图7表示装置700的示例性框图,其中可以应用本发明各个实施例。这可以是用户装置(UE),用户设备或装置,诸如移动终端或其他通信设备。
装置700的通用结构包括通信接口模块750,耦合到该通信模块750的处理模块710,耦合到该处理模块710的用户接口模块760,和耦合到该处理模块710的非易失性存储器770。另外,通信接口模块750,用户接口模块760,和非易失性存储器770可彼此通信。处理模块710包括处理器720和存储器730。处理模块710还包括保存于存储器703中并可以被加载到处理器720并在处理器720中执行的软件740。软件740可包括一个或多个软件模块,并可以是计算机程序产品的形式。处理模块710可包括用于可信软件或数据的和用于装置700的常规操作的分开的处理和存储器区域。
通信接口模块750例如可以是无线电接口模块,诸如WLAN,蓝牙,GSM/GPRS,CDMA,WCDMA,或LTE(长期演进)无线电模块。通信接口模块750可以集成到装置700中或集成到可被插入到装置700的适当槽或端口中的适配器、卡或类似部件中。通信接口模块750可支持一种无线电接口技术或多种技术。图7示出一个通信接口模块750,但装置700可包括多个通信接口模块750。
处理器710例如是中央处理单元(CPU),微处理器,数字信号处理器(DSP),图形处理单元,或类似处理器。图7示出一个处理器710,但装置700可包含多个处理器。
存储器730例如可包括非易失性或易失性存储器,诸如只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、随机访问存储器(RAM)、闪存、数据盘、光盘存储器、磁盘存储器、智能卡、或类似存储器。装置700可包括多个存储器。存储器730可被构建作为装置700的一部分或它可由用户插入到装置700的槽、端口或类似接口。存储器730可单独服务于数据存储,或它可被构建为服务于其他目的(诸如处理数据或提供安全措施)的装置的一部分。非易失性存储器770例如可以是闪存,可服务于接收和保存软件变更。非易失性存储器770可被构建为装置700的一部分或它可由用户插入到装置700的槽、端口或类似接口中。
用户接口模块760可包括接口电路,其用于诸如通过键盘、在装置700的显示器上示出的图像用户接口、语音识别电路、或诸如耳机的附属装置,从装置700的用户接收输入,并用于例如通过图形用户接口或扬声器向用户提供输出。
本领域熟练技术人员知道,除了图7所示的单元外,装置700可包括其他单元,诸如麦克风、显示器、以及其它电路,诸如输入/输出(I/O)电路、存储器芯片、专用集成电路(ASIC)、专用处理电路,诸如源编码/解码电路、信道编码/解码电路、加密/解密电路,和类似电路。另外,装置700可包括一次性电池或可充电电池(未示出),用于当外部电力(如果提供外部电源)不可用时为装置700提供电力。
本发明的各个实施例的各个特征可提供各个优点。
根据本发明各个实施例,通过生成和预安装多个公共-私有密钥对,当需要改变被用于软件签名和真实性验证的密钥对时,人们可以避免承担更换整个设备的负担。这样,在管理产品的安全重要软件签名密钥方面,人们可以获得更大灵活性。
由于当签名密钥改变时不是必须制造新设备,可以获得成本、制造和物流的节省。
例如,数字权限管理(DRM)测试需要旧的、可能非可信软件图像一定不能够在包含真实DRM密钥的设备上运行。根据本发明各个实施例,通过可编程公共密钥索引,可以获得这种类型的设置,而不需要任何设备硬件的改变。因此,将用于研究和开发阶段的大量设备可以被制造并接着以灵活的方式来使用。
已经提供各种实施例。应当知道的是,在本说明书中,在没有特别说明情况下,单词“由……构成”,“包括”,“包含”中的每一个被用作开放式表达。
作为本发明特定实施例和实施方式的非限定例子,前面的描述已经提供用于实现本发明的发明人所设想的最佳方式的全面和有益描述。然而,本领域熟练技术人员应当清楚本发明并不限于上述细节,而是在不脱离本发明特征的情况下,它可以使用等同方式或实施例的不同组合来实现。
另外,本发明上述实施例的某些特征可以在没有其它特征的相应使用情况下被有利地使用。从而,前述说明应当被认为仅是描述本发明的原理,而不对它限制。从而,本发明的保护范围仅由后面权利要求来限定。

Claims (12)

1.一种用于软件安全的装置,包括:
至少一个安全存储区域,其包含多个预安装的公共密钥,以用于验证软件真实性,其中所述多个预安装的公共密钥具有相关联的公共密钥索引号,并且其中所述安全存储区域包括指示当前所使用的公共密钥的当前公共密钥索引号;
至少一个处理器;以及
至少一个存储器,其包含计算机程序代码,所述至少一个存储器和所述计算机程序代码被配置为,通过所述至少一个处理器,使得所述装置至少:
接收指示,其指示根据公共密钥体系使用私有密钥签名的软件包已经被接收到;
接收与所接收到的软件包相关联的私有密钥索引号;
将所接收的私有密钥索引号与所保存的当前公共密钥索引号相比较;
若所接收的私有密钥索引号等于所述当前公共密钥索引号,则进行至使用与所述私有密钥相关联的公共密钥来验证所接收到的软件包的真实性,以及
若所接收的私有密钥索引号不同于所述当前公共密钥索引号,则检查与所接收的私有密钥索引号相关联的公共密钥是否被禁用,以及
若与所接收的私有密钥索引号相关联的公共密钥被禁用,则阻止所接收到的软件包的执行,否则进行至使用与所述私有密钥相关联的公共密钥来验证所接收到的软件包的真实性。
2.如权利要求1所述的装置,其中所述装置是电子通信设备。
3.如权利要求1所述的装置,其中所述装置是专用集成电路。
4.一种用于软件安全的装置,包括:
至少一个安全存储区域,其包含多个预安装的公共密钥,以用于验证软件真实性,其中所述多个预安装的公共密钥具有相关联的公共密钥索引号,并且其中所述安全存储区域包括指示当前所使用的公共密钥的当前公共密钥索引号;
至少一个处理器;以及
至少一个存储器,其包含计算机程序代码,所述至少一个存储器和所述计算机程序代码被配置为,通过所述至少一个处理器,使得所述装置至少:
接收指示,其指示根据公共密钥体系使用私有密钥签名的软件包已经被接收到;
接收与所接收到的软件包相关联的私有密钥索引号;
将所接收的私有密钥索引号与所保存的当前公共密钥索引号相比较;以及
若所接收的私有密钥索引号小于当前公共密钥索引号,则阻止所接收到的软件包的执行,以及
若所接收的私有密钥索引号等于或大于当前公共密钥索引号,则进行至使用与所述私有密钥相关联的公共密钥来验证所接收到的软件包的真实性。
5.如权利要求4所述的装置,其中所述至少一个存储器和所述计算机程序代码被配置为,通过所述至少一个处理器,还使得所述装置:
若所接收的私有密钥索引号大于当前公共密钥索引号,则将所接收的私有密钥索引号保存为当前公共密钥索引号。
6.如权利要求4所述的装置,其中所述装置是电子通信设备。
7.如权利要求4所述的装置,其中所述装置是专用集成电路。
8.一种用于软件安全的方法,包括:
维护安全存储区域,其包含多个预安装的公共密钥,以用于验证软件真实性,其中所述多个预安装的公共密钥具有相关联的公共密钥索引号,并且其中所述安全存储区域包括指示当前所使用的公共密钥的当前公共密钥索引号;
接收指示,其指示根据公共密钥体系使用私有密钥签名的软件包已经被接收到;
接收与所接收到的软件包相关联的私有密钥索引号;
将所接收的私有密钥索引号与所保存的当前公共密钥索引号相比较;以及
若所接收的私有密钥索引号等于所述当前公共密钥索引号,则进行至使用与所述私有密钥相关联的公共密钥来验证所接收到的软件包的真实性,以及
若所接收的私有密钥索引号不同于所述当前公共密钥索引号,则检查与所接收的私有密钥索引号相关联的公共密钥是否被禁用,以及
若与所接收的私有密钥索引号相关联的公共密钥被禁用,则阻止所接收到的软件包的执行,否则进行至使用与所述私有密钥相关联的公共密钥来验证所接收到的软件包的真实性。
9.一种用于软件安全的方法,包括:
维护安全存储区域,其包含多个预安装的公共密钥,以用于验证软件真实性,其中所述多个预安装的公共密钥具有相关联的公共密钥索引号,并且其中所述安全存储区域包括指示当前所使用的公共密钥的当前公共密钥索引号;
接收指示,其指示根据公共密钥体系使用私有密钥签名的软件包已经被接收到;
接收与所接收到的软件包相关联的私有密钥索引号;
将所接收的私有密钥索引号与所保存的当前公共密钥索引号相比较;以及
若所接收的私有密钥索引号小于当前公共密钥索引号,则阻止所接收到的软件包的执行,以及
若所接收的私有密钥索引号等于或大于当前公共密钥索引号,则进行至使用于所述私有密钥相关联的公共密钥来验证所接收到的软件包的真实性。
10.如权利要求9所述的方法,还包括:
若所接收的私有密钥索引号大于当前公共密钥索引号,将所接收的私有密钥索引号保存为当前公共密钥索引号。
11.一种用于软件安全的方法,包括:
获取多个公共-私有密钥对,
将所述公共-私有密钥对中的多个公共密钥预安装于电子装置的安全存储区域中,以用于验证将运行于所述电子装置中的软件的真实性;
将所述公共-私有密钥对中的多个私有密钥保存在分离的地方,以用于签名将运行于所述电子装置中的软件;
建立索引表,其将所述公共-私有密钥对映射到索引号上,以及
将所述公共-私有密钥对中的多个公共密钥与关联索引号一起预安装于所述电子装置的所述安全存储区域中。
12.如权利要求11所述的方法,其中所述电子装置是专用集成电路。
CN201180052461.8A 2010-10-29 2011-10-03 软件认证 Active CN103189877B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/915,551 2010-10-29
US12/915,551 US8539610B2 (en) 2010-10-29 2010-10-29 Software security
PCT/FI2011/050851 WO2012056094A1 (en) 2010-10-29 2011-10-03 Software authentication

Publications (2)

Publication Number Publication Date
CN103189877A CN103189877A (zh) 2013-07-03
CN103189877B true CN103189877B (zh) 2015-11-25

Family

ID=45993219

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180052461.8A Active CN103189877B (zh) 2010-10-29 2011-10-03 软件认证

Country Status (4)

Country Link
US (1) US8539610B2 (zh)
EP (1) EP2633464B1 (zh)
CN (1) CN103189877B (zh)
WO (1) WO2012056094A1 (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120155647A1 (en) * 2010-12-21 2012-06-21 General Instrument Corporation Cryptographic devices & methods
US8516271B2 (en) * 2011-03-11 2013-08-20 Hewlett-Packard Development Company, L. P. Securing non-volatile memory regions
WO2012122994A1 (en) * 2011-03-11 2012-09-20 Kreft Heinz Off-line transfer of electronic tokens between peer-devices
EP2962421B1 (en) 2013-02-26 2018-04-04 Visa International Service Association Systems, methods and devices for performing passcode authentication
EP2989746A4 (en) * 2013-04-26 2016-05-18 Visa Int Service Ass PROVIDING DIGITAL CERTIFICATES
US9270469B2 (en) * 2014-02-20 2016-02-23 Xilinx, Inc. Authentication using public keys and session keys
US9697359B2 (en) * 2015-04-15 2017-07-04 Qualcomm Incorporated Secure software authentication and verification
DK3113516T3 (da) * 2015-07-02 2023-07-24 Gn Hearing As Høreaggregat og metode til opdatering af et høreaggregat
US10158953B2 (en) 2015-07-02 2018-12-18 Gn Hearing A/S Hearing device and method of updating a hearing device
KR102365532B1 (ko) * 2015-09-22 2022-02-21 삼성전자주식회사 보안 기능 수행 방법 및 이를 지원하는 전자 장치
EP3291087A1 (en) * 2016-09-01 2018-03-07 Nxp B.V. Apparatus and associated method for authenticating firmware
EP3554096B9 (en) 2018-04-11 2023-07-05 GN Hearing A/S A hearing aid housing with an integrated antenna
KR102126931B1 (ko) * 2018-11-07 2020-06-25 시큐리티플랫폼 주식회사 시큐어 부팅 장치 및 방법
US10769280B2 (en) * 2018-12-13 2020-09-08 Silicon Laboratories, Inc. Side channel attack countermeasures for secure bootloading
US11537701B2 (en) * 2020-04-01 2022-12-27 Toyota Motor North America, Inc. Transport related n-factor authentication
CN111708990A (zh) * 2020-05-15 2020-09-25 支付宝(杭州)信息技术有限公司 小程序启动方法、签名方法、装置、服务器及介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2355819A (en) * 1999-10-26 2001-05-02 Marconi Comm Ltd Authentication of data and software
CN1682488A (zh) * 2002-09-16 2005-10-12 艾利森电话股份有限公司 在电子装置上装载数据
CN1736055A (zh) * 2003-01-07 2006-02-15 高通股份有限公司 替换密钥的系统、设备和方法
CN101611631A (zh) * 2007-02-12 2009-12-23 索尼株式会社 使用存储的密钥表进行包封媒体加密

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5412722A (en) * 1993-08-31 1995-05-02 Motorola, Inc. Encryption key management
US7917760B2 (en) 1997-02-21 2011-03-29 Multos Limited Tamper resistant module having separate control of issuance and content delivery
WO2000072149A1 (en) * 1999-05-25 2000-11-30 Motorola Inc. Pre-verification of applications in mobile computing
US6909786B2 (en) 2001-01-09 2005-06-21 D'crypt Private Limited Cryptographic trap door with timed lock and controlled escrow
US20030053629A1 (en) * 2001-09-14 2003-03-20 Koninklijke Philips Electronics N.V. USB authentication interface
US7434259B2 (en) * 2002-10-21 2008-10-07 Microsoft Corporation Method for prompting a user to install and execute an unauthenticated computer application
EP1659472A1 (en) 2004-11-22 2006-05-24 Research In Motion Limited Method and Device for Authenticating Software
GB2425193B (en) 2005-04-14 2007-10-17 Nec Technologies Method of software updating and related device
US20070277038A1 (en) 2006-05-25 2007-11-29 General Dynamics C4 Systems, Inc. Method for authentication of software within a product
US8166304B2 (en) 2007-10-02 2012-04-24 International Business Machines Corporation Support for multiple security policies on a unified authentication architecture

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2355819A (en) * 1999-10-26 2001-05-02 Marconi Comm Ltd Authentication of data and software
CN1682488A (zh) * 2002-09-16 2005-10-12 艾利森电话股份有限公司 在电子装置上装载数据
CN1736055A (zh) * 2003-01-07 2006-02-15 高通股份有限公司 替换密钥的系统、设备和方法
CN101611631A (zh) * 2007-02-12 2009-12-23 索尼株式会社 使用存储的密钥表进行包封媒体加密

Also Published As

Publication number Publication date
EP2633464A4 (en) 2014-08-20
US8539610B2 (en) 2013-09-17
WO2012056094A1 (en) 2012-05-03
CN103189877A (zh) 2013-07-03
EP2633464A1 (en) 2013-09-04
US20120110333A1 (en) 2012-05-03
EP2633464B1 (en) 2017-04-26

Similar Documents

Publication Publication Date Title
CN103189877B (zh) 软件认证
CN109792386B (zh) 用于可信计算的方法和装置
CN101300583B (zh) 用于可信赖移动电话的简单可伸缩和可配置安全启动
US9881150B2 (en) Method and device for verifying the integrity of platform software of an electronic device
US7886355B2 (en) Subsidy lock enabled handset device with asymmetric verification unlocking control and method thereof
KR101795457B1 (ko) 보안 기능이 강화된 디바이스의 초기화 방법 및 디바이스의 펌웨어 업데이트 방법
JP6275653B2 (ja) データ保護方法及びシステム
CN110795774B (zh) 基于可信高速加密卡的度量方法、设备和系统
CN111404696B (zh) 协同签名方法、安全服务中间件、相关平台及系统
CN111542820A (zh) 用于可信计算的方法和装置
EP1680719B1 (en) Method and device for controlling installation of applications using operator root certificates
EP2693789B1 (en) Mobile terminal encryption method, hardware encryption device and mobile terminal
CN105745661A (zh) 对权限管理的内容的基于策略的受信任的检测
WO2014036021A1 (en) Secure device service enrollment
CN101199159A (zh) 安全引导
US9288054B2 (en) Method and apparatus for authenticating and managing application using trusted platform module
US20200026882A1 (en) Methods and systems for activating measurement based on a trusted card
CN103503366A (zh) 管理针对认证设备的数据
CN101983375A (zh) 将密码模块绑定到平台
KR102286794B1 (ko) 통합 보안 SoC를 이용한 IoT 디바이스의 안전한 부트 방법
CN105678192A (zh) 一种基于智能卡的密钥应用方法及应用装置
EP2547135A2 (en) Apparatus and method for preventing copying of terminal unique information in portable terminal
US20080184028A1 (en) Methods, Apparatus and Products for Establishing a Trusted Information Handling System
CN110795742A (zh) 高速密码运算的度量处理方法、装置、存储介质及处理器
US10594693B2 (en) Electronic device identification

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20151231

Address after: Espoo, Finland

Patentee after: Technology Co., Ltd. of Nokia

Address before: Espoo, Finland

Patentee before: Nokia Oyj