大多数 http 代理服务器不允许通过非 443 端口发送 SSL。为什么这是一个安全风险?
答案1
取决于原因。一种可能性是控制用户访问的网站和用户访问的服务。这通常是在公司环境中的情况。
默认情况下,您无法通过代理监控 SSL 上的内容。当客户端建立 SSL 连接时,它们会使用 CONNECT 方法而不是 GET/POST/HEAD,代理必须直接连接或阻止它。如果允许直接连接,则假定会话已使用 SSL 加密。
因此,代理服务器在监控和控制方面能做的事情很少。例如,大多数企业代理可以过滤网站以查看它们是否在黑名单上,并根据 HTTP 标头中的信息阻止连接。使用 CONNECT 方法,无法做到这一点。
因此,如果允许连接到非 443 端口,则可以使用代理服务器从外部访问任何服务。例如,我可以连接到外部服务器上的端口 22,然后通过该端口传输 SSH 流量。我还可以连接到端口 6667,然后通过该端口运行 IRC 会话。
除非付出额外的努力来分析流经它的流量,否则没有人会更明智。因此,将 CONNECT 方法限制为端口 443 要容易得多。
查看维基百科文章HTTP 隧道。