安全引擎方法、物联网设备、非暂时性计算机可读存储介质技术

技术编号:20796698 阅读:19 留言:0更新日期:2019-04-06 10:20
本公开涉及一种安全引擎方法、一种物联网设备、一种非暂时性计算机可读存储介质。该安全引擎方法包括在嵌入式设备中提供嵌入式微控制器,该嵌入式微控制器具有内部存储器。该方法还包括在内部存储器中提供安全环境。该安全环境方法通过进行对安全环境存储器的控制来识别引导顺序并且限制对安全环境的用户级访问。进行这种控制可以包括禁用DMA控制器,配置至少一个存储器控制器以用于对安全环境的访问,防止从安全环境之外所取出的指令的执行,并且仅准许执行从安全环境内所取出的指令的执行。然后,安全引擎程序指令被执行以禁用中断,执行至少一个安全操作,以及在执行至少一个安全操作之后重新启用中断。

Security Engine Method, Internet of Things Devices, Non-Temporary Computer Readable Storage Media

The present disclosure relates to a security engine method, an Internet of Things device, and a non-temporary computer readable storage medium. The security engine method includes providing an embedded microcontroller in an embedded device, which has internal memory. The method also includes providing a secure environment in internal memory. The security environment method identifies boot sequence and restricts user-level access to the security environment by controlling the security environment memory. Such control may include disabling the DMA controller, configuring at least one memory controller for access to the secure environment, preventing execution of instructions taken out of the secure environment, and only allowing execution of instructions taken out of the secure environment. The security engine program instructions are then executed to disable interrupts, perform at least one security operation, and re-enable interrupts after performing at least one security operation.

