【问题标题】:How to disable weak cipher suits by code in ASP.Core Kestrel?如何通过 ASP.Core Kestrel 中的代码禁用弱密码套装?
【发布时间】:2019-08-23 15:02:10
【问题描述】:

我有一个 Web API,由一个使用 Kestrel 网络服务器的简单 ASP.Core 应用程序托管。网络服务器在 Ubuntu linux 下的普通 ASP.Core docker 容器中运行(没有安装 IIS)。

我们使用 SSL 服务器测试来确定 SSL 配置是否被认为是安全的: https://www.ssllabs.com/ssltest/index.html

目前我们的评分是 F-(最差,有点糟糕)。

我们只启用很好的 TLS 1.2,但显然我们的 TLS 1.2 配置支持以下被认为非常不安全的密码套件:

此服务器支持匿名(不安全)套件(详见下文)。等级设置为 F。

TLS_ECDH_anon_WITH_AES_256_CBC_SHA (0xc019) 不安全 256 TLS_ECDH_anon_WITH_AES_128_CBC_SHA (0xc018) 不安全 128

如何在容器中运行的 Kestrel 网络服务器上禁用这些加密机制?最好通过向应用程序添加代码,这样我们仍然可以独立于配置。

我已经通过添加以下代码禁用了不安全的 SSLv3、TLS 1.0 和 TLS 1.1:

httpsOptions.SslProtocols = System.Security.Authentication.SslProtocols.Tls12;

【问题讨论】:

    标签: security ssl asp.net-core kestrel-http-server


    【解决方案1】:

    解决方案是从 ASP Core 2.2 升级到 ASP Core 3.0-preview8

    此问题已在 ASP Core 3.0-preview6 及更高版本中得到修复。默认情况下,现在禁用不安全的密码套装。 SSL 测试等级从 F 变为 B,无需更改代码。在此处查看有关 Kestrel 密码套装的详细信息:https://github.com/aspnet/AspNetCore/issues/9349

    ASP Core 3.0-preview8 被认为是生产稳定的,从 2.2 迁移服务器很容易(即使有 IdentityServer4 库依赖)。以下是我们迁移服务器时遵循的说明: https://docs.microsoft.com/en-us/aspnet/core/migration/22-to-30

    【讨论】:

      猜你喜欢
      • 2020-06-30
      • 2018-08-24
      • 2017-04-02
      • 1970-01-01
      • 2023-01-19
      • 2021-05-02
      • 2021-04-17
      • 2016-04-22
      • 2012-12-05
      相关资源
      最近更新 更多