零信任三大技术之SDP
SDP概述
SDP Software Defined Perimeter(软件定义边界),2013 年由云安全联盟 CSA提出。
SDP 设计基本原则
1、信息隐身:隐藏服务器地址、端口,使之不被扫描发现
2、预认证:在连接服务器之前,先认证用户和设备的合法性
3、预授权:用户只能看到被授权访问的应用(最小权限原则)
4、应用级的访问准入:用户只有应用层的访问权限,无网络级的准入
5、扩展性:基于标准协议,可以方便与其他安全系统集成
SDP三大组件
SDP控制器:SDP的大脑,主要进行主机认证和策略下发,还可以用于认证和授权SDP连接发起主机、配置到SDP连接接受主机的连接。
SDP连接发起主机:终端用户设备或者可以被称为SDP客户端
SDP连接接受主机:SDP网关或者边界
注:为了文章可读以及比较容易理解,后面的SDP连接发起主机(IH)我将采用SDP客户端来代替,使用SDP网关来代替SDP连接接受主机(AH)
1、SDP 控制器确定哪些SDP客户端和SDP网关可以相互通信。SDP控制器可以将信息中继到外部认证服务,例如认证地理位置和/或身份服务器。
2、SDP客户端与SDP控制器通信用来请求它们可以连接哪些SDP网关列表。在提供信息之前SDP控制器可以向 SDP客户端请求硬件或软件之类的信息。
3、默认情况下SDP网关拒绝来自SDP控制器以外的所有主机的所有通信。只有在SDP控制器下发指令后,SDP网关才接受来自SDP客户端的连接。
SDP 主要功能
基础设施隐藏:终端用户设备在通过身份验证授权之前,SDP控制器和SDP网关不会响应任何连接请求。
减少Dos攻击:面向互联网的服务都处于SDP网关的后面,可以抵挡DOS攻击,SPA可以保护SDP网关免受DOS攻击。
检测错误包:从任何其他主机到SDP客户端的第一个数据包是SPA 数据包(或类似的安全构造)。如果SDP网关收到任何其他数据包,则将其视为攻击。
防止越权访问网络:设备只能访问策略允许的特定主机和服务,不能越权访问网段和子网。
应用程序和服务访问控制:SDP 控制允许哪些设备和应用程序可访问特定服务例如应用程序和系统服务。
注:SPA:单包授权,使未授权的用户和设备无法感知或访问。
SDP架构图
SDP工作流程
1、一个或多个 SDP 控制器上线并连接到身份验证和授权服务,例如 AM、 PKI 服务、设备验证、地理位置、SAML、 OpenID、OAuth、LDAP、Kerberos、多因子身份验证、身份联盟和其他类似的服务。
2、一个或者多个SDP网关上线。它们以安全的方式连接SDP控制器并进行验证。SDP网关不响应来自任何其他主机的通信,也不会响应任何未许可的请求。
3、每个SDP客户端会与SDP 控制器连接并进行身份验证。(单包第一次)
4、SDP客户端被验证之后,SDP 控制器确定终端用户设备被授权可以连接的SDP网关列表。(可以连哪些SDP网关)
5、SDP 控制器告知SDP网关接受来自SDP客户端的通信,并启动加密通信所需的任何可选策略。
6、SDP 控制器给SDP客户端提供SDP网关列表,以及加密通信所需的任何可选策略。
7、SDP客户端向每个授权的SDP网关发起SPA,然后SDP客户端和这些SDP网关创建双向加密连接(双向TLS认证)。(单包第二次)
8、SDP客户端通过SDP网关并使用双向加密的数据信道与资源通信。
双向TLS认证
通常 TLS 为单向认证,通常都是 client 来校验server的合法性,server端无法校验client的合法性,这样就会存在非法客户端访问的情况,无法保证终端设备针对服务器端的可信,因此,在 SDP 协议中明确提出需要在通信开始前使用双向认证,即相互校验,server需要校验每个client,client也需要校验server。
SDP网关-SDP控制器协议及其交互过程
SDP客户端-SDP控制器协议及其交互过程
SDP客户端与SDP网关建立连接并且交互数据过程