一种提高SOC系统安全的总线监视器及其实现方法.pdf

上传人:1520****312 文档编号:1281320 上传时间:2018-04-12 格式:PDF 页数:14 大小:1.90MB
返回 下载 相关 举报
摘要
申请专利号:

CN201010540994.8

申请日:

2010.11.12

公开号:

CN101989242A

公开日:

2011.03.23

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 13/362申请日:20101112|||公开

IPC分类号:

G06F13/362

主分类号:

G06F13/362

申请人:

深圳国微技术有限公司

发明人:

刘华预; 王良清

地址:

518000 广东省深圳市高新技术产业园南区高新南一道国微大厦2F

优先权:

专利代理机构:

深圳市康弘知识产权代理有限公司 44247

代理人:

胡朝阳;孙洁敏

PDF下载: PDF下载
内容摘要

本发明公开了一种提高SOC系统安全的总线监视器及其实现方法。所述的总线监视器设置于系统总线和系统控制单元之间,包括配置单元、条件判断单元、有效数据选择单元、硬件算法单元和比较输出单元。本发明方法可以在不影响总线访问效率的前提下实时对总线行为进行监视,检测系统所关注的特定总线访问序列行为是否因为意外、篡改、恶意故障攻击发生改变;如果特定的总线访问序列行为发生改变,本发明将向系统提出警告,由系统采取适当的安全措施预防安全隐患,防止机密信息因为系统安全操作未正确进行而泄漏。

权利要求书

1: 一种提高 SOC 系统安全的总线监视器, 其特征在于, 所述的总线监视器设置于系统 总线和系统控制单元之间, 包括配置单元、 条件判断单元、 有效数据选择单元、 硬件算法单 元和比较输出单元, 其中 : 所述的配置单元用于设置和存储总线控制信号需要监控的配置信息, 并更新总线监视 器的状态 ; 所述的条件判断单元根据配置单元的配置信息, 结合总线控制信号给出的当前总线行 为信息, 判断是否需要启动监视操作, 当需要监控时, 向有效数据选择单元生成控制信号 ; 所述的有效数据选择单元根据条件判断单元的控制信息和配置单元的配置信息, 从总 线访问的总线地址、 总线主设备号、 总线读数据或写数据及配置单元中的密钥选择出总线 监视待计算的数据, 并送入硬件算法单元, 通知硬件算法单元对待计算数据进行运算 ; 所述的硬件算法单元根据配置单元、 条件判断单元发送的控制信号对有效数据选择单 元输出的待计算数据进行运算, 并将最终计算结果发送到比较输出单元 ; 所述的比较输出单元将硬件算法单元输出的结果与配置单元预置的条件进行比较, 当 不一致时触发报警信号, 并发送至系统控制单元。
2: 根据权利要求 1 所述的总线监视器, 其特征在于 : 还包括超时检测单元, 该单元实时 监视总线控制信号是否超时, 并当出现超时情况时, 向系统控制单元发送信号。
3: 根据权利要求 1 所述的总线监视器, 其特征在于 : 所述的配置单元包括控制寄存 器, 用于实现对总线监视器工作行为的不同控制 ; 监视起始地址寄存器, 用于存储总线监视 器开始监视的总线访问起始地址 ; 监视长度寄存器, 用于配置总线监视器监视的有效总线 访问的次数 ; 至少一个主设备寄存器, 用于配置监视指定总线主设备的总线访问 ; 预置密 钥寄存器, 用于存储预置密钥 ; 期望监视结果寄存器, 用于存储期望的监视结果 ; 超时寄存 器, 用于存储总线的最大等待周期, 当总线等待周期超过该寄存器配置的值时向系统控制 单元发出警告信息。
4: 根据权利要求 3 所述的总线监视器, 其特征在于 : 还包括一个总线状态寄存器, 用于 主设备实时查询总线状态。
5: 根据权利要求 3 所述的总线监视器, 其特征在于 : 还包括一个故障地址寄存器, 用于 总线监视器监视到总线超时后, 将总线超时的地址存储起来, 供主设备查询。
6: 根据权利要求 1 所述的总线监视器, 其特征在于 : 所述的总线访问中满足监视条件 的待计算内容包括但不仅限于总线地址、 总线主设备号、 总线读数据或写数据、 配置单元输 出的预置密钥 ; 有效数据选择单元根据配置单元输出的配置信息选择这些内容的部分或全 部作为待计算的数据。
7: 根据权利要求 1 所述的总线监视器, 其特征在于 : 所述的硬件算法单元选择 CRC 算 法、 HASH 算法, 或对称加密算法对待计算数据进行运算。
8: 一种提高 SOC 系统安全的总线监视方法, 其特征在于包括下列步骤 : 步骤 1. 在配置单元中设置总线监视过程中需要的配置信息 ; 步骤 2. 条件判断单元根据配置单元的配置信息, 结合总线控制信号给出的当前总线 行为信息, 判断是否对总线进行监视, 并向控制有效数据单元生成控制信号, 向硬件算法单 元发送待计算数据 ; 步骤 3. 有效数据选择单元根据条件判断单元的控制信息, 从总线地址、 总线主设备 2 号、 总线读数据或写数据、 配置单元输出密钥中选择出的待计算数据, 并将待计算数据发送 至硬件算法单元, 指示硬件算法单元对其进行运算 ; 步骤 4. 所述的硬件算法单元根据有效数据选择单元发送的控制信号对待计算数据按 配置单元选定的算法进行运算, 并将最终计算结果发送到比较输出单元 ; 步骤 5. 所述的比较输出单元将硬件算法单元输出的结果与配置单元预置的期望结果 进行比较, 当不一致时触发报警信号并发送至系统控制单元 ; 步骤 6. 当总线监视器完成一次有效的访问运算后, 其内部的计数器自动递增, 并返 回步骤 2 重复进行监视 ; 当总线监视器完成配置单元监视长度寄存器定义的有效访问次数 后, 根据控制寄存器的控制方式可以停止监视, 或等下一次满足监视起始条件的总线访问 发生时, 重复进行监视。
9: 根据权利要求 8 所述的方法, 其特征在于 : 所述的配置信息包括监视器使能位、 触发 模式控制位、 监视条件、 重复监视使能控制位、 超时监视控制位、 监视算法选择位、 待计算数 据选择位、 预置密钥、 监视起始地址、 和 / 或期望结果。

说明书


