CN102232221B - 用于检查安全代码的运行时完整性的方法和系统 - Google Patents

用于检查安全代码的运行时完整性的方法和系统 Download PDF

Info

Publication number
CN102232221B
CN102232221B CN200980131987.8A CN200980131987A CN102232221B CN 102232221 B CN102232221 B CN 102232221B CN 200980131987 A CN200980131987 A CN 200980131987A CN 102232221 B CN102232221 B CN 102232221B
Authority
CN
China
Prior art keywords
page
instruction
execute permission
entry
side buffer
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
CN200980131987.8A
Other languages
English (en)
Other versions
CN102232221A (zh
Inventor
杰弗里·托德·布里奇斯
托马斯·安德鲁·萨托里乌斯
史蒂文·M·米伦多夫
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN102232221A publication Critical patent/CN102232221A/zh
Application granted granted Critical
Publication of CN102232221B publication Critical patent/CN102232221B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/145Protection 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 virtual, e.g. for virtual blocks or segments before a translation mechanism
    • 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/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • 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/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/54Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by adding security routines or objects to programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/629Protecting access to data via a platform, e.g. using keys or access control rules to features or functions of an application
    • 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
    • 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/74Protecting 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 operating in dual or compartmented mode, i.e. at least one secure mode
    • 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/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • 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/81Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer by operating on the power supply, e.g. enabling or disabling power-on, sleep or resume operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing 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/2105Dual mode as a secondary aspect
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing 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/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明揭示用以提防经设计以用不可信的不安全代码替换经认证的安全代码的攻击并使用CPU的存储器管理单元(MMU)中的现存硬件资源的方法和系统。在某些实施例中,指示存储器中的页先前已被认证为安全的许可条目被维持在翻译旁视缓冲器(TLB)中,且在遇到驻存在外部页处的指令后即刻检查所述许可条目。指示许可是无效的TLB许可条目引起对所存取页的按需认证。在认证后即刻更新所述TLB中的所述许可条目以反映所述页已被认证。作为另一实例,在某些实施例中,维持最近被认证的页中的一页,且在遇到驻存在外部页处的指令后即刻检查所述页。

Description

用于检查安全代码的运行时完整性的方法和系统
相关申请案的交叉参考
本申请案主张2008年6月16日申请的第61/061,738号美国临时申请案的权益,所述申请案以引用的方式并入本文中。
技术领域
本发明的领域涉及对基于处理器的计算系统中的安全代码的认证,且更特定来说,涉及用于使用存储器管理单元(MMU)许可硬件来实现对安全代码的运行时完整性检查的方法和系统。
背景技术
在基于嵌入式微处理器的系统中,例如在移动电话中,系统硬件可提供用于在两种模式中的一者中在微处理器上运行程序的机制,所述两种模式为安全模式和不安全模式。在安全模式中运行的程序被授予存取敏感硬件资源的许可,所述敏感硬件资源例如为用于数字版权管理的密钥寄存器和用于控制无线电硬件的寄存器;在不安全模式中运行的程序被拒绝存取以上资源。
通常,安全代码是由装置的制造者产生和分配,且具备数字签名,所述数字签名保证所提供代码的块已由受信任的授权方产生且可借助授予安全代码的普通许可而安全地执行。然而,如果安全代码驻存在处理器集成电路外部的芯片外存储器中,那么攻击者可设法用不安全的未经认证的代码来替换此芯片外的、安全的、经认证的代码。防止此些攻击的已知方法包含周期性地再认证存储于芯片外存储器中的任何安全代码,或将安全代码分页到芯片上存储器中,就像需求分页(demand-paged)系统在磁盘与主存储器之间交换页那样,以及在每次将页带到芯片上时对其进行认证。
因为与正被认证的数据相比,数字签名大体上相对较短,所以在认证粒度为至少数十字节且可能为数千字节的情况下,对假定安全的代码的区段进行认证可能花费较大量的时间。如果此代码是经周期性认证的,那么可能存在并不尝试执行安全代码的若干较长间隔,且因此在所述间隔期间的任何周期性认证均将消耗时间和能量。另外,与在程序仅需要来自每一页的几行的情况下所必需的代码相比,将安全代码分页到芯片上存储器中可加载并认证更多代码,因此消耗了加载和认证大部分代码所需的芯片上空间和功率。
因此,需要用以认证驻存在芯片外存储器中的程序代码且提防可能尝试用未经授权的代码代替由制造者或其它经授权源所分配的代码的攻击者的系统和方法。
发明内容
本发明揭示可提防经设计以用不可信的不安全代码替换经认证的安全代码的攻击并使用处理器的存储器管理单元(MMU)中的现存硬件资源的方法和系统。某些实施例包括具有处理器的系统,所述处理器可运行存储在存储器中的安全或不安全的指令代码。当处理器存取来自具有安全指令代码的个别存储器页的指令时,实施用以将所述页认证为安全代码的可信源的逻辑。系统还具有存储器管理单元(“MMU”),所述MMU维持存储器页的属性的高速缓冲存储器,所述属性包含用于存储在存储器页中的指令的执行许可。当存储器页经认证时,MMU可设定用于所述页上的指令的执行许可以允许所述指令的执行。
提到此说明性实施例不是为了限制或界定本文揭示的发明性概念,而是为了提供实例以辅助对其的理解。在检视整个申请案后,将明白本揭示案的其它方面、优点和特征,申请案包含以下部分:附图说明、具体实施方式和权利要求书。
附图说明
当参考附图阅读以下具体实施方式时会更好地理解本发明的这些和其它特征、方面和优点,其中:
图1是示范性系统的一部分的图形说明。
图2是说明根据某些实施例的方法的流程图。
图3是说明根据某些实施例的方法的流程图。
图4是说明根据某些实施例的方法的流程图。
图5是说明根据某些实施例的方法的流程图。
图6是说明根据某些实施例的方法的流程图。
图7是说明根据某些实施例的方法的流程图。
图8是说明根据某些实施例的方法的流程图。
图9是说明可包含根据某些实施例的认证系统的实例便携式通信装置的图。
图10是说明可包含根据某些实施例的认证系统的实例蜂窝式电话的图。
图11是说明可包含根据某些实施例的认证系统的实例无线因特网协议电话的图。
图12是说明可包含根据某些实施例的说明性认证系统的便携式数字助理的实施例的图。
图13是说明可包含根据某些实施例的认证系统的实例音频文件播放器的图。
具体实施方式
本文中揭示详细的实施例。然而应了解,所揭示的实施例仅是示范性的,而且不同的实施例是可能的。各图不一定按比例绘制,而且可能夸大或最小化某些特征以展示特定组件的细节。因此,不应将本文中揭示的特定结构和功能细节解释为限制性的,而是仅作为权利要求书的基础并作为用于教示所属领域的技术人员以不同方式使用本发明的代表性基础。
为了防止在安全模式中执行不安全的代码,系统可经配置以仅在系统复位时或在执行可在不安全模式中执行的特殊系统指令后即刻进入安全模式。在任一情况下,均将模式改变为安全的,且将程序执行流传送到已知含有安全代码的固定存储器地址。通常在现存的系统中,以已先前使用或通过安全程序初始化的芯片上只读存储器(“ROM”)(例如,用于启动)或芯片上随机存取存储器(“RAM”)实施存储器。包含于芯片上存储器中的安全程序代码与在芯片外存储器中的情况相比极不易受到恶意窜改,因为芯片上程序存储装置与处理器之间的互连没有暴露于经包封的集成电路封装外部。
在加电复位之后,系统开始在安全模式中执行。其一般执行来自芯片上自举ROM的代码,所述代码已知是安全的,因为其曾由制造者编程且通常在制造之后无法改变。自举ROM中的程序代码的部分是安全代码加载器,所述安全代码加载器可将代码从芯片外存储器加载到芯片上存储器且使用标准数字签名技术来认证所述代码。
一旦安全代码处于芯片上,且芯片经配置以将其视为安全代码,那么所述代码相当安全而不会受到用未经授权代码代替安全代码的尝试的危险。然而,当此系统可能需要的安全程序代码的量超过芯片上存储器的容量时,某些安全代码必定驻存于芯片外存储器中。此代码可如通常那样经认证,但接着可能被在认证完成之后介入处理器与芯片外存储器之间的攻击者改变或替换。
示范性实施例周期性地认证芯片外程序存储器的页,但通过只有当页在使用中且最近未经(不定地)认证的情况下使用与软件组合的现存的MMU硬件来请求对页的认证,而比“盲”算法更有效地进行此认证。此“按需”认证确保了待执行的所有代码均被频繁地不定地认证,但将不执行的代码不会被多余地认证。
应注意,通常在现存系统中,作为具有存储器属性的高速缓冲存储器的翻译旁视缓冲器(“TLB”)存储TLB中的每一条目的“执行”许可。经标记为不允许执行的条目用以解析数据侧存储器存取的物理地址和许可,但处理器在没有执行许可的情况下从页获取和执行指令的尝试将造成异常和中断。用于每一页的页表条目(存储在安全存储器中,用于安全页)将通常指示页是否具有执行许可以及页是安全的还是不安全的。
在某些实施例中,通过保持“最近”已认证的安全的芯片外页的列表来实现跟踪外部页的认证历史。将所述列表保持在芯片上存储器中以防止其受到外部窜改。所述列表使用相对很少的存储器,因为其只是指向每一经认证页的存储器指针且可能只是列表大小。在对外部安全页的认证发生之前,列表起初为空,且起初不存在向这些页授予执行许可的有效TLB条目。
图1说明示范性认证系统100,其包括集成电路芯片105,集成电路芯片105具有处理器110和用于管理TLB 130和芯片上存储器140的存储器管理单元120。认证系统100还包括定时器160和芯片外存储器150,如上文论述,安全代码可能存储于芯片外存储器150中。芯片上存储器140和芯片外存储器160表示可由处理器110存取的一个或一个以上计算机可读媒体。在某些实施例中,定时器160是芯片上的,但不是在所有实施例中均需要如此。
本文描述的认证系统的实施例可安置于各种装置中,例如便携式通信装置、蜂窝式电话、无线因特网协议电话、便携式数字助理以及音频文件播放器,或其它电子系统。
在图2上的流程图200中更完整地说明根据某些实施例的方法。在方框210处,处理器110选择用于获取和执行的指令代码地址。在方框211处,MMU 120在TLB 130中查找此地址,且在方框212处检查以查看是否存在用于TLB 130中的页的有效条目。如果存在有效条目,那么在方框213处,MMU 120检查TLB 130以查看执行是否被准许。如果执行被准许,那么在方框222处,执行流前进到页。
如果执行未被准许,那么处理器110采取呈中断服务例程(“ISR”)形式的中断,且在方框214处使用硬件表遍历机(table walk machine)或软件表遍历例程来实施页表查找。因为TLB 130将不具有用于页的有效条目,或者其将具有无执行许可的有效条目,所以执行未被准许。在页不具有有效TLB条目的情况下,ISR尝试建立一个有效TLB条目。首先,在方框214处,ISR检查页中的执行许可。应注意,安全页表含有用于各种存储器页的执行许可,且驻存在芯片上存储器140中或以类似方式经认证。如果执行未被准许,那么在方框216处调用正常的错误处置程序。如果页表准许执行,那么在方框217处,ISR确定页是否需要认证。用于作出此确定的逻辑可如同使所有代码页均需要认证那样简单,但也可包含对页是否安全并映射到芯片外存储器150中的评估。页表条目可具有告知页是否为安全的位,且可通过了解物理地址和系统存储器映射来推断物理位置。
如果页不需要认证,那么在方框221处,ISR致使MMU 120将新条目置于TLB 130中或更新现存条目(适当时),且接着在方框222处,执行流前进到页。如果页不需要认证,那么在方框218处,ISR尝试使用标准数字技术来认证页。在方框219处,ISR接着作出关于页是否可信的决策。如果为否,那么在方框220处调用正常的错误处置程序。如果页可信,那么在方框221处,ISR致使MMU 120将新条目置于TLB 130中或更新现存条目(适当时),且接着在方框222处,执行流前进到页。
图3展示说明替代实施例的流程图,其中编号对应于图2的方框编号的方框起到与上文论述相同的作用。在此实施例中,如果在方框217处页需要认证,那么ISR接着在方框230处检查驻存于芯片上存储器140中的最近被认证的页列表(“RAPL”)以查看所考虑的页是否已知为可信的。如果页已经在RAPL上,那么不对其进行再认证,且在方框221处,ISR致使MMU 120在TLB 130中建立或更新具有执行许可的条目。在方框222处,执行流接着前进到页。如果页不在RAPL上,那么如上文论述,在方框218处,ISR尝试在具有或没有特殊硬件(未图示)的情况下使用标准数字签名技术来认证页。如果无法对页进行认证,那么在方框220处调用正常的错误处置技术。如果可对页进行认证,那么在方框231处,ISR将页地址写入到驻存于芯片上存储器140中的RAPL上,且在方框221处,在TLB 130中建立或更新被授予执行许可的条目,此后在方框222处,执行流前进到页。应注意,在某些实施例中,处理器110所采用的ISR也是安全的,且因此在早先在系统初始化时其已被认证之后最方便地保持于芯片上存储器140中。执行继续进行,且一旦首次尝试执行来自芯片外存储器150中的每一安全页的指令,ISR便致使MMU 120认证所述页且在RAPL上记录所述页。应注意,如果存储器映射改变,那么存储器管理软件更新RAPL以及TLB 130或使RAPL以及TLB 130无效。
图4展示说明替代实施例的流程图400,其中编号对应于图2和图3的方框编号的方框起到与上文论述相同的作用。在此变体实施例中,如果在方框213处,TLB 130中的条目不准许指令的执行,那么在方框232处,ISR检查RAPL。如果页已经在RAPL上,那么在方框221处执行流前进到页。如果页不在RAPL上,那么方法前进到方框214处的页表查找,且随后根据如上论述的图3上的流程图300的论述而继续进行。
所属领域的技术人员将认识到,上文在流程图200、300和400中描述的方框的执行次序可以多种方式来实施。可改变以上实例中呈现的方框的次序,例如,可对方框进行重新排序、组合和/或将其分解为若干子方框。某些方框或过程可并行执行。
如图5上的流程图500所示,在某些实施例中,处理器110如在方框510处所示设定定时器160。在方框520处,在定时器160期满后,在方框530处,由处理器110采用的响应于所得中断的(安全)ISR致使MMU 120通过使TLB 130中的所有条目的执行许可无效或移除所述执行许可,来使驻存于芯片外存储器150中的经认证页的列表无效。时间周期的长度可任意地短或长,但在某些实施例中,大约为几十秒到几秒,以在对系统存储器进行物理攻击可能花费的时间与使维持经认证代码页列表的开销最少的需要之间权衡轻重。
图6的流程图600说明变体实施例,其中编号对应于图5的方框编号的方框起到与上文论述相同的作用。在此实施例中,ISR致使MMU 120使TBL 130中仅用于驻存在芯片外存储器150中的条目的执行许可无效或移除所述执行许可。
图7的流程图700说明又一变体实施例,其中编号对应于图5和图6的方框编号的方框起到与上文论述相同的作用。在此实施例中,当在方框540处使TBL 130中用于驻存在芯片外存储器150中的条目的执行许可无效或移除所述执行许可之后,在方框550处,ISR致使MMU 120使RAPL无效。
图8上的流程图800说明另一实施例,其中编号对应于图5的方框编号的方框起到与上文论述相同的作用。在此实施例中,在方框560处,ISR致使MMU 120遍历RAPL且搜索TLB 130中的每一页的条目,且如果找到,那么在方框560处使所述条目无效,或者(在某些实施例中)将所述条目复位以保持有效但不具有执行许可。ISR接着在方框570处使RAPL无效。
作为额外且任选的安全措施,由处理器110操作的安全内核可经编程以在对驻存于芯片外存储器150中的安全代码的调用完成且控制即将返回到不安全代码时,使驻存在芯片外存储器150中的可信页的列表无效。也就是说,一旦使用安全的芯片外存储器150的安全任务完成,安全代码便可在不等待定时器160期满的情况下使芯片外存储器150的认证状态无效,以缩短容易受到对安全存储器芯片外存储器150的攻击的时间。
可以不同方式以所属领域的技术人员众所周知的包括硬件、软件或两者的某种组合的程序代码实施本文描述的方法。
包含上述特征的实例装置
图9是说明便携式通信装置900的示范性实施例的图。如图9的概图中所说明,便携式通信装置包含芯片上系统902,芯片上系统902包含数字信号处理器(DSP)904。图9的概图还展示显示器控制器906,其耦合到数字信号处理器(DSP)904和显示器908。而且,输入装置910耦合到DSP 904。如图示,存储器912耦合到DSP 904。另外,编码器/解码器(CODEC)914可耦合到DSP 904。扬声器916和麦克风918可耦合到CODEC 914。
图9的概图进一步说明无线控制器920,其耦合到数字信号处理器904和无线天线922。在特定实施例中,电源924耦合到芯片上系统902。显示器908、输入装置910、扬声器916、麦克风918、无线天线922以及电源924可在芯片上系统902的外部。然而,每一者均可耦合到芯片上系统902的组件。
在特定实施例中,数字信号处理器904包含例如参考图1到图8描述的MMU 962,MMU 962可管理安全代码的认证,以防止经设计以用未经认证的不安全代码替换经认证的安全代码的攻击。
图10是说明蜂窝式电话1000的示范性实施例的图。如所示,蜂窝式电话1000包含芯片上系统1002,芯片上系统1002包含耦合在一起的数字基带处理器804和模拟基带处理器1006。在特定实施例中,数字基带处理器1004是数字信号处理器。如图10的概图中所说明,显示器控制器1008和触摸屏控制器1010耦合到数字基带处理器1004。处于芯片上系统1002外部的触摸屏显示器1012又耦合到显示器控制器1008和触摸屏控制器1010。
图10的概图进一步说明视频编码器1014(例如,逐行倒相(PAL)编码器、顺序传送彩色与存储(SECAM)编码器,或美国国家电视系统委员会(NTSC)编码器)耦合到数字基带处理器1004。此外,视频放大器816耦合到视频编码器1014和触摸屏显示器1012。而且,视频端口1018耦合到视频放大器1016。通用串行总线(USB)控制器1020耦合到数字基带处理器1004。而且,USB端口1022耦合到USB控制器820。存储器1024和订户身份模块(SIM)卡1026也可耦合到数字基带处理器1004。此外,如图10的概图中所示,数码相机1028可耦合到数字基带处理器1004。在示范性实施例中,数码相机1028是电荷耦合装置(CCD)相机或互补金属氧化物半导体(CMOS)相机。
如图10的概图中进一步所说明,立体声音频CODEC 1030可耦合到模拟基带处理器1006。而且,音频放大器1032可耦合到立体声音频CODEC 1030。在示范性实施例中,第一立体声扬声器1034和第二立体声扬声器1036耦合到音频放大器1032。麦克风放大器1038也可耦合到立体声音频CODEC 1030。另外,麦克风1040可耦合到麦克风放大器1038。在特定实施例中,调频(FM)无线电调谐器1042可耦合到立体声音频CODEC 1030。FM天线1044可耦合到FM无线电调谐器1042。此外,立体声头戴式送受话器846可耦合到立体声音频CODEC 1030。
图10的概图进一步说明射频(RF)收发器1048,其可耦合到模拟基带处理器1006。RF开关1050可耦合到RF收发器1048和RF天线1052。小键盘1054可耦合到模拟基带处理器1006。而且具有麦克风1056的单声道耳机可耦合到模拟基带处理器1006。此外,振动器装置1058可耦合到模拟基带处理器1006。图10的概图还展示可耦合到芯片上系统1002的电源1060。在特定实施例中,电源1060是直流(DC)电源,其将功率提供给蜂窝式电话1000的各种组件。此外,在特定实施例中,电源是可再充电DC电池或DC电源,DC电源是从耦合到AC电源的交流(AC)到DC变压器得到的。
如图10的概图中所描绘,触摸屏显示器1012、视频端口1018、USB端口1022、相机1028、第一立体声扬声器1034、第二立体声扬声器1036、麦克风1040、FM天线1044、立体声头戴式送受话器1046、RF开关1050、RF天线1052、小键盘1054、单声道耳机1056、振动器1058和电源1060可在芯片上系统1002的外部。
在特定实施例中,数字基带处理器1004包含例如参考图1到图8描述的MMU 1062,MMU 1062可管理安全代码的认证,以防止经设计以用未经认证的不安全代码替换经认证的安全代码的攻击。
图11是说明无线因特网协议(IP)电话1100的示范性实施例的图。如所示,无线IP电话1100包含芯片上系统1102,芯片上系统1102包含数字信号处理器(DSP)1104。显示器控制器1106可耦合到DSP 1104,且显示器1108耦合到显示器控制器1106。在示范性实施例中,显示器1108为液晶显示器(LCD)。图11进一步展示小键盘1110可耦合到DSP 1104。
快闪存储器1112可耦合到DSP 1104。同步动态随机存取存储器(SDRAM)1114、静态随机存取存储器(SRAM)1116和电可擦除可编程只读存储器(EEPROM)1118也可耦合到DSP 1104。图11的概图还展示发光二极管(LED)1120可耦合到DSP 1104。另外,在特定实施例中,话音CODEC 1122可耦合到DSP 1104。放大器1124可耦合到话音CODEC 1122,且单声道扬声器1126可耦合到放大器1124。图11的概图进一步说明耦合到话音CODEC 1122的单声道耳机1128。在特定实施例中,单声道耳机1128包含麦克风。
无线局域网(WLAN)基带处理器1130可耦合到DSP 1104。RF收发器1132可耦合到WLAN基带处理器1130,且RF天线1134可耦合到RF收发器1132。在特定实施例中,蓝牙控制器1136也可耦合到DSP 1104,且蓝牙天线1138可耦合到控制器1136。图11的概图还展示USB端口1140也可耦合到DSP 1104。而且,电源1142耦合到芯片上系统1102,且将电力提供到无线IP电话1100的各种组件。
如图11的概图中所指示,显示器1108、小键盘1110、LED 1120、单声道扬声器1126、单声道耳机1128、RF天线1134、蓝牙天线1138、USB端口1140以及电源1142可在芯片上系统1102的外部且耦合到芯片上系统1102的一个或一个以上组件。
在特定实施例中,DSP 1104包含例如参考图1到图8描述的MMU 1162,MMU 1162可管理安全代码的认证,以防止经设计以用未经认证的不安全代码替换经认证的安全代码的攻击。
图12是说明便携式数字助理(PDA)1200的示范性实施例的图。如所示,PDA 1200包含芯片上系统1202,所述芯片上系统1202包含数字信号处理器(DSP)1204。快闪存储器1214可耦合到DSP 1204。只读存储器(ROM)1216、同步动态随机存取存储器(SDRAM)1218和电可擦除可编程只读存储器(EEPROM)1220也可耦合到DSP 1204。触摸屏控制器1206和显示器控制器1208耦合到DSP 1204。此外,触摸屏显示器1210耦合到触摸屏控制器1206且耦合到显示器控制器1208。图12的概图还指示小键盘1212可耦合到DSP 1204。
在特定实施例中,立体声音频CODEC 1226可耦合到DSP 1204。第一立体声放大器1228可耦合到立体声音频CODEC 1226,且第一立体声扬声器1230可耦合到第一立体声放大器1228。另外,麦克风放大器1032可耦合到立体声音频CODEC 1226,且麦克风1234可耦合到麦克风放大器1232。图12的概图进一步展示可耦合到立体声音频CODEC 1226的第二立体声放大器1236,和可耦合到第二立体声放大器1236的第二立体声扬声器1238。在特定实施例中,立体声头戴式送受话器1240也可耦合到立体声音频CODEC 1226。
图12的概图还说明可耦合到DSP 1204的802.11控制器1242,和可耦合到802.11控制器1242的802.11天线1244。而且,蓝牙控制器1246可耦合到DSP 1204,且蓝牙天线1248可耦合到蓝牙控制器1246。USB控制器1250可耦合到DSP 1204,且USB端口1252可耦合到USB控制器1250。另外,智能卡1254(例如,多媒体卡(MMC)或安全数字卡(SD))可耦合到DSP 1204。此外,电源1256可耦合到芯片上系统1202且可将功率提供到PDA 1200的各种组件。
如图12的概图中指示,显示器1210、小键盘1012、IrDA端口1222、数码相机1224、第一立体声扬声器1230、麦克风1234、第二立体声扬声器1238、立体声头戴式送受话器1240、802.11天线1244、蓝牙天线1248、USB端口1252以及电源1256可在芯片上系统1202的外部且耦合到芯片上系统1202上的一个或一个以上组件。
在特定实施例中,DSP 1204包含例如参考图1到图8描述的MMU 1262,MMU 1262可管理安全代码的认证,以防止经设计以用未经认证的不安全代码替换经认证的安全代码的攻击。
图13是说明音频文件播放器(例如,MP3播放器)1300的示范性实施例的图。如所示,音频文件播放器1300包含芯片上系统1302,芯片上系统1302包含数字信号处理器(DSP)1304。显示器控制器1306可耦合到DSP 1304,且显示器1308耦合到显示器控制器1306。在示范性实施例中,显示器1308为液晶显示器(LCD)。小键盘1310可耦合到DSP 1304。
如图13的概图中进一步描绘,快闪存储器1312和只读存储器(ROM)1314可耦合到DSP 1304。另外,在特定实施例中,音频CODEC 1316可耦合到DSP 1304。放大器1318可耦合到音频CODEC 1316,且单声道扬声器1320可耦合到放大器1318。图13的概图进一步指示麦克风输入1322和立体声输入1324也可耦合到音频CODEC 1316。在特定实施例中,立体声头戴式送受话器1326也可耦合到音频CODEC 1316。
USB端口1328和智能卡1330可耦合到DSP 1304。另外,电源1332可耦合到芯片上系统1302,且可将功率提供到音频文件播放器1300的各种组件。
如图13的概图中所指示,显示器1308、小键盘1310、单声道扬声器1320、麦克风输入1322、立体声输入1324、立体声头戴式送受话器1326、USB端口1328以及电源1332在芯片上系统1302的外部,且耦合到芯片上系统1302上的一个或一个以上组件。
在特定实施例中,DSP 1304包含例如参考图1到图8描述的MMU 1362,MMU 1362可管理安全代码的认证,以防止经设计以用未经认证的不安全代码替换经认证的安全代码的攻击。
总结
一种计算装置可存取一个或一个以上有形地体现计算机可读指令的计算机可读媒体,所述计算机可读指令在由至少一个计算机执行时致使所述至少一个计算机实施本发明的一个或一个以上实施例。当利用软件时,软件可包括一个或一个以上组件、过程和/或应用程序。另外或作为软件的替代,计算装置可包括使所述装置操作以实施本发明的方法中的一者或一者以上的电路。
本发明的实施例可包括具有与图中所示的架构不同的架构的系统和具有与图中所示的信息流不同的信息流的方法。所展示的系统仅是说明性的,且无意指示任何系统组件、特征或信息流对于任何实施例是必需的或必要的,或限制本发明的范围。已经仅为了说明和描述的目的而呈现了对实施例的以上描述,且不希望以上描述是详尽的或将本发明限于所揭示的精确形式。所属领域的技术人员明白在不脱离本发明的精神和范围的情况下的许多修改和改编。

Claims (16)

1.一种用于检查安全代码的运行时完整性的系统,其包括:
处理器,其经配置以运行安全或不安全的指令代码;
存储器,其经配置以存储具有用于若干存储器页的执行许可的页表,其中可从所述存储器页获取并执行用于所述处理器的指令,且其中所述执行许在指示允许执行与执行不允许执行之间是可设定的;
翻译旁视缓冲器,其经配置以为多个存储器页的每一者保持对应于所述存储器页的有效条目,所述有效条目包括用于所述存储器页的执行许可;
存储器管理单元,其经配置以:
根据所述处理器来设定所述翻译旁视缓冲器中的若干条目的所述执行许可,其中所述存储器管理单元经配置以执行所述翻译旁视缓冲器的给定地址的查找,以确定在若干个有效条目中,所述翻译旁视缓冲器是否具有对应于所述存储器页的有效条目,
其中,响应于所述翻译旁视缓冲器指示具有对应于所述存储器页的有效条目且包含在所述有效条目中的所述执行许可被设定为允许执行的执行许可,所述处理器经配置以执行获取并执行对应于所述给定地址的指令;否则,所述处理器经配置以执行中断服务例程,其包括:
查找所述页表以确定所述存储器页的所述执行许可是否被设定为指示允许执行;
响应于所述页表的查找确定所述存储器页的所述执行许可被设定为指示不允许执行,调用错误执行程序并终止中断服务例程,否则,确定所述存储器页是否是可信的;
响应于确定所述存储器页是不可信的,调用错误执行程序并终止中断服务例程,否则,致使所述存储器管理单元在所述翻译旁视缓冲器中设定对应于所述存储器页的另一个有效的条目;
且其中,响应于执行中断服务例程而不调用错误执行程序,所述处理器经配置以执行获取并执行对应于所述给定地址的指令。
2.根据权利要求1所述的系统,其中所述存储器进一步配置以具有最近被认证的页的列表,其中在确定所述存储器页是否是可信的过程中,所述处理器经配置以包括所述列表的搜索,且如果所述搜索识别在所列表上的所述存储器页,所述处理器经配置以将所述存储器页识别为可信的。
3.根据权利要求1所述的系统,其进一步包括:
会期满的定时器;以及
用以在除非已知一存储器页自从所述定时器的上次期满后已被认证否则阻止执行来自所述存储器页的指令的逻辑。
4.根据权利要求3所述的系统,其中所述定时器和所述处理器是集成电路的部分。
5.根据权利要求1所述的系统,其中所述系统安置于便携式装置内。
6.一种用于检查安全代码的运行时完整性的方法,其包括:
维持具有执行许可条目的翻译旁视缓冲器;
确定存储器页中的指令是否在所述翻译旁视缓冲器中具有有效的执行许可条目;
如果所述指令在所述翻译旁视缓冲器中不具有有效的执行许可条目,那么确定是否准许执行所述指令;以及
如果准许执行所述指令,那么确定是否需要对所述页进行认证,并且如果确定需要进行认证,认证所述页;以及
在所述翻译旁视缓冲器中设定用于所述指令的所述执行许可条目,以指示所述执行许可条目是有效的并准许执行所述指令。
7.根据权利要求6所述的方法,其中认证所述页包括:
确定所述页是否在最近被认证的页的列表上;
如果所述页不在所述最近被认证的页的列表上,那么
认证所述页;以及
将所述页添加到所述最近被认证的页的列表。
8.根据权利要求7所述的方法,其进一步包括:
如果在所述存储器页中的所述指令被确定在所述翻译旁视缓冲器中具有有效的执行许可条目,那么确定所述翻译旁视缓冲器中的所述执行许可条目是否准许执行所述指令;
如果所述翻译旁视缓冲器中的所述执行许可条目不准许执行所述指令,那么确定所述页是否在所述最近被认证的页的列表上;
如果所述页不在所述最近被认证的页的列表上,那么确定是否准许执行所述指令;
如果准许执行所述指令,那么
确定所述页是否需要认证;
如果所述页需要认证,那么
认证所述页;以及
将所述页添加到所述最近被认证的页的列表;
在所述翻译旁视缓冲器中设定用于所述指令的所述执行许可条目,以指示所述执行许可条目是有效的并准许执行所述指令。
9.根据权利要求8所述的方法,其进一步包括:
设定定时器;
在所述定时器期满后即刻在所述翻译旁视缓冲器中设定执行许可条目,以禁止执行与所述执行许可条目相关联的指令;以及
将所述定时器复位。
10.根据权利要求9所述的方法,其中所述翻译旁视缓冲器中的所述执行许可条目是用于驻存在芯片外存储器中的页中的指令。
11.根据权利要求9所述的方法,其进一步包括在所述定时器期满后即刻移除最近被认证的页的列表中的条目。
12.根据权利要求9所述的方法,其中在所述翻译旁视缓冲器中设定执行许可条目以禁止执行与所述执行许可条目相关联的指令包括:
搜索最近被认证的页的列表;
仅在所述指令位于所述最近被认证的页的列表上的页中的情况下才在所述翻译旁视缓冲器中设定所述执行许可条目,以禁止执行所述指令。
13.一种用于检查安全代码的运行时完整性的方法,其包括:
确定是否准许执行在翻译旁视缓冲器中不具有有效的执行许可条目的指令;
确定是否需要对含有所述指令的存储器页进行认证;
认证含有准许执行的所述指令的所述存储器页;
针对准许执行的所述指令而更新所述翻译旁视缓冲器中的所述执行许可条目;以及
在定时器期满后即刻在所述翻译旁视缓冲器中设定执行许可条目以禁止执行指令。
14.根据权利要求13所述的方法,进一步包括在存储器中维持最近被认证的页的列表。
15.根据权利要求14所述的方法,进一步包括在定时器期满后即刻移除所述最近被认证的页的列表中的一个或一个以上条目。
16.根据权利要求13所述的方法,进一步包括仅在与所述翻译旁视缓冲器中的执行许可条目相关联的所述指令位于最近被认证的页的列表上的页中的情况下才修改所述执行许可条目。
CN200980131987.8A 2008-06-16 2009-07-14 用于检查安全代码的运行时完整性的方法和系统 Expired - Fee Related CN102232221B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US6173808P 2008-06-16 2008-06-16
US12/485,089 2009-06-16
US12/485,089 US8639943B2 (en) 2008-06-16 2009-06-16 Methods and systems for checking run-time integrity of secure code cross-reference to related applications
PCT/US2009/050556 WO2011016793A2 (en) 2008-06-16 2009-07-14 Methods and systems for checking run-time integrity of secure code

Publications (2)

Publication Number Publication Date
CN102232221A CN102232221A (zh) 2011-11-02
CN102232221B true CN102232221B (zh) 2015-02-11

Family

ID=41415994

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200980131987.8A Expired - Fee Related CN102232221B (zh) 2008-06-16 2009-07-14 用于检查安全代码的运行时完整性的方法和系统

Country Status (4)

Country Link
US (1) US8639943B2 (zh)
EP (1) EP2329383B1 (zh)
CN (1) CN102232221B (zh)
WO (1) WO2011016793A2 (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130031435A (ko) * 2011-09-21 2013-03-29 주식회사 팬택 휴대용 단말의 암호화 키 생성 및 관리 방법 및 그 장치
CN104335220B (zh) * 2012-03-30 2018-04-20 爱迪德技术有限公司 用于防止和检测安全威胁的方法和系统
US9460018B2 (en) 2012-05-09 2016-10-04 Qualcomm Incorporated Method and apparatus for tracking extra data permissions in an instruction cache
US8910307B2 (en) 2012-05-10 2014-12-09 Qualcomm Incorporated Hardware enforced output security settings
US8819342B2 (en) 2012-09-26 2014-08-26 Qualcomm Incorporated Methods and apparatus for managing page crossing instructions with different cacheability
US20150188710A1 (en) * 2013-12-28 2015-07-02 Simon Johnson Offloading functionality from a secure processing environment
DE102014212018A1 (de) 2014-06-23 2015-12-24 Continental Teves Ag & Co. Ohg Verfahren und Schaltkreis zur Vermeidung von Speicherschutzverletzungen
US10261916B2 (en) * 2016-03-25 2019-04-16 Advanced Micro Devices, Inc. Adaptive extension of leases for entries in a translation lookaside buffer
US10078588B2 (en) 2016-03-25 2018-09-18 Advanced Micro Devices, Inc. Using leases for entries in a translation lookaside buffer
US10678702B2 (en) 2016-05-27 2020-06-09 Advanced Micro Devices, Inc. Using multiple memory elements in an input-output memory management unit for performing virtual address to physical address translations
US11269640B2 (en) * 2017-02-13 2022-03-08 Qualcomm Incorporated Speculative transitions among modes with different privilege levels in a block-based microarchitecture
CN108460293A (zh) * 2017-02-22 2018-08-28 北京大学 一种应用程序完整性多级检查机制
CN107451494B (zh) * 2017-06-30 2020-05-22 杭州旗捷科技有限公司 一种芯片改写设备的数据保护方法、电子设备及存储介质
US11568048B2 (en) * 2020-12-23 2023-01-31 Intel Corporation Firmware descriptor resiliency mechanism

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5757919A (en) * 1996-12-12 1998-05-26 Intel Corporation Cryptographically protected paging subsystem
CN1722046A (zh) * 2004-06-30 2006-01-18 富士通株式会社 安全处理器和用于安全处理器的程序

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0842471A4 (en) 1995-07-31 2006-11-08 Hewlett Packard Co METHOD AND APPARATUS FOR MANAGING RESOURCES UNDER THE CONTROL OF A PROTECTED MODULE OR OTHER PROTECTED PROCESSOR
US6173809B1 (en) 1998-03-25 2001-01-16 Mc Enterprises International, Inc. Safety stanchions
US6735696B1 (en) 1998-08-14 2004-05-11 Intel Corporation Digital content protection using a secure booting method and apparatus
WO2001010076A2 (en) 1999-07-29 2001-02-08 Intertrust Technologies Corp. Systems and methods for protecting secure and insecure computing environments using cryptography
US6795905B1 (en) 2000-03-31 2004-09-21 Intel Corporation Controlling accesses to isolated memory using a memory controller for isolated execution

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5757919A (en) * 1996-12-12 1998-05-26 Intel Corporation Cryptographically protected paging subsystem
CN1722046A (zh) * 2004-06-30 2006-01-18 富士通株式会社 安全处理器和用于安全处理器的程序

Also Published As

Publication number Publication date
EP2329383A2 (en) 2011-06-08
CN102232221A (zh) 2011-11-02
US20090313695A1 (en) 2009-12-17
WO2011016793A3 (en) 2011-07-14
WO2011016793A2 (en) 2011-02-10
EP2329383B1 (en) 2017-08-23
US8639943B2 (en) 2014-01-28

Similar Documents

Publication Publication Date Title
CN102232221B (zh) 用于检查安全代码的运行时完整性的方法和系统
CN103646214B (zh) 一种在配电终端中建立可信环境的方法
KR101029956B1 (ko) 이동 보안 시스템 및 방법
US9507941B2 (en) Method of verifying integrity of electronic device, storage medium, and electronic device
TWI581099B (zh) 積體電路裝置及控制積體電路裝置上記憶體存取的方法
CN107003936B (zh) 具有非可读页的存储器保护
CN102667794B (zh) 用于保护操作系统免于非授权修改的方法和系统
CN109565444A (zh) 安全公共云
US9703346B2 (en) Firmware interface with backup non-volatile memory storage
CN101276389B (zh) 单个物理可信平台模块内的多个逻辑可信平台模块的分离
US20060218649A1 (en) Method for conditional disclosure of identity information
CN106062708A (zh) 在具有地址空间布局随机化的系统中的二进制转化重用
WO2018013275A1 (en) System, apparatus and method for secure monotonic counter operations in a processor
CN113139175A (zh) 处理单元、电子设备以及安全控制方法
CN104217142A (zh) 通过开机密码保护终端的方法及装置
CN113434453A (zh) 片上系统及其操作方法
CN103049694A (zh) 一种智能金融交易终端的核心安全架构实现方法
US20170083604A1 (en) Column wise encryption for lightweight db engine
CN103457974A (zh) 虚拟机镜像的安全控制方法和装置
CN113569245A (zh) 处理装置、嵌入式系统、片上系统以及安全控制方法
JP2004005679A (ja) コンピュータシステム、メモリ構造、および、プログラムを実行する方法
KR20160142319A (ko) 외부 메모리 디바이스 상에 상주하는 칩 제한 명령들을 이용한 부트 시퀀스 수정을 위한 시스템 및 방법
CN104408376A (zh) 一种文档保护方法、设备以及系统
EP2652661A1 (en) Method for changing an operating mode of a mobile device
Zhu et al. Investigating TrustZone: A Comprehensive Analysis

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

Granted publication date: 20150211

Termination date: 20180714

CF01 Termination of patent right due to non-payment of annual fee