系统级芯片以及使用系统级芯片的装置和扫描方法

文档序号:7760204阅读:212来源:国知局
专利名称:系统级芯片以及使用系统级芯片的装置和扫描方法
技术领域
与示例性实施例一致的方法和设备涉及一种具有安全功能的系统级芯片(SOC) 以及使用该SOC的装置和扫描方法。
背景技术
电子装置和用电装置(以下称为“装置”)已经被用于各种目的。例如,诸如个人计算机、服务器、移动电话、个人数字助理(PDA)或智能电话的装置除了支持原有功能以外,还支持附加功能(诸如,财务交易、互联网购物或互联网电话服务)。然而,在许多情况下通过网络来支持这样的附加功能,并且当装置执行附加功能时,它们变得更有可能暴露于诸如病毒的恶意软件。随着对用于半导体知识产权(IP)的系统级芯片(SOC)的使用的增长趋势,已经需要一种能够加强装置的安全的S0C。

发明内容
一个或更多示例性实施例可克服上述缺点和上面未描述的其它缺点。然而,应理解一个或更多示例性实施例不需要克服上述缺点,并可以不克服上述的任何问题。一个或更多示例性实施例提供了一种系统级芯片(SOC)以及使用该SOC的装置和扫描方法。一个或更多示例性实施例还提供了一种具有安全功能的用于半导体知识产权 (IP)的soc、使用该SOC的装置和扫描方法。一个或更多示例性实施例还提供了一种使用SOC或用于半导体IP的SOC的病毒扫描方法。根据示例性实施例的一方面,提供了一种用于半导体知识产权(IP)的系统级芯片(SOC),所述SOC包括接口,接收扫描数据;解密单元,对加密签名数据进行解密;反病毒引擎,使用解密签名数据确定病毒是否存在于扫描数据中。根据另一示例性实施例的一方面,提供了一种装置,包括主模块,具有用于确定其中是否存在病毒的扫描数据;用于半导体IP的S0C,从主模块接收扫描数据并使用可更新的签名数据确定病毒是否存在于接收的扫描数据中。根据另一示例性实施例的一方面,提供了一种在装置的主板中操作的扫描病毒是否存在于扫描数据中的方法,所述方法包括在主板中安装用于确定病毒是否存在于扫描数据中的用于半导体IP的SOC ;由SOC从主板接收扫描数据,并且由SOC将扫描数据与可更新的签名数据进行比较并确定病毒是否存在于扫描数据中。示例性实施例的另外的方面和优点将在详细描述中被阐述,并且通过详细描述将是明显的,或者可以通过示例性实施例的实施而得知。


通过参照附图详细描述示例性实施例,上述和/或其它方面将会更加清楚,其中图1是示出根据示例性实施例的使用安装有系统级芯片(SOC)的装置的系统的框图;图2是示出根据示例性实施例的使用用于半导体知识产权(IP)的SOC的主板的框图;图3是示出根据另一示例性实施例的使用用于半导体IP的SOC的主板的框图;图4是示出根据另一示例性实施例的使用用于半导体IP的SOC的主板的框图;图5是示出根据另一示例性实施例的使用用于半导体IP的SOC的主板的框图;图6是示出根据另一示例性实施例的使用用于半导体IP的SOC的主板的框图;图7是示出根据另一示例性实施例的使用用于半导体IP的SOC的主板的框图;图8是示出根据示例性实施例的SOC的框图;图9是示出根据示例性实施例的用于半导体IP的SOC的框图;图10是示出根据示例性实施例的反病毒引擎的硬件部分的框图;图11是示出根据示例性实施例的防火墙的硬件部分的框图;图12是示出根据示例性实施例的安装在主板上的用于半导体IP的SOC的示例的示图;图13是示出根据另一示例性实施例的安装在主板上的用于半导体IP的SOC的示例的示图;图14是示出根据另一示例性实施例的安装在主板上的用于半导体IP的SOC的示例的示图;图15是示出根据示例性实施例的使用SOC的病毒扫描方法的流程图;图16是示出根据示例性实施例的在使用SOC的病毒扫描方法中使用的更新处理的流程图;图17是示出根据另一示例性实施例的在使用SOC的病毒扫描方法中使用的更新处理的流程图;图18是示出根据示例性实施例的在使用SOC的病毒扫描方法中使用的数据包过滤处理的流程图;图19是示出根据另一示例性实施例的在使用SOC的病毒扫描方法中使用的数据包过滤处理的流程图;图20是示出根据示例性实施例的在使用SOC的病毒扫描方法中使用的加密和解密处理的流程图;图21是示出根据另一示例性实施例的在使用SOC的病毒扫描方法中使用的加密和解密处理的流程图;图22是示出根据另一示例性实施例的在使用SOC的病毒扫描方法中使用的加密和解密处理的流程图;以及图23到图观是用于解释根据示例性实施例的SOC的效果的示图。
具体实施例方式现在将参照附图对示例性实施例进行更充分的描述,以使得多方面、特点和优点变得清楚。然而,示例性实施例可以以多种不同形式实施,而不应理解为局限于在此阐述的示例性实施例。此外,提供这些示例性实施例以使本公开将是彻底和完整的,并将发明构思的范围完全传达给本领域的普通技术人员。应该理解,当元件、层或区域被称为在另一元件、层或区域“之上”时,所述元件、层或区域可直接地在另一元件、层或区域之上,或可间接地在另一元件、层或区域之上。在此使用的术语的目的仅仅是描述示例性实施例,而不应作为发明构思的限制。 除非上下文另外明确指出,如在此使用的单数形式“一”、“一个”和“该”也可意于包括复数形式。还应该理解,当在说明书中使用术语“包含”和/或“包括”时,术语“包含”和/或 “包括”指定陈述的特性、整体、步骤、操作、层、区域、元件、组件和/或它们的组的存在,但并不排除一个或多个其它特性、整体、步骤、操作、层、区域、元件、组件和/或它们的组的存在或添加。如在此使用的,术语“和/或”包括一个或多个关联的列出项的任何和所有组合。图1是示出根据示例性实施例的使用安装有系统级芯片(SOC)的装置的系统的框图。参照图1,根据示例性实施例的系统包括装置和与所述装置通信的服务器100(以下,称为“更新服务器”)。所述装置包括主模块200和SOC 250。主模块200和SOC 250可被安装在主板上。 SOC 250可实现为用于半导体知识产权(IP)的SOC (例如,半导体IP核心或半导体IP块) 或通用S0C。为了解释方便,通用SOC表示除了用于半导体IP的SOC之外的所有类型的芯片。另外,只要区分通用SOC和用于半导体IP的SOC不能获得特定权益,在整个说明书中, 术语“S0C”就表示通用SOC和用于半导体IP的SOC两者。另外,本说明书中使用的术语 “病毒”包含引起装置故障的所有类型的恶意代码。SOC 250从主模块200接收诸如执行文件或数据文件的在主模块200中使用或操作的数据(称为“扫描数据”),并确定病毒是否存在于扫描数据中。为了实现这个,SOC 250 可包括反病毒引擎,将在后面进行描述。根据示例性实施例,SOC 250可通过将扫描数据与签名(signature)数据进行比较来确定病毒是否存在于扫描数据中。签名数据可存储在主模块200或SOC 205中,并可被主模块200或S0C205管理。 如果签名数据存储在主模块200中,则SOC 250从主模块200接收签名数据并执行病毒扫描操作。更新服务器100可将用于更新的签名数据(S卩,更新签名数据)发送到所述装置。 根据示例性实施例,更新服务器100可根据其自身的更新计划将用于更新的签名数据发送到所述装置(以下,称为“推动(push)方法”)。或者,如果存在来自所述装置的更新请求, 则更新服务器100可将用于更新的签名数据发送到所述装置(以下,称为“拉动(pull)方法”)。根据示例性实施例,更新服务器100可包括SOC 250中包括的用于更新反病毒引擎(以下,称为“AV”或“AV引擎”)或防火墙(以下,称为“防火墙引擎”、“FW”或“FW引擎”)的数据,并且签名可以以与当更新服务器100发送签名数据时类似的拉动方法或推动方法将该数据发送到所述装置。拉动方法或推动方法仅是示例,本公开不限于这些方法。可以以这些方法的组合或任何其它不同方法将用于更新的数据发送到所述装置。根据示例性实施例,当将用于更新的数据发送到所述装置时,更新服务器100可对用于更新的数据进行加密。在本说明书中,“用于更新的数据”包括“用于更新的防火墙数据”、“用于更新的反病毒引擎数据”和“用于更新的签名数据”中的至少一个,并根据情况包括所有上述三种数据或者上述三种数据中的一个或多个。根据示例性实施例,当将用于更新的数据发送到所述装置时,更新服务器100可对用于更新的数据进行加密。根据示例性实施例,每次在更新服务器100与所述装置之间建立会话时,可使用新加密密钥。根据示例性实施例,更新服务器100可包括更新管理单元101、加密和解密单元 103以及数据存储单元105。数据存储单元105可存储用于更新的签名数据以及AV和/或 Fff引擎。图20是示出根据示例性实施例的在使用SOC的病毒扫描方法中使用的加密和解密处理的流程图。下面将参照图1和图20详细解释更新服务器100的加密操作。参照图1和图20,更新服务器100的加密和解密单元103可产生公共密钥和私密密钥。公共密钥和私密密钥是彼此成对的非对称密钥,并且可以是在RSA算法中使用的公共密钥和私密密钥。如果存在来自所述装置的接收用于更新的数据的连接请求,或者如果更新服务器100意于将用于更新的数据发送到所述装置,则更新服务器100可将公共密钥发送到所述装置。所述装置可产生会话密钥,并使用从更新服务器100发送的公共密钥以及非对称密钥加密算法(例如,RSA算法)对会话密钥进行加密。非对称密钥加密算法是更新服务器100已经同意的算法。在当前示例性实施例中,会话密钥是在对称密钥加密算法(例如,AES-128算法) 中使用的对称密钥。所述装置将使用公共密钥加密的会话密钥以及关于对称密钥加密算法的信息发送到更新服务器100。关于对称密钥加密算法的信息可被发送到服务器100而不进行加密。 或者,可使用公共密钥对关于对称密钥加密算法的信息进行加密。根据示例性实施例,更新服务器100可使用与分配给所述装置的公共密钥成对的私密密钥对会话密钥进行解密。另外,如果关于对称密钥加密算法的信息已经使用公共密钥被进行加密并从所述装置被发送,则更新服务器100可使用私密密钥对关于对称密钥加密算法的信息进行解密。更新服务器100可基于关于加密算法的信息来选择将被使用的加密算法。之后, 更新服务器100使用选择的加密算法和会话密钥对用于更新的数据进行加密,并将该数据发送到所述装置。所述装置使用会话密钥对从数据服务器100发送的数据进行解密,并执行更新操作。在当前示例性实施例中,以非对称密钥加密方案加密并发送会话密钥,以对称密钥加密方案加密并发送用于更新的数据。然而,这仅是示例。可仅以非对称密钥加密方案或对称密钥加密方案对会话密钥和用于更新的数据进行加密。另外,以对称密钥加密方案对会话密钥进行加密,而以非对称密钥加密方案对用于更新的数据进行加密。在非对称密钥加密方案时,使用RSA加密。然而,应该理解另一示例性实施例不限于此。例如,可使用诸如Rabin加密、EIGamal加密或椭圆曲线加密的另一加密方案。另外,在对称密钥加密方案时,使用AES-128。然而,应该理解另一示例性实施例不限于此。例如,可使用诸如DES加密的另一加密方案。再次参照图1,从更新服务器100发送到所述装置的用于更新的数据被发送到主模块200,并随后被发送到SOC 250。为了实现这个,所述装置的主模块200可包括用于以空中下载(OTA)通信方法从更新服务器100接收用于更新的数据的OTA接口(未示出)或者用于通过网络与更新服务器100进行通信的网络接口(未示出)。根据示例性实施例,可由主模块200存储和管理签名数据,而不是由SOC 250存储和管理签名数据。在这种情况下,用于更新的签名数据不被发送到SOC 250,用于更新AV引擎或防火墙的数据被发送到 SOC 250。根据示例性实施例,从更新服务器100发送到所述装置的用于更新的数据可被直接发送到SOC 250。为了实现这个,SOC 250可包括用于以OTA通信方法从更新服务器100 接收用于更新的数据的OTA接口(未示出)或者用于通过网络从更新服务器100接收用于更新的数据的网络接口(未示出)。根据示例性实施例,SOC 250可包括诸如中央处理单元(CPU)的独立处理器或存储器,以如上所述执行确定存在/不存在病毒的扫描操作或执行数据过滤操作。或者,SOC 250可共享主模块200的处理器和/或存储器,以执行上述操作。根据示例性实施例,所述系统还可包括web服务器50。web服务器50可以是对所述装置提供诸如交税、网上银行和在线购物的各种web服务的服务器。在这种情况下,SOC 250可将预定的安全策略应用于通过网络接收的数据包以执行过滤操作。根据示例性实施例,SOC 250可仅使从特定服务器接收的数据包通过,而阻止通过其它服务器接收的数据包通过。例如,SOC 250使从更新服务器100接收的数据包或从web 服务器50接收的数据包通过,而阻止从其它服务器接收的数据包通过。在当前示例性实施例中,可安装SOC 250的任何装置可被用作所述装置。例如,所述装置可以是计算机、蜂窝电话、PDA或智能电话。图2是示出根据示例性实施例的使用用于半导体IP的SOC的主板的框图。参照图2,根据示例性实施例的使用用于半导体IP的SOC的主板包括主模块和用于半导体IP的S0C。主模块包括主处理器(CPU_MAIN)201、主存储器203、用户接口(UI)应用单元205 和存储单元211。UI应用单元205可包括AV/FW应用207和AV/FW驱动器209,存储单元 211可存储装置信息213和更新服务器信息215。签名数据217可存储在存储单元211或用于半导体IP的SOC中。用于半导体IP的SOC可包括网络接口 251、处理器(0 [500253、50(存储器255、 防火墙(FW) 257、输入/输出(I/O)接口 263和反病毒(AV)引擎沈5。防火墙257可包括包识别单元259和包过滤单元。如上所述,签名数据存储单元267可作为可选元件包括在用于半导体IP的SOC中,或可包括在主模块中。以下,将参照图2依次解释更新操作、病毒扫描操作和过滤操作。更新操作
基于根据示例性实施例的拉动方法,AV/FW应用207可通过网络接口 251请求到更新服务器(例如,图1的更新服务器100)的连接。可通过参照存储在存储单元211中的更新服务器信息215来得知关于更新服务器的信息。所述请求可包括装置信息213,诸如关于AV引擎、防火墙和/或签名数据的当前版本的信息。更新服务器100可基于装置信息 213确定是否发送用于更新的数据。防火墙257可参照服务器信息关于连接请求执行过滤操作。更新服务器100将用于更新的数据发送到网络接口 251,并且用于更新的数据通过防火墙257被发送到AV/FW应用207。之后,AV/FW应用207将用于更新的数据发送到I/ 0接口沈3,并且处理器253(CPU_S0C)使用通过I/O接口 263发送的用于更新的数据来更新存储在签名数据存储单元267中的防火墙引擎或反病毒引擎或签名数据。如果签名数据存储在主模块的存储单元211中而不是签名数据存储单元沈7中,则AV/FW应用207可仅将用于更新反病毒引擎或防火墙引擎的数据发送到I/O接口沈3。或者,应来自AV/FW应用207的请求已经通过网络接口 251接收的用于更新的数据通过防火墙257,并被直接用于更新操作,而不被发送到主模块。换句话说,如果确定通过防火墙257的数据包是用于更新的数据,则处理器253可以不将该数据发送到主模块,并直接更新AV引擎、防火墙引擎和/或签名数据。另一方面,如果确定通过防火墙257的数据包不是用于更新的数据,则处理器253可通过网络接口 251将该数据发送到主模块。在根据示例性实施例的推动方法中,更新服务器(例如,图1的更新服务器100) 可将用于更新的数据将通过网络接口 251被发送通知给AV/FW应用207。之后,AV/FW应用 207将从更新服务器100接收的用于更新的数据发送到I/O接口沈3,并且处理器253 (CPU_ S0C)使用通过I/O接口 263发送的用于更新的数据来更新存储在签名数据存储单元267中的防火墙引擎或反病毒引擎或签名数据。如上所述,如果签名数据存储在主模块的存储单元211中而不是签名数据存储单元沈7中,则AV/FW应用207仅将用于更新反病毒引擎或防火墙引擎的数据发送到I/O接口沈3。扫描操作根据示例性实施例,UI应用单元205为用户提供屏幕以输入执行扫描操作的指令。如果通过该屏幕输入执行扫描操作的指令,则AV/FW应用207通过AV/FW驱动器209 将扫描数据发送到SOC至多预定量。I/O接口 263通过AV/FW驱动器209接收数据,AV引擎265对通过I/O接口 263接收的扫描数据执行扫描操作。或者,UI应用单元205可适应于根据预定的扫描计划将扫描数据发送到I/O接口 2630例如,UI应用单元205可提供用于从用户接收扫描计划的屏幕,并根据通过该屏幕输入的扫描计划将扫描数据发送到I/O接口沈3。或者,UI应用单元205可以不从用户接收扫描计划,并可根据存储为默认的扫描计划发送扫描数据或根据从外部服务器(例如,管理服务器)接收的扫描计划发送扫描数据。过滤操作根据示例性实施例,防火墙257可对通过网络接口 251接收或发送的所有数据包执行过滤操作。例如,包识别单元259识别数据包来自哪里和去往哪里,并且包过滤单元 261根据预定的过滤策略阻止数据包通过或使数据包通过。根据示例性实施例,防火墙257可对通过网络接口 251接收或发送的所有数据执行过滤操作。根据示例性实施例,将在下面描述的AV引擎沈5、防火墙257以及加密和解密引擎(未示出)可由硬件和/或软件实现。如果AV引擎沈5、防火墙257以及加密和解密引擎中的至少一些由软件实现,则由软件实现的元件可通过CPU 253载入到SOC存储器255。 如果AV引擎沈5、防火墙257以及加密和解密引擎(未示出)中的至少一些由软件实现,则 SOC还可包括诸如闪存的程序存储单元(未示出),用于存储这样的软件。在这种情况下, SOC可适应于共享主模块的CPU或存储器。这将在下面详细解释。在图2的示例性实施例中,通过特定接口在主模块、更新服务器和SOC中发送和接收数据。然而,这仅是示例,在不脱离本公开的精神的限制内,可以以不同方法发送和接收数据。图3是示出根据另一示例性实施例的使用用于半导体IP的SOC的主板的框图。参照图3,根据另一示例性实施例的主板包括主模块和用于半导体IP的S0C。图 3的示例性实施例与图2的示例性实施例的区别在于SOC包括OTA接口 369。除了 OTA接口 369之外的图3的其它元件与以相似的方式编号的图2中的元件执行相同的操作。因此,将省略对这些元件的详细描述。例如,AV引擎365的扫描操作、防火墙357的过滤操作、UI应用单元305将扫描数据发送到SOC的操作以及接口 351、363的操作与AV引擎265、防火墙257、UI应用单元205和接口 251、263的操作相同。将主要描述图2的示例性实施例与图3的示例性实施例之间的区别。参照图3, OTA接口 369可直接从更新服务器(未示出)(例如,图1的更新服务器100)接收用于更新的数据。使用通过OTA接口 369接收的用于更新的数据,可更新存储在SOC中的FW引擎 357或AV引擎365或者存储在签名数据存储单元367中的签名数据。例如,处理器353可使用通过OTA接口 369接收的用于更新的数据来执行上述更新操作。根据示例性实施例,签名数据可存储在主模块的存储单元311中,而不是签名数据存储单元367中。在这种情况下,如果通过OTA接口 369接收的用于更新的数据是关于签名数据,则处理器353可将用于更新的数据发送到主模块。之后,主模块的处理器301可使用用于更新签名数据的数据来更新预存储在存储单元311中的数据。或者,除了处理器 301之外的主模块的元件(例如,AV应用307)可将这样的用于更新签名数据的数据存储在存储单元311中,并管理该数据。根据示例性实施例,防火墙357可对从OTA接口 369接收的数据包执行过滤操作。 防火墙357的过滤操作对于意于实施本公开的人是可选的,并且防火墙367不是必须适应于对从OTA接口 369接收的数据包执行过滤操作。图4是示出根据另一示例性实施例的使用用于半导体IP的SOC的主板的框图。参照图4,根据另一示例性实施例的主板包括主模块和用于半导体IP的S0C。图 4的示例性实施例与图2的示例性实施例的区别在于主模块包括网络接口 419,S0C包括用于与网络接口 419进行通信的收发单元471。图4的其它元件与以相似的方式编号的图2 中的元件执行相同的操作。例如,AV引擎465的扫描操作、防火墙457的过滤操作以及UI 应用单元405的将扫描数据发送到SOC的操作与AV引擎沈5、防火墙257、UI应用单元205 和接口 251、263的操作相同。另外,图4的示例性实施例中的更新操作可以与图2的示例性实施例中的拉动或推动方法的更新操作相同。
将主要描述图2的示例性实施例与图4的示例性实施例之间的区别。参照图4, SOC可以通过在主模块中提供的网络接口 419与外部源进行通信或从外部源接收数据。例如,用于更新的数据通过网络接口 419被接收并被合适的元件(例如,CPU_MAIN 401或AV/FW应用407)控制发送到S0C。可根据用于更新的数据存储在主模块的存储单元 411中还是SOC的存储单元467中来将用于更新签名数据的数据发送到SOC或不将用于更新签名数据的数据发送到S0C。收发单元471从主模块接收用于更新的数据,防火墙457对用于更新的数据执行过滤操作。在过滤操作之后,使用用于更新的数据来更新预存储的数据。根据示例性实施例,除了用于更新的数据之外,其它数据也可通过网络接口 419 被接收并被发送到S0C。之后,由防火墙457对数据进行过滤,随后通过收发单元471将过滤的数据发送到主模块。图5是示出根据另一示例性实施例的使用用于半导体IP的SOC的主板的框图。参照图5,根据另一示例性实施例的主板包括主模块和用于半导体IP的S0C。图5 的示例性实施例与图4的示例性实施例的区别在于主模块还包括OTA接口 521。除了 OTA 接口 521之外的图5的其它元件与以相似的方式编号的图4中的元件执行相同的操作。例如,AV引擎565的扫描操作、防火墙557的过滤操作以及UI应用单元505的将扫描数据发送到SOC的操作与AV引擎465、防火墙457、UI应用单元405和接口 451、463的操作相同。 另外,图5的实施例中的更新操作可以与图2的实施例中的拉动或推动方法的更新操作相同。将主要描述图4的示例性实施例与图5的示例性实施例之间的区别。图5的示例性实施例与图4的示例性实施例的区别在于通过OTA接口 521接收用于更新的数据。例如,OTA接口 521从更新服务器(例如,图1的更新服务器100)接收用于更新的数据,用于更新的数据通过I/O接口 563或收发单元571被发送到S0C。如果用于更新的数据通过I/ 0接口 563被发送到S0C,则可不对用于更新的数据进行过滤。如果用于更新的数据通过收发单元571被发送到S0C,则可由防火墙557对用于更新的数据进行过滤。通过网络接口 519接收的数据包可从预定的服务器被发送,而不是从更新服务器被发送。在这种情况下,数据包可被发送到SOC的收发单元571,并可由防火墙557进行过滤ο在当前示例性实施例中,网络接口 519不接收用于更新的数据。然而,这仅是示例。用于更新的数据由网络接口 519和OTA接口 521的每一个接收。在这种情况下,通过网络接口 519接收的用于更新的数据可被发送到收发单元571并被过滤。另一方面,通过OTA接口 521接收的用于更新的数据可被发送到收发单元571或 I/O接口 563。如果收发单元571接收用于更新的数据,则在数据由防火墙557过滤之后执行更新操作。如果I/O接口 563接收用于更新的数据,则执行更新操作而不进行过滤操作。根据示例性实施例,签名数据可存储在主模块的存储单元510中。在这种情况下, 如果OTA接口 521接收用于更新签名数据的数据,则该数据被用于更新存储在存储单元510 中的签名数据而不被发送到S0C。根据另一示例性实施例,即使OTA接口 521接收用于更新签名数据的数据,也可执行过滤操作。在这种情况下,用于更新签名数据的数据被发送到SOC的收发单元571。防火墙557对用于更新签名数据的数据进行过滤,并通过收发单元571将用于更新签名数据的数据重新发送到主模块。之后,主模块更新存储在存储单元511中的签名数据。根据另一示例性实施例,如果网络接口 519接收用于更新签名数据的数据,则可在防火墙557对用于更新签名数据的数据的过滤操作已经完成之后,更新存储在主模块的存储单元511或SOC的存储单元567中的签名数据。图6是示出根据另一示例性实施例的使用用于半导体IP的SOC的主板的框图。参照图6,根据另一示例性实施例的主板包括主模块和用于半导体IP的S0C。图 6的示例性实施例与图5的示例性实施例的区别在于SOC还包括加密和解密引擎671。除了加密和解密引擎671之外的图6的其它元件与以相似的方式编号的图5中的元件执行相同的操作,因此将省略对这些元件的详细描述。例如,AV引擎665的扫描操作、防火墙657 的过滤操作以及UI应用单元605的将扫描数据发送到SOC的操作与AV引擎565、防火墙 557、UI应用单元505和接口 551、563的操作相同。另外,图6的实施例中的更新操作可以与图2的实施例中的拉动或推动方法的更新操作相同。将主要描述图5的示例性实施例与图6的示例性实施例之间的区别。图6的示例性实施例与前述的示例性实施例的区别在于从服务器发送加密的用于更新的数据。首先,将参照图6解释以拉动方法接收用于更新的数据的情况。AV/FW应用607 将用于连接的请求发送到更新服务器(例如,图1的更新服务器100)。更新服务器100发送已经与私密密钥一起产生的公共密钥。从服务器100发送的公共密钥通过SOC的防火墙 657并被发送到加密和解密引擎671。加密和解密引擎671将公共密钥存储在密钥存储单元669中。加密和解密引擎671的密钥产生器677产生用于每个网络会话的密钥,并将会话密钥存储在密钥存储单元679中。加密和解密引擎671使用存储在密钥存储单元679中的公共密钥对会话密钥进行加密。之后,SOC将加密会话密钥和关于加密算法的信息发送到更新服务器100(可使用公共密钥对关于加密算法的信息进行加密)。例如,加密会话密钥和加密算法信息通过I/O接口 663被发送到AV/FW应用607,并且AV/FW应用607通过网路接口 619将加密会话密钥和加密算法信息发送到更新服务器100。更新服务器100使用与分配给所述装置的公共密钥成对的私密密钥对加密会话密钥进行解密,并使用加密算法信息选择加密算法。更新服务器100根据选择的加密算法使用会话密钥对用于更新的数据进行加密,并将加密数据发送到主模块。在当前示例性实施例中,加密算法信息被发送到服务器100而不被加密。然而,加密算法信息和会话密钥两者可使用公共密钥进行加密并被发送到服务器100。例如,AV/FW应用607可通过I/O接口 663将已经从更新服务器100接收的加密的用于更新的数据发送到加密和解密引擎671。加密和解密引擎671的解密单元675使用存储在密钥存储单元669中的会话密钥对加密数据进行解密。之后,可使用解密的用于更新的数据更新预存储的数据。另外,AV/FW应用607可通过收发单元681将已经从更新服务器100接收的加密的用于更新的数据发送到防火墙657。随后,如果由防火墙657完成了过滤操作,则用于更新的数据被发送到加密和解密引擎671。加密和解密引擎671的解密单元675使用存储在密钥存储单元669中的会话密钥对加密的用于更新的数据进行解密。之后,可使用解密的用于更新的数据更新预存储的数据。
更新服务器的公共密钥、加密会话密钥或加密算法信息以及加密的用于更新的数据可通过OTA接口 621或网络接口 619被发送或接收。在这种情况下,防火墙657可适应于使公共密钥、加密会话密钥或加密算法信息以及加密的用于更新的数据通过或不通过。接下来,将参照图6解释以拉动方法接收加密的用于更新的数据的情况。更新服务器(例如,图1的更新服务器100)根据其自身的更新计划请求连接到AV/FW应用607。 接下来,以与上述拉动方法相同的处理,对加密的用于更新的数据进行解密并更新数据。根据示例性实施例,签名数据可被存储在主模块的存储单元611中并由存储单元 611进行管理。在这种情况下,已经由解密单元675解密的用于更新的签名数据通过I/O 接口 663被发送到主模块。主模块使用接收的用于更新的签名数据来更新存储在存储单元 611中的签名数据。根据另一示例性实施例,签名数据可被存储在SOC的存储单元667中并由存储单元667进行管理。在这种情况下,可使用已经由解密单元675解密的用于更新的签名数据来更新存储在存储单元667中的签名数据。在图6的示例性实施例中,以非对称密钥加密方案对会话密钥进行加密,而以对称密钥加密方案对用于更新的数据进行加密。然而,这仅是示例。可仅使用非对称密钥加密方案和对称密钥加密方案中的一种。或者,以对称密钥加密方案发送会话密钥,而以非对称密钥加密方案发送用于更新的数据。另外,在图6中,已经描述了对用于更新的数据进行加密和解密的处理。然而,在不脱离本公开的精神的限制内,本公开可应用于需要被加密的其它数据。图7是示出根据另一示例性实施例的使用用于半导体IP的SOC的主板的框图。参照图7,根据另一示例性实施例的使用用于半导体IP的SOC的主板包括主模块和用于半导体IP的S0C。图7的示例性实施例与图6的示例性实施例的区别在于OTA接口 769包括在SOC中而不是主模块中。图7的其它元件与以相似的方式编号的图6中的元件执行相同的操作。例如,AV引擎765的扫描操作、防火墙757的过滤操作以及由UI应用单元705的将扫描数据发送到SOC的操作可以与AV引擎665、防火墙657、UI应用单元605 和接口 651、663的操作相同。另外,图7的实施例中的更新操作可以与图2的实施例中的拉动或推动方法的更新操作相同。将主要描述图6的示例性实施例与图7的示例性实施例之间的区别。图7的示例性实施例与图6的示例性实施例的区别在于SOC通过OTA接口 769从服务器直接接收加密的用于更新的数据。通过网络接口 719接收加密的用于更新的数据的处理可以与图6的示例性实施例中的处理相同。根据示例性实施例,在通过OTA接口 769接收与会话密钥一起加密的用于更新的数据的同时,加密和解密引擎771可适应于通过网络接口 719发送或接收公共密钥、使用公共密钥加密的会话密钥以及加密算法信息。同时,从服务器10接收公共密钥以及将加密的会话密钥和加密算法信息发送到服务器10的处理可与前述的示例性实施例中的处理相同。根据另一示例性实施例,加密和解密引擎771可适应于仅通过OTA接口 769发送或接收公共密钥、使用公共密钥加密的会话密钥、加密算法信息以及与会话密钥一起加密的用于更新的数据。
图8是示出根据示例性实施例的SOC的框图。参照图8,根据示例性实施例的SOC包括处理器(CPU)、直接存储器访问(DMA)控制器、随机数产生器、输入/输出(I/O)数据地址扰码器、非对称密钥产生器、非对称解密引擎、非对称加密引擎、对称解密引擎、对称加密引擎、(同步)动态随机访问存储器((S) DRAM)控制器、闪存控制器、静态随机访问存储器(SRAM)控制器、缓存器、反病毒引擎、防火墙引擎、配置(configure)和APB、启动程序(boot)、动态随机访问存储器(DRAM)、闪存、 网络接口、通用异步接收器/发送器(UART)、串行外设接口(SPI)和通用目的输入输出 (GPIO)。在当前示例性实施例中,处理器(CPU)执行与图2到图7的实施例中描述的SOC 中包括的CPU_S0C执行的相同操作。随机数产生器、I/O数据地址扰码器、非对称密钥产生器、非对称解密引擎、对称解密引擎和对称加密引擎可执行与图6和图7的示例性实施例中的加密和解密引擎的相同操作。例如,与图6和图7的密钥产生器相对应的随机数产生器可产生会话密钥。非对称加密引擎可使用已经分配的公共密钥对由随机数产生器产生的会话密钥进行加密,并使用公共密钥对对称密钥加密算法进行加密。之后,加密会话密钥和关于对称密钥加密算法的信息通过网络接口被发送到外部服务器。外部服务器(例如,更新服务器)使用与公共密钥成对的私密密钥对会话密钥进行解密,使用关于加密算法的信息选择用于加密的算法,并使用选择的加密算法和会话密钥对将被发送的数据进行加密。通过网络接口接收的数据是已经由对称密钥加密算法加密的数据,并可由对称解密引擎使用会话密钥进行解密。根据示例性实施例,可以以对称密钥加密算法和非对称密钥加密算法的各种组合对用于更新的数据进行加密或解密,并且对称加密引擎、非对称密钥产生器和非对称解密引擎可以以这样的组合执行加密和解密操作。图8中示出的I/O数据地址扰码器可进行操作以避免信息提供者(IP)被黑客攻击伪造。(S) DRAM控制器、闪存控制器和SRAM控制器可分别控制DRAM、闪存和缓存器。当向SOC供电时,启动程序可将系统程序载入DRAM以驱动S0C。如果系统程序被载入到DRAM,则SOC被系统程序驱动。配置和APB可对SOC执行配置。图8的反病毒引擎和防火墙引擎可执行图2到图7的反病毒引擎和防火墙的相应的操作。例如,图8的反病毒引擎包括扫描数据和签名数据,并确定是否存在病毒,FW引擎根据预定的安全策略对通过网络接口收发的数据包进行过滤。根据示例性实施例,反病毒引擎和FW引擎可由软件实现。在这种情况下,反病毒引擎和FW引擎可存储在闪存中,并可由处理器(CPU)载入到DRAM中。在当前示例性实施例中,闪存可存储签名数据。存储在闪存中的签名数据被载入到DRAM至多预定量,并在扫描操作中被使用。根绝另一示例性实施例,图8的反病毒引擎和FW引擎可由硬件和软件实现。例如,反病毒引擎可由硬件和软件实现。反病毒引擎的软件部分被存储在闪存中,并由处理器 (CPU)载入到DRAM以与反病毒引擎的硬件部分一起执行扫描操作。另外,FW引擎的软件部分被存储在闪存中,并由处理器(CPU)载入到DRAM以与FW引擎的硬件部分一起执行过滤操作。
根据示例性实施例,签名数据可被存储在主模块(未示出)中而不是闪存中,并当执行扫描操作时被载入到SOC的DRAM。在当前示例性实施例中,UART、SPI和GPIO可提供通信接口以与主模块和/或外部装置进行通信。在图8的示例性实施例中,SOC包括CPU和DRAM。然而,SOC可共享主模块的CPU 和DRAM。例如,如果SOC共享主模块的CPU和DRAM,则主模块的CPU驱动反病毒引擎以执行扫描操作。另一方面,如果SOC共享主模块的DRAM,则反病毒引擎被载入到主模块的DRAM并被驱动。在这种情况下,签名数据和扫描数据两者可被载入到主模块的DRAM以用于扫描操作。图9是示出根据示例性实施例的用于半导体IP的SOC的框图。参照图9,根据示例性实施例的用于半导体IP的SOC包括处理器(CPU)、SDRAM(或 DRAM)、闪存、非对称密钥产生器、反病毒引擎、FW引擎、随机数产生器、I/O数据地址扰码器、非对称解密引擎、非对称加密引擎、对称解密引擎和对称加密引擎。图9的非对称密钥产生器、反病毒引擎、FW引擎、随机数产生器、I/O数据地址扰码器、非对称解密引擎、对称解密引擎、对称加密引擎和非对称加密引擎(未示出)可执行上述加密和解密操作。已经参照图8描述了这些元件的操作。在图9的示例性实施例中,反病毒引擎的一部分可由硬件实现,剩余的部分可由软件实现以驱动硬件。软件被存储在闪存中并被载入到SRAM用于扫描操作。签名数据和扫描数据被载入到SDRAM。在图9的示例性实施例中,反病毒引擎可仅由软件实现。在这种情况下,反病毒引擎被存储在闪存中并由CPU载入到SDRAM用于扫描操作。在图9的示例性实施例中,FW引擎的至少一部分可由软件实现。FW引擎的软件部分被存储在闪存中并由CPU载入到SDRAM。在图9的示例性实施例中,闪存可存储由软件实现的反病毒引擎、由软件实现的防火墙和签名数据。根据另一示例性实施例,主模块和用于半导体IP的SOC可共享CPU或SDRAM。如果主模块和SOC共享CPU,则主模块的CPU可将SOC的反病毒引擎和/或FW引擎载入到DRAM 以执行扫描操作。如果主模块和SOC共享DRAM,则SOC的CPU可将SOC的反病毒引擎和/ 或FW引擎载入到通用DRAM以执行扫描操作或过滤操作。在任一情况中,预定大小的签名数据和扫描数据可被载入到DRAM。图10是示出根据示例性实施例的反病毒引擎的硬件逻辑部分的框图。参照图10,根据示例性实施例的反病毒引擎的硬件逻辑部分包括系统寄存器、系统接口、存储器接口、哈希数据库(DB)、缓存器、哈希匹配器、文本载入器、哈希Q缓存器、子匹配器和扫描Q缓存器。根据图10的示例性实施例,系统接口可通过总线接口控制反病毒引擎的操作。例如,系统接口可通过AMBA 2.0协议的总线接口控制反病毒引擎的操作。另外,如果SOC是用于半导体IP的S0C,则系统接口可通过例如AXI总线接口控制反病毒引擎的操作。根据图10的示例性实施例,系统寄存器可包括寄存器,该寄存器用于掌握反病毒引擎的操作状态或者指示每个缓存器的状态或中断状态。
根据图10的示例性实施例,为了提高反病毒引擎的性能,系统信息部分可被划分为不同部分,所述系统信息部分与寄存器区域的用于控制反病毒引擎的操作的配置部分和用于以高速处理数据的数据路径相应。另外,读出操作(匹配器引擎)和写入操作(系统或 DRAM)被单独执行,从而DB接口部分可控制读出操作和写入操作而不使用双端口存储器。图11是示出根据示例性实施例的防火墙的硬件逻辑部分的框图。参照图11,根据示例性实施例的防火墙的硬件逻辑部分包括存储器接口、系统接口、缓存器、规则存储器、 当前包存储器、配置寄存器、中断产生器和包匹配器。根据图11的示例性实施例,存储器接口可具有ahl^mem块,ahb2mem块可进行操作以将AMBA(2. 0)总线标准转换为存储器接口标准。根据图11的示例性实施例,为了将通过网络接口卡(OTC)接收的当前包与存储在外部存储器中的规则或内部规则进行比较,当前包和规则两者的速度可被控制。为了实现这个,可使用FIFO缓存器。换句话说,从外部存储器读出的规则数据可被输入到FIFO缓存
ο根据图11的示例性实施例,规则存储器可以是寄存器块,该寄存器块用于基于当前包中的有效字节的和值对规则进行分类并减少外部存储器的连接的频率。根据图11的示例性实施例,通过NIC发送的数据包被存储在SDRAM的预定位置, 并且根据数据过滤的结果确定该包是否被处理。在这种情况下,大量数据在SDRAM的数据路径被处理,从而会需要缓存器。图12是示出根据示例性实施例的安装在主板上的用于半导体IP的SOC的示例的示图。根据图12的示例性实施例,用于半导体IP的SOC 850可包括专用CPU(CPU_S0C), 并可以不共享主模块的CPU(CPU_MAIN)。根据图12的示例性实施例,SOC 850可共享主模块的SRAM。在这种情况下,扫描数据和签名数据被载入到主模块的SRAM,并且在SOC 850中由软件实现的加密和解密单元、 AV和/或FW被载入到主模块的SRAM以执行它们各自的操作。图13是示出根据另一示例性实施例的安装在主板上的用于半导体IP的SOC的示例的示图。根据图13的示例性实施例,用于半导体IP的SOC 950可使用主模块中包括的至少两个CPU之一。例如,SOC 950使用主模块中包括的CPU(CPU_S0C),并且不使用主模块的另一 CPU(CPU_MAIN)。即使在主模块中提供单个CPU但该CPU支持多处理功能(多处理器),SOC 950也可使用专用多处理器的某些资源。在当前示例性实施例中,SOC可适应于使用主模块的CPU和存储器。在这种情况下,扫描数据和签名数据被载入到主模块的SRAM,并且在S0C950中由软件实现的加密和解密单元、AV和/或FW也被载入到主模块的SRAM以执行它们各自的操作。图14是示出根据另一示例性实施例的安装在主板上的用于半导体IP的SOC的示例的示图。根据图14的示例性实施例,用于半导体IP的SOC 1050可共享主模块的专用CPU 和 SDRAM。在当前示例性实施例中,SOC 1050可适应于共享主模块的CPU和存储器两者。在这种情况下,扫描数据和签名数据被载入到主模块的SDRAM,并且在SOC 1050中由软件实现的加密和解密单元、AV和/或FW被载入到SDRAM以执行它们各自的操作。图15是示出根据示例性实施例的使用SOC的病毒扫描方法的流程图。参照图1、图2和图15,下面将解释根据示例性实施例的扫描方法。主模块200将扫描数据发送到SOC 250 (操作S201),并且SOC 250接收扫描数据(操作S203)。SOC 250将签名数据载入存储器255 (S0C存储器)(操作S202),将签名数据与扫描数据进行比较并确定存在/不存在病毒(操作S205)。SOC 250将确定的结果发送到主模块200(操作S207)。根据示例性实施例,如图15中的虚线所示,在操作S205开始之前的任何时间执行将签名数据载入到存储器255的操作S202。根据示例性实施例,AV/FW应用207可通过AV/FW驱动器209将扫描数据发送到 SOC 250的I/O接口沈3(操作S201)。之后,AV引擎265将签名数据与由I/O接口 263接收的扫描数据进行比较,并确定存在/不存在病毒(操作S205)。签名数据可被存储在图2 中所示的主模块的存储单元211或SOC 250的存储单元沈7中。当AV引擎265进行操作时或在AV引擎265进行操作之前,存储在存储单元211或存储单元267中的签名数据可被载入到存储器255 (S0C存储器)(操作202),并被用于扫描操作。在如上描述中,已经解释了应用图1和图2的示例性实施例的使用SOC的病毒扫描方法。然而,病毒扫描方法可应用于其它示例性实施例(例如,图3到图14)。图16是示出根据示例性实施例的在使用SOC的病毒扫描方法中使用的更新处理的流程图。参照图1、图2和图16,下面将解释根据示例性实施例的使用SOC的病毒扫描方法。SOC 250从外部服务器(例如,更新服务器100或web服务器50)接收数据包(操作 S301)。根据预定的安全策略过滤数据包(操作S303)。SOC 250将过滤的数据包发送到主模块200(操作S305),并且主模块200确定该包是否是用于更新的数据(操作S307)。如果该包是用于更新的数据(操作S307-是),则主模块200将用于更新的数据发送到SOC 250 (操作 S309)。根据示例性实施例,SOC 250的网络接口 251可从外部服务器(例如,更新服务器 100或web服务器50)接收数据包(操作S301),并且防火墙257可根据预定的安全策略过滤在操作S301中接收的数据包(操作S303)。在操作S303,包识别单元259识别该包来自哪里,并且包过滤单元261根据识别的结果过滤该包。CPU_S0C 253可通过网络接口 251将过滤的包发送到主模块250 (操作S305)。主模块250的AV/FW应用207或CPU_MAIN 201确定在操作S305中发送的数据包是否是用于更新的数据(操作S307)。如果数据包是用于更新的数据(操作S307-是),则数据包被发送到 SOC 250 的 I/O ^Π 263(操作 S309)。在上述示例性实施例中,AV/FW应用207或CPU_MAIN 201确定数据包是否是用于更新的数据。然而,除了 AV/FW应用207和CPU_MAIN 201之外的元件可适应于执行这样的确定操作。另外,根据当前示例性实施例,CPU_S0C 253通过网络接口 251将过滤的包发送到主模块250。然而,应该理解另一示例性实施例不限于此,该操作可由除了 CPU_S0C 253 之外的元件执行。在上述描述中,已经描述了应用图1和图2的示例性实施例的使用SOC的病毒扫描方法。然而,病毒扫描方法可应用于其它示例性实施例(例如,图3到图14)。如果SOC 不单独包括网络接口并包括图3到图14的示例性实施例中的收发单元,则收发单元可执行操作S301并可用于将过滤的包发送到主模块200。图17是示出根据另一示例性实施例的在使用SOC的病毒扫描方法中使用的更新处理的流程图。在图17的示例性实施例中,假设签名数据被存储在主模块250中并由主模块250 管理。参照图1、图2和图17,下面将解释根据示例性实施例的使用SOC的病毒扫描方法。 SOC 250从外部服务器(例如,更新服务器100或web服务器50)接收数据包(操作S401)。 根据预定的安全策略过滤数据包(操作S403)。SOC 250将过滤的数据包发送到主模块 200 (操作S405),并且主模块200确定该包是否是用于更新的数据(操作S402或S407)。如果该包是用于更新FW和/或AV引擎的数据(操作S407-是),则该包被发送到S0C250 (操作S409),并且SOC 250执行更新操作(操作S411)。如果该包是用于更新签名数据的数据(操作S402-是),则SOC 250执行更新操作 (操作 S404)。图 17 的操作 S401、S403、S405、S409 和 S411 与图 16 的操作 S301、S303、S305、 S309和S311相似,因此将省略它们的详细描述。已经描述了应用图1和图2的示例性实施例的图17的病毒扫描方法。然而,图17 的病毒扫描方法可应用于其它示例性实施例(例如,图3到图14)。如果SOC不单独包括网络接口并包括图3到图14的示例性实施例中的收发单元,则收发单元可执行操作S401,并且过滤的包可通过收发单元被发送到主模块200。图18是示出根据示例性实施例的在使用SOC的病毒扫描方法中使用的数据包过滤处理的流程图。在图18的示例性实施例中,假设在主模块200中提供网络接口,并且签名数据被存储在SOC中。参照图1、图4和图18,下面将解释根据示例性实施例的使用SOC的病毒扫描方法。主模块200的网络接口 419从外部服务器(例如,更新服务器100或web服务器 50)接收数据包(操作S501)。接收的数据包被发送到SOC 250的收发单元471,并且防火墙457根据预定的安全策略过滤由收发单元471接收的数据包(操作S503)。如果过滤的包是用于更新的数据,则SOC 250使用用于更新的数据执行更新操作 (操作S507)。例如,CPU_S0C 453或单独提供的元件使用用于更新的数据更新AV引擎或 Fff引擎。以上已经描述了应用图1和图4的示例性实施例的图18的病毒扫描方法。然而, 图18的病毒扫描方法可应用于主模块200包括网络接口的示例性实施例(例如,图5到图 8)。图19是示出根据另一示例性实施例的在使用SOC的病毒扫描方法中使用的数据包过滤处理的流程图。在图19的示例性实施例中,假设在主模块200中提供网络接口,并且签名数据被存储在主模块200中。参照图1、图4和图19,下面将解释根据另一示例性实施例的在使用 SOC的病毒扫描方法中的数据包过滤处理。主模块200的网络接口 419从外部服务器(例如,更新服务器100或web服务器50)接收数据包(操作S601)。接收的数据包被发送到 SOC 250的收发单元471,并且防火墙457根据预定的安全策略过滤由收发单元471接收的数据包(操作S603)。如果过滤的包是用于更新AV和/或FW引擎的数据,则SOC 250使用该包更新FW 和/或AV引擎(操作S607)。例如,CPU_S0C 453或单独提供的元件使用用于更新的数据更新AV引擎或FW引擎。另一方面,如果过滤的包是用于更新签名数据的数据(操作S602-是),则过滤的数据被发送到主模块200 (操作S604)。主模块200更新签名数据(操作S606)。已经描述了应用图1和图4的示例性实施例的图19的病毒扫描方法。然而,图19 的病毒扫描方法可应用于主模块200包括网络接口并存储签名数据的其他示例性实施例 (例如,图5到图8)。图21是示出根据示例性实施例的在使用SOC的病毒扫描方法中使用的加密和解密处理的流程图.在图21的示例性实施例中,假设签名数据被存储在SOC中。参照图1、图6和图 21,下面将解释根据示例性实施例的加密和解密处理。如果所述装置请求连接到更新服务器100(操作S701),则更新服务器100将与私密密钥成对的公共密钥发送到所述装置,并且所述装置接收公共密钥(操作S703)。所述装置使用公共密钥对会话密钥进行加密(操作S705),并将加密会话密钥与关于加密算法的信息一起发送到更新服务器(操作S707)。在操作S707中,除了会话密钥之外,加密算法信息可被加密。换句话说,可使用从更新服务器100接收的公共密钥对加密算法信息进行加

Γ t [ O更新服务器100使用与在操作S703中发送到所述装置的公共密钥成对的私密密钥对会话密钥进行解密(操作S711),使用会话密钥和加密算法对用于更新的数据进行加密并将用于更新的数据发送到所述装置。所述装置使用会话密钥对数据进行解密,并执行更新操作(操作S713)。如虚线所示,可在操作S705开始之前的任何时间执行所述装置产生会话密钥的操作S702。上述示例性实施例假设以拉动方法执行更新操作。然而,可以以推动方法执行更新操作。在这种情况下,操作S701可被改变,从而更新服务器100请求连接到所述装置。接下来的操作与图21中的相同。图22是示出根据另一示例性实施例的在使用SOC的病毒扫描方法中使用的加密和解密处理的流程图。在图22的示例性实施例中,假设签名数据被存储在主模块200中。图22的示例性实施例与图21的示例性实施例的区别在于病毒扫描方法还包括操作S803和S813。例如, 操作 S801、S802、S803、S805、S807、S809 和 S811 可与操作 S701、S702、S703、S705、S707、 S709和S711相同。将主要解释图21的示例性实施例与图22的示例性实施例之间的区别。在操作 S813和S804,如果用于更新的数据被确定为用于更新签名数据的数据,则用于更新的数据被发送到主模块200。另一方面,如果用于更新的数据被确定为用于更新AV和/或FW引擎的数据,则用于更新的数据被用于SOC的更新操作而不被发送到主模块200。图23到图观是用于解释根据示例性实施例的SOC的效果的示图。图23示出当对使用相同算法的反病毒扫描引擎做应用层上的恶意软件扫描操作的测试时(以下,称为“测试1”)的扫描速度,以及当对基于SOC的反病毒扫描引擎做恶意软件扫描操作的测试时的扫描速度。在图23中,测试1的扫描速度由柱形表示,测试基于SOC的反病毒引擎的结果由曲线表示。较低的曲线指示使用由软件和硬件逻辑配置的基于SOC的反病毒引擎来执行恶意软件扫描的结果(以下,称为“测试2”),较高的曲线指示使用仅由软件配置的基于SOC 的反病毒引擎来执行恶意软件扫描的结果(以下,称为“测试3”)。在图23中,测试1使用800MHz的CPU,在用于SOC的FPGA板上完成的测试2和测试3使用50MHz的CPU。因此,如果使用具有相同速度的CPU来完成测试,则期望在SOC上完成的测试2和测试3具有比测试1更高的扫描速度。图23示出测试2比测试1需要更多的时间用于扫描。然而,如果考虑CPU速度的不同,则预测仅由软件配置的基于SOC的反病毒引擎比在应用层上操作的反恶意软件引擎需要更少的时间用于扫描。另一方面,尽管CPU速度不同,测试3比测试1具有更高的扫描速度。换句话说, 如果将被扫描的文件的数量超过2000,则测试3的扫描速度比测试1的扫描速度高1. 5倍。图M示出当使用移动的不基于SOC的和商业化的反病毒引擎执行恶意软件扫描时的存储器使用率和扫描时间。在图M中,柱形指示用于恶意软件扫描的存储器使用率,曲线指示用于恶意软件扫描所需的时间。在图M中,使用800MHz的CPU。如图M所示,即使在文件的数量少的情况下,不基于SOC的反病毒引擎的存储器使用率也高。另外,图M指示当文件的数量多于320时,柱形的高度减低。然而,这是由于存储器的调换(swapping)操作。如果将被扫描的文件的数量增加到高于存储器能够操作的点, 则操作系统可执行存储器的调换操作。调换操作会增加扫描时间,从而增加电池消耗。图25示出作为对商业化产品和根据示例性实施例的基于SOC的反病毒引擎的测试结果的反病毒引擎的电能消耗。参照图25,将被比较的商业化产品1和商业化产品2是不基于SOC的仅由软件实现的反病毒引擎,并分别消耗大约160mA和大约200mA。另一方面,根据示例性实施例的基于SOC的反病毒扫描引擎是由软件和硬件逻辑配置的引擎,并消耗大约126. 9mA。图沈示出作为对在移动电话中使用的产品和根据示例性实施例的基于SOC的反病毒引擎的测试结果的恶意软件扫描时间和CPU使用率时间。图沈示出使用不同数量的将被扫描的文件对产品PI、P2、P3、P4、P5、P6、P7、P8、 P9、P10、P11、P12和根据示例性实施例的基于SOC的反病毒引擎P13中的每个产品测试两次的结果。在图26中,表述“文件的销售数量(Vender-Number offiles) ”表示使用不同数量的将被扫描的文件对产品P1、P2、P3、P4、P5、P6、P7、P8、P9、P10、P11和P12中的每一个
测试两次。在图沈中,商业化产品的CPU使用率几乎是100%,比基于SOC的反病毒引擎P13 的CPU使用率高得多。随着的CPU使用率和扫描时间增加,电池消耗增加。因此,当前示例性实施例具有减少电池消耗的效果。此外,使用具有50MHz的CPU的FPGA板来测试当前示例性实施例P13,而所述多个产品使用几百MHz到几GHz的CPU。因此,预测如果在相同条件下完成测试,则当前示例性实施例在CPU使用率或扫描时间方面极大地优于所述多个产品。图27示出用于相关领域的ANDROID操作的电话的反病毒软件的CPU使用率。提供了三个不同类型的反病毒软件,但是它们在扫描期间几乎使用了 100%的CPU。参照图27的(a)、(b)和(c),由三个曲线①、②、③来示出CPU使用率。三个曲线顺序指示CPU的全部使用率(①)、在用户代码级使用的CPU使用率(②)和在内核代码级使用的CPU使用率(③)。图观示出使用根据示例性实施例的基于SOC的反病毒引擎来扫描恶意软件而使用的CPU使用率。参照图28,CPU使用率是3%到30%。由于CPU被较少地使用并可以以高速执行,所以可显著地减少电池消耗。在图观的(a)中示出的两个信号,直线信号指示存储器使用率,剩余信号指示CPU 使用率。与图观的(a)相似,在图观的(b)中的直线信号和剩余信号分别示出存储器使用率和CPU使用率。由于图观示出使用50MHz的CPU进行测试的结果,因此如果在使用几百MHz到几 GHz的CPU的相同条件下完成测试,则本发明的效果极大地优于相关领域产品的效果。如果使用基于SOC &AV,则主处理器使用更少的CPU或存储器容量保持安全,并且 CPU具有共享空间来允许不同应用被使用。因此,用户可有效地使用不同应用。根据示例性实施例,通过SOC对所述装置中使用的数据执行扫描操作和过滤操作,从而可迅速和安全地提供安全功能。另外,根据示例性实施例,用于扫描操作的反病毒引擎、防火墙和签名数据被加密并发送,从而可更安全地提供安全操作。另外,根据示例性实施例,SOC直接从更新服务器接收用于更新的数据,并独立于所述装置的主要操作而进行更新,从而可加强安全而不影响所述装置的性能。虽然不对此做出限制,但是示例性实施例可被实施为计算机可读记录介质上的计算机可读代码。计算机可读记录介质是可存储其后可被计算机系统读取的数据的任何数据存储装置。计算机可读记录介质的示例包括只读存储器(ROM)、随机存取存储器(RAM)、 CD-ROM、磁带、软盘和光学数据存储装置。计算机可读记录介质还可分布于联网的计算机系统,从而以分布方式存储和执行计算机可读代码。另外,示例性实施例可被编写为经由计算机可读传输媒介(诸如,载波)传输并由执行程序的通用或专用目的数字计算机接收和执行的计算机程序。前述的示例性实施例和优点仅是示例性的,并不应被理解为限制当前发明构思。 示例性实施例可被容易地应用于其它类型的设备。另外,示例性实施例的描述应被理解为示意性的,而不是限制权利要求的范围,对本领域技术人员来说多种替代、修改和改变将是明显的。
权利要求
1.一种用于半导体知识产权IP的系统级芯片S0C,所述SOC包括接口,接收扫描数据;解密单元,对加密签名数据进行解密;以及反病毒引擎,使用解密签名数据确定病毒是否存在于扫描数据中。
2.如权利要求1所述的用于半导体IP的S0C,还包括存储单元,存储解密签名数据;以及通信单元,接收用于更新签名数据的加密更新签名数据。
3.如权利要求2所述的用于半导体IP的S0C,还包括管理器,管理器执行存储在存储单元中的解密签名数据的更新操作,其中,如果解密单元对加密更新签名数据进行解密,则管理器使用解密更新签名数据执行更新操作。
4.如权利要求2所述的用于半导体IP的S0C,还包括防火墙,对由通信单元接收的加密更新签名数据执行过滤操作。
5.如权利要求4所述的用于半导体IP的S0C,其中,只有加密更新签名数据根据过滤操作通过防火墙,解密单元才对加密更新签名数据进行解密。
6.如权利要求3所述的用于半导体IP的S0C,还包括密钥产生器,在每次建立与更新服务器的会话时产生会话密钥,其中,通信单元将会话密钥发送到更新服务器,并且更新服务器使用会话密钥对更新签名数据进行加密。
7.如权利要求6所述的用于半导体IP的S0C,其中,更新服务器将使用会话密钥加密的加密更新签名数据发送到通信单元。
8.如权利要求7所述的用于半导体IP的S0C,还包括密钥存储单元,其中,当产生会话密钥时,密钥产生器产生与会话密钥成对的密钥,并将产生的密钥存储在密钥存储单元中。
9.如权利要求1所述的用于半导体IP的S0C,还包括密钥产生器,产生将被使用以对用于更新签名数据的更新签名数据进行加密的密钥,其中,使用由密钥产生器产生的密钥对更新签名数据进行加密。
10.如权利要求9所述的用于半导体IP的S0C,还包括加密单元,使用预定的加密密钥对由密钥产生器产生的密钥进行加密;以及通信单元,将由加密单元加密的加密密钥发送到更新服务器。
11.如权利要求10所述的用于半导体IP的S0C,其中,由加密单元使用的预定的加密密钥是由更新服务器分配的公共密钥。
12.如权利要求10所述的用于半导体IP的S0C,其中,加密单元对关于加密算法的信息进行加密,所述加密算法用于对由密钥产生器产生的密钥加密,其中,通信单元将加密的关于加密算法的信息与加密密钥一起发送到更新服务器。
13.如权利要求1所述的用于半导体IP的S0C,其中,反病毒引擎包括第一硬件逻辑, 所述第一硬件逻辑用于确定病毒是否存在于扫描数据中。
14.如权利要求4所述的用于半导体IP的S0C,其中,防火墙包括第二硬件逻辑,所述第二硬件逻辑用于执行过滤操作。
15.如权利要求4所述的用于半导体IP的S0C,其中反病毒引擎包括第一硬件逻辑,所述第一硬件逻辑用于确定病毒是否存在于扫描数据中;以及防火墙包括第二硬件逻辑,所述第二硬件逻辑用于执行过滤操作。
16.一种装置,包括主模块,具有扫描数据;以及用于半导体知识产权IP的系统级芯片S0C,从主模块接收扫描数据并使用可更新的签名数据确定病毒是否存在于接收的扫描数据中。
17.如权利要求16所述的装置,其中,用于半导体IP的SOC存储可更新的签名数据,并将可更新的签名数据与接收的扫描数据进行比较以确定病毒是否存在于接收的扫描数据中。
18.如权利要求17所述的装置,其中,用于半导体IP的SOC接收用于更新可更新的签名数据的加密更新签名数据,对加密更新签名数据进行解密,并使用解密更新签名数据更新存储的可更新的签名数据。
19.如权利要求18所述的装置,其中,执行加密更新签名数据的解密的软件的至少一部分由主模块的处理器或用于半导体IP的SOC的处理器控制。
20.如权利要求18所述的装置,其中,用于半导体IP的SOC在每次建立与更新服务器的会话时产生会话密钥,并将产生的会话密钥发送到更新服务器,其中,更新服务器使用会话密钥对更新签名数据进行加密并发送加密更新签名数据。
21.如权利要求20所述的装置,其中,当产生会话密钥时,用于半导体IP的SOC产生与会话密钥成对的密钥并存储产生的密钥。
22.一种在装置的主板中操作的扫描病毒是否存在于扫描数据中的方法,所述方法包括由安装在主板上的用于半导体知识产权IP的系统级芯片SOC从主板接收扫描数据;以及由用于半导体IP的SOC将接收的扫描数据与可更新的签名数据进行比较,并确定病毒是否存在于接收的扫描数据中。
23.如权利要求19所述的方法,其中,可更新的签名数据存储在用于半导体IP的SOC 中或主板中。
24.如权利要求23所述的方法,其中,用于半导体IP的SOC接收用于更新可更新的签名数据的加密更新签名数据,对接收的更新签名数据进行解密,并使用解密更新签名数据更新存储的可更新的签名数据。
25.如权利要求M所述的方法,其中,用于半导体IP的SOC根据安全策略对加密更新签名数据进行过滤,如果加密更新签名数据满足安全策略,则对更新签名数据进行解密。
26.如权利要求M所述的方法,其中用于半导体IP的SOC在每次建立与更新服务器的会话时产生会话密钥,并将产生的会话密钥发送到更新服务器;以及更新服务器使用会话密钥对更新签名数据进行加密并将加密更新签名数据发送到用于半导体IP的S0C。
全文摘要
提供了一种系统级芯片以及使用系统级芯片的装置和扫描方法。提供了一种用于半导体知识产权(IP)的SOC、包括SOC的装置以及操作SOC的方法。所述SOC包括接口,从安装SOC的主模块接收扫描数据;反病毒引擎,确定病毒是否存在于接收的扫描数据中。因此,加强了装置的安全。
文档编号H04L9/32GK102413117SQ20111024272
公开日2012年4月11日 申请日期2011年8月19日 优先权日2010年8月19日
发明者俞仁善 申请人:三星Sds株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1