一种提高 SOC 系统安全的总线监视器及其实现方法

    【技术领域】
     本发明涉及 SOC 系统芯片安全, 特别涉及一种提高 SOC 系统安全的总线监视器及 其实现方法。背景技术
     随着社会信息化进程的加快, 信息的安全性越来越成为关注、 研究的重要课题。 安 全 SOC 芯片在信息社会的各个领域中应用广泛, 其主要功能包括对用户关键数据的安全存 储、 电子签名、 身份鉴别以及数据加解密等。安全 SOC 芯片是其所处的系统安全控制的核 心, 因此其本身的安全性至关重要。正因为安全 SOC 芯片中数据的重要性, 各种针对安全 SOC 芯片的攻击手段层出不穷。目前对应于各种攻击手段的安全策略得到了深入的研究与 实现。安全初始化、 存储加密保护、 存储完整性校验、 总线保护等是最常见的安全策略。这 些安全策略的目的都是期望安全芯片按一种安全的方式进行运行, 但它们的缺陷是侧重保 护的行为, 对保护的效果关注不够。 而且很多安全措施只局限于某一独立的保护行为, 比如 存储器保护可以限制对存储器特定区域的保护。很多时候, 系统的安全保护机制需要由一 系列操作来完成, 比如执行一段不可分割的特定安全程序, 安全保护机制需要这个安全程 序能完整地不可被中止或插入其它程序地被执行。目前安全 SOC 芯片针对数据传输通道上 序列操作行为是否异常的检测保护措施研究不多。 有经验的攻击者能利用程序漏洞修改安 全芯片的运行行为, 其中常见攻击方式包括跳转指令攻击、 中断攻击、 堆栈溢出攻击等攻击 方式 ; 或直接进行故障攻击破坏安全初始化或安全程序的执行, 导致芯片运行异常。 为了弥 补这个缺陷, 在传统的安全保护策略下, 应增加对这些安全策略最终的所体现总线序列行 为进行检测。很可惜, 直接对数据的传输通道系统总线通过一定的安全算法进行实时监控 的方案暂时空白。
     因此, 如何对数据的传输通道系统总线进行实时监控, 如何判断总线序列行为是 否正常, 以达到保护安全 SOC 芯片的目的是安全 SOC 芯片亟待解决的问题。 发明内容 本发明的目的是解决上述现有技术中存在的问题, 提出一种提高 SOC 系统安全的 总线监视器及其实现方法。
     本发明通过监视安全配置过程或安全程序运行过程在 SOC 总线上对应的特定总 线访问序列行为的正确性和完整性来发现错误, 并产生系统警告, 从而有效防止信息泄漏。
     本发明采用的技术方案是, 提出一种提高 SOC 系统安全的总线监视器, 所述的总 线监视器设置于系统总线和系统控制单元之间, 包括配置单元、 条件判断单元、 有效数据选 择单元、 硬件算法单元和比较输出单元, 其中 : 所述的配置单元用于设置和存储总线控制信号需要监控的配置信息, 并更新总线监视 器的状态 ; 所述的条件判断单元根据配置单元的配置信息, 结合总线控制信号给出的当前总线行
     为信息, 判断是否需要启动监视操作, 当需要监控时, 向有效数据选择单元生成控制信号 ; 所述的有效数据选择单元根据条件判断单元的控制信息和配置单元的配置信息, 从总 线访问的总线地址、 总线主设备号、 总线读数据或写数据及配置单元中的密钥选择出总线 监视待计算的数据, 并送入硬件算法单元, 通知硬件算法单元对待计算数据进行运算 ; 所述的硬件算法单元根据配置单元、 条件判断单元发送的控制信号对有效数据选择单 元输出的待计算数据进行运算, 并将最终计算结果发送到比较输出单元 ; 所述的比较输出单元将硬件算法单元输出的结果与配置单元预置的条件进行比较, 当 不一致时触发报警信号, 并发送至系统控制单元。
     本发明还提出一种提高 SOC 系统安全的总线监视方法, 包括下列步骤 : 步骤 1. 在配置单元中设置总线监视过程中需要的配置信息 ; 步骤 2. 条件判断单元根据配置单元的配置信息, 结合总线控制信号给出的当前总线 行为信息, 判断是否对总线进行监视, 并向控制有效数据单元生成控制信号, 向硬件算法单 元发送待计算数据 ; 步骤 3. 有效数据选择单元根据条件判断单元的控制信息, 从总线地址、 总线主设备 号、 总线读数据或写数据、 配置单元输出密钥中选择出的待计算数据, 并将待计算数据发送 至硬件算法单元, 指示硬件算法单元对其进行运算 ; 步骤 4. 所述的硬件算法单元根据有效数据选择单元发送的控制信号对待计算数据按 配置单元选定的算法进行运算, 并将最终计算结果发送到比较输出单元 ; 步骤 5. 所述的比较输出单元将硬件算法单元输出的结果与配置单元预置的期望结果 进行比较, 当不一致时触发报警信号并发送至系统控制单元 ; 步骤 6. 当总线监视器完成一次有效的访问运算后, 其内部的计数器自动递增, 并返 回步骤 2 重复进行监视 ; 当总线监视器完成配置单元监视长度寄存器定义的有效访问次数 后, 根据控制寄存器的控制方式可以停止监视, 或等下一次满足监视起始条件的总线访问 发生时, 重复进行监视。
     与现有技术相比, 本发明具有如下有益效果 : 1、 本发明在考虑到传统的安全 SOC 芯片中, 侧重对重要数据保护的行为, 对保护的效 果关注不够, 一种可能的风险是 : 保护行为在恶意攻击或意外故障下失效了, 系统却不能及 时采取补救安全措施, 从而导致信息泄漏。本发明通过监视安全 SOC 芯片总线序列访问行 为, 能对非正常的总线序列访问行为及时向系统提出警告, 有助于系统及时采取补救安全 措施, 实现了一种提高 SOC 系统信息安全的总线监视器 ; 2、 本发明能有效提高 SOC 系统对故障攻击的抵抗能力, 能及时对安全配置或关键程序 在恶意故障或无意故障下的错误行为向系统发出警告, 保证系统能及时采取补救的安全措 施; 3、 本发明能从最终的总线传输通道上解决安全配置过程和关键程序的完整性和真实 性, 提高系统对安全配置数据和关键程序防篡改能力 ; 4、 本发明在考虑到总线时序本身的复杂性, 待监视数据的可配置性, 以及监视长度的 可配置性, 实现了对总线行为的实时监视 ; 5、 本发明对安全 SOC 系统运行过程中特定访问序列的总线地址和数据与可配置的密 钥一起进行完整性算法运算, 通过比较最终运算结果和期望结果来判断特定访问序列是否被篡改 ; 6、 本发明可防止总线地址或重要数据被伪造或被攻击 ; 7、 本发明可防止一个总线主设备冒充另一个总线主设备发起总线访问 ; 8、 本发明在完成规定的总线序列监视后, 根据系统安全需要, 用户可决定是否重复监 视; 9、 本发明不影响系统总线行为 ; 10、 本发明在考虑到系统存在死机或崩溃的情形, 而造成总线等待超时, 用户可配置最 大超时等待周期, 当总线等待超过预设的最大等待周期时, 则记录下发生超时的总线一切 行为, 并给出超时警告信号。SOC 系统可以根据超时警告信息强制恢复总线传输, 并进行异 常处理。这种机制有效的防止了安全 SOC 系统长期处于意外超时等待状况的非正常行为, 提高了总线的工作效率, 确保一些关键任务的及时执行 ; 11、 本发明特别适应于数据敏感、 易受攻击的多应用场景的安全 SOC 系统, 且易于集 成, 不对整个 SOC 芯片时序和性能造成负担。 附图说明
     下面结合附图和较佳实施例对本发明进行详细地说明, 其中 : 图 1 为本发明的总线监视器在安全 SOC 芯片中的内部结构示意图 ; 图 2 为图 1 中总线监视器的原理框图 ; 图 3 是总线监视器的工作流程图 ; 图 4 是单总线安全 SOC 芯片中总线监视器的连接示意框图 ; 图 5 是多总线安全 SOC 芯片中总线监视器的连接示意框图。具体实施方式
     本发明的核心思想是 : 对涉及安全关键的总线传输序列的进行实时监视, 如果需 要监视的总线传输序列行为不符合预期行为, 则判断总线传输序列因为无意故障或恶意故 障或篡改攻击等原因异常, 及时向系统发出警告, 保证系统能及时处理此异常。
     图 1 为本发明提出的安全 SOC(System on Chip) 芯片中内置总线监视器的内部 结构示意图。其中包括 : SOC 系统总线 1、 安装在 SOC 芯片 2 中的总线监视器 21 和系统控制 单元 22。SOC 系统总线 1 是安全 SOC 芯片中数据搬运的关键通道, 主设备 (如 CPU、 DMA) 对 从设备 (如片内存 RAM 等) 进行数据的操作都是通过 SOC 系统总线 1 来完成传输的, 因此 SOC 系统总线 1 在安全 SOC 芯片中扮演着非常重要的角色。
     如图 2 所示, 本发明提出的总线监视器 21 包括有效数据选择单元 201、 条件判断单 元 202、 超时检测单元 203、 配置单元 204、 硬件算法单元 205 以及比较输出单元 206。根据 设计需求, 每个单元模块的设计实现都可适时地做出恰当的调整。
     配置单元 204 用于存储总线监视器配置信息, 主要由控制寄存器、 监视起始地址 寄存器、 监视长度寄存器、 主设备寄存器、 预置密钥寄存器、 期望监视结果寄存器、 总线状态 寄存器、 超时寄存器以及故障地址寄存器等组成。各个寄存器部件所实现的功能详细描述 如下 : 控制寄存器用来记录主设备对总线监视器 21 的常规配置信息, 总线监视器 21 需要依据这些配置信息进行动作, 包括监视器使能位, 这是总线监视器 21 的全局控制位, 用户可 通过配置该位为有效或无效状态, 以使能或不使能总线检视总线监视器 21 ; 总线监视器 21 的触发模式控制位, 通过配置该位实现监视启动模式从以下两种模式进行选择 : 立即开始 监视或从指定地址开始监视 ; 重复监视使能控制位, 通过配置该位为不同状态决定是否启 动重复监视功能, 如果启动重复监视功能, 在完成指定有效长度序列监视后, 当下次总线行 为满足监视条件时, 再次启动监视, 否则在完成有效长度序列监视后停止监视 ; 超时监视控 制位, 通过配置该位决定是否监视总线超时行为 ; 监视条件控制位, 用来决定哪些总线访问 才是需要监视的总线访问序列 ; 监视算法选择位, 根据安全需要, 设计者可自行编程决定使 用何种算法对总线行为进行监视 ; 待计算数据选择位, 指示从满足监视条件的总线主设备 号、 总线地址、 总线读数据、 总线写数据以及预置密钥中选择部分或全部内容作为待计算数 据。
     监视起始地址寄存器用于记录总线监视器 21 的起始监视地址。当触发模式控制 位选择为从指定地址开始监视后, 在监视条件满足的情况下, 当总线监视器 21 监视到总线 操作地址匹配该起始地址, 才启动监视, 否则总线监视器处于不执行监视的空闲状态。
     监视长度寄存器用于记录用户需要总线监视器 21 监视的有效总线访问序列长 度。当监视功能启动后, 每监视到一次满足监视条件的总线访问, 监视长度寄存器递增一 次, 直到完成监视长度寄存器所指定的长度后, 本次总线序列监视完成。总线监视器 21 的 有效数据选择单元 201 根据待计算数据选择位和条件判断单元 202 的控制条件, 从满足监 视条件的总线主设备号、 总线地址、 总线读数据、 总线写数据以及预置密钥中选择部分或全 部内容作为待计算数据, 送至硬件算法单元 205 进行运算, 比较输出单元 206 启动比较功 能, 并将比较结果送至系统控制单元 22。 主设备寄存器用于配置总线监视器 21 待监视的主设备号。如果监视条件配置主 设备号匹配, 则只有总线监视器 21 检测到当前总线操作的主设备同主设备寄存器中一个 或多个主设备号匹配时, 才满足监视条件。该功能可以防止某个非安全的总线主设备冒充 另一个总线主设备发起总线访问。当总线监视器 21 检测到当前执行操作的主设备非法时, 及时发出警告信息, 阻止关键信息被非法设备获取或破坏。
     预置密钥寄存器用于配置监视过程中用到的密钥, 该密钥不可读。在本发明设计 的总线监视器 21 中, 密钥可以在某个固定的点参与运算, 也可以实时地参与运算, 能有效 防止攻击者根据总线监视器原理对期望结果进行篡改, 进一步保证了监视过程的完整性和 安全性。
     期望监视结果寄存器用于配置在指定长度总线序列监视结束后, 用户期望的监视 数据的运算结果。
     总线状态寄存器用于记录在完成规定长度总线有效序列监视后, 比较输出单元 206 把最终比较结果 (正常或出错) 写入其中, 用户可通过配置单元 204 中的总线状态寄存 器查询某段总线操作是否正常。同时, 总线监视器监视到的其它总线行为如超时等也将在 总线状态寄存器中反映。该寄存器的存在, 保证了主设备能随时获知总线行为。
     超时寄存器用于记录最大的总线设备等待周期。 用户可以根据系统本身的需要做 出恰当的配置, 比如当系统中存在某个设备经常需要较长的等待周期时, 可以给超时寄存 器配置一个较大的值。一般地, 在配置超时寄存器时, 需要对 SOC 系统设备进行评估, 得出
     一个合适的值, 即不会误报超时行为也不会漏报超时行为, 保证总线的工作效率。 当总线超 时时, 总线监视器将及时发出超时警告信号, 指示系统强制结束当前总线访问, 防止系统因 总线超时导致安全隐患或系统故障。
     故障地址寄存器用于记录总线发生超时故障的地址, 在超时检测单元 203 检测到 总线超时行为后, 将把发生超时状态的总线地址写入到故障地址寄存器, 主设备可通过读 取该寄存器, 获取总线超时信息。
     配置单元 204 相当于 SOC 系统中的一个从设备, 在本发明的总线监视器 21 中, 其 配置的准确与否关系到能否实现事先设计的总线监视功能。
     条件判断单元 202 是本发明的主要控制单元, 主要用来判断总线操作是否满足总 线监视器 21 的监视条件。它根据配置单元 203 给出的监视条件控制位实时地对总线包括 地址在内的控制信息进行过滤。当总线操作满足监视条件时指示有效数据选择单元 201 获 取有效内容送入硬件算法单元 205 进行计算 ; 如果总线操作不满足监视条件, 则忽略该总 线操作。条件判断单元对总线操作的过滤条件可以是下列条件的一个或多个 : 主设备号匹 配或否、 取指令操作或数据传输操作、 读访问或写访问、 特权访问或普通访问等等。利用主 设备号匹配条件, 可以监视指定主设备号的总线操作 ; 利用取指令操作条件, 可以监视微处 理器指令执行过程。 如果不关心主设备号, 可以不启用主设备号匹配功能, 这样可以把总线 上所有的访问操作都监视到。条件判断单元还判断规定长度的总线序列监视是否完成, 并 把完成指示信号发送给硬件算法单元 205。 有效数据选择单元 201, 根据条件判断单元的控制信息, 对满足监视条件的总线操 作, 从总线地址、 总线主设备号、 总线读数据或写数据、 配置单元输出密钥中选择出的待计 算数据, 并将待计算数据组织成方便运算的形式发送至硬件算法单元 205, 指示硬件算法单 元对其进行运算。
     硬件算法单元 205 是本发明的核心单元, 其工作速度的快慢直接关系到能否对总 线监视的实时性。在接收到有效数据选择单元 201 送出计算指示信号后, 硬件算法单元即 启动, 根据配置单元 204 给出的算法选择控制位选择合适的硬件算法对有效数据选择单元 205 送来的待计算数据进行运算。 在收到条件判断单元 202 送出的监视结束的指示信号后, 硬件算法单元完成运算, 并把运算结果传给比较输出单元 206, 之后硬件算法单元 205 回 到初始状态, 等待下次监视的开始。硬件算法单元包括但不限于以下算法 : 循环冗余校验 (CRC) 算法 (如 CRC-16, CRC-32) , 哈希 (HASH) 算法 (如 SHA-1, SHA-256) 、 对称加密算法 (如 AES,DES) 等。CRC 算法比较简单, 能快速地完成计算, 实时性最好。HASH 算法计算复杂, 但 其保证总线序列的完整性效果比 CRC 算法要好。对称加密算法介于 CRC 算法和 HASH 算法 之间。硬件算法单元选择支持那些硬件算法, 取决于系统总线的总线频率和硬件算法处理 能力。安全芯片设计者可以根据芯片时序和面积等指标要求, 决定集成其中的一种或几种 算法。
     比较输出单元 206 在本发明中负责实现对硬件算法单元 205 最终运算所得结果 与配置单元 204 中期望监视结果寄存器值进行比较, 若二者不一致, 即认为总线序列行为 因为攻击或故障等原因发生异常, 及时发出警告信息, 送至系统控制单元 22, 系统控制单元 22 根据用户预先的配置, 针对总线序列错误做出合理的响应, 比如要求 CPU 复位或部分主、 从设备停止工作等。 这种实时的处理机制保证了系统重要数据在受到攻击、 破坏的情况下,
     能够根据信息的安全等级, 做出系统级的响应, 最大程度上保证了整个安全系统的安全。
     超时检测单元 203 用来检测 SOC 总线是否超时。它依据当前总线控制信号及配 置单元 204 中超时寄存器设置的最大总线等待周期, 实时地监视总线操作是否存在超时行 为; 当总线等待周期超过超时寄存器所设置的最大总线等待周期, 超时检测单元 203 触发 超时警告信息, 送至系统控制单元 22, 系统控制单元 22 根据用户预先的配置, 针对总线超 时行为做出合理的响应。 一种常见的超时响应机制是 : 系统先强制结束当前的总线超作, 然 后进行异常处理程序对该超时行为进行处理。这种机制有效防止了安全 SOC 系统长期处于 意外超时等待状况的非正常行为, 确保一些关键任务的及时执行, 确保系统不因意外超时 导致安全隐患或系统故障。
     以上过程都是在不影响安全 SOC 系统正常工作的前提下进行的, 既保证了系统工 作的完整性, 又实现了系统的安全功能。
     如图 3 所示, 这是本发明的总线监视器 21 的工作流程图, 具体包括下列步骤 : 步骤 1. 在配置单元中设置总线监视过程中需要的配置信息 ; 步骤 2. 条件判断单元根据配置单元的配置信息, 结合总线控制信号给出的当前总线 行为信息, 判断是否对总线进行监视, 并向控制有效数据单元生成控制信号, 向硬件算法单 元发送待计算数据 ; 步骤 3. 有效数据选择单元根据条件判断单元的控制信息, 从总线地址、 总线主设备 号、 总线读数据或写数据、 配置单元输出密钥中选择出的待计算数据, 并将待计算数据发送 至硬件算法单元, 指示硬件算法单元对其进行运算 ; 步骤 4. 所述的硬件算法单元根据有效数据选择单元发送的控制信号对待计算数据按 配置单元选定的算法进行运算, 并将最终计算结果发送到比较输出单元 ; 步骤 5. 所述的比较输出单元将硬件算法单元输出的结果与配置单元预置的期望结果 进行比较, 当不一致时触发报警信号并发送至系统控制单元 ; 步骤 6. 当总线监视器完成一次有效的访问运算后, 其内部的计数器自动递增, 并返 回步骤 2 重复进行监视 ; 当总线监视器完成配置单元监视长度寄存器定义的有效访问次数 后, 根据控制寄存器的控制方式可以停止监视, 或等下一次满足监视起始条件的总线访问 发生时, 重复进行监视。
     工作中, 总线监视器首先根据配置单元 204 中有关寄存器配置, 结合当前总线的 工作行为, 判断是否对总线进行监视以及监视总线上哪些信息 (数据、 地址等) , 总线控制信 息作为待监视数据送到硬件算法电路进行运算, 密钥可以根据安全需要实时地参与运算, 在完成指定长度的序列监视后, 将运算结果与期望值进行比较, 若结果一致, 说明传输无 误, 否则给出警告信息由系统控制器完成后续处理。 若寄存器配置为重复监视, 则在完成本 次监视后, 总线监视器重复执行图 3 所示数据流程。如果需要对系统复位后的一段总线序 列行为进行监视, 配置单元的默认配置可以设置为立即开始监视, 监视长度寄存器默认设 置为一个合理的非零值。系统开始工作后, 应及时向配置单元更新复位后正在监视的这段 总线序列的长度和期望结果。这样系统复位, 总线监视器将立即监视复位后的总线序列行 为; 如果不及时配置总线监视器的监视长度寄存器和期望结果寄存器, 则监视完成默认长 度的总线序列监视后将向系统发出警告 ; 如果及时配置了监视长度寄存器和期望结果寄存 器, 监视器将监视系统复位后指定长度总线访问序列是否因为攻击或故障发生异常。如图 4 所示, 这是一个典型的单总线结构的安全 SOC 芯片系统, 其中包括了处理器 401、 DMA402 等多个主设备以及片上 RAM407、 存储器接口 405、 本发明提出的总线监视器 21 (1) 和总线监视器 21(2) 等从设备, 系统总线 404 作为数据的传输通道, 将主设备与从设备 连接起来。与一般的安全 SOC 芯片系统不同的是, 该系统中集成了两个相互独立的本发明 的总线监视器 21, 直接对 SOC 总线进行实时监视, 安全 SOC 芯片的安全性能将大大提高。
     如图 5 所示, 这是一个典型的多总线结构的安全 SOC 芯片系统, 其中同样包括了处 理器 501, DMA402 等多个主设备以及片上 RAM509、 高带宽存储器接口 508、 本发明的总线监 视器 21(1) 、 总线监视器 21(2) 等从设备, 系统总线 505 和系统总线 506 构成了多总线数 据传输通道, 总线控制矩阵 503 实现多个总线并行交叉访问不同地址区域。
     在多总线结构的安全 SOC 芯片系统中, 根据总线数量的不同, 总线监视器 21 的数 量做相应变更, 分别用来对每条总线进行监视, 在图 5 中, 总线监视器 21(1) 用来监视系统 总线 505, 总线监视器 21(2) 用来监视系统总线 506, 各个总线监视器 21 之间互相独立, 其 他行为同单总线 SOC 系统一致, 这就保证了安全 SOC 芯片系统中所有总线的安全。
     根据本发明的方法, 在不影响总线访问效率的情况下实时对总线行为进行监视, 检测系统关注特定总线访问序列行为是否因为意外或恶意故障攻击发生改变 ; 如果特定的 总线访问序列行为发生改变, 本发明将向系统提出警告, 由系统采取适当的安全措施预防 安全隐患, 防止机密信息因为系统安全操作未正确进行而泄漏。 本发明也可以监视 SOC 总线协议错误, 并将这种错误报告给系统以做出适当的响 应。本发明也监视 SOC 总线因为操作不当或其它原因导致的总线超时, 并将超时情况报告 给系统 ; 系统可以采取适当措施及时恢复总线操作, 防止一些关键任务因为总线超时得不 到执行。
     综上所述, 本发明提供了一种提高 SOC 系统信息安全的总线监视器及其实现方 法, 确保安全 SOC 芯片在关键信息经由总线的搬运过程中的完整性、 实时性及安全性, 提高 系统总线的工作效率, 提高信息安全系统稳定性和抗故障攻击的能力。
     尽管本发明及其一些优点已在上述的实施方式中做了详细描述, 然而, 所属技术 领域的技术人员应该认识到, 在本发明的精神和原则之内, 可以做出任意修改、 改进、 扩展 等, 这些修改、 改进、 扩展均涵盖在本发明的保护范围之内。
    

一种提高SOC系统安全的总线监视器及其实现方法.pdf_第1页
第1页 / 共14页
一种提高SOC系统安全的总线监视器及其实现方法.pdf_第2页
第2页 / 共14页
一种提高SOC系统安全的总线监视器及其实现方法.pdf_第3页
第3页 / 共14页
点击查看更多>>
资源描述

《一种提高SOC系统安全的总线监视器及其实现方法.pdf》由会员分享,可在线阅读,更多相关《一种提高SOC系统安全的总线监视器及其实现方法.pdf(14页珍藏版)》请在专利查询网上搜索。

1、10申请公布号CN101989242A43申请公布日20110323CN101989242ACN101989242A21申请号201010540994822申请日20101112G06F13/36220060171申请人深圳国微技术有限公司地址518000广东省深圳市高新技术产业园南区高新南一道国微大厦2F72发明人刘华预王良清74专利代理机构深圳市康弘知识产权代理有限公司44247代理人胡朝阳孙洁敏54发明名称一种提高SOC系统安全的总线监视器及其实现方法57摘要本发明公开了一种提高SOC系统安全的总线监视器及其实现方法。所述的总线监视器设置于系统总线和系统控制单元之间,包括配置单元、条件判。

2、断单元、有效数据选择单元、硬件算法单元和比较输出单元。本发明方法可以在不影响总线访问效率的前提下实时对总线行为进行监视,检测系统所关注的特定总线访问序列行为是否因为意外、篡改、恶意故障攻击发生改变;如果特定的总线访问序列行为发生改变,本发明将向系统提出警告,由系统采取适当的安全措施预防安全隐患,防止机密信息因为系统安全操作未正确进行而泄漏。51INTCL19中华人民共和国国家知识产权局12发明专利申请权利要求书2页说明书7页附图4页CN101989242A1/2页21一种提高SOC系统安全的总线监视器,其特征在于,所述的总线监视器设置于系统总线和系统控制单元之间,包括配置单元、条件判断单元、有。

