概况

随着零信任概念的越来越火热,产业界也都在考虑如何将零信任的理念落地到实践中。这其中SDP推动零信任的实践路上走出了一大步,所谓SDP又称软件定义边界,理论上来说可以替代传统的物理边界。SDP边界之间自有一套自己的认证和授权体系,与传统的通过账号密码认证不同。在这众多认证和授权体系当中,我们有必要了解一下SPA即单包认证的思路和实践

SPA/PK是什么

Port Knocking[PK]:字面意思指“敲端口”,它可以通过设置一系列规则动态的调整防火墙的策略或执行特定命令。它与SPA最大的区别在于PK的认证消息在packet header中传输,而SPA则在packet data。

Single Packet Authorization[SPA]:即单包认证,和PK的功能大致是相似的,但由于其认证消息存放在Packet data中,意味着可以传输更多的消息、并加强其安全性。

SPA实践之fwknop演示

接下来演示如何通过fwknop隐藏ssh服务,以及如何通过fwknop进行认证从而登录ssh服务

1. 环境要求

fwknop-client:ubuntu16,192.168.97.162
fwknop-server:ubuntu18,192.168.98.217

依赖:iptables;libfko;libgpgme;libpcap
依赖安装,不同系统的依赖名有所不同,可通过apt search xxx 确定依赖名。iptables ubuntu自带,无需安装

apt-get install libfko2
apt-get install libgpgme11
apt-get install libpcap0.8

在192.168.97.162上安装fwknop-client

apt-get install fwknop-client
fwknop -V 查看客户端版本,若有显示,说明安装成功

在192.168.98.217上安装fwknop-server

apt-get install fwknop-server
fwknopd -V 查看服务端版本

2. fwknop配置

  1. fwknop 客户端配置【192.168.97.162】
    fwknop-client客户端执行
fwknop -A tcp/22 -a 192.168.97.162 -D 192.168.98.217 --key-gen --use-hmac --save-rc-stanza

相关信息会写入在/home/username/.fwknoprc,执行

grep KEY /root/.fwknoprc

获得相关的KEY_BASE64以及HMAC_KEY_BASE64

KEY_BASE64                  vyJbj2TmFLZvCBOBq07Uo1qgxMIDb4LvWyU7JhN4eJw=
HMAC_KEY_BASE64             YQTWkgkFKH2e/5x/mO4KcOgga9fU68u/z+gC9Qt1i+rW/xYC5U8FG6vA6Ys7kiV6vr6Aj5DcA6He7qZJ/gU3gQ==
  1. fwknop 服务端配置【192.168.98.217】
    首先启动ssh 服务
service ssh start

编辑/etc/fwktop/access.conf
将客户端生成的key添加该文件中,内容如下

REQUIRE_SOURCE_ADDRESS Y
KEY_BASE64                  vyJbj2TmFLZvCBOBq07Uo1qgxMIDb4LvWyU7JhN4eJw=
HMAC_KEY_BASE64             YQTWkgkFKH2e/5x/mO4KcOgga9fU68u/z+gC9Qt1i+rW/xYC5U8FG6vA6Ys7kiV6vr6Aj5DcA6He7qZJ/gU3gQ==

配置iptables关闭22端口

iptables -I INPUT 1 -i ens33 -p tcp --dport 22 -j DROP
iptables -I INPUT 1 -i ens33 -p tcp --dport 22 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT网卡名根据fwknop服务端自己修改fwknopd --fw-list-all 查看防火墙规则

启动fwknopd服务

fwknopd -R 重启服务
fwknopd reload 若重启失败则重载
fwknopd -S 查看fwktopd服务状态

  1. 效果演示
    nmap 扫描22端口,可以看到端口被过滤,这是由于防火墙规则原因
nmap -p -Pn 192.168.97.162

fwknop -n 192.168.98.217 进行fwknop认证
nmap -p -Pn 192.168.97.162


可以看到端口重新开放,可以正常进行ssh连接,大约端口开放30s左右,就会重新关闭,在30s之间已经建立的连接则不会阻断

fwknop流量简析

  1. 首先查看fwknopd的服务端防火墙规则

可以看到,只有2条规则,一条指定阻断所有到达22端口的流量,一条指定对已经连接的22端口流量作放行,不阻断

  1. spaclient客户端进行认证,同时注意抓包
fwknop -n 192.168.98.217

可以看到客户端向服务端62201端口发送udp认证流量,服务端认证之后通过ping探测客户端是否存活

认证的Packet data经过加密
端口扫描确认此时端口已开放

  1. fwknop服务端查看防火墙策略

可以看到,此时fwknopd创建了一条防火墙规则,允许来自fwknop客户端的ip连接22端口,该规则大约在30s之后失效

总结

  1. 无论是PK还是SPA,其主要是通过认证或特定的访问规则进而动态的控制系统防火墙进行端口资产的管理。
  2. PK/SPA均可以实现端口资产的隐藏,即灯下黑
  3. 在身份认证的配置上,fwknop的受信身份凭证不是服务端下发的。从凭证生成的命令看,只涉及到客户端ip,并没有涉及身份的其他要素,是否可能存在盗用的危险?需要进一步了解
  4. 目前的理解看,spaclient为受信客户端,spaserver为控制服务端。spaclient的端口资产是否可以被保护以及spaserver是否可以进一步保护其它客户端而不是其本身,需要进一步确认
  5. 在认证成功的30s内,是否存在伪造客户端ip,进行登录的可能性?