【技术实现步骤摘要】
安全引擎方法、物联网设备、非暂时性计算机可读存储介质
本公开一般地涉及通常在嵌入式应用中所使用类型的微控制器。更具体地但非排他性地,本公开涉及一种被布置以用于在安全环境中的操作的微控制器。
技术介绍
微控制器是一类集成电路,其包含在同一集成电路封装中的微处理器和至少一些存储器。在一些情况下,由微处理器可访问的所有存储器都被包含在集成电路封装内。在其他情况下,存储器的第一部分被包含在集成电路封装中,并且存储器的第二部分在集成电路封装之外并且经由一个或多个数据路径(例如,总线)对微处理器可访问。除了微处理器和存储器之外,微控制器通常还包括至少一个输入/输出(I/O)控制电路。I/O控制电路系统为微控制器提供用于与外界交互的架构。经由I/O控制电路系统,任何数目和任何类型的输入设备可以被电耦合到微控制器以提供用于由微处理器处理的数据。按照这些方面,I/O控制电路系统还可以被布置为将由微控制器所生成的数据传递到外界。微控制器可以在零售设备、消费者设备、工业设备、医疗设备、车辆、以及几乎任何其他类别或
的设备中找到。这些设备可以电池供电或由硬连线电源供电。采用微控制器的设备可以是便携式的、固定式的或其某种组合。没有任何限制,微控制器被用于从所有类型的传感器(例如,温度、时间、湿度、加速度、运动、开关、触发器等)取得数据,以及微控制器被用于向外界(例如,视觉、音频和触觉信号器、开关、触发器等)提供数据。图1是示出常规微控制器架构10的框图。在微控制器10中,微处理器12被布置成用于与存储器14进行数据通信。存储器14包括物理存储器和控制电路系统,控制电路系统用以将信息传递到物理存储器以及从物理存储器传递到微控制器10的其他电路。可选地,存储器14还可以包括使用存储器型接口访问的其他电路。存储器14的物理存储器可以是易失性存储器或非易失性存储器。图1所图示的存储器14包括随机存取存储器(RAM)14a、闪存14b、以及经由存储器型接口所耦合的可选的其他电路14c。每种类型的存储器、RAM14a、闪存14b和可选的其他电路系统14c被定位于微控制器10的板上。如虚线所表示,每种类型的存储器也可以具有在微控制器10的集成电路封装外部的部分。微控制器10的微处理器12和存储器14根据具有所确定的“宽度”的存储器空间来组织。“宽度”通常基于给定微处理器12可以并发地处理多少数据,并且按照这些方面,“宽度”通常由在微控制器10内移动数据的一个或多个总线上并发地传递的“位”的数目来镜像。在图1的图示中,微控制器10具有32位宽的架构。考虑到物理存储器设备中的每个唯一地址通常被布置为存储单一字节的数据,32位宽的架构可以唯一地寻址4千兆字节(4GB)的数据。这种架构在图1中被图示为跨越整个4GB的可寻址空间的存储器映射16。换言之,使用十六进制表示法,存储器映射16的各个地址可以从0x0000-0000到0xFFFF-FFFF(即,以十进制(基数10)表示的0到4,294,967,295)计数。微控制器10的微处理器12可以寻址存储器映射16中的任何位、半字节、字节、半字、字、双字、四字等。如果系统工程师在32位存储器总线上定位设备(例如,存储器、PCI总线、USB主机控制器等),并且如果设备具有其自己的单个或一组32位地址,则微处理器12将能够通过在32位存储器总线上放置表示设备地址的一组数据位来访问设备。在微控制器10中,存储器映射16中的每一个唯一地址由微处理器12可访问。图1的微控制器10包括I/O电路系统18、管理电路20、中断处理电路系统22、直接存储器访问(DMA)电路24、和可选的其他电路(未示出)。I/O电路系统18如本文所描述操作以从外界接收数据以及向外界提供数据。管理电路系统20可以包括任何数目的逻辑模块。逻辑模块可以被布置为包括或以其他方式管理时钟、振荡器、定时器、功率模式、音频接口、模拟/数字特征(例如,模拟到数字控制器(ADC);数字到模拟控制器(DAC))、通信接口、调试接口等。中断处理电路系统22被布置为处理由微处理器12对正常处理的计划和非计划的中断。中断可以与系统时钟同步或异步。计划中断的示例包括到期定时器、某些I/O控制电路输入(例如,按键、串行或并行输入数据等)。非计划中断的示例包括即将掉电中断(imminentlossofpowerinterrupts)、复位(resets)、错误陷阱(errortraps)、看门狗超时(watchdogtimeouts)等。DMA电路系统24操作以将数据从微控制器10中的一个位置复制到另一位置,而不使用微处理器12来执行复制。例如,在RAM14a的一个区域中所存储的数据可以通过加载DMA电路系统24的各种寄存器而被自动复制到RAM14a的另一区域。除了利用适当的值来设置寄存器之外,复制操作自动发生而无需来自微控制器12的任何进一步干预。通常,DMA电路系统24被用于复制大量数据。在另一示例中,其他电路系统14c包括通用串行总线主机控制器。在这个示例中,DMA电路系统24可以被用于在另一电路系统24的USB主机控制器与RAM14a之间复制批量数据。“
技术介绍
”部分中所讨论的所有主题不一定是现有技术,并且不应当仅仅因为其在“
技术介绍
”部分中的讨论而被认为是现有技术。除此之外,除非明确地说明是现有技术,否则对在“
技术介绍
”部分中讨论的或与这样的主题相关的现有技术中的任何问题的识别都不应当被视为现有技术。相反,“
技术介绍
”部分中对任何主题的讨论应当被视为专利技术人对特定问题的方法的一部分,其本身也可能具有创造性。
技术实现思路
本公开中描述的固件架构组合特定机制和策略以执行安全功能,同时保护通用微控制器中的秘密信息,诸如安全密钥。固件创新地结合了IP和所选择的功能以创建安全的工作区域。这允许在单个设备的不同存储区域中运行的独立应用之间共享执行安全操作(例如,密码操作、密钥处理和敏感数据的读取/写入)的一组功能。这样的独立应用的示例是安全固件更新应用、安全引导功能、安全固件更新/安装功能和独立用户应用。对安全操作的访问是通过将安全功能实施为“安全引擎”的一组应用编程接口(API)而进行的。在第一实施例中,一种安全引擎方法包括在微控制器的内部存储器中提供安全环境。安全环境具有由微控制器的微处理器可执行的安全引擎程序指令。该方法还包括限制对安全环境的用户级访问以及识别微控制器的引导序列。在识别引导序列之后,该方法包括禁用可被配置为访问安全环境的存储器的微控制器的所有直接存储器访问控制器(DMA),配置微控制器的至少一个存储器控制器以用于对安全环境的访问,防止微控制器的微处理器执行从安全环境之外取出的指令,以及仅准许执行从安全环境取出的指令。执行各种安全引擎程序指令以作为状态机,这包括:禁用中断,在中断被禁用之后执行至少一个安全操作,以及在执行至少一个安全操作之后启用中断。该方法还包括清除存储器,恢复在识别引导序列之后所禁用的、每个DMA控制器的启用/禁用状态,以及执行用户级操作。在第一实施例的一些情况下,由微控制器的微处理器可执行的安全引擎程序指令存储在非易失性存储器中。在第一实施例的这些或一些其他情况下,微控制器是嵌入式设备中的嵌入式微控制器,并且至少本文档来自技高网
...

【技术保护点】
1.一种安全引擎方法,包括:在微控制器的内部存储器中提供安全环境,所述安全环境具有由所述微控制器的微处理器可执行的安全引擎程序指令;限制对所述安全环境的用户级访问;识别所述微控制器的引导序列;在识别所述引导序列之后:禁用所述微控制器的所有直接存储器访问控制器,所述直接存储器访问控制器可被配置为访问所述安全环境的存储器;配置所述微控制器的至少一个存储器控制器,以用于对所述安全环境的访问;防止所述微控制器的所述微处理器执行从所述安全环境之外所取出的指令;仅准许执行从所述安全环境所取出的指令;执行所述安全引擎程序指令中的各种安全引擎程序指令以作为状态机,所述执行包括:禁用中断;在中断被禁用之后执行至少一个安全操作;以及在执行所述至少一个安全操作之后启用中断;清除存储器;恢复在识别所述引导序列之后所禁用的、每个直接存储器访问控制器的启用/禁用状态;以及执行用户级操作。

【技术特征摘要】
2017.09.29 US 15/721,3621.一种安全引擎方法,包括:在微控制器的内部存储器中提供安全环境,所述安全环境具有由所述微控制器的微处理器可执行的安全引擎程序指令;限制对所述安全环境的用户级访问;识别所述微控制器的引导序列;在识别所述引导序列之后:禁用所述微控制器的所有直接存储器访问控制器,所述直接存储器访问控制器可被配置为访问所述安全环境的存储器;配置所述微控制器的至少一个存储器控制器,以用于对所述安全环境的访问;防止所述微控制器的所述微处理器执行从所述安全环境之外所取出的指令;仅准许执行从所述安全环境所取出的指令;执行所述安全引擎程序指令中的各种安全引擎程序指令以作为状态机,所述执行包括:禁用中断;在中断被禁用之后执行至少一个安全操作;以及在执行所述至少一个安全操作之后启用中断;清除存储器;恢复在识别所述引导序列之后所禁用的、每个直接存储器访问控制器的启用/禁用状态;以及执行用户级操作。2.根据权利要求1所述的方法,其中由所述微控制器的所述微处理器可执行的所述安全引擎程序指令被存储在非易失性存储器中。3.根据权利要求1所述的方法,其中所述微控制器是嵌入式设备中的嵌入式微控制器,以及其中所述至少一个安全操作包括所述嵌入式设备的安全引导。4.根据权利要求1所述的方法,其中所述微控制器是嵌入式设备中的嵌入式微控制器,以及其中所述至少一个安全操作包括对所述嵌入式设备的固件的更新。5.根据权利要求1所述的方法,其中所述至少一个安全操作包括:签名验证功能。6.根据权利要求1所述的方法,其中执行至少一个安全操作的动作包括:访问受保护的隐藏值。7.根据权利要求1所述的方法,其中所述微控制器是嵌入式设备中的嵌入式微控制器,以及其中所述嵌入式设备是可穿戴设备。8.根据权利要求1所述的方法,其中所述微控制器是嵌入式设备中的嵌入式微控制器,以及其中所述嵌入式设备是物联网设备。9.根据权利要求1所述的方法,包括:在识别所述引导序列之后,启用防火墙以保护所述安全环境,其中执行所述安全引擎程序指令的各种安全引擎程序指令以作为所述状态机包括:执行调用门函数以在所述安全环境内打开访问区域。10.根据权利要求9所述的方法,包括:在执行至少一个安全操作之后,执行第二调用门函数以关闭所述安全环境内的所述访问区域。11.一种物联网设备,包括:微控制器,具有微处理器和被配置在所述微控制器内部的存储器,所述内部存储器具有被配置在所述内部存储器中的安全环境,所述安全环境具有由所述微处理器可执行的安全环境配置指令和由所述微处理器可执行的安全引擎程序指令,其中在识别引导序列之后,所述微处理器被指示:经由所述安全环境配置指令以:禁用每个直接存储...

【专利技术属性】
技术研发人员:M·根蒂利M·潘齐卡
申请(专利权)人:意法半导体公司
类型:发明
国别省市:美国,US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1