我需要实现从客户端到服务器的安全数据传输(二进制数据)。我正在寻找不需要客户端配置防火墙例外的解决方案。
明显的选择是HTTPS。大多数防火墙默认允许传出HTTPS。 HTTPS存在两个问题:
我不想实现HTTPS(即使是最简单的版本),因为我不需要它的复杂性。简单的自定义安全二进制协议就足够了。
我想避免将二进制数据放入HTTP POST消息所需的base64编码开销(如果我错了请纠正我)。客户端在弱硬件(嵌入式系统)上运行。
现在,我的假设。由于HTTPS是加密的(根据定义),防火墙无法解析它或检查数据是否为base64编码。这意味着我可以使用我的自定义TCP安全协议使用HTTPS端口(443)来模仿HTTPS,防火墙将无法将其与HTTPS区分开来。请确认或解释我的错误。
答案 0 :(得分:2)
IMO防火墙并不是一个好的防火墙,除非“默认”配置是拒绝所有进/出(例如,这是Juniper SRX和Cisco ASA默认做的)。 最常见的防火墙配置通常允许HTTPS通过。
至于建立自己的自定义协议,请为了对披萨(以及您自己的理智)的喜爱,使用已经存在的众多标准化文件传输协议之一...这些选择是敞开的,例如{{1} },ftp
,rsync
(见下文),http
和scp
。
你需要考虑的两件事......