参考链接

fwknop手册:http://www.cipherdyne.org/fwknop/docs/fwknop-tutorial.html
Port Knocking实现参考:
https://www.cnblogs.com/xiaoxiaoleo/p/8523322.html

零信任实践之单包认证(SPA)相关推荐

  1. 【零信任落地案例】吉大正元某大型集团公司零信任实践案例

    1方案背景 随着信息化技术不断发展,企业智慧化.数字化理念的不断深化已经深入各个领域, 云计算.大数据.物联网.移动互联.人工智能等新兴技术为客户的信息化发展及现代 化建设带来了新的生产力,但同时也给 ...

  2. 授权服务器文件包,单包授权认证(SPA)fwknop之安装和演示

    单包授权认证(SPA)fwknop之安装和演示 单包授权认证(SPA)简介 环境介绍 操作系统准备 安装部署fwknop 设置fwknop 测试fwknop的SPA效果 参考 单包授权认证(SPA)简 ...

  3. 从理念到大型实践,揭开腾讯零信任iOA安全方案的“落地密码”

    随着企业数字化转型的不断深化,远程办公.移动办公逐渐成为主流办公形式,但在复杂多变的安全环境下,如何应对来自内外部的潜在安全风险也成为了企业的必修课题. 在1月23日举办的TGO鲲鹏会杭州年度家宴上, ...

  4. 零信任风口来了,新一代企业安全架构革新势在必行

    信息技术的快速发展,云计算.大数据.人工智能.物联网等新兴技术的落地,在带来机遇的同时,也为信息安全带来了新的挑战.在企业上云的过程中,原有传统安全架构的"边界"思维正在被打破.外 ...

  5. “重塑安全边界,揭秘零信任业务保障”,联软科技下一代零信任访问管理系统发布

    随着企业数字化转型的需要以及疫情反复的影响,远程办公越来越常态化.企业业务云化以及移动化,导致企业传统的边界越来越模糊,基于传统边界的安全架构面临越来越大的挑战.这几年零信任的理念得到了各行各业广泛的 ...

  6. 【零信任落地案例】启明星辰中国移动某公司远程办公安全接入方案

    1方案背景 电信运营商作为大体量通信骨干企业,承担着国家基础设施建设责任,具备 为全球客户提供跨地域.全业务的综合信息服务能力和客户服务渠道体系.电信 运营商安全体系建设相对于其他行业,具有专业深.覆 ...

  7. 零信任网络安全——软件定义边界SDP技术架构指南

    基本原理+应用场景+落地实施,结合国内特点进行零信任架构技术指导. 近年来,国内信息与通信技术(ICT)发展迅速,各企业将新技术应用于商业环境,推动了其数字化应用与发展.与此同时,也出现了许多信息安全 ...

  8. 从“边界信任”到“零信任”,安全访问的“决胜局”正提前上演

    "数字宇宙造成的伤害,将变成物理伤害."--"爱因斯坦-罗森桥"虫洞 对大多数人来说,对数字化变革的切身体验从未像2020年新冠疫情爆发以来这般强烈.这一年,各 ...

  9. 国内首个零信任技术标准发布 腾讯安全牵头编制

    7月7日,中国电子工业标准化技术协会发布了国内首个零信任技术实现标准--T/CESA 1165-2021<零信任系统技术规范>团体标准,填补了国内零信任领域的技术标准空白. (<零信 ...

最新文章

  1. 相机模型--Catadioptric Omnidirectional Camera
  2. java8的表达式_java8中的Lambda表达式
  3. 【数据挖掘】神经网络 后向传播算法( 向后传播误差 | 输出层误差公式 | 隐藏层误差公式 | 单元连接权值更新公式 | 单元偏置更新公式 | 反向传播 | 损失函数 | 误差平方和 | 交叉熵 )
  4. 到底该不该使用存储过程
  5. 8255编程c语言程序,51单片机8255驱动C程序
  6. 深度学习之卷积神经网络 ResNet
  7. 深入源码解析类Route
  8. Windows forfiles(删除历史文件)
  9. php代码连接mysql数据库,php连接mysql数据库代码
  10. g ++在linux下编译rapidxml 使用与过程中出现的问题解决
  11. Android中使用微信H5支付时支付结果刷新问题
  12. R语言中is.na()
  13. 关于C++学习的思考
  14. 分享几个IP获取地理位置的API
  15. 教你制作服务器中更高效率的刷怪塔,我的世界低耗材高效率凋零骷髅刷怪塔制作攻略...
  16. switch case之合并case
  17. 全局壁纸,让你喜欢的壁纸无处不在
  18. 目标跟踪常用算法——EPF、UPF篇
  19. 针对wmp11以后版本的流媒体播放解决的问题~
  20. pundit的使用ruby on rails

热门文章

  1. [学习笔记] Rocket.Chat 安装与设置启动项
  2. ctfshow 做题 萌新 模块(3)
  3. python自动翻译pdf_在Python中自动执行PDF
  4. 联通服务器维护破解限速,网速1mbps(联通限速1mbps解除方法)
  5. 阴阳师各服务器在线人数,阴阳师伪神活动成难忘今宵,玩家团结一心,你换了哪个SSR?...
  6. CIMPLICITY 历史数据存储及趋势显示示例
  7. 页面js打开 qq客户端对话框(已测试)
  8. mybatis中设置主键返回
  9. Centos之目录处理命令
  10. php随机分配班级座位,浅谈班级座位安排原则与方法