对网络攻击安全的通信芯片组及通信装置的制作方法

文档序号:11811874阅读:269来源:国知局
对网络攻击安全的通信芯片组及通信装置的制作方法

本发明涉及对网络攻击安全的通信芯片组及通信装置,更具体地,涉及一种通信芯片组及通信装置,该通信芯片组及通信装置支持多种类型的数据链路层和网络层,并且能够通过利用多个层上的设置数据来过滤建立在各个层上的数据包(packets),由此对通过通信网络的外部的网络攻击安全。

相关申请的交叉引用

本申请基于2015年5月22日提交的韩国专利申请KR-10-2015-0071510,要求对其的优先权权益,同时将通过引用将该专利申请公开内容并入本文中。



背景技术:

很多设备(装置)彼此通过通信网络发送/接收数据。通过通信网络的发送/接收数据通常是通过开放系统互联(Open System Interconnection,OSI)7层模型(OSI7Layer Model)的各个层上的多种类型的通信协议实现的。

例如,为了能够通过互联网与其它装置进行发送/接收数据,装置创建传输(Transport)层的TCP/UDP数据包,并创建包含所创建的传输层的数据包的互联网协议(Internet Protocol,IP)数据包。随后,装置创建包含IP数据包的数据链路(Data Link)层的数据包并将其通过物理层(例如,物理层芯片)传输至有线或无线传输介质。接收装置通过相反的过程创建TCP/UDP数据包,进而将相关的TCP/UDP数据包传输至应用层。

OSI 7层模型因其复杂的结构和在各个层中的多种要求条件而一般通过软件进行处理。即,多个装置设有处理器,处理器通过用于处理通信层的内核程序提取数据链路层的数据包,并(重)构建IP数据包,(重)构建TCP数据包或UDP数据包。

通过软件的层数据包处理(layer packet processing)能够给装置提供处理层数据包的灵活性,且具有易于适应多种类型或多种通信协议,以及容易改变设计的优点。

然而,通过软件的数据包处理将暴露于多种外部通信攻击。例如,装置需要通过所配备的处理器从外部装置接收,并处理数据包。由于通过层的分层数据包处理是通过软件而实现,因此相关装置可能会由于包含于数据包的多种危险因素而无法发挥正常功能。例如,处理器的程序计数器(Program Counter,PC)可由包含在数据包的特定的风险数据而改变,从而可导致处理器发生故障。

另外,装置可从外部的随机的装置接收多个数据包。例如,为了使一个目标装置陷入无法进行处理的状态,许多装置可持续地将多个数据包传输至该装置。接收这些数据包的装置需要处理所有的通过软件持续传输的数据包,因而可由于处理器的负荷增加而陷入无法进行处理的状态。

相反,可以假设通过硬件逻辑的数据包处理。由本申请人进行申请并被授权的发明(发明名称:用于嵌入式系统的具有高速数据处理功能的通信方法及其装置,授权号:10-0530856,公开日:2005年11月23日)可知,可通过所知的硬件逻辑对OSI 7层模型中的特定层上的特定通信协议进行处理。

通过硬件逻辑的数据包处理可减少装置上的处理器的负荷,并且处理器上不需要用于通信层的其它操作系统(Operating System,OS)。如上所述,通过硬件逻辑的数据包处理可提供很多有用的优点。

通过硬件逻辑的通信数据包的处理也需要防备通过通信网络的外部攻击。虽然在没有处理器的控制的情况下,各阶层的硬件逻辑能够处理数据包,并构建TCP数据包,但仍需处理器处理相应TCP数据包上位的应用(application)数据。如上所述,通过硬件逻辑的数据包处理也存在暴露于外部攻击、TCP数据包处理消耗功率(power)的问题。

因而,对于通过硬件逻辑的通信数据包处理而言,也需要如下通信芯片组和装置,该通信芯片组和装置能够首先通过处理器对无需处理的数据包根据各个不同的层进行过滤,因此对外部攻击安全,并能减少功率消耗。

另外,具有硬件逻辑的数据包处理模块因其结构通常复杂,不易于将新的处理模块插入至特定层上。尤其是,如果在数据链路层上插入新的处理模块,则不易为了构建与其它装置的分层通信连接而构建下层处理模块和上层处理模块间的配置(setting)。例如,如果存在多个数据链路层处理模块的情况下,不容易确定在建立套接字(Socket)的过程中利用何种数据链路层或适合何种数据链路层。

因而,如果特定层上存在多个处理模块,则需要一种通信芯片组及装置,该通 信芯片组及装置能够链接上层处理模块与该特定层的多个处理模块,使得与其它装置建立通信连接。



技术实现要素:

本发明要解决的技术问题

本发明是为了解决上述问题而提出的,其目的在于提供一种通信芯片组及通信装置,该通信芯片组及通信装置通过硬件逻辑分层地构建数据包,且在多个层上对构建的数据包进行过滤,从而对网络攻击安全。

另外,本发明的目的在于提供一种通信芯片组及通信装置,该通信芯片组及通信装置具有专用硬件逻辑,以使攻击者的代码无法执行。

另外,本发明的目的在于提供一种通信芯片组及通信装置,该通信芯片组及通信装置通过利用设置在多个层上的设置数据(setup data)来实现各个层上的过滤,从而能够防止非必要的数据包传递至上层(higher layer)。

另外,本发明的目的在于一种通信芯片组及通信装置,该通信芯片组及通信装置通过由硬件逻辑的数据包处理和分层数据包过滤来减少数据包处理所需的功率消耗。

另外,本发明的目的在于一种通信芯片组及通信装置,该通信芯片组及通信装置在建立通信信道时,能够自动识别特定层的多个处理模块中的一个处理模块。

本发明要解决的技术课题不会限制在上述的技术课题,本发明所属领域的技术人员可从以下记载中清楚地理解未提及的其它技术课题。

