IDP SSL 检测
IDP SSL 检测使 SRX 系列防火墙能够通过任意端口检测 SSL 加密的 HTTP 流量。
SSL 是 TLS 的前身,是一种用于 Web 安全的协议套件,可提供身份验证、机密性和消息完整性。身份验证通过使浏览器能够验证 Web 服务器的身份来防止欺诈性传输。保密机制确保通信是私密的。SSL 通过加密数据来实施机密性,以防止未经授权的用户窃听电子通信。最后,消息完整性可确保通信内容未被篡改。
有关更多信息,请参阅以下主题:
IDP SSL 概述
每个 SSL 会话都以握手开始,在此期间,客户端和服务器就用于该会话的特定安全密钥和加密算法达成一致。此时,客户端还会对服务器进行身份验证。(可选)服务器可以对客户端进行身份验证。握手完成后,就可以开始传输加密数据。
瞻博网络提供入侵检测和防御 (IDP) SSL 检测,该检测使用 SSL 协议套件,该套件由不同的 SSL 版本、密码和密钥交换方法组成。SSL 检测功能与应用识别功能相结合,使 SRX 系列防火墙能够检查任意端口上以 SSL 加密的 HTTP 流量。支持以下 SSL 协议:
SSLv2
SSLv3
TLS
另见
支持的 IDP SSL 密码
SSL 密码包括加密密码、身份验证方法和压缩。Junos OS 支持所有 OPENSSL 支持的不涉及使用临时私钥的密码。对于身份验证,支持 NULL、MD5 和 SHA-1 身份验证方法。
不支持压缩和 SSLv2 密码。目前,当在客户端“hello”消息中收到 SSLv2 密码时,大多数 SSL 服务器会自动升级到 TLS 密码。检查您的浏览器,了解密码的强度以及您的浏览器支持哪些密码。(如果密码不在支持的密码列表中,则忽略该会话以进行深度包检测。
表 1 显示了 SRX 系列防火墙支持的加密算法。
密码 | 可导出 | 类型 | 密钥材料 | 扩展密钥材料 | 有效密钥位 | IV 大小 |
---|---|---|---|---|---|---|
零 |
不 |
流 |
0 |
0 |
0 |
不适用 |
DES-CBC-SHA |
不 |
块 |
8 |
8 |
56 |
8 |
DES-CBC3-SHA |
不 |
块 |
24 |
24 |
168 |
8 |
AES128-SHA系列 |
不 |
块 |
16 |
16 |
128 |
16 |
AES256-SHA |
不 |
块 |
32 |
32 |
256 |
16 |
有关加密算法的详细信息,请参阅 IPsec VPN 概述 /documentation/us/en/software/junos/vpn-ipsec/topics/topic-map/security-ipsec-vpn-overview.html。 表 2 显示了支持的 SSL 密码。
Cipher Suites | 价值 |
---|---|
TLS_RSA_WITH_NULL_MD5 TLS_RSA_WITH_NULL_SHA TLS_RSA_WITH_DES_CBC_SHA TLS_RSA_WITH_3DES_EDE_CBC_SHA TLS_RSA_WITH_AES_128_CBC_SHA TLS_RSA_WITH_AES_256_CBC_SHA |
0x0001 0x0002 0x0009 0x000A 0x002F 0x0035 |
由于许可证和 OPENSSL 库的可用性,不支持 RC4 和 IDEA 密码。
了解 IDP 互联网密钥交换
互联网密钥交换 (IKE) 建立预主密钥,用于生成对称密钥,以便进行批量数据加密和身份验证。RFC 2246 的第 F.1.1 节定义了传输层安全 (TLS) 身份验证和密钥交换方法。三种关键的交换方式是:
RSA - Rivest-Shamir-Adleman (RSA) 是一种密钥交换算法,用于控制参与方创建对称密钥或在 SSL 会话期间使用的密钥的方式。RSA 密钥交换算法是最常用的方法。
DSA - 数字签名算法 (DSA) 为 IKE 第 1 阶段提议添加了一个附加身份验证选项。DSA 的配置和行为方式与 RSA 类似,要求用户导入或创建 DSA 证书,并配置 IKE 提议以使用 DSA。数字证书用于 IKE 协议中的 RSA 签名、DSA 签名和基于 RSA 公钥加密的身份验证方法。
Diffie-Hellman— Diffie-Hellman (DH) 是一种密钥交换方法,允许参与者产生共享的密钥值。该技术的优势在于,它允许参与方通过不安全的介质创建密钥值,而不必通过有线网络传递密钥值。
密钥交换方法可以使用固定或临时服务器密钥。仅当使用固定服务器密钥时,IDP 才能成功检索预主密钥。有关互联网密钥交换的详细信息,请参阅 Junos OS 中 PKI 的基本要素。
瞻博网络 IDP 不会解密使用 Diffie-Hellman 密钥交换的 SSL 会话。
IDP 加密密钥处理概述
借助入侵检测和防御 (IDP) 安全套接字层 (SSL) 解密功能,SRX 系列防火墙将配置的 RSA 私有密钥加载到内存中,并使用这些私有密钥建立 SSL 会话密钥以解密数据。在使用密钥执行正常加密或解密作之前,需要 IDP 来解密 RSA 密钥并检查完整性。
此功能的主要目的是确保 IDP 使用的 RSA 私钥不会以纯文本形式存储,也不会以易于理解或可用的格式存储。密钥经过解密,可执行正常的加密或解密作。此功能还涉及在将密钥从一个内存位置复制到另一个内存位置期间进行错误检测检查,以及在不再需要密钥时以非零模式覆盖中间存储。
set security idp sensor-configuration ssl-inspection key-protection
CLI 配置命令用于启用此功能。
了解 IDP SSL 服务器密钥管理和策略配置
该设备最多可支持 1000 个服务器私钥。每个密钥最多可以有 100 个使用它的服务器。无论设备上可用的 SPU 数量如何,此容量都是相同的,因为基本上每个 SPU 都需要能够访问所有密钥。
多个服务器可以共享同一个私钥;但是,一台服务器只能有一个私钥。默认情况下,SSL 解密处于禁用状态。支持普通密钥和加密密钥。
Junos OS 不加密 SSL 密钥文件。
您可以使用 set security idp sensor-configuration ssl-inspection session-id-cache-timeout 命令设置 SSL 会话 ID 缓存超时参数的值。缓存超时参数的默认值为 600 秒。
配置 IDP SSL 检查(CLI 过程)
默认情况下,SSL 解码器处于启用状态。如果需要通过 CLI 手动启用它,请使用以下 CLI 命令。
set security idp sensor-configuration detector protocol-name SSL tunable-name sc_ssl_flags tuneable-value 1
要配置 IDP SSL 检查,请使用以下 CLI 过程:
[edit security] idp { sensor-configuration { ssl-inspection { sessions <number>; } }
现在,传感器会检查其具有密钥/服务器对的流量。
每个 SPU 支持的最大会话数:默认值为 10,000,范围为 1 到 100,000。会话限制是按 SPU 计算的,无论设备上的 SPU 数量如何,会话限制都是相同的。
添加 IDP SSL 密钥和关联的服务器
安装密钥时,可以对密钥进行密码保护,还可以将其关联到服务器。
要安装隐私增强型邮件 (PEM) 密钥,请使用以下 CLI 命令:
request security idp ssl-inspection key add key-name file file-path server server-ip password password-string
在双节点 SRX 系列群集中,必须将密钥手动复制到同一位置的节点 0 和节点 1,request 命令才能成功。
您也可以在以后使用添加服务器 CLI 命令将密钥与服务器相关联。服务器只能与一个密钥相关联。要将服务器与已安装的密钥相关联,请使用以下 CLI 命令:
request security idp ssl-inspection key add key-name server server-ip
最大键名长度为 32 个字节,包括结尾“\0”。
删除 IDP SSL 密钥和关联的服务器
要删除所有密钥和服务器,请使用以下 CLI 命令:
user@host> request security idp ssl-inspection key delete
所有已安装的密钥都将与任何关联的服务器一起删除。
要删除特定密钥以及使用该密钥的所有关联服务器,请使用以下 CLI 命令:
user@host> request security idp ssl-inspection key delete <key-name>
删除指定的密钥以及与该密钥关联的所有服务器。
要删除单个服务器,请使用以下 CLI 命令:
user@host> request security idp ssl-inspection key delete <key-name> server <server-ip>
删除绑定到指定项的指定服务器。
显示 IDP SSL 密钥和关联的服务器
-
要显示所有已安装的服务器密钥和关联的服务器,请使用以下 CLI 命令:
user@host> show security idp ssl-inspection key
显示所有服务器密钥以及与这些密钥绑定的 IP 地址。以下示例显示了使用命令时
show security idp ssl-inspection key
的 CLI 输出:Total SSL keys : 2 SSL server key and ip address : Key : key1, server : 10.1.1.1 Key : key2, server : 10.2.2.2 Key : key2, server : 10.2.2.3
-
要显示绑定到特定密钥的 IP 地址,请使用以下 CLI 命令:
user@host> show security idp ssl-inspection key <key-name>
以下是使用命令时
show security idp ssl-inspection key <key-name>
接收的 CLI 输出示例:Key : key1, server : 10.1.1.1
示例:启用 SSL 代理时配置 IDP
此示例介绍在启用 SSL 代理时,IDP 如何支持应用程序标识 (AppID) 功能。
要求
开始之前:
创建区域。请参阅 示例:创建安全区域。
使用策略的地址配置通讯簿。请参阅 示例:配置通讯簿和地址集。
创建一个应用程序(或应用程序集),指示策略适用于该类型的流量。请参阅 示例:配置安全策略应用程序和应用程序集。
创建通过策略启用 SSL 代理的 SSL 代理配置文件。请参阅 配置 SSL 转发代理。
将 IDP 策略配置为活动策略。
概述
此示例说明如何在启用 SSL 代理时在策略规则中配置 IDP。
配置
CLI 快速配置
要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改详细信息,以便与网络配置匹配,然后将命令复制并粘贴到层 [edit]
级的 CLI 中,然后从配置模式进入 commit
。
set security policies from-zone Z_1 to-zone Z_2 policy policy1 match source-address any set security policies from-zone Z_1 to-zone Z_2 policy policy1 match destination-address any set security policies from-zone Z_1 to-zone Z_2 policy policy1 match application junos-https set security policies from-zone Z_1 to-zone Z_2 policy policy1 then permit application-services ssl-proxy profile-name ssl-profile-1 set security policies from-zone Z_1 to-zone Z_2 policy policy1 then permit application-services idp
程序
分步过程
下面的示例要求您在各个配置层级中进行导航。有关作说明,请参阅 CLI 用户指南中的在配置模式下使用 CLI 编辑器。
在此示例中,您将配置使用 IDP 作为应用程序服务的安全策略。
配置策略以通过 SSL 代理配置文件 ssl-profile-1 处理流量。
[edit security policies from-zone Z_1 to-zone Z_2 policy policy1 user@host# set match source-address any user@host# set match destination-address any user@host# set match application junos-https user@host# set then permit application-services ssl-proxy profile-name ssl-profile-1
将 IDP 定义为应用程序服务。
[edit security policies from-zone Z_1 to-zone Z_2 policy policy1 user@host# set then permit application-services idp
结果
在配置模式下,输入 show security policies
命令以确认您的配置。如果输出未显示预期的配置,请重复此示例中的配置说明,以便进行更正。
验证
验证配置是否工作正常。IDP 中的验证类似于应用程序防火墙中的验证。请参阅 应用防火墙。