我们使用 BlueCoat ProxySG(软件 6.4.3.1)进行了显式(= 不透明)代理设置。
当我创建 Web 访问层规则时,例如:
- 协议:HTTPS -> 所有 HTTPS:允许,
- 协议:所有 TCP 隧道:拒绝,然后
我仍然可以通过代理在外面进行 SSH。
相反,当指定某些东西时
- 协议:所有外壳:拒绝
(没有明确的 HTTPS 声明)我也可以通过代理进行 SSH。
唯一有帮助的(使用 SSH)是指定All TCP Tunneling: DENY
. 但是在这种情况下,HTTPS 也不再有效。
因此,HTTPS 似乎被视为 TCP 隧道。这也是跟踪文件在 HTTPS 请求上显示的内容:
CONNECT tcp://www.xxx.com:443/
我知道只要允许某人创建传出的加密连接,他们就可以使几乎任何事情都正常工作。但我不想让它太容易。
那么如何识别 HTTPS 同时又不允许太多其他东西呢?(如果不设置 MitM 的东西等可能是不可能的。)为什么会有一个名为 HTTPS 的对象,当我使用它时它不会改变任何东西。我真的不明白那部分。
好吧,
寻找在 SSH 等情况下不存在的 User-Agent 标头是官方的答案。
常规 HTTPS 会话通常会将这些标头与对 HTTP CONNECT xxx:443 方法的调用一起传输(在隧道连接的情况下)。我们确实只允许连接到代理上的端口 80,因此所有不是 HTTP 的东西都得到(不再)隧道化。
这是默默无闻的安全性,但我想在这种情况下和使用这个设备不能做更多的事情......