技术方案

为达到上述目的的通信芯片组包括:寄存器映射,其配置为能够与多个设备建立通信信道;第一数据链路模块,其发送/接收第一类型的物理层数据,并处理根据第一类型的数据链路层;第二数据链路模块,其发送/接收第二类型的物理层数据,并处理根据第二类型的数据链路层;第一处理模块,其连接于所述第一数据链路模块和所述第二数据链路模块,并利用储存在所述寄存器映射的多个通信信道的设置数据从所述第一数据链路模块和所述第二数据链路模块过滤数据链路数据。

另外,为达到上述目的的通信芯片组包括:通信芯片组;以及处理器,其通过所述通信芯片组发送并接收应用层上的数据;寄存器映射,其配置为能够与多个设备建立通信信道;第一数据链路模块,其发送/接收第一类型的物理层数据,并处理 根据第一类型的数据链路层;第二数据链路模块,其发送/接收第二类型的物理层数据,并处理根据第二类型的数据链路层;第一处理模块,其连接于所述第一数据链路模块和所述第二数据链路模块,并利用储存在所述寄存器映射的多个通信信道的设置数据从所述第一数据链路模块和所述第二数据链路模块过滤数据链路数据。

有益效果

根据如上所述的本发明的通信芯片组及通信装置具有如下效果:

根据如上所述的本发明的通信芯片组及通信装置通过硬件逻辑分层地构建数据包,且在多个层上对构建的数据包进行过滤,从而对网络攻击安全。

另外,根据如上所述的本发明的通信芯片组及通信装置,其具有专用硬件逻辑,以使攻击者的代码无法执行。

另外,根据如上所述的本发明的通信芯片组及通信装置,其通过利用设置在多个层上的设置数据来实现各个层上的过滤,从而能够防止非必要的数据包传递至上层。

另外,根据如上所述的本发明的通信芯片组及通信装置,其通过由硬件逻辑的数据包处理和分层数据包过滤来减少数据包处理所需的功率消耗。

另外,根据如上所述的本发明的通信芯片组及通信装置,其在建立通信信道时,能够自动识别特定层的多个处理模块中的一个处理模块。

本发明所获得的效果不会限制在上述的技术课题,本发明所属领域的技术人员可从以下记载中会清楚地理解未提及的其它效果。

附图说明

图1为示出包括本发明的通信装置的示例性的通信系统框图的图。

图2为示出通信装置的示例性的框图的图。

图3为示出通信芯片组的示例性的硬件框图的图。

图4为示出示例性寄存器映射的内部结构的图,该寄存器映射显示建立通信信道所需的寄存器。

图5为示出从外部接收物理信号时进行分层过滤的控制流程的例子的图。

具体实施方式

上述的目的、特征及优点将通过参考所附附图的下述的详细说明变得更清楚, 因而,本发明所属的技术领域的技术人员能够轻易实施本发明的技术思想。另外,在说明本发明时,如果认为对本发明相关的公知技术的具体说明会使本发明的要点模糊时,将省略对其的说明。以下,将参考所附的附图详细说明根据本发明的优选的实施例。

图1为示出包括本发明的通信装置10的示例性的通信系统框图的图。

根据图1,根据本发明的示例性通信系统包括通信装置10、一个以上的外部装置20。本发明的通信装置10与外部装置20按照近距离通信标准连接并发送/接收数据。

根据图1的本通信系统,通信装置10是可以通过一个或优选通过多个近距离通信标准来传输和接收数据的装置。例如,通信装置10根据有线的近距离通信标准向有线连接的外部装置20传输数据,并能从该外部装置20接收数据。另外,通信装置10根据无线的近距离通信标准向连接于无线媒体的外部装置20传输无线数据,并能从该外部装置20接收无线数据。像这样,通信装置10可连接于根据多个近距离通信标准的有线/无线的短距离网络,并且可以根据各近距离通信标准与特定外部装置20进行数据通信。

对于根据本发明的通信装置10,将在图2进行详细描述。

外部装置20是根据指定的通信标准与通信装置10连接,并能发送/接收数据的装置。外部装置20通过无线媒体连接于通信装置10或通过有线媒体连接于通信装置10。

例如,外部装置20根据紫蜂(ZigBee)通信标准或蓝牙通信标准连接于通信装置10,并通过无线与通信装置10发送/接收数据。或者,外部装置20根据以太网(Ethernet)标准有线连接于通信装置10,并通过有线与通信装置10发送/接收数据。

外部装置20通过有线或无线近距离网络连接于通信装置10,通信装置10支持两种类型或其以上的近距离通信标准。例如,通信装置10通过第1近距离通信连接于特定的一个以上的外部装置20,并通过其它标准的第2近距离通信连接于一个以上的外部装置20,从而发送/接收数据。

第一近距离通信及第二近距离通信分别至少被定义为通信媒体、物理层(Physical Layer)标准(协议)及数据链路层(Data-Link Layer)标准。例如,第一近距离通信表示以太网标准,第二近距离通信表示无线保真(WiFi)或紫蜂 (ZigBee)、蓝牙(Bluetooth)等的特定标准。

通信装置10通过第一近距离通信和第二近距离通信与多种通信类型的外部装置20接收和发送数据。

图2为示出通信装置10的示例性的框图的图。图2的框图优选显示硬件框图。

根据图2,通信装置10包括处理器100、存储器200、通信芯片组300、至少2个物理层芯片400。其中,可根据设计变形省略部分框。例如,一个或多个物理层(PHY)芯片400可以内置于通信芯片组300内。或者,未包含在图2的其它框也可包含在该通信装置10。例如,通信装置10还可以具有用于接收使用者输入的输入接口及/或用于输出图像等的显示器、用于输出信号的发光二极管(Light Emitting Diode,LED)、用于储存文件等的硬盘等。

