GlobalProtect 客户端证书身份验证更改与潘-OS 7.1.4

GlobalProtect 客户端证书身份验证更改与潘-OS 7.1.4

35919
Created On 09/25/18 18:59 PM - Last Modified 04/20/20 23:58 PM


Resolution


本文档重点是在泛 OS 版本 7.1.4/7.0.10 (问题 ID 95864) 可能会影响使用客户端证书认证的 GlobalProtect 部署所做的更改。特别是, 这与使用 SHA512 或 SHA384 哈希算法对客户端证书进行签名的部署有关。问题也可能影响的用户在客户端证书的 SHA1/SHA256 签署,但由 SHA384/SHA512 签署的 CA 证书。

 

问题描述

升级到泛 OS 7.1.4/7.0.10 (或更高) 后, GlobalProtect 客户端是不能够使用签订 SHA512 或 SHA384 的客户端证书进行身份验证。GlobalProtect 代理是显示错误消息必需找不到客户端证书。

 

潘 OS 版本 7.1.4/7.0.10 之前的行为

在版本 7.1. 4/7.0. 10 之前, 如果使用TLS 1.2 , 则在 GlobalProtect 代理和 GlobalProtect 门户/网关之间进行 SSL 握手时, 我们有以下行为:

  • 客户端 (GP 代理) 发送客户端你好消息
  • (防火墙与 GP 门户/配置网关) 服务器发送服务器你好消息,以及服务器端证书
  • 如果防火墙侧 (' 证书配置文件 ' 配置) 配置客户端证书验证,服务器将向客户端发送证书请求消息
  • 证书请求消息中包含 (以及其他):

1. '可分辨名称列表中的 CAs 服务器期望客户端证书与签名 /

2. '签名的哈希算法' / 的列表进行哈希处理,服务器支持 * *

**此消息仅在使用 TLS 1.2 时发送;tls 1.1/tls 1.0 没有在标准中指定此消息

 713_Hash_Advertised.jpg

 

  • 我们可以看到,服务器发送下面的支持的哈希算法列表: SHA1、SHA384、SHA256 SHA512

 

客户端证书验证过程包括 (其他):

1. 验证客户端是否 posseses 播发证书的私钥;这是使用在握手过程中交换的 "证书验证" 消息完成的。

2. 验证客户端证书由机构颁发者提起 (证书链验证) 所述签名

  • 潘操作系统防火墙支持 SHA1 和 '证书验证' 消息验证,但 SHA384 和 SHA512 SHA256 散列不支持
  • 更高的哈希值不正确被广告在 TLS 1.2 (泛 OS 版本 7.1.3/7.0.9 及以下)
  • 同时,防火墙是能够验证证书链使用 SHA1、SHA384、SHA256 SHA512 
  • 用于 "证书验证" 消息的哈希算法需要匹配用于签署客户端证书 (由 CA 完成) 的算法 。
  • 我们可以有 SHA512 签署证书和 '证书验证' 的消息,签署的 SHA1 (使用算法由客户端操作系统 SSL 堆栈)
  • 在 TLS 1.2 证书验证消息可以由服务器 (在列表中支持的哈希值) 公布任何哈希签署 

 

'证书验证' 的消息是:

  • 用来证明客户端具有它已发送以前 (在 SSL 握手) 的证书的私钥
  • 创建通过使用客户端的私钥散列先前交换 SSL 握手消息
  • 经常进行散列使用 SHA1,与此哈希值由防火墙支持

 

即使与 SHA512,签署了证书,如果与 SHA1 或 SHA256 签署了 '证书验证' 的消息,我们仍然可以执行适当的证书验证: 既为发行人/链和客户端上拥有私人密钥

  Certificate_Verify.jpg

 

从防火墙调试日志:

2016-09-26 10:40:49.276 +0200 调试: pan_ssl3_server_process_handshake (pan_ssl_server: 1648): 接收证书验证 2016-09-26 10:40:49.276
+0200 调试: pan_ssl3_server_verify_client_certificate (pan_ssl_server. c: 1358): 在客户端证书, TLS1.2 或以上是与 SHA1 使用.

 

如果 '证书验证' 的消息最终成为签署由 SHA384 或 SHA512 (这两种算法都打广告),我们不能够正确验证证书

 

 

在潘-OS 版本 7.1.4 行为及更高版本

在 PAN OS 7.1. 4/7.0. 10 在 SSL 握手期间, 如果使用TLS 1.2 , 则会发生以下行为更改:

  • 客户端 (GlobalProtect 代理) 和服务器 (GlobalProtect 门户/网关) 交换 SSL 你好消息
  • 服务器通过发送证书请求要求客户端证书 
  • 证书申请现在一提我们实际上做支持 '证书验证' 的哈希值: SHA1 和 SHA256

 
714_Hash_Advertised.jpg

 

  

  • 如果客户端使用的是 SHA384 或 SHA512 签名的客户端证书, 则操作系统可以决定使用它们, 因为它们是用服务器不支持的算法进行哈希处理的.  
  • 如果客户端证书签订 SHA256/SHA1 哈希值,但 CA 签署与 SHA384/SHA512 类似可以发生
  • 最终的结果可能是客户端不会在所有发送证书和身份验证失败 
  • 身份验证可能是成功的如果操作系统决定发送证书和使用 SHA1/SHA256 ' 证书验证的消息

 714_Error_Zero_Lenght.jpg

 

 

变通方法

tls 1.1作为 opossed 到tls 1.2, 不会在 "证书请求" 消息中发送 "签名哈希算法" 列表 (支持的哈希).  如果我们限制 TLS/SSL 配置文件绑定到 GlobalProtect 门户/网关到 TLS 1.1,我们可以有类似于 pre-7.1.4/7.0.10 版本的行为。我们不会限制客户端可以用系统中发送证书具有更高的哈希值。请注意,此部署可以仍有问题,是否 '证书验证' 的消息用 SHA384/SHA512 签名。

 TLS_Profile_Changes.jpg

 

 

可以使用 TLS 1.2 SHA1/SHA256 签署证书。

 

如果使用的所有证书都是 SHA384 或更高,可以设置协议设置为 TLSv1.2 或更高

最大 tls.png

 

注意

潘-OS 7.1.8 添加支持 SHA384 客户端证书。从发行说明:

"PAN‐62057 固定在哪里的 GlobalProtect 代理无法使用客户端进行身份验证证书的问题已经不是 SHA1/SHA256 签名算法。 此修复程序,防火墙提供支助 client‐based 身份验证的 SHA384 签名算法"。



Actions
  • Print
  • Copy Link

    https://knowledgebase.paloaltonetworks.com/KCSArticleDetail?id=kA10g000000ClScCAK&lang=zh_CN&refURL=http%3A%2F%2Fknowledgebase.paloaltonetworks.com%2FKCSArticleDetail

Choose Language