一种去中心化SDP控制器实现方法及计算机存储介质与流程

文档序号:30515162发布日期:2022-06-25 03:05阅读:205来源:国知局
一种去中心化SDP控制器实现方法及计算机存储介质与流程
一种去中心化sdp控制器实现方法及计算机存储介质
技术领域
1.本发明涉及网络安全技术领域,具体涉及一种去中心化sdp控制器实现方法及计算机存储介质。


背景技术:

2.传统的网络安全是基于防火墙的物理边界防御,也就是“内网”。随着云计算、移动互联网、ai大数据、iot物联网等新兴技术的不断兴起,传统安全边界在瓦解,企业it架构正在从“有边界”向“无边界”转变。过去服务器资源和办公设备都在内网,现在随着迁移上云、移动办公、物联网等应用,网络边界越来越模糊,业务应用场景越来越复杂,传统物理边界安全无法满足企业数字化转型的需求。因此,更加灵活、更加安全的软件定义边界sdp技术架构顺势而生。
3.sdp即“软件定义边界”,是国际云安全联盟csa于2013年提出的基于零信任理念的新一代网络安全模型。
4.sdp安全模型由3大组件构成,分别是:initiating sdp host,即ih;accepting sdp host,即ah;sdp controller,即sdp控制器。3大组件的关系分成两个平面:控制平面和数据平面。ah和ih都会连接到controller。ih和ah之间的连接是通过controller与安全控制信道的交互来管理的。该结构使得控制平面能够与数据平面保持分离,以便实现完全可扩展的安全系统。
5.但是,sdp安全模型中sdp controller与sdp host之间为单向零信任,无法让sdp controller与sdp host之间实现双向零信任。


技术实现要素:

6.本发明所要解决的技术问题是提供一种去中心化sdp控制器实现方法,让sdp控制器与sdp host之间实现双向零信任。
7.本发明解决上述技术问题的技术方案如下:
8.一种去中心化sdp控制器实现方法,包括如下步骤,
9.步骤一、基于sdp技术构架,创建sdp控制器以及sdp主机;
10.步骤二、设置区块链网络以及智能合约,将所述sdp控制器置于所述区块链上,将所述sdp主机置于所述区块链外;
11.步骤三、所述sdp主机通过sdp技术和/或所述智能合约与所述sdp控制器进行交互;
12.步骤四、所述sdp控制器通过sdp技术和/或所述智能合约对所述sdp服务进行鉴权;
13.步骤五、所述sdp控制器根据所述sdp主机的活跃状态以及网络策略生成sdp主机服务信息以及sdp主机会话信息。
14.本发明的有益效果是:传统sdp是单边零信任的,即sdp控制器对sdp主机是零信任
的,而sdp主机对sdp控制器是信任的;本发明通过将sdp控制器设置为区块链网络的智能合约上链,利用区块链技术让sdp主机对sdp控制器零信任;因此本专利技术能够在没有权威信任方的场景中实现sdp主机与sdp控制器之前的双向零信任。
15.在上述技术方案的基础上,本发明还可以做如下改进。
16.进一步,所述步骤四具体还包括,将所述sdp主机的区块链账号地址作为所述sdp主机的id。
17.进一步,所述步骤四还包括,使用nft的鉴权方法对所述sdp主机的访问权限进行管理。
18.进一步,所述步骤三具体为,所述sdp控制器记录所述sdp主机的活跃状态以及所述sdp主机的服务状态,所述sdp主机通过向所述sdp控制器发送交易请求来变更自己的活跃状态;所述sdp主机的活跃状态变更时,所述sdp控制器触发智能合约事件,所述sdp主机通过订阅被sdp控制器所触发的智能合约事件获知所述sdp主机的活跃状态变更信息以及所述sdp主机的服务状态变更信息。
19.进一步,所述交易请求包括登录请求、登出请求、获取活跃状态请求、活跃状态保持请求、获取服务信息请求以及获取会话信息请求。
20.采用上述进一步方案的有益效果是当sdp主机异常时,sdp主机可能无法发送登出消息给链上sdp控制器;本专利通过定期发送活跃状态保持请求给链上sdp控制器来处理sdp主机保活问题,而对于没有计时器机制的区块链来说,定期保活机制无法产生实质性的动作,sdp控制器以及sdp主机均需要通过检查有效期,使得已过期sdp主机不会对其它sdp主机产生影响。
21.进一步,为了降低sdp控制器管理的复杂度以及访问sdp控制器的计算消耗,为所述sdp控制器指定服务对象和/或为所述sdp控制器指定服务种类,根据所述sdp控制器所指定的服务对象和/或所述sdp控制器指定的服务种类将所述sdp控制器分为多个部署在所述区块链网络上的智能合约实例。
22.采用上述进一步方案的有益效果是通过按sdp主机范围划分,sdp控制器服务于一个指定范围内的sdp主机;或者,指定sdp控制器所管理的服务种类,这种分割方法可以有效降低sdp控制器权限管理的复杂度。
23.进一步,所述步骤二还包括,确定需要保护的服务,将需要保护的服务的服务信息登记在所述sdp控制器中,将需要保护的服务的端口信息和/或所述sdp主机的地址信息作为秘密信息进行加密。
24.进一步,所述步骤二还包括,对所述sdp主机的会话信息或所述sdp主机的会话信息中的秘密信息进行加密,将所述sdp主机的会话信息或所述sdp主机的会话信息中的秘密信息以密文的形式存储在所述智能合约里面,所述sdp主机存储有所述密文的解密秘钥和/或解密算法。
25.采用上述进一步方案的有益效果是通过使用以上方法,sdp主机和sdp控制器交互过程中,不会暴露sdp主机地址信息如ip、域名、端口等。sdp主机均使用区块链账号和链上sdp控制器交互,区块链账号是匿名的,不会暴露sdp主机信息。sdp控制器为智能合约,在网络中没有实体,也不会暴露访问它的sdp主机在网络中的地址信息。除此之外,链上sdp控制器可以将sdp会话中sdp连接发起主机ih和sdp连接接收主机ah的地址信息作为秘密信息,
以此来对其进行保护。通过这些方法,使得除sdp会话参与者外的任何实体都无法获得sdp连接发起主机ih与sdp连接接收主机ah会话双方的地址信息。
26.在上述技术方案的基础上,本发明还提供一种计算机存储介质,其具体方案如下:
27.一种计算机存储介质,包括存储器以及存储在所述存储器上的计算机程序,当所述计算机程序被执行时实现上述一种去中心化sdp控制器实现方法的方法步骤。
附图说明
28.图1为本发明的流程框图;
29.图2为本发明的架构图;
30.图3为sdp控制器与sdp连接接收主机之间的交互序列图;
31.图4为sdp控制器与sdp连接接收主机以及sdp连接发起主机之间的交互序列图。
具体实施方式
32.以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
33.本专利中所涉及的英文缩写以及相关名词解释如下:
34.sdp全称是software defined perimeter,即软件定义边界,是有国际云安全联盟csa于2013年提出的基于零信任(zero trust)理念的新一代网络安全技术架构。sdp控制器提供一个单向端口,接受终端的认证请求,对终端的设备状态、身份凭据、行为上下文进行判断;只有认证通过的认证的访问请求,控制器才会通知安全网关临时开放访问端口,接受终端的访问请求,并在访问过程中持续监控终端状态,发生访问或设备风险时进行实施阻断网关端口的关闭操作。
35.sdp controller:也叫sdp控制器,用于确定哪些sdp主机可以相互通信。
36.id:英文全称为identity document,是指身份标识号码。也称为序列号或帐号,是某个体系中相对唯一的编码,相当于是一种“身份证”在某一具体的事物中,身份标识号一般是不变的,至于用什么来标识该事物,则由设计者自己制定的规则来确定。
37.ih:全称为initiating hosts,即sdp连接发起主机。sdp连接发起主机ih与sdp控制器通信以请求它们可以连接的sdp连接接受主机ah列表。
38.ah:全称为accepting hosts,即sdp连接接收主机。默认情况下,sdp连接接受主机ah拒绝来自sdp控制器以外的所有主机的所有通信。只有在sdp控制器指示后,sdp连接接受主机才接受来自sdp连接发起主机的连接。
39.tls:传输层安全性协议,英语:transport layer security,缩写作tls,其前身为安全套接层secure sockets layer,缩写作ssl。tls是一种安全协议,目的是为互联网通信提供安全及数据完整性保障。网景公司netscape在1994年推出首版网页浏览器,网景导航者时,推出https协议,以ssl进行加密,这是ssl的起源。国际互联网工程任务组ietf将ssl进行标准化,1999年公布第一版tls标准文件。主要的网站也以这个协议来创建安全连线,发送数据。目前已成为互联网上保密通信的工业标准。
40.零信任代表了新一代的网络安全防护理念,它的关键在于打破默认的“信任”,用一句通俗的话来概括,就是“持续验证,永不信任”。默认不信任企业网络内外的任何人、设
备和系统,基于身份认证和授权重新构建访问控制的信任基础,从而确保身份可信、设备可信、应用可信和链路可信。基于零信任原则,可以保障办公系统的三个“安全”:终端安全、链路安全和访问控制安全。
41.nft:全称为non-fungible token,中文常翻译为“不可同质化代币/不可替代代币”。nft是区块链的一个条目,而区块链是类似于比特币等加密货币的去中心化数字账本技术。
42.erc-721标准/协议:区块链技术中的non-fungible token标准或者协议。
43.实施例1
44.如图1到2所示,本发明提供一种去中心化sdp控制器实现方法,包括如下步骤,
45.步骤一、基于sdp技术构架,创建sdp控制器以及sdp主机;
46.步骤二、设置区块链网络以及智能合约,将所述sdp控制器置于所述区块链上,将所述sdp主机置于所述区块链外;
47.步骤三、所述sdp主机通过sdp技术和/或所述智能合约与所述sdp控制器进行交互,所述sdp主机通过变更活跃状态获得所述sdp控制器的服务信息;
48.步骤四、所述sdp控制器通过sdp技术和/或所述智能合约对所述sdp服务进行鉴权;
49.步骤五、所述sdp控制器根据所述sdp主机的活跃状态以及网络策略生成sdp主机服务信息和sdp主机会话信息;
50.步骤六、所述sdp主机根据所述sdp主机服务信息和sdp主机会话信息在多个所述sdp主机间建立会话。
51.具体地,所述sdp控制器记录所述sdp主机的活跃状态,所述sdp主机通过向所述sdp控制器发送交易请求来变更自己的活跃状态以及查询任意sdp主机的活跃状态;所述sdp主机的活跃状态变更时,所述sdp控制器触发智能合约事件,所述sdp主机通过订阅被sdp控制器所触发的智能合约事件获知所述sdp主机的活跃状态变更信息。此时的交易请求包括登录请求、登出请求、活跃状态保持请求以及获取活跃状态请求。
52.具体地,所述sdp控制器记录所述sdp服务信息和服务状态,所述sdp主机通过向所述sdp控制器发送交易请求来获取自己可访问和/或自己可提供的服务信息;所述sdp主机的活跃状态变更时,所述sdp控制器根据网络策略变更所述sdp服务状态,并触发智能合约事件,所述sdp主机通过订阅被sdp控制器所触发的智能合约事件获知所述sdp服务状态变更信息。此时的交易请求包括获取可访问和/或可提供的服务信息请求。
53.具体地,所述sdp控制器记录所述sdp主机间的会话信息,所述sdp主机通过向所述sdp控制器发送交易请求来获取自己参与的会话信息;所述sdp主机的活跃状态变更时,所述sdp控制器根据策略变更所述sdp会话信息,并触发智能合约事件,所述sdp主机通过订阅被sdp控制器所触发的智能合约事件获知所述sdp会话信息变更信息。此时的交易请求包括获取会话信息请求。
54.具体地,sdp控制器对sdp主机进行鉴权的方式可以是,将所述sdp主机的区块链账号地址作为所述sdp主机的id,所述sdp控制器将所述sdp主机的区块链账号登记在智能合约里面,所述sdp控制器通过识别所述sdp主机的id触发智能合约事件来对sdp主机进行身份验证。所述sdp控制器记录所述sdp主机的活跃状态,所述sdp主机通过向所述sdp控制器
发送交易请求来变更自己的活跃状态以及所述sdp主机的服务状态;所述sdp主机的活跃状态变更时,所述sdp控制器触发智能合约事件,所述sdp主机通过订阅被sdp控制器所触发的智能合约事件获知所述sdp主机的活跃状态变更信息以及所述sdp主机的服务状态变更信息。链上sdp控制器也可以使用did的校验方法对sdp主机进行校验。
55.did:即双重差分法,英文名differences-in-differences,别名“倍差法”,小名“差中差”。
56.具体地,sdp控制器对sdp主机进行鉴权的方式还可以是,将所述sdp主机的区块链账号地址作为所述sdp主机的id,使用nft的鉴权方法对所述sdp主机的访问权限进行管理。其具体方式为,将一个或多个sdp服务实例作为一个nft(non-fungible token)进行管理,仅该nft的所有者(owner)和/或该nft的被认可者(approved)和/或所有者的操作员(operator)有权限访问所述的sdp服务实例;其中,所述nft的所有者(owner)为ierc721标准/协议的ownerof返回的地址;所述nft的被认可者(approved)为ierc721标准/协议的getapproved返回的地址;所述所有者的操作员为(operator)ierc721标准/协议的isapprovedforall返回为true的地址。
57.具体地,所述sdp主机通过所述区块链网络向所述sdp控制器发送请求,所述sdp控制器通过更新sdp主机的状态变量和触发智能合约事件向sdp主机发送通知;所述sdp控制器使用sdp主机的区块链账号地址作为sdp主机的id,所述sdp控制器通过将sdp主机的区块链账号登记在智能合约里面的方式来对sdp主机进行鉴权;并替代sdp控制器和sdp主机间的单数据包授权。
58.对所述sdp主机的会话信息或所述sdp主机的会话信息中的秘密信息进行加密,将所述sdp主机的会话信息或所述sdp主机的会话信息中的秘密信息以密文的形式参与所述交互,并存储在所述智能合约里面,具有访问权限的所述sdp主机存储有所述密文的解密秘钥和/或解密算法。
59.如图3所示,确定需要保护的服务,将需要保护的服务的服务信息登记在所述sdp控制器中,将需要保护的服务的端口信息作为秘密信息进行加密存储。所述sdp控制器根据需要保护的服务的服务信息、所述sdp主机的活跃状态以及所述sdp主机的权限创建sdp主机会话,并为sdp主机会话分配会话密钥,所述会话密钥来自于所述sdp主机的秘密信息和/或需要保护的服务的秘密信息。对所述sdp主机的会话信息或所述sdp主机的会话信息中的秘密信息进行加密,将所述sdp主机的会话信息或所述sdp主机的会话信息中的秘密信息以密文的形式存储在所述智能合约里面,所述sdp主机存储有所述密文的解密秘钥和/或解密算法。具体地,链上sdp控制器记录每个ah的活跃状态。ah通过向链上sdp控制器智能合约发送交易请求来变更自己的活跃状态。这些交易包含以下信息:
60.登录请求:以指示该它是可用的,并且能够接受来自sdp控制器的其它消息;
61.登出请求:用于表示ah不再提供服务,不再接收来自sdp控制器的其它消息了;
62.活跃状态保持请求:表示其仍处于活跃状态。
63.ah活跃状态变更时,链上sdp控制器触发智能合约事件,ah通过订阅该事件获知该信息。
64.所述sdp控制器根据网络策略维护处于活跃状态的sdp主机信息以及sdp会话列表,所述sdp会话列表变更时,所述sdp控制器触发智能合约事件,所述sdp主机通过订阅所
述sdp控制器触发的智能合约事件来获知信息。
65.具体地,链上sdp控制器根据网络策略维护可用ah所保护的服务信息,ah通过智能合约调用获得该信息,并同步本地服务状态;当ah所保护服务信息变更时,链上sdp控制器触发智能合约事件;ah可以通过订阅该事件获知该信息。这里所述的服务信息为sdp规范或sdp协议等定义的服务信息。
66.如图4所示,所述sdp主机包括sdp连接发起主机以及sdp连接接收主机;所述sdp连接发起主机与所述sdp连接接收主机通过建立tcp连接以及双向tls握手进行数据交互。将所述sdp连接发起主机与所述sdp连接接收主机之间的私密会话信息以密文的形式存储在sdp控制器的智能合约里面,所述sdp连接发起主机以及所述sdp连接接收主机均存储有所述密文的解密秘钥和解密算法。其中,所述密文使用所述sdp连接发起主机以及所述sdp连接接收主机的解密秘钥和解密算法进行加密。
67.具体地,链上sdp控制器记录每个ih的活跃状态。ih通过向链上sdp控制器智能合约发送交易来变更自己的活跃状态,这些交易包含以下信息:
68.登录请求:用于表示ih服务已经就绪并希望加入sdp;
69.登出请求:用于表示ih将退出sdp;
70.活跃状态保持请求:表示其仍处于活跃状态。
71.ih活跃状态变更时,链上sdp控制器触发智能合约事件,所有sdp主机可以通过订阅该事件获知ih活跃状态变更。
72.链上sdp控制器根据网络策略维护活跃ih可访问服务信息,ih通过智能合约调用获得该信息;当ih可访问服务信息变更时,链上sdp控制器触发智能合约事件,ih可以通过订阅该事件获知该信息。
73.sdp会话有部分属性是ih和ah间的秘密信息,比如单页面应用种子。这些秘密信息必须以密文的形式存储在链上sdp控制器的智能合约里,该密文的解密秘钥和算法是相关ih和ah预先知道的。链上sdp控制器智能合约可以在创建sdp会话的策略中就以密文形式记录这些信息,也就是说该密文的形成是在链外执行的,链上sdp控制器无需掌握该密文的加密秘钥和算法,因此不会造成秘密泄露。
74.当某个秘密信息被多方共享时,该属性可以有多个密文副本,每个密文副本的解密秘钥和算法是其中一个或多个sdp主机预先知道的,即每个密文副本使用其中一个或多个sdp主机的解密秘钥和解密算法进行加密。
75.同时,链上sdp控制器根据该网络策略维护sdp会话列表;ih和ah通过智能合约调用获得该信息,并同步本地sdp会话列表。当sdp会话列表变更时,链上sdp控制器触发智能合约事件。相关ih和ah可以通过订阅该事件获知该信息。
76.所述网络策略可以为静态配置策略,所述静态配置策略由sdp控制器的操作员生成,在部署所述智能合约时,操作员将所述静态配置策略作为部署参数和/或程序代码写入所述智能合约中。
77.所述网络策略可以为静态配置策略,所述静态配置策略由sdp控制器的操作员生成,操作员通过发送区块链交易变更来部署所述sdp控制器中的静态配置策略;所述sdp控制器将操作员的账号地址记录在所述智能合约中,以进行权限检查;所述sdp控制器根据所述静态配置策略以及所述sdp主机的活跃状态来创建sdp会话。
78.具体地,ah所保护的服务信息、ih可访问的服务信息均可以是静态配置,该静态配置由sdp控制器操作员生成。在部署sdp控制器智能合约时,操作员可以将该静态配置作为部署参数或代码写入sdp控制智能合约中;操作员还可以通过发送区块链交易变更已部署的链上sdp控制器中的静态配置。链上sdp控制器可以将操作员的账号地址记录在智能合约中,以进行权限检查。sdp控制器根据该静态配置、ih和ah活跃状态、以及其它网络策略创建sdp会话;同时,sdp会话参数也通过静态配置产生。这里所说的其它网络策略可以是静态策略的一部分,或其它额外的网络策略。
79.当所述sdp主机发送活跃状态保持请求给所述sdp控制器时,所述sdp控制器更新服务有效期和sdp会话有效期;和/或所述sdp控制器收到任何一个交易请求都会检查所有sdp主机的活跃状态,所述sdp控制器对超过有效期且未发送活跃状态保持请求的sdp主机执行登出操作。
80.具体地,当ih或ah异常时,该ih和ah可能无法发送登出消息给链上sdp控制器,因此,要求ih和ah需要定期发送活跃状态保持请求给链上sdp控制器。然而,对于没有计时器机制的区块链来说,该保活机制无法产生实质性的动作。本专利提出如下两种方法来解决这种情况下sdp主机保活机制的问题:
81.方法一:ah服务信息以及ih可访问服务信息中均包含有效期,超过有效期后,服务不可用;同样sdp会话也有有效期,超过有效期后,sdp会话不可用;当ih和ah发送活跃状态保持请求给链上sdp控制器时,链上sdp控制器更新相应服务和sdp会话的有效期。
82.方法二:链上sdp控制器收到任何一个请求交易都会检查所有ah的活跃状态和ih的活跃状态,对于超过期限未发送活跃状态保持请求的ih和ah执行登出操作。
83.实施例2
84.本实施例是基于实施例1的基础上,本实施例提供一种计算机存储介质,包括存储器以及存储在所述存储器上的计算机程序,当所述计算机程序被执行时实现实施例1中所提供的一种去中心化sdp控制器实现方法的方法步骤。
85.本发明通过区块链技术以及sdp技术,让sdp主机和sdp控制器在交互过程中,不会暴露sdp主机地址信息如ip、域名、端口等。sdp主机均使用区块链账号和链上sdp控制器交互,区块链账号是匿名的,不会暴露sdp主机信息。sdp控制器为智能合约,在网络中没有实体,也不会暴露访问它的sdp主机在网络中的地址信息。除此之外,链上sdp控制器可以将sdp会话中sdp连接发起主机ih和sdp连接接收主机ah的地址信息作为秘密信息,以此来对其进行保护。通过这些方法,使得除sdp会话参与者外的任何实体都无法获得sdp连接发起主机ih与sdp连接接收主机ah会话双方的地址信息。
86.同时传统sdp是单边零信任的,即sdp控制器对sdp主机是零信任的,而sdp主机对sdp控制器是信任的;本发明通过将sdp控制器设置为区块链网络的智能合约上链,利用区块链技术让sdp主机对sdp控制器零信任;因此本专利技术能够在没有权威信任方的场景中实现sdp主机与sdp控制器之前的双向零信任。
87.以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的构思和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1