处理器100利用储存在存储器200的程序来控制通信装置10。处理器100配置为可加载程序来执行程序的指令代码。处理器100可以被称为中央处理器单元(Central Processing Unit,CPU)、微处理器单元(Micro Processor Unit,MPU)、微控制器(Micro Controller)等。

处理器100通过内部接口向通信芯片组300传输数据,并从通信芯片组300接收数据。在处理器100与通信芯片组300之间发送/接收的数据包括通过近距离通信标准输出至外部装置20的数据或从外部装置20接收到的数据。优选地,从处理器100传输至通信芯片组300的数据是可在OSI 7层模型上的传输层以上的应用层中利用的数据。另外,从通信芯片组300传输至处理器100的数据也是可在应用层上利用的数据。

处理器100可通过内部接口访问(access)并控制通信芯片组300,处理器100通过内部接口的地址总线选择通信芯片组300内的特定寄存器,在相应寄存器中设置设定值(数据)。

处理器100可通过对如上所述的寄存器的设置来建立多个通信信道。尤其是,处理器100可通过至少两种类型以上的近距离通信建立与多个外部装置20间的通信信道。通信信道利用各个对应的配置寄存器的设定值(数据)而连接于外部装置20。各个通信信道被定义为表示多种类型中的特定类型的设置数据,且根据本发明,通过第一或第二近距离通信而接收的通信数据包利用这种类型的设置数据而实现过滤。

内部接口例如可以为串行接口或并行接口。例如,内部接口可以为如串行外设 接口总线(Serial Peripheral Interface Bus,SPI)、通用异步接收器/发送器(Universal asynchronous receiver/transmitter,UART)、通用串行总线(Universal Serial bus,USB)、I2C等的串行接口,或者由处理器100提供的8位(bit)、16位、32位等的并行总线。

存储器200包括易失性存储器及/或非易失性存储器。例如,存储器200包括一个以上DRAM类型的易失性存储器、或者NAND或NOR类型的非易失性存储器。

存储器200储存各种程序和数据。例如,存储器200储存用于在应用层上执行通信处理的程序,并储存通过通信发送的数据、文件或接收的数据、文件等。

通信芯片组300配置为能够在OSI 7层模型上处理多个层。例如,通信芯片组300配置为能够处理数据链路层、网络层及传输层。由于通信芯片组300能够进行从传输层至数据链路层的数据包处理,因此处理器100只需处理实际要发送/接收的应用数据,而无需处理各个层。

通信芯片组300配置为能够分层地处理至少3个连续的层。通信芯片组300可通过各个步骤的数据处理而分层地进行数据包过滤。分层数据包过滤利用为各个通信信道而配置的寄存器而得以实现。

通信芯片组300中的数据链路层、网络层及传输层的处理优选通过硬件逻辑而执行。如上所述,即使处理器100等不执行程序,通信芯片组300也可以处理各个层。

由通信芯片组300处理的各个层配置为符合多个标准规格。例如,通信芯片组300的传输层配置为能够处理传输控制协议(Transmission Control Protocol,TCP)和用户数据报协议(User Datagram Protocol,UDP),并且能够处理互联网控制报文协议(Internet Control Message Protocol,ICMP)。通信芯片组300的网络层配置为在处理互联网协议版本4(Internet Protocol version 4,IPv4)的同时处理互联网协议版本6(Internet Protocol version 6,IPv6)和ICMPv6。另外,网络层还可以具有可与IPv6接口的蓝牙(Bluetooth,BT)适配层(Adaptation Layer)或者可以与基于IPv6的低速无线个域网(IPv6over Low power Wireless Personal Area Networks,6LowPAN)接口的6LowPAN适配层。另外,数据链路层配置为能够处理以太网媒体访问控制(Media Access Control,MAC)、WiFi MAC、6LowPAN MAC、BT(Bluetooth)MAC等。通过处理各个MAC,产生将会传输至物理层芯片400的物理层数据。

物理层(PHY)芯片400有线连接于通信芯片组300,通过有线信号来发送/接收物理层数据。另外,物理层芯片400将从通信芯片组300接收到的物理层数据按照物理层标准进行编码并输出。例如,物理层芯片400按照以太网下的物理层标准对数据进行编码并通过有线进行输出。或者,物理层芯片400按照无线标准对数据进行编码,并通过具有指定频率的天线进行输出。

一个物理层芯片400可对应于一个近距离通信标准,另外一个物理层芯片400对应于其它近距离通信标准。例如,一个物理层芯片400负责处理符合第一近距离通信标准的物理层信号,另外一个物理层芯片400负责处理符合第二近距离通信标准的物理层信号。

物理层芯片400可根据变型设计而内置于通信芯片组300内。

图3为示出通信芯片组300的示例性的硬件框图的图。图3的框图为根据功能和连接关系将执行于通信芯片组300的硬件逻辑以框形状示出的图。以下,将重点描述在能够建立多个通信信道的环境下,过滤不必要的数据包的结构。

通过图3的框图进一步观察通信芯片组300可知,通信芯片组300包括:主机接口301、TX/RX缓冲器303、寄存器映射(register map)305、多个传输层模块307、第二处理模块309、多个网络层模块311、第一处理模块313、多个数据链路模块315、一个以上的物理层接口317、地址分配模块319、数据链路类型确定模块321及传输数据控制模块323。图3的通信芯片组300由硬件逻辑和控制各部分所需的各种逻辑门(gate logic)构成。

主机接口301(Host Interface)为用于与处理器100接口的逻辑。主机接口301配置为能够处理处理器100所具有的内部接口的数据、控制信号。主机接口301与处理器100联动,从而能够在特定地址写入特定数据或将写入至特定地址的数据提供给处理器100。例如,主机接口301通过处理器100的控制而能够写入或读取要传输至TX/RX缓冲器303的数据(应用层以上的数据),能够将各种设置数据写入寄存器映射305并从中读取。

