实现零信任的框架主要有SDP和Google Beyondcorp模型,前者出现在乙方的安全解决方案中,后者多作为甲方落地零信任的参考。本文主要记录对SDP技术的一些初步认识。

一、SDP简介

SDP是Software Defined Perimeter的缩写,全称是软件定义边界。

软件定义边界(SDP)是由云安全联盟(CSA)开发的一种安全框架,它根据身份控制对资源的访问。该框架基于美国国防部的“need to know”模型——每个终端在连接服务器前必须进行验证,确保每台设备都是被允许接入的。其核心思想是通过SDP架构隐藏核心网络资产与设施,使之不直接暴露在互联网下,使得网络资产与设施免受外来安全威胁。

SDP旨在利用基于标准且已验证的组件,如数据加密、远程认证(主机对远程访问进行身份验证)、传输层安全(TLS,一种加密验证客户端信息的方法)、安全断言标记语言(SAML),它依赖于加密和数字签名来保护特定的访问及通过X.509证书公钥验证访问。将这些技术和其他基于标准的技术结合起来,确保SDP与企业现有安全系统可以集成。

二、SDP的主要功能

1.对设备进行身份认证和验证

2.对用户进行身份验证和授权

3.确保双向加密通信

4.动态提供连接

5.控制用户与服务之间连接,同时隐藏这些连接

三、SDP的架构

SDP架构主要包括三大组件:SDP控制器(SDP Controler)、SDP连接发起主机(IH,Initial host)、SDP连接接受主机(AH,Accept host),SDP主机可以发起连接也可以接受连接,IH和AH会直接连接到SDP控制器,通过控制器与安全控制信道的交互来管理。该结构使得控制层能够与数据层保持分离,以便实现完全可扩展的安全系统。此外,所有组件都可以是冗余的,用于扩容或提高稳定运行时间。

SDP遵循如下工作流程:

1.在 SDP 中添加并激活一个或多个【SDP 控制 器】并连接到身份验证和授权服务,例如 AM、 PKI 服务、设备验证、地理位置、SAML、 OpenID、OAuth、LDAP、Kerberos、多因子身 份验证、身份联盟和其他类似的服务。

2.在 SDP 中添加并激活一个或多个 AH。它们以 安全的方式连接控制器并进行验证。 AH 不响 应来自任何其他主机的通信,也不会响应任 何未许可的请求。

3.每个 IH 会在 SDP 中添加和激活,并与【SDP 控制器】连接并进行身份验证。

4.IH 被验证之后,【SDP 控制器】确定 IH 被授 权可以连接的 AH 列表。

5.【SDP 控制器】指示 AH 接受来自 IH 的通信, 并启动加密通信所需的任何可选策略。

6.【SDP 控制器】为 IH 提供 AH 列表,以及加 密通信所需的任何可选策略。

7.IH 向每个授权的 AH 发起 SPA(SPA,单包授权,使未授权的用户和设备无法感知或访问)。然后 IH 和这 些 AH 创建双向加密连接(例如,双向验证 TLS 或 mTLS)。

8.IH 通过 AH 并使用双向加密的数据信道与目标 系统通信。

四、SDP 的部署模型

CSA(云安全联盟)的SDP标准规范1.0中定义了以下几种在组织中可能的SDP架构:

  • 客户端-网关
  • 服务器-服务器
  • 客户端-网关-客户端
  • 客户端-服务器
  • 客户端-服务器-客户端
  • 网关-网关

五、SPA连接

SDP 技术最关键的组成部分之一是要求并强制实施 “先认证后连接”模型,该模型弥补了 TCP/IP 开放 且不安全性质的不足。SDP 通过单包授权(SPA)实 现这一点。SPA 是一种轻量级安全协议,在允许访问 控制器或网关等相关系统组件所在的网络之前先检查 设备或用户身份。

SPA 的目的是允 许服务被防火墙隐藏起来并被默认丢弃。该防火墙系 统应该丢弃所有 TCP 和 UDP 数据包,不回复那些连 接尝试,从而不为潜在的攻击者提供任何关于该端口 是否正被监听的信息。在认证和授权后,用户被允许 访问该服务。SPA 对于 SDP 不可或缺,用于在客户端 和控制器、网关和控制器、客户端和网关等之间的连 接中通信。

SPA 在 SDP 中起很大作用。SDP 的目标之一是克服 TCP/IP 开放和不安全的基本特性。TCP/IP 的这个特性 允许“先连接后认证”。鉴于今天的网络安全威胁形 势,允许恶意行为人员扫描并连接到我们的企业系统 是不可被接受的。与 SDP 组合的 SPA 通过两种方式应 对这个弱点。使用 SDP 架构的应用被隐藏在 SDP 网关 /AH 后面,从而只有被授权的用户才能访问。另外, SDP 组件自身,如控制器和网关也被 SPA 保护。这允 许它们被安全地面向互联网部署,确保合法用户可以 高效可靠地访问,而未授权用户则看不到这些服务。 SPA 提供的关键好处是服务隐藏。防火墙的 Default- drop(默认丢弃)规则缓解了端口扫描和相关侦查技术带来的威胁。这种防火墙使得 SPA 组件对未授权用户不可见,显著减小了整个 SDP 的攻击面。 相比与 VPN 的开放端口以及在很多实现中都存在的 已知弱点,SPA 更安全。

SPA的实现可能有轻微的差别,但是都满足以下原则:

1.数据包必须被加密和认证

2.数据包必须自行包含所有必要的信息;单独的数据包头不被信任

3.生成和发送数据包必须不依赖与管理员或底层访问权限;不允许篡改原始数据包

4.服务器必须尽可能无声地接收和处理数据包;不发送回应或确认

SDP架构初识的更多相关文章

  1. SDN与OpenFlow架构--初识

    一,为什么需要SDN 1,传统网络的缺点: a,传统网络及其设备的只可配置,不可编程,只能按照已定义好的协议处理或转发数据,不能适应需求新变化,不能自主开发新功能. 如购买一个电饭煲,可以煮饭,煲汤. ...

  2. day 33

    目录 数据库是什么 为什么使用数据库 数据库的分类 关系型(把数据保存在硬盘里) 非关系型(把数据保存在内存里) mysql的架构 初识mysql 操作数据库 增 删 改 查 数据库是什么 数据库即存 ...

  3. django上课笔记6-MVC,MTV架构-中间件-初识Form组件

    一.MVC,MTV架构 models(数据库,模型) views(html模板) controllers(业务逻辑处理) --> MVC models(数据库,模型) templates(htm ...

  4. 【NopCommerce源码架构学习-一】--初识高性能的开源商城系统cms

    很多人都说通过阅读.学习大神们高质量的代码是提高自己技术能力最快的方式之一.我觉得通过阅读NopCommerce的源码,可以从中学习很多企业系统.软件开发的规范和一些新的技术.技巧,可以快速地提高我们 ...

  5. dubbo初识(一)Dubbo架构设计详解

    参见http://shiyanjun.cn/archives/325.html Dubbo是Alibaba开源的分布式服务框架,它最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解耦合( ...

  6. NopCommerce源码架构详解--初识高性能的开源商城系统cms

    很多人都说通过阅读.学习大神们高质量的代码是提高自己技术能力最快的方式之一.我觉得通过阅读NopCommerce的源码,可以从中学习很多企业系统.软件开发的规范和一些新的技术.技巧,可以快速地提高我们 ...

  7. 初识Restful架构

    1.对Rest(Restful)的理解 理解RESTful架构 怎样用通俗的语言解释REST,以及RESTful 维基百科:Representational state transfer 2.Rest ...

  8. MySQL架构与引擎初识

    一.MySQL逻辑架构 1.连接层: 最上层是一些客户端和连接服务,所包含的服务并不是MySQL所独有的技术.它们都是服务于C/S程序或者是这些程序所需要的 :连接处理,身份验证,安全性等等. 2.服 ...

  9. 初识Tomcat系统架构

    俗话说,站在巨人的肩膀上看世界,一般学习的时候也是先总览一下整体,然后逐个部分个个击破,最后形成思路,了解具体细节,Tomcat的结构很复杂,但是 Tomcat 非常的模块化,找到了 Tomcat最核 ...

随机推荐

  1. andorid jar/库源码解析之Dagger/Dagger2

    目录:andorid jar/库源码解析 Dagger.Dagger2: 作用: 1.用于解耦Activity和业务逻辑 2.在使用业务的时候,不需要重复编写new代码. 3.当业务变化的时候,不需要 ...

  2. 算法——Java实现栈

    栈 定义: 栈是一种先进后出的数据结构,我们把允许插入和删除的一端称为栈顶,另一端称为栈底,不含任何元素的栈称为空栈 栈的java代码实现: 基于数组: import org.junit.jupite ...

  3. 第 4 篇:用类视图实现首页 API

    作者:HelloGitHub-追梦人物 文中所涉及的示例代码,已同步更新到 HelloGitHub-Team 仓库 django-rest-framework 类视图拓展自 django 的类视图,只 ...

  4. TSP变形(三进制状压)

    题目:HDU3001 #include <bits/stdc++.h> using namespace std; ],vis[][],dis[][]; ][]; void init()// ...

  5. IDEA编写快捷生成代码

    转载于:https://www.jianshu.com/p/029c2de5c612 1. psvm //生成main方法: public static void main(String[] args ...

  6. 王颖奇 20171010129《面向对象程序设计(java)》第十五周学习总结

    实验十五  GUI编程练习与应用程序部署 实验时间 2018-12-6 学习总结: 理论部分: ◼ JAR文件◼ 应用程序首选项存储◼ Java Web Start JAR文件: 1.Java程序的打 ...

  7. 053.集群管理-Helm部署及使用

    一 Helm概述 1.1 Helm介绍 Helm 是 Kubernetes 的软件包管理工具.包管理器类似 Ubuntu 中使用的apt.Centos中使用的yum 或者Python中的 pip 一样 ...

  8. indexDB解决过的难题

    我第一次使用indexDB是1年前(2018年10月),运用这个黑科技,解决过3个异常棘手的问题(如果不是indexDB 几乎找不到其他解决方案)所以我经常强调,前端一定要学indexDB! 难题一: ...

  9. CF-292D Connected Components 并查集 好题

    D. Connected Components 题意 现在有n个点,m条编号为1-m的无向边,给出k个询问,每个询问给出区间[l,r],让输出删除标号为l-r的边后还有几个连通块? 思路 去除编号为[ ...

  10. Badboy脚本开发

    Badboy中的检查点 以sogo.com搜索为例演示,搜索Badboy 选中搜索框中的关键词----菜单“Tools”----“Add Assertion for Selection”添加检查点 2 ...