3、效数据选择单元、硬件算法单元和比较输出单元,其中所述的配置单元用于设置和存储总线控制信号需要监控的配置信息,并更新总线监视器的状态;所述的条件判断单元根据配置单元的配置信息,结合总线控制信号给出的当前总线行为信息,判断是否需要启动监视操作,当需要监控时,向有效数据选择单元生成控制信号;所述的有效数据选择单元根据条件判断单元的控制信息和配置单元的配置信息,从总线访问的总线地址、总线主设备号、总线读数据或写数据及配置单元中的密钥选择出总线监视待计算的数据,并送入硬件算法单元,通知硬件算法单元对待计算数据进行运算;所述的硬件算法单元根据配置单元、条件判断单元发送的控制信号对有效数据选择单元输出的待计。

4、算数据进行运算,并将最终计算结果发送到比较输出单元;所述的比较输出单元将硬件算法单元输出的结果与配置单元预置的条件进行比较,当不一致时触发报警信号,并发送至系统控制单元。2根据权利要求1所述的总线监视器,其特征在于还包括超时检测单元,该单元实时监视总线控制信号是否超时,并当出现超时情况时,向系统控制单元发送信号。3根据权利要求1所述的总线监视器,其特征在于所述的配置单元包括控制寄存器,用于实现对总线监视器工作行为的不同控制;监视起始地址寄存器,用于存储总线监视器开始监视的总线访问起始地址;监视长度寄存器,用于配置总线监视器监视的有效总线访问的次数;至少一个主设备寄存器,用于配置监视指定总线主设。

