Forefront TMG 2010使用HTTPS检查对加密通道进行控制
多年以来,用户一直被建议为执行安全的在线交易,必须使用带有SSL的HTTP (HTTPS)。但是,此安全通道也被用于恶意目的。用户使用HTTPS启动交易时,此通信通常是端到端(从用户到目标服务器)加密,从而使在两端之间交换的内容不会由两端之间的任何设备访问。虽然这是需要的行为,但由于您不希望任何人查看您的在线信用卡交易,由此造成的缺点是无法评估此通道内发生的恶意操作。
图4突出显示了使用ISA Server 2006作为防火墙时此操作的主要部分。
图4传统HTTPS方案
图4说明了客户端访问HTTPS站点的完整代理方案。总结起来,步骤分为两个主要阶段,概述如下:
阶段1 – SSL隧道
1. 客户端连接到Web代理。
2. 客户端发出SSL隧道请求:CONNECT malicious.contoso.com:443 HTTP/1.1。
3. Web代理将malicious.contoso.com解析为IP地址1.2.3.4。
4. Web代理在TCP端口443上连接到1.2.3.4。
5. Web代理将“200 OK”发送到客户端。
阶段2 –加密对话
1. 客户端与Web服务器交换SSL握手消息、加密密钥和证书。
2. 客户端现在与目标服务器建立了端到端的加密隧道,并将通过此隧道开始进行发送和接收方面的通信。
3. ISA Server使客户端与服务器之间的该隧道保持打开,但不检查通信,因为它没有此功能。
此方案中的阶段2存在潜在风险,边缘防火墙并不了解该通道中真正传输的内容。在目标服务器已被劫持并插入了恶意代码的情况下,存在的潜在风险是目标服务器将通过此加密通道发送恶意软件,而客户端将毫不迟疑地接收,因为恶意软件来自理应受信任的连接。
Forefront TMG HTTPS检查功能可检查通信,并在用户与服务器之间维护单独的加密通道,从而减少此威胁。
图5说明Forefront TMG如何达到此目的。
图5运行中的HTTPS检查
总结起来,步骤仍分为两个主要阶段,但该过程现在包括检查:
阶段1 –客户端请求
1. 客户端连接到TMG代理侦听器。
2. 客户端发出SSL隧道请求:CONNECT malicious.contoso.com:443 HTTP/1.1。
3. TMG将malicious.contoso.com解析为IP地址1.2.3.4。
4. TMG在TCP端口443上连接到1.2.3.4。
5. TMG与服务器协商SSL连接并评估证书。
6. 如果证书有效可信,则TMG将向客户端发送“200 OK”响应。
阶段2 –带有检查的加密对话
1. 客户端和TMG交换SSL握手消息、加密密钥和证书。请注意,由于TMG使用派生自Web服务器证书的信息构建服务器证书,因此客户端相信自身在与Web服务器通信。
2. 现在,客户端与Forefront TMG之间有加密隧道,而Forefront TMG与目标服务器之间有加密隧道。Forefront TMG将能够按以下顺序检查客户端与服务器之间的所有通信:
a) TMG接收并解密来自目标服务器的加密通信。
b) TMG将恶意软件检查功能和NIS筛选器应用到通信。
c) 如果恶意软件和NIS筛选器允许,TMG会加密结果并发送到客户端工作站。
d) 客户端将接收、解密并处理通信。
若要与客户端建立SSL握手,Forefront TMG需要服务器证书。为了创建证书,Forefront TMG根据原始服务器证书数据创建仿冒证书,并使用HTTPS检查CA证书对其签名。为确保获得最佳性能,Forefront TMG维护复制服务器证书的缓存。TMG将在本地缓存中搜索复制服务器证书,如果未找到证书,则会复制上游服务器证书并放在缓存中。缓存仅存储在内存中。因此,在重新启动防火墙服务后,仿冒证书缓存为空。
注意:缓存的大小(由证书数决定)由LowLevelSettings.ClonedCertificatesCacheSize COM属性控制。
HTTPS检查选项
配置HTTPS检查之前,了解组成此功能的完整功能集和选项非常重要。图6显示了可以配置HTTPS检查的区域。
图6HTTPS检查功能集
在计划实现HTTPS检查时,需要首先考虑证书设置,以确定是使用自签名证书还是由内部CA发出的证书。导入现有的受信任证书颁发机构时,需要有包含颁发机构的证书及其私钥的PFX文件。您需要此私钥对TMG发出的仿冒证书签名,还必须确保为证书签名设置了证书的密钥使用。随后,此CA证书必须部署在客户端计算机上(位于本地计算机证书存储区的“受信任根证书颁发机构”下);否则,客户端将不会信任从TMG接收的服务器证书。
在Forefront TMG上,可以通过Web访问策略启用HTTPS检查功能。请按以下步骤操作,启用此功能:
1. 在Forefront TMG控制台中,单击“Web访问策略”,然后在“任务”窗格的“Web保护任务”下选择“配置HTTPS检查”。
2. 在“HTTPS出站检查”屏幕的“常规”选项卡上,选择“启用HTTPS检查”复选框,如图7中所示。
图7启用HTTPS检查
本例中将使用Forefront TMG自签名证书。单击“生成”,此时将显示类似于图8中的页面。
图8“生成证书”窗口
1. 在“生成证书”页上,根据公司需要填写颁发者名称、过期日期和Issuer语句,然后单击“立即生成证书”。
2. 此时将生成新证书并弹出“证书”页。验证证书配置并单击“关闭”。
3. 单击“确定”以关闭窗口。
4. 在“HTTPS出站检查”窗口上,单击“HTTPS检查受信任的根CA证书选项”按钮。此时将显示“证书部署选项”窗口,如图9中所示。
图9选择如何部署证书
1. 如果TMG属于某个域,则建议的部署方法为“自动通过Active Directory”。选择此选项时,系统会自动使用组策略将TMG CA证书部署到客户端计算机。单击“域管理员凭据”按钮,然后键入将供此操作使用的凭据。单击“确定”。请注意,在用户名字段中不应包括域。
2.由于Forefront TMG使用certutil工具将TMG CA证书发布到Active Directory,因此您可能会看到命令提示简要窗口。依次在“自动证书部署成功”消息框和“证书部署选项”窗口上单击“确定”。
3. 单击“确定”以完成。
重要说明:除了满足组织的安全策略之外,在启用HTTPS检查功能之前,还需要评估所有法律和监管规章。可以将任何认定为不适合使用HTTPS检查的站点添加到例外列表中。
增强的用户体验
Forefront TMG中的HTTPS检查和URL筛选不仅有助于向最终用户提供受保护的网络漫游环境,还包括可增强最终用户体验的功能,这一点可以通过提供信息性消息以及提供直接与最终用户相关的自定义或精确错误消息来实现。
HTTPS客户端通知
为保证遵守公司的隐私策略,可以启用客户端通知,以便在对SSL站点进行检查时提醒最终用户,并向最终用户提供退出该站点的选项,从而保护最终用户认为或归类为个人信息的内容。图10说明了此行为。
图10HTTPS检查客户端通知
用户要接收HTTPS检查通知,客户端计算机必须安装了Forefront TMG Client,并且必须在本地计算机的“受信任根证书颁发机构”证书存储区中安装了HTTPS检查受信任根证书颁发机构。请记住,如果您具有上游和下游TMG配置,则需要在下游代理而非上游代理上启用HTTPS通知。
若要实现HTTPS检查客户端通知,必须同时在Forefront TMG服务器和客户端上启用它。若要在服务器上启用HTTPS检查通知,请执行以下操作:
1. 在Forefront TMG管理控制台中,单击“Web访问策略”。
2. 在右侧窗格中的“任务”下,单击“配置HTTPS检查”。
3. 在“客户端通知”选项卡上,单击“通知用户将检查HTTPS内容”,然后单击“确定”。
若要在Forefront TMG Client上启用通知,请执行以下操作:
1. 在系统任务栏中右键单击Forefront TMG Client图标,然后单击“配置”。
2. 在“安全连接检查”选项卡上,选择“需要检查发送到安全网站的内容时通知我”,然后单击“确定”。