著录项信息
专利名称 | 用于智能电话或个人数字助理(PDA)的安全模式指示器 |
申请号 | CN200310123929.5 | 申请日期 | 2003-12-18 |
法律状态 | 授权 | 申报国家 | 中国 |
公开/公告日 | 2004-07-07 | 公开/公告号 | CN1510540 |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F1/00 | IPC分类号 | G;0;6;F;1;/;0;0查看分类表>
|
申请人 | 德克萨斯仪器股份有限公司 | 申请人地址 | 美国得克萨斯州
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 德克萨斯仪器股份有限公司 | 当前权利人 | 德克萨斯仪器股份有限公司 |
发明人 | F·B·达汉;B·考尼劳尔特 |
代理机构 | 上海专利商标事务所有限公司 | 代理人 | 谢喜堂 |
摘要
一种数字系统,具有在处理器系统(10)上以无损方式建立的安全模式(第三特许级别),该处理器系统包括:处理器核心、指令和数据高速缓存、写缓冲器以及存储器管理单元。因此,其上提供安全执行模式的平台中,唯一可信的软件是存储在ROM中的代码。特别地,若操作系统(OS)不可信,则所有本地应用程序(14a、14b、14c)都不可信。通过唯一的入口点进入安全模式。可以根据硬件的进入/退出状态的评估动态地进入或退出安全执行模式。提供了安全模式指示器(30)用来告知数字系统的用户设备正处于安全模式。例如,该指示器可以是个小型发光二极管(LED)。若安全模式指示器不活动,则用户不应输入任何保密信息(密码),也不应签署在屏幕上显示的任何内容。
1.一种运行包含图形显示器的数字系统的方法,其特征在于,包括以下步骤: 在所述数字系统上执行应用程序,所述应用程序包括用于执行普通模式操作的普通部分以及用于执行安全模式操作的安全部分; 在图形显示器上显示执行应用程序的结果; 通过以下步骤进入安全模式以执行应用程序的安全部分: 在指令存储器的特定地址处跳变至入口地址; 从入口地址开始执行指令的激活序列;以及 仅当指令的激活序列由中央处理器以预定的顺序完全执行时,进入运行的安全模式;以及 响应执行应用程序的安全部分,激活独立于所述图形显示器的安全模式指示装置; 其中在运行安全模式期间,所述安全模式指示装置仅能由应用程序的可信代码激活。
2. 如权利要求1所述的方法,其特征在于,还包括以下步骤:所述激活安全模式指示装置的步骤包括:执行写入存储映像锁存器的指令;以及其中存储映像锁存器仅在运行安全模式下执行指令时为可被写入。
3. —种数字系统,其特征在于,它包括: 中央处理单元,用于执行指令;公共存储器,连接至中央处理单元的指令总线,用于存储非安全指令,公 共存储器始终可接受中央处理单元存取;安全存储器,连接到中央处理单元的 指令总线用于存储安全指令,该安全存储器只有当安全信号被断言时方可访 问;图形显示器,用于显示所述中央处理单元执行指令的结果; 安全电路,具有用于当运行安全模式建立时断言安全信号的输出,所述安 全电路包括安全状态机,其连接到中央处理单元以监视一组状态信号,并被连 接到指令总线以监视指令存取信号,所述安全状态机具有用于当运行安全模式 建立时断言安全信号的输出;独立于所述图形显示器、并响应安全信号的安全模式指示器,数字系统的 用户可观察到该安全模式指示器;其中安全模式指示器仅能在断言安全信号时通过执行一指令来置于激活模 式下;并且其中所述安全状态机可用于监视位于公共存储器上的指令的激活顺序的执 行,并仅当指令的激活序列由中央处理器以预定的顺序执行时,进入运行的安 全模式。
4.如权利要求3所述的数字系统,其特征在于,所述数字系统包括: 存储映像锁存器,用于响应写指令接收来自中央处理器的数据位信号,存 储映像锁存器的运行由安全信号控制,以使只有在断言安全信号时锁存器方可 写入,存储映像锁存器具有指示存储映像锁存器状态的输出信号;以及安全模式指示器,接收所述存储映像锁存器的输出信号,并负责根据所述 存储映像锁存器的状态指示非安全模式的安全状态。
用于智能电话或个人数字助理(PDA)的安全模式指示器\n本申请要求以下申请的优先权:于2002年1月16日提交、题为"SecureMode For Processors Supporting MMU And Interrupts"(代理人档案编号33762.1EU) 的欧洲专利申请第02290115.1号和于2002年6月30日提交、题为"Secure Mode For Processors Supporting MMU And Interrupts"(代理人档案编号33762.2EU) 的欧洲专利申请第02100727.3号。\n技术领域\n本发明一般涉及微处理器,尤其涉及用于支持安全软件服务的安全机制的 改进。\n发明背景\n微处理器是通用处理器,为了执行其上运行的软件,它提供高指令吞吐量, 并能根据所涉及的特定软件应用程序而具有广泛的处理要求。已知许多不同 类型的处理器,其中微处理器仅是一个实例。例如,数字信号处理器(DSP) 被广泛使用,尤其在特定的应用中,诸如移动处理应用。DSP—般被配置来 优化有关应用程序的性能,并且为了实现该目的,它们采用更特殊的执行单 元和指令装置。尤其在诸如移动电信等应用中(但不是唯一的),期望能在 使功耗保持尽可能低的同时提供不断提高的DSP性能。\n为了进一步改善数字系统的性能,可以互联两个或多个处理器。例如,在 数字系统中DSP能够与一通用处理器相连。当通用处理器管理总控制流时, DSP执行数字密集的信号处理算法。这两个处理器共享内存进行通信并且传 递数据。直接存储器存取控制器(DMA)通常与处理器相关联,以把传输数 据块的负担从一个存储器或外围源转移到另一个上,从而改善处理器的性能。\n通常提供操作系统(OS),通过控制资源并安排执行各种的程序模块或\n任务而管理数字系统。在有几个处理器的系统中,每个处理器都有一独立的OS\n将是十分便利的。通常,os假定它控制所有系统资源。许多os不是以与另 一个os共享内存和资源的方式而设计的。因此,当两个或多个os结合在单\n个系统中时,就会产生资源分配问题。存储器或外围设备的使用矛盾对于系 统运行会产生可怕的后果。\n大部分处理器基于两个级别的特许构建: 一个用于OS,而另一个用于用\n户任务。曾经提议过第三个特许级别,但在当前的CPU中很少有实现。\n少数操作系统被鉴定为对于特定的金融或安全关键的应用程序而言是安全 的。某些通用操作系统声称内建了安全性,但他们的脆弱性是众所周知的。\n可以采用硬件机制来改善安全性。例如,题为"Security Bit For Designating The Security Status Of Information Stored In A Nonvolatile Memory"的美国专禾!j 4590552揭示了一种确保数据存储安全的机制,通过提供可被长期设置的一个 或多个安全位以阻止芯片外资源访问芯片内存储器,从而保护存储在芯片内 存储器中的代码或数据。尽管如此,操作系统的误操作有可能压制此类安全 方法。\n在为诸如m-commerce (移动贸易)或e-banking(电子银行)等安全应用程 序等类别启用的智能装置上,尤其用户输入保密信息,诸如在键盘上输入密 码,或者签署显示在屏幕上的讯息。当用户这样做时,除了完全信任其装置 的完整性之外别无选择。然而,用户无法发现黑客或病毒己经侵犯了其装置 的安全框架。\n发明内容\n因而,有必要改善系统的安全性。总体上,以本发明的形式,数字系统具 有在处理器系统上以无损(non-invasive)方式建立的安全模式(第三级别特 许)。因而,其上提供安全执行模式的平台中唯一可信的软件是存储在集成 芯片ROM中的代码。提供了数字系统用户可见的指示器装置,其中指示器装 置仅能在运行安全模式时被可信程序代码激活。\n在一实施例中,通过唯一的入口点进入安全模式。可以根据全部硬件进入\n/退出状态的评估动态地进入或退出安全执行模式。 附图说明\n仅作为例子,以下结合附图描述依照本发明的特定实施例。在整个附图中, 相同的标号表示相同的部件,而除特别说明外,附图涉及图l所示的数字系 统;其中:\n图l是数字系统框图,它在具有多个处理器核心的巨型单元(megacdl) 中包括本发明的实施例;\n图2是图1所示的系统中的MPU块的框图,说明了使用所选硬件块与通 过安全状态机(SSM)增强的受保护软件执行环境组合的分布式安全;\n图3是说明图2所示ROM内容与把ROM分离成公共部分和安全部分的 电路的框图;\n图4是说明访问图2所示系统上安全运行模式的流程图; 图5是说明图2所示系统中安全状态机运行的状态图;以及 图6说明了包含本发明实施例的无线个人数字助理。\n除非有其他指明,否则不同图示和表格中相应的数字和符号表示相应的部件。\n具体实施方式\n与用户交换诸如密码或屏幕上显示的讯息之类的敏感信息,必须在处理装 置处于安全模式下时进行操作。提供安全模式的装置与方法在欧洲专利申请 EP02100727.3、申请日2002年6月30日、题为"Secure mode for processors supporting MMU and Interrupts"的相关专利申请中进行了描述。安全模式的充 分描述包含在此,以使本领域的熟练技术人员能理解它的运作。\n在安全模式下,限制了对诸如键盘、显示器之类物理用户接口的访问,以 通过可信驱动确保应用程序的安全。事实上,通过安全模式锁定对键盘和显 示器的访问不足以确保与用户交换的安全。现在本发明的发明者已发现需要 有个装置,用来向用户指明OS调用适当可信的键盘或显示器驱动器,也就是\n存储在安全模式下的驱动器,且进入安全模式才执行。否则,若病毒/黑客在 智能装置上成功下载了一个伪造的驱动器,用户就将无法获知他不应信赖他 的装置。\n根据本发明一方面,执行安全应用程序的智能装置除了具有显示器和键区 之外,还将具有安全模式指示器。该指示器将告知用户其装置是否处在安全\n模式。例如,该指示器可以是个小型LED。若安全模式实施全不活动,则用 户不应输入任何保密信息(密码),也不应签署屏幕上显示的任何内容。若 用户在指示器不活动时被提示输入他的pin码,则用户就会了解他的装置已 经被侵入,且该装置不能提供安全操作。\n为了实现该特性,在图1的数字系统中提供了仅能在安全模式下被访问的 通用输入输出(GPIO)锁存位154。该安全GPIO锁存器被用来驱动安全指示 器LED 155。在来自安全ROM/SRAM(只读存储器/静态随机存取存储器)的安 全模式下运行的可信键盘和显示器驱动器负责管理安全GPIO锁存器。\n由于非安全应用软件可以在非安全模式下访问这些装置,因此安全模式指 示器必须独立于键盘和显示器。特别地,屏幕上显示的诸如"现在输入密码"之 类的讯息通常是不可靠的。此外,由于计算机黑客代码可以访问屏幕,因此 屏幕上显示的符号或讯息,诸如指明安全运作的锁定符号,也是不可信的。 安全模式指示器必须可靠地指示装置运行在安全模式下,且仅能在装置于安 全模式下运行时进行指示。用户应被告知除非安全模式指示器是活动的,否 则不要输入任何保密信息,诸如密码,也不要签署屏幕上显示的任何内容。\n图1是在具有多个处理器102、 104的巨型单元(megace11)100中包含了本 发明实施例的数字系统框图。为了说明清楚起见,图l仅示出与理解本发明 实施例有关的巨型单元100部分。数字信号处理器(DSP)的一般结构细节是 众所周知的,且可以很容易地在其他地方找到。例如,授权给Frederick Boutaud 等人的美国专利5,072,418对DSP进行了详细描述。授权给Gary Swoboda等 人的美国专利5,329,471详细描述了如何对DSP进行测试和仿真。下面详细说 明了与本发明实施例有关的巨型单元100的部分细节,以使微处理器领域的 普通技术人员能制造和使用本发明。 例如实现于专用集成电路(ASIC),但是 它在其他形式的系统中也有用武之地。ASIC可能包含一个或多个巨型单元 (megacdl),而每个巨型单元都包含与设计库提供的预先设计的功能电路相 结合的自定义设计的功能电路。\n巨型单元100中提供了利用所选硬件块与受保护软件执行环境结合的分布 式安全系统。这种分布式安全系统是在移动电话环境下解决电子商务(e-commerce)和移动商务(m-Commerce)安全问题的一种方案。安全问题包括 以下内容:\n——机密性(Confidentiality):确保仅通信方能够理解传输的信息内容;\n——完整性(Integrity):确保信息在传输期间没有被改变;\n——验证(Authentication):确保其他通信方即为所主张者;\n——不否认(non-repudiation):确保发送人不能否认发送讯息;\n— —用户保护:假名和匿名;\n-防克隆保护(Protection against Clone)。\n当今的操作系统(OS)不能认为是安全的。某些操作系统声称是安全的, 然而它们的复杂性使其难以实现或保证。对于电子商务以及其他安全交易来 说,需要安全的软件层。它对于现有操作系统必须是透明的,它在支持实时 中断和操作系统支持的同时,也要支持存储器管理单元(MMU)和高速缓存 的使用。\n毫无疑问,纯软件的解决方案并不够稳健,这些问题只能通过硬件和软件 结构的良好结合来解决。开发了本实施例中所使用的安全模式是为了使总安 全方案具有硬件稳健性,此安全模式是基于以下假定的:\n——操作系统OS是不可信的;\n——在平台上运行的所有本地软件都是不可信的:\n——唯一可信的软件是在安全程序ROM/SRAM中存储的代码;\n——高速缓存可以因性能原因而启动;\n——为实时原因启用中断;\n——为了灵活性会启用MMU。\n以上假定得出以下结果。首先,操作系统存储器管理是不可信的。也就是,\n存储器管理单元(MMU)的操作和操作系统定义的转换表是不可靠的。安全 模式应能抵抗MMU的任何错误,并能抵抗操作系统定义的转换表可能被侵犯 的事实。第二,操作系统定义的中断矢量表与中断服务例程是不可信的。有 必要在安全模式下实现特定的中断管理,以使安全模式能够抵抗中断的任何 错误使用,并能抵抗中断矢量表与中断服务程序(ISR)可能被侵犯的事实。第 三,诸如环境保存、高速缓存排空(flush) 、 TLB排空、写缓冲器耗尽(draining) 等的OS基本操作的完整性是不可信的,且安全模式不应依赖它们。最后但非 最不重要的是,在安全模式下需要禁止所有的测试、调试和仿真能力。\n在本实施例中,为处理器102建立了一个分区的"安全模式",使它在执行 安全操作时能够如同单独的"虚拟安全处理器"一样运作。安全模式可以被看作 处理器102的第三特许级别。它的活动依赖于专用硬件的存在,建立起保护 敏感信息不受非可信软件访问的环境。安全模式是提供断言专用安全信号152 而设置的,该信号在系统中传播,并在可信软件能够访问的资源和任何软件 都可用的资源之间建立分界线。\n安全模式的活动同样也依赖于安全软件的适当控制。安全软件被存储在安 全程序ROM/SRAM之中,并从那里执行。不可能存在这样的流程:即非可信 代码或者能够欺骗硬件进入安全模式,或者使可信代码执行它不应该执行的 任务。若合理地建立了分界线,则应该没有办法利用正常的处理器操作把信 息从分界线内部移动到外部,除非通过受控的操作。注意到正常的处理器操 作包括执行有潜在缺陷的"用户代码"。\n安全软件层是可信的并且被存储在安全存储器中。它通过软件序列进入, 该软件序列向硬件安全状态机(SSM) 150证明其在保护MMU不被修改时, 通过穿过一个单一、安全的网关到达安全模式而确实执行了安全码。当安全 软件在安全模式下执行时,中断矢量改变方向,以使安全控制软件在必要时 触发从安全模式正确的退出。重定向过程对于操作系统来说是透明完成的, 并且阻止任何安全数据在传输后变得可见。\nGPIO锁存器154是个存储映像锁存器,除了它仅能被安全软件访问并激\n活之外,它以常规方式运行。指示器155耦合至GPIO 154,且响应GPIO而 照亮。通过把一个逻辑值写入锁存器154而开启指示器155,诸如逻辑l;而 通过把互补逻辑值写入锁存器154来关闭,诸如逻辑0。核心103可以通过外 围总线信号156访问锁存器154。尽管如此,GPIO锁存器154的操作由受SSM 150控制的安全信号152限定。这样,GPI0 154仅当安全信号152处于指明 处理器102正在执行安全软件例程的活动状态下时才能够被写入。在本实施 例中,指示器155是个发光二极管(LED);然而,在其他实施例中,能够在 两个不同状态:开启和关闭间转移的任意类型的指示器。例如,可以使用不 同类型的灯,诸如氖灯、等离子灯等等。可以使用各种机械装置,诸如旋转 显示不同颜色以指明开启/关闭状态的盘,或移动指示器以表示开启/关闭状态 的传动装置等等。在其他实施例中,这两个状态可以通过纹理、高度、温度 等表面变化来指明,以使有视障或其他生理缺陷的人能够察觉出任一状态。 例如,在盲文显示装置(brail display device)上结合提供触觉指示器。在另一 实施例中,指示器能够提供音频指示;例如,放音表示安全模式状态是开启 的;然而,因为语音是非安全音频源能够模仿的,因此需要有所注意。\n再次参照图1,巨型单元100包含了一个带有32位核心103的微处理器 (MPU) 102和一个带有数字处理系统(DSP)核心105的数字处理系统(DSP) 104,两者共享被称为层2 (L2)存储器子系统的存储器113的一个块。话务 控制块IIO接收来自连接到主接口 120b的主处理器的转移请求、来自控制处 理器102的请求、以及来自DSP104中存储器访问节点的转移请求。话务控 制块交错这些请求并把它们提交给共享存储器和高速缓存。同样通过话务控 制块访问共用外设116 。直接存储器存取控制器106能够在诸如芯片外存储 器132或芯片内存储器134的外部源与共享存储器之间转移数据。各种专用 处理器或硬件加速器108依不同应用程序的要求也包含在巨型单元中,通过 话务控制块与DSP和MPU相互作用。\n在巨型单元的外部,连接第3层(L3)控制块130响应来自DSP和MPU 的明确请求接收来自内部话务控制块110的存储器请求。芯片外(offchip) 存储器132和/或芯片内存储器134被连接至系统话务控制器130;这些被称\n为L3存储器子系统。帧缓冲器136和显示装置138被连接至系统话务控制器 以接收用于显示图形图象的数据。主处理器120a通过系统话务控制器130与 外部资源互动。连接至话务控制器130的主接口使主机120a得以访问外部存 储器和其他连接至话务控制器130的装置。这样,不同的实施例中主处理器120 可以在层3或层2上连接。 一组私有(private)外设140被连接至DSP,而另 一组私有外设142被连接至MPU.\n图2是图1所示的系统中MPU102的框图,阐明了利用所选硬件块与由 安全状态机300加强的受保护软件执行环境相结合的分布式安全。在数字系 统的另一个实施例中,例如,处理器102可能以单一处理器存在,或耦合到 一个或多个其他处理器用以协同操作。\n安全模式是处理器102的"第三特许级别"。倘若设置了适当的执行环境, 该安全模式就提供了硬件装置用于限制对处理器子系统(CPU) 200的安全资 源的访问。安全模式围绕CPU200建立,CPU200包含处理器核心、数据和 指令高速缓存204、 206以及MMU210。本实施例的安全特征对于CPU 200最 好是无损型的,所以在另一实施例中可以使用另一处理器来代替本处理器。\n安全硬件分为两种:控制安全信号的逻辑电路,以及受安全模式限制的硬 件资源。前者主要由安全状态机(SSM) 300组成。SSM 300负责监控进入安 全模式的条件,断言/去断言安全信号302,以及检测安全模式侵犯。在检测 到安全侵犯时,通过断言连接至复位电路306的侵犯信号304以指示侵犯存 在,使系统复位。安全状态机监控来自处理器200外部接口的各种信号330, 特别是由指令总线上的处理器取得的地址。安全状态机与来自入口序列的低 层汇编码紧密耦合。它对由被监控信号上的入口序列产生的事件做出反应。\n当断言安全信号302时,进入安全模式。当断言安全信号时,它传播到整 个系统以对访问安全资源解锁。仅处理器200能够在安全模式下访问安全资 源。由于设计限制,在本实施例中DSP104和DMA106未被授权在安全模式 下访问安全资源。本实施例中的安全资源包括:安全ROM310 (整个ROM 的一部分)、安全SRAM312,以及各种安全外设316a、 b。对GPIO锁存器 318的访问同样由安全信号302限定,以致只有在安全信号302处于指明\nCPU200在执行安全软件例程的活动状态时,GPI0 318方能被写入。安全状 态机(SSM) 300在某些条件下断言安全信号302。在安全模式下,CPU 200 仅能执行存储在安全ROM 310或安全SRAM 312中的代码。任何运行存储在 这些可信位置以外的代码的任何企图将由断言(asserting)信号304生成"安 全侵犯",这将引起复位电路306进行系统全局复位。\n该ROM被分成两个部分:受安全位保护且仅能在安全模式下被访问的 ROM安全部分;以及始终可存取且包含引导区的ROM公共部分。公共ROM 311也包括各种安全程序并参与总体安全方案。\n安全存储器RAM312是存储安全工作数据的地方(安全栈、安全全局数 据、安全堆)。安全程序RAM312 (任选)专门用于执行非常驻安全码。非 常驻安全码首先在安全程序RAM中从外部存储器装置被下载,接着在执行前 被验证。\n安全存储器SRAM中的少量字节地址用寄存器(register) 306来实现, 寄存器306由全局复位信号复位。这些寄存器遮蔽少量正常SRAM存储单元, 且可被用作普通SRAM地址。仅有的区别在于这些寄存器/SRAM存储单元会 被复位成全1的值。在安全模式下有极少能被复位且因此具有已知的初始值 并仅能在安全模式下被更改的变量是十分有用的。例如,该特征可用于:检 测安全模式的首次进入;设置适当的退出模式值exit—mode (正常、例外、侵 犯);检测电源开启等等。在另一实施例中,这些可复位的值能够以其它方 法实现,诸如通过将寄存器放置在不覆盖SRAM的地址空间,通过把复位信 号连接到SRAM中的所选的存储器单元等等。\n没有软件方式能断言安全信号302或修改状态机的行为。SSM与活动序 列紧密耦合,活动序列将结合图5进行更详细的描述。SSM监控来自处理器 200的物理指令地址总线330以及从各种资源接收到的各种入口条件信号321-327。来自处理器200的指令接口信号331和数据接口信号333也受到监控并 且定义在指令总线330和数据总线332上分别进行何种类型的总线处理。\n安全模式通过分支到公共ROM内被称为单一入口点的特定地址而进入, 该地址是SSM中严格代码的(hardcoded)地址。入口点是"活动序列"的起\n始地址。活动序列是存储在与安全状态机耦合的公共ROM中的一块代码,并\n确保满足安全模式的某些入口条件。其他入口条件直接通过监控特定的入口 条件信号来断定。\n活动序列在由安全状态机监控的某些信号上生成所定义的事件序列。这些 事件确保进入安全模式所要求的条件得到满足。安全状态机认可这种模式并 断言安全信号。在安全模式下,安全状态机继续监控少许信号以检测安全模\n式侵犯并确保依照安全模式退出程序。只要发生侵犯,SSM就释放安全信号, 并断言安全侵犯信号304。典型的侵犯是试图获得ROM/SRAM地址范围之外 的指令。\n活动序列存储在公共ROM中。它确保满足安全模式入口条件。环境设定 序列存储在安全ROM中。它为安全模式设定适当的执行环境,其中可以启用 高速缓存、中断以及MMU。退出序列存储在安全ROM中。它加强遵照安全 模式退出程序。它通过分支路BRANCH或在中断下,提供了退出安全模式的 安全方法。它还在退出时保护安全ROM和RAM的"保密"内容\n仍然查看图2,安全控制寄存器319仅在安全模式下可作为存储映像寄存 器被访问,且被用于启用/禁用测试、调试和仿真等可能会被黑客用来破坏安 全但对限定和调试系统硬件和软件又必需的装置。例如,信号321代表的一 位启用/禁用了程序开发所用的嵌入式轨迹宏单元(ETM) 350的运行。信号322 启用/禁用了处理器200上的JTAG接口的运行。信号323启用/禁用处理器200 上的调试接口 (dbgl/F)的运行。\n安全条件寄存器320在非安全模式下可作为存储映像寄存器被访问,且通 过控制可被黑客用来破坏安全的各种资源的运行模式而被用于在安全模式下 设定某些安全条件。安全条件寄存器所发出的信号也被状态机监控。例如, 直接存储器存取(DMA)启用信号324被用于启用能够访问安全存储器312的 DMA控制器(未示出)。\n在本实施例中,提供了扫描链接口 (Scanl/F)用于测试,并且可以提供 安全侵犯点。然而,处理器200不能提供任何方法来禁用扫描链的输出。为 了避免修改处理器200的内部信号,外部提供了扫描门342,用于在等于处理\n器200内最长扫描链的多个时钟周期年屏蔽处理器200的扫描输出。这种掩 蔽方案在复位和装置每次从功能模式转向测试模式时初始化(计数器复位), 扫描在外部测试设备(未示出)的控制下启用。\n提供外部中断处理机360以接收一组中断信号并把这些信号复用成随后被 处理器200接收的两个中断信号362、 363。中断处理机360具有全局屏蔽位 364,该屏蔽位可由软件设定并允许软件全局禁用处理器的所有中断操作。只 要设定全局屏蔽位且中断信号362、 363不活动,中断控制器就断言掩蔽信号 325。在断言了屏蔽信号325之后,就不能再断言由中断控制器输出的中断信 号362、 363,直到全局屏蔽位被软件清除为止。SSM 300监控屏蔽信号325 以确定中断是被启用还是被屏蔽。\n从外部存储器引导系统是计算机黑客阻挠安全的惯用方式。在本实施例 中,禁止外部引导。此外,SSM300监控在试图进行外部引导时断言的引导 信号327。然而,在程序开发期间,允许运行外部引导以便使调试软件更好是 有益的。保护电路(fuse circuit) 328来区分开发装置与生产装置。装置类型 信号326受SSM 300监控,因此能在开发装置上提供不严格的安全模式。就 开发装置而言,SSM300忽略引导信号327。\n图3是说明图2的ROM内容以及把ROM分成公共部分和安全部分的电 路的框图。公共ROM 311以及安全ROM310在本实施例中是以单一ROM实 现的。在另一实施例中,它们可以是分开的,不影响此处的发明特征。地址 解码器电路370a是解码到ROM的访问的解码器电路370的一部分。为SRAM 和其他指令或数据总线连接的装置提供了类似的电路。\n每当响应分别对应于公共ROM地址或安全ROM地址的地址解码信号406 或407而在指令地址总线330a上断言对应于ROM 310、 311的地址时,就启 用驱动电路400从而以在指令总线330b上提供所请求的指令数据。\n如上所述,若在没有处于安全模式时访问安全资源,则提供伪虚拟 (dummy)数据。若安全ROM被访问且安全信号没有被断言,则门电路404 监控安全信号302以及安全ROM解码信号407并使驱动电路400传递空数据。 安全模式\n图4是说明对图2的系统上的安全运行模式进行访问的流程图,下面将更 为详细的进行描述。步骤500、 502、 504代表了在处理器200上以正常、非 特许级操作执行的应用程序。有时,对特许级操作内服务的操作系统(OS) 做出调用502,如步骤510、 512、 514、 516所示。 一旦被调用,OS保存状态 并在步骤510中切换至特许模式,在步骤514中进行特许的操作,在步骤516 中恢复状态,并且在步骤504返回非特许的应用。这两个操作级别是众所周 知的。\n在步骤512中,进行测试以确定所请求的服务是否用于安全操作,若是, 则系统将进入被称为安全模式的第三安全级。在步骤520中,OS驱动器进行 内务处理任务,为进入安全模式而把系统置于适当的状态。这包括屏蔽中断、 设定安全条件寄存器320来禁用会引起安全性风险的各种资源、以及确认存 储器管理单元210是否被启用、对应于活动序列的页表项是否被标注为"不 可高速缓存"。这将在以后进行更详细地描述。\n在步骤522中并再次参考图3,在位于公共ROM311内的入口序列412 内跳变到入口点410。入口序列是一块代码,每次在平台上运行任何其他类型 的安全码之前,应用程序调用"安全服务"时都要执行它。该序列也在从己 经中断安全码执行的例外事件返回时执行。入口序列从ROM中定义的地址处 开始,该地址是严格代码的且被称为"入口点"。入口序列由两部分组成: 安全信号活动序列413和安全模式环境设定序列414。\n活动序列的目的是接管处理器200的执行流程,并确保其不能被任何其他 非可信代码抢先占取。在入口序列这部分的某些点处,断言安全信号302以 进入安全模式,并解锁对安全资源(ROM、 SRAM、外设等等)的访问。\n环境序列414的目的是为安全码执行设定环境。有利的是,通过设定安全 环境,有可能地安全启用程序和数据高速缓存并处理中断例外。\n安全信号活动序列413位于公共ROM中,而安全模式环境设定序列位414 于安全ROM中。要求入口序列的总代码大小(部分l+部分2)小于1千字节, 以使其能被映射在1千字节的页面中,这是本实施例的MMU转换表中的最小\n存储区段。这样,入口序列虚拟地址就不能在两个区段上映射,以便在入口 序列执行期间使处理器先占某些判决。运行入口序列期间,入口序列的存储 器页面是不可高速缓存的或指令高速缓存被禁用也是非常重要的。\n安全转换表(STT) 420和安全中断矢量表(SIVT) 430将在后面描述。\n若1千字节代码大小对于特定实施例被认为过于有限,则可以在活动序列 413末端禁用MMU,并在环境序列414末端重新启用它。这样,1KB的限制 就仅应用于活动序列了。\n再次参照图4,在步骤524中,SSM 300检査活动序列的正确性,这将结 合图5有更为详细的描述。若活动序列没有被正确执行,SSM 300便在步骤540 中断言有侵犯信号,且系统被复位。在步骤526中,通过执行环境设定序列414 建立安全的环境。这在后面有更详细的描述。\n一旦建立了安全的环境,就在步骤528中像非特许应用程序最初请求的那 样从安全码416开始执行所请求的安全操作。依照本发明一方面,安全码416 包含步骤528.1中仅在安全模式下时写入GPIO锁存器318以打开安全模式指 示器319的指令。然后,在步骤528.2中,安全码416会要求用户提供保密信 息,接着在步骤528.3中通过再次写入GPIO锁存器而关闭安全模式指示器。 在步骤528.4中完成附加的安全处理。应该理解,这个特殊序列只是为了说明。 例如,在打开安全模式指示器之前可能进行其它安全处理。再如,安全模式 指示器可能先打开一会儿,接着关闭一会儿,然后再打开。根据应用程序的 要求可能执行无数其他序列。\n在安全操作完成后,在步骤530中,退出安全模式的正常方式是跳变到安 全ROM退出序列418中的"正常退出序列"。正常退出序列的目的是遵照安全 模式退出程序,并确保退出时保护"保密"内容。正常退出序列可以位于安全 ROM中的任何地方。在安全状态机中没有严格代码的地址校验。\n当处于安全模式时,SSM 300继续监控信号321 —327和331。 SSM可以 根据这些信号发现安全侵犯。只要发生安全模式侵犯,SSM就检测到侵犯、 释放安全信号并生成安全侵犯,如弧线542处所示。侵犯会引起装置的全局 复位。安全侵犯使SSM进入只能通过复位退出的阻塞状态。以下侵犯可被检\n测到:侵犯l一在整个ROM和RAM地址范围之外的地址处获取指令;侵犯 2 —处理器200被复位;侵犯3 —启用测试、仿真、调试特征。\n当发生例外时,处理器200跳变到中断矢量表(ITV)中相应的例外矢量, 它从此处重新定向到特定的中断例程。IVT—般由OS管理,且不位于安全 SRAM中。因此,它的内容不受保护,也不可信。此外,从安全的角度来说, 允许处理器直接跳变到例外矢量是不可接受的,原因有两个:(1)这不符合 总体安全方案;安全存储器地址范围之外的"跳变"被认为是安全侵犯;(2) 高速缓存和处理寄存器充满了"保密"内容,需要在释放安全位及执行非安全代 码之前清除。为了在安全模式中允许中断而提供了安全IVT。\n图5是更详细说明安全状态机300操作的状态图。在ROM中活动序列的 执行期间,为进入安全模式,安全状态机在某些点断言安全信号。这部分入 口序列的目的是在安全状态机探测到的信号上生成定义的事件序列。这些事 件确保能满足设置安全信号所需的条件,它们被SSM跟踪。"条件"信号在整 个活动序列中被监控。若不满足任一入口条件,或者条件在活动序列结束之 前失效,则安全状态机将会转换到侵犯状态630,并断言安全侵犯信号304。 在SSM监控的入口条件背后有两个关键目标:(1)处理器200正在获取,最 重要的是正在执行活动序列代码;(2)可信代码已经完全接管了 CPU的执行 流程,且在安全信号设定之前或之后,除了通过受控操作,没有东西能够抢 先占取而不被检测到。\n活动序列是以在指令地址总线上生成唯一模式(pattern)的方式建立的。 这个模式由活动序列代码的(物理)地址值与相对时刻组成,这些地址会在 总线上出现。不过,这个模式的建立独立于存储器系统的访问等待时间。实 际的活动序列总线模式从仿真获得并在SSM中被严格代码。因此,SSM完全 符合活动序列总线模式。 一般而言,活动序列的最后指令是分支指令(branch instruction),除了高速缓存的清除指令和高速缓存禁用指令以外,活动序列 内的所有其他指令都是NOP指令。\n在进入安全模式并断言安全信号之后,入口条件无须有效,且SSM也不 继续测试它们。然而,SSM不断探测各种信号以检测安全模式侵犯,这在后\n面会有描述。安全模式退出条件直到有效进入安全存储器后才被测试。\n再次参照图5,状态600是空闲状态,期间SSM监控地址总线330以寻 找入口序列的入口点地址(ESA[EP])。 一旦检测到入口点地址,若满足所有的 入口条件,则SSM转换到状态601;若没有满足,则转换到侵犯状态630,其 中断言侵犯信号304。\n通过检测正确的入口序列地址和相应的入口条件信号,601 — 615的每一 个状态必须顺次遍历,否则SSM转换到侵犯状态630。若该序列被正确遍历, 则进入安全模式状态620,并断言安全信号302。\n例如,为了从状态600转换到状态601,入口点指令的地址必须与所有正 确的条件信号一起出现。为了转换到状态602,下一个出现的地址必须是下一 个顺序指令的地址,否则,SSM转换到侵犯状态630。类似地,活动序列的每 个地址的必须出现以转换到状态602 — 615,最后转换到安全模式状态620。 错误的地址、地址时序、或条件信号中的错误转变都会导致转换到侵犯状态 630,如弧线601a所示。类似地,若状态信号指示任一活动序列访问都是可高 速缓存的,则活动序列将中止。\n在安全模式状态620中并且在有效检测到安全程序(ESA[SR])的地址、表 明进入安全存储器之后,若SSM检测到公共ROM的地址,则SSM转换回空 闲模式600,如弧线621所示。若SSM检测到ROM或SRAM外的地址,或 者如果被监控信号内的一错误的变换指明安全侵犯,则SSM转换到侵犯状态 630,如弧线622所示。\n在活动序列期间,无须禁用指令高速缓存;指令的不可高速缓存性(non-cacheability)足以确保入口序列的稳固。不过,使高速缓存禁用会消除基于高 速缓存清除机制的恶意使用的黑客企图。\n安全模式环境设定序列\n再次参照图4,步骤526中,通过执行来自安全ROM的环境设定序列414, 建立了安全环境。该序列的目的是为安全码执行设定合适的环境。安全环境 允许启用程序和数据高速缓存、实时中断和潜在的MMU。其中某些步骤专用\n于安全模式操作,而某些操作应在调用活动序列之前,被OS正常地执行。如 前面所讨论的,安全模式不能依赖于基本的OS操作。因此,环境设定序列需 要进行某些环境转换操作(context switch operation),诸如对安全模式完整性 基本的高速缓存清除、TLB清除等。\n系统实施例\n图6说明了在移动通信装置中使用本发明的集成电路的示范性实现,如移 动式个人数字助理(PDA) 10,它带有显示器14及位于显示器14外围的集成 输入传感器12a、 12b。数字系统IO包括图1的巨型单元(megacell) 100, 该巨型单元通过适配器(未示出),作为MPU专用外设142,连接到输入传 感器12a、 b。可以使用输入笔或指通过输入传感器12a、 b把信息输入到PDA。 显示器14通过类似于帧缓冲器136的局部帧缓冲器连接到巨型单元100。显 示器14以重叠窗口提供图形和视频输出,例如MPEG视频窗14a,共享文本 文件窗14b和三维空间的游戏窗14c。\n射频(RF)电路(未示出)连接到天线18,由巨型单元100驱动,作为 DSP专用外部设备140,且从那里提供无线网络链路。连接器20连接到电缆 适配器一调制解调器(未示出),并由此连接到巨型单元100,作为DSP专 用外设140,为在诸如办公室环境中静态使用期间使用提供有线网络链路。短 距离无线链路23还"连接"到耳机22,并由连接到巨型单元100作为DSP 专用外部设备140的低功率发射机(未示出)驱动。同样,麦克风24被连接 到巨型单元100,这样,就可以在无线或有线网络上利用麦克风24和无线耳 机22与其他用户交换双向音频信息。\n巨型单元100为通过无线网络链路和/或基于有线的网络链路发送和接收 的所有音频和视频/图形信息提供代码和解码。有利的是,巨型单元100还提 供了安全的操作模式。如在此所描述的,安全模式指示灯30受锁存器控制, 仅能通过巨型单元100在安全模式下执行时执行的代码来开启。因此,当为PDA 上执行的应用程序提供敏感数据是安全时,安全模式指示灯30给PDA 10的 用户指示。这样,PDA10为解决移动电话环境中的电子商务(e-commerce)\n和移动商务(m-commerce)的安全问题提供解决方案。\n当然可以预见,很多其它类型的通信系统和计算机系统也能从本发明中受 益。这类其他计算机系统的实例包括便携式计算机、智能电话、网络电话、 等等。因为安全性也是桌上型和线路供电计算机系统和微处理器应用所关心 的,特别是从可靠性角度来看,因此同样可以预料本发明也能为此类线路供 电的系统提供益处。\n数字系统100的制造过程包括多个步骤,其中把各种杂质数量注入到半导 体衬底中,并使杂质扩散到衬底内所选的深度,以形成晶体管装置。形成掩 模以控制杂质的放置。多层传导性材料和绝缘材料被淀积并蚀刻以使各装置 相互连接。这些步骤在洁净室环境中进行。\n生产数据处理装置的成本的重要部分涉及测试。在晶片形态,个别装置被 加偏到运行状态,而测器测试对基本运作功能性。接着,晶片被分成独立的 方块,这些块可以作为芯片直接销售,或封装出售。封装之后,完成的部分 偏置到运行状态,并测试运作功能。\n正如在此所用的,术语"被施加"、"被连接"、"连接"表示电学上的连接, 其中附加元件在电连接路径上。"关联"表示控制关系,比如,受关联端口控制 的存储器资源。术语"断言(assert)、断言(assertion)、去断言(de-assert)、 去断言(de-assertion)"用于避免在处理高态活动和低态活动信号的混合物时 产生混淆。"断言"用于表明信号是活动的,或逻辑上为真。"去断言"用于表明 信号是不活动的,或逻辑上为假。\n这样,数字系统就具有以无损(non-invasive)方式在处理器系统上建立 的安全模式(第三特许级别),该处理器系统包含处理器核心、指令和数据 高速缓存、写入缓冲器以及存储器管理单元。其上提供安全执行模式的平台 上,唯一可信的软件是存储在ROM中的代码。特别是如果OS不可信,则所\n有的本地应用程序都不可信。提供了安全模式指示器来告知用户该装置处于 安全模式。\n尽管本发明是参照说明性实施例描述的,然而该描述不可被理解为是限\n定性的。参照本描述,本发明的各种其他实施例对于本领域的技术人员来说\n是显而易见的。例如,通过利用在此描述的安全模式,可以对如RISC、 CISC、\n宽字节、DSP等所有形式的处理器类型进行改进。\n在另一实施例中,安全环境可能会扩大以允许在几个启动器资源间共享安全\n资源,比如DSP。在这样的实施例中,安全状态机监控每一个启动器资源,以加\n强上述的安全性原理。\n在各种实施例中,可以提供安全硬件的不同补件,包括各种外部设备,如看 门狗定时器、加密/解密硬件加速器、随机数生成器(RNG)等;以及各种I/O装 置,诸如键盘、液晶显示器(LCD)、触摸屏等。\n再次参照图l,在另一实施例中,可在DSP104中使用第二 SSM以处理器102 上类似的方式,为DSP 104上执行的安全软件层生成安全信号。在该实施例中, 安全信号的总线型式可以被包括在话务控制总线IIO中,以使由处理器102或DSP 104启动的单个处理能够访问安全资源,譬如依照各自SSM生成的安全信号的某 些共享外部设备116。\n再次参照图l,在另一实施例中,安全信号可延伸到巨型单元100外,以 致可以以安全方式运行层3的资源。\n活动序列、环境设定序列和退出序列可根据不同实施例的要求而改变。例 如,不同的指令流水线长度与不同高速缓存线路长度的要求活动序列有所不 同。在另一实施例中,步骤520中进行的内务管理任务可以包含在活动序列 中。\n在另一实施例中,进入安全模式的装置可与在此描述的SSM不同。 一旦 以任意方式获得了安全的操作模式,那么访问仅在安全模式下可用的安全模 式指示器,向用户指示系统正在安全模式下运行。\n在另一实施例中,提供除GPIO锁存器之外的装置以激活安全模式指示 器。例如,可以使用安全控制寄存器319的一个位。类似地,也可以使用安 全装置316a或316b之一的一个位。基本要求是装置仅在安全模式下被访问。\n在另一实施例中,安全模式指示器可能直接对安全信号产生响应,以使处 理器处于安全模式的全部过程中,安全模式指示器都是活动的。然而,在这\n类实施例中,用户可能会感觉指示器活动的时间太多了,并因此容易忽略它, 因此这不是首选的实施例。\n再次参照图2,安全装置316a可以是用于从用户接受敏感信号的输入装 置。这样,仅当系统在安全模式下运行时,才启用该输入装置接收敏感信息。 图2试图表示安全装置是片芯内的。这对所有的实施例并非都是必要的。它 也可以是芯片外的装置,例如单独的指印识别装置。对该外部设备的访问可 限于安全模式。 一般而言,除非是被加密的,否则与安全外部设备交换的数 据不必是保密数据。外部安全装置在其运行时对用户来说是可见的。若该装 置不能在安全模式以外运行,则将再次使黑客难以欺骗用户。\n再次参照图2,可以任选地提供篡改检测装置380。篡改检测装置380的 输出380.1提供一指示,表明包含CPU 200的包装的访问覆盖已被修改。接着, 信号380.1被SSM 300监控,以致若检测到篡改时,将无法进入安全模式。 类似地,若在安全模式中发生篡改,SSM 300就通过信号380.1检测到它,并 如前面所讨论的,退出安全模式,显示一个侵犯信息。篡改检测装置也可以 是外部的芯片外装置。篡改检测装置的输出可以被SSM监控,或被记录在安 全GPIO中。把对GPIO的访问限于安全模式使得黑客不可能清除它。这样, 安全软件在下一次进入安全模式时会看见它。\n因此可以预计,所附权利要求书将包括实施例的任何此类修改,它们都落 在本发明的真实范畴和精神内。
法律信息
- 2008-01-23
- 2006-03-01
- 2004-07-07
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
1999-07-21
|
1993-01-26
| | |
2
| |
2002-09-18
|
2000-05-29
| | |
3
| | 暂无 |
1996-09-18
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |