实现零信任的框架主要有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/库源码解析之Bolts

    目录:andorid jar/库源码解析 Bolts: 作用: 用于链式执行跨线程代码,且传递数据 栗子: Task.call(new Callable<Boolean>() { @Ove ...

  2. 使用kubeadm部署k8s集群[v1.18.0]

    使用kubeadm部署k8s集群 环境 IP地址 主机名 节点 10.0.0.63 k8s-master1 master1 10.0.0.63 k8s-master2 master2 10.0.0.6 ...

  3. 自定义View实战

    PS:上一篇从0开始学自定义View有博友给我留言说要看实战,今天我特意写了几个例子,供大家参考,所画的图案加上动画看着确实让人舒服,喜欢的博友可以直接拿到自己的项目中去使用,由于我这个写的是demo ...

  4. POJ3169(差分约束:转载)

    转载自mengxiang000000传送门 Layout Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 10278   Ac ...

  5. (1).Mybatis的创建。配置。映射。dao映射

    https://www.cnblogs.com/zxdup/ 一.Mybatis的创建 1.创建一个新的项目,建议选 Empty Project(空项目), 之后回跳转到Project Structu ...

  6. Day_12【集合】扩展案例4_判断字符串每一个字符出现的次数

    分析以下需求,并用代码实现 1.利用键盘录入,输入一个字符串 2.统计该字符串中各个字符的数量(提示:字符不用排序) 3.如: 用户输入字符串 "If~you-want~to~change- ...

  7. c++离散化处理大范围和重复数据

    关于离散化 有些新手可能会问:离散化是什么?离散化就是将无限空间中有限的个体映射到有限的空间里去. 上面的定义肯定会有人看不懂(其实我刚开始学的时候也看不懂) 用我自己的话来说,就是在不改变数据的相对 ...

  8. 黑马程序员_毕向东_Java基础视频教程——常量(随笔)

    常量 常量表示不能被改变的数值. Java常量的分类 整型常量.所有整数 小数常量.所有小数 布尔型常量.特殊只有两个值:true.false. 字符常量.将一个数字字母或者符号用单引号(' ')标识 ...

  9. python中minepy包的下载

    minepy包的下载 今天在做机器学习的时候,需要使用到互信息的有关内容,而python包下正好有处理互信息的包,想直接下一个,没想到遇到了不少问题: 基本指令很简单了: pip install mi ...

  10. Docker & Kubenetes 系列四:集群,扩容,升级,回滚

    本篇将会讲解应用部署到Kubenetes集群,集群副本集查看,集群自愈能力演示,集群扩容,滚动升级,以及回滚. 本篇是Docker&Kubenetes系列的第四篇,在前面的篇幅中,我们向Kub ...