问题
Golang的mTLS服务器在TLS握手过程中包含一个可接受的CA的Distinguished Names(DN)列表。在某些威胁模型中,服务器接受的CA名称可能表示信息泄露。特别是,如果CA是特定于用例的,并且包含有关客户的信息,例如来自Google空间的这个例子:https://buganizer.corp.google.com/issues/187209748
目前,tls/crypto包没有提供一种方法来禁用certificate_authorities
的填充,即使它不是握手过程的强制性部分。
解决方案
可以通过在tls.Config
中添加一个新的布尔字段(类似于DontAdvertiseClientCAs bool
)来解决这个问题,以便可选地禁用这种行为。
那些不希望公开CA名称的服务器可以通过翻转这个新设置来选择退出。
1条答案
按热度按时间wlwcrazw1#
cc @golang/security