CN101238473A - 保护密钥的安全终端、例程和方法 - Google Patents
保护密钥的安全终端、例程和方法 Download PDFInfo
- Publication number
- CN101238473A CN101238473A CNA2006800286731A CN200680028673A CN101238473A CN 101238473 A CN101238473 A CN 101238473A CN A2006800286731 A CNA2006800286731 A CN A2006800286731A CN 200680028673 A CN200680028673 A CN 200680028673A CN 101238473 A CN101238473 A CN 101238473A
- Authority
- CN
- China
- Prior art keywords
- routine
- software application
- key
- fail
- application program
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting 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/73—Protecting 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 by creating or determining hardware identification, e.g. serial numbers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6209—Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2143—Clearing memory, e.g. to prevent the data from being stolen
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2149—Restricted operating environment
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
- Burglar Alarm Systems (AREA)
- Fittings On The Vehicle Exterior For Carrying Loads, And Devices For Holding Or Mounting Articles (AREA)
Abstract
一种保护密钥使其不被非安全软件应用程序读取的方法,所述方法包括将密钥记录为存储在只可执行的存储器中的只可执行的例程的步骤(94)。所述例程包括:加载指令,如果所述例程是由安全软件应用程序调用的,则将密钥载入安全和非安全软件应用程序可读的存储器;和控制指令,如果调用所述只可执行的例程的软件应用程序是非安全软件应用程序,则在可读存储器中只留下虚假数据而非密钥。
Description
技术领域
本发明设计一种保护密钥的安全终端、例程和方法。
背景技术
典型地,安全终端包括:
-处理器,执行软件应用程序和软件应用程序所调用的例程,和
-至少一个密钥。
所述处理器可以执行非安全软件应用程序以及安全软件应用程序。
非安全软件应用程序是可以被轻易更新或改变的软件应用程序。典型地,非安全软件应用程序被写入可以被重写的存储器,例如闪存。
相反,安全软件应用程序是不可以被轻易改变的软件应用程序。例如,安全软件应用程序在安全终端的制造过程中被写入只读存储器。保护所述只读存储器,以使得每个安全软件应用程序都不可以被轻易改变。
非安全软件应用程序是安全终端的弱点,因为它们会被黑客改变。然而,对安全终端的设计来说,将任何软件应用程序都记录在只读存储器中是不恰当的。因此,一直以来存在这样的危险,即黑客可能改变非安全软件应用程序,使得被改变的非安全软件应用程序读取密钥并将其泄漏给黑客。
发明内容
因此,本发明的目的是提供一种保护密钥使其不被非安全软件应用程序读取的方法。
本发明提供一种保护密钥使其不被非安全软件应用程序读取的方法,该方法包括将密钥记录为存储在只可执行的存储器中的只可执行的例程的步骤,所述例程包括:
-加载指令,如果安全软件应用程序调用所述例程,则将密钥载入安全和非安全软件应用程序均可读的存储器,和
-控制指令,如果调用所述只可执行的例程的软件应用程序是非安全软件应用程序,则在可读存储器中只留下虚假(dummy)数据而非密钥。
所述密钥被记录为存储在只可执行的存储器中的例程。为此,该例程被称为“只可执行的例程”。所述只可执行的例程不能被处理器读取而只能被执行。因此,获得所述密钥的唯一途径是执行只可执行的例程。然而,在执行时,所述例程本身确保与密钥有关的秘密信息不会泄漏给非安全软件应用程序。因此,密钥本身是非安全软件应用程序不可读的。
上述方法的实施例可以包括下列特征中的一个或一些:
-所述加载指令是加载常数的指令,每个常数的值嵌入在例程代码中并代表密钥的至少一位,
-所述方法包括步骤:在执行加载指令之前禁用任何IRQ(中断请求),并且只在已经删除了载入可读存储器中的密钥之后才重新启用IRQ,
-在执行IRQ重新启用步骤之前,所述只可执行的例程***地返回安全软件应用程序,并且任何安全软件应用程序删除已加载的密钥,
-如果安全软件应用程序不是由只可执行的例程调用的,则该只可执行的例程所返回的所述安全软件应用程序立即删除已加载的密钥。
所述方法的上述实施例表现出下列优点:
-使密钥作为可加载常数嵌入在只可执行的例程中加强了实施例的安全性;
-禁用IRQ防止了任何非安全软件应用程序读取载入可读存储器的密钥,因为只要IRQ被禁用,就不能执行非安全软件应用程序;
-在只可执行的例程的执行结束时***地返回安全软件应用程序防止了如下攻击,即调用只可执行的例程的非安全软件应用程序使用对应于安全软件应用程序的返回地址;
-如果只可执行的例程不是由安全软件应用程序调用的则从可读存储器中删除密钥通过防止其它非安全软件应用程序调用所述只可执行的例程而加强了终端的安全性。
本发明还涉及一种只可执行的例程,用于上述防止密钥被非安全软件应用程序读取的方法中。所述只可执行的例程包括:
-加载指令,如果所述例程是由安全软件应用程序调用的,则将密钥载入安全和非安全软件应用程序均可读的存储器,和
-控制指令,如果调用所述只可执行的例程的软件应用程序是非安全软件应用程序,则在可读存储器中只留下虚假数据而非密钥。
上述只可执行的例程的实施例可以包括下列特征中的一个或一些:
-所述加载指令是加载常数的指令,每个常数的值嵌入在例程代码中并代表密钥的至少一位,
-所述只可执行的例程具有在只可执行的例程的执行开始时禁用任何IRQ的指令,
-所述只可执行的例程具有在只可执行的例程的执行结束时***地返回安全软件应用程序的指令。
本发明还涉及一种安全终端,包括:
-处理器,执行软件应用程序和软件应用程序所调用的例程,和
-至少一个密钥,
其中,所述安全终端还包括适于记录只可执行的例程的只可执行的存储器,所述只可执行的例程包括:
-加载指令,如果所述例程是由安全软件应用程序调用的,则将密钥载入安全和非安全软件应用程序均可读的存储器中,和
-控制指令,如果调用所述只可执行的例程的软件应用程序是非安全软件应用程序,则在可读存储器中只留下虚假数据而非密钥。
所述安全终端的实施例可以包括下列特征中的一个或一些:
-所述加载指令是加载常数的指令,每个常数的值嵌入在例程代码中并代表密钥的至少一位,
-所述终端包括只读存储器(ROM),所述存储器包括至少一个安全软件应用程序的指令代码,所述指令代码具有删除可读存储器中加载的密钥的指令,
-所述终端包括:
-在复位所述终端之后只可读取一次的读取一次存储器,所述读取一次存储器记录所述密钥,
-只读存储器,具有安全初始化例程,根据存储在读取一次存储器中的密钥来创建只可执行的例程的指令代码,并将所述只可执行的例程的指令代码载入只可执行的存储器,
-只可执行的存储器具有事务解码器(transaction decoder),以只批准指令读取操作并禁止数据读取操作,
-所述终端是移动电话。
根据下列说明书、附图和权利要求,本发明的这些和其它方法将变得明显。
附图说明
图1是安全终端的示意图;
图2是在图1的安全终端中所实现的事务解码器的示意图;
图3是保护密钥使其不被图1的终端中的非安全软件应用程序读取的方法的流程图。
具体实施方式
图1示出了安全终端2,具有连接至外部存储器6的电子处理器4。例如,终端2是移动电话,处理器4是基带处理器,或更一般地,是任何SoC(片上***)。
存储器6可以被重写,并记录非安全软件应用程序的代码。每个代码由可由处理器4执行的指令构成。例如,存储器6是闪存。
处理器4能够执行存储在存储器6中的非安全软件应用程序,以及存储在ROM(只读存储器)8中的安全软件应用程序。
为了简化,图1中只示出了为理解本发明所必需的处理器4的元件。
处理器4包括:
-中央处理单元10,
-ROM8;
-只读一次存储器12,永久地记录至少一个密钥;
-RAM(随机存取存储器)或内部数据寄存器18,存储单元10所执行的软件应用程序可以读取和使用的数据;
-寄存器库20,存储只可执行的例程21;和
-事务解码器22,限制对寄存器库20的访问。
例如,所有上述元件8到22建立于至少一个管芯(die)上,并被嵌入在相同的集成电路封装中。从安全的角度来看,这是个重要因素,因为这意味着偶尔造访的黑客不可能对处理器4的内部元件进行物理访问。
单元10具有特殊寄存器14,用于记录调用例程的软件应用程序的返回地址。
例如,单元10是来自ARM公司的ARM处理器(参见网址:www.arm.com),或更一般地,是任意CPU(中央处理单元)。
只是为了举例,存储器12只记录一个密钥。在处理器4的制造过程中在硅中使用激光切割,存储存储器12中的密钥。在每次处理器4复位之后,只能读取一次所存储的密钥。为此,单元10和存储器12之间的链接23确保单元10和存储器12总是同时被复位。
在执行软件应用程序过程中,单元10使用内部数据寄存器18来存储该执行所必需的数据。
设计寄存器库20以记录将密钥载入寄存器18的只可执行的例程21。例程21包括:
-加载指令,将密钥载入寄存器18;
-控制指令,如果调用例程21的软件应用程序是非安全软件应用程序,则只将虚假数据而非密钥载入寄存器18;
-在例程21的执行开始时禁用任何IRQ(中断请求)的指令,和
-在例程21的执行结束时***地返回安全软件应用程序的指令。
加载指令是将常数载入寄存器18的指令,每个常数是密钥的一位。所述常数的值被嵌入在例程21的代码中,更精确地,被嵌入在例程21的指令的运算码(op-codes)中。
寄存器库20和事务解码器22的组合形成了只可执行的存储器24,将关于图2对其进行更为详细的描述。
ROM8是引导ROM,记录了在处理器4复位之后立即启动的软件应用程序的代码。每个代码都由单元10可执行的指令构成。
ROM8记录作为安全内核26一部分的任何安全软件应用程序的代码。
例如,安全内核26具有初始化例程28,初始化例程28读取存储器12、创建只可执行的例程21的代码,并将该代码载入寄存器库20。
内核26也具有安全软件应用程序,该安全软件应用程序被设计为检查非安全软件应用程序的可靠性。例如,内核26具有安全软件应用程序30,安全软件应用程序30能够检查非安全软件应用程序是否是由已知权威标记的或是由这种已知权威验证的。应用30需要密钥来执行这样的任务,因此其被设计为调用例程21以获得密钥。
调用例程21的任何安全软件应用程序能够:
-一旦已经使用了则删除存储在内部寄存器18中的密钥,和
-在从寄存器18删除密钥之后启用IRQ(中断请求)。
通过删除,我们意欲用虚假数据来代替密钥,这样不会泄漏有关密钥的任何可用信息。这可以通过用常数(例如0)来改写密钥而实现。
ROM8、存储器12、24和寄存器18通过总线34和地址总线36连接至单元10。总线34用于传输将由单元10处理的数据和将由单元10执行的指令。因为只存在一个公共总线34来交替地传输数据和指令,所以总线34具有可变数据/指令标签,所述标签指示将总线上的条目作为数据还是指令来处理。
存储器12通过总线34连接至单元10,以便在单元10复位之后可以读取一次存储器12。
图2示出了只可执行的存储器24。已经在图1中示出的存储器24的元件具有相同的附图标记。
寄存器库20具有一个端口40和一个端口42,端口40接收将被写入寄存器库20的数据,端口42输出在寄存器库20中读取的数据。端口40连接至写数据总线44,以接收将要写入的数据。端口42连接至读数据总线46以输出将被读取的数据。例如,总线44和46是32位元总线。只有库20的输入47接收逻辑1时才能将数据写入寄存器库20。
事务解码器22具有逻辑“与”单元50,逻辑“与”单元50具有一个连接至总线46的输入端口52和一个连接至总线34以接收数据/指令标签的输入端口54。当从寄存器库20读取数据时,数据/指令标签等于逻辑0,当从寄存器库20读取指令时,数据/指令标签等于逻辑1。
单元50对总线46上存在的数据和数据/指令标签的值进行逻辑“与”操作,并将结果输出到数据总线34上。
存储器24也是写入一次存储器。更准确地,存储器24在每次处理器4复位之后只可以被写入一次。为此,解码器22具有“与”门60,“与”门60的输入连接至总线34的写入信号62和反相器64的输出。反相器64的输入66连接至锁存器70的输出68。
门60执行写入信号62和反相器64的输出之间的逻辑“与”,并将结果发送至输入47。
锁存器70的输入72连接至“或”门74的输出。门74的第一输入76连接至输出68。门74的第二输入78连接至写入信号62。门74对其输入76和78上存在的信号进行逻辑“或”操作,并将结果输出至锁存器的输入72。
锁存器70被设计为:在已经复位处理器4之后,当第一次激活处理器4时,通过输出68输出逻辑0。例如,锁存器70使用链接(例如链接23)连接至单元10,以确保单元10和锁存器70总是同时被复位。随后,锁存器70通过输出68输出等于其输入72上接收的值的值。
现在将参考图3来描述终端2的操作。
首先,在步骤90,复位处理器4。在步骤90,锁存器70复位并返回它的初始状态。存储器12也被复位,并启用一个读取操作。
在复位之后,单元10立即开始执行存储在ROM8中的软件应用程序。
此后,在步骤92,初始化例程28读取存储在存储器1 2中的密钥的值,并创建例程21的相应代码。因为存储器12是在复位之后第一次由例程28读取,所以只要处理器4不被复位,就不能再读取存储器12。
在步骤94,例程28将例程21的代码写入并记录在寄存器库20中。
开始时,写入信号62等于1,锁存器70的输出68等于0。
在操作96期间,门62将写入信号值和反相器64的输出进行比较。如果二者都等于1,则在操作98期间,在输入47上设置逻辑1,并把通过总线44发送的例程21的代码写入并存储在寄存器库20中。
相反,在操作100过程中,如果反相器64的输出等于0,则在输入47上设置逻辑0,并且不能再向寄存器库20写入数据。
与步骤94并行地,在步骤102中,存储“已经完成第一次将数据写入寄存器库20”的事实,以防止在再次复位处理器4之前向寄存器库20写入任何数据。
更准确地,在操作104,门74比较写入信号62的值与输出68的值。如果输入76和78都等于0,则门74向输入72输出逻辑0,否则,门74输出逻辑1。
因此,如果是第一次向寄存器库20写入数据,则输出68等于0,因此反相器64的输出等于1并且例程21的代码可以被写入并存储在寄存器库20中。
当第二次或任何后继次向寄存器库20写入数据,则输出68等于逻辑1,以使得反相器64的输出等于0并且不能向寄存器库20写入数据。因此,一旦例程21的代码被存储在寄存器库20中,则只要处理器4不被复位,就不能改变例程21的代码。
其结果是,存储器24是写入一次存储器。
在步骤94的第一次执行结束时,例程21的代码被写入寄存器库20。
接着,典型地,处理器4执行非安全软件应用程序。当需要密码操作时,调用软件应用程序30。例如,需要密码操作来解密DRM(数字版权管理)许可。
此后,在步骤110,安全软件应用程序30调用例程21。此时,在操作112期间,单元10把调用应用例程的返回地址写入寄存器14。
在步骤114,单元10读取寄存器库20中的例程21的代码并执行。因此,将数据/指令标签设为0。首先,在操作116中,单元10通过总线34发送寄存器库读取指令。
作为响应,在步骤118,寄存器库20将对应的指令放在总线46上。
在操作120中,单元50将端口52上接收的指令与端口54上接收的数据/指令标签值相比较。
在操作122中,如果该标签值等于1,则单元50输出总线34上的读取指令。因为标签值等于1,所以所述输出指令只可以解释为单元10的指令并因此直接由单元10执行。当数据/指令标签等于1时,软件应用程序不能访问总线34上的数据。
如果试图将寄存器库20中存储的指令作为数据来读取,则数据/指令标签等于0,并且单元50在操作124过程中只会输出0而非对应的指令。
因此,如果非安全软件应用程序试图读取存储在存储器24中的代码,则它只能获得虚假数据,即多个0。
因此,存储器24是只可执行的存储器,而例程21是只可执行的例程,这是因为它的代码只能由单元10执行,而不能由处理器4所执行的软件应用程序读取。
因为数据/指令标签等于1,在步骤130,单元10执行总线34上存在的指令。
在步骤130的开始处,在操作132中,单元10禁用任何IRQ(中断请求),以使得接下来的指令的执行不会被任何软件应用程序所中断。因此,其它软件应用程序不能够读取存储在寄存器18中的任何内部数据。
此后,在操作134和136中,单元10执行例程21的控制指令。
在操作134中,单元10检测例程21是否是由安全软件应用程序所调用的。例如,在操作134中,单元10把写入寄存器14的返回地址与ROM8的存储器地址进行比较。
如果写入寄存器14的返回地址不在ROM8的地址范围以内,则在操作136中,单元10把例如连续多个0的虚假数据载入寄存器18。在操作136的结束处,处理器4返回至被写入寄存器14的返回地址。因此,调用例程21的非安全软件应用程序不能获得关于密钥的信息。
如果返回地址是安全软件应用程序的地址,则在步骤138,单元10执行例程21的加载指令。因此,寄存器4加载有密钥的值。一旦完成,则在操作140过程中,单元10执行例程21的指令,从而***地返回至安全软件应用程序。例如,单元10无条件地跳转至安全软件应用程序30的地址。无论将什么返回地址放在栈14的顶部,都执行该跳转指令。例如,在操作140过程中,单元10调用应用30。更准确地,单元10执行至应用30的分支和链接指令。所述分支和链接指令也将所调用的应用的地址(即例程21的地址)记录在特殊寄存器14中。
此后,在阶段150中,应用30使用写入寄存器18的密钥值。
例如,在阶段150的开始处,在步骤152中,应用30检查它是否是由例程21调用的。例如,单元10检查写入寄存器16的地址是否对应于例程21的地址。
如果这样的条件并不满足,则在步骤154,单元10删除写入寄存器18的密钥。例如,单元10用连续多个0代替密钥。因此,应用30就像它调用了例程21一样运行。
在步骤156,例如,应用30使用写入寄存器18的密钥来检查或证明非安全软件应用程序。这样以来,使用密钥来执行密码操作。
当应用30不再需要密钥时,在步骤158,单元10从寄存器18删除密钥。
接下来,在步骤160,单元10重新启用IRQ。
然后方法返回主软件应用程序,在步骤110中调用应用30。
许多其它实施例是可能的。例如,除了当从非安全软件应用程序调用例程21时删除密钥之外,还可以锁定终端2以使其不能再被使用。
也可以在调用例程21之前通过应用30禁用IRQ。
这里,例程21被写入需要在每次复位终端2之后刷新的非永久存储器。然而,也可以用例如ROM的永久存储器来代替寄存器库20。在该实施例中,在每次复位终端2之后不再需要重新存储例程21的代码。
不仅用于保护一个密钥,上述终端和方法可以用于保护多个密钥使其不被非安全软件应用程序读取。
当存储非安全软件应用程序的存储器是处理器4的内部存储器时,上述教导同样适用。
这里所述的内容不局限于移动电话,而可应用于任何安全电子终端。
Claims (15)
1.一种保护密钥使其不被非安全软件应用程序读取的方法,所述方法包括将密钥记录为存储在只可执行的存储器中的只可执行的例程的步骤(94),所述例程包括:
-加载指令,如果所述例程是由安全软件应用程序调用的,则将密钥载入安全和非安全软件应用程序可读的存储器,和
-控制指令,如果调用所述只可执行的例程的软件应用程序是非安全软件应用程序,则在可读存储器中只留下虚假数据而非密钥。
2.如权利要求1所述的方法,其中所述加载指令是加载常数的指令,每个常数的值嵌入在例程代码中并代表密钥的至少一位。
3.如权利要求1或2所述的方法,所述方法包括步骤(132;160):在执行加载指令之前禁用任何IRQ(中断请求),以及仅在已经删除了载入可读存储器中的所述密钥之后才重新启用IRQ。
4.如权利要求3所述的方法,其中,在执行IRQ重新启用步骤之前,所述只可执行的例程***地返回安全软件应用程序,并且任何安全软件应用程序删除(在158中)已加载的密钥。
5.如权利要求4所述的方法,其中,如果安全软件应用程序不是由所述只可执行的例程调用的,则所述只可执行的例程所返回的所述安全软件应用程序立即删除(在154中)已加载的密钥。
6.一种被设计为用于根据权利要求1到5中任何一个的密钥保护方法的只可执行的例程,其中所述只可执行的例程包括:
-加载指令,如果所述例程是由安全软件应用程序调用的,则将密钥载入安全和非安全软件应用程序可读的存储器,和
-控制指令,如果调用所述只可执行的例程的软件应用程序是非安全软件应用程序,则在可读存储器中只留下虚假数据而非密钥。
7.根据权利要求6的只可执行的例程,所述加载指令是加载常数的指令,每个常数的值嵌入在例程代码中并代表密钥的至少一位。
8.根据权利要求6或7的只可执行的例程,其中,所述只可执行的例程具有在只可执行的例程的执行开始时禁用任何IRQ的指令。
9.根据权利要求8的只可执行的例程,其中,所述只可执行的例程具有在只可执行的例程的执行结束时***地返回安全软件应用程序的指令。
10.一种安全终端,包括:
-处理器,执行软件应用程序和软件应用程序所调用的例程,和
-至少一个密钥,
其中,所述安全终端还包括适于记录只可执行的例程的只可执行的存储器(24),所述只可执行的例程包括:
-加载指令,如果所述例程是由安全软件应用程序调用的,则将密钥载入安全和非安全软件应用程序可读的存储器,和
-控制指令,如果调用所述只可执行的例程的软件应用程序是非安全软件应用程序,则在可读存储器中只留下虚假数据而非密钥。
11.根据权利要求10的终端,其中,所述加载指令是加载常数的指令,每个常数的值嵌入在例程代码中并代表密钥的至少一位。
12.根据权利要求10或11的终端,其中所述终端包括只读存储器(ROM)(8),所述只读存储器包括安全软件应用程序的至少一个指令代码,所述指令代码具有从可读存储器中删除已加载的密钥的指令。
13.根据权利要求10或11的终端,其中所述终端包括:
-在所述终端复位之后只可读取一次的读取一次存储器(12),所述读取一次存储器记录所述密钥,
-只读存储器(8),具有安全初始化例程(28),以根据写入读取一次存储器中的密钥来创建只可执行的例程的指令代码,并将所述只可执行的例程的指令代码载入只可执行的存储器。
14.根据权利要求13的终端,其中,只可执行的存储器具有事务解码器(22),用于只批准指令读取操作并禁止数据读取操作。
15.根据权利要求10到14中任意一个终端,其中,所述终端是移动电话。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP05300649.0 | 2005-08-03 | ||
EP05300649 | 2005-08-03 | ||
PCT/IB2006/052616 WO2007015204A2 (en) | 2005-08-03 | 2006-08-01 | A secure terminal, a routine and a method of protecting a secret key |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101238473A true CN101238473A (zh) | 2008-08-06 |
CN101238473B CN101238473B (zh) | 2011-10-26 |
Family
ID=37708991
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006800286731A Expired - Fee Related CN101238473B (zh) | 2005-08-03 | 2006-08-01 | 保护密钥的安全终端和方法 |
Country Status (8)
Country | Link |
---|---|
US (1) | US8689338B2 (zh) |
EP (1) | EP1913511B1 (zh) |
JP (1) | JP5114617B2 (zh) |
KR (1) | KR100970040B1 (zh) |
CN (1) | CN101238473B (zh) |
AT (1) | ATE499658T1 (zh) |
DE (1) | DE602006020288D1 (zh) |
WO (1) | WO2007015204A2 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011050655A1 (zh) * | 2009-11-02 | 2011-05-05 | 中兴通讯股份有限公司 | 移动终端及其***数据防克隆方法 |
CN107924433A (zh) * | 2015-09-10 | 2018-04-17 | 高通股份有限公司 | 由受控制的加密密钥管理保护的软件模块的安全进入和退出 |
CN110020561A (zh) * | 2018-01-10 | 2019-07-16 | 三星电子株式会社 | 半导体装置和操作半导体装置的方法 |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8332635B2 (en) * | 2007-05-29 | 2012-12-11 | International Business Machines Corporation | Updateable secure kernel extensions |
US8422674B2 (en) * | 2007-05-29 | 2013-04-16 | International Business Machines Corporation | Application-specific secret generation |
US7886162B2 (en) * | 2007-05-29 | 2011-02-08 | International Business Machines Corporation | Cryptographic secure program overlays |
US8433927B2 (en) * | 2007-05-29 | 2013-04-30 | International Business Machines Corporation | Cryptographically-enabled privileged mode execution |
US8332636B2 (en) * | 2007-10-02 | 2012-12-11 | International Business Machines Corporation | Secure policy differentiation by secure kernel design |
US8826006B2 (en) * | 2008-10-31 | 2014-09-02 | Motorola Solutions, Inc. | Method and device for enabling a trust relationship using an unexpired public key infrastructure (PKI) certificate |
US8812959B2 (en) * | 2009-06-30 | 2014-08-19 | International Business Machines Corporation | Method and system for delivering digital content |
US9047263B2 (en) * | 2013-01-24 | 2015-06-02 | Dell Products L.P. | System and method for secure SMI memory services |
EP2930663B1 (en) * | 2014-04-11 | 2020-07-01 | Nxp B.V. | Electronic circuit chip for an RFID tag with a read-only-once functionality |
KR20160039922A (ko) * | 2014-10-02 | 2016-04-12 | 삼성전자주식회사 | 영상처리장치 및 그 제어방법 |
US9753863B2 (en) | 2014-12-27 | 2017-09-05 | Intel Corporation | Memory protection with non-readable pages |
WO2016109558A1 (en) * | 2014-12-29 | 2016-07-07 | Rubicon Labs, Inc. | System and method for secure code entry point control |
GB201511385D0 (en) * | 2015-06-29 | 2015-08-12 | Nagravision Sa | Secure programming of secret data |
US10193872B2 (en) * | 2015-08-12 | 2019-01-29 | Cyphyx, Llc | System and methods for dynamically and randomly encrypting and decrypting data |
US20180004946A1 (en) * | 2016-07-01 | 2018-01-04 | Intel Corporation | Regulating control transfers for execute-only code execution |
US10785028B2 (en) * | 2018-06-29 | 2020-09-22 | Intel Corporation | Protection of keys and sensitive data from attack within microprocessor architecture |
US11216366B2 (en) | 2020-02-13 | 2022-01-04 | Intel Corporation | Security check systems and methods for memory allocations |
WO2022139850A1 (en) | 2020-12-26 | 2022-06-30 | Intel Corporation | Cryptographic computing including enhanced cryptographic addresses |
US11972126B2 (en) | 2021-03-26 | 2024-04-30 | Intel Corporation | Data relocation for inline metadata |
US11954045B2 (en) | 2021-09-24 | 2024-04-09 | Intel Corporation | Object and cacheline granularity cryptographic memory integrity |
Family Cites Families (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5778070A (en) * | 1996-06-28 | 1998-07-07 | Intel Corporation | Method and apparatus for protecting flash memory |
US6317742B1 (en) * | 1997-01-09 | 2001-11-13 | Sun Microsystems, Inc. | Method and apparatus for controlling software access to system resources |
US6704871B1 (en) * | 1997-09-16 | 2004-03-09 | Safenet, Inc. | Cryptographic co-processor |
US6609199B1 (en) * | 1998-10-26 | 2003-08-19 | Microsoft Corporation | Method and apparatus for authenticating an open system application to a portable IC device |
US6651171B1 (en) * | 1999-04-06 | 2003-11-18 | Microsoft Corporation | Secure execution of program code |
FR2792141B1 (fr) * | 1999-04-09 | 2001-06-15 | Bull Cp8 | Procede de securisation d'un ou plusieurs ensembles electroniques mettant en oeuvre un meme algorithme cryptographique avec cle secrete, une utilisation du procede et l'ensemble electronique |
JP2002014871A (ja) * | 2000-06-29 | 2002-01-18 | Fujitsu Ltd | コンテンツチェック方法、コンテンツ更新方法、および処理装置 |
JP2002082909A (ja) | 2000-09-07 | 2002-03-22 | Fujitsu Ltd | 情報管理装置および情報管理システム |
JP3666400B2 (ja) * | 2001-03-07 | 2005-06-29 | オムロン株式会社 | 監視装置および方法、記録媒体、並びにセキュリティシステム |
JP2002351563A (ja) * | 2001-05-30 | 2002-12-06 | Canon Inc | 情報処理装置、情報処理方法およびプログラム |
JP3773431B2 (ja) * | 2001-09-20 | 2006-05-10 | 松下電器産業株式会社 | 鍵実装システムおよびこれを実現するためのlsi、並びに鍵実装方法 |
DE10146516A1 (de) * | 2001-09-21 | 2003-04-24 | Infineon Technologies Ag | Programmgesteuerte Einheit |
JP4145118B2 (ja) | 2001-11-26 | 2008-09-03 | 松下電器産業株式会社 | アプリケーション認証システム |
JP3904921B2 (ja) | 2001-12-27 | 2007-04-11 | 株式会社 エヌティーアイ | 情報処理装置及びアクセス制御方法 |
US7313705B2 (en) * | 2002-01-22 | 2007-12-25 | Texas Instrument Incorporated | Implementation of a secure computing environment by using a secure bootloader, shadow memory, and protected memory |
US20030154355A1 (en) * | 2002-01-24 | 2003-08-14 | Xtec, Incorporated | Methods and apparatus for providing a memory challenge and response |
JP3863447B2 (ja) * | 2002-03-08 | 2006-12-27 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 認証システム、ファームウェア装置、電気機器、及び認証方法 |
US7162644B1 (en) * | 2002-03-29 | 2007-01-09 | Xilinx, Inc. | Methods and circuits for protecting proprietary configuration data for programmable logic devices |
JP3950010B2 (ja) | 2002-05-17 | 2007-07-25 | 株式会社エヌ・ティ・ティ・ドコモ | データ処理装置、プログラムおよび記録媒体 |
JP3979194B2 (ja) * | 2002-06-25 | 2007-09-19 | ソニー株式会社 | 情報記憶装置、およびメモリアクセス制御方法、並びにコンピュータ・プログラム |
JP2004046532A (ja) | 2002-07-11 | 2004-02-12 | Ricoh Co Ltd | 情報処理装置、情報処理方法および記録媒体 |
US7826613B2 (en) * | 2002-08-19 | 2010-11-02 | Qualcomm Incorporated | Stream cipher cryptographic system and method |
FR2845493A1 (fr) * | 2002-10-04 | 2004-04-09 | Canal Plus Technologies | Logiciel embarque et procede d'authentification de celui-ci |
ITTO20020939A1 (it) * | 2002-10-30 | 2004-04-30 | Tecnost Sistemi S P A | Sistema distribuito per l'emissione di valori e o titoli |
DE10251839A1 (de) * | 2002-11-07 | 2004-05-19 | Robert Bosch Gmbh | Verfahren zur sicheren Überprüfung eines Speicherbereiches eines Mikrocontrollers in einem Steuergerät und Steuergerät mit einem geschützten Mikrocontroller |
FR2849311B1 (fr) * | 2002-12-18 | 2005-04-15 | France Telecom | Procede de communication entre deux unites, et terminal mettant en oeuvre le procede |
US7051251B2 (en) * | 2002-12-20 | 2006-05-23 | Matrix Semiconductor, Inc. | Method for storing data in a write-once memory array using a write-many file system |
JP4067985B2 (ja) * | 2003-02-28 | 2008-03-26 | 松下電器産業株式会社 | アプリケーション認証システムと装置 |
US7107388B2 (en) * | 2003-04-25 | 2006-09-12 | Intel Corporation | Method for read once memory |
US20060004829A1 (en) * | 2004-05-27 | 2006-01-05 | Silverbrook Research Pty Ltd | Rolling keys |
-
2006
- 2006-08-01 JP JP2008524653A patent/JP5114617B2/ja not_active Expired - Fee Related
- 2006-08-01 EP EP06780255A patent/EP1913511B1/en active Active
- 2006-08-01 KR KR1020087005034A patent/KR100970040B1/ko not_active IP Right Cessation
- 2006-08-01 DE DE602006020288T patent/DE602006020288D1/de active Active
- 2006-08-01 WO PCT/IB2006/052616 patent/WO2007015204A2/en active Application Filing
- 2006-08-01 AT AT06780255T patent/ATE499658T1/de not_active IP Right Cessation
- 2006-08-01 US US11/997,214 patent/US8689338B2/en not_active Expired - Fee Related
- 2006-08-01 CN CN2006800286731A patent/CN101238473B/zh not_active Expired - Fee Related
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011050655A1 (zh) * | 2009-11-02 | 2011-05-05 | 中兴通讯股份有限公司 | 移动终端及其***数据防克隆方法 |
CN107924433A (zh) * | 2015-09-10 | 2018-04-17 | 高通股份有限公司 | 由受控制的加密密钥管理保护的软件模块的安全进入和退出 |
CN110020561A (zh) * | 2018-01-10 | 2019-07-16 | 三星电子株式会社 | 半导体装置和操作半导体装置的方法 |
CN110020561B (zh) * | 2018-01-10 | 2023-12-15 | 三星电子株式会社 | 半导体装置和操作半导体装置的方法 |
Also Published As
Publication number | Publication date |
---|---|
EP1913511A2 (en) | 2008-04-23 |
JP5114617B2 (ja) | 2013-01-09 |
KR20080031998A (ko) | 2008-04-11 |
WO2007015204A2 (en) | 2007-02-08 |
US8689338B2 (en) | 2014-04-01 |
ATE499658T1 (de) | 2011-03-15 |
JP2009504061A (ja) | 2009-01-29 |
US20080229425A1 (en) | 2008-09-18 |
KR100970040B1 (ko) | 2010-07-16 |
DE602006020288D1 (de) | 2011-04-07 |
EP1913511B1 (en) | 2011-02-23 |
CN101238473B (zh) | 2011-10-26 |
WO2007015204A3 (en) | 2007-07-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101238473B (zh) | 保护密钥的安全终端和方法 | |
US6160734A (en) | Method for ensuring security of program data in one-time programmable memory | |
US8041912B2 (en) | Memory devices with data protection | |
US8639946B2 (en) | System and method of using a protected non-volatile memory | |
US8060925B2 (en) | Processor, memory, computer system, and method of authentication | |
JPH06259248A (ja) | メモリカード | |
US7260690B2 (en) | Microprocessor circuit for data carriers and method for organizing access to data stored in a memory | |
US8195946B2 (en) | Protection of data of a memory associated with a microprocessor | |
CN110020561B (zh) | 半导体装置和操作半导体装置的方法 | |
US20050209716A1 (en) | Method and system for writing nv memories in a controller architecture, corresponding computer program product and computer-readable storage medium | |
JP2004005679A (ja) | コンピュータシステム、メモリ構造、および、プログラムを実行する方法 | |
US20020166034A1 (en) | Protection circuit for preventing unauthorized access to the memory device of a processor | |
CN109472172B (zh) | 用于防止来自存储器的未授权数据访问的方法 | |
US20140082372A1 (en) | Secure spin torque transfer magnetic random access memory (sttmram) | |
US7806319B2 (en) | System and method for protection of data contained in an integrated circuit | |
US20190212930A1 (en) | Data storage chip and data access method | |
US20240119139A1 (en) | Securing critical data in a storage device of a computer system | |
US11809334B2 (en) | Integrated circuit with asymmetric access privileges | |
US20220229937A1 (en) | Integrated circuit with asymmetric access privileges | |
JP2929696B2 (ja) | シングルチップマイクロコンピュータ | |
JPH01261760A (ja) | コンピュータ装置 | |
CN110569205A (zh) | 安全***单芯片及其操作方法 | |
JP2007504521A (ja) | 2つのメモリー間でのセキュリティデータの転送 | |
JPH0453098A (ja) | 半導体不揮発性記憶装置 | |
JPH0769869B2 (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 | ||
ASS | Succession or assignment of patent right |
Effective date: 20110826 |
|
C41 | Transfer of patent application or patent right or utility model | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20110826 Address after: Swiss Prang Eli Ute Applicant after: NXP BV Address before: Holland Ian Deho Finn Applicant before: Koninkl Philips Electronics NV |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20111026 Termination date: 20180801 |
|
CF01 | Termination of patent right due to non-payment of annual fee |