freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

"法海"开箱详解——新一代的内网互联网产品
2022-12-12 11:02:06
所属地 浙江省

使用介绍

全程安装不要用户介入,一键配置好使用环境。

1669901489_6388acb12628f89f819fa.png!small?1669901489719

安装后的界面特别清爽,对于安装的终端会生成一个独立ip。

通过后台可以看到在线的终端和对应的虚拟网络内的对应ip。

1669901619_6388ad33a4df47a911f26.png!small?1669901620097

在100.100.0.2的8000端口上建立一个简单的http服务,在100.100.0.1通过浏览器访问看看:

1669901637_6388ad45eeb0da6737613.png!small?1669901638521

速度挺快,我在外网就可以轻松的访问内部的服务资源。

技术原理

通过和safe3交流了解到法海采用了业界领先的NAT隧道打洞技术和高性能网络驱动:

通过学习了解总结了一下大概的技术原理

NAT端口映射方式分类:

NAT类型说明
全锥形
NAT
任何公网主机都可与之通讯。双方都可以主动发起
地址受限
锥形NAT
只有内网主动连接的公网主机可与之通讯,必须内网主机发起,且此公网主机可通过任意端口与内网主机通讯
端口受限
锥形NAT
只有内网主动连接的公网主机的连接可与之通讯,必须内网主机发起,且此公网只能通过固定的端口与之进行通讯
对称型
NAT
根据四元组创建NAT映射,四元组中的任何一项发生变化均导致NAT映射的更换,此形状双方一对一映射,因此被称之为对称NAT

基于UDP协议的P2P隧道打洞技术详解

原理概述

UDP打洞技术是通过中间服务器的协助在各自的NAT网关上建立相关的表项,使P2P连接的双方发送的
报文能够直接穿透对方的NAT网关,从而实现P2P客户端互连。如果两台位于NAT设备后面的P2P客户端
希望在自己的NAT网关上打个洞,那么他们需要一个协助者——集中服务器,并且还需要一种用于打洞
的Session建立机制。

什么是集中服务器?

集中服务器本质上是一台被设置在公网上的服务器,建立P2P的双方都可以直接访问到这台服务器。位
于NAT网关后面的客户端A和B都可以与一台已知的集中服务器建立连接,并通过这台集中服务器了解对
方的信息并中转各自的信息。

P2P的Session建立原理:

假定客户端A要发起对客户端B的直接连接,具体的“打洞”过程如下:

  • A最初不知道如何向客户端B发起连接,于是A向集中服务器发送消息,请求集中服务器帮助建立与
    客户端B的UDP连接。
  • 集中服务器将含有B的外网和内网的地址二元组发给A,同时,集中服务器将包含有A的外网和内网
    的地址二元组信息的消息也发给B。这样一来, A与B就都知道对方外网和内网的地址二元组信息
    了。
  • 当A收到由集中服务器发来的包含B的外网和内网的地址二元组信息后, A开始向B的地址二元组发
    送UDP数据包,并且A会自动锁定第一个给出响应的B的地址二元组。同理,当B收到由集中服务器
    发来的A的外网和内网地址二元组信息后,也会开始向A的外网和内网的地址二元组发送UDP数据
    包,并且自动锁定第一个得到A回应的地址二元组。由于A与B互相向对方发送UDP数据包的操作是
    异步的,所以A和B发送数据包的时间先后并没有时序要求。

举例说明

客户端A与B经由各自的NAT设备与集中服务器建立UDP连接, A与B的本地端口号均为4321,集中服务
器的公网端口号为1234。在向外的会话中, A的外网IP被映射为155.99.25.11,外网端口为62000;B的
外网IP被映射为138.76.29.7,外网端口为31000。

1. 客户端A——>本地IP:10.0.0.1,本地端口:4321,外网IP:155.99.25.11,外网端口:62000
2. 客户端B——>本地IP:10.1.1.3,本地端口:4321,外网IP:138.76.29.7,外网端口:31000

1669902550_6388b0d6526d16efd727d.png!small?1669902551278

