CN109474641B - 一种可破坏硬件木马的可重构交换机转发引擎解析器 - Google Patents

一种可破坏硬件木马的可重构交换机转发引擎解析器 Download PDF

Info

Publication number
CN109474641B
CN109474641B CN201910003982.2A CN201910003982A CN109474641B CN 109474641 B CN109474641 B CN 109474641B CN 201910003982 A CN201910003982 A CN 201910003982A CN 109474641 B CN109474641 B CN 109474641B
Authority
CN
China
Prior art keywords
key
unit
stage
basic processing
data
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.)
Active
Application number
CN201910003982.2A
Other languages
English (en)
Other versions
CN109474641A (zh
Inventor
李翔宇
杨芳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tsinghua University
Original Assignee
Tsinghua University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tsinghua University filed Critical Tsinghua University
Priority to CN201910003982.2A priority Critical patent/CN109474641B/zh
Publication of CN109474641A publication Critical patent/CN109474641A/zh
Priority to PCT/CN2019/094332 priority patent/WO2020140412A1/zh
Priority to US17/261,849 priority patent/US11736515B2/en
Application granted granted Critical
Publication of CN109474641B publication Critical patent/CN109474641B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/7452Multiple parallel or consecutive lookup operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/20Support for services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/351Switches specially adapted for specific applications for local area network [LAN], e.g. Ethernet switches
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/145Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/12Protocol engines
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/24Negotiation of communication capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/041Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 using an encryption or decryption engine integrated in transmitted data

Abstract

本发明涉及一种可破坏硬件木马的可重构交换机转发引擎解析器,其包括数据预处理单元、若干级联的基本处理单元和提取单元;第一级基本处理单元的密钥通路对密钥进行密钥位关键字提取和移位,并将结果发送至本级的数据通路和下级的密钥通路;基本处理单元的数据通路对数据帧进行关键字段提取和移位,生成下一级基本处理单元的提取字段偏移量、本级各字段的偏移量和字段标识和移位后的数据帧分别发送至下一级或本级基本处理单元;其他各级基本处理单元依次对密钥帧和数据帧进行关键字提取和移位;提取单元从最后一级基本处理单元中进行密钥帧和数据帧的提取,并转发至后续包处理部分。本发明可广泛应用于交换机转发引擎解析器的设计中。

Description

一种可破坏硬件木马的可重构交换机转发引擎解析器
技术领域
本发明属于网络交换机芯片设计技术领域,特别是关于一种可破坏硬件木马的可重构交换机转发引擎解析器。
背景技术
交换机转发引擎是交换机芯片的核心部件,它的任务是对接收的第2层包(也称为帧)进行解析处理,形成路由表的查表请求发给搜索引擎,并根据搜索引擎返回的查表结果对包进行转发处理,包括包头部的修改(替换、添加和删除等),最终将封装好的新的包进行转发或者丢弃。而决定包处理操作的是包头部的关键字段和交换机设置的转发和分类规则,因此需要对包头部进行解析和提取。交换机转发引擎的parser(解析器)就是根据网络协议标准定义的帧格式对包头部进行解析的功能模块,它把来自交换机转发引擎输入端口的包头部和对应的端口信息、存储地址等描述信息(描述符)作为输入数据,对这些输入数据中的关键字段进行解析、识别和提取操作,输出给后续的包处理流程。
软件定义网络(SDN)是一种新型网络创造架构,是网络虚拟化的一种实现方式。对于包的解析技术而言,SDN的需求体现在支持用户自定义的协议,即通过软件编程使得芯片能够识别并解析不同的帧格式,这就要求parser的硬件设计具有一定的灵活性,即通过软件配置能够使得同一硬件支持用户自定义的协议的包的解析。
硬件木马攻击技术是通过在硬件中植入后门,内外配合实施,触发系统的非定义行为(执行错误操作或者非法操作)而实现攻击的安全攻击技术。然而,不论上述哪种方式,硬件木马攻击都必须有良好的隐蔽性,以避免在测试过程中被发现,或者在使用过程中被误触发,从而过早暴露,所以它一般会有一个特定的触发条件。只有匹配了这个触发条件,硬件木马攻击才得以实施。
去协同技术,其基本思想是对输入交换机转发引擎芯片的数据进行扰乱(变码),改变选定防护字段的数值,在数据离开保护域时再将其解码(恢复原来的数值),该过程对外透明。一旦某系统中存在木马,通过变码可以破坏发来的激活木马的指令,从而达到阻止木马攻击的效果,具体地,如果木马将系统内部的数据通过非正常通道向外发送(窃听),则由于未经解码,而使窃听数据无法识别,如果木马在系统内部产生非法数据通过正常渠道向外发送,则会由于解码过程而被破坏。去协同技术的关键在于确定变码和解码的位置,以及变解码的方式。
然而,在交换机转发引擎解析器的数据流中,由于parser需要对接收的包中的字段进行识别、分析,都要基于数据的原始数值,所以简单地在数据入口进行变码、出口进行解码将使得包无法解析。但是如果在进行关键字查询时将数据恢复,又会使得原始输入数据出现在被保护的范围内,增加攻击指令渗透进来的风险。如何设计破坏硬件木马的parser是目前parser设计的难点之一。
发明内容
针对上述问题,本发明的目的是提供一种可破坏硬件木马的可重构交换机转发引擎解析器,该解析器采用了可重构的硬件实现方式——协议定义的帧格式的字段的数量、位置、关键字内容与协议类型、帧格式之间的对应关系都可以通过配置芯片内的配置寄存器、查找表(存储器)来实现配置。同时,为了达到阻止木马攻击的目的,增强解析器的安全性,本发明在解析器中增加了去协同的功能。
为实现上述目的,本发明采取以下技术方案:一种可破坏硬件木马的可重构交换机转发引擎解析器,其包括数据预处理单元、若干级联的基本处理单元以及与最后级基本处理单元相连的提取单元;各级所述基本处理单元结构相同,均包括数据通路和密钥通路;所述数据预处理单元用于按照解析器截取的交换机以太网端口输入的包头部生成等长的密钥,并将所述密钥作为密钥帧输出至第一级基本处理单元的密钥通路,将输入的包头部与生成的密钥按位异或后将异或的结果作为数据帧输出至所述第一级基本处理单元的数据通路;所述第一级基本处理单元的密钥通路用于对密钥进行密钥关键字提取和移位,提取的密钥关键字值发送至本级基本处理单元的数据通路,移位后的密钥值发送至下级基本处理单元的密钥通路;所述第一级基本处理单元的数据通路在本级密钥通路提取的密钥关键字值参与下,对所述数据帧进行关键字段提取和移位,并将提取的字段偏移量发送至本级基本处理单元的密钥通路以及下一级基本处理单元的密钥通路和数据通路,移位后的数据帧发送至下一级基本处理单元的数据通路;其他各级基本处理单元依次对接收到的密钥帧和数据帧进行字段提取和移位后,输出到下一级基本处理单元;所述提取单元根据接收到的密钥值和关键字偏移量,从最后一级基本处理单元的密钥通路和数据通路中进行密钥帧和数据帧字段的提取,并转发至后续包处理部分。
进一步地,所述各级基本处理单元中,数据通路包括:数据帧寄存器单元、第一移位器单元、若干第一PA单元、PB单元、PC单元、若干偏移量缓存单元;所述数据帧寄存器单元的输入为所述数据预处理单元或前一级基本处理单元发送的数据帧,输出连接本级所述第一移位器单元;所述第一移位器单元将本级的协议帧头部及其载荷向右移动到下一层协议帧的固定起始位置,其输入为本级所述PC单元输出的下一层协议帧头部在当前数据帧中的偏移量、本级数据帧寄存器单元输出的数据帧,输出为移位后的新的数据帧;各所述第一PA单元的输入为前一级基本处理单元中PC单元输出的关键字段偏移量、本级数据帧寄存器单元的待提取的数据帧,输出为提取出来的固定长度的关键字段;所述PB单元的输入为本级各所述第一PA单元输出的固定长度的关键字段、本级密钥通路输出的密钥关键字值,输出为与输入的关键字段组合所匹配的模板对应的协议分类和类型信息,如果关键字段和任何特征模板都不匹配,则发送非法标识到所述PC单元;所述PC单元是查表单元,其输入为本级PB单元的协议分类和类型信息,输出为下一级基本处理单元所需要的关键字段偏移量、本级封装帧头部中的各个字段的偏移量和字段标识以及下一级数据帧的偏移量;当根据本级提取协议下一层协议不需要解析,应当跳过时,PC单元输出bypass信号给下一级基本处理单元;当所述PB单元发送的为非法标识信息时,所述PC单元输出非法标识给下一级基本处理单元;后续各级所述基本处理单元接收到bypass信号后,把密钥和数据帧、所述第一PA单元的输入原样复制到下一级的对应端口上,不再执行其它操作;后续各级所述基本处理单元接收到非法标识信号时,把密钥和数据帧原样复制到下一级,不再执行其它操作,同时复制非法标识到后级基本处理单元;所述偏移量缓存单元的输入为前一级基本处理单元的偏移量缓存的所有输出和本级PC单元输出的本级封装帧头部中各个字段的偏移量和字段标识,输出为存储的所有数据。
进一步地,所述第一PA单元的数量根据每级基本处理单元对应处理的封装帧头部待提取的所有关键字总长度和每个所述第一PA单元能提取的关键字位宽确定。
进一步地,所述PB单元内包含一个匹配查找表,所述匹配查找表中存储着特征模板与协议信息之间的映射关系,且表项的内容能够通过表存储器的对外端口从外部写入,在进行匹配时,把PB单元内部存储的匹配模板与来自本级密钥通路的密钥按位异或,然后再进行匹配。
进一步地,所述PC单元内包含两个查找表:当前查找表和下一级查找表,所述当前查找表和下一级查找表的输入分别为所述PB单元输出的当前层协议类型分类标识和下一层协议类型分类标识,所述当前查找表的输出包括本级封装帧头部中的各个字段的偏移量和字段标识、下一级封装帧头部在当前数据帧中的偏移量,所述下一级查找表的输出包括下一级基本处理单元所需要的关键字段偏移量,所述当前查找表和下一级查找表的表项内容能够通过表存储器的对外端口从外部写入。
进一步地,各级所述基本处理单元中,所述密钥通路包括密钥寄存器单元、第二移位器单元、第二PA单元、拼接单元;所述密钥寄存器单元的输入是来自前一级或数据预处理单元的密钥帧,输出则连接着第二移位器单元;所述第二移位器单元是一个移位单元,将每一级的密钥及其之后的密钥比特向右移动到对应级的固定起始位置,其输入为密钥寄存器单元的密钥、本级基本处理单元数据通路输出的下一级封装帧头部在当前数据帧中的偏移量,输出为移位后的新的密钥帧;所述第二PA单元的数量与本级数据通路中所述第一PA单元的个数保持一致,各所述第二PA单元的输入为前一级基本处理单元数据通路中PC单元输出的关键字段偏移量、密钥寄存器单元的待提取的密钥值,输出为提取出来的固定长度的密钥值;所述拼接单元用于将所述第二PA单元输出的固定长度的若干个密钥值拼接、提取成查询匹配模板对应位置的密钥,它的输入是若干个所述第二PA单元提取出来的密钥字段,输出为产生的密钥值。
进一步地,所述提取单元包括提取单元数据通路和提取单元密钥通路,所述提取单元数据通路的输入为最后一级所述基本处理单元的数据通路输出的各级基本处理单元中各字段的偏移量和字段标识、移位后的数据帧,输出为提取出的字段和对应的字段标识;密钥通路的输入为最后一级基本处理单元的数据通路输出的各级协议头部的各字段的偏移量和字段标识、密钥通路输出的移位后的密钥帧,输出为提取出来的各数据帧字段对应的密钥片段;若提取单元收到数据包有非法标识,则不再执行提取操作,而是将非法标识和原始输入的数据帧描述符上送给上层系统处理。
进一步地,所述提取单元的数据通路和密钥通路结构相同,均包括N组提取模块、N个映射表和N组寄存器,且每组提取模块、映射表和寄存器分别对应一个网络协议层,数据通路的各组提取模块用于根据接收到的字段偏移量和字段标识,从最后一级基本处理单元的数据通路出的数据帧中提取相应字段,并输出到对应的数据通路寄存器,密钥通路的各组提取模块用于根据接收到的字段偏移量和字段标识,从最后一级基本处理单元的密钥通路的密钥帧中提取相应字段,并输出到对应的密钥通路寄存器,将提取的数据帧和密钥帧的相应字段进行异或得到所需数据;各映射表用于存储相应网络协议层内各个字段标识所对应的寄存器的物理地址。
进一步地,所述解析器中,所述基本处理单元的级联数等于所要解析的最大封装层次数量,每一层次的封装协议对应一级所述基本处理单元。
本发明由于采取以上技术方案,其具有以下优点:1、本发明中各级基本处理单元中PB单元中特征模板以及PC单元中的查找表均可以根据用户自定义重新写入,实现了硬件的可重构,具有很高的灵活性,并支持用户自定义网络协议的解析。2、本发明在数据通路结构上增添了密钥通路,通过对包头部进行去协同处理,破坏正常激活木马指令的作用,实现对硬件木马的主动防御,符合高安全性的要求。因此,本发明可以广泛应用于交换机转发引擎芯片的解析器的设计中。
附图说明
图1是交换机转发引擎芯片的典型结构图;
图2是本发明可破坏硬件木马的可重构交换机转发引擎Parser总体结构图。
具体实施方式
下面结合附图和实施例对本发明进行详细的描述。
如图1所示,本发明首先对交换机转发引擎芯片的典型结构和工作原理做简单介绍。以太网交换机转发引擎芯片的工作原理为:转发引擎对外与交换机的以太网口相连,接收来自各个端口(port)的包。来自不同端口的包经过L1层的解析处理后,其第2层包经过逐级汇聚(合路过程)形成一路,串行输入到交换机转发引擎内部。交换机转发引擎处理后的转发包再经过分流被传送到对应的目的端口上输出(分路过程)。其中,转发引擎对内通过高速接口与CPU和一系列查找表(有的由TCAM实现)相连,接收到的包被缓存到包存储器(packet buffer)中,同时把包的头部若干位(典型值为1024位)和它的端口信息、存储地址等描述信息(描述符)一起发送给解析器(parser)。parser对接收的包头部和描述符信息进行解析,识别和提取出有用字段,发给后面的查表逻辑,查表逻辑根据包中字段的值获得转发信息,这一过程涉及到与CPU和查找表的交互,可以简单地理解为一系列的查表操作,经过一级一级的查表,最终获得了对包的转发信息——即处理操作,这些操作的描述(新的描述符)被发送给修改器(modifier)。Modifier根据新的描述符从存储器中取出包,对其帧格式与内容进行修改(头部字段的替换、添加、删除)重新封装成新的包发送给分路器,进行转发。
在实际的parser模块中除了对包头部的解析和字段提取,还会携带原始输入的描述符,该描述符跟随包沿着流水线向后级传递,但不参与提取过程,在本发明中为了简化结构,突出核心部件,所描述的发明特征不包括复制描述符的相关功能电路。
如图2所示,本发明提供的一种可破坏硬件木马的可重构交换机转发引擎解析器,其包括:数据预处理单元、若干级联的基本处理单元以及与最后级基本处理单元相连的提取单元(Extractor)。其中,数据预处理单元用于按照解析器截取的交换机以太网端口输入的包头部生成等长的随机数(即密钥),并将输入的包头部与生成的密钥按位异或后将异或的结果和密钥输出至第一级基本处理单元;各级基本处理单元结构相同,均包括一数据通路和一密钥通路。其中,第一级基本处理单元的密钥通路用于对数据预处理单元输出的密钥进行密钥关键字提取和移位,提取的密钥关键字值发送至本级基本处理单元的数据通路,移位后的密钥值发送至下级基本处理单元的密钥通路,每级基本处理单元收到的密钥值称为密钥帧;第一级基本处理单元的数据通路用本级密钥通路提取的密钥关键字值,对异或后的包头部即数据帧进行恢复,然后提取字段和移位,提取的字段偏移量发送至本级基本处理单元的密钥通路以及下一级基本处理单元的密钥通路和数据通路,移位后的数据帧发送至下一级基本处理单元的数据通路;其他各级基本处理单元依次对密钥帧和数据帧进行字段提取和移位后,输出到下一级基本处理单元;提取单元根据接收到的密钥值和字段偏移量,从最后一级基本处理单元的密钥通路和数据通路中进行密钥帧和数据帧的字段提取,并转发至后续包处理部分。
各级基本处理单元中,数据通路包括:数据帧寄存器单元、第一移位器单元、若干第一PA单元(关键字提取单元)、PB单元(查询匹配单元)、PC单元(查表单元)和若干偏移量缓存单元。其中,数据帧寄存器单元的输入为数据预处理单元或前一级基本处理单元发送的数据帧,输出连接本级第一移位器单元;第一移位器单元为移位单元,用于将每一级的帧头部及其载荷向右移动到对应级的固定起始位置(固定起始位置可由外部端口进行配置),其输入为本级PC单元输出的本级封装帧头部的偏移量、本级数据帧寄存器单元存储的数据帧,其输出为移位后的新的数据帧;第一PA单元是PB单元的关键字提取单元,各第一PA单元的输入为前一级基本处理单元中PC单元输出的关键字偏移量、本级数据帧寄存器单元存储的数据帧,输出为提取出来的固定长度的关键字;PB单元为查询匹配单元,其输入为本级各第一PA单元输出的固定长度的关键字、本级密钥通路输出的密钥关键字值,输出为与输入的关键字组合所匹配的模板对应的协议分类和类型信息(以下简称协议信息),在进行匹配时,将把PB单元内部存储的匹配模板与密钥异或,然后再进行匹配,如果关键字组合和任何特征模板都不匹配,则认为是非法包,发送非法标识到PC单元;PC单元是查表单元,其输入为本级PB单元的协议信息,输出为下一级基本处理单元所需要的关键字偏移量、本级封装帧头部中的各个字段的偏移量和字段标识以及下一级数据帧的偏移量;当根据本级提取协议下一层协议不需要解析,应当跳过时,PC单元输出bypass信号给下一级基本处理单元;当所述PB单元发送的为非法标识信息时,所述PC单元输出非法标识给下一级基本处理单元;后续各级所述基本处理单元接收到bypass信号后,把密钥和数据帧、PA单元的输入原样复制到下一级的对应端口上,不再执行其它操作;后续各级所述基本处理单元接收到非法标识信号时,把密钥和数据帧原样复制到下一级,不再执行其它操作,同时复制非法标识到后级;偏移量缓存单元的数量与基本处理单元的级数相同,其用于存储前面各级基本处理单元解析出的所有字段的偏移量和字段标识,以及本级封装帧头部中的各个字段的偏移量和字段标识,其输入为前一级基本处理单元的偏移量缓存的所有输出和本级PC单元输出的本级封装帧头部中各个字段的偏移量和字段标识,输出为存储的所有数据,它的输出连接下一级基本处理单元的偏移量缓存。
各级基本处理单元中,密钥通路与数据通路相类似,包括密钥寄存器单元、第二移位器单元、若干第二PA单元和拼接单元。其中,密钥寄存器单元的输入是预处理单元或上一级基本处理单元的密钥帧,输出则连接着第二移位器单元;第二移位器单元是一个移位单元,将每一级的密钥及其之后的密钥比特向右移动到对应级的固定起始位置,其输入为密钥寄存器单元的密钥帧、本级基本处理单元数据通路中PC单元输出的本级数据帧的偏移量,输出为移位后的新的密钥帧,送往下一级基本处理单元的密钥通路;密钥通路中第二PA单元的个数与数据通路中第一PA单元的个数保持一致,一一对应,各第二PA单元的输入包括关键字偏移量、密钥寄存器单元的待提取的密钥帧,其中的关键字偏移量与本级数据通路中对应第二PA单元的关键字偏移量输入相同,输出为提取出来的固定长度的密钥值;拼接单元用于将第二PA单元输出的固定长度的若干个密钥值拼接、提取成与查询匹配模板对应位置的密钥,它的输入是若干个第二PA单元提取出来的密钥字段,输出为产生的密钥值。
提取单元分为提取单元数据通路和提取单元密钥通路两部分,提取单元数据通路的输入为最后一级基本处理单元中数据通路的若干个偏移量缓存的字段偏移量和字段标识、移位器单元中的数据帧,输出为提取出的字段和对应的字段标识;密钥通路的输入为最后一级基本处理单元中数据通路的若干个偏移量缓存的密钥偏移量和字段标识、密钥通路的移位器单元的密钥值,输出为提取出来的密钥片段。
提取单元的数据通路和密钥通路结构相同,均包括N组提取模块、N个映射表和N组寄存器,且每组提取模块、映射表和寄存器分别对应一个网络协议层。数据通路的各组提取模块用于根据接收到的偏移量缓存单元输出的字段偏移量和字段标识,从移位器单元输出的数据帧或密钥帧中提取相应字段,并输出到对应的数据通路寄存器;密钥通路的各组提取模块用于根据接收到的字段偏移量和字段标识,从最后一级基本处理单元的密钥通路的密钥帧中提取相应字段,并输出到对应的密钥通路寄存器,将提取的数据帧和密钥帧的相应字段进行异或得到所需数据;各映射表用于存储相应网络协议层内各个字段标识所对应的寄存器的物理地址;如果提取单元收到数据包有非法标识,则不再执行提取操作,而是将非法标识和原始输入的包描述符上送给上层系统处理。
进一步地,本发明系统还包括一字段标识索引单元,该字段标识索引单元将提取的数据帧字段和对应的密钥片段输出到对应地址的寄存器中,在需要的时候,通过将数据帧字段和它的关联密钥片段按位异或就可以恢复原始的数据帧字段内容。
进一步地,解析器中,基本处理单元的级联数N等于所要解析的最大封装层次数量,每一层次的封装协议对应一级基本处理单元。
进一步地,数据通路中,数据帧寄存器单元的容量大小根据待处理的包头部最大长度决定,在硬件设计时候进行固化。
进一步地,数据通路中,第一PA单元的数量根据系统所支持的协议情况的需求来确定,优选统一固化为每级基本处理单元对应处理的封装帧头部待提取的关键字个数中的最大值。
进一步地,数据通路中,PB单元内包含一个匹配查找表,匹配查找表中存储着特征模板与协议信息之间的映射关系,该匹配查找表的内容(特征模板和协议信息)通过表存储器的对外端口从外部写入,实现可配置。
进一步地,数据通路中,PC单元内包含两个查找表:当前查找表(LUT_CUR)和下一级查找表(LUT_NXT),表的输入(地址)分别为PB单元输出的当前层协议类型分类标识和下一层协议类型分类标识,当前查找表(LUT_CUR)的输出包括本级封装帧头部中的各个字段的偏移量和字段标识、本级数据帧的偏移量,下一级查找表(LUT_NXT)的输出包括下一级基本处理单元所需要的关键字段偏移量,当前查找表和下一级查找表的内容通过表存储器的对外端口从外部写入,实现可配置。
进一步地,数据通路中,PB单元和PC单元中查找表的输入输出位宽与容量、Offset_buffer的大小根据系统所支持的协议情况的需求来确定,在设计阶段选取后,固定下来。
下面以具体实施例对本发明做进一步详细介绍:
以太网-IPV4数据帧是网络常见的数据帧结构之一,根据协议分层与OSI参考模型的规则,以太网协议、IPV4协议分别对应数据链路层(L2)、网络层(L3)。因此如图2所示,本实施例中具有防御硬件木马攻击且可重构的Parser整体结构如下:处理级数为两级,输入数据通过由两个结构相同的基本处理单元级联,分别处理以太网协议、IPV4协议的帧格式头部,解析出来的结果送达最后的提取器(Extractor)模块并对数据帧和密钥中的关键字段进行统一提取,至此完成Parser的解析功能。
取输入的以太网-IPV4包的前1024位,在进入解析器之前与一个等长的随机数(密钥)按位异或,异或的结果送入以太网处理层基本处理单元的数据通路的数据帧寄存器(Frame Reg),密钥送入以太网处理层基本处理单元的密钥通路的密钥寄存器(Key Reg),同时基本处理单元的数据通路会接收上层配置的关键字提取的偏移量。针对以太网-IPV4数据帧的解析过程,两层协议中关键字段最大的提取数量为4,因此将每级基本处理单元中PA单元的个数固定为四个。
以太网处理层的数据通路由六个功能单元组成,包括数据帧寄存器(Frame Reg)单元、移位器单元、PA单元、PB单元、PC单元、偏移量缓存单元。数据通路接收到经过密钥异或处理的数据帧并将其存储在数据帧寄存器单元(Frame Reg),移位器单元是一个移位单元,输入为数据帧寄存器(Frame Reg)的1024位数据、来自本处理层的PC单元数据帧的移位量,根据移位量将本级协议的载荷数据移动到下一级协议对应的起始位置,输出为移位后的新的数据帧;四个PA单元分别接收上层配置而来的关键字偏移量值,并从数据帧寄存器单元中取出数据帧进行对应的提取,每个PA单元提取的字段长度固定为8位。PB单元是查询匹配单元,它的输入是四个PA单元提取出来的关键字段拼接而成的32位数据,和基本处理单元密钥层输出的32位密钥,这个密钥将同PB单元内部存储的所有匹配模板分别异或作为最终的匹配模板,输出为输入关键字组合所匹配的模板对应的协议类型信息;PC单元是一个查表单元,输入为来自PB单元的协议类型信息,输出为下一级基本处理单元所需要的关键字偏移量、本级封装帧头部中的各个字段的偏移量和字段标识、下一级数据帧的偏移量;偏移量缓存单元是用来存储前面各级解析出的所有字段的偏移量和字段标识,以及本级封装帧头部中的各个字段的偏移量和字段标识,根据本实例每级偏移量缓存单元的容量都固化为2×10×8位,分别对应字段偏移量和字段标识两个部分、10个待提取字段的信息、和每项信息(字段偏移量和字段标识)的8为字长,输出连接IPV4基本处理单元的偏移量缓存1。
PB单元内包含一个匹配查找表,表的输入为四个PA提取拼接而成的32bit数据,表的每行内容都包括:32bit掩码,目的是为了过滤掉输入的32bit中的无关信息;32bit匹配模板,用来匹配掩码之后的字段;根据关键字段特征所对应的当前层协议类型标识和下一层协议类型标识,两个标识的大小均为8bit。匹配查找表的容量在硬件设计时进行固化,表项的内容则可以通过表存储的对外端口从外部写入,实现可配置。PB单元在匹配时先将存储的匹配模板与本级密钥通路送来的32bit密钥进行按位异或,输入的32bit关键字段则先与模板对应的匹配掩码按位相与(AND)把无关位转成0,再将变码后的匹配模板和掩码后的关键字段进行比较,值相等的则为匹配条目。
以太网层配置信息:
PB匹配查找表内容:
Figure BDA0001934720320000091
Figure BDA0001934720320000101
PC当前查找表内容:
Figure BDA0001934720320000102
PC下一级查找表内容:
Figure BDA0001934720320000103
);PC单元内包含两个查找表,当前查找表(LUT_CUR)和下一级查找表(LUT_NXT)。表的输入(地址)分别为PB单元输出的当前层协议类型标识和下一层协议类型标识,各为8bit。当前查找表(LUT_CUR)输出都包括本级封装帧头部中的各个字段的偏移量和字段标识,其大小均为10×8bit,并将其输出给本级的偏移量缓存1及进行存储;下一级数据帧的偏移量,长度为8位,输出给本级基本处理单元数据通路和密钥通路的移位器单元。表项的容量在设计时候进行固化,表的内容则通过表存储器的对外端口从外部写入,实现可配置。下一级查找表(LUT_NXT)输出包括下一级基本处理单元所需要的关键字段偏移量,为4×8位,分别输出给IPV4处理层数据通路的四个PA单元。表的容量在硬件设计时进行固化,表的内容通过表存储器的对外端口从外部写入,实现可配置。
以太网处理层的密钥通路与数据通路相类似,由四个功能单元组成,包括密钥寄存器(Key reg)单元、移位器单元、PA单元、拼接单元。输入的与数据帧等长的1024位随机数(密钥)存储在密钥寄存器(Key Reg)中、四个关键字偏移量值被分别送入四个PA单元中,并对密钥寄存器(Key Reg)中的密钥进行关键字的提取,所提取的字段长度与数据通路中保持一致,均为8bit。拼接单元把来自四个PA单元提取出来的8bit密钥段拼接起来,目的是与数据通路中的PB单元的查询模板异或作为新的查询模板进行匹配。移位器单元接收来自密钥寄存器(Key Reg)的密钥数据,同时接收来自数据通路PC单元查找出的数据帧的偏移量信息进行对应的移位操作,并将其输出给下一级IPV4处理层的密钥寄存器(Key Reg)。
IPV4处理层的数据通路单元组成和各模块功能与以太网层数据通路相同。移位器移位器PA单元的数量也是四个,每个PA单元提取的字段长度也是固定为8位。但它包含两个偏移量缓存单元,偏移量缓存1是用来暂时存储以太网处理层解析出的所有字段的偏移量和字段标识,以便将它们向后传递,其大小、字长和以太网层基本处理单元种的偏移量缓存1相同。偏移量缓存2则用例存储本级头部中的各个字段的偏移量和字段标识。根据本实例IPV4处理层的偏移量缓存2单元的容量固化为2×10×8bit,分别对应IPV4层的字段偏移量和字段标识两个部分、10个待提取字段的信息、和每项信息(字段偏移量和字段标识)的8为字长,输出到最后的Extractor提取模块。
IPV4处理层的密钥通路与数据通路相类似,和以太网的密钥通路构成相同,PA单元有4个,提取字段长度也均为8bit,关键字段偏移量则是前一级基本处理单元的PC单元的输出。密钥寄存器(Key Reg)的密钥数据来自前一级的密钥通路移位器,它的移位器输出移位后的密钥帧到最后的提取器模块。相关程序语言如下:
IPV4层配置信息:
PB匹配查找表内容:
Figure BDA0001934720320000111
PC当前查找表内容:
Figure BDA0001934720320000112
Figure BDA0001934720320000121
PC下一级查找表内容:
Figure BDA0001934720320000122
提取单元的数据通路的输入为IPV4处理层偏移量缓存1单元、偏移量缓存2单元中的待提取字段的位置偏移量值和字段标识、IPV4处理层数据通路移位器中的数据帧,并将提取的字段输出;提取单元的密钥通路的输入为IPV4处理层偏移量缓存1单元、偏移量缓存2单元中的待提取字段的位置偏移量值和字段标识、IPV4处理层密钥通路移位器中的密钥,并将提取的密钥字段输出。
上述各实施例仅用于说明本发明,其中各部件的结构、连接方式和制作工艺等都是可以有所变化的,凡是在本发明技术方案的基础上进行的等同变换和改进,均不应排除在本发明的保护范围之外。

Claims (9)

1.一种可破坏硬件木马的可重构交换机转发引擎解析器,其特征在于:其包括:数据预处理单元、若干级联的基本处理单元以及与最后级基本处理单元相连的提取单元;
各级所述基本处理单元结构相同,均包括数据通路和密钥通路;
所述数据预处理单元用于按照解析器截取的交换机以太网端口输入的包头部生成等长的密钥,并将所述密钥作为密钥帧输出至第一级基本处理单元的密钥通路,将输入的包头部与所述密钥按位异或后将异或的结果作为数据帧输出至所述第一级基本处理单元的数据通路;
所述第一级基本处理单元的密钥通路用于对密钥帧进行密钥关键字提取和移位,提取的密钥关键字值发送至本级基本处理单元的数据通路,移位后的密钥值发送至下级基本处理单元的密钥通路;
所述第一级基本处理单元的数据通路根据本级密钥通路提取的密钥关键字值,对所述数据帧进行关键字段提取和移位,并将提取的字段偏移量发送至本级基本处理单元的密钥通路以及下一级基本处理单元的密钥通路和数据通路,移位后的数据帧发送至下一级基本处理单元的数据通路;
其他各级基本处理单元依次对接收到的密钥帧和数据帧进行字段提取和移位后,输出到下一级基本处理单元;
所述提取单元根据接收到的密钥值和关键字偏移量,从最后一级基本处理单元的密钥通路和数据通路中进行密钥帧和数据帧字段的提取,并转发至后续包处理部分。
2.如权利要求1所述的一种可破坏硬件木马的可重构交换机转发引擎解析器,其特征在于:所述各级基本处理单元中,数据通路包括:数据帧寄存器单元、第一移位器单元、若干第一关键字提取单元、查询匹配单元、PC单元、若干偏移量缓存单元;
所述数据帧寄存器单元的输入为所述数据预处理单元或前一级基本处理单元发送的数据帧,输出连接本级所述第一移位器单元;
所述第一移位器单元将本级的协议帧头部及其载荷向右移动到下一层协议帧的固定起始位置,其输入为本级所述PC单元输出的下一层协议帧头部在当前数据帧中的偏移量、本级数据帧寄存器单元输出的数据帧,输出为移位后的新的数据帧;
各所述第一关键字提取单元的输入为前一级基本处理单元中PC单元输出的关键字段偏移量、本级数据帧寄存器单元的待提取的数据帧,输出为提取出来的固定长度的关键字段;
所述查询匹配单元的输入为本级各所述第一关键字提取单元输出的固定长度的关键字段、本级密钥通路输出的密钥关键字值,输出为与输入的关键字段组合所匹配的模板对应的协议分类和类型信息,如果关键字段和任何特征模板都不匹配,则发送非法标识到所述PC单元;
所述PC单元是查表单元,其输入为本级查询匹配单元的协议分类和类型信息,输出为下一级基本处理单元所需要的关键字段偏移量、本级封装帧头部中的各个字段的偏移量和字段标识以及下一级数据帧的偏移量;当根据本级提取协议下一层协议不需要解析时,应当跳过时,PC单元输出bypass信号给下一级基本处理单元;当所述查询匹配单元发送的为非法标识信息时,所述PC单元输出非法标识给下一级基本处理单元;后续各级所述基本处理单元接收到bypass信号后,把密钥和数据帧、所述第一关键字提取单元的输入原样复制到下一级的对应端口上,不再执行其它操作;后续各级所述基本处理单元接收到非法标识信号时,把密钥和数据帧原样复制到下一级,不再执行其它操作,同时复制非法标识到后级基本处理单元;
所述偏移量缓存单元的输入为前一级基本处理单元的偏移量缓存的所有输出和本级PC单元输出的本级封装帧头部中各个字段的偏移量和字段标识,输出为存储的所有字段偏移量和字段标识数据。
3.如权利要求2所述的一种可破坏硬件木马的可重构交换机转发引擎解析器,其特征在于:所述第一关键字提取单元的数量根据每级基本处理单元对应处理的封装帧头部待提取的所有关键字总长度和每个所述第一关键字提取单元能提取的关键字位宽确定。
4.如权利要求2所述的一种可破坏硬件木马的可重构交换机转发引擎解析器,其特征在于:所述查询匹配单元内包含一个匹配查找表,所述匹配查找表中存储着特征模板与协议信息之间的映射关系,且表项的内容能够通过表存储器的对外端口从外部写入,在进行匹配时,把查询匹配单元内部存储的匹配模板与来自本级密钥通路的密钥按位异或,然后再进行匹配。
5.如权利要求2所述的一种可破坏硬件木马的可重构交换机转发引擎解析器,其特征在于:所述PC单元内包含两个查找表:当前查找表和下一级查找表,所述当前查找表和下一级查找表的输入分别为所述查询匹配单元输出的当前层协议类型分类标识和下一层协议类型分类标识,所述当前查找表的输出包括本级封装帧头部中的各个字段的偏移量和字段标识、下一级封装帧头部在当前数据帧中的偏移量,所述下一级查找表的输出包括下一级基本处理单元所需要的关键字段偏移量,所述当前查找表和下一级查找表的表项内容能够通过表存储器的对外端口从外部写入。
6.如权利要求2所述的一种可破坏硬件木马的可重构交换机转发引擎解析器,其特征在于:各级所述基本处理单元中,所述密钥通路包括密钥寄存器单元、第二移位器单元、第二关键字提取单元、拼接单元;所述密钥寄存器单元的输入是上一级或数据预处理单元的密钥帧,输出则连接着所述第二移位器单元;所述第二移位器单元将每一级的密钥及其之后的密钥比特向右移动到对应级的固定起始位置,其输入为密钥寄存器单元的密钥、本级基本处理单元数据通路输出的下一级封装帧头部在当前数据帧中的偏移量,输出为移位后的新的密钥帧;所述第二关键字提取单元的数量与本级数据通路中所述第一关键字提取单元的个数保持一致,各所述第二关键字提取单元的输入为前一级基本处理单元数据通路中PC单元输出的关键字段偏移量、密钥寄存器单元的待提取的密钥值,输出为提取出来的固定长度的密钥值;所述拼接单元用于将所述第二关键字提取单元输出的固定长度的若干个密钥值拼接、提取成查询匹配模板对应位置的密钥,它的输入是若干个所述第二关键字提取单元提取出来的密钥字段,输出为产生的密钥值。
7.如权利要求1所述的一种可破坏硬件木马的可重构交换机转发引擎解析器,其特征在于:所述提取单元包括提取单元数据通路和提取单元密钥通路,所述提取单元数据通路的输入为最后一级所述基本处理单元的数据通路输出的各级基本处理单元中各字段的偏移量和字段标识、移位后的数据帧,输出为提取出的字段和对应的字段标识;密钥通路的输入为最后一级基本处理单元的数据通路的输出的各级协议头部的各字段的偏移量和字段标识、密钥通路输出的移位后的密钥帧,输出为提取出来的各数据帧字段对应的密钥片段;若提取单元收到数据包有非法标识,则不再执行提取操作,而是将非法标识和原始输入的数据帧描述符上送给上层系统处理。
8.如权利要求1所述的一种可破坏硬件木马的可重构交换机转发引擎解析器,其特征在于:所述提取单元的数据通路和密钥通路结构相同,均包括N组提取模块、N个映射表和N组寄存器,且每组提取模块、映射表和寄存器分别对应一个网络协议层,数据通路的各组提取模块用于根据接收到的字段偏移量和字段标识,从最后一级基本处理单元的数据通路出的数据帧中提取相应字段,并输出到对应的数据通路寄存器,密钥通路的各组提取模块用于根据接收到的字段偏移量和字段标识,从最后一级基本处理单元的密钥通路的密钥帧中提取相应字段,并输出到对应的密钥通路寄存器,将提取的数据帧和密钥帧的相应字段进行异或得到所需数据;各映射表用于存储相应网络协议层内各个字段标识所对应的寄存器的物理地址。
9.如权利要求1所述的一种可破坏硬件木马的可重构交换机转发引擎解析器,其特征在于:所述解析器中,所述基本处理单元的级联数等于所要解析的最大封装层次数量,每一层次的封装协议对应一级所述基本处理单元。
CN201910003982.2A 2019-01-03 2019-01-03 一种可破坏硬件木马的可重构交换机转发引擎解析器 Active CN109474641B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201910003982.2A CN109474641B (zh) 2019-01-03 2019-01-03 一种可破坏硬件木马的可重构交换机转发引擎解析器
PCT/CN2019/094332 WO2020140412A1 (zh) 2019-01-03 2019-07-02 一种可破坏硬件木马的可重构交换机转发引擎解析器
US17/261,849 US11736515B2 (en) 2019-01-03 2019-07-02 Reconfigurable switch forwarding engine parser capable of disabling hardware trojans

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910003982.2A CN109474641B (zh) 2019-01-03 2019-01-03 一种可破坏硬件木马的可重构交换机转发引擎解析器

