【问题标题】:security used for communication the DB within EF Core用于在 EF Core 中与数据库通信的安全性
【发布时间】:2021-11-02 14:16:27
【问题描述】:

我需要知道在哪里可以找到有关从 EF Core 应用程序向数据库发送请求时使用的安全性的信息。我正在使用带有 .NET (netcoreapp3.1) 的 Azure 函数。这是我的连接字符串,尽管我需要了解有关通信流量的更多信息,尽管我已经加密了数据,即

Server=tcp:,1433;Initial Catalog=;Persist Security Info=False;User ID=;Password=;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection 超时=30;");

任何帮助都会很棒,干杯!

更新我需要知道是否正在使用 TLS1.2。

【问题讨论】:

    标签: c# entity-framework-core


    【解决方案1】:

    连接字符串的重要部分是encrypt=true - 这会强制客户端使用安全、加密的连接。正如您随后发现的那样,数据库服务器负责确定接受哪些协议 - 在 Azure 中,您可以将数据库服务器配置为至少接受 TLS 1.0、1.1 或 1.2,这是在防火墙和虚拟下的服务器级别设置的网络。

    documentation states

    加密
    为 true 时,如果服务器安装了证书,SQL Server 将对客户端和服务器之间发送的所有数据使用 SSL 加密。公认的值是真、假、是和否。有关详细信息,请参阅连接字符串语法。

    从 .NET Framework 4.5 开始,当 TrustServerCertificate 为 false 且 Encrypt 为 true 时,SQL Server SSL 证书中的服务器名称(或 IP 地址)必须与连接字符串中指定的服务器名称(或 IP 地址)完全匹配。否则,连接尝试将失败。

    【讨论】:

      【解决方案2】:

      刚刚在 Azure DB 上看到,您可以选择最小的 tls 版本,因此设置为 1.2,它将拒绝任何不在 1.2 的连接,因此这表明 EF Core 使用 tls 1.2 进行传输,因为它不拒绝。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-04-25
        • 2012-12-16
        • 1970-01-01
        相关资源
        最近更新 更多