[go: up one dir, main page]

CN1320465C - 数据载体的微处理器电路及组织存取内存数据的方法 - Google Patents

数据载体的微处理器电路及组织存取内存数据的方法 Download PDF

Info

Publication number
CN1320465C
CN1320465C CNB028046161A CN02804616A CN1320465C CN 1320465 C CN1320465 C CN 1320465C CN B028046161 A CNB028046161 A CN B028046161A CN 02804616 A CN02804616 A CN 02804616A CN 1320465 C CN1320465 C CN 1320465C
Authority
CN
China
Prior art keywords
memory
program
access
address
region
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.)
Expired - Fee Related
Application number
CNB028046161A
Other languages
English (en)
Other versions
CN1491388A (zh
Inventor
F·-J·布雷克马尔
H·弗里丁格
H·塞德拉克
C·梅
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.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
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 Infineon Technologies AG filed Critical Infineon Technologies AG
Publication of CN1491388A publication Critical patent/CN1491388A/zh
Application granted granted Critical
Publication of CN1320465C publication Critical patent/CN1320465C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1483Protection against unauthorised use of memory or access to memory by checking the subject access rights using an access-table, e.g. matrix or list
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1441Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Communication Control (AREA)

Abstract

本发明提出一用以组织存取储存于一内存的数据或程序的微处理电路,具有至少一微处理器、一供操作系统使用的内存,以及至少一用以让个别外部程序可自由编程的内存、多个在内存中具有个别地址空间的内存区域提供给自由编程,将一识别符(identifier)分配于每个地址空间,且具有在内存区域寻址之前的个案中用以把此被个别分配至内存区域的识别符加载一第一辅助寄存器的装置,该装置亦把被寻址的内存区域的识别符加载一第二寄存器,并执行该第一与第二辅助寄存器的比较。再者,准备工作是针对一内存区域的每个地址空间而执行,以至于被派到至少一具有存取权限的位序列上,而代码指令与敏感数据可藉其保护而免于受到来自于其它外部程序的写入存取。

Description

数据载体的微处理器电路及组织存取内存数据的方法
技术领域
本发明涉及一种微处理器电路以及涉及一种组织存取储存于内存数据或程序的方法。
背景技术
前述样式的微处理器电路最好被应用于所谓的智能卡(smartcard),也就是所谓的身份证(identity card)、信用卡(creditcard)、赊购卡(charge card)以及诸如此类的东西,这些卡片都配备有一集成电路(integrated card)。此微处理电路亦被应用于所谓的支付交易模块(payment transaction module),可透过相对应的接口而与前述的智能卡相连。通常,此微处理器电路可被应用于个人终端机(personalized terminals),亦即例如移动电话、个人计算机、个人数字助理,这些皆适用于支付交易。
此等卡片的一基本好处在于可依卡片拥有者的各种可能需求而建构。包含于一集成电路之中的微处理器与相关的储存工具,使得可在卡片中进行大量的数据处理。
卡片制造商可使该微处理器配备有一常驻的操作系统,所述操作系统可执行基本的功能,例如进行比较外来码输入与所存储的码等功能。配备于该微处理器上的内存除了可用于储存该操作系统之外亦可用于储存特殊的应用程序以及参数,其中该应用程序可能包含多种功能,而该参数在安全性测试与所有保密工作上都是必要的。
当具有相关程序的操作系统产生一起始点(starting point),定义某些接口,且为了外部程序而保留一内存或是内存区域时,即可实现卡片的各种不同用途。卡片制造商接着即针对使用者而做了些准备,那也就是说对发行卡片的组织而言,为了能在其外部程序当中进行编程,卡片制造商提供一内存或是内存区域。在此外部程序中,该组织可定义特殊操作,所述特殊操作独立于该操作系统之外且是与此特定组织有关。
未来的趋势可能并不仅是在一预先制造的智能卡中,单一系统储存其外部程序,更可能是在所述智能卡上,有多个不同系统储存所对应的程序。在此情形下,应小心确保在该操作系统或是其它外部程序上与安全性相关的数据,以避免其在未经准许的情况下即被存取。
可以理解的是将称为一程序部分(program part)的外部程序,亦可称为另一外部程序的一程序库(program library)。在一般的内存系统基础上,所有的程序部分(program parts)可座落于所谓的相同逻辑地址区域中。在此情况下,外部程序的代码与数据皆被设于内存区域的一地址空间中。在此个案中,该代码本身可能依次包含多个程序部分、程序程序库或是程序功能。经由举例,如果一外部程序A,也可被称作为应用程序,轮流调用一外部程序B的程序程序库B与位在相同逻辑地址空间中另一外部程序C的程序库C,那么在缺乏进一步的保护机制时,该程序库B可经由一写入操作该程序库C的数据而破坏了该数据,亦或经由一读取操作而发现了程序库C的本质安全数据。该程序库C将因数值被破坏而无法再进一步地作为其它外部程序的程序部分。
为了解决此一问题,其对于此程序部分(program parts)而言已知的程序库(program libraries)需藉硬件机制而与该内存中的其它程序库分离,而且在各程序库间的存取数据则仅可经由该操作系统而得以完成。然而,此安全性表现于一高程序化复杂与复杂硬件的结果之中。再者,此表现在与程序库间的直接通讯做比较时是降低的。必然地,由于该表现的损害而获得高安全性。
EP 0,512,542 B1专利案揭露了一用于避免对储存在一内存中的数据或程序进行存取的微处理器电路,其具有至少一微处理器,一操作系统内存以及至少一用于各个外部程序自由程序的内存。在此个案中,提供多个自由程序内存区域,除了至少一最明显的位置之外,这些地址空间是相同的。该微处理器电路更具有一在各种个案中可在寻址于一内存区域之前先将被分配至一内存区域的各个最明显位置装载至一第一辅助寄存器上的装置,该等装置并可将被寻址的内存区域的个别最明显位置装载至一第二辅助寄存器,且其接着即可用以进行该第一与第二辅助寄存器的比较。在改变辅助寄存器的内容的过程中,产生一制止信号以便确定可否执行一正在存取一不被准许的地址的外部程序。
此程序在实施上有其缺点,它无法存取另一外部程序。不可能相互使用其它外部程序的特定程序部分。因此,如果适当,多个外部程序必须包含具有相同功能的同一程序部分。然而,这是非常不利的,在此一便于携行的数据载体的个案中,其通常仅有一受限的内存区域。
发明内容
本发明以详细说明一电路与方法的目的为基础,其亦可利用简单量测来存取外部程序。
本发明的这些目的可一种用以组织存取储存在内存数据或程序的微处理器电路和一种用以组织存取储存于一装置内存中的数据或程序的方法分别实现。
所述用以组织存取储存在内存数据或程序的微处理器电路具有至少一微处理器、一供操作系统使用的内存、及至少一供有个别外部程序的自由编程使用的内存、多个在内存中具有地址空间而提供给自由编程的内存区域、其中每个地址空间配有一识别符,且具有装置,该装置在寻址所述内存区域前,在内存存取中将个别分配于内存区域的识别符加载至一第一辅助寄存器,以及将所寻址的内存区域的所述识别符加载至第二辅助寄存器,并且执行该第一和第二辅助寄存器的比较,其中将具有存取权限的至少一位序列分配至一内存区域的各地址空间,其中包含该存取权限的该位序列与地址或地址区块及存于该内存表格中的识别符储存在一起,且包含该存取权限的该位序列包含一第一及第二存取权限,该第一存取权限控制两内存区域间的存取,而该第二存取权限控制一内存区域内的存取。
在所述用以组织存取储存于一装置内存中的数据或程序的方法中,所述装置具有至少一微处理器、一供操作系统使用的内存、及至少一供有个别外部程序的自由编程使用的内存、多个在内存中具有地址空间的内存区域提供给自由编程、将一识别符分配于每个地址空间,及正好在每一内存区域中提供一外部程序,其步骤包含:
a)在一外部程序使用一现行地址的一识别符的当时,确定该外部程序的现行代码指令的一第一程序ID;b)确定一寻址的内存区域的一第二程序ID;c)比较该第一和第二程序ID;d)根据步骤c)的比较结果,选择该第一或第二存取权限;e)评估该存取权限;f1)若该存取或该寻址的内存区域的代码指令是被许可的,则继续该程序代码;f2)若该存取或该寻址的内存区域的代码指令是不被许可的,则调用一错误操控程序;其中包含该存取权限的位序列与地址或地址区块及存于该内存表格中的识别符储存在一起,且包含该存取权限的该位序列包含一第一及第二存取权限,该第一存取权限控制两内存区域间的存取,而该第二存取权限控制一内存区域内的存取。
根据本发明,由将内存区域的各个地址空间分配于具有存取权限的至少一位序列(ACR)而达成本发明的目的。
本发明因而提供了一硬件保护机制,其准许在位于相同逻辑地址空间上的不同外部程序的程序部分之间直接通讯。然而,在此个案中,并不需要操作系统的控制。
在本发明的有利改进中,地址空间的每个地址被配以包含存取权限的一位序列。换句话说,就是代码列(code row)与数据字(data word)两者都被配以含有存取权限的一位序列。因此,可将一预期的权限分配于选择性确定的数据区域。
有利的是含有存取权限的该位序列与地址(addresses)或是地址块(address blocks)以及识别符(程序身份)一起储存在该内存的一表格中。在此个案中,可藉地址起点(address beginning)或是地址终点(address end)以及地址块的长度而辨识一地址块。或者可以理解的是藉由一低层与高层的地址来识别一地址块。稍后可将具有存取权限的位序列分配于每个地址块。如果一地址块仅包含一单独的地址,则可将含有存取权限的一位序列分配于每个单独指令或是每个单独地址。
或者,将具有存取权限的位序列提供于每个地址空间或是每个地址。也就是说藉由含有存取权限的该位序列的长度来增长前述所使用的字串(word row)。因此,可自动分配一存取权限至每一地址,也就是每个字。在此个案中,每个地址或是每个地址空间的识别符(identifier)可包含,例如,每个地址的至少一最明显位置或是一地址空间的每个地址。
包含存取权限的该位序列具有一第一与一第二存取权限,该第一存取权限控制在两内存区域间的存取而该第二权限则控制在一内存区域内的存取。假设不同的外部程序是被储存于不同的内存区域,那么可藉一外部程序的程序部分而高选择性地控制存取动作。可因而被拒绝或是接受存取。如果数据与哪一外部程序拥有追索权(recourse)有关时,存取本身可包含一读取授权(read authorization)或是一写入授权(write authorization)。如果一外部程序尝试自另一外部程序调用一代码,那么在此个案中则存在控制权。
在一有利的改进中,在于该位序列中的一第三(数据)存取权控制了在一内存区域内部的存取,也就是说在单一程序之内。此令人联想到专用程序(dedicated program)的第二存取权。特别地是其接着可能用于保护数据,例如启始数据或是变量,使其免于在该专用程序的特定程序部分内被读取或是写入,如果该专用程序的实施代码的第二存取权限尚未设定时。然而,举例来说,其它仅包含那些在实施期间将增加的数据的数据区域可藉所有程序部分而写入或读取。
在另一有利地改进中,提供一权限缓冲器,其包含另外在两个内存区域间存取的权限,在此个案中,可藉由操作系统而被读出或是写入该存取权限。此缓冲器较佳是包含在每个个案中的两个不同内存区域之间受到允许的分配,也就是说受到允许的存取。此改进的实施例介绍一存取表格,其可能是以高速缓冲储存器(缓冲器)的形式出现。藉由识别符(程序身份)或是透过可被用以确定个别识别符的转换表而在该表格中实现所述分配。
因此,一包含多个程序部分的应用A可准予对一程序部分B比,例如,另一程序部分C具有较多的存取权限。为此目的,缓冲器或是储存在此缓冲器中的表格包含,例如,两行以及对应数量的列数,其取决于这些程序部分的复杂度与数量。在一列中,存取一程序部分的一识别符(identifier)以被提供于第一行而将此程序部分中被准予影响该存取的另一识别符被提供于第二行。在此最简单的实现中,这种识别符被视同于程序的身份证(IDs)。然而,可供选择的是,亦可提供一传输表格,其可被用以判定此程序IDs与其它表格项次的不同。
一实现于权限缓冲器中的存取表格可就不同方式而得以实现。在一两行的表格个案中,不同程序部分的每个结合至多被准予发生一次。可供选择地,此表格可包含一些程序部分其与该程序部分的总数一致。被准予的存取接着即藉由增加的行数而被储存于此表格中。
在一更有利改进中,提供一可透过操作系统而专门管理的内存区域。此藉由操作系统而管理的内存区域,其所指即为”文章安全区域(Context Safe Area)”,供应了缓冲储存(buffer-storing)灵敏数据,其不准予透过任何其它外部程序或包含于内的程序部分对其进行读取或写入。此藉由操作系统而管理的内存区域因而组成一被使用的堆栈(stack),特别是,透过一代码,它的第三存取权限仅有特定被选取的程序部分可供使用。
在另一改进中,每个内存区域为了缓冲储存数据而被配以一存取区域,其仅可透过储存于个别内存区域中的程序来控制。此缓冲器(堆栈)也供应了缓冲储存特殊敏感数据,其不论在任何情况下都不为外部程序所能读取。
上述微处理器电路的结构藉由下述有关的方法将会更易理解。
本发明方法中组织存取储存于内存中的数据或程序,所述内存具有至少一微处理器、一供操作系统使用的内存、及至少一供有个别外部程序的闲置编程使用的内存、多个在内存中具有地址空间的内存区域提供给闲置编程、每个地址空间被分配给一识别符(程序ID),且正好一外部程序被提供给每一内存区域,其步骤包含:
a)在一外部程序使用一现行地址的一识别符的当时,确定该外部程序的现行代码指令的一第一程序ID;
b)确定一寻址内存区域的一第二程序ID;
c)比较该第一和第二程序ID;
d)根据步骤c)的比较结果,选择该第一或第二存取权限;
e)评估该存取权限
f1)若该存取或该寻址内存区域的代码指令是被许可的,则继续该程序代码;
f2)若该存取或该寻址内存区域的代码指令是不被许可的,则调用一错误操控程序。
结果,使用例如最明显的位置之类的识别符(之后也称做程序ID),不管该存取是否在同一或不同的内存区域执行,其都能被确定,对不同的外部程序也是如此。根据这项评估结果,也能确定和评估出该第一或第二存取权限。基于这项方法,让其它外部程序能使用特定程序部分(程序库)就变成可行了。
根据本发明的方法的一种实施例,亦即给予识别的第一和第二程序ID,第二存取权限或第三存取权限的选择是根据现行代码指令的存取权限,分配至代码指令的存取权限会列入清单,不管之后是否也允许存取程序代码的存取敏感区域。如果成立的话,接着该被选定的分配于所述地址的第三存取权限会更进一步做评估,且会被限定在不能写入存取而只有读取存取能被执行的范围,这确保了防止敏感数据被现行外部程序的程序库所毁坏的一种保护。
根据本发明的方法的较佳实施例是,在步骤f2之后,将会执行下列步骤将会执行:
g)为一登录而检查权限缓冲器,该登录向被该第二程序ID(PIDaddr)识别的该内存区域指出,具有该第一程序ID(PIDPC)的该内存区域的一被许可的存取;
h)若登录出现在权限缓冲器中,则继续程序代码;
i)若登录未出现在权限缓冲器中,则调用一错误操控程序。
根据本发明的方法的较佳实施例变化是在于,举例来说,利用权限缓冲器使得程序部分B比程序部分C给予更多的存取权限这件事成为可能。
如果一程序部分A存取一程序部分B,首先,会先检查该第一、第二、第三存取权限,如果存取许可,接着就依照各自的权限执行。然而,如果不允许存取,接着就会检查权限缓冲器内的内容是否有一登录与程序部分A至程序部分B的存取有关,如果有类似登录存在,举例来说,一种属于程序部分B的延伸存取权限就会被授予给程序部分A,如果没有类似的登录存在,则会激活一错误操控程序。
根据本发明的方法的较佳实施例是,步骤a)的代码指令是一种转移(jump)指令,接着执行下列步骤:
b)确定一寻址内存区域的第二程序ID;
c)比较该第一和第二程序ID;
d)转移至被调用的地址;
e1)若该第一和该第二程序ID是相同的,则在寻址内存区域继续程序代码;
e2)若该第一和该第二程序ID是不相同的,读取寻址内容中的地址内容;
aa)若地址内容读出并非一登录指令,则调用一错误操控程序;
bb)若地址内容读出为一登录指令,则继续程序代码。
这项步骤确保在程序库之间的转移,仅被允许在先前所规范登录寻址的范围内执行,该范围是利用被规范的登录指令所定义。结果就是,一种未受控制的登录在程序代码的任一位置是不可能发生的,隐蔽被发现的数据和数据的毁坏也因此不可能发生。
根据本发明的方法的较佳实施例是,在该转移命令储存之内的地址是存于缓冲器中。
该缓冲器更佳的是一仅由操作系统管理的储存区,该「文章安全区域」(Context Safe Area)已在前言中提及。
登录指令更佳的是一固定的规定位序列,之后就能使用来识别而不管登录寻址是否有介入。
此外,如果公开的存取缓冲器(堆栈)是可利用为当作代码指令的缓冲器会更好,将该代码指令分配给一第一执行权限。该代码指令乃程序代码,该程序代码并不能存取一程序的敏感数据。
另一方面,较佳是密码指令使用一分配至个别内存区域且仅能由存于个别内存区域的程序所管理的缓冲器,分配第二执行权限于所述密码指令。该缓冲器,又称「敏感堆栈区」(Sensitive Stack),供存于缓冲器的数据使用,该数据在任何情况下都不能被其它程序库或外部程序读取或重新覆盖。
附图说明
藉由以下附图清楚地说明本发明及其好处,其中:
图1呈现了具有两程序A、B的线性地址空间的区分;
图2呈现了一具有存取权限的第一示范实施表格;
图3呈现了一具有存取权限的第二示范实施表格;
图4呈现了一地址区域的基本设计,将具有存取权限的位序列分配于每个地址;
图5呈现了一具有可能存取权限的表格;
图6呈现了根据本发明所得而以程序流程图形式表现的方法;
图7呈现了本发明的微处理器电路的一示范性实施。
具体实施方式
图1举例示出了基于本发明的的问题区域(problem area)。有两个程序A、B座落于一线性地址空间中。假设属于具有关连依电性与固定式指定数据的程序A的程序部分(program parts)或是程序库(program libraries)皆是以一特定方式进行装备,该方式为透过相互调用与相互管理而不至于彼此破坏。在本案图1中,程序A包含一区域,其仅包含一指令码(instruction code),且其可藉代码A而被识别。后者可包含多个相互独立的函数A1、A2。后者可相互调用彼此。再者,经由举例,程序A包含两个数据区域A1与A2,其可包含依电性或是永久数据。所有座落于程序的数据可完全受该指令码或是函数所管理及控制。
程序B则是以一对应方式而建构,只有一数据区域B经由举例而被描述于图1。座落于程序B函数也可相互调用且可管理及控制储存于数据区域B中的数据。
根据本发明,程序A与程序B是藉最明显位置或是位置或是藉个别配以的程序ID(PID)而个别地被设置于不同的预定内存区域中。在此内存区域中,指令码与数据当然不需要被排列于此图所述的方式的区块内。
本发明现在开启了利用程序B的一函数来存取程序A的数据的可能性。经由举例,图1描述两个此形式的地址。当函数B2存取数据区域A1之时,函数B1即存取数据区域A2。根据本发明,使数据可被程序B所使用的程序A可准予其它程序对于特定数据区域的选择性地特殊存取权限。图5描述可能的存取权限。后续内容是可理解的:写入/读取权限(W),一只读(read-only)权限(R)以及无数据存取,这也就是说不可读取一不可写入的权限(-)。将这些权限分配于数据。所谓的执行权限Xn与Xs皆被配于该指令码并包含关于该预期数据区域是否被准予以现行的执行指令来存取的信息。
程序B至程序A的数据存取可藉比较现行执行码指令与存取寻址的程序ID(例如,最明显位置或是位置)的硬件来确认。
根据程序ID的比较,可被确定的是一数据存取是否受到现行的执行程序中的函数或是在不同程序中的函数所影响。根据本发明,将具有存取权限的一位序列分配每个数据区域(代码指令与数据两者)。
此位序列可能是字符列的一部份,如图4所示。除了此寻址与其中所建构的数值之外,如此一字符列亦藉存取权限(ACR)的位序列而被延长。可供选择的是,一表格可能被提供于此内存中,该表格定义了一内存区域并包含被配置该内存区域而具有存取权限的一位序列。在此个案中,此地址区域可更加地藉其低层或高层的地址(图2)或是藉其寻址的开端与地址区块长度(图3)而被定义。
此具有存取权限的位序列包含至少两个存取权限:用以控制在两程序间的存取第一存取权限,以及用以控制在一程序内部的存取的第二存取权限。这种存取权限在位序列(ACR)中的排列次序可依预期而选择。具有有利地存取权限的位序列更包含一用以控制在一程序中的存取的第三存取权限。与第二存取权限相比,包含有敏感数据,例如启始数据(initialization data),的地址区域因而被识别。按顺序地,一代码指令被准予读取或是写入此类数据,而个别代码指令亦需要特别的身份。
包含有图2中的存取权限的位序列具有第一、第二以及第三存取权限,后者以前面所提及的次序而由又至左的输入于行ACR中。例如具有启始数据的数据区域A2因而被准予以一外部程序(第一存取权限)的函数来读取,而在现行程序中的函数载哪时候甚至可具有写入的功能。此被应用在那些藉一普通、第一执行权限(Xn)的代码指令以及被应用在那些具有执行敏感数据(Xs)的授权(第二执行权限)的代码指令。
再者,由图2的表格中可了解的是该数据区域A1准予让当下被执行的程序A(第一、第二以及第三存取权限:W)的外部或内在函数来写入。
必然地,透过被配至于线性地址空间的个别数据区域的存取权限,数据与函数即可以一简单的方式成为对其他程序而言是可存取的。如果这个藉由外部程序进行的预期存取并不被准许,其可能因存取权限的因素而被建立,那么一错误例行性的操控程序即被激活。在这情形下,编程者自己即可保护代码指令与程序的被选取数据以免于受到其它程序的写入存取。
本发明的另一保护机制在于源自于外部程序的函数调用(function call)的控制。为了避免一在程序中的非控制性程序流及可能透过的专用数据的过渡写入而造成的破坏,一在此程序中的函数将被准许仅在被定义的登录寻址(entry addresses)上藉由其它程序而转移(jump)。这些登录寻址藉前述的位序列而辨识。在一转移指令之中,特定的地址是针对预期的位序列而被检测。如果后者并不存在,那么一错误操作程序及被激活。如果预期的位序列被找到,那么所谓的函数即被执行。由于在一程序内的函数可由任何位置调用,因而需储存每个函数调用的返回寻址(return address)。如果一返回指令在函数代码指令的执行过程中偶然出现,那么程序计数器即被设定成预定的储存返回寻址。在程序内的程序流可在一非预期方式下透过返回寻址的操作而修改。
为了解决此一问题,本发明提出了保护此返回寻址免于受到写入存取,是为可免除在一缓冲器的函数调用个案中此返回寻址将受其它程序自动储存,其仅可藉操作系统而存取。在此个案中,其只把那些在一函数调用中受其它程序影响个案的返回寻址储存在一写入保护(write-protected)缓冲器中。经由比较,在相同程序中的一函数的函数调用个案中,使用一常见的可存取缓冲器是可能的。然而,在此个案中,必须确定的是这些返回寻址并不会引出当前的程序。作为另一种比较,可自动储存在函数调用的个案中的返回寻址一中间寄存器(intermediate register),而此寄存器的一旧数值被储存于具有返回寻址的个别堆栈(stack)上。当对于缓冲器的存取是受到操作系统所管理时,对于此中间寄存器的存取必须仅是对于被调用的程序为限制的。
本发明的方法再一次地被描述于图6。由指令高速缓冲存储器(cache)而来的指令被加载CPU而程序ID(PIDpc)则被保存在一内部CPU寄存器中。在下一步骤,一检测被执行以便确定代码指令是否为一转移指令。假使真是这样,所谓的地址(PIDJ)的程序ID即被确定。如果两个程序IDs相对应,便会发生跳至所谓的地址而将继续程序。完全相同的程序IDs代表一转移于此当前活跃的程序中执行一转移。而在具有不同程序IDs的个案中,越过所谓的地址而读取位于其内的地址内容。如果此寻址内容是预期的登录指令,也就是一固定式地前述的位序列,此程序代码即被继续。否则,调用一错误操控程序。
如果代码指令不是转移指令,但却是一具有数据存取的指令,那么由数据高速缓冲存储器(data cache)而来的被调用寻址的程序ID被加载CPU中并被确定。假使程序IDs PIDpc与PIDADDR不相对应,那么被包含于内的必是一内部程序企图尝试的数据存取。必然地,第一存取位经数据高速缓冲存储器(data cache)存取或由一分派的表格而获得确定与评估。如果存取被准许,例如想读取一数据的企图,此第一存取权限组成R或W,然后此程序代码则是继续。如果第一存取位在一上述的范例中既不同意被读取的授权也不同意被写入的授权,一错误操控程序即被调用。
取代此被调用的错误操控程序,进一步的权限检测可在此时接着进行。在一储存于权限缓冲器中的表格里,登录(entries)是针对于是否存有一具有被调用(called)与调用(calling)的程序部分的权限对(right pair)而被检测。如果真是如此,透过举例,一对于具有程序ID PIDADDR的程序部分的延伸存取即被准予对一具有程序ID PIDPC的程序部分进行存取。因此可能准予对一程序部分有较其它在本质上具有相同授权的程序部分具有更多的存取权限。然而,对于敏感存取权限(第三存取位)而言,上述对于权限的划分仍是被维持的。然而,如果在权限缓冲器中未发现具有程序IDs PIDPC与PIDADDR的登录,则开始一错误操控程序。
前述在序言中所提及的权限检测亦可与描述于此的被延伸的权限检测并列发生。当一般或是被延伸权限检测已被证实为确实时,对于被调用的程序的存取即被准允。如果两个权限检测都被证明是负的,那么一错误操控程序即被激活。
在相对应的程序IDs PIDPC与PIDADDR的情况下,一在当下活跃的程序中的存取即被包含。如果代码指令仅具有准予存取一般数据的执行权限,那么在此寻址上的第二存取位即由数据高速缓冲存储器中被读取并被评估。如果代码指令也具有存取敏感数据的权限,其藉第二执行权限(Xs)而辨识,那么由具有存取权限的位序列中而来的第三存取权限即被读取并被评估。在一准予存取的个案中,程序代码将在上述的两个案中得以继续。否则,一错误操控程序即被激活。
透过举例,图7呈现了本发明的微处理器电路的概要结构。微处理器1包含一控制单元3,其经由一控制线路路10而连接至一内存排列(memory arrangement)2。此内存包含一区域21,其为了此操作系统而被提供,且对于个别外部程序而言藉由三个内存区域22、23、24为范例,一受此操作系统管理的缓冲器25,一可被所有程序使用缓冲器26,以及被个别配置于内存区域22、23、24中一的一个且仅受其管理的缓冲器27、28、29(即所谓的”敏感堆栈”(SentitiveStacks))。此微处理器更包含一中央处理器(CPU)6,一指令高速缓冲存储器(instruction cache)4,一数据高速缓冲存储器(datacache)5以及运算单元(arthmetic units)7、8,其各具有一辅助寄存器(auxiliary register)72、82。再者,一评估单元9存在,其与连接该运算单元7、8以及运算/逻辑处理单元(arithmetic/logicprocessing unit)6相连接。
透过运算单元7,当下被执行的代码指令的寻址程序ID被确定且被储存于一辅助寄存器72内。为达此目标,由指令高速缓冲存储器4而来的地址即透过该运算/逻辑处理单元而被供至该运算单元7。在相对的情况下,被调用的寻址程序ID藉运算单元8而确定且被储存于一辅助寄存器82之中。被调用的寻址即被藉运算/逻辑单元6而被供至源自于数据高速缓冲存储器的运算单元8。辅助寄存器72、82的内容被供至评估单元9并在那里相互比较。此引起了是否一存取是在两程序之间或仅是在一程序内部受到影响的说明。最后,被调用的代码指令与位元址的存取权限被供至该评估单元9。利用此信息,评估单元9即可实施图6中所述的程序序列并且可确定一存取是否被允与或是拒绝。结果被供至CPU。
附图标记说明
1微处理器
2内存
3控制单元
4指令高速缓冲存储器
5数据高速缓冲存储器
6中央处理器
7运算单元
8运算单元
9评估单元
10控制线路
21内存区域
22内存区域
23内存区域
24内存区域
25缓冲器
26缓冲器
27缓冲器
28缓冲器
29缓冲器
ACR包含存取权限的位序列
72第一辅助寄存器
82第二辅助寄存器