TX/RX缓冲器(Buffer)303是用于储存通过近距离通信传输或已接收的应用层上的数据的缓冲器。TX/RX缓冲器303给处理器100提供独立的储存空间,该储存空间的个数与可在通信芯片组300建立及处理的通信信道的个数相同。通信信道可表示比传输层高的应用层上的配置信道,例如表示套接字(Socket)。如上所述,根据本发明的通信芯片组300独立地提供多个(例如8个)通信信道,处理器100 能够写入要传输至TX/RX缓冲器303的独立的储存空间的应用数据,且可以读取接收到的应用数据。

寄存器映射(Registers Map)305储存各种设置数据和各种状态。尤其是,寄存器映射305使得能够建立通过近距离通信的、与多个外部装置20的通信信道。优选地,寄存器映射305指示或代表能够被处理器100访问的寄存集(register set)或寄存器组(register groups)。

图4为示出示例性寄存器映射305的内部结构的图,该寄存器映射显示建立通信信道所需的寄存器。处理器100可以将数据写入各个寄存器,并通过主机接口301访问该寄存器。

由图4可知,寄存器映射305包括用于设置通信装置10的本地地址的本地地址配置寄存器(的区域),并且包括分别控制和监视由通信芯片组300提供的通信信道的通信信道寄存器(的区域)。

本地地址配置寄存器可以设置一个以上的网络层上的地址和一个以上数据链路层上的地址。优选地,本地地址配置寄存器可以包括能够设置其支持的2个以上的网络层地址和其支持的2个以上的数据链路层地址的寄存器。

例如,本地地址配置寄存器可以将IPv4地址寄存器、IPv6地址寄存器作为用于设置网络层地址的寄存器,并且可以将以太网MAC地址寄存器、紫蜂(ZigBee)MAC地址寄存器、BT MAC地址寄存器作为用于设置数据链路层地址的寄存器。特定地址可以与其它地址共享相同的寄存器。例如,以太网MAC地址寄存器中下属3字节(byte)区域与ZigBee MAC地址寄存器的区域相同。

另外,本地地址配置寄存器还包括配置各个网络层地址的类型的寄存器。例如,本地地址配置寄存器包括指定IPv4的地址为固定地址或DHCPv4(对于IPv4的动态主机配置协议(dynamic host configuration protocol,DHCP))类型的IPv4地址类型寄存器。另外,本地地址配置寄存器包括指定IPv6的地址为固定地址或DHCPv6(对于IPv6的DHCP)或自动配置(Auto Configuration)类型的IPv6地址类型寄存器。通过地址类型寄存器配置一个通信芯片组300的、更具体地说是一个通信装置10的两个网络地址。

如上所述,本地地址配置寄存器使通信装置10能够配置2个以上的网络层地址和/或配置2个以上的数据链路层地址。

寄存器映射305包括用于写入由通信芯片组300支持的通信信道相关的各种设 定、状态的通信信道配置寄存器(communication channel configuration registers)(的区域)。每个通信信道配置寄存器对应一个通信信道。

通信信道配置寄存器使得能够设置在通过通信芯片组300提供的多个层的类型中利用哪种类型,并且能够监视各个通信信道的状态。通信信道配置寄存器包括传输层型寄存器、网络层型寄存器及/或数据链路(或物理层)层型寄存器。根据通信信道配置寄存器的各个类型,特定通信信道被指定(specify),之后应用数据可以被发送/接收。

例如,传输层类型寄存器可被配置为TCP或UDP或ICMP等类型。例如,数据链路层类型可被配置为以太网、紫蜂或蓝牙类型。或是,如果不能设置数据链路层类型,那么数据链路层类型寄存器可被配置成自动设置。可根据自动设置,通过通信芯片组300而识别特定数据链路层类型。将在下文对此进行讨论。

通信信道配置寄存器还包括指令寄存器。指令寄存器为用于控制相关通信信道的寄存器,可通过处理器100写入。指令寄存器配置为能够写入可在应用层中使用的指令集合中的一个以上。例如,处理器100可将通信信道(套接字)的打开(Open)、关闭(Close)、发送(Send)、接收(Receive)等的指令写入至该指令寄存器。通信芯片组300根据该指令寄存器执行指定的功能。

通信信道配置寄存器还包括能识别通信信道的现状的状态寄存器。状态寄存器可识别通信信道是否打开或关闭,并且可以储存处理各个通信信道的层的特定通信协议的状态。例如,状态寄存器储存TCP的状态(Status)、序列(Sequence)号、ACK号等。例如,TCP的状态例如可以表示TCP通信协议中可识别的通信信道是否为断开(结束)的状态、是否为尝试建立连接的状态、是否为已连接的状态、是否为尝试结束连接的状态等。TCP的状态能够用于以后的数据包过滤。序列号和ACK号根据TCP数据包的发送和接收,通过硬件逻辑而自动地进行更新。

通信信道配置寄存器还可以储存图4中未示出的各种设置数据。例如,特定通信信道的配置寄存器储存可利用于TCP或UDP等中的通信芯片组300或通信装置10的本地端口号和通过通信信道连接的对方装置的端口号。另外,特定通信信道的配置寄存器还包括连接于通信信道的对方装置的IP地址。

从图4中可知,寄存器映射205可建立通信装置10的本地地址,并且可建立一个以上的通信信道。另外,寄存器映射305的各种设置数据可利用于接收到的数据包的过滤,将在下文中具体讨论数据包过滤。

另外,寄存器映射305能够独立地建立通信芯片组300可提供的多个通信信道。例如,根据本发明的通信芯片组300可设置8个(N=8)通信信道,因而TX/RX缓冲器303中分配了8个独立的发送/接收缓冲器。

再次观察图3的各个框,一个以上的物理层接口317(PHY Interface)连接于指定的物理层芯片,并从物理层芯片400接收根据物理层定义的物理信号,并将其恢复为数据。恢复的物理层数据被传输至以一对一连接的数据链路模块315。物理层接口也可从数据链路模块316接收物理层信号,对其进行编码,并通过有线或无线媒体而输出。

多个数据链路层(Data-Link Layer)模块从对应的物理层接口317接收物理层数据,并执行根据指定的数据链路层类型的数据链路层处理。例如,一个数据链路模块315可以执行以太网MAC处理,可从接收的数据中识别MAC数据包并提取MAC数据包的有效载荷。另一个数据链路模块315可以执行紫蜂MAC处理,可从接收的数据中识别紫蜂MAC数据包,并提取MAC数据包的有效载荷(payload)。另一个数据链路模块315可以执行BT MAC处理,可从接收的数据中识别BT MAC数据包,并提取MAC数据包的有效载荷。

各个数据链路模块315利用包含于寄存器映射305的对应地址(例如以太网MAC地址、紫蜂MAC地址、BT MAC地址)而确定是否将通过物理层接口317接收的物理层数据传输至上层。

另外,各个数据链路模块315可连接于上位(higher)的模块(例如第一处理模块313),将接收的网络层数据包编码成MAC数据包,并将其输出至与其对应的物理层接口317。

第一处理模块313连接于多个数据链路模块315,并且利用储存在寄存器映射305的多个通信信道的设置数据来过滤从多个数据链路模块315提取的数据链路数据(数据链路数据包的有效载荷)。

例如,第一处理模块313确定数据链路数据的网络层类型。一个数据链路模块315(例如以太网MAC模块)可以具有IPv4、IPv6网络层类型,另一个数据链路模块315(例如紫蜂MAC模块或BT MAC模块)具有IPv6网络层类型。并且,当提取数据链路数据时,以太网MAC模块可以识别IPv4或IPv6类型,并且该类型数据被传输至第一处理模块313。

如上所述,第一处理模块313可根据提取数据链路数据的模块或从相关模块接 收的类型数据确定数据链路数据的网络层类型。

第一处理模块313通过比较对数据链路数据确定的网络层类型和包括在寄存器映射305的所有通信信道的配置寄存器的网络层类型来过滤从数据链路模块315接收的数据链路数据。

即,如果所有通信信道的网络层类型相同(通过AND或NOR运算)时,所接收的数据链路数据的确定的网络层数据类型不同于通信信道的网络层类型时,则第一处理模块313过滤相关的数据链路数据,并且可以不向接下来的网络层模块311输出数据。这种比较是通过硬件比较器(comparator)实现的。

即,如果通信信道的网络层类型中存在相同的类型时,第一处理模块313将数据链路数据输出至网络层模块311。尽管输出至网络层模块311的数据链路数据可被输出至所有网络层模块311,但优选输出至指定的网络层模块311。

另外,第一处理模块313还可基于数据链路层类型而过滤数据链路数据。例如,如果所有通信信道的数据链路层类型为相同的类型时,对于接收的数据链路数据的数据链路模块315不同时,第一处理模块313过滤相关的数据链路数据。这种比较是通过由硬件逻辑构成的比较器(comparator)实现的。

其中,如果通信信道未打开,数据链路类型或网络层类型可被配置成空(Null)类型或由第一处理模块313监测为空类型,上述空类型是与数据链路模块315的所有类型不同的类型,可由第一处理模块313识别。即,第一处理模块313仅能够对通信信道打开的类型,通过比较而执行向接下来的模块的数据输出,如果没有打开的通信信道,即使MAC地址一致也进行过滤。

如上所述,如果数据链路层类型都相同或通信信道的数据链路层类型中存在至少一个相同的类型,那么第一处理模块313向网络层模块311输出数据链路数据。利用数据链路层类型的过滤和利用网络层类型的过滤可一起执行。例如,首先对数据链路层类型进行过滤后,再通过第一处理模块313对网络层类型进行过滤。

另外,第一处理模块313能够将从网络层模块311接收的网络层数据包输出至指定的特定数据链路模块315。

多个网络层模块(Network Layer)311连接于第一处理模块313,并从第一处理模块313接收数据链路数据,且按照指定的通信协议执行网络层处理。

例如,一个网络层模块311配置成处理IPv4通信协议,另一个网络层模块311配置成处理地址体系比IPv4更拓展的IPv6通信协议。

处理IPv6的网络层模块311与用于适配(adapting)数据链路数据的中间阶段的网络层模块相关联,从而执行要在网络层上执行的各种处理。例如,IPv6网络层模块311配置成连接于用于紫蜂扩展的6LowPAN适配模块311或连接于用于蓝牙扩展的BT适配模块311,从而处理适配的数据链路数据。

另外,网络层模块311可将从上位的第二处理模块309等接收的传输数据包变换成网络层数据包而传输至第一处理模块313。

第二处理模块309连接于多个网络层模块311,并且利用储存在寄存器映射305的多个通信信道的设置数据来过滤从网络层模块311的网络层数据(网络数据包的有效载荷)。

具体地,第二处理模块309确定对应于网络层数据的传输层类型,比较确定的传输层类型和对通信信道配置了的所有传输层类型来过滤网络层数据,或向更高层输出。

即,如果所有通信信道的传输层类型相同(通过AND或NOR运算)时,所接收的网络层数据的确定的传输层类型不同于通信信道的传输层类型时,则第二处理模块309过滤相关的网络层数据。这种比较是通过硬件比较器(comparator)实现的。

如上所述,如果不存在相同的传输层类型,那么第二处理模块309去除(过滤)相应的网络层数据,而如果存在时则输出该网络层数据。

另外,第二处理模块309连接于传输层模块307,接收从传输层模块307的传输数据包,并将其输出至指定的网络层模块311。