1. 在A向服务器发送的登陆消息中,包含有A的内网地址二元组信息,即10.0.0.1:4321;服务器会记
录下A的内网地址二元组信息,同时会把自己观察到的A的外网地址二元组信息记录下来。同理,服
务器也会记录下B的内网地址二元组信息和由服务器观察到的客户端B的外网地址二元组信息。
2. A和B分属不同的内网,它们的内网地址在外网中是没有路由的,所以发往各自内网地址的UDP数
据包会发送到错误的主机或者根本不存在的主机上。当A的第一个消息发往B的外网地址(如图3所
示),该消息途经A的NAT设备,并在该设备上生成一个会话表项,该会话的源地址二元组信息是
{10.0.0.1:4321},和A与服务器建立连接的时候NAT生成的源地址二元组信息一样,但它的目的地
址是B的外网地址。在A的NAT设备支持保留A的内网地址二元组信息的情况下,所有来自A的源地
址二元组信息为{10.0.0.1:4321}的数据包都沿用A与集中服务器事先建立起来的会话,这些数据包
的外网地址二元组信息均被映射为{155.99.25.11:62000}。
3. A向B的外网地址发送消息的过程就是“打洞”的过程,从A的内网的角度来看应为从{10.0.0.1:4321}
发往{138.76.29.7:31000},从A在其NAT设备上建立的会话来看,是从{155.99.25.11:62000}发到
{138.76.29.7:31000}。如果A发给B的外网地址二元组的消息包在B向A发送消息包之前到达B的
NAT设备,B的NAT设备会认为A发过来的消息是未经授权的外网消息,并丢弃该数据包。
4. B发往A的消息包也会在B的NAT设备上建立一个{10.1.1.3:4321,155.99.25.11:62000}的会话(通
常也会沿用B与集中服务器连接时建立的会话,只是该会话现在不仅接受由服务器发给B的消息,还
可以接受从A的NAT设备{155.99.25.11:6200}发来的消息)。
5. 一旦A与B都向对方的NAT设备在外网上的地址二元组发送了数据包,就打开了A与B之间的“洞”,A
与B向对方的外网地址发送数据,等效为向对方的客户端直接发送UDP数据包了。一旦应用程序确
认已经可以通过往对方的外网地址发送数据包的方式让数据包到达NAT后面的目的应用程序,程序
会自动停止继续发送用于“打洞”的数据包,转而开始真正的P2P数据传输。

高性能的网络驱动

法海下层使用WireGuard驱动,继承了WireGuard所有优点,包括:可以像普通网卡一样的以太网接
口;以内核态运行减少内核空间和用户空间之间上下文切换,高效且占用资源小的内核;以及采用最新
的加密技术,如Noise协议框架、Curve25519等,公钥加密、私钥解密传输,保护用户安全于隐私,相
比虚拟专用通道传输速度提高了4倍,达到了惊人的1000M每秒,网络延迟降低了3倍,只有0.4毫秒,大大
提升网络传输体验。

组建安全的零信任网络

通过使用过程中,我发现目前后台没有权限划分和日志分类分级,带着这个疑问,专门采访了我们safe3
老师,从老师的解答中,可以看出,在设计之初就已经考虑好这些痛点,并看到老师对法海宏大的规
划:

1669902728_6388b188679085de0467a.png!small?1669902729048

节点互联只是初步,老师的目的是打造一个满足个性化配置的零信任办公网络。

目前市场上的零信任产品还是比较传统的卖产品+服务定制的模式,当有新的网络访问痛点,功能及时相
应上线成为一大难题。
法海规划的零信任是可定制,任意节点都能成为网关,都能定制化的配置访问控制,真正达到sdl的效
果。

传统虚拟专用网络对标

我们知道传统的虚拟专用网络类似于C/S架构,需要建设单独的网关,所有节点通过网关建立隧道然后访问企业内
部网络;

1669902778_6388b1ba8b704fa685b13.png!small?1669902779776


优点:
方便统一管理
缺点:
1.单台设备的价格较高
2.单台网关设备会成为性能瓶颈
3.不方便定制(在当今企业内部网络复杂,个性需求攀升的年代,需要更加个性化的功能定制)

法海的组网功能(任意单个节点都可以作为路由节点),可以把单台设备变成分布式设备,对于不同的
网段定制路由节点,满足sdp的高可配方案,不仅把网络分摊功能化,还分摊了价格和性能成本。

赞美

随着网联汽车行业的发展,信息安全愈发引起社会的关注和用户的重视,极氪科技一直致力于保护用户信息安全,因此我们也非常关注办公网领域的信息安全,"法海"开箱让我们有眼前一亮的感觉,当然以safe3在行业内的经验做出“法海”产品实属预期范围,相信在不久的将来safe3老师一定会给我们带来更好用的内网互联产品。

当然我们的safe3老师愿景并不只是网络这一块,打造统一的可配置终端防护体系是他的最终愿景,相信
在不久的将来会给我们带来更多的惊喜!

【参考资料】
Peer-to-Peer Communication Across Network Address Translators,https://bford.info/pub/net/p2pnat/
Mirror of various WireGuard-related projects,https://www.wireguard.com/
wireguard协议分析,https://blog.csdn.net/sinat_30690685/article/details/127126584

# 网络安全 # web安全
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录