5、备的总线访问;预置密钥寄存器,用于存储预置密钥;期望监视结果寄存器,用于存储期望的监视结果;超时寄存器,用于存储总线的最大等待周期,当总线等待周期超过该寄存器配置的值时向系统控制单元发出警告信息。4根据权利要求3所述的总线监视器,其特征在于还包括一个总线状态寄存器,用于主设备实时查询总线状态。5根据权利要求3所述的总线监视器,其特征在于还包括一个故障地址寄存器,用于总线监视器监视到总线超时后,将总线超时的地址存储起来,供主设备查询。6根据权利要求1所述的总线监视器,其特征在于所述的总线访问中满足监视条件的待计算内容包括但不仅限于总线地址、总线主设备号、总线读数据或写数据、配置单元输出的预置密钥。

6、;有效数据选择单元根据配置单元输出的配置信息选择这些内容的部分或全部作为待计算的数据。7根据权利要求1所述的总线监视器,其特征在于所述的硬件算法单元选择CRC算法、HASH算法,或对称加密算法对待计算数据进行运算。8一种提高SOC系统安全的总线监视方法,其特征在于包括下列步骤步骤1在配置单元中设置总线监视过程中需要的配置信息;步骤2条件判断单元根据配置单元的配置信息,结合总线控制信号给出的当前总线行为信息,判断是否对总线进行监视,并向控制有效数据单元生成控制信号,向硬件算法单元发送待计算数据;步骤3有效数据选择单元根据条件判断单元的控制信息,从总线地址、总线主设备权利要求书CN10198924。

7、2A2/2页3号、总线读数据或写数据、配置单元输出密钥中选择出的待计算数据,并将待计算数据发送至硬件算法单元,指示硬件算法单元对其进行运算;步骤4所述的硬件算法单元根据有效数据选择单元发送的控制信号对待计算数据按配置单元选定的算法进行运算,并将最终计算结果发送到比较输出单元;步骤5所述的比较输出单元将硬件算法单元输出的结果与配置单元预置的期望结果进行比较,当不一致时触发报警信号并发送至系统控制单元;步骤6当总线监视器完成一次有效的访问运算后,其内部的计数器自动递增,并返回步骤2重复进行监视;当总线监视器完成配置单元监视长度寄存器定义的有效访问次数后,根据控制寄存器的控制方式可以停止监视,或等下。

8、一次满足监视起始条件的总线访问发生时,重复进行监视。9根据权利要求8所述的方法,其特征在于所述的配置信息包括监视器使能位、触发模式控制位、监视条件、重复监视使能控制位、超时监视控制位、监视算法选择位、待计算数据选择位、预置密钥、监视起始地址、和/或期望结果。权利要求书CN101989242A1/7页4一种提高SOC系统安全的总线监视器及其实现方法技术领域0001本发明涉及SOC系统芯片安全,特别涉及一种提高SOC系统安全的总线监视器及其实现方法。背景技术0002随着社会信息化进程的加快,信息的安全性越来越成为关注、研究的重要课题。安全SOC芯片在信息社会的各个领域中应用广泛,其主要功能包括对用。

