CN115967511A - 加解密方法、装置及计算机可读存储介质 - Google Patents
加解密方法、装置及计算机可读存储介质 Download PDFInfo
- Publication number
- CN115967511A CN115967511A CN202111187550.5A CN202111187550A CN115967511A CN 115967511 A CN115967511 A CN 115967511A CN 202111187550 A CN202111187550 A CN 202111187550A CN 115967511 A CN115967511 A CN 115967511A
- Authority
- CN
- China
- Prior art keywords
- data
- encryption
- data packet
- decryption
- program
- 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.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种加解密方法、装置及计算机可读存储介质。加解密方法应用于内核,包括:通过配置在内核中的eBPF程序拦截接收到的数据包,以数据包中的目的以太网地址作为索引,对全局配置数据进行查找,得到用于加密或者解密的加解密参数,根据加解密参数对数据包进行加密处理或者解密处理,得到目标数据包,根据本申请实施例的方案,能够在内核接收或发送数据时,利用eBPF程序直接拦截内核对于数据包的处理入口和出口,使eBPF程序直接访问到最原始的数据包,并进行加解密,与MACSec等传统的以太网加解密方法相比,本方法不会显著增加数据帧传输开销,无须为每一对通信对象单独配置加密信道,且可以与任意类型的以太网帧数据配合使用,具备良好的兼容性。
Description
技术领域
本申请涉及但不限于数据传输加密领域,特别是涉及一种加解密方法、装置及计算机可读存储介质。
背景技术
由于网络安全形势的日益严峻,业界对网络数据传输的安全性提出了越来越高的要求,数据在网络传输的过程中必须要保证其安全性,避免恶意攻击者篡改、破坏或窃取数据。为了保证数据在传输过程中的安全性,在数据的传输过程中可以利用相关的加解密协议对数据进行加解密处理。目前,可以通过MACSec为以太网数据提供加解密服务,但是由于MACSec具有自己的帧类型,无法与其他类型的以太网帧共存,兼容性差。此外,其会增加帧协议头尺寸,降低了数据传输效;最后,MACSec需要为每一对通信对象配置加密隧道,配置繁琐且对上层应用不透明。
发明内容
以下是对本文详细描述的主题的概述。本概述并非是为了限制权利要求的保护范围。
本申请实施例提供了一种加解密方法、装置及计算机可读存储介质,能够对不同帧类型的数据进行加解密,具备良好的兼容性。
第一方面,本申请实施例提供了一种加解密方法,应用于内核,包括:
通过配置在所述内核中的eBPF程序拦截接收到的数据包;
以所述数据包中的目的以太网地址作为索引对全局配置数据进行查找,得到加解密参数;
根据加解密参数对所述数据包进行加密或者解密处理,得到目标数据包。
第二方面,本申请实施例还提供了一种加解密方法,应用于代理端,包括:
获取来自总控制端的更新请求,所述更新请求包括eBPF程序;
根据所述更新请求将所述eBPF程序向内核进行加载或者更新处理,以通过所述eBPF程序拦截所述内核所接收到的数据包,并对所述数据包进行加密或者解密处理得到目标数据包。
第三方面,本申请实施例还提供了一种加解密方法,应用于总控制端,包括:
向代理端发送更新请求,所述更新请求包括eBPF程序,以使所述代理端根据所述更新请求将所述eBPF程序向内核进行加载或者更新处理,以通过所述eBPF程序拦截所述内核所接收到的数据包,并对所述数据包进行加密或者解密处理得到目标数据包。
第四方面,本申请实施例还提供了一种加解密装置,其特征在于,包括存储器、处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现如第一方面所述的加解密方法,或者实现如第二方面所述的加解密方法,或者实现如第三方面所述的加解密方法。
第五方面,本申请实施例还提供了一种计算机可读存储介质,所述程序被处理器执行如第一方面所述的加解密方法,或者实现如第二方面所述的加解密方法,或者实现如第三方面所述的加解密方法。
本申请实施例包括:通过配置在内核中的eBPF程序拦截接收到的数据包,以数据包中的目的以太网地址作为索引,对全局配置数据进行查找,得到用于加密或者解密的加解密参数,根据加解密参数对数据包进行加密处理或者解密处理,得到目标数据包,即是说,根据本申请实施例的方案,能够在内核接收或发送数据时,利用eBPF程序直接拦截内核对于数据包的处理入口和出口,使eBPF程序直接访问到最原始的数据包,并进行加解密处理,由于eBPF程序没有被标准化,因此可以与任意以太网帧类型数据配合使用,并对不同帧类型的数据进行加解密,具备良好的兼容性。
附图说明
附图用来提供对本申请技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本申请的技术方案,并不构成对本申请技术方案的限制。
图1是本申请一些实施例提供的OSI模型、网络协议栈与加密协议的关系图;
图2是本申请一些实施例提供的加解密装置的模块结构示意图;
图3是本申请一些实施例提供的加解密方法的第一流程图;
图4是图3中步骤S302的具体方法的流程图;
图5是图4中步骤S402的具体方法的流程图;
图6是本申请一些实施例提供的eBPF程序工作的流程图;
图7是本申请一些实施例提供的eBPF程序内部模块的示意图;
图8是本申请一些实施例提供的加解密方法的第二流程图;
图9是本申请一些实施例提供的加解密方法的第三流程图;
图10是本申请一些实施例提供的代理端工作的流程图;
图11是本申请一些实施例提供的代理端内部模块的示意图;
图12是本申请一些实施例提供的加解密方法的第四流程图;
图13是本申请一些实施例提供的总控制端工作的流程图;
图14是本申请一些实施例提供的总控制端内部模块的示意图;
图15是本申请一些实施例提供的加解密装置的软件部署形态的示意图;
图16是本申请一些实施例提供的加解密装置的硬件部署形态的示意图;
图17是本申请一些实施例提供的加解密装置的硬件结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。
应了解,在本申请实施例的描述中,多个(或多项)的含义是两个以上,大于、小于、超过等理解为不包括本数,以上、以下、以内等理解为包括本数。如果有描述到“第一”、“第二”等只是用于区分技术特征为目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量或者隐含指明所指示的技术特征的先后关系。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
首先,对本申请中涉及的若干名词进行解释:
扩展的伯克利包过滤器(Extended Berkerly Packet Filter,eBPF):伯克利包过滤器(Berkerly Packet Filter,BPF),是类Unix系统上数据链路层的一种原始接口,提供原始链路层封包的收发。在BPF的基础上生成了新的eBPF程序,eBPF是一套通用执行引擎,提供了可基于系统或程序事件高效安全执行特定代码的通用能力,通用能力的使用者不再局限于内核开发者;eBPF可由执行字节码指令、存储对象和Helper帮助函数组成,字节码指令在内核执行前必须通过BPF验证器的验证,同时在启用BPF即时编译器(Just-In-TimeCompiler,JIT)模式的内核中,会直接将字节码指令转成内核可执行的本地指令运行
开放式系统互联(Open System Interconnect,OSI):OSI一般都叫OSI参考模型,是ISO组织在1985年研究的网络互连模型。该体系结构标准定义了网络互连的七层框架(物理层、数据链路层、网络层、传输层、会话层、表示层和应用层),即OSI开放系统互连参考模型。
物理层:物理层是参考模型中的最底层,主要定义了系统的电气、机械、过程和功能标准。如:电压、物理数据速率、最大传输距离、物理联接器和其他的类似特性。物理层的主要功能是利用传输介质为数据链路层提供物理联接,负责数据流的物理传输工作。物理层传输的基本单位是比特流,即0和1,也就是最基本的电信号或光信号,是最基本的物理传输特征。
数据链路层:数据链路层是在通信实体间建立数据链路联接,传输的基本单位为“帧”,并为网络层提供差错控制和流量控制服务。数据链路层由MAC(介质访问控制子层)和LLC(逻辑链路控制子层)组成。介质访问控制子层的主要任务是规定如何在物理线路上传输帧。逻辑链路控制子层对在同一条网络链路上的设备之间的通信进行管理。数据链路控制子层主要负责逻辑上识别不同协议类型,并对其进行封装。也就是说数据链路控制子层会接受网络协议数据、分组的数据报并且添加更多的控制信息,从而把这个分组传送到它的目标设备。
网络层:网络层主要为数据在节点之间传输创建逻辑链路,通过路由选择算法为分组选择最佳路径,从而实现拥塞控制、网络互联等功能。网络层是以路由器为最高节点俯瞰网络的关键层,它负责把分组从源网络传输到目标网络的路由选择工作。互联网是由多个网络组成在一起的一个集合,正是借助了网络层的路由路径选择功能,才能使得多个网络之间的联接得以畅通,信息得以共享。网络层提供的服务有面向联接和面向无联接的服务两种。面向联接的服务是可靠的联接服务,是数据在交换之前必须先建立联接,然后传输数据,结束后终止之前建立联接的服务。网络层以虚电路服务的方式实现面向联接的服务。面向无联接的服务是一种不可靠的服务,不能防止报文的丢失、重发或失序。面向无联接的服务优点在于其服务方式灵活方便,并且非常迅速。网络层以数据报服务的方式实现面向无联接的服务。
传输层:传输层是网络体系结构中高低层之间衔接的一个接口层。传输层不仅仅是一个单独的结构层,而是整个分析体系协议的核心。传输层主要为用户提供End—to—End(端到端)服务,处理数据报错误、数据包次序等传输问题。传输层是计算机通信体系结构中关键一层,它向高层屏蔽了下层数据的通信细节,使用户完全不用考虑物理层、数据链路层和网络层工作的详细情况。传输层使用网络层提供的网络联接服务,依据系统需求可以选择数据传输时使用面向联接的服务或是面向无联接的服务。
会话层:会话层的主要功能是负责维护两个节点之间的传输联接,确保点到点传输不中断,以及管理数据交换等功能。会话层在应用进程中建立、管理和终止会话。会话层还可以通过对话控制来决定使用何种通信方式,全双工通信或半双工通信。会话层通过自身协议对请求与应答进行协调。
表示层:表示层为在应用过程之间传送的信息提供表示方法的服务。表示层以下各层主要完成的是从源端到目的端可靠地的数据传送,而表示层更关心的是所传送数据的语法和语义。表示层的主要功能是处理在两个通信系统中交换信息的表示方式,主要包括数据格式变化、数据加密与解密、数据压缩与解压等。在网络带宽一定的前提下数据压缩的越小其传输速率就越快,所以表示层的数据压缩与解压被视为掌握网络传输速率的关键因素。表示层提供的数据加密服务是重要的网络安全要素,其确保了数据的安全传输,也是各种安全服务最为重视的关键。表示层为应用层所提供的服务包括:语法转换、语法选择和联接管理。
应用层:应用层是OSI模型中的最高层,是直接面向用户的一层,用户的通信内容要由应用进程解决,这就要求应用层采用不同的应用协议来解决不同类型的应用要求,并且保证这些不同类型的应用所采用的通信协议是一致的。应用层中包含了若干独立的用户通用服务协议模块,为网络用户之间的通信提供专用的程序服务。需要注意的是应用层并不是应用程序,而是为应用程序提供服务。
传输控制协议(Transmission Control Protocol,TCP):是一种面向连接的、可靠的、基于字节流的传输层通信协议。
网络之间互连的协议(Internet Protocol,IP):IP协议是TCP/IP体系中的网络层协议。设计IP的目的是提高网络的可扩展性:一是解决互联网问题,实现大规模、异构网络的互联互通;二是分割顶层网络应用和底层网络技术之间的耦合关系,以利于两者的独立发展。根据端到端的设计原则,IP只为主机提供一种无连接、不可靠的、尽力而为的数据包传输服务。
用户数据报协议(User Datagram Protocol,UDP):UDP是OSI参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务,IETF RFC 768是UDP的正式规范。
媒体访问控制(Media Access Control,MAC)协议:MAC协议位于OSI七层协议中数据链路层的下半部分,主要负责控制与连接物理层的物理介质。
MACsec(Media Access Control Security)是基于802.1AE和802.1X协议的局域网上的安全通信方法。它通过身份认证、数据加密、完整性校验、重播保护等功能保证以太网数据帧的安全性,防止设备处理有安全威胁的报文。
媒体访问控制(Media Access Control,MAC)协议:MAC协议位于OSI七层协议中数据链路层的下半部分,主要负责控制与连接物理层的物理介质。
互联网安全协议(Internet Protocol Security,IPsec),是一个协议包,通过对IP协议的分组进行加密和认证来保护IP协议的网络传输协议族。
安全传输层协议(Transport Layer Security,TLS):用于在两个通信应用程序之间提供保密性和数据完整性,该协议由两层组成:TLS记录协议和TLS握手协议。
公钥:公钥是与私钥算法一起使用的密钥对的非秘密一半。公钥通常用于加密会话密钥、验证数字签名,或加密可以用相应的私钥解密的数据。公钥和私钥是通过一种算法得到的一个密钥对(即一个公钥和一个私钥),其中的一个向外界公开,称为公钥;另个自己保留,称为私钥。通过这种算法得到的密钥对能保证在世界范围内是唯一的。使用这个密钥对的时候,如果用其中一个密钥加密一段数据,必须用另一个密钥解密。如用公钥加密数据就必须用私钥解密,如果用私钥加密也必须用公钥解密,否则解密将不会成功。
私钥:私钥加密算法使用单个私钥来加密和解密数据。由于具有密钥的任意一方都可以使用该密钥解密数据,因此必须保护密钥不被未经授权的代理得到。私钥加密又称为对称加密,因为同一密钥既用于加密又用于解密。私钥加密算法非常快(与公钥算法相比),特别适用于对较大的数据流执行加密转换。通常私钥算法(称为块密码)用于一次加密一个数据块。
参照图1,根据OSI概念模型,整个网络传输协议栈可分为7层,分别为:应用层、表示层、会话层、传输层、网络层、数据链路层和物理层,其中,传输层所对应的网络协议为TCP/IP,网络层所对应的网络协议为IP,数据链路层所对应的IP协议为MAC,物理层所对应的IP协议主要包括RS-232、RS-449、X.21、V.35、ISDN、以及FDDI、IEEE802.3、IEEE802.4和IEEE802.5等的物理层协议,不同的网络协议对应不同的加密协议,例如TCP/IP协议对应的加密协议为TLS协议,IP协议对应的加密协议为IPSec,MAC协议所对应的加密协议为MACSec等等。
由于网络安全形势的日益严峻,业界对网络数据传输的安全性提出了越来越高的要求,数据在网络传输的过程中必须要保证其安全性,避免恶意攻击者篡改、破坏或窃取数据。为了保证数据在传输过程中的安全性,在数据的传输过程中可以利用相关的加解密协议对数据进行加解密处理。
目前,可以通过MACSec为以太网数据提供加解密服务,其可以为以太网的数据链路层提供加密与完整性保护。由于Linux内核中已集成了MACSec的实现和相关工具集,因此可直接配置使用。但是在实际的应用场景中,MACSec存在一些缺点,限制了其大规模的应用,例如由于MACSec中所标准化的帧类型与其他帧类型无法共存,因此利用MACSec无法对不同帧类型的数据进行加解密,兼容性差。其次,MACSec大幅增加了以太网帧的协议传输开销,这显著降低了有效数据的最大传输效率。此外,MACSec与普通的以太网广播式通信不同,具体为:由于在同一网络内的任意两个实体间都需要创建加密隧道才能相互通信,例如A、B、C、D四个实体通过以太网连接在一起,如果配置MACSec,那么需要手工配置6个加密隧道(AB、AC、AD、BC、BD、CD)才能让它们任意两两之间通信,这导致配置繁琐。最后,配置MACSec需要在选定的网络设备上创建虚拟设备,上层应用必须切换到该虚拟设备来进行数据通信,导致数据通信对于上层应用不透明。
基于此,本申请实施例提供了一种加解密方法、装置及计算机可读存储介质,可有效解决MACSec协议的上述缺点。
下面结合附图,对本发明实施例作进一步阐述。
参照图2,本申请实施例提供了一种加解密装置的模块结构示意图,该加解密装置包括总控制端201、代理端202、内核203(Kernel),其中内核203包括eBPF程序204,总控制端201可以与代理端202通信连接,代理端202可以与eBPF程序204通信连接。
在一些实施例中,总控制端201负责管理所有与之连接的代理端202,总控制端201可以从代理端202读取对应的数据信息,例如代理端202所在业务节点的以太网地址以及其他节点信息、加解密过程所涉及的目标节点的以太网地址,以及代理端202的运行指标等。此外,总控制端201能够根据代理端202所上传的数据,向代理端202发送对应的eBPF程序204代码。总控制端201还能对外提供用户交互接口,使用户能够通过接口查看或配置系统的数据。需要说明的是,总控制端201一般部署在业务系统,即用户面和内核203之外的节点上,与代理端202和eBPF程序204分离。
在一些实施例中,代理端202负责获取其所在业务节点的以太网地址以及其他节点信息,并将获取到的业务节点的数据和总控制端201汇报。此外,代理端202能够从总控制端201接收对应的eBPF程序204代码,并向内核203加载或更新从总控制端201接收到的eBPF程序204代码。代理端202还能获取eBPF程序204所输出的运行指标数据,并且向总控制端201汇报。
在一些实施例中,eBPF程序204负责拦截内核203对于数据包的处理入口和出口,eBPF程序204能够直接访问到最原始的数据包,并进行加解密处理。
基于图2所示的加解密装置,参照图3,本申请实施例提供了一种加解密方法,应用于内核,该加解密方法包括但不限于以下步骤301至步骤303。
步骤S301,通过配置在内核中的eBPF程序拦截接收到的数据包;
步骤S302,以数据包中的目的以太网地址作为索引对全局配置数据进行查找,得到加解密参数;
步骤S303,根据加解密参数对数据包进行加密或者解密处理,得到目标数据包。
在步骤S301中,通过配置在内核中的eBPF程序拦截接收到的数据包,即拦截进出内核的网络数据包,也就是说,eBPF程序能够拦截内核向外发送的网络数据包,并且能够拦截内核接收到的网络数据包,其包含数据发送方和数据接收方的地址信息,例如以太网地址。在实际应用中,本申请实施例提到的数据发送方和数据接收方都可使用Linux系统,且在Linux系统的内核开启有eBPF的相关功能,数据通信双方在底层均使用以太网协议进行通信。
在步骤S302中,以数据包中的目的以太网地址作为索引对全局配置数据进行查找,得到加解密参数,其中,在eBPF程序成功拦截内核从数据发送方接收到的数据包的情况下,目的以太网地址指数据发送方对应的以太网地址。需要说明的是,本申请实施例在eBPF程序中内置了对应的全局配置数据,全局配置数据包括多个目的以太网地址,以及目的以太网地址所对应的加解密参数,eBPF程序在获取到数据包对应的目的以太网地址后,就能够查找到对应的加解密参数,从而对数据包进行加密或解密处理。
在步骤S303中,根据加解密参数对数据包进行加密或者解密处理,得到目标数据包,具体为:如果eBPF程序获得的是内核要向远端数据接收方发送的数据,eBPF程序根据既定的加密算法和之前获取的加密参数,对待发送的数据包进行加密。如果eBPF程序获得的是内核从远端数据发送方接收到的数据,eBPF程序根据既定的解密算法和之前获取的解密参数,对接收到的数据包进行解密。需要说明的是,本申请实施例提到的加解密参数可以同时包括加密参数或者解密参数,也可以为加密参数或解密参数,在对数据包进行解密的情况下,加解密参数指用于进行解密的解密参数,在对数据包进行加密的情况下,加解密参数指用于进行加密的加密参数。
在一些实施例中,如图4所示,步骤S302包括但不限于以下步骤S401至步骤S402。
S401,对数据包进行解析处理,得到协议头内容;
S402,在根据协议头内容确定数据包的数据为以太网帧的情况下,获取数据包的目的以太网地址,并以目的以太网地址作为索引对全局配置数据进行查找,得到加解密参数。
在步骤S401中,对数据包进行解析处理,以得到协议头内容,例如以太网协议头,对数据包进行解析还能得到源以太网地址和目的以太网地址,其中源以太网地址指内核所在节点的以太网地址。
在步骤S402中,在根据协议头内容确定数据包的数据为以太网帧的情况下,获取数据包的目的以太网地址,并以目的以太网地址作为索引对全局配置数据进行查找,得到加解密参数。其中,在eBPF程序成功拦截内核从数据发送方接收到的数据包的情况下,需要获取目的以太网地址对应的解密相关参数,用于对接收到的数据包进行解密处理。在eBPF程序成功拦截内核准备发送给数据接收方的数据包的情况下,需要获取目的以太网地址对应的加密相关参数,用于准备发送的数据包进行加密处理。
此外,在根据协议头内容确定数据包的数据不为以太帧的情况下,eBPF程序不对数据包进行加密处理或解密处理,此时需要将控制权交还给内核。
在一些实施例中,如图5所示,步骤S402具体包括但不限于以下步骤S501至步骤S502。
S501,在根据协议头内容确定数据包的数据为以太网帧的情况下,获取数据包的目的以太网地址和源以太网地址;
S502,在目的以太网地址和源以太网地址均不为预设的豁免地址列表中的地址的情况下,以目的以太网地址作为索引对全局配置数据进行查找,得到加解密参数。
在步骤S501中,在根据协议头内容确定数据包的数据为以太网帧的情况下,获取对数据包进行解析而得到的目的以太网地址和源以太网地址;
在步骤S502中,在目的以太网地址和源以太网地址均不为预设的豁免地址列表中的地址的情况下,以目的以太网地址作为索引对全局配置数据进行查找,得到加解密参数。其中,预设的豁免地址指的是不需要进行解密或者解密的地址,如果目的以太网地址和源以太网地址均是豁免地址,则可以进行进一步的操作,即从全局配置数据中找到与目标以太网地址对应的加解密参数。
需要说明的是,在eBPF程序完成从内核拦截下的数据包的加密或解密操作后,需要保存目标数据包,且将加密或解密的控制权返回给内核,以使内核完成对目标数据包的接收或发送操作。
在一些实施例中,如图6所示,对本申请实施例的eBPF程序工作的过程进行举例,包括但不限于步骤S601至步骤S610,需要理解的是,下面描述仅是示例性说明,而不是对本申请的具体限制。
步骤S601,当检测到eBPF程序被加载到内核后,由内核触发eBPF程序主动执行数据包的拦截操作,具体为:每当内核有数据包需要发送,或者内核接收到数据时,内核就会调用已经加载的eBPF程序,同时将数据包的内存缓冲区地址传递给eBPF程序。
步骤S602,eBPF程序解析步骤S601获取到的数据包的协议头内容。
步骤S603,eBPF程序根据协议头内容判断是否为以太网帧,如果数据为以太网帧,则执行步骤S604,如果数据不为以太帧,则执行步骤S610以结束处理。
步骤S604,eBPF程序在确定数据为以太网帧后,需要进一步获取数据的源以太网地址和目的以太网地址。
步骤S605,eBPF程序将源以太网地址与目的以太网地址与豁免地址列表进行对照检查,如果源以太网地址和目的以太网地址都不在豁免地址列表中,则说明需要对该数据进行加密或者解密操作,进一步执行步骤S606,如果源以太网地址或者目的以太网地址在豁免地址列表中,则说明不需要对该数据进行加密或者解密操作,则执行步骤S610以结束处理。
步骤S606,eBPF程序以目的以太网地址为索引,在预设的全局配置数据区中查找对应的加解密参数,需要说明的是,对于内核需要发送的数据包,后续使用的是目的以太网地址所对应的加密相关参数,对于内核接收到的数据包,后续使用的是目的以太网地址所对应的解密相关参数。
步骤S607,判断eBPF程序从内核拦截到的数据是待发送状态还是待接收状态。如果数据是待接收状态,则需要对数据进行解密处理,则执行步骤S608;如果数据是待发送状态,则需要对数据进行加密处理,则执行步骤S609。
步骤S608,eBPF程序对以太网载荷数据进行解密并回填,具体为:eBPF程序根据预设的解密算法和步骤S606获取的解密参数,对数据包的载荷部分进行解密,并回填到数据缓冲区中。
步骤S609,eBPF程序对以太网载荷数据进行加密并回填,具体为:eBPF程序根据预设的加密算法和步骤S606获取的加密参数,对数据包的载荷部分进行加密,并回填到数据缓冲区中。
步骤S610,eBPF程序将加密或解密的控制权返回给内核,以使内核完成对目标数据包的接收和发送操作。
在一些实施例中,如图7所示,对本申请实施例的eBPF程序的内部模块进行举例,需要理解的是,下面描述仅是示例性说明,而不是对本申请的具体限制。
eBPF程序的内部模块包括但不限于配置数据模块701、网络数据解析模块702和数据加解密模块703,其中配置数据模块701是一个eBPF程序代码中的全局配置数据区,在总控制端生成特定节点的eBPF程序时,会将该节点对应的配置数据嵌入配置数据模块701后再通过编译器生成,以使eBPF程序的其他部分可以直接访问全局配置数据区中的配置数据。在实际应用中,配置数据模块701内部存放了相关的加解密参数,例如所有已知的以太网地址的公钥和自己所在节点以太网地址的私钥,可以调用代码中的函数直接读取配置数据模块701的数据。
网络数据解析模块702主要负责解析从内核接收到的网络数据,其能够识别网络数据的以太网协议头,并且能够解析出网络数据的源以太网地址和目的以太网地址,并且能够根据源以太网地址、目的以太网地址和配置数据来决定eBPF程序下一步的处理动作,例如加密、解密或将控制权返回给内核等操作。在实际应用中,网络数据解析模块702本质是一个或若干个处理函数,利用处理函数自动对内核传递过来的网络数据进行解析,判断网络数据的数据协议类型、获取源以太网地址、目的以太网地址,并且与配置数据进行对照,以决定eBPF程序下一步的处理动作。
在一些实施例中,以太网数据帧的结构如表1所示:
目的MAC地址 | 源MAC地址 | 帧类型/尺寸 | 载荷 |
6字节 | 6字节 | 2字节 | 46至1500字节 |
表1
具体地,网络数据解析模块702存储有网络数据解析参数,网络数据解析函数可以根据网络数据的协议头中的尺寸字段,对照网络数据的总大小来判断网络数据是否为合法的以太网帧数据,并且还能以太网帧的前12个字节可以获得源与目的以太网地址,并从配置数据区中获取地址对应的加密参数,即公钥或私钥。
当网络数据解析模块702确定当前的数据需要进行加密或解密操作时,数据加解密模块703会对以太网数据的载荷部分进行加解密操作,该模块负责加解密算法的具体实现,其中,加解密过程需要的加密参数或加密参数通过源以太网地址和目的以太网地址作为索引从全局配置数据区中查询获得。在实际应用中,对于接收到的数据,如果目的以太网地址能够在配置数据区中找到对应记录,则取该地址对应的私钥对数据进行解密,如果找不到对应记录,说明该数据无需解密处理。对于发送的数据,如果目的以太网地址能够在配置数据区中找到对应记录,则取该地址对应的公钥对数据进行加密;如果找不到对应记录,说明该数据无需加密处理。需要说明的是,加解密算法可以选用任一种公开的非对称加密算法,如果有度量的需求,网络数据解析模块702和数据加解密模块703还可以输出一些统计指标,供代理端采集并汇报给总控制端。
需要说明的是,本申请实施例的eBPF程序内部模块用于执行上述实施例中的加解密方法,其具体处理过程与上述实施例中的加解密方法相同,此处不再一一赘述。
在本申请实施例中,通过利用eBPF程序,就可以将网络数据处理的具体实现和配置逻辑集成到一个软硬件单元中,从而在系统环境和上层应用都不了解任何细节的情况下完成网络数据的处理。此外,eBPF程序和内核模块一样,都是可以在运行时动态加载或卸载的,因此可以实现运行时的功能激活/去激活、或动态修改数据处理逻辑,具备良好的兼容性。
本申请实施例还提供了一种加解密方法,应用于代理端,参照图8,该加解密方法包括但不限于以下步骤801至步骤802。
S801,获取来自总控制端的更新请求,更新请求包括eBPF程序;
S802,根据更新请求将eBPF程序向内核进行加载或者更新处理。
在步骤S801和步骤S802中,代理端与总控制端建立连接成功后,需要等待总控制端的指令,并根据总控制端的指令执行相应的操作,例如当代理端获取到来自总控制端的更新请求,更新请求包括eBPF程序,则需要向系统内核中加载或者更新eBPF程序,以通过eBPF程序拦截内核所接收到的数据包,并对数据包进行加密或者解密处理得到目标数据包。
在一些实施例中,如图9所示,本申请实施例提到的加解密方法还包括但不限于以下步骤S901至步骤S903。
S901,接收来自总控制端的查询请求;
S902,根据查询请求读取第一运行指标数据,并获取eBPF程序所输出的第二运行指标数据,第一运行指标数据为代理端的运行指标数据;
S903,将第一运行指标数据和第二运行指标数据发送至总控制端。
在步骤S901至步骤S903中,代理端接收到来自总控制端的查询请求,则根据查询请求获取代理端自身的运行指标数据,即第一运行指标数据,并获取内核中eBPF程序所输出的第二运行指标数据,将第一运行指标数据和第二运行指标数据发送至总控制端,使总控制端进行数据同步。在实际应用中,第一运行指标数据和第二运行指标数据主要包括内核发送的数据包信息、接收的数据包信息、通过eBPF程序进行编码的数据包信息、通过eBPF程序进行解码的数据包信息,加密和解密的关键参数以及加密包和解密包的尺寸等。
在一些实施例中,如图10所示,对本申请实施例的代理端工作的过程进行举例,包括但不限于步骤S1001至步骤S1012,需要理解的是,下面描述仅是示例性说明,而不是对本申请的具体限制。
步骤S1001,代理端的程序启动运行后,首先尝试与总控制端建立连接。
步骤S1002,判断代理端与总控制端的连接情况,如果代理端与总控制端连接失败,则等待一段时间后重新尝试与总控制端连接,直到连接成功。如果代理端与总控制端连接成功,则执行步骤S1003。
步骤S1003,代理端与总控制端成功建立连接后,则收集所在节点的信息,并将节点信息上报给总控制端。
步骤S1004,代理端进入消息循环,等待总控制端的指令。
步骤S1005,判断从总控制端接收的消息类型,如果代理端与总控制端断链,则执行上电流程,具体为:执行步骤S1001以尝试与总控制端重新连接。如果代理端接收到总控制端发送的停止运行请求,则执行步骤S1006;如果代理端接收到总控制端发送的eBPF程序更新请求,则执行步骤S1007至步骤S1009;如果代理端接收到总控制端发送的数据查询请求,则执行步骤S1010至步骤S1012。
步骤S1006,代理端从内核中卸载eBPF程序,随后停止运行。
步骤S1007,代理端保存接收到的eBPF程序代码。
步骤S1008,代理端根据eBPF程序代码向内核中加载或更新eBPF程序。
步骤S1009,代理端在执行步骤S1008之后,需要反馈eBPF程序加载或者更新的情况给总控制端,并重新执行步骤S1005。
步骤S1010,代理端读取自身运行的指标数据。
步骤S1011,代理端读取eBPF程序所记录的运行指标数据。
步骤S1012,代理端将从步骤S1010和步骤S1011中读取到的运行指标数据进行合并后反馈给总控制端,并重新执行步骤S1005。
在一些实施例中,如图11所示,对本申请实施例的代理端的内部模块进行举例,需要理解的是,下面描述仅是示例性说明,而不是对本申请的具体限制。
代理端的内部模块包括但不限于总控制端连接管理模块1101、eBPF程序管理模块1102和节点信息探测模块1103,其中,总控制端连接管理模块1101负责主动与总控制端建立并维持通信连接,总控制端下发的eBPF程序字节码、代理端上报的节点信息和运行指标数据均从该信道传递。需要说明的是,总控制端连接管理模块1101只要能与总控制端建立并维持网络连接,都可采用任意一种编程语言、适当的协议(例如HTTP协议和RPC协议等)或第三方的代码库来实现,其通讯的数据格式没有特殊要求。
eBPF程序管理模块1102负责保存并加载总控制端发送的eBPF程序字节码,该模块需要根据总控制程序的指示将eBPF程序加载到内核中,也可以从内核中卸载eBPF程序。在实际应用中,当内核从总控制端接收到eBPF程序字节码后,可利用Linux内核提供的特定系统调用或辅助函数来加载或卸载eBPF程序,例如可通过bpf_prog_load内核辅助函数来加载或卸载eBPF程序。
节点信息探测模块1103负责在代理端上电时收集所在节点的节点信息,例如节点名称和节点对应的以太网地址等,并将节点信息发送给总控制端,以使总控制端对节点信息进行同步。需要说明的是,节点信息探测模块1103可以通过一些常见的方法探测并收集节点的信息,例如可以通过执行“cat/etc/hostname”或“hostname”命令来获知节点的名称,通过执行“ip link”或“ifconfig”命令来获取节点的以太网地址等,在实现时根据实际需求选取任意一种合适的方法即可。
需要说明的是,本申请实施例的代理端内部模块用于执行上述实施例中的加解密方法,其具体处理过程与上述实施例中的加解密方法相同,此处不再一一赘述。
本申请实施例还提供了一种加解密方法,应用于总控制端,该加解密方法包括但不限于步骤“向代理端发送包括eBPF程序的更新请求”。
在一些实施例中,步骤“向代理端发送包括eBPF程序的更新请求”,具体为:当总控制端检测到节点的数据发生了变更时,需要向对应节点的代理端发送更新请求,以使代理端根据更新请求将eBPF程序向内核进行加载或者更新处理,以通过eBPF程序拦截内核所接收到的数据包,并对数据包进行加密或者解密处理得到目标数据包。
在一些实施例中,如图12所示,本申请实施例提到的加解密方法还包括但不限于以下步骤S1201至步骤S1202。
S1201,向代理端发送查询请求;
S1202,接收代理端所发送的第一运行指标数据和第二运行指标数据。
在步骤S1201至步骤S1202中,总控制端查询多个与之连接的代理端对应的运行指标数据,当总控制端需要进行数据查询操作时,向所要查询节点对应的代理端发送查询请求,以使代理端根据查询请求读取第一运行指标数据,并获取eBPF程序所输出的第二运行指标数据,第一运行指标数据为代理端的运行指标数据,在实际应用中,第一运行指标数据和第二运行指标数据主要包括内核发送的数据包信息、接收的数据包信息、通过eBPF程序进行编码的数据包信息、通过eBPF程序进行解码的数据包信息,加密和解密的关键参数以及加密包和解密包的尺寸等,总控制端接收代理端发送的第一运行指标数据和第二运行指标数据,且能够将第一运行指标数据和第二运行指标数据反馈给用户。
在一些实施例中,如图13所示,对本申请实施例的代理端工作的过程进行举例,包括但不限于步骤S1301至步骤S1314,需要理解的是,下面描述仅是示例性说明,而不是对本申请的具体限制。
步骤S1301,总控制端初始化并进入消息等待循环,具体为:总控制端程序启动运行,并加载之前持久化保存的配置和数据,并进入消息等待循环,等待外界发送的处理请求。
步骤S1302,判断接收到的消息类型,具体为:外界的代理端或者用户端会发送请求,对于不同类型的请求,总控制端会执行对应的操作,如果总控制端接收到代理端发送的代理端注册请求,则执行步骤S1303至步骤S1306;如果总控制端接收到用户端发送的配置管理请求,则执行步骤S1307至步骤S1310;如果总控制端接收到用户端发送的数据查询请求,则执行步骤S1311至步骤S1314;如果总控制端接收到用户端发哦送的停止运行请求,则总控制端持久化保存关键的数据后停止运行。
步骤S1303,如果总控制端接收到代理端发送的代理端注册请求,且该请求包含代理端所属节点的节点信息,例如节点名称和节点对应的以太网地址,如果该代理端是首次注册,则总控制端记录代理端上报的节点信息,并更新自身记录的节点信息列表。
步骤S1304,如果存在新的以太网地址,则总控制单为该地址生成一套新的加解密参数,并且同步更新自身记录的加解密参数地址表。
步骤S1305,总控制端以更新后的对应表为入参,利用预先设置好用于生成eBPF程序的模板为每个代理端生成对应的eBPF程序。
步骤S1306,总控制端向代理端发送更新后的eBPF程序,使代理端更新或加载eBPF程序,并重新执行步骤S1302。
步骤S1307,如果总控制端接收到用户端发送的配置管理请求,且请求包含豁免地址列表,则根据请求修改和调整豁免地址列表的内容。
步骤S1308,如果总控制端接收到用户端发送的配置管理请求,且请求包含加解密配置列表,则根据请求修改和调整加解密配置列表的内容。
步骤S1309,总控制端以更新后的列表为入参,利用预先设置好用于生成eBPF程序的模板为每个代理端生成对应的eBPF程序。
步骤S1310,总控制端向代理端发送更新后的eBPF程序,使代理端更新或加载eBPF程序,并重新执行步骤S1302。
步骤S1311,总控制端读取自身运行的指标数据。
步骤S1312,总控制端读取代理端所上报的运行指标数据,例如代理端上报的节点信息列表和eBPF程序的运行指标。
步骤S1313,总控制端读取存储的豁免地址列表和加解密参数地址对应表等。
步骤S1314,总控制端将步骤S1311步骤S1313中的数据合并后,格式化反馈给用户端,并重新执行步骤S1302。
在一些实施例中,如图14所示,对本申请实施例的总控制端的内部模块进行举例,需要理解的是,下面描述仅是示例性说明,而不是对本申请的具体限制。
总控制端的内部模块包括但不限于API接口模块1401、代理端连接管理模块1402、eBPF代码生成模块1403、加密配置管理模块1404、节点信息管理模块1405和数据持久化模块1406,其中API接口模块1401对外负责实现功能调用的接口,对内负责实现不同请求的内部业务逻辑,这些业务逻辑会调用总控制端其他的内部模块来完成特定的功能。
由于代理端会通过API接口主动与总控制端进行通信连接,代理端连接管理模块1402负责维护所有的代理端连接,并通过数据持久化模块1406保存与代理端连接的连接状态数据。
由于代理端与总控程序建立连接后,会主动上报其所在节点的关键信息,例如节点名称和节点对应的以太网地址等,节点信息管理模块1405负责维护总控制端接收到的节点信息,以及特定节点与代理端之间的对应关系,并通过数据持久化模块1406保存这些数据。
加密配置管理模块1404主要维护两张列表,即豁免地址列表和加解密参数地址对应表,其中豁免地址列表通过API接口由用户端维护,记录不需要进行加密或解密的以太网地址,加密参数地址对应表主要由程序自动维护,即每当代理端上报一个新的以太网地址时,该模块会自动生成一套加解密参数与这些地址对应,此外,如果用户有需求,还能通过API接口人工调整该列表,豁免地址列表和加解密参数地址对应表也会通过数据持久化模块1406来保存。在实际应用中,本模块除了需要维护两张列表,还需要确定使用的加解密算法,一般来说,本申请实施例所采用的是非对称加解密算法,例如椭圆曲线加密算法ED25519等,本申请提到的加解密参数包括加密公钥和加密私钥,发送方使用接收方的加密公钥来加密数据,接收方使用自己的加密私钥解密数据,需要说明的是,公钥对所有人公开,私钥仅自己知晓。此外,加密配置管理模块1404负责为每一个代理端上报的以太网地址生成一个公私钥对,并记录它们之前的关联关系,最终形成的数据结构可参见表2,可直接通过目标以太网地址获取到加密公钥和加密私钥。
代理端编号 | 以太网地址 | 加密公钥 | 加密私钥 |
Agent_0 | 以太网地址_0_0 | 公钥 | 私钥 |
Agent_0 | 以太网地址_0_1 | 公钥 | 私钥 |
Agent_1 | 以太网地址_1_0 | 公钥 | 私钥 |
Agent_2 | 以太网地址_2_0 | 公钥 | 私钥 |
表2
eBPF代码生成模块1403由eBPF代码模板和代码编译器构成,eBPF代码模板包含了eBPF程序的所有功能实现,每当加密配置的豁免地址列表和加解密参数地址对应表发生变更时,该模块就会将更新后的加密配置嵌入eBPF代码模板,通过编译器为所有的代理端生成可被内核加载执行的eBPF程序代码,最后将eBPF程序发送给所有的代理端。需要说明的是,每当节点信息发生变化时,加密配置管理模块1404需要生成对应的新数据,eBPF代码生成模块1403会使用加密配置管理模块1404产生的新数据以及豁免地址列表来为每一个代理端生成对应的eBPF代码,具体地,eBPF代码生成模块1403首先需要遍历加密配置管理模块1404生成的数据列表,为每一个特定的代理端确定需要嵌入模板的配置数据,待所有代理端的嵌入数据都确定后,调用编译器为每一个代理端生成对应的eBPF程序字节码。其中,一个特定的代理端需要嵌入模板的数据包括:所有不在豁免地址列表中的以太网地址信息以及对应的公钥数据与该代理端相关但不在豁免地址列表中的以太网地址所对应的私钥数据。
需要说明的是,本申请实施例的总控制端内部模块用于执行上述实施例中的加解密方法,其具体处理过程与上述实施例中的加解密方法相同,此处不再一一赘述。
在一些实施例中,描述本申请的加解密方法的可能的实施方式,其中,该实施方式至少有两种部署应用形态,参照图15,为纯软件部署形态,参照图16,为智能网络硬件部署形态。
在一些实施例中,在代理端、eBPF程序与业务集成的纯软件部署形态下,代理端的Agent程序和eBPF程序是与业务部署在同一个节点上的,共享节点的资源。这种部署形态的优点是无需专用硬件,就能完成本申请实施例的加解密方法。
在一些实施例中,在代理端、eBPF程序与业务节点隔离的智能网络硬件部署形态下,代理端的Agent程序和eBPF程序是部署在一个智能网络硬件上的,与业务节点在硬件上隔离,不占用业务节点的资源。这种部署形态的优点是与业务之间资源完全隔离,不会对业务性能造成影响;另外由于存在硬件隔离,能够有效限制安全事件的波及范围,能够有效地提高安全性。
需要说明的是,无论本申请实施例采用哪一种部署形态,本申请实施例的加解密过程对于上层的业务应用都是透明的,也就是说,上层业务感知不到其网络数据是否正在被加解密、或是以何种方式被加解密,因此上层业务无需做任何代码或配置变更即可应用本申请实施例的加解密装置。另外,无论在哪一种部署形态下,总控制端的总控程序、代理端Agent程序以及内核的eBPF程序的内部功能逻辑和实现方式都是相同的。
本申请实施例还提供了一种加解密装置,包括存储器、处理器,存储器存储有计算机程序,处理器执行计算机程序时实现本申请实施例的加解密方法。
下面结合图17对加解密装置的硬件结构进行详细说明。该加解密装置包括:处理器1701、存储器1702、输入/输出接口1703、通信接口1704和总线1705。
处理器1701,可以采用通用的CPU(Central Processin Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本申请实施例所提供的技术方案;
存储器1702,可以采用ROM(Read Only Memory,只读存储器)、静态存储设备、动态存储设备或者RAM(Random Access Memory,随机存取存储器)等形式实现。存储器1702可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1702中,并由处理器1701来调用执行本申请实施例的加解密方法;
输入/输出接口1703,用于实现信息输入及输出;
通信接口1704,用于实现本设备与其他设备的通信交互,可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信;和
总线1705,在设备的各个组件(例如处理器1701、存储器1702、输入/输出接口1703和通信接口1704)之间传输信息;
其中处理器1701、存储器1702、输入/输出接口1703和通信接口1704通过总线1705实现彼此之间在设备内部的通信连接。
本申请实施例还提供了计算机可读存储介质,存储介质存储有程序,程序被处理器执行实现如本申请实施例的加解密方法。
在一实施例中,该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个控制处理器执行,例如,执行图3中的方法步骤S301至步骤S303、图4中的方法步骤S401至步骤S402、图5中的方法步骤S501至步骤S502、图6中的方法步骤S601至步骤S610、图8中的方法步骤S801至步骤S802、图9中的方法步骤S901至步骤S903、图10中的方法步骤S1001至步骤S1012、图12中的方法步骤S1201至步骤是S1202、图13中的方法步骤S1301至步骤S1314。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统可以被实施为软件、固件、硬件及其适当的组合。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、储存设备存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包括计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
还应了解,本申请实施例提供的各种实施方式可以任意进行组合,以实现不同的技术效果。
以上是对本申请的较佳实施进行了具体说明,但本申请并不局限于上述实施方式,熟悉本领域的技术人员在不违背本申请精神的共享条件下还可作出种种等同的变形或替换,这些等同的变形或替换均包括在本申请权利要求所限定的范围内。
Claims (11)
1.一种加解密方法,应用于内核,所述方法包括:
通过配置在所述内核中的eBPF程序拦截接收到的数据包;
以所述数据包中的目的以太网地址作为索引对全局配置数据进行查找,得到加解密参数;
根据加解密参数对所述数据包进行加密或者解密处理,得到目标数据包。
2.根据权利要求1所述的方法,其特征在于,所述以所述数据包中的目的以太网地址作为索引对全局配置数据进行查找,得到加解密参数包括:
对所述数据包进行解析处理,得到协议头内容;
在根据所述协议头内容确定所述数据包的数据为以太网帧的情况下,获取所述数据包的目的以太网地址,并以所述目的以太网地址作为索引对全局配置数据进行查找,得到加解密参数。
3.根据权利要求2所述的方法,其特征在于,所述在根据所述协议头内容确定所述数据包的数据为以太网帧的情况下,获取所述数据包的目的以太网地,并以所述目的以太网地址作为索引对全局配置数据进行查找,得到加解密参数包括:
在根据所述协议头内容确定所述数据包的数据为以太网帧的情况下,获取所述数据包的目的以太网地址和源以太网地址;
在目的以太网地址和源以太网地址均不为预设的豁免地址列表中的地址的情况下,以所述目的以太网地址作为索引对全局配置数据进行查找,得到加解密参数。
4.根据权利要求1所述的方法,其特征在于,所述数据包为需要发送的数据包,所述根据加解密参数对所述数据包进行加密或者解密处理,得到目标数据包,包括:
根据所述加解密参数对所述数据包进行加密处理,得到目标数据包。
5.根据权利要求1所述的方法,其特征在于,所述数据包为接收到的数据包,所述根据加解密参数对所述数据包进行加密或者解密处理,得到目标数据包,包括:
根据所述加解密参数对所述数据包进行解密处理,得到目标数据包。
6.一种加解密方法,应用于代理端,所述方法包括:
获取来自总控制端的更新请求,所述更新请求包括eBPF程序;
根据所述更新请求将所述eBPF程序向内核进行加载或者更新处理,以通过所述eBPF程序拦截所述内核所接收到的数据包,并对所述数据包进行加密或者解密处理得到目标数据包。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
接收来自所述总控制端的查询请求;
根据所述查询请求读取第一运行指标数据,并获取所述eBPF程序所输出的第二运行指标数据,所述第一运行指标数据为所述代理端的运行指标数据;
将所述第一运行指标数据和所述第二运行指标数据发送至所述总控制端。
8.一种加解密方法,应用于总控制端,所述方法包括:
向代理端发送更新请求,所述更新请求包括eBPF程序,以使所述代理端根据所述更新请求将所述eBPF程序向内核进行加载或者更新处理,以通过所述eBPF程序拦截所述内核所接收到的数据包,并对所述数据包进行加密或者解密处理得到目标数据包。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
向所述代理端发送查询请求,以使所述代理端根据所述查询请求读取第一运行指标数据,并获取所述eBPF程序所输出的第二运行指标数据,所述第一运行指标数据为所述代理端的运行指标数据;
接收所述代理端所发送的所述第一运行指标数据和所述第二运行指标数据。
10.一种加解密装置,其特征在于,包括存储器、处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至5中任意一项所述的加解密方法,或者实现如权利要求6至7中任意一项所述的加解密方法,或者实现如权利要求8至9中任意一项所述的加解密方法。
11.一种计算机可读存储介质,其特征在于,所述存储介质存储有程序,所述程序被处理器执行如权利要求1至5中任意一项所述的加解密方法,或者执行如权利要求6至7中任意一项所述的加解密方法,或者执行如权利要求8至9中任意一项所述的加解密方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111187550.5A CN115967511A (zh) | 2021-10-12 | 2021-10-12 | 加解密方法、装置及计算机可读存储介质 |
PCT/CN2022/119689 WO2023061158A1 (zh) | 2021-10-12 | 2022-09-19 | 加解密方法、装置及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111187550.5A CN115967511A (zh) | 2021-10-12 | 2021-10-12 | 加解密方法、装置及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115967511A true CN115967511A (zh) | 2023-04-14 |
Family
ID=85899855
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111187550.5A Pending CN115967511A (zh) | 2021-10-12 | 2021-10-12 | 加解密方法、装置及计算机可读存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN115967511A (zh) |
WO (1) | WO2023061158A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117176435A (zh) * | 2023-09-08 | 2023-12-05 | 南京金阵微电子技术有限公司 | 以太网报文加解密系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6412069B1 (en) * | 1997-09-16 | 2002-06-25 | Safenet, Inc. | Extending crytographic services to the kernel space of a computer operating system |
US10623372B2 (en) * | 2017-12-06 | 2020-04-14 | Nicira, Inc. | Load balancing IPsec tunnel processing with extended Berkeley packet filter (eBPF) |
CN109862000B (zh) * | 2019-01-22 | 2021-08-17 | 深圳市永达电子信息股份有限公司 | 一种Linux网络层的端对端加密方法和系统 |
CN110401532A (zh) * | 2019-08-08 | 2019-11-01 | 昆高新芯微电子(江苏)有限公司 | 一种基于国密算法的以太网数据加解密处理方法 |
CN110602053B (zh) * | 2019-08-20 | 2022-05-13 | 华能四川能源开发有限公司 | 应用进程无感式内核层加解密系统及方法 |
-
2021
- 2021-10-12 CN CN202111187550.5A patent/CN115967511A/zh active Pending
-
2022
- 2022-09-19 WO PCT/CN2022/119689 patent/WO2023061158A1/zh unknown
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117176435A (zh) * | 2023-09-08 | 2023-12-05 | 南京金阵微电子技术有限公司 | 以太网报文加解密系统 |
Also Published As
Publication number | Publication date |
---|---|
WO2023061158A1 (zh) | 2023-04-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6101543A (en) | Pseudo network adapter for frame capture, encapsulation and encryption | |
CN109150688B (zh) | IPSec VPN数据传输方法及装置 | |
CN1756234B (zh) | 服务器、vpn客户装置、vpn系统 | |
US7346770B2 (en) | Method and apparatus for traversing a translation device with a security protocol | |
US8418244B2 (en) | Instant communication with TLS VPN tunnel management | |
US7685287B2 (en) | Method and system for layering an infinite request/reply data stream on finite, unidirectional, time-limited transports | |
CN113055269B (zh) | 虚拟专用网络数据的传输方法及装置 | |
US11870701B2 (en) | Data transmission method, switch, and site | |
WO2022257643A1 (zh) | 网络传输层数据处理方法、设备及存储介质 | |
WO2001043393A2 (en) | Decoupling access control from key management in a network | |
US20230038179A1 (en) | Secure and transparent transport of application level protocols to non-ip data delivery communication channels | |
US20230145440A1 (en) | Method and device for selective user plane security in wireless communication system | |
CN113595964B (zh) | 连接跟踪同步方法、装置、系统、设备及介质 | |
WO2023061158A1 (zh) | 加解密方法、装置及计算机可读存储介质 | |
CN114500176B (zh) | 用于vpn的多流负载均衡方法、装置、系统及存储介质 | |
US20180083777A1 (en) | Methods, systems, apparatuses, and devices for securing network communications using multiple security protocols | |
CN110771117B (zh) | 一种采用面向id的网络的会话层通信 | |
US11652910B2 (en) | Data transmission method, device, and system | |
JPH06318939A (ja) | 暗号通信システム | |
US20230156468A1 (en) | Secure Communication Method, Related Apparatus, and System | |
CN108833612B (zh) | 一种基于arp协议的局域网设备的联通方法 | |
CN114301967B (zh) | 窄带物联网控制方法、装置及设备 | |
CN110351308B (zh) | 一种虚拟专用网络通信方法和虚拟专用网络设备 | |
US7493486B1 (en) | Method and apparatus for supporting cryptographic-related activities in a public key infrastructure | |
CN107770018B (zh) | 用于串行通信系统的通信方法及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |