多模态工业互联网络主动认知内生安全技术规范_第1页
多模态工业互联网络主动认知内生安全技术规范_第2页
多模态工业互联网络主动认知内生安全技术规范_第3页
多模态工业互联网络主动认知内生安全技术规范_第4页
多模态工业互联网络主动认知内生安全技术规范_第5页
已阅读5页,还剩71页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1T/JSHLW003—2025多模态工业互联网络主动认知内生安全技术规范本标准规定了工业网络设备可信身份认证与访问控制平台的框架模型、数据接入接口技术要求等相关内容。本标准规定了工业网络针对DoS/DDoS网络攻击的检测以及防御机制、硬件需求、系统架构等相关内容。本标准适用于工业网络设备可信身份认证与访问控制平台的应用开发、工业网络设备和系统子模块的接入、数据采集与处理接口的开发。本标准适用于工业网络环境下针对外部网络攻击的检测以及防御平台的设计以及组建。其他场合下的工业网络设备可信身份认证与访问控制平台框架以及对网络攻击的监控、缓解机制,可参照本标准执行。2规范性引用文件下列文件中的内容通过文中的规范性引用应用而构成本文件必不可少的条款。其中,注日期的引用文件,仅该日期对应的版本适用于本文件;不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件。YD/T3844-2021工业互联网平台应用管理接口要求AII/001-2018工业互联网平台接口模型GB/T33137-2016基于传感器的产品监测软件集成接口规范GB/T34068-2017物联网总体技术智能传感器接口规范GB/T34069-2017物联网总体技术智能传感器特性与分类GB/T42573-2023信息安全技术网络身份服务安全技术要求GB/T31916.2-2018信息技术云数据存储和管理GB/T43779-2024网络安全技术基于密码令牌的主叫用户可信身份鉴别技术规范GB/T25062-2010信息安全技术鉴别与授权基于角色的访问控制模型与管理规范GB/T31491-2015无线网络访问控制技术规范GB/T26230-2010信息技术系统间远程通信和信息交换无线高速率超宽带媒体访问控制和物理层接口规范GB/T38641-2020信息技术系统间远程通信和信息交换低功耗广域网媒体访问控制层和物理层规范GB/T37027-2018信息安全技术网络攻击定义及描述规范GB/T22080-2016信息技术安全技术信息安全管理体系要求GB/T30279-2020信息安全技术网络安全漏洞分类分级指南2T/JSHLW003—20253术语、定义和缩略词3.1术语和定义YD/T3844-2021、AII/001-2018、GB/T33137-2016、GB/T34068-2017、GB/T34069-2017、GB/T42573-2023、GB/T31916.2-2018、GB/T43779-2024、GB/T25062-2010、GB/T31491-2015、GB/T26230-2010、GB/T37027-2018、GB/T22080-2016、GB/T30279-2020以及GB/T38641-2020中界定的术语和定义,及以下术语和定义适用于本文件。3.1.1工业互联网平台IndustrialInternetPlatform工业互联网平台是面向工业数字化、网络化、智能化需求,构建基于数据采集、汇聚、分析的服务体系,支撑工业资源在连接、弹性供给、高效配置的工业云平台。3.1.2传感设备SensorDevice连接传感器,具有通信接口的数据采集硬件设备。3.1.3采集模块AcquisitionModule从传感设备通信接口获取信息的计算机程序。3.1.4表述性状态转移RepresentationalStateTransfer一种针对网络应用的设计和开发方式,指的是一组架构约束条件和原则,可以降低开发的复杂性,提高系统的可伸缩性。3.1.5远程过程调用RemoteProcedureCall一种通过网络从远程计算机程序上请求服务,通过接口调用远程服务进程中函数的方3.1.6角色身份Principals主体的标识属性,可以是任何形式的标识,如用户名、邮箱等。3.1.7证明/凭证Credentials主体所持有的、只有其知晓的安全值,例如密码、数字证书等。3.1.8工业串行通信协议ModbusTCP/IP运行在TCP/IP协议之上的Modbus工业串行通信协议。3T/JSHLW003—20253.1.9访问控制策略AccessControlPolicy由应用程序确定的角色与资源之间的绑定关系。3.1.10授权管理PrivilegeManagement对主体与角色之间的分配关系进行管理。3.1.11拒绝服务攻击DenialofServiceAttack任何使当前服务可用性降低或者失去可用性的干涉均称为拒绝服务攻击3.1.12分布式拒绝服务攻击DistributedDenialofServiceAttack分布式拒绝服务攻击是指处于不同位置的多个攻击者同时向一个或数个目标发动拒绝服务攻击,或者一个攻击者控制了位于不同位置的多台机器并利用这些机器对受害者同时实施拒绝服务攻击。3.1.13深度学习DeepLearning深度学习是机器学习的一个分支,利用多层神经网络模型通过大量数据进行自动特征提取和模式识别,用于解决如图像识别、语音处理等复杂任务。深度学习通常能获得比传统方法更高的准确度和鲁棒3.1.14整数线性规划IntegerLinearProgramming整数线性规划(IntegerLinearProgramming,ILP)是一类优化问题,其中决策变量要求是整数,并且目标函数和约束条件都是线性的。常用于许多实际问题中,例如生产调度、资源分配、运输问题和网络设计等。3.1.15联邦学习FederatedLearning联邦学习(FederatedLearning)是一种分布式机器学习方法,旨在在多个设备或数据源之间进行联合建模,而无需集中收集或共享数据。它允许数据保留在本地设备上,通过在本地训练模型并仅共享模型参数(如权重)或梯度来进行学习,从而保护数据隐私和安全。3.2缩略词下列缩略语适用于本文件HTTP,超文本传输协议(HyperTextTransferProtocol)REST,表述性状态转移(RepresentationalStateTransfer)RPC,远程过程调用(RemoteProcedureCall)URI,统一资源标识符(UniformResourceIdentifier)JSON,JavaScript对象表示法(JavaScriptObjectNotation)4T/JSHLW003—2025XML,可扩展标记语言(eXtensibleMarkupLanguage)SSL,安全套接层(SecureSocketsLayer)TLS,传输层安全(TransportLayerSecurity)PLC,可编程逻辑控制器(ProgrammableLogicController)NIC,网络接口控制器(NetworkInterfaceController)RTP,实时传输协议(Real-timeTransportProtocol)RTCP,实时传输控制协议(Real-timeTransportControlProtocol)DoS,拒绝服务(DenialofService)DDoS,分布式拒绝服务(DistributedDenialofService)P4,一种专为网络设备设计的编程语言(ProgrammingProtocol-IndependentPacketProcessors)4系统架构多模态工业互联网络主动认知安防平台应包括工业网络设备可信身份认证与访问控制组件、DoS/DDoS攻击检测与防御组件两个关键组件。4.1工业网络设备可信身份认证与访问控制组件系统架构本标准针对工业网络模态设备可信身份入网认证和访问控制,提出了可信身份认证和访问控制系统,包含多维度指纹提取,多模态数据感知和时空频一致性验证等关键技术,支持对5种工业网络模态设备的设备可信认证和使用人员的可信身份认证与访问控制。该系统的架构和网络拓扑如下图所示,该架构支持Modbus,Ethernet,Ethercat,Profinet和TSN等模态设备的可信认证。5T/JSHLW003—20254.2DoS/DDoS攻击检测与防御组件系统架构本标准基于可编程交换机提出了一系列新式的原语防御设计以实现线速度的流量分析检测,同时增加边缘服务器调整整体防御原语的最佳放置策略,并提出了联邦学习的整体框架,通过边缘服务器、中心服务器的合作训练以达到更好的防御效果,模块整体的系统架构图如下所示。5工业网络设备可信身份认证与访问控制组件5.1组件基础服务模块组件基础服务模块应为可信身份认证与访问控制平台提供基本的系统支撑保障,支持各类工业设备和角色的接入,涵盖设备管理、数据管理、服务管理和安全访问控制等基础功能。基础框架应采用Spring架构,但不限于此,亦可扩展至SpringBoot框架,或基于SpringCloud实现分布式服务。基础服务模块应包括设备管理模块、数据管理模块、用户管理模块以及安全与认证模块,其技术标准如下。5.1.1设备管理模块设备管理模块应负责工业网络设备可信身份认证与访问控制平台中的设备管理。该模块应支持管理端自定义的设备注册认证、设备信息的增删改操作,并基于多层级用户角色、设备所处的时间、空间以6T/JSHLW003—2025及频域一致性,实现设备权限管理功能。主要包括以下功能:设备权限注册与验证、权限分组与统计、设备操作审核、运行维护记录查询、可视化实时监控等。其中,设备权限注册指的是注册设备在安全环境中运行所需的条件,包括时间、空间、网络环境等。在数据安全与网络安全方面,设备管理模块应支持基于国产密码方案的加密传输,保障数据传输安全。该模块还应实现设备的统一接入管理,并对可能遭受入侵的设备进行物理隔离,从而保护自治系统内其他节点的安全性。5.1.2数据管理模块数据管理模块的主要功能是管理工业设备可信身份认证与访问控制平台中的各类数据。通过建立统一的数据访问接口,屏蔽底层异构的数据格式和存储方式,使得数据访问操作实现统一化,从而提高平台的效率和兼容性。在数据安全与网络安全方面,数据管理模块应通过数字签名、脱敏处理、加密等技术手段,确保平台中数据在全生命周期内的安全性与可信性。5.1.3用户管理模块用户管理模块负责工业网络设备可信身份认证与访问控制平台中的用户相关管理。该模块应支持用户创建、用户审核、角色创建、角色权限分配、用户角色分配、用户信息更改及用户信息展示等基础功能,并应基于角色访问控制(RBAC)技术实现用户对资源的限制访问。在用户管理服务中,用户审核注册、用户角色分配和角色权限分配应符合RBAC规范。用户管理系统的对象应包括资源(如工业设备和系统中的其他资源)、权限、用户和角色,主要操作包括:角色权限分配和用户角色分配。权限是访问资源与访问策略的绑定。访问策略包括角色访问策略和设备访问策略,只有同时符合这两种访问策略,用户才能访问相应的设备资源。角色权限分配将权限与角色进行映射,而用户角色分配则将用户与角色进行关联,从而实现用户对资源的控制访问。5.1.4安全和认证模块安全和认证模块负责工业网络设备的可信身份认证与访问控制平台中用户和设备相关数据的保护、身份认证和访问控制等功能,包括安全类接口和认证类接口。安全类接口安全类接口应涵盖身份认证、权限管理、访问控制、密钥管理、数据加解密、数据保护、业务操作合法性、业务连续性、安全管理和安全处置等多个类型。具体要求如下:身份认证类至少应包含:获取认证信息、上传认证信息等接口。权限管理类至少应包含:获取权限、授予权限、删除权限等接口。访问控制类至少应包含:获取权限资源等接口。密钥管理类至少应包含:密钥上传、密钥删除等接口。数据加解密类至少应包含:数据加密、数据解密等接口。数据保护类至少应包含数据脱敏、数据审查、数据安全防御接口;业务操作合法性类至少应包含业务行为监测、分析、建模,异常行为预警接口;业务连续性类至少应包含数据备份、业务平台容灾接口;安全管理类至少应包含事件集中管理、安全态势、通报预警接口;安全处置类至少应包含安全演练、自动化智能处置接口接口支持至少应包含SSL、TSL、SHA2、对称加密算法和方式。7T/JSHLW003—2025设备认证接口设备认证类至少应包含以下接口:获取认证信息、删除认证信息、验证认证信息等接口。6DoS/DDoS攻击检测与防御组件6.1组件基础服务模块组件基础服务模块保证了组件的基本功能。DoS/DDoS攻击检测与防御组件主要应用于网络流量的检测上,支持低延时、高精度的网络流量检测,且保证了面对新型的攻击方式能够快速检测并且做出防御措施。模块的实现需要硬件层面的支持,需至少保证一台可编程交换机(推荐使用IntelTofino架构,但不限于此以及多台服务器组成的边缘服务器集群(集群的数量可自由调整,但最少应满足三台及以上)。基础服务模块包括高速流量检测以及防御模块、分布式异常数据学习模块、异常数据检测模块。6.1.1高速流量检测以及防御模块该模块需要可编程交换机在硬件层面提供支持。高速流量检测以及防御模块主要负责在网络当中以线速度分析所有经过指定链路(交换机)的所有流量数据,该模块支持根据预写入分析策略对网络数据包进行分析判断,并根据分析结果对数据包进行特定的处理。对于当前策略无法判断的流量数据,该模块还应负责将该流量转发至边缘服务器做进一步判断。因此,该模块还应至少支持三种基本的流量转发操作:1)Drop:丢弃数据包(可用于异常流量)2)Forward:正常转发数据包(可用于正常流量)3)Confuse:将该数据包转发至边缘服务器(主要针对无法判断的数据包)为了应对多种DoS/DDoS攻击,模块还应具备实时更新分析策略的功能,提供用以更改策略的接口。从而实现低延迟,面对多种类攻击的实时攻击检测防御。为了实现这一流程,可编程交换机需要对数据包进行适当的解析工作,推荐将数据数据包解析为如下部分,其中每个部分的解析要求如下:1)ethernet_t解析含义解析长度(单位:bit)48源MAC地址48以太网类型2)ipv4解析含义解析长度(单位:bit)源IP地址32目的IP地址32版本4IP报文头部长度4服务质量控制(优先级、延迟等)88T/JSHLW003—2025整个IP数据包的长度标识分片数据包的ID标志位3当前数据包在整个数据流当中的相对位置数据包的生存时间8IP数据包的上层协议类型8IP头部校验和3)tcp解析含义解析长度(单位:bit)源端口seq序列号32ack序列号32数据偏移量(TCP头部长度)4保留位4标志位1接收窗口大小校验和紧急指针6.1.2分布式异常数据学习模块该模块需要多台服务器构成的集群提供支持。分布式异常数据学习模块负责收集网络当中新出现的异常数据(高速流量检测以及防御模块根据现有策略无法正确识别的数据包并将其作为训练样本进行模型的训练迭代,通过将新的模型部署到异常数据边缘检测模型处来保证组件始终使用最贴合当前网络环境的异常检测模型。为了尽可能地不增加网络负载以及降低通信延迟,标准规定该模块采用联邦学习的架构,边缘服务器本地训练模型,只向中心服务器上传训练得到的参数,中心服务器进行微调之后下发新的模型参数,以此达到上述目的。6.1.3异常数据边缘检测模块该模块由多台服务器构成的边缘服务器集群构成。异常数据边缘检测模块的主要功能是对高速流量检测以及防御模块无法根据已有策略分析的流量数据进行判断,该功能主要通过部署于服务器上的异常检测模型来实现(诸如机器学习的随机森林模型,深度学习的CNN模型等等通过预训练的模型对流量进行分类,再根据分类结果制定对应的转发操作,并更新高速流量检测以及防御模块当中的分析策略(以便再次遇到同类数据时可以快速直接判断,9T/JSHLW003—2025为了实现上述功能,模块应支持P4RuntimeAPI以接收网络数据包以及更新高速流量检测以及防御模块当中的策略,同时在硬件层面上,应保证能够正常部署异常检测模型(满足内存大小以及CPU计算能力等基本要求)。7系统关键技术7.1工业网络设备可信身份认证与访问控制组件关键技术在综合考虑工业网络设备可信身份认证与访问控制平台基础服务的基础上,针对恶意设备接入和访问权限滥用的威胁,本标准提出了基于多模多维信息一致性的可信身份认证技术和基于细粒度时空频约束的精细访问控制技术,以实现网络内生的设备可信认证和精细化访问控制。以下定义了平台关键技术标准和方法。7.1.1基于多模多维信息一致性的可信身份认证技术本标准针对工业互联网多模态网络中设备数量庞大、类型繁多所带来的设备可信问题,规范了基于多模态、多维度指纹信息的设备可信身份认证方法,以实现网络内生的设备可信认证。多维度指纹提取和验证技术规范了基于终端设备不可篡改或克隆的物理特征,跨环境、跨设备的高效物理层信号指纹提取技术。该技术与通信内容无关,结合终端系统特征,提供难以伪造的可靠终端标识,实现快速、实时的特征匹配与验证。多模态数据精准自适应感知技术根据工业互联网感知数据分析结果自适应调整感知模式,建模分析不同模态数据和设备物理身份及网络行为的相关性,建立多模态感知数据在时空频多个维度上的语义连接,为不同的工业设备提供可信身份相关多模态数据的准确、高效感知信息。时空频信息一致性验证技术该技术通过多维度、多层次获取各个模态数据的时间、空间和频域语义信息,旨在实现模态内自我校验与模态间互认证的目标,从而克服时空频一致性验证中的测不准效应。通过这一技术,可以为不同的工业应用提供可靠的设备可信身份认证。7.1.2基于细粒度时空频约束的精细访问控制技术本标准针对工业互联网多模态网络中待访问数据资源的规模庞大、类型复杂、以及安全需求差异大的问题,规范了基于时空频约束的访问控制机制,实现了网络内生的精细化访问控制。时空频数据域安全等级划分技术本标准旨在规范工业互联网数据域普适的细粒度安全等级划分技术。该技术包括基于不同数据模态(如数据生成时间、数据类型、语义等多种维度)进行数据安全评估,结合系统架构和设备功能的安全性及数据泄露风险分析,提出动态安全等级调整策略,能够应对时空频数据变化和安全性冲突问题。细粒度时空频约束访问策略技术T/JSHLW003—2025本标准规范了工业互联网数据域普适的细粒度时空频约束访问策略技术。该技术包括使用机器学习和统计方法分析不同时空频条件下,基于用户身份和属性信息的访问频次和效率。通过自动化分组用户和资源,优化访问控制策略,以实现更高效的资源管理和访问控制。时空频约束实时可信验证技术本标准针对工业互联网环境中接入设备变化复杂、访问人员多变的特点,规范了高效的时空频约束身份可信验证机制。此机制要求在访问控制中,验证访问行为的时间、空间、频域信息,以及访问者的身份信息,从而确保访问请求的可信性。7.2DoS/DDoS攻击检测与防御组件关键技术7.2.1基于可编程交换机的线速度流量检测技术低延迟的网络流量实时检测依托于现在最先进的可编程硬件--可编程交换机之上,可编程交换机通过专用集成电路设计,允许用户通过P4程序直接在网络层实现自定义操作,本标准基于此提出了基于可编程交换机的线速度流量检测技术,其中包括对复杂P4程序进行原语级别的封装设计、可编程交换机内部的自适应调整防御机制,以及基于整数规划的最佳原语放置技术。复杂P4程序的原语封装设计标准为了进一步简化部署P4程序的困难,规范部署程序的方式,将复杂的P4代码以功能模块的方式整合为原语,每一种原语代表了可编程交换机当中的一些统计性的功能(以COUNT原语为例,表示统计具有某种特征的数据包个数)。这些原语转而替代P4代码作为基本的编程组件参与到模块设计,以实现更便于理解的代码设计。自适应调整防御机制为了应对多种攻击,标准提出了自适应调整防御机制(Monitor原语实时统计当前数据包的各种特征数据,根据特征的不同启用不同的防御策略。该机制支持将多种策略同时部署至可编程交换机上,根据不同的流量特征调用对应的防御措施,提高防御机制的灵活性。基于整数规划的最佳原语放置技术考虑到可编程交换机计算存储资源极其有限,无法存储过多的防御策略,本标准通过系将其规范为0-1整数线性规划(ILP)问题,并通过求解器得到最优解的方式来确保最佳原语放置(部分原语直接部署于可编程交换机,保证可编程交换机资源饱和的情况下,将其他原语卸载到边缘服务器端)。7.2.2基于联邦学习架构的模型更新方法标准定义了联邦学习训练框架,用于持续学习网络状态并更新集群服务器上部署的原始模型。该方法具有两大优势1.保证了多台边缘服务器上都具有相应的本地模型,避免所有流量分析任务集中于某台服务器,造成高延迟。2.模型的训练过程都在本地完成,联邦学习进行模型更新只需要向中心服务器上传本地模型的参数即可,大大降低网络带宽消耗。该方法的技术路线如图:T/JSHLW003—20257.2.3基于深度学习的异常检测方法为了进一步提高对于异常流量分析的能力,标准提出了使用深度学习模型对可编程交换机无法处理的数据进行进一步分析。深度学习当中用于异常检测的模型非常多,本标准并不限定深度学习模型。借助深度学习模型对网络流量数据进行进一步挖掘可以得到较为精确的分类结果,以此辅助可编程交换机的流量分析。8接口开发规范标准规范所有模块之间,组件之间的接口开发都应遵循以下原则:1)单一职责原则:每个接口应专注于特定的验证任务,便于工业物联网设备状态的追踪和审计,同时能够更好地进行访问控制和权限管理。出现安全事故时,可快速定位到具体的验证环节。2)开放封闭原则:接口设计需要考虑未来的扩展性,新增的安全要求、验证机制或设备类型的加入,不应影响现有的验证流程。3)里氏替换原则:在升级验证机制时,新的验证方式应能够完全覆盖旧的验证场景,并保证系统的兼容性。4)接口隔离原则:不同类型的设备和不同级别的验证需求应使用不同的接口。这样可以最小化每个接口的攻击面,同时便于实施细粒度的安全控制。5)依赖倒置原则:接口应依赖于抽象的安全策略和验证规则,而非具体的实现细节。当安全策略需要调整时,仅需修改策略定义,无需改变接口本身。6)最少知识原则:验证接口应仅暴露必要的信息,所有内部的验证细节和安全策略执行过程应对外部不可见。调用方只需了解如何正确使用接口进行验证,而无需关心具体的验证机制。T/JSHLW003—2025基础服务接口规范A.1设备管理服务接口1.工业互联网设备加入接口路由地址/industry/createDevice接口功能从管理端加入对应工业互联网设备参数realm(String)域name(String)设备名字remark(String)设备备注type(String)网络类型id(String)设备idfingerprint(String)设备指纹返回无2.工业互联网设备删除接口路由地址/industry/delDevice接口功能从管理端删除对应工业互联网设备参数id(String)设备id返回无3.工业互联网设备更新接口路由地址/industry/updateDevice接口功能从管理端更新工业互联网设备状态T/JSHLW003—2025参数id(String)设备idname(String)设备名字remark(String)设备备注返回无4.工业互联网设备列表展示接口路由地址/industry/listDevice接口功能从管理端获取工业互联网设备列表参数offset(Integer)页面偏移量limit(Integer)页面大小返回res(Result<List<IndNetworkDeviceRes>>)物联网设备列表5.时空频信息创建接口路由地址/tsf/createTsf接口功能创建人员或设备对应的时空频信息参数type(Byte)指名是设备还是人员realm(String)域devId(String)设备iduserId(String)用户idtime(String)时间space(String)空间返回无6.时空频信息删除T/JSHLW003—2025接口路由地址/tsf/delTsf接口功能删除人员或设备对应的时空频信息参数id(String)时空频id返回无7.时空频信息更新接口路由地址/tsf/updateTsf接口功能更新时空频信息参数id(String)时空频idtime(String)时间space(String)空间返回无8.时空频信息列表展示接口路由地址/tsf/listTsf接口功能从管理端获取时空频列表参数offset(Integer)页面偏移量limit(Integer)页面大小返回res(Result<List<TsfRes>>)时空频列表A.2用户管理服务接口1.部门创建接口路由地址/org/createOrgT/JSHLW003—2025接口功能创建部门参数name(String)部门名字chargeUserId(String)创建用户名remark(String)部门说明返回无2.部门删除接口路由地址/org/delOrg接口功能删除部门参数id(String)部门iddelSubTree(int)子部门删除策略返回无3.部门更新接口路由地址/org/update接口功能更新部门信息参数name(String)部门名字chargeUserId(String)修改用户名remark(String)部门说明返回无4.部门中添加用户接口路由地址/org/add/userT/JSHLW003—2025接口功能部门中添加用户参数orgId部门iduserIds(Set<String>)添加用户id返回无5.部门中移除用户接口路由地址/org/remove/user接口功能部门中移除用户参数orgId部门iduserIds(Set<String>)移除用户id返回无6.查询机用户列表接口路由地址/serviceUser/list接口功能查询机用户列表参数q(String)查询机用户名roleId(String)角色身份offset(Integer)页面偏移量limit(Integer)页面大小返回res(Result<List<ServiceUserListResVo>>)机用户列表7.创建机用户接口路由地址/serviceUser/createT/JSHLW003—2025接口功能创建机用户参数serviceName(String)机用户名称remark(String)机用户描述返回无8.更新机用户接口路由地址/serviceUser/update接口功能更新机用户参数serviceName(String)机用户名称remark(String)机用户描述secret(String)密钥返回无9.删除机用户接口路由地址/serviceUser/del接口功能删除机用户参数id(String)用户id返回无10.机用户添加角色接口路由地址/serviceUser/add/role接口功能机用户添加角色参数serviceUserId(String)机用户idT/JSHLW003—2025roleIds(Set<String>)角色id返回无11.机用户删除角色接口路由地址/serviceUser/remove/role接口功能机用户删除角色参数serviceUserId(String)机用户idroleIds(Set<String>)角色id返回无12.每日用户数统计接口路由地址/stat/daily/users接口功能每日用户数统计参数startDate(String)开始日期endDate(String)结束日期返回res(Result<List<Integer>>)用户数量13.查询热门认证资源接口路由地址/stat/top/resources接口功能热门认证资源查询参数TopResourcesId(List<String>)资源id返回res(Result<List<TopResourcesStatResVo>>)热门认证资源14.每日登录次数统计T/JSHLW003—2025接口路由地址/stat/daily/logins接口功能每日登录次数统计参数startDate(String)开始日期endDate(String)结束日期type(int)资源类型返回res(Result<List<Integer>>)登录次数统计15.认证行为地理位置分布接口路由地址/stat/geo/logins接口功能认证行为地理位置分布参数date(String)日期返回res(Result<List<LoginsGeoStatResVo>>)地理位置A.3认证管理服务接口1.工业互联网设备认证接口路由地址/devAuth接口功能设备认证参数type(Integer)通信协议类型返回res(Result<Object>)设备认证结果2.人员认证接口路由地址/userAuth接口功能人员认证T/JSHLW003—2025参数userName(String)用户名Password(String)密码返回res(Result<Boolean>)人员认证结果3.获取存在的设备类型接口路由地址/getExistTypes接口功能获取存在的设备类型参数无返回res(Result<List<Integer>>)存在的设备类型4.远程启动电机接口路由地址/startMotor接口功能启动电机参数id(String)设备id返回无5.远程关闭电机接口路由地址/stopMotor接口功能关闭电机参数无返回无A.4安全防御服务接口1.工业互联网设备负载查询T/JSHLW003—2025接口路由地址/loadQuery接口功能检查设备的运作情况参数无返回res(Result<List<Integer>>)设备的工作负载(例如:cpu占用率)2.远程开启防御策略接口路由地址/startDefense接口功能开启防御策略参数无返回无3.远程变更防御策略接口路由地址/updatePolicy接口功能变更可编程交换机上的防御原语参数attackClass(String)攻击类型返回无4.查询检测模型实时检测结果接口路由地址/modelQuery接口功能查询模型对当前流量的分析结果参数无返回flowClass(String)流量种类T/JSHLW003—20255.查询防御策略执行情况接口路由地址/workQuery接口功能查询当前防御策略的执行具体情况参数无返回res(Result<List<WorkStatusTable>>)开启的防御原语以及对应的命中次数列表T/JSHLW003—2025可编程交换机原语代码B.1udp-flooddefense/*-*-P4_16-*-*/#include<core.p4>#include<v1model.p4>/*CONSTANTS*/constbit<16>TYPE_IPV4=0x800;constbit<8>TYPE_TCP=6;constbit<8>TYPE_UDP=17;#defineBLOOM_FILTER_ENTRIES4096#defineBLOOM_FILTER_BIT_WIDTH1/************************************************************************************************HEADERS************************************************************************************************************/typedefbit<9>egressSpec_t;typedefbit<48>macAddr_t;typedefbit<32>ip4Addr_t;headerethernet_t{macAddr_tdstAddr;macAddr_tsrcAddr;bit<16>etherType;}headeripv4_t{bit<4>bit<4>bit<8>bit<16>bit<16>bit<3>bit<13>version;ihl;diffserv;totalLen;identification;flags;fragOffset;bit<8>bit<8>bit<16>T/JSHLW003—2025ttl;protocol;hdrChecksum;ip4Addr_tsrcAddr;ip4Addr_tdstAddr;}headertcp_t{bit<16>srcPort;bit<16>dstPort;bit<32>seqNo;bit<32>ackNo;bit<4>bit<4>bit<1>bit<1>bit<1>bit<1>bit<1>bit<1>bit<1>bit<1>dataOffset;res;cwr;ece;urg;ack;psh;rst;syn;fin;bit<16>window;bit<16>checksum;bit<16>urgentPtr;}headerudp_t{bit<16>srcPort;bit<16>dstPort;bit<16>length_;bit<16>checksum;}structmetadata{/*empty*/}structheaders{ethernet_tipv4_ttcp_tudp_tethernet;ipv4;tcp;udp;T/JSHLW003—2025}/************************************************************************************************PARSER************************************************************************************************************/parserMyParser(packet_inpacket,outheadershdr,inoutmetadatameta,inoutstandard_metadata_tstandard_metadata){statestart{transitionparse_ethernet;}stateparse_ethernet{packet.extract(hdr.ethernet);transitionselect(hdr.ethernet.etherType){TYPE_IPV4:parse_ipv4;default:accept;}stateparse_ipv4{packet.extract(hdr.ipv4);transitionselect(tocol){TYPE_TCP:tcp;TYPE_UDP:udp;default:accept;}statetcp{packet.extract(hdr.tcp);transitionaccept;}stateudp{packet.extract(hdr.udp);transitionaccept;}T/JSHLW003—2025/*************************************************************************************CHECKSUMVERIFICATION**************************************************************************************/controlMyVerifyChecksum(inoutheadershdr,inoutmetadatameta){}/***************************************************************************************INGRESSPROCESSING********************************************************************************************/controlMyIngress(inoutheadershdr,inoutmetadatameta,inoutstandard_metadata_tstandard_metadata){register<bit<BLOOM_FILTER_BIT_WIDTH>>(BLOOM_FILTER_ENTRIES)bloom_filter_1;register<bit<BLOOM_FILTER_BIT_WIDTH>>(BLOOM_FILTER_ENTRIES)bloom_filter_2;bit<32>reg_pos_one;bit<32>reg_pos_two;bit<1>reg_val_one;bit<1>reg_val_two;bit<1>direction;register<bit<32>>(4096)syn_register;register<bit<32>>(4096)ack_register;counter(4096,CounterType.packets_and_bytes)synCounter;counter(4096,CounterType.packets_and_bytes)ackCounter;bit<32>reg_val_syn;bit<32>reg_val_ack;register<bit<32>>(4096)udp_register;register<bit<48>>(4096)udp_first_time_register;bit<32>reg_val_udp;bit<48>udp_rate;bit<48>time_first_udp;bit<48>udp_duration;bit<48>udp_cnt;actiondrop(){mark_to_drop(standard_metadata);}actioncompute_hashes(ip4Addr_tipAddr1,ip4Addr_tipAddr2){T/JSHLW003—2025//Getregisterposition//Setk=2,2memberfuctionshash(reg_pos_one,HashAlgorithm.crc16,(bit<32>)0,{ipAddr1,ipAddr2,tocol},(bit<32>)BLOOM_FILTER_ENTRIES);hash(reg_pos_two,HashAlgorithm.crc32,(bit<32>)0,{ipAddr1,ipAddr2,tocol},(bit<32>)BLOOM_FILTER_ENTRIES);}actionipv4_forward(macAddr_tdstAddr,egressSpec_tport){standard_metadata.egress_spec=port;hdr.ethernet.srcAddr=hdr.ethernet.dstAddr;hdr.ethernet.dstAddr=dstAddr;hdr.ipv4.ttl=hdr.ipv4.ttl-1;}tableipv4_lpm{key={hdr.ipv4.dstAddr:lpm;}actions={ipv4_forward;drop;NoAction;}size=1024;default_action=drop();}actionset_direction(bit<1>dir){direction=dir;}tablecheck_ports{key={standard_metadata.ingress_port:exact;standard_metadata.egress_spec:exact;T/JSHLW003—2025}actions={set_direction;NoAction;}size=1024;default_action=NoAction();}apply{if(hdr.ipv4.isValid()){ipv4_lpm.apply();direction=0;//defaultreg_val_syn=0;reg_val_ack=0;reg_val_udp=0;if(check_ports.apply().hit){//testandsetthebloomfilterif(direction==0){compute_hashes(hdr.ipv4.srcAddr,hdr.ipv4.dstAddr);}else{compute_hashes(hdr.ipv4.dstAddr,hdr.ipv4.srcAddr);}//Packetcomesfromoutsidenetworkif(direction==1){//UDPFloodDefenseif(hdr.udp.isValid()){bloom_filter_1.read(reg_val_one,reg_pos_one);bloom_filter_2.read(reg_val_two,reg_pos_two);if(reg_val_one==1&®_val_two==1){//udp_register++udp_register.read(reg_val_udp,reg_pos_one);reg_val_udp=reg_val_udp+1;udp_register.write(reg_pos_one,reg_val_udp);}else{bloom_filter_1.write(reg_pos_one,1);bloom_filter_2.write(reg_pos_two,1);//savestarttimeudp_first_time_register.write(reg_pos_one,standard_metadata.ingress_global_timestamp);}T/JSHLW003—2025//calculateudprateudp_first_time_register.read(time_first_udp,reg_pos_one);udp_duration=standard_metadata.ingress_global_timestamp-time_first_udp;udp_cnt=(bit<48>)reg_val_udp;udp_rate=1;//rate100packetsif(udp_rate*udp_duration<udp_cnt*100*1000){drop();}//SYNFloodDefense//Ifthereisasynweupdatethebloomfilterandaddtheentryif(hdr.tcp.isValid()){if(hdr.tcp.syn==1){//updatesyn_registerbloom_filter_1.read(reg_val_one,reg_pos_one);bloom_filter_2.read(reg_val_two,reg_pos_two);if(reg_val_one==1&®_val_two==1){syn_register.read(reg_val_syn,reg_pos_one);reg_val_syn=reg_val_syn+1;syn_register.write(reg_pos_one,reg_val_syn);//syn_register++synCounter.count(1);}else{bloom_filter_1.write(reg_pos_one,1);bloom_filter_2.write(reg_pos_two,1);}if(hdr.tcp.ack==1&&hdr.tcp.rst!=1){//updateack_registerbloom_filter_1.read(reg_val_one,reg_pos_one);bloom_filter_2.read(reg_val_two,reg_pos_two);if(reg_val_one==1&®_val_two==1){ack_register.read(reg_val_ack,reg_pos_one);reg_val_ack=reg_val_ack+1;ack_register.write(reg_pos_one,reg_val_ack);//ack_register++ackCounter.count(1);}T/JSHLW003—2025}if(reg_val_syn-reg_val_ack>=50){drop();}}//Packetcomesfromoutside}}}/*****************************************************************************************EGRESSPROCESSING********************************************************************************************/controlMyEgress(inoutheadershdr,inoutmetadatameta,inoutstandard_metadata_tstandard_metadata){}/**************************************************************************************CHECKSUMCOMPUTATION***************************************************************************************/controlMyComputeChecksum(inoutheadershdr,inoutmetadatameta){apply{update_checksum(hdr.ipv4.isValid(),{hdr.ipv4.version,hdr.ipv4.ihl,hdr.ipv4.diffserv,hdr.ipv4.totalLen,hdr.ipv4.identification,hdr.ipv4.flags,T/JSHLW003—2025hdr.ipv4.fragOffset,hdr.ipv4.ttl,tocol,hdr.ipv4.srcAddr,hdr.ipv4.dstAddr},hdr.ipv4.hdrChecksum,HashAlgorithm.csum16);}/************************************************************************************************DEPARSER********************************************************************************************************/controlMyDeparser(packet_outpacket,inheadershdr){apply{packet.emit(hdr.ethernet);packet.emit(hdr.ipv4);packet.emit(hdr.tcp);}/************************************************************************************************SWITCH********************************************************************************************************/V1Switch(MyParser(),MyVerifyChecksum(),MyIngress(),MyEgress(),MyComputeChecksum(),MyDeparser())main;B.2syn-flooddefense/*-*-P4_16-*-*/#include<core.p4>#include<v1model.p4>/*CONSTANTS*/T/JSHLW003—2025constbit<16>TYPE_IPV4=0x800;constbit<8>TYPE_TCP=6;#defineBLOOM_FILTER_ENTRIES4096#defineBLOOM_FILTER_BIT_WIDTH1/************************************************************************************************HEADERS************************************************************************************************************/typedefbit<9>egressSpec_t;typedefbit<48>macAddr_t;typedefbit<32>ip4Addr_t;headerethernet_t{macAddr_tdstAddr;macAddr_tsrcAddr;bit<16>etherType;}headeripv4_t{bit<4>bit<4>bit<8>bit<16>bit<16>bit<3>bit<13>bit<8>bit<8>bit<16>version;ihl;diffserv;totalLen;identification;flags;fragOffset;ttl;protocol;hdrChecksum;ip4Addr_tsrcAddr;ip4Addr_tdstAddr;}headertcp_t{bit<16>srcPort;bit<16>dstPort;bit<32>seqNo;bit<32>ackNo;bit<4>dataOffset;T/JSHLW003—2025bit<4>res;bit<1>cwr;bit<1>ece;bit<1>urg;bit<1>ack;bit<1>psh;bit<1>rst;bit<1>syn;bit<1>fin;bit<16>window;bit<16>checksum;bit<16>urgentPtr;}structmetadata{/*empty*/}structheaders{ethernet_tipv4_ttcp_t}ethernet;ipv4;tcp;/************************************************************************************************PARSER************************************************************************************************************/parserMyParser(packet_inpacket,outheadershdr,inoutmetadatameta,inoutstandard_metadata_tstandard_metadata){statestart{transitionparse_ethernet;}stateparse_ethernet{packet.extract(hdr.ethernet);transitionselect(hdr.ethernet.etherType){TYPE_IPV4:parse_ipv4;default:accept;}T/JSHLW003—2025}stateparse_ipv4{packet.extract(hdr.ipv4);transitionselect(tocol){TYPE_TCP:tcp;default:accept;}statetcp{packet.extract(hdr.tcp);transitionaccept;}/*************************************************************************************CHECKSUMVERIFICATION**************************************************************************************/controlMyVerifyChecksum(inoutheadershdr,inoutmetadatameta){}/***************************************************************************************INGRESSPROCESSING********************************************************************************************/controlMyIngress(inoutheadershdr,inoutmetadatameta,inoutstandard_metadata_tstandard_metadata){register<bit<BLOOM_FILTER_BIT_WIDTH>>(BLOOM_FILTER_ENTRIES)bloom_filter_1;register<bit<BLOOM_FILTER_BIT_WIDTH>>(BLOOM_FILTER_ENTRIES)bloom_filter_2;bit<32>reg_pos_one;bit<32>reg_pos_two;bit<1>reg_val_one;bit<1>reg_val_two;bit<1>direction;register<bit<32>>(4096)syn_register;register<bit<32>>(4096)ack_register;register<bit<48>>(4096)first_time_register;counter(4096,CounterType.packets_and_bytes)synCounter;T/JSHLW003—2025counter(4096,CounterType.packets_and_bytes)ackCounter;bit<32>reg_val_syn;bit<32>reg_val_ack;bit<48>time_first_syn;bit<48>syn_rate;bit<48>syn_duration;bit<48>syn_cnt;actiondrop(){mark_to_drop(standard_metadata);}actioncompute_hashes(ip4Addr_tipAddr1,ip4Addr_tipAddr2){//Getregisterposition//Setk=2,2memberfuctionshash(reg_pos_one,HashAlgorithm.crc16,(bit<32>)0,{ipAddr1,ipAddr2,tocol},(bit<32>)BLOOM_FILTER_ENTRIES);hash(reg_pos_two,HashAlgorithm.crc32,(bit<32>)0,{ipAddr1,ipAddr2,tocol},(bit<32>)BLOOM_FILTER_ENTRIES);}actionipv4_forward(macAddr_tdstAddr,egressSpec_tport){standard_metadata.egress_spec=port;hdr.ethernet.srcAddr=hdr.ethernet.dstAddr;hdr.ethernet.dstAddr=dstAddr;hdr.ipv4.ttl=hdr.ipv4.ttl-1;}tableipv4_lpm{key={hdr.ipv4.dstAddr:lpm;}actions={ipv4_forward;drop;T/JSHLW003—2025NoAction;}size=1024;default_action=drop();}actionset_direction(bit<1>dir){direction=dir;}tablecheck_ports{key={standard_metadata.ingress_port:exact;standard_metadata.egress_spec:exact;}actions={set_direction;NoAction;}size=1024;default_action=NoAction();}apply{if(hdr.ipv4.isValid()){ipv4_lpm.apply();if(hdr.tcp.isValid()){direction=0;//defaultreg_val_syn=0;reg_val_ack=0;if(check_ports.apply().hit){//testandsetthebloomfilterif(direction==0){compute_hashes(hdr.ipv4.srcAddr,hdr.ipv4.dstAddr);}else{compute_hashes(hdr.ipv4.dstAddr,hdr.ipv4.srcAddr);}//Packetcomesfromoutsidenetworkif(direction==1){//SYNFlood//Ifthereisasynweupdatethebl

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论