通信芯片组300包括多个传输层(Transport Layer)模块307,传输层模块307连接于第二处理模块309,接收从第二处理模块309的网络层数据,且执行指定的传输层的处理。

例如,一个传输层模块307(TCP模块)从网络层数据识别TCP数据包,从TCP数据包提取除了头部(header)和尾部(tail)的有效载荷的TCP数据,并将相关TCP数据输出至TX/RX缓冲器303,从而将其写入用于特定通信信道的缓冲器。另外,上述TCP模块307能够将特定通信信道的发送/接收状态写入对应的寄存器映射305的配置寄存器。例如,TCP模块307利用传输层类型、数据链路层类型、网络层类型及端口号等识别通信信道。TCP模块307根据TCP数据包的接收和发送状态在识别的通信信道的状态寄存器中写入状态、序列号以及ACK号等。

另一个传输层模块307(UDP模块)从网络层数据识别UDP数据包,提取有效载荷的UDP数据并输出至TX/RX缓冲器303,从而将其写入用于特定通信信道的缓冲器。

另一个传输层模块307(ICMP模块)从网络层数据识别ICMP信息,并执行根据ICMP信息的处理。例如,该传输层模块307可以处理坪(ping)信息。

特定的一个传输层模块307(TCP模块)能够利用对应于传输数据包的通信信道的发送/接收状态来过滤被提取的传输层数据(传输数据包的有效载荷)。例如,TCP模块307能够通过比较特定写入状态的序列号、ACK号和由网络层模块311等接收的传输数据包的序列号、ACK号,从而过滤传输层数据。

如上所述,每个传输层模块307按照传输层上的不同标准协议执行处理。另外,每个传输层模块307可将TX/RX缓冲器303的应用数据配置成传输数据包,包并传输至第二处理模块309。

另一方面,第一处理模块313能够将数据链路数据的类型数据传输至更高层(例如网络层模块311或传输层模块307),第二处理模块309能够将网络层数据的类型数据传输至更高层(例如传输层模块307)。所要传输的类型通过信号线(signal line)实现传输。

传输层模块307根据数据链路层类型和网络层类型,可确定是否将最终被提取的传输层数据输出至TX/RX缓冲器303或进行过滤(去除)。

例如,传输层模块307将从第一处理模块313传输或确定的数据链路数据的类型、从第二处理模块309传输或确定的网络层类型以及相关传输层模块307的类型与通信信道的相应类型进行比较。如果存在匹配的通信信道,那么传输层模块307将提取的传输层数据写入用于相关通信信道的TX/RX缓冲器303(的通信信道区域)。如果不存在匹配的通信信道,那么上述传输层数据会被去除。

如上所述,根据本发明的通信芯片组300通过各个层而分层地过滤数据包。尤其是,利用建立的多个通信信道的设置数据,通过比较设置数据和接收的数据包的数据,从而执行过滤数据包的处理。

因而,通信装置10对来自未通过通信信道连接的外部装置20或任意的外部装置20的通信攻击是安全的。尤其是,不利用处理器100而是通过硬件逻辑执行过滤,因而可以安全地保护包括处理器100在内的通信装置10。并且,通过每一层的过滤而能够有效地控制电力消耗。通过这样的结构,通信装置10可免受外部的随 机攻击或蓄意攻击,从而能得到安全的保护。

地址分配模块319根据本地地址配置寄存器的地址类型动态地分配用于通信装置10的一个以上网络层地址(例如IPv4地址或IPv6地址)。

例如,如果IPv4地址类型被配置为用于自动设置的DHCPv4类型,那么地址分配模型319控制ICMP模块(其为传输层模块307)自动获得用于IPv4的地址,且将其分配(写入)到IPv4地址寄存器。

或者,如果IPv6地址类型被配置为DHCPv6或自动设置等,那么地址分配模型319通过还能包括在网络层模块311的ICMPv6模块来获得用于IPv6的地址,并将其分配到IPv6地址寄存器。

根据本发明的通信芯片组300还包括数据链路类型确定模块321。通过网络地址(例如IP地址等)与其它外部装置20连接时,通常难以知道通过哪一个近距离通信进行连接。当建立通信信道时如果通信信道配置寄存器的数据链路层类型寄存器被配置成自动设置,那么数据链路类型确定模块321被驱动,并按照数据链路层类型的自动设置改变并设置数据链路类型寄存器。例如,数据链路类型确定模块321可将数据链路层类型设置为以太网、紫蜂或蓝牙MAC类型。

数据链路层确定模块321,根据特定通信信道的数据链路类型的自动设置,通过控制对应于建立在通信信道的传输层类型的传输层模块307、对应于网络层类型的网络层模块311、以及下位(lower)的多个数据链路模块315,能够确定数据链路层类型并将其写入数据链路层类型寄存器。

例如,数据链路确定模块321根据自动设置,在建立TCP连接(利用通信信道的指令寄存器)时,通过控制TCP模块307而构成用于建立TCP信道的TCP数据包。随后,TCP数据包通过IPv4模块311被建立成IP数据包,以太网数据包通过以太网MAC模块而被建立并以以太网的物理层数据而被输出。并且,其响应可通过以太网MAC模块315和IPv4模块311及TCP模块307接收,且可被传输至数据链路类型确定模块321。如果数据链路类型确定模块321通过IPv4模块311接收上述响应,那么数据链路类型确定模块321可将数据链路层类型确定为以太网MAC类型。

如果响应未通过以太网MAC模块315接收的情况下,则数据链路类型确定模块321通过IPv6模块311和紫蜂MAC模块315或BT MAC模块315等其它数据链路模块315而尝试传输物理层数据和接收回应。如果接收响应,那么数据链路类 型模块321可将数据链路层类型确定为紫蜂MAC类型或BT MAC类型。