9、户关键数据的安全存储、电子签名、身份鉴别以及数据加解密等。安全SOC芯片是其所处的系统安全控制的核心,因此其本身的安全性至关重要。正因为安全SOC芯片中数据的重要性,各种针对安全SOC芯片的攻击手段层出不穷。目前对应于各种攻击手段的安全策略得到了深入的研究与实现。安全初始化、存储加密保护、存储完整性校验、总线保护等是最常见的安全策略。这些安全策略的目的都是期望安全芯片按一种安全的方式进行运行,但它们的缺陷是侧重保护的行为,对保护的效果关注不够。而且很多安全措施只局限于某一独立的保护行为,比如存储器保护可以限制对存储器特定区域的保护。很多时候,系统的安全保护机制需要由一系列操作来完成,比如执行一。

10、段不可分割的特定安全程序,安全保护机制需要这个安全程序能完整地不可被中止或插入其它程序地被执行。目前安全SOC芯片针对数据传输通道上序列操作行为是否异常的检测保护措施研究不多。有经验的攻击者能利用程序漏洞修改安全芯片的运行行为,其中常见攻击方式包括跳转指令攻击、中断攻击、堆栈溢出攻击等攻击方式;或直接进行故障攻击破坏安全初始化或安全程序的执行,导致芯片运行异常。为了弥补这个缺陷,在传统的安全保护策略下,应增加对这些安全策略最终的所体现总线序列行为进行检测。很可惜,直接对数据的传输通道系统总线通过一定的安全算法进行实时监控的方案暂时空白。0003因此,如何对数据的传输通道系统总线进行实时监控,如。

11、何判断总线序列行为是否正常,以达到保护安全SOC芯片的目的是安全SOC芯片亟待解决的问题。发明内容0004本发明的目的是解决上述现有技术中存在的问题,提出一种提高SOC系统安全的总线监视器及其实现方法。0005本发明通过监视安全配置过程或安全程序运行过程在SOC总线上对应的特定总线访问序列行为的正确性和完整性来发现错误,并产生系统警告,从而有效防止信息泄漏。0006本发明采用的技术方案是,提出一种提高SOC系统安全的总线监视器,所述的总线监视器设置于系统总线和系统控制单元之间,包括配置单元、条件判断单元、有效数据选择单元、硬件算法单元和比较输出单元,其中所述的配置单元用于设置和存储总线控制信号。

12、需要监控的配置信息,并更新总线监视器的状态;所述的条件判断单元根据配置单元的配置信息,结合总线控制信号给出的当前总线行说明书CN101989242A2/7页5为信息,判断是否需要启动监视操作,当需要监控时,向有效数据选择单元生成控制信号;所述的有效数据选择单元根据条件判断单元的控制信息和配置单元的配置信息,从总线访问的总线地址、总线主设备号、总线读数据或写数据及配置单元中的密钥选择出总线监视待计算的数据,并送入硬件算法单元,通知硬件算法单元对待计算数据进行运算;所述的硬件算法单元根据配置单元、条件判断单元发送的控制信号对有效数据选择单元输出的待计算数据进行运算,并将最终计算结果发送到比较输出单。

13、元;所述的比较输出单元将硬件算法单元输出的结果与配置单元预置的条件进行比较,当不一致时触发报警信号,并发送至系统控制单元。0007本发明还提出一种提高SOC系统安全的总线监视方法,包括下列步骤步骤1在配置单元中设置总线监视过程中需要的配置信息;步骤2条件判断单元根据配置单元的配置信息,结合总线控制信号给出的当前总线行为信息,判断是否对总线进行监视,并向控制有效数据单元生成控制信号,向硬件算法单元发送待计算数据;步骤3有效数据选择单元根据条件判断单元的控制信息,从总线地址、总线主设备号、总线读数据或写数据、配置单元输出密钥中选择出的待计算数据,并将待计算数据发送至硬件算法单元,指示硬件算法单元对。

14、其进行运算;步骤4所述的硬件算法单元根据有效数据选择单元发送的控制信号对待计算数据按配置单元选定的算法进行运算,并将最终计算结果发送到比较输出单元;步骤5所述的比较输出单元将硬件算法单元输出的结果与配置单元预置的期望结果进行比较,当不一致时触发报警信号并发送至系统控制单元;步骤6当总线监视器完成一次有效的访问运算后,其内部的计数器自动递增,并返回步骤2重复进行监视;当总线监视器完成配置单元监视长度寄存器定义的有效访问次数后,根据控制寄存器的控制方式可以停止监视,或等下一次满足监视起始条件的总线访问发生时,重复进行监视。0008与现有技术相比,本发明具有如下有益效果1、本发明在考虑到传统的安全S。

15、OC芯片中,侧重对重要数据保护的行为,对保护的效果关注不够,一种可能的风险是保护行为在恶意攻击或意外故障下失效了,系统却不能及时采取补救安全措施,从而导致信息泄漏。本发明通过监视安全SOC芯片总线序列访问行为,能对非正常的总线序列访问行为及时向系统提出警告,有助于系统及时采取补救安全措施,实现了一种提高SOC系统信息安全的总线监视器;2、本发明能有效提高SOC系统对故障攻击的抵抗能力,能及时对安全配置或关键程序在恶意故障或无意故障下的错误行为向系统发出警告,保证系统能及时采取补救的安全措施;3、本发明能从最终的总线传输通道上解决安全配置过程和关键程序的完整性和真实性,提高系统对安全配置数据和关。

16、键程序防篡改能力;4、本发明在考虑到总线时序本身的复杂性,待监视数据的可配置性,以及监视长度的可配置性,实现了对总线行为的实时监视;5、本发明对安全SOC系统运行过程中特定访问序列的总线地址和数据与可配置的密钥一起进行完整性算法运算,通过比较最终运算结果和期望结果来判断特定访问序列是否说明书CN101989242A3/7页6被篡改;6、本发明可防止总线地址或重要数据被伪造或被攻击;7、本发明可防止一个总线主设备冒充另一个总线主设备发起总线访问;8、本发明在完成规定的总线序列监视后,根据系统安全需要,用户可决定是否重复监视;9、本发明不影响系统总线行为;10、本发明在考虑到系统存在死机或崩溃的情。

17、形,而造成总线等待超时,用户可配置最大超时等待周期,当总线等待超过预设的最大等待周期时,则记录下发生超时的总线一切行为,并给出超时警告信号。SOC系统可以根据超时警告信息强制恢复总线传输,并进行异常处理。这种机制有效的防止了安全SOC系统长期处于意外超时等待状况的非正常行为,提高了总线的工作效率,确保一些关键任务的及时执行;11、本发明特别适应于数据敏感、易受攻击的多应用场景的安全SOC系统,且易于集成,不对整个SOC芯片时序和性能造成负担。附图说明0009下面结合附图和较佳实施例对本发明进行详细地说明,其中图1为本发明的总线监视器在安全SOC芯片中的内部结构示意图;图2为图1中总线监视器的原。

