CN103034599A - 安全dma控制器、soc系统及其数据搬运方法 - Google Patents
安全dma控制器、soc系统及其数据搬运方法 Download PDFInfo
- Publication number
- CN103034599A CN103034599A CN2012105343367A CN201210534336A CN103034599A CN 103034599 A CN103034599 A CN 103034599A CN 2012105343367 A CN2012105343367 A CN 2012105343367A CN 201210534336 A CN201210534336 A CN 201210534336A CN 103034599 A CN103034599 A CN 103034599A
- Authority
- CN
- China
- Prior art keywords
- data
- dma controller
- chained list
- carrying
- bus
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 54
- 230000005540 biological transmission Effects 0.000 claims abstract description 38
- 238000012544 monitoring process Methods 0.000 claims abstract description 19
- 230000006399 behavior Effects 0.000 claims description 41
- 238000012546 transfer Methods 0.000 claims description 12
- 238000012545 processing Methods 0.000 claims description 10
- 238000012795 verification Methods 0.000 claims description 9
- 230000005856 abnormality Effects 0.000 claims description 7
- 206010000117 Abnormal behaviour Diseases 0.000 claims description 6
- 238000001514 detection method Methods 0.000 claims description 4
- 230000004044 response Effects 0.000 claims description 4
- 230000003068 static effect Effects 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 13
- 241001269238 Data Species 0.000 description 4
- 230000002159 abnormal effect Effects 0.000 description 3
- 230000000295 complement effect Effects 0.000 description 3
- 238000004377 microelectronic Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000026676 system process Effects 0.000 description 2
- 230000000454 anti-cipatory effect Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- GOLXNESZZPUPJE-UHFFFAOYSA-N spiromesifen Chemical compound CC1=CC(C)=CC(C)=C1C(C(O1)=O)=C(OC(=O)CC(C)(C)C)C11CCCC1 GOLXNESZZPUPJE-UHFFFAOYSA-N 0.000 description 1
Images
Landscapes
- Storage Device Security (AREA)
- Debugging And Monitoring (AREA)
Abstract
一种安全DMA控制器、SOC系统及其数据搬运方法。该安全DMA控制器包括:主设备接口,安全DMA控制器通过其对总线上的从设备发出读写操作;从设备接口,处理器通过其对安全DMA控制器进行配置和查询;寄存器模块,包含链表描述符寄存器、状态寄存器;数据搬运监视模块,用于执行数据搬运控制信息的完整性校验;数据传输引擎,用于根据寄存器模块的链表描述符寄存器的内容,控制主设备接口读取链表并根据链表信息完成数据搬运。由于对链表的数据搬运控制信息进行完整性校验,从而防止链表数据搬运控制信息被篡改,提高数据传输安全性。
Description
技术领域
本发明属于基于信息安全的微电子设计技术领域,特别涉及一种具有信息安全特性的DMA (Direct Memory Access,直接内存存取)控制器。
背景技术
随着微电子技术的迅速发展,微电子产品深入到越来越多的应用场合,当然这其中就包括信息安全应用领域。无论是互联网的电子商务,还是金融银行业务,或者是个人的手提设备等都会涉及到信息安全的问题。微电子产品在这里面涉及到用户关键数据的安全存储、电子签名、身份鉴别以及数据加解密等。SOC(System-on-a-Chip)芯片通常是其所处的系统控制的核心,因此其本身的安全性至关重要。各种针对SOC芯片的攻击破解技术正不断的涌现。目前常见的攻击手段有软件攻击,故障攻击,物理攻击,旁路攻击等。面对这种情况,如何保证SOC的信息安全,就成为SOC芯片在安全信息领域立足的关键。
SOC芯片在信息安全领域的应用场景里面,为了保证保密数据不被恶意软件攻击获取,通常保密数据是处理器无法接触的。在这种情况下,通常使用DMA控制器来协助传输保密数据。当使用DMA控制器来搬运保密数据的时候,怎么保证DMA控制器不会泄漏保密数据,就成为了安全SOC芯片及系统设计必须考虑的问题了。
传统的做法是用存储保护单元把SOC芯片的系统空间划分为若干受保护的安全区域和不受保护的普通区域。限制DMA控制器只能在有限的几个安全区域之间进行读写访问,而这些安全区域是处理器不能访问的。从而防止DMA控制器受到软件或者其他方式的攻击,把数据搬运到处理器可以访问的区域,导致泄密。
但是这种实现方式,在DMA控制器初始化存储保护单元的过程中仍然存在被攻击的风险,存在破坏存储保护环境的建立可能;并且,该方式只能防止DMA控制器把保密数据搬运到普通区域,但是无法知道数据是否被篡改。
发明内容
本发明提供一种保证数据在SOC系统中传输时不被篡改的安全DMA控制器。
一种安全DMA控制器包括:主设备接口,用于提供安全DMA控制器对总线上的从设备发出读写操作的接口;从设备接口,用于提供处理器对安全DMA控制器进行配置和查询的接口;寄存器模块,包含链表描述符寄存器、状态寄存器;链表描述符寄存器指向首链表地址,安全DMA控制器启动后根据链表描述符寄存器读取链表,链表包括数据搬运控制信息以及链表校验数据;软件请求寄存器用于配置安全DMA控制器的请求模式以及在软件模式下设置软件请求;状态寄存器用于存储数据搬运过程的状态;数据搬运监视模块,用于执行数据搬运控制信息的完整性校验,只有数据搬运控制信息通过完整性校验通过才能按照数据搬运控制信息进行数据搬运,否则数据搬运监视模块置位状态寄存器的链表数据完整性出错标志;数据传输引擎,用于根据寄存器模块的链表描述符寄存器的内容,控制主设备接口读取链表并根据链表信息完成数据搬运。
一种数据搬运方法包括:S301,设置安全DMA控制器的链表描述符,使能安全DMA控制器;S302,等待数据传输请求;S303,读取链表数据搬运控制信息和链表校验数据;S304,判断链表数据搬运控制信息的完整性校验是否通过,如果通过,则执行S305,如果没有通过,则执行S314;S305,分析链表数据搬运控制信息;S307,根据链表数据搬运控制信息搬运数据;S309,判断数据搬运是否完成,如果是,则执行S310,如果否,则执行S307;S310,安全DMA控制器的数据搬运监视器结束监视并输出结果到状态寄存器;S312,判断当前链表是否是终结链表,如果是,则执行S313;如果否则执行S303;S313,停止数据搬运,发送应答,设置链表全部完成的状态标志,产生中断;S314,停止数据搬运,设置对应的异常状态标志,产生中断。
一种SOC系统包括:处理器,通过读取和执行指令控制着整个芯片的运作;如上所述的安全DMA控制器,用于搬运保密数据和安全配置信息;总线阵列,负责总线的复用与选通;存储保护单元,根据安全配置对处理器和安全DMA控制器的访问空间做一定的限制;片上静态存储器;非易失性存储器,用于存储安全DMA控制器的链表、保密数据、安全配置信息等;安全数据处理设备,用于实现对关键数据的处理,处理器不可以访问安全数据处理设备;普通设备,处理器有权对普通设备进行读写。
本发明具体实施方式对链表的数据搬运控制信息进行完整性校验,防止安全DMA控制器取得的链表数据搬运控制信息被篡改;同时确保了链表执行完整性,避免通过软件攻击安全DMA控制器,使安全DMA控制器跳过部分和安全配置有关的链表,只执行另一部分链表,从而提高保密数据以及安全配置信息传输的安全性。
附图说明
图1为本发明具体实施方式一的安全DMA控制器的方框示意图;
图2为本发明具体实施方式二的安全DMA控制器的方框示意图;
图3为本发明具体实施方式一或二的安全DMA控制器的链表结构示意图;
图4为本发明具体实施方式三的数据搬运方法的流程图;
图5为本发明具体实施方式四的数据搬运方法的流程图;
图6为本发明具体实施方式五的数据搬运方法的流程图;
图7为本发明具体实施方式六的SOC系统的方框示意图;
图8为本发明具体实施方式一至六的安全DMA控制器的链表结构的应用实例的示意图。
具体实施方式
下面结合附图和实施例对发明进行详细的说明。
如图1所示,本发明具体实施方式一的一种安全DMA控制器,该安全DMA控制器用于提高数据在SOC系统中传输安全性,其包括:从设备接口201、寄存器模块202、数据传输引擎203、主设备接口204以及数据搬运监视模块205。
从设备接口201,SOC系统的处理器则通过从设备接口201实现对安全DMA控制器的寄存器模块201进行配置和查询。
寄存器模块202,包含链表描述符寄存器、状态寄存器;优化的,还可包括、软件请求寄存器;处理器不能直接定义安全DMA控制器所执行的链表的内容,只能通过设置链表描述符寄存器控制安全DMA控制器读取指定的链表,以防止处理器通过安全DMA控制器泄露保密数据;
链表描述符寄存器指向首链表地址,安全DMA控制器启动后根据链表描述符寄存器读取链表,所述链表包括数据搬运控制信息以及链表校验数据。可以在安全SOC芯片的实现过程中参数化链表描述符寄存器的复位值,使链表描述符寄存器的复位值指向初始化链表,从而利用安全DMA控制器协助完成安全初始化的配置。
软件请求寄存器用于配置安全DMA控制器的请求模式以及在软件模式下设置软件请求,启动安全DMA控制器。请求模式包括软件请求模式和硬件请求模式,默认是硬件请求模式。亦即,安全DMA控制器除了可以支持软件请求外,还支持硬件传输请求。复位后默认采用硬件请求,可以通过配置软件请求寄存器对硬件请求模式和软件请求模式进行切换。
状态寄存器用于存储数据搬运过程的状态,如,全部完成,总线应答错误,超时异常,总线行为异常等。
数据传输引擎203,控制主设备接口204对总线发出读写操作,从而根据寄存器模块202的链表描述符寄存器,读取链表并根据链表的数据传输控制信息完成数据搬运。
主设备接口204,安全DMA控制器作为总线上的主设备,通过主设备接口204对总线上的从设备发出读写操作;通过对源地址的读操作和对目的地址的写操作完成数据的搬运。
上述从设备接口201和主设备接口204均为系统总线接口。
数据搬运监视模块205,用于执行数据搬运控制信息的完整性校验。
数据搬运控制信息的完整性校验是指:在安全DMA控制器根据链表信息进行搬运数据之前,数据搬运监视模块对数据搬运控制信息进行完整性校验,保证数据搬运控制信息的完整性。只有数据搬运控制信息通过完整性校验通过才能按照数据搬运控制信息进行数据搬运,否则数据搬运监视模块置位状态寄存器的链表数据完整性出错标志。安全DMA控制器得知链表数据完整性错误后,停止数据传输,进入错误挂起状态,发出链表数据完整性错误指示信号和相应的中断信号给系统,以便系统处理。
本发明安全DMA控制器具体实施方式一对链表的数据搬运控制信息进行完整性校验,防止安全DMA控制器取得的链表数据搬运控制信息被篡改;同时确保了链表执行完整性,避免通过软件攻击安全DMA控制器,使安全DMA控制器跳过部分和安全配置有关的链表,只执行另一部分链表。
优化的,数据搬运监视模块205,还可以用于对安全DMA控制器主设备接口搬运数据过程的总线行为监视;
对数据搬运过程总线行为的监视是指:安全DMA控制器的数据搬运监视模块在数据搬运控制信息通过完整性校验之后开始监视安全DMA控制器的主设备接口的总线行为,在当前链表所对应的数据搬运任务完成之后结束监视。数据搬运监视模块对数据搬运过程的总线行为监视数据进行运算,在数据搬运完成后把运算结果与校验期望值进行比较,如果不一致则认为数据搬运过程的总线行为存在异常。数据搬运监视模块根据总线行为监视结果设置寄存器模块202中状态寄存器的总线行为异常标志。如果安全DMA控制器得知数据搬运的总线行为存在异常,则停止数据搬运,进入错误挂起状态,发出总线行为监视异常指示信号和相应的中断信号给系统,以便系统处理。
数据搬运监视模块所监视的总线行为包括但不限制于以下信号:总线地址信号、总线写控制信号、总线读数据有效指示信号、总线写数据信号、总线读数据信号。
对数据搬运过程中访问序列的总线地址、数据以及读写控制信息进行算法运算,通过比较最终运算结果和期望结果来判断安全DMA控制器执行数据搬运过程中的总线行为是否被篡改。实现了对数据的传输通道进行有效保护,避免了数据可能在传输过程中受到多种攻击手段攻击,防止安全SOC系统在安全配置或关键程序被篡改后运行,以及防止安全DMA控制器在执行数据搬运时总线地址或重要数据被伪造或被攻击,有效提高安全SOC系统对故障攻击的抵抗能力,进一步提高SOC系统的信息安全。
优化的,数据搬运监视模块205,还可以用于安全DMA控制器主设备接口总线访问超时监测;此时,寄存器模块202则需包括超时阈值寄存器,用于存储用来判断总线等待是否超时的阈值;
主设备接口204的总线访问超时检测是指:安全DMA控制器的数据搬运监视模块在链表的数据搬运控制信息通过完整性校验之后开始对安全DMA控制器的主设备接口的总线访问进行超时检测,在当前链表所对应的数据搬运任务完成之后结束检测。当安全DMA控制器通过主设备接口向总线上的从设备发出读或者写的操作时,如果在超时等待阈值寄存器所设的时钟周期个数之后仍然没有收到有效应答,那么数据搬运监视模块就认为发生了总线超时异常,并置位状态寄存器的总线超时标志。安全DMA控制器得知总线超时候,停止数据搬运,进入出错挂起状态,发出超时异常指示信号和相应的中断信号给系统,以便系统处理。
本发明具体实施方式一的安全DMA控制器,在考虑到系统存在死机或崩溃的情形或因恶意攻击而导致的假死,而造成总线等待超时,用户可配置总线超时等待阈值,当总线等待时钟周期个数超过预设的超时阈值时,给出超时警告信号。SOC系统可以根据超时警告信息强制恢复总线传输,并进行异常处理,这种机制有效的防止了SOC系统长期处于意外超时等待状况的非正常行为,提高了总线的工作效率,确保一些关键任务的及时执行,如:保证安全初始化及时完成,或安全数据及时送达目的地址。同时也可以在发现超时异常后复位系统,避免安全信息的泄漏。数据搬运监视模块205不影响安全DMA控制器的主设备接口204的正常总线访问,同时也不会影响其他主设备的总线访问。
如图2所示,本发明具体实施方式二的一种安全DMA控制器,具体实施方式二相对于具体实施方式一而言,主要的区别在于,具体实施方式二的数据搬运监视模块205A具体包括:硬件算法引擎205A1以及总线等待超时计数器205A2。
硬件算法引擎205A1,用于对数据搬运过程的总线行为监视数据进行运算,在数据搬运完成后把运算结果与校验期望值进行比较,如果不一致则认为数据搬运过程的总线行为存在异常;
更进一步的,硬件算法引擎205A1还具体包括:第一硬件算法引擎,用于数据搬运控制信息的完整性校验,以数据搬运控制信息作为输入数据进行运算;第二硬件算法引擎,用于数据搬运的总线行为监视,以有效的总线行为监视数据作为数据输入进行运算。
总线等待超时计数器205A2,用于对系统时钟周期进行计数,当计数值大于阈值后,发出超时信号给数据搬运监视模块。
如图3,本发明具体实施方式一或二的安全DMA控制器安全DMA控制器的链表结构示意图,安全DMA控制器的链表按如下所述结构储存:
安全DMA控制器所执行的链表包含5项内容。前面4项内容属于数据搬运控制信息,第五个项内容属于链表校验数据。
数据搬运控制信息包括:数据长度、数据源地址、数据目的地址、下一链表描述符。处理器不可以直接定义安全DMA控制器所执行的链表的内容,则具体是指:处理器不能定义数据长度、数据源地址和数据的目的地址,下一链表描述符,链表校验数据。
下一链表描述符包括两个信息:第一个是下一链表的地址,第二个终结链表指示。终结链表指示则表示当前链表是最后一个链表,安全DMA控制器在完成当前链表的数据传输后结束链表的读取与数据搬运,进入空闲状态,等待下一个的数据传输请求。
链表校验数据包括:一部分是安全DMA控制器在执行数据搬运控制信息的完整性校验期望值;另一部分是安全DMA控制器在执行数据搬运过程的总线行为监视数据的校验期望值。
数据搬运控制信息的四项数据,每一项数据的长度为一个字,即链表的数据搬运控制信息总长度为4个字。
第五项是链表校验数据,其数据长度根据数据搬运监视模块内的硬件算法引擎所采用的具体算法有关,不做具体的规定。
除了首链表外,每个链表的链表校验数据包括数据搬运控制信息的完整性校验期望值和安全DMA控制器数据搬运总线行为监视数据的校验期望值,都是以上一个链表的链表校验数据为初值进行计算所得的。根据上述校验数据计算规则,链表描述符寄存器的数值必须指向数据搬运的首链表,否则无法通过链表的数据搬运控制信息完整性校验和数据搬运总线行为监视数据的校验。 由此,可以多个链表连续执行来完成一次数据传输请求所要求的数据搬运。
如图4所示,本发明具体实施方式三的数据搬运方法的流程图,该方法用于安全DMA控制器,其包括:
步骤301,设置安全DMA控制器的链表描述符,使能安全DMA控制器;具体的,处理器通过安全DMA控制器的从设备接口201设置安全DMA控制器的链表描述符寄存器选择链表;
步骤302,等待数据传输请求;具体的,安全DMA控制器等待数据传输请求,安全DMA控制器102默认处于硬件请求模式,根据硬件请求信号的数据传输请求启动;安全DMA控制器,也可以配置成为软件请求模式,由软件提供数据传输请求启动;
步骤303,读取链表数据搬运控制信息和链表校验数据;具体的,安全DMA控制器读取链表描述符寄存器指向的链表,包括链表的数据传输控制信息和链表校验数据;
步骤304,判断链表数据搬运控制信息的完整性校验是否通过,如果通过,则执行步骤305,如果没有通过,则执行步骤314;具体的,数据搬运监视模块205对链表的数据搬运控制信息进行完整性校验,安全DMA控制器把链表的数据搬运控制信息和链表校验数据读取到安全DMA控制器内部之后,并不是立即分析链表的数据搬运控制信息,而是对链表的数据搬运控制信息进行完整性校验,安全DMA控制器根据数据搬运监视模块对链表的数据搬运控制信息完整性校验结果来决定是否对链表的数据搬运控制信息进行分析以得到链表的数据传输要求;
步骤305,分析链表数据搬运控制信息;具体的,安全DMA控制器对链表数据进行分析,记录数据传输的长度,数据的源地址,数据的目的地址,下一个链表描述符,下一个链表描述符包括当前链表执行完毕后是否读取下个链表以及下一个链表的存储地址;
步骤307,根据链表数据搬运控制信息搬运数据;具体的,安全DMA控制器根据链表的数据传输要求,启动安全DMA控制器的数据传输引擎203,在数据传输引擎203的控制下通过安全DMA控制器的主设备接口204对总线发起读写时序,从源地址处读取数据,然后把数据写到目的地址空间;
步骤309,判断数据搬运是否完成,如果是,则执行步骤312,如果否,则执行步骤307;具体的,安全DMA控制器进行数据搬运完成标志检查,如果还有待搬运的数据,则进入流程307,继续完成当前链表信息所要求的数据搬运;如果数据搬运完成,则进入步骤312;
步骤312,判断当前链表是否是终结链表,如果是,则执行步骤313;如果否则执行步骤303;具体的,根据当前链表数据搬运控制信息中的下一链表描述符的内容,查看当前链表是否是终结链表,如果当前链表不是终结链表,则进入流程303读取下一个链表,继续数据传输,否则进入步骤313;
步骤313,停止数据搬运,发送应答,设置链表全部完成的状态标志,产生中断;具体的,停止数据传输,发出数据传输请求应答信号,置位全部链表完成标志,输出中断信号给处理器,安全DMA控制器退出数据传输,数据传输引擎203进入空闲状态;
步骤314,停止数据搬运,设置对应的异常状态标志,产生中断,具体的,停止数据传输,置位对应的错误或异常标志,输出错误或异常指示信号给系统的相关设备,输出中断信号给处理器,安全DMA控制器退出数据传输,数据传输引擎203进入出错状态,等待错误状态解除,方可进行数据传输。上述错误或异常状态标志包括:总线应答错误,超时异常,总线行为异常。
在流程313或314之后,处理器通过查询安全DMA控制器的状态寄存器判断安全DMA控制器的状态。从而得知数据搬运是完成还是出错停止,或是数据搬运完成,但是数据搬运的总线行为存在异常。
本发明具体实施方式三的数据搬运方法,对链表的数据搬运控制信息进行完整性校验,防止安全DMA控制器取得的链表数据搬运控制信息被篡改;同时确保了链表执行完整性,避免通过软件攻击安全DMA控制器,使安全DMA控制器跳过部分和安全配置有关的链表,只执行另一部分链表。
如图5所示,本发明具体实施方式四的数据搬运方法的流程图,具体实施方式四与具体实施方式三相比,其在步骤305与步骤307之间还包括:
步骤306,安全DMA控制器开始监视DMA数据搬运;具体的,安全DMA控制器的数据搬运监视模块205开始监视安全DMA控制器的主设备接口204的总线行为,实行对数据搬运过程的实时监视;
且,在步骤307与步骤309之间还包括:
步骤308,判断总线是否出现错误应答或超时,如果是,则执行步骤314,如果否则,执行步骤309;具体的,安全DMA控制器在执行数据搬运过程中对总线返回应答和总线超时的监视,如果遇到总线错误应答或总线超时,则停止数据搬运,直接进入流程314;
在步骤309与步骤312之间还包括:
步骤310,DMA数据搬运监视器结束监视并输出结果到状态寄存器;具体的,在检测到数据搬运完成标志后,数据搬运监视模块205结束监视,并把监视数据的校验结果和期望值进行比较,得出数据搬运总线行为的监视结果,并根据监视结果设置安全DMA控制器的状态寄存器的数据搬运总线行为异常标志位。则步骤309具体为,判断数据搬运是否完成,如果是,则执行步骤310,如果否,则执行步骤307。
在考虑到系统存在死机或崩溃的情形或因恶意攻击而导致的假死,而造成总线等待超时,用户可配置总线超时等待阈值,当总线等待时钟周期个数超过预设的超时阈值时,给出超时警告信号。SOC系统可以根据超时警告信息强制恢复总线传输,并进行异常处理。
这种机制有效的防止了SOC系统长期处于意外超时等待状况的非正常行为,提高了总线的工作效率,确保一些关键任务的及时执行,如:保证安全初始化及时完成,或安全数据及时送达目的地址。同时也可以在发现超时异常后复位系统,避免安全信息的泄漏。
如图6所示,本发明具体实施方式五的数据搬运方法的流程图,具体实施方式五与具体实施方式四相比,其在步骤310与步骤312之间还包括:
步骤311,判断数据搬运总线行为监视结果是否符合预期,如果是,则执行步骤312,如果否则执行步骤314;具体的,安全DMA控制器检测数据搬运监视结果。通过数据搬运总线行为异常标志安全DMA控制器102得知本次数据搬运的总线行为是否存在异常,如果存在异常则进行入流程314,否则执行步骤312。
对数据搬运过程中访问序列的总线地址、数据以及读写控制信息进行算法运算,通过比较最终运算结果和期望结果来判断安全DMA控制器执行数据搬运过程中的总线行为是否被篡改。实现了对数据的传输通道进行有效保护,避免了数据可能在传输过程中受到多种攻击手段攻击,防止安全SOC系统在安全配置或关键程序被篡改后运行,以及防止安全DMA控制器在执行数据搬运时总线地址或重要数据被伪造或被攻击,有效提高安全SOC系统对故障攻击的抵抗能力,进一步提高SOC系统的信息安全。
实际上,具体实施方式五的步骤311也可以是在具体实施方式三的基础上增加的。由于各个步骤在前面已经做了详细描述,此处不再一一赘述。
本发明具体实施方式,由于无需针对安全 DMA 控制器划分若干受保护的安全区域和不受保护的普通区域,因此,能有效减少使用存储保护单元的安全SOC系统中对存储保护单的使用量,从而可以优化总线性能和芯片面积,提高系统的信息安全性。
本发明源地址、目的地址、数据长度等关键链表信息是本发明直接从安全链表存储地址读入的,处理器是无法直接控制链表信息,降低了处理器通过安全DMA控制器间接泄漏保密数据的风险。
本发明特别适应于数据敏感、易受攻击的多应用场景的安全SOC系统,且易于集成,不对整个芯片系统的面积和时序造成负担。
如图7所示,本发明具体实施方式六的SOC系统的方框示意图,该安全SOC系统包含:
处理器101,通过读取和执行指令控制着整个芯片的运作;
安全DMA控制器102,用于搬运保密数据和安全配置信息;所述安全DMA控制器可以为上述具体实施方式一或二中任一种,此处不再一一赘述;
总线阵列103,负责总线的复用与选通;
存储保护单元104,根据安全配置对处理器和安全DMA控制器的访问空间做一定的限制;
片上静态存储器105;
非易失性存储器106,用于存储安全DMA控制器的链表、保密数据、安全配置信息等;
安全数据处理设备107,为安全设备,实现对关键数据的处理,处理器不可以访问安全数据处理设备107;
普通设备108,处理器101有权对普通设备108进行读写。
工作中,在使用安全数据处理设备107对保密数据进行处理之前,需要对安全数据处理设备107进行配置,而基于安全考虑,上述配置行为是不可以由处理器101来完成的。因而,在非易失性存储器106里面存储安全配置信息和链表数据。通过安全DMA控制器102读取链表,根据链表信息实现对安全数据处理设备的配置。
经过安全初始化后,非易失性存储器106对所有主设备是只读的,在片内非易失性存储器106里面存储安全配置信息和链表数据。链表数据包括链表的数据搬运控制信息和链表校验数据。
如图8所示,本应用实例以CRC算法作为硬件算法引擎加以说说明,安全DMA控制器102的链表由5个字构成,前面4个字是链表的数据搬运控制信息,包括数据长度、数据源地址、数据目的地址、下一个链表描述符,第五个字是链表校验数据。链表校验数据由两部分CRC值组成,低半字是链表数据搬运控制信息CRC校验的期望值,高半字是安全DMA控制器在执行数据搬运的总线行为监视数据CRC校验的期望值,用于监视安全DMA控制器执行数据搬运的总线行为是否为链表定义的预期行为。
处理器101配置安全DMA控制器102的链表描述符寄存器,链表描述符寄存器指向用于配置安全数据处理设备的链表。当安全DMA控制器102的接收到数据传输请求后,读取链表数据,接下来数据搬运监视模块205对链表数据进行完整性校验。当链表的数据搬运控制信息通过完整性校验后,数据搬运监视模块205开始监视主设备接口204的总线行为,数据传输引擎203开始控制主设备接口204进行数据搬运。
该数据搬运实现了:把读取非易失性存储器106的安全配置信息搬运到安全数据处理模块107的配置寄存器,即对安全数据处理模块实施配置。数据搬运完成后,检查数据搬运监视模块205的监视结果,确定配置过程中的总线行为是否符合预期。如果数据搬运总线行为监视状态指示总线行为存在异常,那么根据安全SOC系统的安全级别,启动安全保护机制,禁止安全数据处理设备107启动工作或者复位整个SOC系统。从而保证了安全数据处理设备在运行之前确实经过了配置,且配置信息未受恶意攻击。
应该指出,根据不同的数据传输系统可以对上述安全DMA控制器及其数据搬运方法的具体实施方式的实现机制进行适当调整,而不是仅仅局限于以某一SOC总线系统为例的形式,只要为了系统设计需要,而对SOC所采用的总线进行调整或变更所设计的安全DMA控制器,都在采用本发明权利要求范围之内。
上述具体实施方式说明但并不限制本发明,本领域的技术人员能在权利要求的范围内设计出多个可代替实例。所属领域的技术人员应该意识到,对在没有违反如所附权利要求书所定义的本发明的范围之内,可对具体实现方案做出适当的调整、修改等。因此,凡依据本发明的精神和原则,所做的任意修改和变化,均在所附权利要求书所定义的本发明的范围之内。
Claims (10)
1.一种安全DMA控制器,其特征在于,所述安全DMA控制器用于提高数据在SOC系统中的传输安全性,所述安全DMA控制器包括:
主设备接口,用于提供所述安全DMA控制器对总线上的从设备发出读写操作的接口;
从设备接口,用于提供处理器对所述安全DMA控制器进行配置和查询的接口;
寄存器模块,包含链表描述符寄存器、状态寄存器;所述链表描述符寄存器指向首链表地址,所述安全DMA控制器启动后根据所述链表描述符寄存器读取链表,所述链表包括数据搬运控制信息以及链表校验数据;软件请求寄存器用于配置所述安全DMA控制器的请求模式以及在软件模式下设置软件请求;所述状态寄存器用于存储数据搬运过程的状态;
数据搬运监视模块,用于执行所述数据搬运控制信息的完整性校验,只有所述数据搬运控制信息通过完整性校验通过才能按照所述数据搬运控制信息进行数据搬运,否则所述数据搬运监视模块置位所述状态寄存器的链表数据完整性出错标志;
数据传输引擎,用于根据所述寄存器模块的所述链表描述符寄存器的内容,控制所述主设备接口读取链表并根据链表信息完成数据搬运。
2.如权利要求1所述的安全DMA控制器,其特征在于,
所述寄存器模块,还包括超时阈值寄存器用于存储用于判断总线等待是否超时的阈值;
所述数据搬运监视模块,还可以用于在链表的所述数据搬运控制信息通过完整性校验之后,开始对所述安全DMA控制器的主设备接口的总线访问进行超时检测,当所述安全DMA控制器通过所述主设备接口向总线上的从设备发出读或者写的操作时,当超过所述超时等待阈值寄存器所设的阈值仍然没有收到有效应答时,所述数据搬运监视模块置位所述状态寄存器的总线超时标志,停止数据搬运。
3.如权利要求1所述的安全DMA控制器,其特征在于,
所述数据搬运监视模块,还可以用于在所述数据搬运控制信息通过完整性校验之后,对数据搬运过程的总线行为监视数据进行运算,在数据搬运完成后把运算结果与校验期望值进行比较,当不一致时,设置所述寄存器模块中所述状态寄存器的总线行为异常标志,停止数据搬运。
4.如权利要求1所述的安全DMA控制器,其特征在于,所述数据搬运监视模块包括:硬件算法引擎以及总线等待超时计数器;
所述硬件算法引擎,用于对数据搬运过程的总线行为监视数据进行运算,在数据搬运完成后把运算结果与校验期望值进行比较,当不一致时,则认为数据搬运过程的总线行为存在异常;
所述总线等待超时计数器,用于对系统时钟周期进行计数,当计数值大于阈值后,发出超时信号给所述数据搬运监视模块。
5.如权利要求4所述的安全DMA控制器,其特征在于,
所述硬件算法引擎包括:第一硬件算法引擎,用于所述数据搬运控制信息的完整性校验,以所述数据搬运控制信息作为输入数据进行运算;第二硬件算法引擎,用于数据搬运的总线行为监视,以有效的总线行为监视数据作为数据输入进行运算。
6.如权利要求1所述的安全DMA控制器,其特征在于,
所述安全DMA控制器所执行的链表的所述数据搬运控制信息包括:数据长度、数据源地址、数据目的地址、下一链表描述符。
7.如权利要求1至6所述的安全DMA控制器,其特征在于,
每个链表的所述链表校验数据包括:所述安全DMA控制器在执行所述数据搬运控制信息的完整性校验期望值,所述安全DMA控制器在执行数据搬运过程的总线行为监视数据的校验期望值;且除首链表外的所述完整性校验期望值和所述总线行为监视数据的校验期望值都是以上一个链表的所述链表校验数据为初值进行计算所得的。
8.一种数据搬运方法,用于安全DMA控制器,该方法包括:
S301,设置安全DMA控制器的链表描述符,使能所述安全DMA控制器;
S302,等待数据传输请求;
S303,读取链表数据搬运控制信息和链表校验数据;
S304,判断所述链表数据搬运控制信息的完整性校验是否通过,如果通过,则执行S305,如果没有通过,则执行S314;
S305,分析所述链表数据搬运控制信息;
S307,根据所述链表数据搬运控制信息搬运数据;
S309,判断数据搬运是否完成,如果是,则执行S310,如果否,则执行S307;
S310,所述安全DMA控制器的数据搬运监视器结束监视并输出结果到状态寄存器;
S311,判断数据搬运总线行为监视结果是否符合预期,如果是,则执行S312,如果否则执行S314;
S312,判断当前链表是否是终结链表,如果是,则执行S313;如果否则执行S303;
S313,停止数据搬运,发送应答,设置链表全部完成的状态标志,产生中断;
S314,停止数据搬运,设置对应的异常状态标志,产生中断。
9.如权利要求8所述的数据搬运方法,其特征在于,该方法在在所述S305与所述S307之间还包括:
S306,安全DMA控制器开始监视DMA数据搬运;
且,在所述S307与所述S309之间还包括:
S308,判断总线是否出现错误应答或超时,如果是,则执行S314,如果否则,执行S309。
10.一种SOC系统,其特征在于所述SOC系统包括:
处理器,通过读取和执行指令控制着整个芯片的运作;
如权利要求1至7中任意一项所述的安全DMA控制器,用于搬运保密数据和安全配置信息;
总线阵列,负责总线的复用与选通;
存储保护单元,根据安全配置对所述处理器和所述安全DMA控制器的访问空间做一定的限制;
片上静态存储器;
非易失性存储器,用于存储所述安全DMA控制器的链表、保密数据、安全配置信息等;
安全数据处理设备,用于实现对关键数据的处理,所述处理器不可以访问所述安全数据处理设备;
普通设备,所述处理器有权对所述普通设备进行读写。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210534336.7A CN103034599B (zh) | 2012-12-12 | 2012-12-12 | 安全dma控制器、soc系统及其数据搬运方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210534336.7A CN103034599B (zh) | 2012-12-12 | 2012-12-12 | 安全dma控制器、soc系统及其数据搬运方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103034599A true CN103034599A (zh) | 2013-04-10 |
CN103034599B CN103034599B (zh) | 2015-07-22 |
Family
ID=48021507
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210534336.7A Expired - Fee Related CN103034599B (zh) | 2012-12-12 | 2012-12-12 | 安全dma控制器、soc系统及其数据搬运方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103034599B (zh) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103500149A (zh) * | 2013-09-29 | 2014-01-08 | 华为技术有限公司 | 直接内存访问控制器和直接内存访问控制方法 |
CN104346306A (zh) * | 2013-08-02 | 2015-02-11 | 英飞凌科技股份有限公司 | 高完整性dma操作的系统和方法 |
CN109739805A (zh) * | 2018-12-27 | 2019-05-10 | 北京中星微电子有限公司 | 配置模块的参数的方法和配置模块的参数的装置 |
CN110602166A (zh) * | 2019-08-08 | 2019-12-20 | 百富计算机技术(深圳)有限公司 | 解决数据重复发送问题的方法、终端设备和存储介质 |
CN111190842A (zh) * | 2019-12-30 | 2020-05-22 | Oppo广东移动通信有限公司 | 直接存储器访问、处理器、电子设备和数据搬移方法 |
CN111615692A (zh) * | 2019-05-23 | 2020-09-01 | 深圳市大疆创新科技有限公司 | 数据搬运方法、计算处理装置、设备及存储介质 |
CN112256605A (zh) * | 2020-11-03 | 2021-01-22 | 蔺建琪 | 安全dma控制器及数据搬运方法 |
CN110609499B (zh) * | 2019-09-18 | 2021-06-29 | 深圳市航顺芯片技术研发有限公司 | 一种adc实时性采样与非实时性采样的切换方法及设备 |
CN114661644A (zh) * | 2022-02-17 | 2022-06-24 | 之江实验室 | 辅助3d架构近存计算加速器系统的预存储dma装置 |
CN115422101A (zh) * | 2022-11-04 | 2022-12-02 | 山东云海国创云计算装备产业创新中心有限公司 | 一种dma驱动系统、方法、设备及可读存储介质 |
CN116701264A (zh) * | 2023-08-02 | 2023-09-05 | 广东匠芯创科技有限公司 | Dma控制系统的控制方法及dma控制系统 |
CN116795442A (zh) * | 2023-08-22 | 2023-09-22 | 北京象帝先计算技术有限公司 | 一种寄存器配置方法、dma控制器及图形处理系统 |
CN117521570A (zh) * | 2024-01-05 | 2024-02-06 | 北京凯芯微科技有限公司 | 总线的超时检测电路、方法、芯片及电子设备 |
CN117633920A (zh) * | 2023-12-13 | 2024-03-01 | 上海国微芯芯半导体有限公司 | 一种敏感数据传输总线架构、控制逻辑电路及传输系统 |
CN117806894A (zh) * | 2024-03-01 | 2024-04-02 | 上海励驰半导体有限公司 | 多核异构芯片及其dma控制器故障的检测方法和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1577292A (zh) * | 2003-07-28 | 2005-02-09 | 深圳市朗科科技有限公司 | 存储控制芯片及数据存储控制方法 |
CN1625736A (zh) * | 2002-02-01 | 2005-06-08 | 英特尔公司 | 用于监视计算机系统中的存储器直接访问状态的方法和系统 |
CN201489524U (zh) * | 2009-07-29 | 2010-05-26 | 深圳国微技术有限公司 | 代码完整性校验电路 |
CN102591824A (zh) * | 2011-12-27 | 2012-07-18 | 深圳国微技术有限公司 | Soc芯片系统中控制保密数据搬运的dma控制器 |
-
2012
- 2012-12-12 CN CN201210534336.7A patent/CN103034599B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1625736A (zh) * | 2002-02-01 | 2005-06-08 | 英特尔公司 | 用于监视计算机系统中的存储器直接访问状态的方法和系统 |
CN1577292A (zh) * | 2003-07-28 | 2005-02-09 | 深圳市朗科科技有限公司 | 存储控制芯片及数据存储控制方法 |
CN201489524U (zh) * | 2009-07-29 | 2010-05-26 | 深圳国微技术有限公司 | 代码完整性校验电路 |
CN102591824A (zh) * | 2011-12-27 | 2012-07-18 | 深圳国微技术有限公司 | Soc芯片系统中控制保密数据搬运的dma控制器 |
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104346306A (zh) * | 2013-08-02 | 2015-02-11 | 英飞凌科技股份有限公司 | 高完整性dma操作的系统和方法 |
CN103500149A (zh) * | 2013-09-29 | 2014-01-08 | 华为技术有限公司 | 直接内存访问控制器和直接内存访问控制方法 |
CN109739805A (zh) * | 2018-12-27 | 2019-05-10 | 北京中星微电子有限公司 | 配置模块的参数的方法和配置模块的参数的装置 |
CN109739805B (zh) * | 2018-12-27 | 2023-06-23 | 北京中星微电子有限公司 | 配置模块的参数的方法和配置模块的参数的装置 |
CN111615692A (zh) * | 2019-05-23 | 2020-09-01 | 深圳市大疆创新科技有限公司 | 数据搬运方法、计算处理装置、设备及存储介质 |
CN110602166A (zh) * | 2019-08-08 | 2019-12-20 | 百富计算机技术(深圳)有限公司 | 解决数据重复发送问题的方法、终端设备和存储介质 |
CN110602166B (zh) * | 2019-08-08 | 2022-03-08 | 百富计算机技术(深圳)有限公司 | 解决数据重复发送问题的方法、终端设备和存储介质 |
CN110609499B (zh) * | 2019-09-18 | 2021-06-29 | 深圳市航顺芯片技术研发有限公司 | 一种adc实时性采样与非实时性采样的切换方法及设备 |
CN111190842A (zh) * | 2019-12-30 | 2020-05-22 | Oppo广东移动通信有限公司 | 直接存储器访问、处理器、电子设备和数据搬移方法 |
CN112256605A (zh) * | 2020-11-03 | 2021-01-22 | 蔺建琪 | 安全dma控制器及数据搬运方法 |
CN112256605B (zh) * | 2020-11-03 | 2024-05-17 | 蔺建琪 | 安全dma控制器及数据搬运方法 |
CN114661644A (zh) * | 2022-02-17 | 2022-06-24 | 之江实验室 | 辅助3d架构近存计算加速器系统的预存储dma装置 |
CN114661644B (zh) * | 2022-02-17 | 2024-04-09 | 之江实验室 | 辅助3d架构近存计算加速器系统的预存储dma装置 |
CN115422101A (zh) * | 2022-11-04 | 2022-12-02 | 山东云海国创云计算装备产业创新中心有限公司 | 一种dma驱动系统、方法、设备及可读存储介质 |
CN116701264B (zh) * | 2023-08-02 | 2024-02-23 | 广东匠芯创科技有限公司 | Dma控制系统的控制方法及dma控制系统 |
CN116701264A (zh) * | 2023-08-02 | 2023-09-05 | 广东匠芯创科技有限公司 | Dma控制系统的控制方法及dma控制系统 |
CN116795442B (zh) * | 2023-08-22 | 2023-12-19 | 北京象帝先计算技术有限公司 | 一种寄存器配置方法、dma控制器及图形处理系统 |
CN116795442A (zh) * | 2023-08-22 | 2023-09-22 | 北京象帝先计算技术有限公司 | 一种寄存器配置方法、dma控制器及图形处理系统 |
CN117633920A (zh) * | 2023-12-13 | 2024-03-01 | 上海国微芯芯半导体有限公司 | 一种敏感数据传输总线架构、控制逻辑电路及传输系统 |
CN117521570A (zh) * | 2024-01-05 | 2024-02-06 | 北京凯芯微科技有限公司 | 总线的超时检测电路、方法、芯片及电子设备 |
CN117521570B (zh) * | 2024-01-05 | 2024-04-02 | 北京凯芯微科技有限公司 | 总线的超时检测电路、方法、芯片及电子设备 |
CN117806894A (zh) * | 2024-03-01 | 2024-04-02 | 上海励驰半导体有限公司 | 多核异构芯片及其dma控制器故障的检测方法和装置 |
CN117806894B (zh) * | 2024-03-01 | 2024-05-28 | 上海励驰半导体有限公司 | 多核异构芯片及其dma控制器故障的检测方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN103034599B (zh) | 2015-07-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103034599A (zh) | 安全dma控制器、soc系统及其数据搬运方法 | |
CN102591824B (zh) | Soc芯片系统中控制保密数据搬运的dma控制器 | |
CN106682497B (zh) | 在管理程序模式下安全执行代码的系统和方法 | |
CN102541765B (zh) | 处理器主存储器的存储器内容的安全保护 | |
US9497029B2 (en) | Hardening of direct anonymous attestation from side-channel attack | |
CN103377349B (zh) | 安全控制的多处理器系统 | |
WO2016029761A1 (zh) | 安全智能终端设备、及信息处理方法 | |
JP6017709B2 (ja) | 階層化された仮想マシンインテグリティモニタリング | |
CN109840430A (zh) | Plc的安全处理单元及其总线仲裁方法 | |
US10691627B2 (en) | Avoiding redundant memory encryption in a cryptographic protection system | |
CN109558372B (zh) | 用于安全处理器的设备和方法 | |
CN112818327A (zh) | 基于TrustZone的用户级代码和数据安全可信保护方法及装置 | |
CN110851188A (zh) | 一种基于双体架构的国产plc可信链实现装置及方法 | |
US10609013B2 (en) | Twin factor authentication for controller | |
US10419436B2 (en) | Method to improve keyboard, video and mouse (KVM) security on blocking incoming KVM privilege request | |
CN114065257A (zh) | 地址空间的保护方法、保护装置、设备和存储介质 | |
CN110276214A (zh) | 一种基于从机访问保护的双核可信soc架构及方法 | |
EP3646216B1 (en) | Methods and devices for executing trusted applications on processor with support for protected execution environments | |
US9652232B2 (en) | Data processing arrangement and method for data processing | |
US20210224386A1 (en) | Electronic system and method for preventing malicious actions on a processing system of the electronic system | |
CN107203722B (zh) | 一种虚拟化数据隔离交换方法及装置 | |
EP3274895B1 (en) | System management mode trust establishment for os level drivers | |
EP3314516B1 (en) | System management mode privilege architecture | |
Nithyanand et al. | POSTER: Making the case for intrinsic personal physical unclonable functions (IP-PUFs) | |
CN107194249A (zh) | 系统攻击检测方法及其系统 |
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 | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: 518000 Guangdong Province Shenzhen Nanshan District High-tech Industrial Park South District High-tech Nandao National Micro-R&D Building 1 Floor West Part, 2 Floors Patentee after: GUOWEI GROUP (SHENZHEN) Co.,Ltd. Address before: 518000 2F, Shenzhen new high tech Industrial Park, Guangdong, China. Patentee before: SHENZHEN STATE MICRO TECHNOLOGY Co.,Ltd. |
|
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: 20150722 |