即使通信信道建立成UDP类型,也能够利用数据链路类型确定模块321。例如,如果通信信道为UDP类型且数据链路层类型为自动设置时,那么数据链路类型确定模块321跟随通过相关通信信道的传输指令(指令寄存器),而每次自动确定数据链路层类型,之后利用确定的数据链路层类型输出TX/RX缓冲器303的应用数据。

如上所述,数据链路类型确定模块321通过识别在网络层之上的层中是否输出数据包以及是否接收其响应,能够将数据链路层类型确定为特定类型,。

传输数据控制模块323利用通信信道的各种设置数据,使得由处理器100通过主机接口301写入的应用数据通过近距离通信而输出。即,传输数据控制模块323利用通信信道的设置数据控制特定的传输层模块307、特定的网络层模块311及特定的数据链路模块315,从而通过指定的近距离通信输出应用数据。

对于通过传输数据控制模块323的控制而言,传输数据控制模块323按照写入任意通信信道的传输指令,根据通信信道(用于TX/RX缓冲器303的特定应用数据)的传输层类型,驱动指定的传输层模块307。

传输层模块307将应用数据构建成传输数据包并输出。传输数据控制模块323控制第二处理模块309,根据通信信道的网络层类型将输出的传输层数据发送至特定的网络层模块311,并驱动上述网络层模块311。

其中,传输数据控制模块323监视通过传输层模块307实现传输的传输数据包,并根据监视结果再发送特定的传输数据包。

例如,传输数据控制模块323监测对TCP数据包传输的ACK信号的接收,如果由内部计时器(内置于通信芯片组300,且由硬件逻辑实现)设定的时间内未通过接收的TCP数据包识别出ACK信号,那么再发送未接收到ACK信号的TCP数据包。与处理器100无关地,传输数据控制模块323再发送TCP数据包可通过硬件逻辑自动地执行。

另外,网络层模块311将接收的传输数据包构建成网络层数据包并输出。传输数据控制模块323控制第一处理模块313,将输出的网络层数据包发送至根据通信信道的数据链路层类型而被特定的数据链路模块315,并驱动相关的数据链路模块315。

数据链路模块315可将网络层数据包配置成数据链路数据包,并通过物理层接 口317将其输出。

如上所述,传输数据控制模块323使得能够根据各个层控制从通信装置10向外部装置20输出的应用数据。

相反,在实际上位的层(例如传输层)执行处理前,无法识别从外部装置20接收的物理信号或物理层数据是否为用于该通信装置10的数据。

然而,根据本发明的通信芯片组300具有第一处理模块313和第二处理模块309,从而可以进行阶段性的数据包过滤,可在上层处理前进行过滤。第一处理模块313和第二处理模块309优选配有硬件逻辑,例如可以利用比较器来比较建立在通信信道的类型和通过数据接收而识别的类型,从而可分层地进行过滤。

图5为示出从外部接收物理信号时进行分层过滤的控制流程的例子的图。

在进行图5中流程的例子之前,处理器100可按照需要通过主机接口301访问寄存器映射305,并在寄存器映射305上配置本地地址。处理器100设置两个IP地址,其中一个IP地址设置为IPv4地址而另一个则设置为IPv6地址。像这样,通信装置10具有不同的网络层类型的地址。另外,处理器100配置用于三个数据链路(或PHY)类型的地址。

IP地址和数据链路类型地址的配置使通信装置10可进行多种类型的近距离通信。

另外,处理器100建立通信信道。例如,处理器100通过主机接口301建立两个通信信道。假设一个通信信道建立为TCP、IPv6、以太网类型,另一个通信信道建立为TCP、IPv6、紫蜂类型。

随后,BT MAC模块315识别具有通信装置10的BT MAC地址的MAC数据包,并提取MAC数据包的有效载荷,从而将提取的数据链路数据传输至第一处理模块(参考①)。

第一处理模块313比较通信信道的设置数据的数据链路类型和提取的数据链路数据的类型,因不相同而过滤提取的数据链路数据(参考②)。

随后,以太网MAC模块315识别具有通信装置10的以太网MAC地址的MAC数据包,并提取MAC数据包的有效载荷,从而将提取的数据链路数据传输至第一处理模块313(参考③)。另外,以太网MAC模块315可以提取IP类型,识别IP类型是否为IPv4,并将该类型传输至第一处理模块313。

第一处理模块313比较通信信道的数据链路类型的和提取的数据类型,并识别 二者是否相同。另外,第一处理模块313比较通信到的网络层类型和通过以太网确定的网络层类型。另外,根据比较结果网络层类型不同,则自以太网MAC模块315的数据链路数据被去除(过滤)(参考④)。

随后,紫蜂MAC模块315识别具有通信装置10的紫蜂MAC地址的MAC数据包,并提取MAC数据包的有效载荷,从而将提取的数据链路数据传输至第一处理模块313(参考⑤)。

第一处理模块313比较数据链路类型而确认是否存在相同的数据链路类型,并且比较网络层类型而确认是否存在相同的网络层类型,并输出该数据链路数据(参考⑥)。数据链路数据可被输出至特定的网络层模块311或被输出至所有网络层模块311。第一处理模块311还可以输出指示紫蜂MAC模块315的索引(Index)或数据链路层类型。

数据链路数据发送至6LowPAN适配模块311,其中6LowPAN适配模块311向IPv6数据包扩展数据,并将其发送至IPv6处理模块311。IPv6处理模块311按照IPv6通信协议处理数据,并提取有效载荷(参考⑦)。

IPv6处理模块将提取有效载荷作为网络层数据发送至第二处理模块309(参考⑧)。

第二处理模块309对网络层数据确定传输层类型。第二处理模块309可将该传输层类型确定为UDP。

第二处理模块309比较建立的通信信道的传输层类型和确定的传输层类型,并判断没有相同的类型。因而,第二处理模块309去除网络层数据并过滤,从而防止在上层被处理(参考⑨)。