18、理框图;图3是总线监视器的工作流程图;图4是单总线安全SOC芯片中总线监视器的连接示意框图;图5是多总线安全SOC芯片中总线监视器的连接示意框图。具体实施方式0010本发明的核心思想是对涉及安全关键的总线传输序列的进行实时监视,如果需要监视的总线传输序列行为不符合预期行为,则判断总线传输序列因为无意故障或恶意故障或篡改攻击等原因异常,及时向系统发出警告,保证系统能及时处理此异常。0011图1为本发明提出的安全SOC(SYSTEMONCHIP)芯片中内置总线监视器的内部结构示意图。其中包括SOC系统总线1、安装在SOC芯片2中的总线监视器21和系统控制单元22。SOC系统总线1是安全SOC芯片中。

19、数据搬运的关键通道,主设备(如CPU、DMA)对从设备(如片内存RAM等)进行数据的操作都是通过SOC系统总线1来完成传输的,因此SOC系统总线1在安全SOC芯片中扮演着非常重要的角色。0012如图2所示,本发明提出的总线监视器21包括有效数据选择单元201、条件判断单元202、超时检测单元203、配置单元204、硬件算法单元205以及比较输出单元206。根据设计需求,每个单元模块的设计实现都可适时地做出恰当的调整。0013配置单元204用于存储总线监视器配置信息,主要由控制寄存器、监视起始地址寄存器、监视长度寄存器、主设备寄存器、预置密钥寄存器、期望监视结果寄存器、总线状态寄存器、超时寄存器。

20、以及故障地址寄存器等组成。各个寄存器部件所实现的功能详细描述如下控制寄存器用来记录主设备对总线监视器21的常规配置信息,总线监视器21需要依说明书CN101989242A4/7页7据这些配置信息进行动作,包括监视器使能位,这是总线监视器21的全局控制位,用户可通过配置该位为有效或无效状态,以使能或不使能总线检视总线监视器21;总线监视器21的触发模式控制位,通过配置该位实现监视启动模式从以下两种模式进行选择立即开始监视或从指定地址开始监视;重复监视使能控制位,通过配置该位为不同状态决定是否启动重复监视功能,如果启动重复监视功能,在完成指定有效长度序列监视后,当下次总线行为满足监视条件时,再次启。

21、动监视,否则在完成有效长度序列监视后停止监视;超时监视控制位,通过配置该位决定是否监视总线超时行为;监视条件控制位,用来决定哪些总线访问才是需要监视的总线访问序列;监视算法选择位,根据安全需要,设计者可自行编程决定使用何种算法对总线行为进行监视;待计算数据选择位,指示从满足监视条件的总线主设备号、总线地址、总线读数据、总线写数据以及预置密钥中选择部分或全部内容作为待计算数据。0014监视起始地址寄存器用于记录总线监视器21的起始监视地址。当触发模式控制位选择为从指定地址开始监视后,在监视条件满足的情况下,当总线监视器21监视到总线操作地址匹配该起始地址,才启动监视,否则总线监视器处于不执行监视。

22、的空闲状态。0015监视长度寄存器用于记录用户需要总线监视器21监视的有效总线访问序列长度。当监视功能启动后,每监视到一次满足监视条件的总线访问,监视长度寄存器递增一次,直到完成监视长度寄存器所指定的长度后,本次总线序列监视完成。总线监视器21的有效数据选择单元201根据待计算数据选择位和条件判断单元202的控制条件,从满足监视条件的总线主设备号、总线地址、总线读数据、总线写数据以及预置密钥中选择部分或全部内容作为待计算数据,送至硬件算法单元205进行运算,比较输出单元206启动比较功能,并将比较结果送至系统控制单元22。0016主设备寄存器用于配置总线监视器21待监视的主设备号。如果监视条件。

23、配置主设备号匹配,则只有总线监视器21检测到当前总线操作的主设备同主设备寄存器中一个或多个主设备号匹配时,才满足监视条件。该功能可以防止某个非安全的总线主设备冒充另一个总线主设备发起总线访问。当总线监视器21检测到当前执行操作的主设备非法时,及时发出警告信息,阻止关键信息被非法设备获取或破坏。0017预置密钥寄存器用于配置监视过程中用到的密钥,该密钥不可读。在本发明设计的总线监视器21中,密钥可以在某个固定的点参与运算,也可以实时地参与运算,能有效防止攻击者根据总线监视器原理对期望结果进行篡改,进一步保证了监视过程的完整性和安全性。0018期望监视结果寄存器用于配置在指定长度总线序列监视结束后。

24、,用户期望的监视数据的运算结果。0019总线状态寄存器用于记录在完成规定长度总线有效序列监视后,比较输出单元206把最终比较结果(正常或出错)写入其中,用户可通过配置单元204中的总线状态寄存器查询某段总线操作是否正常。同时,总线监视器监视到的其它总线行为如超时等也将在总线状态寄存器中反映。该寄存器的存在,保证了主设备能随时获知总线行为。0020超时寄存器用于记录最大的总线设备等待周期。用户可以根据系统本身的需要做出恰当的配置,比如当系统中存在某个设备经常需要较长的等待周期时,可以给超时寄存器配置一个较大的值。一般地,在配置超时寄存器时,需要对SOC系统设备进行评估,得出说明书CN101989。

25、242A5/7页8一个合适的值,即不会误报超时行为也不会漏报超时行为,保证总线的工作效率。当总线超时时,总线监视器将及时发出超时警告信号,指示系统强制结束当前总线访问,防止系统因总线超时导致安全隐患或系统故障。0021故障地址寄存器用于记录总线发生超时故障的地址,在超时检测单元203检测到总线超时行为后,将把发生超时状态的总线地址写入到故障地址寄存器,主设备可通过读取该寄存器,获取总线超时信息。0022配置单元204相当于SOC系统中的一个从设备,在本发明的总线监视器21中,其配置的准确与否关系到能否实现事先设计的总线监视功能。0023条件判断单元202是本发明的主要控制单元,主要用来判断总线。

26、操作是否满足总线监视器21的监视条件。它根据配置单元203给出的监视条件控制位实时地对总线包括地址在内的控制信息进行过滤。当总线操作满足监视条件时指示有效数据选择单元201获取有效内容送入硬件算法单元205进行计算;如果总线操作不满足监视条件,则忽略该总线操作。条件判断单元对总线操作的过滤条件可以是下列条件的一个或多个主设备号匹配或否、取指令操作或数据传输操作、读访问或写访问、特权访问或普通访问等等。利用主设备号匹配条件,可以监视指定主设备号的总线操作;利用取指令操作条件,可以监视微处理器指令执行过程。如果不关心主设备号,可以不启用主设备号匹配功能,这样可以把总线上所有的访问操作都监视到。条件。

27、判断单元还判断规定长度的总线序列监视是否完成,并把完成指示信号发送给硬件算法单元205。0024有效数据选择单元201,根据条件判断单元的控制信息,对满足监视条件的总线操作,从总线地址、总线主设备号、总线读数据或写数据、配置单元输出密钥中选择出的待计算数据,并将待计算数据组织成方便运算的形式发送至硬件算法单元205,指示硬件算法单元对其进行运算。0025硬件算法单元205是本发明的核心单元,其工作速度的快慢直接关系到能否对总线监视的实时性。在接收到有效数据选择单元201送出计算指示信号后,硬件算法单元即启动,根据配置单元204给出的算法选择控制位选择合适的硬件算法对有效数据选择单元205送来的。