Publications (2)

Publication Number Publication Date
CN109474641A CN109474641A (zh) 2019-03-15
CN109474641B true CN109474641B (zh) 2020-05-12

Family

ID=65678556

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910003982.2A Active CN109474641B (zh) 2019-01-03 2019-01-03 一种可破坏硬件木马的可重构交换机转发引擎解析器

Country Status (3)

Country Link
US (1) US11736515B2 (zh)
CN (1) CN109474641B (zh)
WO (1) WO2020140412A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109474641B (zh) * 2019-01-03 2020-05-12 清华大学 一种可破坏硬件木马的可重构交换机转发引擎解析器
US11831743B1 (en) * 2019-01-08 2023-11-28 Xilinx, Inc. Streaming architecture for packet parsing
CN112671713B (zh) * 2020-11-30 2023-01-20 山东电力工程咨询院有限公司 一种sdn网络数据转发方法、sdn交换机、控制器及系统
CN114070761B (zh) * 2021-11-11 2023-09-26 北京轨道交通路网管理有限公司 协议报文检测方法、其装置及电子设备
CN114422624A (zh) * 2022-01-25 2022-04-29 电信科学技术第五研究所有限公司 数据接收方法

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2002334571A1 (en) * 2002-09-06 2004-03-29 Infineon Technologies Ag A parser for parsing data packets
US7551575B1 (en) 2002-11-05 2009-06-23 Marvell Israel (M.I.S.L.) Ltd. Context-switching multi channel programmable stream parser
IL220238A (en) * 2007-03-12 2014-03-31 Marvell Israel Misl Ltd A method and system for determining the location of fields in information units
US8854996B2 (en) * 2010-12-16 2014-10-07 International Business Machines Corporation Accelerating data packet parsing
US9848068B2 (en) * 2013-04-16 2017-12-19 Telefonaktiebolaget L M Ericsson (Publ) Method for providing a parser to extract information from fields of a data packet header
US9973599B2 (en) * 2013-12-04 2018-05-15 Mediatek Inc. Parser for parsing header in packet and related packet processing apparatus
CN103927270B (zh) * 2014-02-24 2017-02-08 东南大学 一种面向多个粗粒度动态可重构阵列的共享数据缓存装置及控制方法
CN107529352B (zh) * 2015-03-13 2020-11-20 马维尔亚洲私人有限公司 用于软件定义的数据中心网络的协议独立的可编程交换机(pips)
CN104967575B (zh) 2015-06-03 2018-10-02 清华大学 虚拟软件定义网络交换机
US9826071B2 (en) * 2015-08-26 2017-11-21 Barefoot Networks, Inc. Configuring a switch for extracting packet header fields
US10303878B2 (en) * 2016-01-22 2019-05-28 Yu-Liang Wu Methods and apparatus for automatic detection and elimination of functional hardware trojans in IC designs
US20180089426A1 (en) * 2016-09-29 2018-03-29 Government Of The United States As Represented By The Secretary Of The Air Force System, method, and apparatus for resisting hardware trojan induced leakage in combinational logics
US10121011B2 (en) * 2016-11-16 2018-11-06 The United States Of America As Represented By The Secretary Of The Air Force Apparatus, method and article of manufacture for partially resisting hardware trojan induced data leakage in sequential logics
CN107070906A (zh) * 2017-03-31 2017-08-18 中国人民解放军信息工程大学 一种支持网络演进的报文解析装置及方法
US11270002B2 (en) * 2018-05-14 2022-03-08 University Of Florida Research Foundation, Inc. Hardware trojan detection through information flow security verification
CN109474641B (zh) 2019-01-03 2020-05-12 清华大学 一种可破坏硬件木马的可重构交换机转发引擎解析器