Claims (20)

1.一种用以组织存取储存在内存(2)中的数据或程序的微处理器电路,所述微处理器电路具有至少一微处理器(1)、一供操作系统使用的内存(21)、及至少一个用来通过不同外部程序而随意编程的内存(22、23、24)、在该随意编程的内存(22、23、24)中具有包含不同地址空间以进行随意编程的内存区域、其中每个地址空间配有一识别符,且所述微处理器具有加载装置(7、8),该加载装置在寻址所述内存区域前,在内存存取中将分配于该内存区域的识别符加载至一第一辅助寄存器(72),以及将所寻址的内存区域的所述识别符加载至第二辅助寄存器(82),并且执行该第一和第二辅助寄存器(72、82)的比较,其中将具有存取权限的至少一位序列(ACR)分配至一内存区域的各地址空间,其中包含该存取权限的该位序列(ACR)与地址或地址区块及存于该内存表格中的识别符储存在一起,且包含该存取权限的该位序列包含一第一及第二存取权限,该第一存取权限控制两内存区域间的存取,而该第二存取权限控制一内存区域内的存取。
2.如权利要求1所述的微处理器电路,其中将包含存取权限的位序列(ACR)分配至一地址空间的每一地址。
3.如权利要求1所述的微处理器电路,其中一地址区块是藉由其地址开端或地址终端及该地址区块长度来辨识。
4.如权利要求1所述的微处理器电路,其中一地址区块是藉由一低层或高层地址来辨识。
5.如权利要求1或2所述的微处理器电路,其中将该包含存取权限的位序列(ACR)提供至每一地址空间或每一地址。
6.如权利要求1所述的微处理器电路,其中在该位序列(ACR)中提供一第三存取权限,该第三存取权限控制一内存区域内的存取。
7.如权利要求1所述的微处理器电路,其中设有一权限缓冲器,所述权限缓冲器包含两内存区域间更进一步的一个存取权限,且该存取权限能进行读出和写入。
8.如权利要求7所述的微处理器电路,其中在每一情况下该缓冲器包含两内存区域间的许可分配。
9.如权利要求7或8所述的微处理器电路,其中利用识别符而在表格中表现该分配或是以翻译表格来表现该分配,该翻译表格是用来确定个别的识别符。
10.如权利要求1所述的微处理器电路,其中设有一由操作系统专门管理的内存区域(25)。
11.如权利要求1所述的微处理器电路,其中分配一地址区域(27、28、29)于每一内存区域以进行缓冲存储数据,所述数据仅能由存于个别内存区域的程序管理。
12.一种用以在一装置内组织存取储存于一内存(2)中的数据或程序的方法,所述装置具有至少一微处理器(1)、一供操作系统使用的内存(21)、及至少一个用来通过不同外部程序而随意编程的内存(22、23、24)、在该随意编程的内存(22、23、24)中具有包含不同地址空间以进行随意编程的内存区域以、将一识别符分配于每个地址空间,及正好在每一内存区域中提供一外部程序,其步骤包含:
a)当在一外部程序使用一现行地址的一识别符时,确定该外部程序的现行代码指令的一第一程序ID(PIDPC);
b)确定一寻址的内存区域的一第二程序ID(PIDaddr);
c)比较该第一和第二程序ID;
d)根据步骤c)的比较结果,选择该第一或第二存取权限(ARC);
e)评估该存取权限;
f1)若该存取或该寻址的内存区域的代码指令是被许可的,则继续该程序代码;
f2)若该存取或该寻址的内存区域的代码指令是不被许可的,则调用一错误操控程序;其中包含该存取权限的位序列(ACR)与地址或地址区块及存于该内存表格中的识别符储存在一起,且包含该存取权限的该位序列包含一第一及第二存取权限,该第一存取权限控制两内存区域间的存取,而该第二存取权限控制一内存区域内的存取。
13.如权利要求12所述的方法,其中假如第一和第二程序ID相同,则根据现行代码指令的存取权限来选择该第二存取权限或一用于调整一内存区域中的存取的第三存取权限。
14.如权利要求12或13所述的方法,其中在步骤f2之后,执行下列步骤:
f)检查包含准许分配的权限缓冲器是否对于一第一程序ID的内存区域以及对于一由第二程序ID辨识的内存区域具有一许可存取;
h1)若登录出现在权限缓冲器中,则继续程序代码;
h2)若登录未出现在权限缓冲器中,则调用一错误操控程序。
15.如权利要求12所述的方法,其中步骤a)的代码指令是一种转移指令,执行下列步骤:
b)确定该寻址的内存区域的该第二程序ID(PIDaddr);
c)比较该第一和第二程序ID;
d)转移至被调用的地址;
e1)若该第一和该第二程序ID是相同的,则在该地址内存区域继续程序代码;
e2)若该第一和该第二程序ID是不相同的,读取该地址内容中的地址内容;
aa)若地址内容读出并非一登录指令,则调用一错误操控程序;
bb)若地址内容读出为一登录指令,则继续程序代码。
16.如权利要求15所述的方法,其中在步骤d)前,在一缓冲器(28...29)中执行储存现行转移指令的地址的步骤。
17.如权利要求15或16所述的方法,其中该登录指令是一固定的规定位序列。
18.如权利要求12所述的方法,其中该缓冲器(25)是由操作系统专门管理。
19.如权利要求12所述的方法,其中被分配有一第一执行权限的该代码指令使用对公众开放的缓冲器(26)作为所述的缓冲器。
20.如权利要求12所述的方法,其中分配有一第二执行权限的代码指令使用一缓冲器(27、28、29),所述缓冲器分配至该内存区域且只能由存于该个别内存区域的程序及操作系统进行管理。
CNB028046161A 2001-02-06 2002-01-25 数据载体的微处理器电路及组织存取内存数据的方法 Expired - Fee Related CN1320465C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE10105284A DE10105284A1 (de) 2001-02-06 2001-02-06 Mikroprozessorschaltung für Datenträger und Verfahren zum Organisieren des Zugriffs auf in einem Speicher abgelegten Daten
DE10105284.7 2001-02-06

Publications (2)

Publication Number Publication Date
CN1491388A CN1491388A (zh) 2004-04-21
CN1320465C true CN1320465C (zh) 2007-06-06

Family

ID=7672999

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB028046161A Expired - Fee Related CN1320465C (zh) 2001-02-06 2002-01-25 数据载体的微处理器电路及组织存取内存数据的方法

Country Status (13)

Country Link
US (1) US7260690B2 (zh)
EP (1) EP1358558B1 (zh)
JP (1) JP3878134B2 (zh)
KR (1) KR100574747B1 (zh)
CN (1) CN1320465C (zh)
AT (1) ATE505763T1 (zh)
BR (1) BR0206992A (zh)
DE (2) DE10105284A1 (zh)
MX (1) MXPA03007023A (zh)
RU (1) RU2266559C2 (zh)
TW (1) TWI259365B (zh)
UA (1) UA74238C2 (zh)
WO (1) WO2002063463A2 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108475319A (zh) * 2015-08-10 2018-08-31 数据输入输出公司 装置出生凭证

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2843465B1 (fr) * 2002-08-06 2005-07-01 Checkflow Procede de communication entre applications destine a securiser l'acces aux donnees d'une application
US7139892B2 (en) * 2003-05-02 2006-11-21 Microsoft Corporation Implementation of memory access control using optimizations
JP2005275629A (ja) * 2004-03-23 2005-10-06 Nec Corp マルチプロセッサシステム、及び、メモリアクセス方法
WO2006052703A2 (en) * 2004-11-04 2006-05-18 Board Of Trustees Of Michigan State University Secure bit
US20060136679A1 (en) * 2004-12-21 2006-06-22 O'connor Dennis M Protected processing apparatus, systems, and methods
JP2007052481A (ja) * 2005-08-15 2007-03-01 Matsushita Electric Ind Co Ltd Icカード用lsi
JP4519738B2 (ja) * 2005-08-26 2010-08-04 株式会社東芝 メモリアクセス制御装置
US7882318B2 (en) * 2006-09-29 2011-02-01 Intel Corporation Tamper protection of software agents operating in a vitual technology environment methods and apparatuses
US7802050B2 (en) * 2006-09-29 2010-09-21 Intel Corporation Monitoring a target agent execution pattern on a VT-enabled system
US8752199B2 (en) * 2006-11-10 2014-06-10 Sony Computer Entertainment Inc. Hybrid media distribution with enhanced security
US8739304B2 (en) * 2006-11-10 2014-05-27 Sony Computer Entertainment Inc. Providing content using hybrid media distribution scheme with enhanced security
EP2113859A4 (en) * 2007-02-21 2010-04-14 Nec Corp COMPUTER, OPERATING RULES APPLICATION METHOD AND OPERATING SYSTEM
JP4939387B2 (ja) * 2007-12-06 2012-05-23 ルネサスエレクトロニクス株式会社 データ処理装置及びアドレス空間保護方法
DE102008029231B4 (de) * 2008-06-19 2010-12-02 Lars Gollub Prozessor mit Ansprungbefehlen zur Überwachung des Kontrollflusses
US20110225654A1 (en) * 2008-08-25 2011-09-15 Mao-Huai Weng Write-Proof Protection Method of a Storage Device
US8682639B2 (en) * 2010-09-21 2014-03-25 Texas Instruments Incorporated Dedicated memory window for emulation address
JP2014174758A (ja) * 2013-03-08 2014-09-22 Denso Corp 処理装置
DE102013218646B4 (de) 2012-09-18 2023-01-19 Denso Corporation Verarbeitungsvorrichtung
JP6323235B2 (ja) * 2014-07-29 2018-05-16 株式会社デンソー 電子制御装置
CN115730286A (zh) * 2022-12-06 2023-03-03 广州众诺电子技术有限公司 数据访问鉴权方法、装置、电子设备和存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5657475A (en) * 1994-05-25 1997-08-12 Intel Corporation System for protecting memory accesses by comparing the upper and lower bounds addresses and attribute bits identifying unauthorized combinations of type of operation and mode of access

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3072127D1 (en) 1980-02-28 1988-12-08 Intel Corp Data processing system
JPS5963097A (ja) 1982-09-30 1984-04-10 Panafacom Ltd アドレス比較によるメモリ・プロテクシヨン方式
SU1156078A1 (ru) * 1983-01-03 1985-05-15 Московский Ордена Ленина И Ордена Октябрьской Революции Энергетический Институт Устройство дл обмена информацией между объектом контрол и электронной вычислительной машиной
JPS6137540A (ja) 1984-07-30 1986-02-22 Kubota Ltd 走行用伝動装置
DE4115152C2 (de) 1991-05-08 2003-04-24 Gao Ges Automation Org Kartenförmiger Datenträger mit einer datenschützenden Mikroprozessorschaltung
US5627987A (en) * 1991-11-29 1997-05-06 Kabushiki Kaisha Toshiba Memory management and protection system for virtual memory in computer system
JPH07302226A (ja) 1994-05-02 1995-11-14 Nec Corp メモリ不正アクセス検出回路
JP3740195B2 (ja) * 1994-09-09 2006-02-01 株式会社ルネサステクノロジ データ処理装置
US5845331A (en) * 1994-09-28 1998-12-01 Massachusetts Institute Of Technology Memory system including guarded pointers
JPH08272625A (ja) 1995-03-29 1996-10-18 Toshiba Corp マルチプログラム実行制御装置及び方法
JPH09160831A (ja) 1995-12-08 1997-06-20 Hitachi Ltd 情報処理装置
JP3638714B2 (ja) 1996-05-23 2005-04-13 三菱電機株式会社 記憶データ保護装置
RU2126168C1 (ru) * 1997-04-02 1999-02-10 Товарищество с ограниченной ответственностью "Коминфор" ("COMINFOR") Способ защиты персонального компьютера от несанкционированного доступа и устройство для его реализации
JP2001005726A (ja) * 1999-04-20 2001-01-12 Nec Corp メモリアドレス空間拡張装置及びプログラムを記憶した記憶媒体
DE19925195A1 (de) * 1999-06-01 2000-12-07 Giesecke & Devrient Gmbh Verfahren für die sichere Verwaltung eines Speichers
DE19937529A1 (de) * 1999-08-09 2001-03-01 Giesecke & Devrient Gmbh Tragbarer Datenträger und Verfahren zur Nutzung in einer Mehrzahl von Anwendungen
US6795905B1 (en) * 2000-03-31 2004-09-21 Intel Corporation Controlling accesses to isolated memory using a memory controller for isolated execution
US6745307B2 (en) * 2001-10-31 2004-06-01 Hewlett-Packard Development Company, L.P. Method and system for privilege-level-access to memory within a computer
US6823433B1 (en) * 2001-11-13 2004-11-23 Advanced Micro Devices, Inc. Memory management system and method for providing physical address based memory access security
US6854039B1 (en) * 2001-12-05 2005-02-08 Advanced Micro Devices, Inc. Memory management system and method providing increased memory access security

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5657475A (en) * 1994-05-25 1997-08-12 Intel Corporation System for protecting memory accesses by comparing the upper and lower bounds addresses and attribute bits identifying unauthorized combinations of type of operation and mode of access

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108475319A (zh) * 2015-08-10 2018-08-31 数据输入输出公司 装置出生凭证
CN108475319B (zh) * 2015-08-10 2022-04-19 数据输入输出公司 装置出生凭证