28、待计算数据进行运算。在收到条件判断单元202送出的监视结束的指示信号后,硬件算法单元完成运算,并把运算结果传给比较输出单元206,之后硬件算法单元205回到初始状态,等待下次监视的开始。硬件算法单元包括但不限于以下算法循环冗余校验(CRC)算法(如CRC16,CRC32),哈希(HASH)算法(如SHA1,SHA256)、对称加密算法(如AES,DES)等。CRC算法比较简单,能快速地完成计算,实时性最好。HASH算法计算复杂,但其保证总线序列的完整性效果比CRC算法要好。对称加密算法介于CRC算法和HASH算法之间。硬件算法单元选择支持那些硬件算法,取决于系统总线的总线频率和硬件算法处理能力。

29、。安全芯片设计者可以根据芯片时序和面积等指标要求,决定集成其中的一种或几种算法。0026比较输出单元206在本发明中负责实现对硬件算法单元205最终运算所得结果与配置单元204中期望监视结果寄存器值进行比较,若二者不一致,即认为总线序列行为因为攻击或故障等原因发生异常,及时发出警告信息,送至系统控制单元22,系统控制单元22根据用户预先的配置,针对总线序列错误做出合理的响应,比如要求CPU复位或部分主、从设备停止工作等。这种实时的处理机制保证了系统重要数据在受到攻击、破坏的情况下,说明书CN101989242A6/7页9能够根据信息的安全等级,做出系统级的响应,最大程度上保证了整个安全系统的安。

30、全。0027超时检测单元203用来检测SOC总线是否超时。它依据当前总线控制信号及配置单元204中超时寄存器设置的最大总线等待周期,实时地监视总线操作是否存在超时行为;当总线等待周期超过超时寄存器所设置的最大总线等待周期,超时检测单元203触发超时警告信息,送至系统控制单元22,系统控制单元22根据用户预先的配置,针对总线超时行为做出合理的响应。一种常见的超时响应机制是系统先强制结束当前的总线超作,然后进行异常处理程序对该超时行为进行处理。这种机制有效防止了安全SOC系统长期处于意外超时等待状况的非正常行为,确保一些关键任务的及时执行,确保系统不因意外超时导致安全隐患或系统故障。0028以上过。

31、程都是在不影响安全SOC系统正常工作的前提下进行的,既保证了系统工作的完整性,又实现了系统的安全功能。0029如图3所示,这是本发明的总线监视器21的工作流程图,具体包括下列步骤步骤1在配置单元中设置总线监视过程中需要的配置信息;步骤2条件判断单元根据配置单元的配置信息,结合总线控制信号给出的当前总线行为信息,判断是否对总线进行监视,并向控制有效数据单元生成控制信号,向硬件算法单元发送待计算数据;步骤3有效数据选择单元根据条件判断单元的控制信息,从总线地址、总线主设备号、总线读数据或写数据、配置单元输出密钥中选择出的待计算数据,并将待计算数据发送至硬件算法单元,指示硬件算法单元对其进行运算;步。

32、骤4所述的硬件算法单元根据有效数据选择单元发送的控制信号对待计算数据按配置单元选定的算法进行运算,并将最终计算结果发送到比较输出单元;步骤5所述的比较输出单元将硬件算法单元输出的结果与配置单元预置的期望结果进行比较,当不一致时触发报警信号并发送至系统控制单元;步骤6当总线监视器完成一次有效的访问运算后,其内部的计数器自动递增,并返回步骤2重复进行监视;当总线监视器完成配置单元监视长度寄存器定义的有效访问次数后,根据控制寄存器的控制方式可以停止监视,或等下一次满足监视起始条件的总线访问发生时,重复进行监视。0030工作中,总线监视器首先根据配置单元204中有关寄存器配置,结合当前总线的工作行为,。

33、判断是否对总线进行监视以及监视总线上哪些信息(数据、地址等),总线控制信息作为待监视数据送到硬件算法电路进行运算,密钥可以根据安全需要实时地参与运算,在完成指定长度的序列监视后,将运算结果与期望值进行比较,若结果一致,说明传输无误,否则给出警告信息由系统控制器完成后续处理。若寄存器配置为重复监视,则在完成本次监视后,总线监视器重复执行图3所示数据流程。如果需要对系统复位后的一段总线序列行为进行监视,配置单元的默认配置可以设置为立即开始监视,监视长度寄存器默认设置为一个合理的非零值。系统开始工作后,应及时向配置单元更新复位后正在监视的这段总线序列的长度和期望结果。这样系统复位,总线监视器将立即监。

34、视复位后的总线序列行为;如果不及时配置总线监视器的监视长度寄存器和期望结果寄存器,则监视完成默认长度的总线序列监视后将向系统发出警告;如果及时配置了监视长度寄存器和期望结果寄存器,监视器将监视系统复位后指定长度总线访问序列是否因为攻击或故障发生异常。说明书CN101989242A7/7页100031如图4所示,这是一个典型的单总线结构的安全SOC芯片系统,其中包括了处理器401、DMA402等多个主设备以及片上RAM407、存储器接口405、本发明提出的总线监视器21(1)和总线监视器21(2)等从设备,系统总线404作为数据的传输通道,将主设备与从设备连接起来。与一般的安全SOC芯片系统不同。

35、的是,该系统中集成了两个相互独立的本发明的总线监视器21,直接对SOC总线进行实时监视,安全SOC芯片的安全性能将大大提高。0032如图5所示,这是一个典型的多总线结构的安全SOC芯片系统,其中同样包括了处理器501,DMA402等多个主设备以及片上RAM509、高带宽存储器接口508、本发明的总线监视器21(1)、总线监视器21(2)等从设备,系统总线505和系统总线506构成了多总线数据传输通道,总线控制矩阵503实现多个总线并行交叉访问不同地址区域。0033在多总线结构的安全SOC芯片系统中,根据总线数量的不同,总线监视器21的数量做相应变更,分别用来对每条总线进行监视,在图5中,总线监。

36、视器21(1)用来监视系统总线505,总线监视器21(2)用来监视系统总线506,各个总线监视器21之间互相独立,其他行为同单总线SOC系统一致,这就保证了安全SOC芯片系统中所有总线的安全。0034根据本发明的方法,在不影响总线访问效率的情况下实时对总线行为进行监视,检测系统关注特定总线访问序列行为是否因为意外或恶意故障攻击发生改变;如果特定的总线访问序列行为发生改变,本发明将向系统提出警告,由系统采取适当的安全措施预防安全隐患,防止机密信息因为系统安全操作未正确进行而泄漏。0035本发明也可以监视SOC总线协议错误,并将这种错误报告给系统以做出适当的响应。本发明也监视SOC总线因为操作不当。

37、或其它原因导致的总线超时,并将超时情况报告给系统;系统可以采取适当措施及时恢复总线操作,防止一些关键任务因为总线超时得不到执行。0036综上所述,本发明提供了一种提高SOC系统信息安全的总线监视器及其实现方法,确保安全SOC芯片在关键信息经由总线的搬运过程中的完整性、实时性及安全性,提高系统总线的工作效率,提高信息安全系统稳定性和抗故障攻击的能力。0037尽管本发明及其一些优点已在上述的实施方式中做了详细描述,然而,所属技术领域的技术人员应该认识到,在本发明的精神和原则之内,可以做出任意修改、改进、扩展等,这些修改、改进、扩展均涵盖在本发明的保护范围之内。说明书CN101989242A1/4页11图1说明书附图CN101989242A2/4页12图2说明书附图CN101989242A3/4页13图3图4说明书附图CN101989242A4/4页14图5说明书附图。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1