[技术分享 – TMG 篇] TMG HTTPS 检测:病毒,穿上马甲我也认识你


1. TMG HTTPS Inspection 介绍

TMG HTTPS Inspection (HTTPS 检测) 可以防止内部客户端访问一些非法的 HTTPS 网站。总体来说是为了避免客户端直接和外部服务器建立 SSL 连接,解决 SSL 加密的内容得不到检查而导致的安全问题。

2. TMG HTTPS Inspection 的处理过程

基本处理过程如下图所示

clip_image002

图1- HTTPS Inspection 处理过程

1) TMG 从配置存储服务器读取配置,包括读取 HTTPS Inspection 所用的 CA 证书。

2) 客户端发起连接 HTTP CONNECT 请求,这对客户端是透明的

3) TMG 与目标服务器建立 SSL 连接。

4) TMG 按照配置服务器证书来进行 HTTPS Inspection,流程如下:

a. 需要阻止站点:发送错误页给客户端;

b. 站点属于例外列表:TMG 关闭与服务器的连接,与客户端建立新的连接,发送”200 Connected” 给客户端。客户端和外部站点直接建立 SSL 连接;

c. 站点检查合法:与客户端建立 SSL 连接。

5) TMG 与客户端建立 SSL 连接。

您可以根据需求来修改 HTTP Inspection 的策略,例如,您可以修改证书有效时间,参见下图。

clip_image004

图2 – 证书检查策略

另外有一些界面上没有的证书检查策略,例如:

  • 证书名字是否匹配
  • 服务器证书是否信任
  • 服务器证书类型(是否是用于服务器验证)

3. 在 TMG 上部署 HTTPS Inspection 客户端容易发生的问题

任何一种安全策略应用到企业内部,都可能引起一些问题,或者收到最终用户的负面反馈, 用户常会抱怨原先一些能正常访问的网站,现在不能访问了。 用户可能认为 HTTPS 的连接是安全的,但殊不知,外部服务器可能使用假冒的服务器证书或者包含恶意代码。

虽然 HTTPS Inspection 能保护内部客户端访问一些 HTTPS 的恶意网站,但它也会引起部署问题。以下列出一些常见问题。

问题1: 客户端访问 HTTPS 网页时,收到 TMG 的报错:The page cannot be displayed – Error Code 502 (Proxy Error) – the certification authority that issued the SSL Server certificate supplied by a destination server is not trusted by the local computer.

原因: 这个问题是由于 TMG 不信任外部 HTTPS 站点的证书。对于大多数使用商业证书的网站,不会发生此类问题。如果需要让用户访问这些网站,TMG 管理员需要导入站点的 CA 证书到 TMG local trusted root certificate store。另外也可以把该站点加入到排除列表中,并设为不作证书检查。

问题2: 客户端访问一个 HTTPS 网站,收到报错:Error Code 502 (Proxy Error) – the name on the SSL server certificate supplied by a destination server does not match the name of the host requested.

原因: 证书名和访问的 URL 名字不匹配,有以下几种情况:

  • Web 服务器使用了通配符 (例如*.domain.com)
  • 客户端使用IP地址来访问 Web 服务器
  • TMG 上反向名字解析不匹配 (IP 地址到名字)

TMG 需要进行反向名字解析,来验证证书名是否和访问 URL 匹配。如果反向名字解析失败,TMG 不能完成证书名匹配。 如果客户端确实需要访问这些 HTTPS 站点,可以把域名加到排除列表中,并设为不作证书检查。

问题3: 客户端访问所有的 HTTPS 网站都会出现以下安全提示页面:

clip_image006

图3- Web 站点安全提示

原因:客户端没有信任 TMG 上的 HTTPS Inspection 所用的 CA 证书, 此 CA 证书 (例如:TMG 自签发的证书) 必须在客户端上进行部署,否则客户端不会信任 TMG 的 CA 证书。关于怎样部署 CA 证书,请参考 Deploying the HTTPS inspection trusted root CA certificate to client computers

问题4: 客户端使用 Firefox 浏览器访问所有 HTTPS 站点,会收到以下报错,IE 则不会。

clip_image008

图4- 使用 Firefox 浏览器访问 HTTPS 站点的报错

原因: 一些三方的浏览器,例如 Firefox 有它自己所维护的证书信任列表,而不会使用本地的 Windows 所使用的证书信任列表。 需要参考对应三方浏览器的文档,来导入 TMG 的 CA 证书。

问题5: 客户端在使用 TMG client 来访问 HTTPS 网站,需要弹出以下提示,说明 HTTPS 的网络流量在监控之下。但多次访问同一个 HTTPS 网站,该提示只会出现一次。

clip_image010

图5- TMG client 提示

原因: 默认情况下,该提示会缓存12小时。如果客户端不重启机器,在12小时内,对于同一个 HTTPS 站点只会弹出一次提示。可以在注册表内修改该默认值。

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\RAT\Stingray\Debug\FwcMgmt]

“FWC_MGMT_HTTPS_TEMPORARY_DISABLED_TIMEOUT”=dword:2932E00

默认值为十六进制2932E00毫秒,等于十进制 43200000 毫秒,等于 12 小时。这是用于 TMG Client 用户界面显示的设置,无需重启服务。

问题6: 访问一个需要客户端证书验证的 HTTPS 站点时,收到以下报错信息:

clip_image012

图6- 访问需要客户端证书验证的 HTTPS 站点时的报错

原因:TMG 不支持访问需要客户端证书验证的 HTTPS 站点,因为 TMG 没有用于验证的客户端证书。需要把该站点加到排除列表中,并设为不做证书检查。

4. 总结

在这片文章中,我们讨论了 TMG 2010 HTTPS Inspection 的基本功能和部署时可能遇到的常见问题。

转译自: http://blogs.technet.com/isablog/archive/2009/10/19/common-problems-while-implementing-https-inspection-on-forefront-tmg-2010-rc.aspx

James Yi
微软安全支持专家

Comments (0)

Skip to main content