Also Published As

Publication number Publication date
EP1358558B1 (de) 2011-04-13
JP3878134B2 (ja) 2007-02-07
RU2266559C2 (ru) 2005-12-20
WO2002063463A3 (de) 2003-02-06
US7260690B2 (en) 2007-08-21
EP1358558A2 (de) 2003-11-05
ATE505763T1 (de) 2011-04-15
JP2004526237A (ja) 2004-08-26
KR100574747B1 (ko) 2006-04-28
UA74238C2 (uk) 2005-11-15
MXPA03007023A (es) 2004-12-06
KR20030084921A (ko) 2003-11-01
BR0206992A (pt) 2004-02-10
US20040088509A1 (en) 2004-05-06
WO2002063463A2 (de) 2002-08-15
DE10105284A1 (de) 2002-08-29
DE50215002D1 (de) 2011-05-26
CN1491388A (zh) 2004-04-21
TWI259365B (en) 2006-08-01
RU2003127063A (ru) 2005-01-10

Similar Documents

Publication Publication Date Title
CN1320465C (zh) 数据载体的微处理器电路及组织存取内存数据的方法
KR100734340B1 (ko) 상이한 메모리 기술 특성을 갖는 분할 메모리 장치
JP2727520B2 (ja) メモリカード及びその作動方法
CN112602060B (zh) 计算机处理器中的虚拟机寄存器
US11561904B2 (en) Security configurations in page table entries for execution domains
CN112602062A (zh) 用于正在计算机处理器中执行的指令的域寄存器
CN1511286A (zh) 内存部分的保密方法及装置
CN112639779A (zh) 用于存储器地址从对象特定虚拟地址空间转换成物理地址空间的安全性配置
US20060047959A1 (en) System and method for secure computing
KR100931706B1 (ko) 타겟 보안을 결정하기 위한 물리적 어드레스-기반 보안에관한 방법 및 장치
JP2006048687A (ja) コンピュータシステム資源アクセス制御
CN1243580A (zh) 监控软件程序按规定执行的方法
US20090172332A1 (en) Information processing apparatus and method of updating stack pointer
CN112639732A (zh) 基于超管理器的存在的计算机处理器的动态配置
US8443451B2 (en) Manually controlled application security environments
CN112970019B (zh) 用于加强硬件辅助内存安全的装置和方法
CN100367246C (zh) 使用目标安全的输入输出装置的多表式存取方法及装置
KR101422083B1 (ko) 스크래치패드 메모리 관리 시스템 및 방법
JP3830942B2 (ja) セキュリティ上注意を要する命令(セキュリティ・センシティブ・インストラクション)の実行を制限する方法及び装置
CN1619512A (zh) 微型计算机
CN1842775A (zh) 非易失性存储器的可选择块保护
US12242393B2 (en) Protection system and method for a memory

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
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20070606

Termination date: 20190125