SSL 证书
SRX 系列防火墙作为 SSL 代理,管理一端客户端与另一端服务器之间的 SSL 连接。SSL代理服务器通过加密技术确保数据的安全传输。SSL 依靠证书和私钥-公钥交换对来提供安全通信。在本主题中,您将了解如何在安全设备上为 SSL 连接生成和安装 SSL 证书。
配置和加载 SSL 证书
忽略服务器身份验证失败
服务器身份验证
客户端和设备之间的隐式信任(因为客户端接受设备生成的证书)是 SSL 代理的一个重要方面。服务器身份验证不受损害非常重要;然而,在现实中,自签名证书和有异常的证书很多。异常可能包括证书过期、公用名与域名不匹配的实例等。
服务器身份验证通过在 SSL 代理配置文件中设置 ignore-server-auth-failure 选项来控制。表 1 提供了设置此选项的结果。
[edit]user@host#set services ssl proxy profile profile-name actions ignore-server-auth-failure
| SSL 代理配置文件作 |
结果 |
|---|---|
| ignore-server-auth-failure未设置选项(默认选项) |
|
| ignore-server-auth-failure选项已设置 |
|
客户端身份验证
目前,SSL 代理不支持客户端身份验证。如果服务器请求客户端身份验证,则会发出证书不可用的警告。该警告让服务器确定是继续还是退出。
SSL 代理的证书撤消列表
请参阅 了解联机证书状态协议和证书吊销列表。
使用 SSL 代理的证书吊销列表
证书颁发机构 (CA) 使用证书吊销列表 (CRL) 定期发布已吊销的证书列表。安全设备下载并缓存最近发出的 CRL。CRL 包含序列号在其到期日期之前已取消的数字证书列表。
如果证书有可能遭到破坏,CA 将撤销颁发的证书。吊销证书的其他一些原因是:
-
未指定(没有给出具体原因)。
-
与颁发证书的证书或 CA 关联的私钥已泄露。
-
证书的所有者不再隶属于证书的颁发者
-
另一个证书替换原始证书。
-
颁发证书的 CA 已停止运行。
-
证书被搁置,等待进一步作。它被视为已撤销,但将来可能会被接受。
当参与设备使用数字证书时,它会检查证书签名和有效性。默认情况下,在 SSL 代理配置文件上启用 CRL 验证。
从 Junos OS 15.1X49-D30 版和 Junos OS 17.3R1 版开始,SRX 系列防火墙支持证书撤销列表 (CRL)。SRX 系列防火墙上的 CRL 验证包括检查服务器中是否已吊销证书。
在 SRX 系列防火墙上,默认情况下会为 SSL 代理配置文件启用证书吊销检查。您可以启用或禁用 CRL 验证以满足特定的安全要求。
当 CRL 信息由于 CRL 下载失败或根证书或中间证书中的 CRL 路径不可用等原因而不可用时,您可以允许或删除会话。
-
当 CRL 信息不可用时,允许会话。
[edit] user@host# set services ssl proxy profile profile-name actions crl if-not-present allow -
当 CRL 信息不可用时,丢弃会话。
[edit] user@host# set services ssl proxy profile profile-name actions crl if-not-present drop -
将 SRX 系列防火墙配置为接受没有可靠吊销状态确认的证书,并在证书被吊销且吊销原因被搁置时允许会话。
[edit] user@host# set services ssl proxy profile profile-name actions crl ignore-hold-instruction-code
SSL 性能增强
SRX 系列防火墙上的 SSL 性能增强包括以下功能:
优化 SSL 性能
SSL/TLS 握手是一个 CPU 密集型过程。由于 SSL/TLS 是 Web 上使用最广泛的安全协议,因此其性能会对 Web 性能产生重大影响。
从 Junos OS 15.1X49-D120 版开始,您可以使用以下选项来优化性能:
-
使用优化的 RSA 密钥交换
-
使用具有关联数据的身份验证加密 (AEAD)—AES128-CBC-SHA、AES256-CBC-SHA
-
维护证书缓存 — 证书缓存存储被禁止的服务器证书以及服务器证书详细信息。在 SSL/TLS 握手期间,SSL 代理可以向客户端提供缓存的禁止证书,而不是生成新的禁止证书。
提高 SSL 性能可以提高网站性能,而不会影响安全性和最大化的用户体验。
您可以选择为证书缓存配置以下设置。但是,我们建议保留默认值。
例:
-
(选答)设置证书缓存超时值(例如 - 300 秒)。
[edit]user@host# set services ssl proxy global-config certificate-cache-timeout 300在此示例中,证书缓存将证书详细信息存储 300 秒。默认超时值为 600 秒。
-
(选答)禁用证书缓存。
[edit]user@host# set services ssl proxy global-config disable-cert-cache禁用证书缓存时,设备将允许新连接的 SSL 完全握手。默认情况下,证书缓存处于启用状态。
-
(选答)使现有证书缓存失效。
[edit]user@host# set services ssl proxy global-config invalidate-cache-on-crl-update在此示例中,当更新证书吊销列表 (CRL) 时,设备会使现有证书缓存失效。默认情况下,CRL 更新上的无效证书缓存处于禁用状态。
会话恢复
SSL 会话恢复提供了一种机制,可使用已协商的会话 ID 恢复上一个会话。会话恢复为客户端和服务器节省了完整 SSL 握手和生成新主密钥的计算开销。
会话恢复可缩短握手过程并加速 SSL 事务,从而提高性能,同时保持适当的安全级别。
TLS 1.2 支持使用会话标识符和会话工单机制恢复会话。SSL 会话恢复包括以下步骤:
-
会话缓存机制可缓存会话信息,例如客户端和服务器的预主密钥密钥和商定的密码。
-
会话 ID 标识缓存的信息。
-
在随后的连接中,双方同意使用会话 ID 来检索信息,而不是创建预主密钥。
从 Junos OS 22.1R1 版开始,TLS 1.3 支持使用 SSL 代理中的预共享密钥 (PSK) 恢复会话。使用 PSK 恢复会话允许使用先前建立的共享密钥恢复会话,以减少 SSL 握手开销。
PSK 是从初始 TLS 握手派生的唯一加密密钥。TLS 握手成功后,服务器会向客户端发送 PSK 标识。客户端在将来的握手中使用该 PSK 标识来协商是否使用关联的 PSK 来恢复会话。
使用 TLS1.3 恢复 SSL 会话包括以下步骤:
-
在初始 TLS 握手后,服务器会向客户端发送一条新的会话工单消息,其中包含 PSK 身份(PSK 的加密副本)。
- 下次,当客户端尝试恢复会话时,它会在 Hello 消息中向服务器发送相同的会话票证。
- 服务器对消息进行解密,识别 PSK,并从其缓存中检索会话信息以恢复会话。
SSL-I(SSL 启动)使用 PSK 和 ECDHE 密钥交换模式,SSL-T(SSL 终止)使用 PSK 和 PSK 以及 ECDHE 交换模式。
SSL 代理会话支持连接两端的 TLS1.3 和 TLS1.2 及更早版本之间的互作性,以实现会话恢复。
默认情况下,为 SSL 代理启用会话恢复。您可以根据需要清除会话恢复或重新启用。
- 要清除会话恢复:
[edit] user@host# set services ssl proxy profile ssl actions disable-session-resumption
- 要重新启用会话恢复:
[edit] user@host# delete services ssl proxy profile ssl actions disable-session-resumption
使用以下命令配置会话超时值。
[edit]
user@host# set services ssl proxy global-config session-cache-timeout session-cache-timeout
会话重新协商
SRX 系列防火墙支持会话重新协商。创建会话并建立 SSL 隧道传输后,如果 SSL 参数发生更改,则需要重新协商。SSL 代理支持安全 (RFC 5746) 和非安全(TLS v1.0、TLS v1.1 和 TLS v1.2)重新协商。启用会话恢复后,会话重新协商在以下情况下很有用:
-
密码密钥需要在长时间的 SSL 会话后刷新。
-
需要使用更强的密码来实现更安全的连接。
如果通过更改证书、密码强度或受信任的 CA 列表来修改 SSL 代理配置文件,则当您提交修改后的策略时,系统将刷新缓存条目。在这种情况下,需要完全握手才能建立新的 SSL 参数。(对非 SSL 会话没有影响。)
如果未更改 SSL 代理配置文件,则不会刷新与该配置文件对应的缓存条目,并且会话将继续。
协商 SMTP 会话的 StartTLS
StartTLS 使 SMTP 会话从初始的普通 TCP 连接到更安全的 TLS 连接。在对等方之间成功协商后,StartTLS 允许服务器和客户端通过 TLS 层进行 SMTP 会话。StartTLS 将现有的不安全的普通 SMTP 连接升级为安全的 SSL/TLS 连接。
您可以设置阈值,以便在未从客户端收到 StartTLS 时决定在忽略会话之前等待多长时间。
您可以配置以下选项:
- byte-threshold - 如果未从客户端收到 StartTLS,则在忽略会话之前允许的未加密会话的最小字节数。范围 100 到 300。
- packet-threshold — 如果未从客户端收到 StartTLS,则在忽略会话之前,在客户端到服务器方向上允许的未加密数据包数。范围 1 到 15。
例:
[edit] user@host# set services ssl proxy global-config mail-threshold byte-threshold 100
在此示例中,SSL 代理允许 100 字节的纯(未加密)SMTP 流量。达到 100 字节后,如果未从客户端收到 StartTLS,它将忽略该会话。
[edit] user@host# set services ssl proxy global-config mail-threshold packet-threshold 2
在此示例中,SSL 代理允许 2 个纯(未加密)SMTP 流量数据包。到达 2 个数据包后,如果未从客户端收到 StartTLS,它将忽略该会话。
动态解析域名
与域名关联的IP地址是动态的,可以随时更改。每当域 IP 地址发生更改时,都会将其传播到 SSL 代理配置(类似于在防火墙策略配置中执行的作)。
变更历史表
是否支持某项功能取决于您使用的平台和版本。使用 功能浏览器 查看您使用的平台是否支持某项功能。