如果存在相同的传输层类型,那么相关网络层数据可被发送至更高的层(传输层)的特定模块307,从而被进一步处理。更高层的模块307利用寄存器映射305的设置数据(各种类型或端口号)判别是否为用于特定通信信道的数据。或者,上述模块307可利用通信信道配置寄存器的状态等来过滤数据(参考⑩)。

例如,TCP模块307用传输的一个以上的网络层数据构建TCP数据包。随后,TCP模块307配置为利用储存在配置寄存器的各种状态和设置数据来过滤(去除)构建的TCP数据包。

作为过滤的一例,模块307从构建的TCP数据包的头部提取源端口(Source Port)号,并且确定传输TCP数据包的对方装置的IP地址。IP地址可从第二处理 模块309或网络层模块311接收或被设置。TCP模块307比较对方IP地址、源端口号与包含在通信信道的通信信道配置寄存器的对方装置的IP地址、对方装置的端口号,如果二者不一致,那么过滤相关的TCP数据包。

被提取或被确定的IP地址和源端口号与建立在所有通信信道的对方装置的IP地址和端口号进行比较。通过比较IP地址和端口号,TCP模块307可指定(specify)通信信道。如上所述,TCP模块307能够至少利用IP地址和端口号,而指定一个通信信道,如果未指定则可删除相关的TCP数据包。

指定通信信道后,TCP模块307还利用指定的通信信道配置寄存器过滤数据包。

作为指定通信信道后的过滤的一例,TCP模块307确定从TCP数据包的头部提取的目的(Destination)端口号是否与指定的通信信道配置寄存器的本地端口号相同,如果不相同,那么不会将相关TCP数据包传输至分配到通信信道的TX/RX缓冲器303,而是会删除。

另外,TCP模块307利用通信信道的连接状态(可通过通信信道配置寄存器的状态寄存器确认)执行TCP数据包的过滤。作为利用连接状态的数据包的过滤一例,TCP模块307可在尝试连接状态下提取TCP数据包头部的标记(Flag),并确认是否设置SYN标记。未设置SYN标记的TCP数据包由TCP模块307过滤。

在尝试连接状态或断开连接状态等情况下,TCP模块307可确认在构建的TCP数据包上是否有要接收的数据。包含数据的TCP数据包由TCP模块307过滤。

在尝试断开连接的状态下,TCP模块307提取TCP数据包的头部的标记,并确认是否设置FIN标记。未设置FIN标记的TCP数据包由TCP模块307过滤。

另外,TCP模块307还可以利用包含在状态寄存器的序列号和ACK号而进一步过滤TCP数据包。

作为利用序列号和ACK号进行过滤的一例,如果构建的TCP数据包的序列号和在状态寄存器中管理并输出的ACK号不同,那么TCP模块307删除相关的TCP数据包。

另外,如果构建的TCP数据包的序列号对应于已接收的TCP数据包,那么TCP模块307删除相关的TCP数据包。即,TCP模块307比较特定的通信信道的状态寄存器的序列号和构建的TCP数据包的序列号,如果构建的序列号小于状态寄存器的序列号,那么删除相关的TCP数据包。

另外,TCP模块307可利用TCP数据包的头部等而确定构建的TCP数据包的 有效载荷的大小。如果有效载荷的大小大于分配到TX/RX缓冲器303的通信信道的缓冲器的大小,则TCP模块307删除相关的TCP数据包。

另外,UDP模块307可利用设置数据或状态来过滤UDP数据包。例如,UDP模块307可通过比较源端口号、目的端口号和储存在通信信道配置寄存器等的端口号等来过滤相关的UDP数据包。

未被过滤的TCP数据包的有效载荷数据通过传输层模块307而被提取,被提取的有效载荷数据写入至分配到特定通信信道的缓冲器303。随后,处理器100识别写入TX/RX缓冲器303的有效载荷数据,并可以读取相应有效载荷数据(其为应用数据)。

如上所述,传输层模块307利用设置数据和状态数据执行对数据包的各种过滤。尤其是,传输层模块307配置为只将对于通信信道而建立的设置数据和符合状态数据的数据包传输至处理器100。因而,与其它软件解决方案不同,能够解决泛洪(Flooding)攻击,序列号修改攻击或随机的攻击等多种由各种外部设备引起的互联网攻击。

尤其是,由于包含传输层模块307的通信芯片组300由硬件逻辑构成,因此本发明的通信芯片组300和通信装置10对于网络攻击更加安全。

从上述的例子中可知,根据本发明的通信芯片组300即使接收非特定数据包时,在将数据包发送至处理器100之前分层地执行数据包过滤,因而可以保护通信装置10。

尤其是,通信装置10配置成能够支持多种类型的通信信道,并且可以利用多种类型的通信信道的设置类型,从而在各个层之间过滤数据包。另外,通信芯片组300的模块都由专用硬件逻辑构成,过滤各种层的数据包(在通过主机接口301由处理器100访问数据包前未连接或未被指定的数据包)。

因而,通信芯片组300可从外部通信攻击保护通信装置10,且可以通过所希望的通信信道处理数据,并且可用硬件执行高速数据通信处理。

如上所述,由专用硬件逻辑构成的通信芯片组300不提供入侵者能执行代码的环境,因而从根本上拦截通过网络的安全入侵。

如上所述的本发明不限制在前述的实施例和所附的附图,而本发明所属技术领域的技术人员,在不超出本发明的技术思想的范围内可以进行各种替换、改变和修改。

附图标记的说明

10:通信装置

100:处理器 200:存储器

300:通信芯片组

301:主机接口 303:TX/RX缓冲器

305:寄存器映射 307:传输层模块

309:第二处理模块 311:网络层模块

313:第一处理模块 315:数据链路模块

317:物理层接口 319:地址分配模块

321:数据链路类型确定模块 323:传输数据控制模块

400:物理层芯片

20:外部装置

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1