Also Published As

Publication number Publication date
US20210266332A1 (en) 2021-08-26
CN109474641A (zh) 2019-03-15
WO2020140412A1 (zh) 2020-07-09
US11736515B2 (en) 2023-08-22

Similar Documents

Publication Publication Date Title
CN109474641B (zh) 一种可破坏硬件木马的可重构交换机转发引擎解析器
US11677664B2 (en) Apparatus and method of generating lookups and making decisions for packet modifying and forwarding in a software-defined network engine
US9398033B2 (en) Regular expression processing automaton
US9762544B2 (en) Reverse NFA generation and processing
US9563399B2 (en) Generating a non-deterministic finite automata (NFA) graph for regular expression patterns with advanced features
US7949683B2 (en) Method and apparatus for traversing a compressed deterministic finite automata (DFA) graph
US8571034B2 (en) Methods and apparatus related to packet classification associated with a multi-stage switch
US9652505B2 (en) Content search pattern matching using deterministic finite automata (DFA) graphs
EP2215565B1 (en) Deterministic finite automata (dfa) graph compression
US9495479B2 (en) Traversal with arc configuration information
US7835357B2 (en) Methods and apparatus for packet classification based on policy vectors
US8908693B2 (en) Flow key lookup involving multiple simultaneous cam operations to identify hash values in a hash bucket
US20110016154A1 (en) Profile-based and dictionary based graph caching
US8599859B2 (en) Iterative parsing and classification
US20070294472A1 (en) Integrated circuit with associated memory function
Fide et al. A survey of string matching approaches in hardware
CN110933001B (zh) 一种可扩展的可重构交换机包解析器基本处理单元结构

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant