CN115955365A - 一种内生安全的网络编译系统及方法 - Google Patents
一种内生安全的网络编译系统及方法 Download PDFInfo
- Publication number
- CN115955365A CN115955365A CN202310243318.1A CN202310243318A CN115955365A CN 115955365 A CN115955365 A CN 115955365A CN 202310243318 A CN202310243318 A CN 202310243318A CN 115955365 A CN115955365 A CN 115955365A
- Authority
- CN
- China
- Prior art keywords
- compiling
- end compiler
- network program
- network
- result
- 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
- 238000000034 method Methods 0.000 title claims abstract description 39
- 238000012545 processing Methods 0.000 claims abstract description 124
- 230000006870 function Effects 0.000 claims abstract description 82
- 230000008569 process Effects 0.000 claims abstract description 14
- 238000012795 verification Methods 0.000 claims abstract description 7
- 238000009826 distribution Methods 0.000 claims description 19
- 238000005457 optimization Methods 0.000 claims description 15
- 238000013507 mapping Methods 0.000 claims description 4
- 238000004364 calculation method Methods 0.000 claims description 3
- 230000008439 repair process Effects 0.000 claims description 3
- 239000004744 fabric Substances 0.000 claims 1
- 239000013598 vector Substances 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000014759 maintenance of location Effects 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 230000001939 inductive effect Effects 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000007123 defense Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000006698 induction Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000007670 refining Methods 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种内生安全的网络编译系统及方法,包括:网络程序分发器、编译裁决器、多个结构不同且功能相同的编译处理功能体、编译验证器;网络程序分发器用于根据编译器控制指令将网络程序复制后分发至多个编译处理功能体;编译处理功能体,用于对网络程序进行处理,得到目标平台代码,并输出目标平台代码;编译裁决器,用于接收多个编译处理功能体输出的目标平台代码,并对多个编译处理功能体输出的目标平台代码进行裁决,得到裁决结果;编译验证器,采取形式化验证方法,在形式化定义源语言、目标语言和编译过程的基础上,验证网络程序的源代码与目标平台代码的语义是否等同,若不等同,则编译失败。本发明可以提高网络编译系统的安全性。
Description
技术领域
本发明涉及计算机网络领域,尤其涉及一种内生安全的网络编译系统及方法。
背景技术
一个编译任务在不同阶段、不同时段、不同资源条件下、不同用户需求等因素影响下,动态生成的生成合适的编译环境与之适应。在现有的可编程数据平面中,学术界和工业界主要关注的是网络编译处理功能、网络编译处理模型和目标,而对于网络编译系统的安全问题却较少研究。一旦网络编译系统的未知漏洞被攻击方利用将对网络基础平台造成十分恶劣的影响,因此,需要设计一种能防已知和未知风险的网络编译系统。
发明内容
针对现有技术的不足,本发明提供一种内生安全的网络编译系统及方法,以达到提高网络编译系统的安全性的目的,技术方案如下:
一种内生安全的网络编译系统,包括网络程序分发器、编译裁决器、多个结构不同且功能相同的编译处理功能体,以及编译验证器;
所述网络程序分发器用于根据编译器控制指令将网络程序复制后分发至多个编译处理功能体;
所述编译处理功能体用于对所述网络程序进行编译处理,得到目标平台代码,并输出所述目标平台代码;
所述编译裁决器用于接收多个所述编译处理功能体输出的目标平台代码,并对多个所述编译处理功能体输出的目标平台代码进行裁决,得到裁决结果;
所述编译验证器用于采取形式化验证方法,在形式化定义源语言、目标语言和编译过程的基础上,验证所述网络程序的源代码与目标平台代码的语义是否等同,若不等同,则编译失败。
进一步地,还包括编译控制器;
所述编译控制器用于将所述裁决结果反馈给多个编译处理功能体;
所述编译处理功能体还用于比较所述裁决结果和自身输出的处理结果是否一致,若不一致,则对自身进行清洗和修复。
进一步地,所述编译控制器还用于将所述裁决结果反馈给所述网络程序分发器;
所述网络程序分发器还用于依据所述裁决结果,调整网络程序分发策略,并在接收到下一个网络程序时,依据调整后的网络程序分发策略进行网络程序分发。
进一步地,各个所述编译处理功能体均包括至少一个前端编译器、至少一个中端编译器、至少一个后端编译器和至少一个目标代码生成器,各个所述编译处理功能体的前端编译器、中端编译器、后端编译器、目标代码生成器之间的编排不同;
所述前端编译器,用于对用户开发的网络程序进行词法分析、语法分析、语义分析,并生成中间表示文件;
所述中端编译器,用于优化前端编译器输出的中间表示文件;
所述后端编译器,用于依据所述中端编译器输出的结果,生成与硬件相关的代码;
所述目标代码生成器,用于依据所述后端编译器输出的结果,生成目标平台代码。
进一步地,任意一个或多个所述编译处理功能体中所述前端编译器、所述中端编译器、所述后端编译器和所述目标代码生成器中一个或多个为异构冗余结构。
进一步地,所述前端编译器为异构冗余结构,所述前端编译器包括:第一分发模块、多个结构不同且功能相同的解析模块和第一裁决模块;
所述第一分发模块,用于在接收到网络程序时,将接收到的网络程序复制成多个相同的网络程序,并将多个相同的网络程序分发给多个所述解析模块;
所述解析模块,用于解析所述网络程序的源代码,然后依次进行词法分析、语法分析、语义分析, 检查源代码是否存在错误,然后构建抽象语法树;
所述第一裁决模块,用于对多个所述解析模块输出的结果进行裁决,得到第一裁决结果,并输出所述第一裁决结果。
进一步地,所述中端编译器为异构冗余结构,所述中端编译器包括:第二分发模块、多个结构不同且功能相同的优化模块和第二裁决模块;
所述第二分发模块,用于对所述前端编译器输出的中间表示进行复制,并将复制的所述前端编译器输出的结果发给多个所述优化模块;
所述优化模块,用于依据所述前端编译器输出的结果,对所述中间表示的数据进行各种优化,包括改善代码的运行时间、消除冗余计算,得到第一处理结果;
所述第二裁决模块,用于对多个所述第一处理结果进行裁决,得到第二裁决结果,并输出所述第二裁决结果。
进一步地,所述后端编译器为异构冗余结构,所述后端编译器包括:第三分发模块、多个结构不同且功能相同的后端编译模块和第三裁决模块;
所述第三分发模块,用于对所述中端编译器输出的结果及优化后的中间表示进行复制,并将复制的所述中端编译器输出的结果及优化后的中间表示分发给多个所述后端编译模块;
所述后端编译模块,用于依据所述中端编译器输出的结果,对优化后的中间表示进行与硬件相关的后端编译处理,得到第二处理结果;
所述第三裁决模块,用于对多个所述第二处理结果进行裁决,得到第三裁决结果,并输出所述第三裁决结果。
进一步地,所述目标代码生成器为异构冗余结构,所述目标代码生成器包括:第四分发模块、多个结构不同且功能相同的代码生成模块和第四裁决模块;
所述第四分发模块,用于对所述后端编译器输出的结果进行复制,并将复制的所述后端编译器输出的结果分发给多个所述代码生成模块;
所述代码生成模块,用于依据所述后端编译器输出的结果,将代码映射到目标指令集,生成机器语言,并且进行机器相关的代码优化;
所述第四裁决模块,用于对多个所述代码生成模块得到的目标代码进行裁决,得到第四裁决结果,并输出所述第四裁决结果。
一种内生安全的网络编译方法,该方法基于网络编译系统来实现,所述网络编译系统包括:网络程序分发器、编译裁决器、多个结构不同且功能相同的编译处理功能体,以及编译验证器;
通过所述网络程序分发器接收到网络程序,将接收到的网络程序复制成多个相同的网络程序,并将多个相同的网络程序分发给多个所述编译处理功能体;
通过所述编译处理功能体对所述网络程序进行编译处理,得到目标平台代码,并输出所述目标平台代码;
通过所述编译裁决器接收多个所述编译处理功能体输出的目标平台代码,并对多个所述编译处理功能体输出的目标平台代码进行裁决,得到裁决结果;
通过所述编译验证器采取形式化验证方法,在形式化定义源语言、目标语言和编译过程的基础上,验证所述网络程序的源代码与目标平台代码的语义是否等同,若不等同,则编译失败。
与现有技术相比,本发明的有益效果如下:
本发明设计了多个功能相同且结构不同的编译处理功能体,分别对网络程序进行处理,并对多个处理结果进行裁决,提高处理结果的正确性,同时设计编译验证器,验证源代码和目前代码的语言是否等同,以此防范网络编译系统所面临的安全风险,增强网络编译系统的抗攻击能力,提高网络编译系统的安全性。
附图说明
图1为本发明一实施例提供的内生安全的网络编译系统的示意图。
图2为本发明另一实施例提供带有编译控制器的内生安全的网络编译系统的示意图。
图3为本发明再一实施例提供的内生安全的网络编译系统的示意图。
图4为本发明编译验证器进行语义验证的示意图。
图5为本发明一实施例提供的内生安全的网络编译方法的流程控制示意图。
具体实施方式
下面根据附图详细说明本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
接下来对本发明实施例公开的内生安全的网络编译系统的进行介绍,如图1所示,为本发明提供的其中一种内生安全的网络编译系统的一种逻辑结构示意图,该内生安全的网络编译系统可以包括但不局限于:网络程序分发器11、裁决器12和多个结构不同且功能相同的编译处理功能体13。
可以理解的是,多个编译处理功能体13的结构不同,但是功能相同。
网络程序分发器11,用于在接收到网络程序时,将接收到的网络程序复制成多个相同的网络程序,并将多个相同的网络程序分发给多个编译处理功能体13;
编译处理功能体13,用于对网络程序进行处理,得到目标平台代码,并输出目标平台代码;
编译裁决器12,用于接收多个编译处理功能体13输出的目标平台代码,并对多个编译处理功能体13输出的目标平台代码进行裁决,得到裁决结果。
编译验证器15,用于采取形式化验证方法,在形式化定义源语言、目标语言和编译过程的基础上,验证,网络程序的源代码与目标平台代码的语义是否等同,若不等同,则编译失败。
本实施例中,裁决器12对多个编译处理功能体13输出的处理结果进行裁决,得到裁决结果的过程,优选为:
裁决器12采用择多判决的方式对多个编译处理功能体13输出的处理结果进行裁决,得到裁决结果。
采用择多判决的方式对多个编译处理功能体13输出的处理结果进行裁决,得到裁决结果,可以理解为:
通过对多个编译处理功能体13输出的处理结果进行比对,选择多个编译处理功能体13输出的处理结果中个数最多的处理结果,作为裁决结果。如,多个编译处理功能体13输出的处理结果分别为a1、a1、a2、a1、a3、a4,则a1为个数最多的处理结果,a1作为裁决结果。
本实施例中,对编译处理功能体13进行动态异构冗余设计,使内生安全的网络编译系统中包括多个结构不同且功能相同的编译处理功能体13,分别对网络程序进行处理,并对多个处理结果进行裁决,同时采用编译验证器验证网络程序的源代码与目标平台代码的语义是否等同,提高处理结果的正确性,以此防范网络编译系统所面临的安全风险,增强网络编译系统的抗攻击能力,提高网络编译系统的安全性。
在本发明的另一个实施例中,介绍另外一种内生安全的网络编译系统,如图2所示,在图1示出的内生安全的网络编译系统的基础上,还可以包括:编译控制器14。
编译控制器,用于将裁决结果反馈给多个编译处理功能体13。
编译处理功能体13,还用于比较裁决结果和自身输出的处理结果是否一致,若不一致,则对自身进行清洗和修复。
编译处理功能体13在裁决结果和自身输出的处理结果不一致时,对自身进行清洗和修复,可以实现对已知或未知的攻击的动态防御。
本实施例中,编译控制器,还可以用于将裁决结果反馈给网络程序分发器11。
相应地,网络程序分发器11,还可以用于依据裁决结果,调整网络程序分发策略,并在接收到下一个网络程序时,依据调整后的网络程序分发策略进行网络程序分发。
网络程序分发器11,依据裁决结果,调整网络程序分发策略,并在接收到下一个网络程序时,依据调整后的网络程序分发策略进行网络程序分发,可以包括但不局限于:
网络程序分发器11,依据裁决结果,调整网络程序分发策略为分发给除处理结果与裁决结果不一致的编译处理功能体13之外的编译处理功能体13,并在接收到下一个网络程序时,将网络程序分发给除处理结果与裁决结果不一致的编译处理功能体13之外的编译处理功能体13。
网络程序分发器11,依据裁决结果,调整网络程序分发策略,并在接收到下一个网络程序时,依据调整后的网络程序分发策略进行网络程序分发,可以避免将网络程序继续分发给存在安全风险的编译处理功能体13,以此提高内生安全的网络编译系统的安全性。
在本发明的另一个实施例中,对各个编译处理功能体13的结构进行介绍,如图3所示,具体如下:
各个编译处理功能体13均包括至少一个前端编译器、至少一个中端编译器、至少一个后端编译器和至少一个目标代码生成器,各个编译处理功能体13中前端编译器、中端编译器、后端编译器、目标代码生成器之间的编排不同。
各个编译处理功能体13均包括至少一个前端编译器、至少一个中端编译器、至少一个后端编译器和至少一个目标代码生成器,可以理解为:各个编译处理功能体13中前端编译器的个数、中端编译器的个数、后端编译器的个数及目标代码生成器的个数并不限定,但至少为1。如,编译处理功能体A中包括2个前端编译器、1个中端编译器、1个后端编译器和1个目标代码生成器;编译处理功能体B中包括1个前端编译器、2个中端编译器、1个后端编译器和2个目标代码生成器;编译处理功能体C中包括3个前端编译器、1个中端编译器、1个后端编译器和3个目标代码生成器。各个编译处理功能体13中前端编译器、中端编译器、后端编译器和目标代码生成器之间的编排不同,可以理解为:各个编译处理功能体13中前端编译器、中端编译器、后端编译器和目标代码生成器之间的排列及输入输出关系不同。例如,假设包括3个编译处理功能体13,分别为编译处理功能体A、B和C,编译处理功能体A和B均包括:2个前端编译器、1个中端编译器、1个后端编译器和2个目标代码生成器,编译处理功能体C包括:1个前端编译器、1个中端编译器、1个后端编译器和1个目标代码生成器,如图3所示,编译处理功能体A、B和C中前端编译器、中端编译器、后端编译器和目标代码生成器的编排各不相同。
前端编译器,用于对用户开发的网络程序进行词法分析、语法分析、语义分析,并生成中间表示文件;
中端编译器,用于优化前端编译器输出的中间表示文件;
后端编译器,用于依据中端编译器输出的结果,生成与硬件相关的代码;
目标代码生成器,用于依据后端编译器输出的结果,生成目标平台代码。
当然,也可以对上述前端编译器、中端编译器、后端编译器和目标代码生成器进行异构冗余设计,实现任意一个或多个所述编译处理功能体13中前端编译器、中端编译器、后端编译器和目标代码生成器中一个或多个可以为异构冗余结构。
在前端编译器为异构冗余结构时,前端编译器可以包括:第一分发模块、多个结构不同且功能相同的解析模块和第一裁决模块;
第一分发模块,用于在接收到网络程序时,将接收到的网络程序复制成多个相同的网络程序,并将多个相同的网络程序分发给多个解析模块;
解析模块,用于解析源代码,然后依次进行词法分析,语法分析,语义分析, 检查源代码是否存在错误,然后构建抽象语法树(Abstract Syntax Tree, AST) ;
第一裁决模块,用于对多个解析模块输出的结果进行裁决,得到第一裁决结果,并输出第一裁决结果。
在中端编译器为异构冗余结构时,中端编译器包括:第二分发模块、多个结构不同且功能相同的优化模块和第二裁决模块;
第二分发模块,用于对前端编译器输出的中间表示进行复制,并将复制的前端编译器输出的结果发给多个优化模块;
优化模块,用于依据前端编译器输出的结果,对中间表示的数据进行各种优化,包括改善代码的运行时间、消除冗余计算等处理,得到第一处理结果;
第二裁决模块,用于对多个第一处理结果进行裁决,得到第二裁决结果,并输出第二裁决结果。
在后端编译器为异构冗余结构时,后端编译器包括:第三分发模块、多个结构不同且功能相同的后端编译模块和第三裁决模块;
第三分发模块,用于对中端编译器输出的结果及优化后的中间表示进行复制,并将复制的中端编译器输出的结果及优化后的中间表示分发给多个后端编译模块;
后端编译模块,用于依据中端编译器输出的结果,对优化后的中间表示进行与硬件相关的后端编译处理,得到第二处理结果;
第三裁决模块,用于对多个第二处理结果进行裁决,得到第三裁决结果,并输出第三裁决结果。
在目标代码生成器为异构冗余结构时,目标代码生成器包括:第四分发模块、多个结构不同且功能相同的代码生成模块和第四裁决模块;
第四分发模块,用于对后端编译器输出的结果进行复制,并将复制的后端编译器输出的结果分发给多个代码生成模块;
代码生成模块,用于依据后端编译器输出的结果,将代码映射到目标指令集;生成机器语言,并且进行机器相关的代码优化;
第四裁决模块,用于对多个代码生成模块得到的目标代码进行裁决,得到第四裁决结果,并输出第四裁决结果。
上述前端编译器、中端编译器、后端编译器或目标代码生成器为异构冗余结构,可以进一步提高内生安全的网络编译系统的安全性。
编译验证器,借助辅助定理证明器Coq进行证明。即:
阶段一:P4语言转换为JSON文件;由前端编译器实现;
阶段二:JSON文件转换为HLIR文件;由中端编译器实现;
阶段三:HLIR再转换为C文件;由后端编译器实现;
阶段四:C再转换为其他可配置文件;由目标代码生成器实现。如图4所示。
P4语言与JSON的语义保持性。P4语言S程序被翻译成JSON语言J(P4)程序。
S P 是P4语言的语义函数,
S J 是JSON的语义函数。从语言P4至JSON语言的语义保持性是指:
sound(S)和
sound(J(P4))可以正常得到
S P
(P4)和
S J
(JSON),≈是语义保持关系。
S P
(P4)≈
S J
(JSON)意味着,P4的所有环境变量在
J(P4)都有匹配对象,且
S P
(P4)对环境的改变可以通过
SJ(JSON)对相匹配环境的改变进行模拟。HLIR是JSON文件中的内容由结构化形式完全转换为在内存中的串行化形式。
因此,本发明将JSON与HLIR语义保持性、HLIR和C语义保持性合并为JSON与C语义保持性。从而,编译验证器在验证网络程序的源代码与目标平台代码的语义是否等同时,即验证P4与目标文件的语义是否等同,进一步转换为仅需验证语言P4至JSON语言的语义保持性、JSON语言到C语言的保持性、C语言至目标代码的语义保持性。
其中,从C语言至目标代码的语义保持性是指:
其中,C表示C文件、O(C)表示目标代码语言程序,
S C 是C语言的语义函数。
(1)对JSON进行语义分析,具体如下:
考虑JSON文件的node内部的基础类型、数据结构和算法流程进行抽象,以精确的数理定义形式给出其形式化定义。在Coq中使用归纳类型的方法定义JSON文件的数据类型如下所示:
定义1(单个对象集合结构)。
对象集合内容包含一个对象集合的所有私有属性。
其中,ND∈NodeID表示结点ID,NT∈NodeType表示该结点的类型,Vec∈Vectors表示该结点的向量集。
定义2(向量集(多种不同向量类型的集合))。
t1~t14分别是编译器对P4源码进行词法分析后形成JSON文件第一层级中objects所有向量的类型。
定义3(错误集(多种不同错误类型的集合))。
e1~e7分别是Type_Error向量所有错误的类型。
定义4 packet_in抽象模型包含的extern函数。
定义5 packet_in抽象模型。
定义6 packet_in抽象模型包含的advance函数。
定义7 packet_in抽象模型包含的length定义。
定义8 packet_out抽象模型包含的emit定义。
定义9 自定义编程模型包含的verify定义。
定义10(匹配类型集(多种不同匹配类型的集合))。
m1~m6分别是表项域的匹配类型。
定义11(元数据结构)。
数据包处理模块中元数据集合内容包含一个元数据的所有私有属性,这些标志通过定义一个数据结构来实现每个对象集合属性的管理。
定义12(常量集合)。
本模型支持常量的声明。
性质1. 在解析模块parser中,对包头进行提取操作之后,根据提取包头类型读取数据,同时指针向后偏移提取包头长度,在Coq中对性质1 提出的定理如下:
advance 函数的功能为指针向前偏移bit位数;length函数的功能为获取包头的长度。
性质2. 在解析模块parser中,当state为accept时退出parser流程,进入下一模块处理;在Coq 中对性质2提出的定理如下:
性质3. 在解析模块parser中,当state为reject时,停止运行;在Coq 中对性质3提出的定理如下:
性质4. 在流入模块ingress中,根据匹配类型提取包头位域,当条件满足时触发动作action。在Coq 中对性质4提出的定理如下:
(2)对C语言进行语义分析,具体步骤如下:
采用分离逻辑对C程序进行精炼、准确的形式化描述和验证。分离逻辑通常形式化表述为{P}C{Q},其中P表示程序的前置条件,Q表示程序的后置条件,C表示程序代码。可直观描述为:假设在P成立的前提下,执行代码C后可使得Q成立。后端生成的C代码函数如下:
双链表的内存访问操作被形式化为一个新的低层抽象机,该抽象机首先引入抽象状态block_pool表示空闲内存块链表,使用Coq 映射类型(ZMap.t)表示由空闲内存块组成的内存池,使用整数(Z)表示指针。block_pool在Coq 中的形式化定义为,Definitionblock_pool : = ZMap. t block_abs,其中block_abs是一个归纳数据类型,其定义为Inductive block_abs: Type: =Block(next: Z)(prev: Z)。同时,低层抽象机规范get_next、set_next、get_prev和set_prev则分别对应于内存操作代码中函数功能在抽象状态block_pool 上的操作,四者在 Coq 中的抽象层形式化规范如下:
建立抽象状态
block_
pool与其内存数据之间的数据精化关系
R,证明低层抽象状态机中所定义的规范与代码实现之间的一致性。
编译控制流程如图5所示,如果编译过程都满足提出的4条基本性质即编译结果可信,否则编译失败。
需要说明的是,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
最后,还需要说明的是,在本发明中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“ 包括”、“ 包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“ 包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本发明时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
以上对本发明所提供的一种内生安全的网络编译系统及方法进行了详细介绍,本发明中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种内生安全的网络编译系统,其特征在于,包括网络程序分发器、编译裁决器、多个结构不同且功能相同的编译处理功能体,以及编译验证器;
所述网络程序分发器用于根据编译器控制指令将网络程序复制后分发至多个编译处理功能体;
所述编译处理功能体用于对所述网络程序进行编译处理,得到目标平台代码,并输出所述目标平台代码;
所述编译裁决器用于接收多个所述编译处理功能体输出的目标平台代码,并对多个所述编译处理功能体输出的目标平台代码进行裁决,得到裁决结果;
所述编译验证器用于采取形式化验证方法,在形式化定义源语言、目标语言和编译过程的基础上,验证所述网络程序的源代码与目标平台代码的语义是否等同,若不等同,则编译失败。
2.根据权利要求1所述的内生安全的网络编译系统,其特征在于,还包括编译控制器;
所述编译控制器用于将所述裁决结果反馈给多个编译处理功能体;
所述编译处理功能体还用于比较所述裁决结果和自身输出的处理结果是否一致,若不一致,则对自身进行清洗和修复。
3.根据权利要求2所述的内生安全的网络编译系统,其特征在于,所述编译控制器还用于将所述裁决结果反馈给所述网络程序分发器;
所述网络程序分发器还用于依据所述裁决结果,调整网络程序分发策略,并在接收到下一个网络程序时,依据调整后的网络程序分发策略进行网络程序分发。
4.根据权利要求1所述的内生安全的网络编译系统,其特征在于,各个所述编译处理功能体均包括至少一个前端编译器、至少一个中端编译器、至少一个后端编译器和至少一个目标代码生成器,各个所述编译处理功能体的前端编译器、中端编译器、后端编译器、目标代码生成器之间的编排不同;
所述前端编译器,用于对用户开发的网络程序进行词法分析、语法分析、语义分析,并生成中间表示文件;
所述中端编译器,用于优化前端编译器输出的中间表示文件;
所述后端编译器,用于依据所述中端编译器输出的结果,生成与硬件相关的代码;
所述目标代码生成器,用于依据所述后端编译器输出的结果,生成目标平台代码。
5.根据权利要求4所述的内生安全的网络编译系统,其特征在于,任意一个或多个所述编译处理功能体中所述前端编译器、所述中端编译器、所述后端编译器和所述目标代码生成器中一个或多个为异构冗余结构。
6.根据权利要求5所述的内生安全的网络编译系统,其特征在于,所述前端编译器为异构冗余结构,所述前端编译器包括:第一分发模块、多个结构不同且功能相同的解析模块和第一裁决模块;
所述第一分发模块,用于在接收到网络程序时,将接收到的网络程序复制成多个相同的网络程序,并将多个相同的网络程序分发给多个所述解析模块;
所述解析模块,用于解析所述网络程序的源代码,然后依次进行词法分析、语法分析、语义分析,检查源代码是否存在错误,然后构建抽象语法树;
所述第一裁决模块,用于对多个所述解析模块输出的结果进行裁决,得到第一裁决结果,并输出所述第一裁决结果。
7.根据权利要求5所述的内生安全的网络编译系统,其特征在于,所述中端编译器为异构冗余结构,所述中端编译器包括:第二分发模块、多个结构不同且功能相同的优化模块和第二裁决模块;
所述第二分发模块,用于对所述前端编译器输出的中间表示进行复制,并将复制的所述前端编译器输出的结果发给多个所述优化模块;
所述优化模块,用于依据所述前端编译器输出的结果,对所述中间表示的数据进行各种优化,包括改善代码的运行时间、消除冗余计算,得到第一处理结果;
所述第二裁决模块,用于对多个所述第一处理结果进行裁决,得到第二裁决结果,并输出所述第二裁决结果。
8.根据权利要求5所述的内生安全的网络编译系统,其特征在于,所述后端编译器为异构冗余结构,所述后端编译器包括:第三分发模块、多个结构不同且功能相同的后端编译模块和第三裁决模块;
所述第三分发模块,用于对所述中端编译器输出的结果及优化后的中间表示进行复制,并将复制的所述中端编译器输出的结果及优化后的中间表示分发给多个所述后端编译模块;
所述后端编译模块,用于依据所述中端编译器输出的结果,对优化后的中间表示进行与硬件相关的后端编译处理,得到第二处理结果;
所述第三裁决模块,用于对多个所述第二处理结果进行裁决,得到第三裁决结果,并输出所述第三裁决结果。
9.根据权利要求5所述的内生安全的网络编译系统,其特征在于,所述目标代码生成器为异构冗余结构,所述目标代码生成器包括:第四分发模块、多个结构不同且功能相同的代码生成模块和第四裁决模块;
所述第四分发模块,用于对所述后端编译器输出的结果进行复制,并将复制的所述后端编译器输出的结果分发给多个所述代码生成模块;
所述代码生成模块,用于依据所述后端编译器输出的结果,将代码映射到目标指令集,生成机器语言,并且进行机器相关的代码优化;
所述第四裁决模块,用于对多个所述代码生成模块得到的目标代码进行裁决,得到第四裁决结果,并输出所述第四裁决结果。
10.一种内生安全的网络编译方法,其特征在于,该方法基于网络编译系统来实现,所述网络编译系统包括:网络程序分发器、编译裁决器、多个结构不同且功能相同的编译处理功能体,以及编译验证器;
通过所述网络程序分发器接收到网络程序,将接收到的网络程序复制成多个相同的网络程序,并将多个相同的网络程序分发给多个所述编译处理功能体;
通过所述编译处理功能体对所述网络程序进行编译处理,得到目标平台代码,并输出所述目标平台代码;
通过所述编译裁决器接收多个所述编译处理功能体输出的目标平台代码,并对多个所述编译处理功能体输出的目标平台代码进行裁决,得到裁决结果;
通过所述编译验证器采取形式化验证方法,在形式化定义源语言、目标语言和编译过程的基础上,验证所述网络程序的源代码与目标平台代码的语义是否等同,若不等同,则编译失败。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310243318.1A CN115955365A (zh) | 2023-03-14 | 2023-03-14 | 一种内生安全的网络编译系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310243318.1A CN115955365A (zh) | 2023-03-14 | 2023-03-14 | 一种内生安全的网络编译系统及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115955365A true CN115955365A (zh) | 2023-04-11 |
Family
ID=87282853
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310243318.1A Pending CN115955365A (zh) | 2023-03-14 | 2023-03-14 | 一种内生安全的网络编译系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115955365A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116610455A (zh) * | 2023-07-18 | 2023-08-18 | 之江实验室 | 一种可编程网元设备的资源约束描述系统及方法 |
CN116737130A (zh) * | 2023-08-15 | 2023-09-12 | 之江实验室 | 面向模态中间表示的编译方法、系统、设备和存储介质 |
CN116860323A (zh) * | 2023-09-05 | 2023-10-10 | 之江实验室 | 一种基于p4的编译及fpga配置方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1157959A (zh) * | 1995-12-08 | 1997-08-27 | 太阳微系统有限公司 | 受托编译中性结构程序版本产生特定结构的系统和方法 |
US20160342398A1 (en) * | 2015-05-22 | 2016-11-24 | Alan A. Yelsey | Dynamic Semiotic Systemic Knowledge Compiler System and Methods |
CN109508178A (zh) * | 2018-09-27 | 2019-03-22 | 咪咕文化科技有限公司 | 一种程序开发方法及装置 |
CN111107098A (zh) * | 2019-12-27 | 2020-05-05 | 中国人民解放军战略支援部队信息工程大学 | 一种内生安全的网络功能基础平台及数据处理方法 |
CN111913688A (zh) * | 2019-05-08 | 2020-11-10 | 北京火星人视野科技有限公司 | 一种程序开发方法及系统 |
CN114398683A (zh) * | 2022-03-24 | 2022-04-26 | 之江实验室 | 一种基于异构子系统的内生安全数据库存储方法及装置 |
CN115186268A (zh) * | 2022-07-12 | 2022-10-14 | 国网江苏省电力有限公司信息通信分公司 | 面向内生安全架构的安全性度量方法、装置及存储介质 |
CN115562672A (zh) * | 2022-09-21 | 2023-01-03 | 湖南泛联新安信息科技有限公司 | 源代码自动编译方法、编译系统、电子设备及存储介质 |
-
2023
- 2023-03-14 CN CN202310243318.1A patent/CN115955365A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1157959A (zh) * | 1995-12-08 | 1997-08-27 | 太阳微系统有限公司 | 受托编译中性结构程序版本产生特定结构的系统和方法 |
US20160342398A1 (en) * | 2015-05-22 | 2016-11-24 | Alan A. Yelsey | Dynamic Semiotic Systemic Knowledge Compiler System and Methods |
CN109508178A (zh) * | 2018-09-27 | 2019-03-22 | 咪咕文化科技有限公司 | 一种程序开发方法及装置 |
CN111913688A (zh) * | 2019-05-08 | 2020-11-10 | 北京火星人视野科技有限公司 | 一种程序开发方法及系统 |
CN111107098A (zh) * | 2019-12-27 | 2020-05-05 | 中国人民解放军战略支援部队信息工程大学 | 一种内生安全的网络功能基础平台及数据处理方法 |
CN114398683A (zh) * | 2022-03-24 | 2022-04-26 | 之江实验室 | 一种基于异构子系统的内生安全数据库存储方法及装置 |
CN115186268A (zh) * | 2022-07-12 | 2022-10-14 | 国网江苏省电力有限公司信息通信分公司 | 面向内生安全架构的安全性度量方法、装置及存储介质 |
CN115562672A (zh) * | 2022-09-21 | 2023-01-03 | 湖南泛联新安信息科技有限公司 | 源代码自动编译方法、编译系统、电子设备及存储介质 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116610455A (zh) * | 2023-07-18 | 2023-08-18 | 之江实验室 | 一种可编程网元设备的资源约束描述系统及方法 |
CN116610455B (zh) * | 2023-07-18 | 2023-12-05 | 之江实验室 | 一种可编程网元设备的资源约束描述系统及方法 |
CN116737130A (zh) * | 2023-08-15 | 2023-09-12 | 之江实验室 | 面向模态中间表示的编译方法、系统、设备和存储介质 |
CN116737130B (zh) * | 2023-08-15 | 2023-11-28 | 之江实验室 | 面向模态中间表示的编译方法、系统、设备和存储介质 |
CN116860323A (zh) * | 2023-09-05 | 2023-10-10 | 之江实验室 | 一种基于p4的编译及fpga配置方法 |
CN116860323B (zh) * | 2023-09-05 | 2023-12-22 | 之江实验室 | 一种基于p4的编译及fpga配置方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115955365A (zh) | 一种内生安全的网络编译系统及方法 | |
Alur et al. | Visibly pushdown languages | |
CN111406379A (zh) | 用于可证实计算的类似c的智能合约的算术增强 | |
Myreen et al. | Proof-producing synthesis of ML from higher-order logic | |
Strub et al. | Self-certification: Bootstrapping certified typecheckers in F* with Coq | |
Dragomir et al. | Compositional semantics and analysis of hierarchical block diagrams | |
First et al. | Diversity-driven automated formal verification | |
Gui et al. | Cross-language binary-source code matching with intermediate representations | |
Annenkov et al. | Extracting smart contracts tested and verified in Coq | |
Gadelha et al. | ESBMC 6.1: automated test case generation using bounded model checking | |
Wachter et al. | Probabilistic model checking modulo theories | |
Blazy et al. | Validating dominator trees for a fast, verified dominance test | |
Anureev et al. | C-programs verification based on mixed axiomatic semantics | |
Tan et al. | Verified propagation redundancy and compositional UNSAT checking in CakeML | |
Leung et al. | C-to-verilog translation validation | |
Gonzalez et al. | Almost rerere: Learning to resolve conflicts in distributed projects | |
Namjoshi et al. | A witnessing compiler: A proof of concept | |
Brady et al. | A verified staged interpreter is a verified compiler | |
Blanchard et al. | Logic against ghosts: comparison of two proof approaches for a list module | |
Barthe et al. | Certificate translation in abstract interpretation | |
Oe et al. | Fast and flexible proof checking for SMT | |
Amorim et al. | Deep priority conflicts in the wild: a pilot study | |
Belo Lourenço et al. | Formalizing single-assignment program verification: An adaptation-complete approach | |
Zhang et al. | Formal verification of optimizing compilers | |
Yasutake et al. | Actario: A framework for reasoning about actor systems |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20230411 |
|
RJ01 | Rejection of invention patent application after publication |