CN102096841B - 安装有计算机代码的集成电路和系统 - Google Patents

安装有计算机代码的集成电路和系统 Download PDF

Info

Publication number
CN102096841B
CN102096841B CN2010105895467A CN201010589546A CN102096841B CN 102096841 B CN102096841 B CN 102096841B CN 2010105895467 A CN2010105895467 A CN 2010105895467A CN 201010589546 A CN201010589546 A CN 201010589546A CN 102096841 B CN102096841 B CN 102096841B
Authority
CN
China
Prior art keywords
integrated circuit
signature
information
computing equipment
application
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
CN2010105895467A
Other languages
English (en)
Other versions
CN102096841A (zh
Inventor
豪克·麦恩
拉尔夫·马尔察恩
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.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips Electronics NV
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 Koninklijke Philips Electronics NV filed Critical Koninklijke Philips Electronics NV
Publication of CN102096841A publication Critical patent/CN102096841A/zh
Application granted granted Critical
Publication of CN102096841B publication Critical patent/CN102096841B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/00086Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
    • 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

Landscapes

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

Abstract

本发明提供了一种集成电路100,所述集成电路100被配置为认证自身,以及与其或其安装到外部计算设备200上的软件有关的技术信息。集成电路100包括:用于使用密码签名密钥在信息和询问上产生签名的签名器130,以及用于向计算设备200提供信息和签名的通信模块110。响应于接收到信息和认证,计算设备200可以将新的应用代码安装在集成电路上。在安装之后,集成电路可以向其他计算设备认证与新的应用代码有关的信息。集成电路有利地是多应用智能卡,因为多应用智能卡允许应用提供商在不具有与多应用智能卡的制造商的关系的情况下获得对多应用智能卡的信任。

Description

安装有计算机代码的集成电路和系统
技术领域
本发明涉及一种包括通信模块的集成电路,所述通信模块用于向集成电路外部的计算设备提供对集成电路的技术能力加以表示的信息。
本发明还涉及一种用于在集成电路上安装应用计算机代码的系统。
本发明还涉及一种向集成电路外部的计算设备提供对集成电路的技术能力加以表示的信息的方法、一种在集成电路上安装应用计算机代码的方法、以及一种对应的计算机程序。
背景技术
许多公司使用集成电路(例如,诸如智能卡IC之类的安全微控制器系统)来向客户传递服务。示例是支付卡、支付令牌、公共交通卡、移动电话的订户身份模块(SIM)卡、医保卡等等。
集成电路通常是与重大经济利益有联系的商业应用的核心。集成电路包括存储在集成电路的存储器上的保密专有信息(如,密钥)、可执行计算机代码等等。示例包括银行应用和内容分发系统,在银行应用中,集成电路负责资金转移的认证,在内容分发系统中,集成电路负责限制分发系统的订户对内容的访问。
例如,内容分发可以在包括多个机顶盒的网络上进行。在每个机顶盒中,典型地,集成在智能卡中的集成电路包括:密钥;和/或用于对例如音乐、电影等内容进行解密和/或对其他密钥进行解密的秘密解密算法。其他密钥可以包括例如所谓的控制字(CW)、权利控制消息(EMC)和权利管理消息(EMM)。其他密钥可以用于提高安全性和区域控制。
通常,这些集成电路的安全性很重要。试图以非法和/或未授权方式操纵集成电路(具体地,智能卡)或使用集成电路中包含的信息的人称作“攻击者”。如果攻击者设法破坏集成产品的安全性,则该攻击者可能能够执行或发起未向其授权的交易。
当今,这些集成电路系统典型地以应用提供商为中心。这意味着产品由应用提供商来限定和控制,并且应用提供商也是用于提供服务的硬件(例如,智能卡)的发行者。以银行卡为例。发卡银行限定了包含安全硬件、操作系统(软件)以及所使用的应用程序的产品。发行者知道所有这些组件的来源。即使银行不自己制造卡,银行也已经自己选择了所有的组件,因此银行有合理的理由信任所产生的集成电路。
然而,随着越来越多的服务需要安全的集成电路(具体地,智能卡)来获得对服务的访问,对于每个新的应用和/或服务使用不同的智能卡变得不太可行。可以为客户提供集成电路,具体地,智能卡,所述电路被配置为在该电路已被发给用户之后接收应用。
这种产品的示例是针对多个应用而配置的支持NFC的移动电话或智能卡。这些设备的硬件发行者与应用提供商无关。具体地,应用提供商可以不自己选择硬件制造商。应用提供商甚至可以不知道是谁制造了集成电路。即使应用提供商被告知制造商是谁,应用提供商也不知道是否可以信任该信息。典型地,应用提供商不知道产品细节,如,硬件制造商已提供的电路的硬件细节。
例如,一些类别的应用提供商(例如,银行、内容提供商和忠诚程序(loyalty program)等等)可以将应用下载到集成电路,以使得该集成电路能够具有新的功能。新功能使得安装有应用的集成电路的所有者能够分别地访问诸如银行程序、内容程序和忠诚程序等新服务。
当消费者需要在其集成电路中安装新服务时,该客户可以与所选的应用提供商联系。应用提供商应当在客户的集成电路中启用新服务。在集成电路上安装新应用之前,应用提供商要知道消费者的集成电路是否能够运行新应用。对于与安全性相关的服务,这可以包括确定产品是足够安全的。
假定有许多公司提供包含安装有应用的集成电路的产品。典型地,应用提供商不会信任所有公司。具体地,如果要安装的应用是机密的,则出于安全性考虑,应用提供商会犹豫是否安装其应用,因为应用提供商不能掌控风险。而不安装新应用,集成电路就不会获得对与该新应用相对应的新服务的访问权,从而应用提供商不能为消费者提供该服务。
在不能信赖的硬件上安装应用有许多风险。例如,攻击者可能试图使应用提供商在该攻击者的控制下将该应用提供商的应用安装在硬件上。尤其是安装在允许攻击者访问所安装的应用的硬件上,或甚至安装在允许攻击者修改所安装的应用的硬件上。
尽管计算机应用代码,如,可以嵌入计算机应用代码中的密码算法,典型地被设计为即使当这些密码算法的内容被展现给攻击者时,这些密码算法也是鲁棒的并且安全的,然而实践中计算机应用代码努力使这些资产保密。当攻击者知道密码算法(如,加密、解密、签名、验证算法等)或计算机代码(如,操作系统代码、设备驱动器、应用代码、访问算法等)时,攻击者就可以开始筛选算法或代码以发现弱点。密码算法可以允许算法的设计者没有预期到的密码攻击。软件代码可以包括称作“bug”的错误,这种错误可以被利用以获得权限提升。例如,一旦软件代码可用,就可以筛选该软件代码以发现所谓的“缓冲器溢出”问题。当为临时缓冲器分配了比该临时缓冲器所使用的容量小的容量时,就会引起“缓冲器溢出”问题。因此,攻击者可以利用该软件错误来盖写存储器的一部分。尽管程序员典型地争取避免诸如缓冲器溢出等编程错误,然而他们仍然不知道错误的发生。
此外,如果攻击者还能够修改所安装的应用,则攻击者可以能够规避应用中的安全措施。
例如,如果攻击者获取了对忠诚程序的应用的读取访问,则攻击者可以找到允许以未授权方式将用于将来购买的配额(allotment ofpoints)提高的弱点。如果攻击者获取了对忠诚程序的应用的写入访问,则攻击者可以能够直接提高条款的份额。
由于有上千家诸如移动电话或PC等消费者产品的卖方以及诸如多应用卡(multiple application card)和白色标签卡(white label card)等智能卡的卖方,所以应用提供商很难验证其应用是否能够在消费者产品上运行以及应用提供商是否可以信任该客户产品。
如上述问题之类的问题说明了在诸如银行业和内容分发等领域中多应用智能卡的缓慢领会。
发明内容
本发明的目的是为应用提供商提供一种机制,利用这种机制,应用提供商可以获得对集成电路的某信任度,和/或利用这种机制,应用提供商可以获得与集成电路有关的技术信息。
根据本发明的集成电路包括通信模块,所述通信模块用于向集成电路外部的计算设备提供对集成电路的技术能力加以表示的信息。集成电路还包括:组合器,用于将信息与密码询问(challenge)相组合;密钥存储装置,包括密码签名密钥;以及签名器,用于使用签名密钥在组合的信息和询问上产生签名。提供对技术能力加以表示的信息包括向计算设备提供签名。
该集成电路实现了该目的。考虑在集成电路上安装应用的应用提供商可以通过验证签名来验证集成电路的真实性(authenticity)。由于签名包括询问,所以应用提供商确保签名不仅仅是旧信息的重放。可以利用集成电路已知的秘密密钥来创建签名。通过验证签名,应用提供商可以确定集成电路确实可以访问秘密密钥。这然后提供了对集成电路的信任度,因为其他集成电路不能访问该密钥。应用提供商还获得与集成电路的技术能力有关的信息。根据该信息,应用提供商可以至少某种程度导出集成电路是否具有运行该应用所需的技术能力。
在不使用询问的情况下,签名仍证明信息真实性,但是在使用询问的情况下,签名也证明硬件真实性。
发明人看出,提供集成电路的真实性和提供与智能卡有关的技术信息可以组合在单个步骤中。注意,不需要运行两个单独的协议。相反,仅具有查询和响应的简单协议就足够了。应用提供商(或任何其他方或外部计算机)可以简单查询集成电路,并根据响应来导出对来源的信任度,从而获得集成电路的安全性以及与集成电路有关的技术信息。由于集成电路包括将询问与技术信息相组合的组合器,因此这是可能的。询问提供密码新颖性,即,以下情况的确实度:消息是例如针对该协议而创建的并且不是先前可能在不同集成电路上运行协议的重放。此外,在集成电路上仅需要一个签名操作以认证集成电路和信息。签名操作典型地消耗大量的时间。具体地,在诸如智能卡和RFID标签等具有有限处理能力的集成电路上,认为减少所需签名的数目是非常有利的。
集成电路可以是包括半导体器件的任何合适的小型化电路,所述半导体器件还可以包括无源组件。可以将集成电路制造在半导体材料的薄基板的表面中。集成电路可以使用半导体,例如,那些使用CMOS技术生产的半导体。
根据本发明的任何集成电路都可以用在智能卡或RFID标签等中。根据本发明的智能卡可以用在机顶盒、移动电话、存取系统等中。RFID(射频识别)标签可以用于产生标识和/或跟踪等。集成电路可以包含在个人数字助理(PDA)中或提供安全特征的另一产品中。
根据本发明的集成电路可以包括在家庭娱乐系统、游戏控制台、游戏控制器等中。集成电路可以包括在设备扩展中,如,设备配件,例如,电话的配件,具体地智能电话的配件。
通信模块允许集成电路与集成电路外部的设备之间的数字通信。例如,通信模块可以被布置为分别使用连接器焊盘和/或天线的接触通信和/或非接触通信。
对集成电路的技术能力加以表示的信息可以表示硬件的能力。该信息可以包括存储在集成电路的存储器中的固定串。还可以根据需要来构造信息的全部或一部分,例如通过查询集成电路的硬件和/或软件子系统来构造。与集成电路有关的技术信息可以包括以下项目中的任何一项:
-类型标识符,例如,对集成电路类型和/或集成电路的制造商加以标识的数字或串;
-集成电路包括多少存储器的指示,可以针对每种类型的存储器来标识,例如,包含在集成电路中的电可擦可编程只读存储器(E2PROM)的数目,
-有多少易失性和/或非易失性存储器空闲可用于存储新应用,和/或有多少存储器可用作工作存储器,
-对可用的子系统、子系统(如,协处理器)的类型、数目、能力等的指示,例如,对于协处理器是否可用于大数运算的指示,
-集成电路的制造的时间、数据、位置等,
-处理单元(例如,CPU)的处理速度,
-标识制造商的串或代码。
如果集成电路以在无需验证签名的情况下可由外部计算设备读取的形式提供信息的至少一部分,则这是方便的。例如,可读部分可以包括对集成电路的制造商的指示。可读部分有助于验证签名。
集成电路外部的计算设备可以查询集成电路,集成电路可以将其响应提供至典型地集成电路外部的同一计算设备。例如,外部计算设备可以是或包括读卡器、服务器、台式计算机、膝上型计算机等等。
在实施例中,集成电路包括应用接收器(170),应用接收器(170)用于从外部计算设备接收应用计算机代码以及用于在集成电路中安装接收到的应用计算机代码。例如,应用接收器可以被配置为在向计算设备提供签名之后接收应用计算机代码。应用接收器可以以文件传输协议的形式从通信模块获取应用代码。应用接收器可以被配置用于执行例如以下活动:去除帧、验证校验和、验证真实性、丢弃填充符、应用纠错信息等。在应用接收器已接收到应用代码之后,应用代码准备安装在代码存储器中。安装在代码存储器中可以包括将应用注册到卡上的操作系统。例如,安装应用可以包括将入口地址添加到应用入口地址的列表中。
用于将信息与密码询问相组合的组合器可以使用多种组合技术。优选地,组合器被配置为使得可以从组合中恢复询问和/或信息。例如,密码询问可以与信息拼接。然后可以在拼接上执行签名。组合器还可以构造数字数据结构,在该数字数据结构中,一个或多个字段表示询问,和/或多个字段表示信息。
组合器还可以将信息与询问相组合,使得信息和询问之一或两者是不可恢复的。例如,组合器可以在询问和信息上计算散列函数,如,sha-1。优选地,散列函数是密码散列函数。如果信息是不可从组合中恢复的,则可以将该信息与签名一起提供给外部计算设备。注意,此外,在这种情况下,在外部计算设备与集成电路之间仅需要两次交换,还仅需要计算一个签名。例如,组合器可以包括用于在询问和信息上计算散列函数的散列模块。组合器可以与签名器集成。
询问可以是从多种源获得的。
在实施例中,询问可以是从计算设备接收到的。这具有的优点在于,外部计算设备可以选择其自己的询问。因此,该外部计算设备可以确信询问的来源。例如,计算设备可以使用随机数来产生询问。在这种情况下,计算设备可以相信询问是足够随机的。
在实施例中,询问包括从集成电路的时钟获得的时间戳。随机询问,尤其是在该随机询问相对较短的情况下,可能重复其自身。如果发生这种情况,则可能重放。通过针对询问使用时钟,外部计算设备可以简单地将询问与其自己的时钟相比较。这样,避免询问的重用。此外,还可以验证集成电路的时钟是否精确。例如,如果数字权限管理(DRM)或内容管理应用将被安装在集成电路上,则精确的时钟是重要的。如果时钟不精确,则不能精确地控制和/或执行时间控制权。
在实施例中,询问包括从包含在集成电路中的计数器获得的不重数(nonce),不重数对于“用过一次的数”较短。计数器被配置为当获得不重数时增大。使用计数器还具有的优点是可以在不需要时钟的情况下保证不重数的唯一性(至少直到计数器翻转(roll over)为止)。时钟可能需要过多的门,此外持久功率(例如,电池功率)可能不可用。因此,避免使用时钟是有利的。在该实施例中获得的签名可以由计算设备和集成电路外部的签名验证器来验证。签名验证器可以保持跟踪其已看到的不重数,并确保这些不重数不重复,例如通过确保这些不重数是增加的来确保这些不重数不重复。计数器的翻转不需要是成问题的,例如,可以限制请求签名的最大次数。例如,可以限制能够安装的应用的最大数目。可以选择极限值在计数器最大值以下。
密码签名密钥是秘密密钥。然而,一些可信方可以知道秘密密钥。例如,签名验证器、集成电路制造商等可以知道秘密密钥。
在实施例中,签名密钥是来自公共-私有密钥对的私有密钥。签名然后可以利用从公共-私有密钥密码术(也称作非对称密码术)中知道的签名操作。例如,RSA密码术标准(PKCS#1v2.1)给出了基于RSA:RSASSA-PSS和RSASSA-PKCS1-V1.5的签名/验证算法的两个示例。对于这两个算法,需要签名密钥。采用两种密钥类型:RSA公共密钥和RSA私有密钥。RSA公共密钥和RSA私有密钥一起形成RSA公共-私有密钥对。公共-私有密钥对也简称为密钥对。对于签名操作,需要RSA私有密钥。使用公共-私有密钥对的其他签名算法包括DSA、ECDSA、EIGamal签名方案等等。
签名器被配置为使用如上所述的签名算法来产生签名。如果签名器的性能重要,则签名器的大部分或甚至整个签名器可以以硬件来实现。另一方面,也可以使用执行签名软件的通用处理器来实现签名器。
使用非对称签名方案的优点在于,可以利用与签名不同的验证密钥来验证签名。验证密钥不一定是秘密的,因为从验证密钥不能导出签名密钥。签名密钥是私有密钥。验证密钥是公共密钥。这为密钥管理提供了优点,因为对于验证密钥的分发可以放宽对安全性的考虑。
在实施例中,签名密钥是用于对称认证算法的对称密钥。对称认证算法用于产生签名。为了验证签名,可以需要访问签名密钥。优选地,在集中的位置实行签名验证。例如,制造商可以执行该服务,或第三方服务器指定用于该用途。对称签名需要的计算资源要少得多。该解决方案非常适合用在没有密码协处理器的RFID或智能卡中。对称认证算法的示例包括消息认证代码(MAC)。MAC可以基于分组密码。例如,分组密码可以用在CBC-MAC或CMAC模式等中。分组密码的示例包括DES、AES等。MAC可以基于密码散列函数,例如,通过在HMAC模式下使用散列函数。散列函数的示例包括SHA-1、Ripemd、sha-256等等。
密钥存储装置可以是安全密钥存储装置。例如,密钥存储装置可以在指定的EEPROM单元中存储秘密密钥,其中关于安全性来最优化所述指定的EEPROM单元。例如,非易失性、一次可编程(OTP)存储器可以用于密钥存储装置。
用于使用签名密钥在组合的信息和询问上产生签名的签名器可以产生可与消息分开的签名。即,集成电路可以向计算设备提供包括对技术能力加以表示的信息的第一数字数据以及包括签名的第二数字数据。签名器还可以产生具有消息恢复能力的签名。这样,只需要向外部计算设备提供签名。然后可以验证签名以验证真实性,但是也可以从签名恢复技术信息。当使用具有消息恢复能力的签名时,优选地还使用具有恢复能力的组合器
如果没有从外部计算设备接收到询问,则可以使用上述提供方式中的任何一种提供方式向外部计算设备提供询问。
在实施例中,集成电路包括用于存储计算机代码的代码存储器以及用于执行代码存储器中所存储的代码的处理单元。组合器还将询问与对计算机代码的技术能力加以表示的计算机代码信息相组合。
应用提供商还可以关注于安装在集成电路上的操作系统。通过对操作系统的信息进行签名,还将操作系统的可信度提供给应用提供商。典型地在制造期间将操作系统安装在集成电路上。例如,可以将操作系统的软件代码的大多数或全部以只读存储器(ROM)的形式安装在集成电路中。由于ROM是与硬件一起制造的,所以适合将该情况通知给应用提供商。可以传送至应用提供商的技术信息包括与可以传送的与硬件自身有关的信息相同和/或相似的信息。例如,与操作系统有关的技术信息可以包括以下项目中的任何一项:
-操作系统id;
-操作系统类型、制造商、版本、日期和编译时间;
-能力;
-证书;
-该技术信息所依据的技术标准,例如,java卡等等;
-在代码存储器的全部或一部分上(例如,在OS的全部或一部分上,等等)计算出的校验和。
操作系统id可以是存储在集成电路上的(例如,存储在ROM中的)唯一id。可以利用第三方服务器和/或制造商来查询操作系统id,以得知id是否确实已被精确地安装在由该制造商制造的一个集成电路上。
可以添加认为有用的任何其他种类的数据作为信息。
在实施例中,集成电路包括应用接收器,所述应用接收器被配置为接收来自计算设备的应用信息。应用信息可以与应用代码一起存储或存储在信息存储器中。组合器被配置为在已安装了应用计算机代码之后将其他询问与应用信息相组合。
希望了解除了所安装的OS和硬件以外还已经安装了什么应用的其他应用提供商可以请求已被应用接收器接收到的应用的信息。对应用信息进行签名。这告知应用提供商该应用是与可信的OS和可信的硬件一起安装的。
在实施例中,提供对技术能力加以表示的信息包括向计算设备提供证书以用于验证签名,其中证书是已认证的并且包括来自公共密钥-私有密钥对的公共密钥。
使外部计算设备(例如,应用提供商)能够验证以集成电路的私有签名密钥来创建的签名的一种方式是提供证书。证书包括与私有密钥相对应的公共密钥。由某一签名机关或由制造商来对证书签名。例如,可以使用X.509证书。外部计算设备可以得到根证书(rootcertificate),如,签名机构的或制造商的证书,以验证来自不同源的集成电路的证书。
本发明的另一方面涉及一种用于在集成电路上安装应用计算机代码的系统。该系统包括集成电路和外部计算设备。计算设备包括或可连接至用于验证签名的签名验证器。
在系统的实施例中,签名密钥是对称密钥,签名验证器被配置为为联系第三方服务器以验证签名。
第三方服务器与外部计算设备不同。第三方服务器可以是集成电路的制造商。第三方服务器可以访问对称密钥以验证签名。
在系统的实施例中,计算设备包括信息比较器,信息比较器用于将从集成电路接收到的表示技术能力的信息与预定的所需技术能力集合相比较,计算设备被配置为允许根据比较来安装应用计算机代码。
例如,可以使用8051部件来写入应用。接收到的技术信息可以包含对是否可以执行8051部件加以指示的信息。例如,可以将串包含在用信号通知与具体汇编码集合的兼容性的信息中。串可以是‘8051’。在计算设备接收到技术信息之后,计算设备可以扫描该技术信息以确定是否存在用信号通知与所需汇编码集合的兼容性的信息。例如,信息比较器可以扫描该信息以发现该串,例如,串‘8051’。如果存在该信息,以及如果签名验证算法指示签名是有效的,则计算设备可以继续安装应用。
信息比较器可以集成在外部计算设备的应用上载器中。应用上载器被配置为在集成电路上安装应用代码。
本发明的另一方面涉及一种向集成电路外部的计算设备提供对集成电路的技术能力加以表示的信息的方法,该方法包括:从计算设备接收将信息与询问相组合的密码询问,以及使用密码签名密钥在组合的信息和询问上产生签名。提供对技术能力加以表示的信息包括向计算设备提供签名。
在方法的实施例中,方法包括:利用计算设备来验证签名;以及在集成电路上安装应用计算机代码。
根据本发明的方法可以作为计算机实现的方法在计算上实现,或者以专用硬件的形式或以这两种形式的组合来实现。根据本发明的方法的可执行代码可以存储在计算机程序产品上。计算机程序产品的示例包括存储器设备、光学存储设备、集成电路、服务器、在线软件等。
在优选实施例中,计算机程序包括适于在计算机程序运行于计算机上行时执行根据本发明的方法所有步骤的计算机程序代码装置。优选地,计算机程序实现在计算机可读介质上。
根据本发明的集成电路、系统或方法允许应用提供商获得对所集成的硬件的信任。通过验证签名,应用提供商确信硬件的制造商。即,应用提供商知道是哪个制造商制造了该硬件。例如,如果应用提供商通过签名确定集成电路是由安全产品公知的特定制造商制造的,则应用提供商确信集成电路的高质量。相应地,应用提供商将更倾向于准备将该制造商的应用安装在该设备上,具体地,将需要高安全性的应用安装在该设备上。此外,如果签名中的信息指示该制造商还安装了操作系统,则应用提供商还确保该制造商也是可以信任的,因为该设备是由该应用提供商所信任的一方制造的。
硬件卖方能够向应用提供商证明包括所含软件配置(OS和可选的应用)的硬件的唯一性和真实性。这样,硬件卖方指示其相信所安装的操作系统是由指定的操作系统卖方提供的。应用提供商知道OS卖方并且可以检验是该OS是否是可信的,同样应用提供商能够了解哪些应用是预先安装的以及这些应用是否也是可信的。
集成电路可以包含在生产硬件时或在后续晶片测试时创建的唯一非对称私有密钥以及硬件卖方所存储的非对称公共密钥。私有密钥用于产生来自应用提供商、应用、OS和/或硬件的信息的签名。通过验证该签名,可以在值链中的任何一点处证明安全硬件的来源以及对该来源的信任的根本。
一旦将应用加载到集成电路中,即使在现场中或在消费者手中,应用提供商也可以使用先前安装的应用作为信任创建的起始点。因此,应用提供商明确地知道应用实际运行在执行可信操作系统的可信安全硬件之上。
组合器可以被配置为仅使用存储在只读存储器中的信息。在这种情况下,只有在制造时知道的信息(例如,硬件和OS信息)可以包括在签名中。这具有的安全性优点是,攻击者利用签名机制篡改可能性较小。以这种方式配置组合器可以是硬接线的或是以软件实现的,优选地也存储在只读存储器中。
提供了一种集成电路,所述集成电路被配置为,向外部计算设备认证其自身,以及与该集成电路或该集成电路安装的软件有关的技术信息。集成电路包括:用于使用密码签名密钥在信息和询问上产生签名的签名器,以及用于向计算设备提供信息和签名的通信模块。响应于接收到信息和认证,计算设备可以将新的应用代码安装在集成电路上。在安装之后,集成电路可以向其他计算设备认证与新的应用代码有关的信息。集成电路有利地是多应用智能卡,因为多应用智能卡允许应用提供商在不具有与多应用智能卡的制造商的关系的情况下获得对多应用智能卡的信任。
附图说明
参考附图以示例的方式进一步详细说明本发明,附图中:
图1是根据本发明的系统的实施例的框图;
图2a示出了智能卡的示意性顶视图;
图2b是示出了集成电路的框图;
图3是示出了根据本发明的方法的流程图。
附图中,相似或相应的特征由相同的附图标记来指示。
附图标记列表
100集成电路
110通信模块
120组合器
130签名器
135密钥存储装置
140信息存储装置
150处理单元
155代码存储器
170应用接收器
200计算设备
210通信模块
220询问器
230签名验证器
275应用上载器
300第三方服务器
330签名验证器
400用于在集成电路上安装应用计算机代码的系统
500智能卡
505支撑卡
510集成电路
520处理单元
522存储器
524协处理器
526通信元件
530总线
610接收密码询问
620将信息与询问相组合
630使用密码签名密钥在组合的信息和询问上产生签名
640向计算设备提供签名
650计算设备验证签名
660在集成电路上安装应用计算机代码
665第一阶段
666第二阶段
具体实施方式
尽管本发明可以由许多种形式的实施例,然而附图中示出并在此详细描述了一个或多个特定的实施例,应理解,本公发明公开应当被看作是对本发明原理的示例,而不旨在使本发明限于所示和所描述的特定实施例。
图1以示意性方式示出了根据本发明的集成电路100的实施例。图1还以示意性方式示出了根据本发明的系统400的实施例,系统400包括集成电路100。系统400可以用于在集成电路100上安装应用计算机代码。图1示出了许多可选的细化,在不同应用中可以省略这些细化以简化集成电路100的设计或使用。在图1中用箭头示出了可能的数据关系中的一些。
系统400包括集成电路100、外部计算设备200以及可选地第三方服务器300。集成电路100可以包括在智能卡、RFID标签、移动电话、计算机等中。计算设备200可以属于应用提供商,并且可以用于在集成电路100上安装应用。
计算设备200和集成电路100被配置为使得计算设备200可以从集成电路100获得技术信息并且可以验证集成电路100的真实性。
集成电路100包括通信模块110。计算设备200包括通信模块210。例如,通信模块210可以包括读卡器,通信模块110可以包括连接器焊盘。计算设备200可以包括服务器。计算设备200和第三方服务器300可以通过某种网络(例如,因特网)相互连接。计算设备200和第三方服务器300可以使用安全渠道来通信,例如,使用加密和认证机制来通信。通信模块110可以是无源模块,允许计算设备200读取集成电路100的寄存器和/或存储器中的一些。计算设备200可以是有源模块,主动向集成电路100发送信息。
集成电路100包括组合器120。组合器120将信息与密码询问相组合。
集成电路100可选地包括用于存储信息的信息存储装置140。例如,可以在集成电路100的制造期间将信息存储在信息存储装置140中。例如,信息存储装置140可以是ROM。然而,也可以在需要信息时构造该信息。例如,组合器120可以向集成电路100的组件查询与集成电路100的这些组件的能力有关的信息。组合器120可以组合(例如,拼接)所查询的信息和接收到的信息。
计算设备200可选地包括询问器。组合器120可以通过通信模块210和通信模块110从询问器220接收询问。然而,组合器120可以从不同来源获得询问。例如,集成电路120可以包括或可连接至时钟(未示出)。在这种情况下,时间戳可以被用作询问。例如,集成电路100可以包括计数器(未示出),所述计数器在产生签名时递增。例如,集成电路100可以包括非减小计数器,该非减小计数器提供了既从计数器读出又使该计数器递增的单个接口。
组合器120被配置为将询问与信息相组合,例如,将来自询问器220的询问与来自信息存储装置140的信息相组合。组合器120可以拼接信息和询问,例如,将询问放在信息后面。组合器120可以使用某种其他组合函数。
集成电路100包括用于存储密码签名密钥的密钥存储装置135。例如,密钥存储装置135可以包括非易失性存储器,例如,E2PROM存储器。例如,密钥存储装置135可以包括安全存储器,例如,熔断器。
集成电路100包括与组合器120和密钥存储装置135连接的签名器130。签名器130被配置为使用签名密钥在组合的信息和询问上产生签名。例如,签名器130可以被配置为在信息和询问的拼接上使用RSA私有密钥来执行RSA签名算法。
经由通信模块110将签名发送至计算设备200。集成电路100还可以发送信息。集成电路100也可以发送询问。如果签名允许消息恢复,则集成电路100不需要将信息与签名分开发送。
如果集成电路100用于接收应用,则集成电路100可以包括用于从应用上载器275接收应用计算机代码以及可能地应用信息的应用接收器170。应用上载器275可以包括在计算设备200中。除了接收新应用以外,集成电路100还可以有其他用途。在这种情况下,可以省略应用接收器170和应用上载器275。如果需要的话,应用上载器275可以以适于例如根据某种文件传输协议向集成电路100上载的格式将应用代码格式化。
例如,集成电路100可以用于向外部计算设备提供集成电路的真实性和经过认证的信息。例如,集成电路100可以仅与制造商预先安装的应用一起使用,并且可能无法接收和/或安装附加的应用。在这种情况下,计算设备200可以从不需要与所安装的应用有关的信息。
集成电路100可选地包括代码存储器155和处理单元150。应用接收器170可以被配置为在代码存储器155中安装接收到的应用计算机代码。
集成电路100可以包括附加代码,可能地,在集成电路100的代码存储器155或某一种其他存储器(未示出)中包括附加代码。例如,代码存储器155可以包括操作系统代码。代码存储器155可以包括先前安装的应用。先前安装的应用可以包括在制造集成电路100期间安装的应用。操作代码和/或先前安装的应用可以安装在ROM中。操作系统和所安装的应用也可以提供信息。组合器120可以将来自操作系统和/或所安装的应用的信息包括在与询问相组合的信息中。
操作系统或所安装的程序可以提供附加的签名功能。以这种方式,OS卖方还可以对安全硬件制造商的信息和签名进行签名,以指示该OS卖方也信任该安全硬件制造商,等等。这样,可以在需要时创建双向的信任链。
例如,可以在制造期间,将第二签名密钥(例如,诸如RSA私有密钥等私有密钥)与OS或应用代码一起安装在集成电路的只读存储器中。OS或应用可以包括签名算法代码,所述签名算法代码用于在密钥存储装置中存储的签名密钥所产生信息和/或签名上,使用第二签名密钥来产生第二签名。还可以将第二签名提供至外部计算设备。外部计算设备可以验证这两个签名。
计算设备200可选地包括签名验证器230。备选地,计算设备200可以与可选的第三方服务器300联系,所述第三方服务器300包括用于验证签名的签名验证器330。为了更保险,可以使用签名验证器230和签名验证器330两者,但是典型地仅使用签名验证器230和签名验证器330之一。如果第三方服务器300确定签名是真实的,则第三方服务器300将通知外部计算设备200该集成电路100确实是由所声明的制造商制造的。如果第三方服务器300确定签名是假的,则第三方服务器300将通知外部计算设备200不在集成电路上安装其应用,因为第三方服务器300无法担保集成电路的真实性。
第三方服务器300可以执行附加的功能。例如,第三方服务器300可以更新由集成电路100使用的所有询问的列表。第三方服务器300能够获知集成电路100是否重新使用了相同的询问。在后一种情况下,可以通知计算设备200不向集成电路100上载应用。如果没有使用第三方服务器300,则计算设备200被配置为使用签名验证器230来验证签名。
签名验证器230和330使用与签名器130所使用的签名算法兼容的签名验证算法,例如,与RSA私有密钥签名兼容的RSA公共密钥签名验证算法。
系统400还可以使用对称算法。在这种情况下,优选的是省略签名验证器230并使用签名验证器330来验证签名。
一种使用系统400的方式如下。集成电路100的用户接近应用提供商。例如,消费者带着他的集成电路100到商店,以将忠诚程序安装在集成电路100上。忠诚应用可以保持跟踪在商店花费的金额。一旦花费了特定的金额,就可以打折。例如,集成电路100可以集成在客户的移动电话中。店主(即,应用提供商)不选择消费者正在使用的移动电话或SIM的具体品牌,更不用说店主与移动电话制造商他们的安全特性了。此外,应用提供商不知道集成电路100是否能够运行应用。
应用提供商的计算设备200向集成电路100请求技术信息。例如,集成电路100可以具有应用提供商能够使用的接口。接口可以是特定的命令或命令集合,但是接口也可以被实现为特定的或甚至专用的物理接口。在操作系统等级上,可以限定能够被操作系统上运行的应用调用的应用编程接口(API)。在集成电路100自身的硬件的等级上,可以限定输入点,使得操作系统可以转移所收集的信息集合并取回经过签名的扩展的信息集合。该输入点可以被实现为向特定存储区域中的常规函数调用、软件中断的触发、或安全硬件所支持的用于开始执行的任何其他方法等。
询问器220可以产生询问,即,随机数,即,随机的32比特数,并将该随机数发送至集成电路100。作为示例,询问器220可以产生十六进制数0x2856a83b。然后组合器120组合技术信息。可以将技术信息的一部分以固定形式存储在信息存储装置140中,可以从操作系统等获得技术信息的一部分,组合器120将信息与询问相组合并将组合转发至签名器130。例如,信息可以是串。技术信息还可以被表示为比特串,其中,特定的单独比特或多个比特表示特定技术特征的存在或不存在。例如,串“NXP 8051”指示集成电路的制造商(NXP)以及与集成电路兼容的汇编语言的类型。串还可以被表示为十六进制数,例如,使用ASCII表示法来表示。例如,十六进制数4e58502038303531表示在以上示例中给出的信息串。在实施例中,使用组合的拼接,组合器可以产生组合‘4e585020383035312856a83b’。签名器130使用任何合适的签名算法对组合进行签名。然后将签名和技术信息转发至计算设备200。例如,可以将签名和组合发送至计算设备200。组合器120还可以确定ROM中是否存在集成电路100的操作系统,并将该信息包括在信息与询问的组合中。
信息比较器(未单独示出)可以执行将对集成电路的技术能力加以表示的信息与要安装的应用的技术需求相比较。信息比较器可以集成在应用上载器275中。例如,信息比较器可以在解密步骤之后,搜索接收到的信息,以找到所需的子串,如,子串‘8051’。
对集成电路的技术能力加以表示的信息包括:对集成电路的硬件、和/或集成电路的只读存储器(ROM)中安装的软件、和/或集成电路的非易失性存储器(如闪存)中安装的软件的技术能力加以表示的信息。
集成电路100还可能向计算设备200发送该集成电路100的公共密钥的证书。计算设备200使用签名验证器230和证书来验证签名。备选地,计算设备200可以将其从集成电路100接收到的数据发送至第三方服务器300。第三方300可以包括在领域中使用的所有公共密钥的列表,并使用该列表来验证签名。集成电路100还可以向计算设备200和/或第三方服务器300发送对集成电路100和/或其公共密钥加以标识的标识符。例如,进行标识的标识符可以是公共密钥的散列。标识符可以用作公共密钥列表中的索引。如果签名验证器230或第三方服务器300确认集成电路100的真实性,则计算设备200确信硬件集成电路100实际上是由应用提供商可以信任的已知制造商来制造的。备选地,集成电路100可以是由不被应用提供商信任的制造商制造的。甚至集成电路100不能提供其来源。例如,签名可能不正确或者找不到与公共密钥标识符相对应的公共密钥。在应用提供商满意于于硬件是由其信任的制造商制造的时,应用提供商可以考虑操作系统。集成电路100的操作系统典型地以ROM代码的形式存在。如果计算设备200确定从集成电路100接收到的信息包括集成电路100的制造商安装了操作系统的指示,则应用提供商至少可以确保该应用提供商所信任的一方已安装了操作系统。这暗示着,应用提供商还可以信任操作系统。甚至还可以信任在集成电路100的制造期间安装在操作系统顶部的应用。根据技术信息可以确定实际上在制造期间安装了这些应用。
例如,使用根据本发明的方法在制造之后安装在集成电路100上的应用也可以使用上述机制,来使尚未安装的其他应用获知已安装的应用。应用提供商对后来安装的应用的信任有限,因为集成电路100的制造商并不知道该应用的内容。但是至少应用提供商可以确保后来的应用是以合适的方式与操作系统一起安装的,至少达到使组合器120能够从后来的应用接收技术信息的程度。
当应用提供商足够信任集成电路100时,应用提供商可以使用技术信息来确定该应用是否可以在集成电路100上运行。例如,应用提供商可以验证是否使用了正确的汇编语言、是否有足够的空闲资金、协处理器是否可用、是否使用了正确的操作系统等等。注意,如果操作系统仿真协处理器,则即使在集成电路100不具有协处理器的情况下,针对协处理器而设计的应用也可以工作。然而,可能会引起不期望的性能损失。相应地,集成电路100可以判定其最好不安装应用,而不是冒着受消费者抱怨的风险。在这种情况下,操作系统可以表现出特定的能力,即,大数运算,但是由于硬件的技术信息并不显示给协处理器,所以集成电路100仍然抑制安装应用。
一旦应用提供商对于集成电路100将能够运行应用感到满意,应用上载器275就可以向应用接收器170发送应用。应用接收器170接受应用并将该应用安装在代码存储器155中。处理单元150然后能够运行该应用。
如果在安装之后将该应用包含在技术信息中,则组合器120能够将附加信息(即,与应用相对应的信息)与该组合器120接收到的任何询问相组合。然后另一应用提供商能够了解该应用是使用该机制安装的。
图2a示出了根据本发明的智能卡500的示意性顶视图。智能卡包括集成电路510和典型地塑料的支撑卡505,支撑卡505支撑集成电路510。图2b示意性地示出了集成电路510的体系结构。电路510包括处理单元520(例如,CPU),处理单元520用于运行存储在存储器522中的计算机程序组件,包括那些在制造期间存储在ROM中的计算机程序组件,如,操作系统代码和预先安装的应用以及在制造之后安装在非易失性存储器中的应用。电路510包括用于存储编程代码、数据、密码密钥、技术信息等的存储器522。存储器522的一部分可以是只读的。电路510包括协处理器524。电路510可以包括通信元件526,例如,天线、连接器焊盘或两者。处理单元520、存储器522、协处理器524和通信元件526可以经由总线530彼此连接。卡可以被布置为用于分别使用连接器焊盘和/或天线来实现接触和/或非接触通信。
例如存储器522中可由处理单元520执行的代码可以实现组合器和签名器。签名代码可以利用协处理器524,例如来执行在一些签名算法(例如,RSA)中使用的大数运算。协处理器524还可以提供对其他算法的硬件支持,具体地,提供对诸如散列等密码算法的硬件支持。存储器522可以包括密钥存储装置135、信息存储装置140和代码存储器155。存储器522中使用通信元件526并且可以由处理单元520来执行的代码可以实现应用接收器170。
注意,集成电路100还可以完全以硬件来实现或者使用现场可编程门阵列来实现。
图3示出了根据本发明的方法的流程图。流程图示出了两个阶段,这两个阶段也可以以独立的方法来实现。流程图单元610、620、630和640示出了可以由集成电路来执行的动作。流程图单元650和660示出了可以由外部计算设备来执行的动作。可以区分至少两个阶段。第一阶段是以大括号665示出的,与流程图单元610、620、630和640有关。第二阶段是以大括号666示出的,与流程图单元650和660有关。在第一阶段期间,集成电路执行允许同时认证电路和信息的动作。在第二阶段期间,验证签名并且可以安装应用。
流程图单元610表示从计算设备接收密码询问。流程图单元620表示将信息与询问相组合。流程图单元630表示使用密码签名密钥在组合的信息和询问上产生签名。流程图单元640表示向计算设备提供签名。流程图单元650表示利用计算设备来验证签名。流程图单元660表示在集成电路上安装应用计算机代码。
对于本领域技术人员来说,显然可以有许多不同的执行该方法的方式。例如,可以在步骤之间插入其他方法步骤。所插入的步骤可以表示对如这里所描述的方法的细化,或者可以与该方法无关。例如,可以组合步骤620和630。此外,给定的步骤在下一步骤开始之前可以尚未完全完成。
可以使用软件来执行根据本发明的方法,该软件包括用于使处理器系统执行方法600的指令。软件可以仅包括由集成电路来执行的步骤,或者仅包括由外部计算设备或第三方服务器来执行的步骤。软件可以存储在诸如硬盘、软盘、存储器等合适的存储介质中。软件可以作为信号通过有线或无线的方式或使用例如互联网等数据网络来发送。可以使软件可用于下载和/或服务器上的远程使用。
将认识到,本发明还可以扩展到适于实施本发明的计算机程序,具体地在载体上或该载体中的计算机程序。程序可以是以下形式的:源代码、目标代码、以及源代码与目标代码之间的例如部分编译形式的代码、或者适于在根据本发明方法的实现方式中使用的任何其他形式。还将认识到,这种程序可以具有许多不同的体系结构设计。例如,可以将实现根据本发明的方法或系统的功能的程序代码细分成一个或多个子例程。对于本领域技术人员来说,显然有可以在这些子例程之间分发功能的许多不同方式。可以将子例程一起存储在一个可执行文件中,以形成自给程序。这种可执行文件可以包括计算机可执行指令,例如,处理器指令和/或中断指令(例如,Java中断指令)。备选地,可以将一个或多个或所有子例程存储在至少一个外部库文件中并例如在运行时静态地或动态地与主程序链接。主程序包含对至少一个子例程的至少一次调用。此外,子例程可以包括彼此调用的函数。与计算机程序产品有关的实施例包括与上述方法中的至少一个方法的每个处理步骤相对应的计算机可执行指令。这些指令可以被细分为子例程和/或存储在可以静态或动态链接的一个或多个文件中。与计算机程序产品有关的另一实施例包括与上述系统和/或产品中的至少一个系统和/或产品的每个装置相对应的计算机可执行指令。这些指令可以被细分成子例程和/或存储在可以静态或动态链接的一个或多个文件中。
计算机程序的载体可以是能够承载程序的任何实体或设备。例如,载体可以包括诸如ROM的存储介质,例如,CD ROM和半导体ROM、或磁记录介质,例如,软盘或硬盘。此外,载体可以是可经由电缆或光缆或通过无线电或其他方式来传播的可传输载体,如,电信号或光信号。当程序体现在这样的信号中时,载体可以由这样的线缆或其他设备或装置来构成。备选地,载体可以是嵌入了程序的集成电路、适于执行或用于执行相关方法的集成电路。
应注意,上述实施例示出而非限制本发明,在脱离所附权利要求的范围的前提下,本领域技术人员将能够设计出许多备选实施例。在权利要求中,括号之间的任何附图标记不应构成对权利要求的限制。动词“包括”及其变型的使用并不排除权利要求所陈述的元件或步骤以外的其他元件或步骤的存在。可以利用包括若干不同元件的硬件以及利用适当编程的计算机来实现本发明。在列举了若干装置的设备权利要求中,这些装置中的若干装置可以由同一项硬件来实现。在互不相同的从属权利要求中阐述特定措施并不表示不能有利地使用这些措施的组合。

Claims (12)

1.一种集成电路(100),包括通信模块(110),所述通信模块(110)用于向应用提供商的计算设备(200)提供对集成电路的技术能力加以表示的信息,计算设备(200)在集成电路的外部,
其中,所述集成电路还包括:
-组合器(120),用于获得密码询问以及用于将信息与密码询问相组合;
-密钥存储装置(135),包括密码签名密钥;以及
-签名器(130),用于使用签名密钥在组合的信息和询问上产生签名;
提供对技术能力加以表示的信息包括向计算设备提供签名,
其中,所述集成电路包括:
-应用接收器(170),用于接收应用计算机代码以及用于在集成电路的代码存储器中安装接收到的应用计算机代码,以使集成电路能够具有新功能,应用接收器被配置为在向计算设备提供签名之后接收应用计算机代码,应用接收器被配置为还接收来自计算设备的应用信息,以及
其中,组合器被配置为在已安装了应用计算机代码之后将另一询问与应用信息相组合,使得签名器产生由另一应用提供商验证的另一签名。
2.根据权利要求1所述的集成电路,其中,通信模块还被配置为接收来自计算设备的询问。
3.根据权利要求1所述的集成电路,其中,集成电路包括时钟,询问包括从时钟获得的时间戳。
4.根据权利要求1所述的集成电路,其中,集成电路包括计数器,询问包括从计数器获得的不重数,计数器被配置为当获得不重数时增加。
5.根据前述权利要求中的任一项权利要求所述的集成电路,其中,集成电路包括:
-代码存储器(155),用于存储计算机代码;以及
-处理单元(150),用于执行代码存储器中存储的代码;
-组合器,被配置为将询问与对计算机代码的技术能力加以表示的计算机代码信息相组合。
6.根据权利要求1所述的集成电路,其中,签名密钥是来自公共-私有密钥对的私有密钥。
7.根据权利要求6所述的集成电路,其中,提供对技术能力加以表示的信息包括:向计算设备提供证书,证书是被认证的并且包括来自公共-私有密钥对的公共密钥。
8.一种用于在集成电路(100)上安装应用计算机代码的系统,所述系统包括如前述权利要求中任一项权利要求所述的集成电路(100)和计算设备(200),其中,计算设备被配置为使用用于验证签名的签名验证器(230,330)。
9.根据权利要求8所述的用于安装应用计算机代码的系统,其中,签名密钥是对称密钥,签名验证器被配置为联系第三方服务器(300)以验证签名。
10.根据权利要求8或9所述的用于安装应用计算机代码的系统,其中,计算设备包括信息比较器(275),信息比较器(275)用于将从集成电路接收到的表示技术能力的信息与预定的所需技术能力集合相比较,计算设备被配置为允许根据比较来安装应用计算机代码。
11.一种向应用提供商的计算设备(200)提供对集成电路(100)的技术能力加以表示的信息的方法,计算设备(200)在集成电路(100)的外部,该方法包括:
-获得密码询问;
-将信息与询问相组合;以及
-使用密码签名密钥在组合的信息和询问上产生签名;
-其中,提供对技术能力加以表示的信息包括向计算设备提供签名;
-在向计算设备提供签名之后接收应用计算机代码;
-将接收到的应用计算机代码安装在集成电路的代码存储器中,以使集成电路具有新功能;以及
-接收来自计算设备的应用信息;
其中,该方法还包括在已安装了应用计算机代码之后将另一询问与应用信息相组合,使得签名器产生由另一应用提供商验证的另一签名。
12.一种在集成电路上安装应用计算机代码的方法,包括权利要求11的方法,所述方法包括:
-通过计算设备来验证签名;以及
-在集成电路上安装应用计算机代码。
CN2010105895467A 2009-12-14 2010-12-13 安装有计算机代码的集成电路和系统 Active CN102096841B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP09179104.6A EP2372592B1 (en) 2009-12-14 2009-12-14 integrated circuit and system for installing computer code thereon
EP09179104.6 2009-12-14

Publications (2)

Publication Number Publication Date
CN102096841A CN102096841A (zh) 2011-06-15
CN102096841B true CN102096841B (zh) 2013-09-25

Family

ID=42232631

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2010105895467A Active CN102096841B (zh) 2009-12-14 2010-12-13 安装有计算机代码的集成电路和系统

Country Status (3)

Country Link
US (1) US8751811B2 (zh)
EP (1) EP2372592B1 (zh)
CN (1) CN102096841B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103778448B (zh) * 2012-10-25 2017-10-27 中国银联股份有限公司 多应用智能卡管理系统及方法
US9832027B2 (en) * 2014-10-01 2017-11-28 Maxim Integrated Products, Inc. Tamper detection systems and methods for industrial and metering devices not requiring a battery
EP3048776B2 (en) * 2015-01-22 2021-03-17 Nxp B.V. Methods for managing content, computer program products and secure element
US9940486B2 (en) * 2015-02-23 2018-04-10 Cisco Technology, Inc. Detection of hardware tampering
EP3086254A1 (en) * 2015-04-22 2016-10-26 Gemalto Sa Method of managing applications in a secure element when updating the operating system
US10846409B2 (en) * 2015-11-19 2020-11-24 Nagravision S.A. Method to verify the execution integrity of an application in a target device
US10572675B2 (en) 2016-11-02 2020-02-25 Cisco Technology, Inc. Protecting and monitoring internal bus transactions
CN106899437B (zh) * 2017-02-23 2020-05-01 百富计算机技术(深圳)有限公司 一种升级pos机模块固件的方法和装置
WO2021037344A1 (en) * 2019-08-27 2021-03-04 Huawei Technologies Co., Ltd. Trusted device and computing system

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1182534A2 (en) * 2000-08-18 2002-02-27 Hewlett-Packard Company Apparatus and method for establishing trust
CN1503180A (zh) * 2002-11-21 2004-06-09 株式会社Ntt都科摩 通信终端、服务器及电子采购支持方法
CN1620779A (zh) * 2001-12-21 2005-05-25 高通股份有限公司 简化的音频验证的方法和设备

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5841866A (en) * 1994-09-30 1998-11-24 Microchip Technology Incorporated Secure token integrated circuit and method of performing a secure authentication function or transaction
US7124938B1 (en) * 1999-03-24 2006-10-24 Microsoft Corporation Enhancing smart card usage for associating media content with households
US6823451B1 (en) * 2001-05-10 2004-11-23 Advanced Micro Devices, Inc. Integrated circuit for security and manageability
US20030065956A1 (en) * 2001-09-28 2003-04-03 Abhijit Belapurkar Challenge-response data communication protocol
US7278131B2 (en) * 2003-03-03 2007-10-02 Microsoft Corporation Compact hardware identification for binding a software package to a computer system having tolerance for hardware changes
US10109141B2 (en) * 2003-12-24 2018-10-23 Intel Corporation Method and apparatus for establishing trust in smart card readers
JP4144880B2 (ja) * 2004-04-09 2008-09-03 インターナショナル・ビジネス・マシーンズ・コーポレーション プラットフォーム構成測定装置、プログラム及び方法、プラットフォーム構成認証装置、プログラム及び方法、プラットフォーム構成証明装置、プログラム及び方法、並びに、プラットフォーム構成開示装置、プログラム及び方法
US20060291660A1 (en) * 2005-12-21 2006-12-28 Telefonaktiebolaget Lm Ericsson (Publ) SIM UICC based broadcast protection
EP1752937A1 (en) * 2005-07-29 2007-02-14 Research In Motion Limited System and method for encrypted smart card PIN entry
US8171531B2 (en) * 2005-11-16 2012-05-01 Broadcom Corporation Universal authentication token
US8607044B2 (en) * 2006-04-25 2013-12-10 Verisign, Inc. Privacy enhanced identity scheme using an un-linkable identifier
US20110131421A1 (en) * 2009-12-02 2011-06-02 Fabrice Jogand-Coulomb Method for installing an application on a sim card

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1182534A2 (en) * 2000-08-18 2002-02-27 Hewlett-Packard Company Apparatus and method for establishing trust
CN1620779A (zh) * 2001-12-21 2005-05-25 高通股份有限公司 简化的音频验证的方法和设备
CN1503180A (zh) * 2002-11-21 2004-06-09 株式会社Ntt都科摩 通信终端、服务器及电子采购支持方法

Also Published As

Publication number Publication date
EP2372592A1 (en) 2011-10-05
EP2372592B1 (en) 2016-08-24
US8751811B2 (en) 2014-06-10
US20110145586A1 (en) 2011-06-16
CN102096841A (zh) 2011-06-15

Similar Documents

Publication Publication Date Title
CN102096841B (zh) 安装有计算机代码的集成电路和系统
US11664996B2 (en) Authentication in ubiquitous environment
US20220116745A1 (en) Methods and systems for asset obfuscation
EP3632034B1 (en) Methods and systems for ownership verification using blockchain
CN107925572B (zh) 软件应用程序到通信装置的安全绑定
EP3241364B1 (en) Over-the-air provisioning of application library
US11070542B2 (en) Systems and methods for certificate chain validation of secure elements
CA2980114C (en) Authentication in ubiquitous environment
CN109639427B (zh) 一种数据发送的方法及设备
EP3017580B1 (en) Signatures for near field communications
US20190087814A1 (en) Method for securing a payment token
US9734091B2 (en) Remote load and update card emulation support
US20190074980A1 (en) Post-manufacture certificate generation
US11018880B2 (en) System and method for software module binding
CN111062059B (zh) 用于业务处理的方法和装置
CN115037480A (zh) 设备认证和校验的方法、装置、设备和存储介质
US10579984B2 (en) Method for making contactless transactions secure
JP2015104020A (ja) 通信端末装置、通信端末関連付けシステム、通信端末関連付け方法、及びコンピュータプログラム
KR101710950B1 (ko) 암호키 배포 방법, 그를 이용한 카드리더 모듈 및 암호키 배포 시스템
KR101855313B1 (ko) 통합 멀티-핀테크 서비스 제공 방법 및 이를 수행하는 통합 핀테크 단말기와 가맹점 인증 ic카드
Kasper et al. Rights management with NFC smartphones and electronic ID cards: A proof of concept for modern car sharing
JP6801448B2 (ja) 電子情報記憶媒体、認証システム、認証方法、及び認証アプリケーションプログラム

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