networking - 大多数防火墙默认配置是否允许与 HTTPS 一样的安全 TCP?

标签 networking ssl tcp https firewall

<分区>

我需要实现从客户端到服务器的安全数据传输(二进制数据)。我正在寻找不需要客户端配置防火墙异常(exception)的解决方案。

显而易见的选择是 HTTPS。大多数防火墙默认允许传出 HTTPS。 HTTPS 有两个问题:

  1. 我不想实现 HTTPS(即使是最简单的版本),因为我不需要它的复杂性。简单的自定义安全二进制协议(protocol)就足够了。

  2. 我想避免将二进制数据放入 HTTP POST 消息所需的 base64 编码开销(如果我错了,请纠正我)。客户端运行在弱硬件(嵌入式系统)上。

现在,我的假设。由于 HTTPS 是加密的(根据定义),防火墙无法解析它或检查数据是否为 ​​base64 编码。这意味着我可以使用使用 HTTPS 端口 (443) 的自定义 TCP 安全协议(protocol)来模拟 HTTPS,防火墙将无法将其与 HTTPS 区分开来。请确认或解释我的错误。

最佳答案

IMO 防火墙并不是真正好的防火墙,除非“默认”配置是拒绝一切进/出(例如,这是 Juniper SRX 和 Cisco ASA 默认执行的操作)。 最常见的防火墙配置通常允许 HTTPS 通过。

至于构建您自己的自定义协议(protocol),请出于对披萨的热爱(以及您自己的理智)使用许多已经存在的标准化文件传输协议(protocol)之一...选择范围很广,例如 ftp rsynchttp(见下文)、scpsftp

你需要考虑两件事......

  • 您需要担心的第一件事是您的客户端是否执行某种深度数据包检查以验证您是否只是通过 TCP/443 隧道传输“其他内容”。这在今天并不常见,但有些人会这样做。
  • 还有一点,有些人(您可能会对数量感到惊讶)获得通用 SSL 证书并为所有 http/https 构建透明代理。那打乱你的计划;此时你需要 https 和 POST。

关于networking - 大多数防火墙默认配置是否允许与 HTTPS 一样的安全 TCP?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7794169/

相关文章:

java - Android连续tcp轮询

email - 为什么发送电子邮件需要多个邮件服务器跃点?

python 3 : ssl cert information

jakarta-ee - weblogic 中的 2 路 ssl 到现有的 weblogic 实例 9.2 + 回归测试

c - Winsock C TCP 套接字

java - 通过TCP/IP接收数据时HL7V2 HAPI解析器异常

javascript - 使用 WebSockets……高效吗?

linux - 从 AS 生成 ipset 表

http - TCP 在没有 SYN 的情况下启动?

ESP8266(Arduino 库)中的 SSL - 如何处理证书更改?