Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Sistema de Plataforma de Análise (PDW)
Base de dados SQL no Microsoft Fabric
O SQL Server encripta sempre os pacotes de rede associados ao início de sessão. Se nenhum certificado for provisionado no servidor quando ele for iniciado, o SQL Server gerará um certificado autoassinado, que será usado para criptografar pacotes de logon.
Os certificados autoassinados não garantem segurança. O handshake criptografado é baseado no NT LAN Manager (NTLM). É altamente recomendável provisionar um certificado verificável no SQL Server para conectividade segura. A camada de segurança de transporte (TLS) só pode ser protegida com a validação do certificado.
Os aplicativos também podem solicitar a criptografia de todo o tráfego de rede usando palavras-chave de cadeia de conexão ou propriedades de conexão. As palavras-chave são "Encrypt" para OLE DB ao usar uma cadeia de caracteres de provedor com IDbInitialize::Initialize, ou "Usar criptografia para dados" para ADO e OLE DB ao usar uma cadeia de inicialização com IDataInitialize. A criptografia também pode ser configurada na máquina cliente no registro usando a opção Force Protocol Encryption . Para obter mais informações, consulte Configurações do Registro. Por padrão, a criptografia de todo o tráfego de rede para uma conexão requer um certificado sendo provisionado no servidor. Ao configurar seu cliente para confiar no certificado no servidor, você pode ficar vulnerável a ataques man-in-the-middle. Se você implantar um certificado verificável no servidor, certifique-se de alterar as configurações do cliente sobre como confiar no certificado para FALSE.
Para obter informações sobre palavras-chave de cadeia de conexão, consulte Usando palavras-chave de cadeia de conexão com o driver OLE DB para SQL Server.
Para permitir que a criptografia seja usada quando um certificado não é provisionado no servidor, as Force Protocol Encryption e Trust Server Certificate do cliente devem ser definidas. Nesse caso, a criptografia usa um certificado de servidor autoassinado sem validação se nenhum certificado verificável for provisionado no servidor.
Comportamento de criptografia e validação de certificado
As configurações do aplicativo nunca reduzem o nível de segurança definido no registro, mas podem fortalecê-lo. Para obter mais informações, consulte Configurações do Registro. Por exemplo, se Force Protocol Encryption não estiver definido para o cliente, um aplicativo pode solicitar a própria criptografia. Para garantir a criptografia mesmo quando um certificado de servidor não é provisionado, um aplicativo pode solicitar criptografia e habilitar TrustServerCertificateo . No entanto, se TrustServerCertificate não estiver habilitado na configuração do Registro do cliente, um certificado de servidor provisionado ainda será necessário.
A versão 19 do driver OLE DB para SQL Server introduz alterações significativas nas APIs relacionadas à criptografia. Para obter mais informações, consulte Alterações de propriedade de criptografia.
Versão principal 19
A tabela a seguir descreve a avaliação das configurações de criptografia:
| Forçar configuração de registro do cliente de criptografia de protocolo | Cadeia de conexão/atributo de conexão Criptografar/Usar criptografia para dados | Encriptação resultante |
|---|---|---|
| 0 (padrão) | Não/Opcional | Opcional |
| 0 (padrão) | Sim/Obrigatório (padrão) | Obrigatório |
| 0 (padrão) | Rigoroso | Rigoroso |
| 1 | Não/Opcional | Obrigatório |
| 1 | Sim/Obrigatório (padrão) | Obrigatório |
| 1 | Rigoroso | Rigoroso |
| 2 | Ignorado | Rigoroso |
A tabela a seguir descreve a criptografia e a validação resultantes:
| Encriptação | Configuração do Registro do Cliente de Certificado de Servidor Confiável | Cadeia de conexão/atributo de conexão Certificado de servidor confiável | Resultado |
|---|---|---|---|
| Opcional | N/A | N/A | A criptografia ocorre apenas para pacotes LOGIN. |
| Obrigatório | 0 | Ignorado | A criptografia ocorre somente se houver um certificado de servidor verificável, caso contrário, a tentativa de conexão falhará. |
| Obrigatório | 1 (padrão) | Não (padrão) | A criptografia ocorre somente se houver um certificado de servidor verificável, caso contrário, a tentativa de conexão falhará. |
| Obrigatório | 1 (padrão) | Sim | A criptografia sempre ocorre, mas pode usar um certificado de servidor autoassinado. |
| Rigoroso | N/A | N/A | A criptografia ocorre somente se houver um certificado de servidor verificável, caso contrário, a tentativa de conexão falhará. |
Observação
Nas versões 19.0 a 19.3, durante a instalação, a configuração padrão do Registro do cliente de Certificado do Servidor Confiável é lida da configuração do Registro da versão 18, se ela existir.
Atenção
A tabela anterior fornece apenas um guia sobre o comportamento do sistema em diferentes configurações. Para conectividade segura, certifique-se de que o cliente e o servidor exijam criptografia (para configuração do lado do servidor, consulte Configurar configurações de criptografia no SQL Server). Verifique também se o servidor tem um certificado verificável e se a TrustServerCertificate configuração no cliente está definida como FALSE.
Observação
A partir da versão 19.2 do driver OLE DB, as conexões TDS 8.0 podem ser configuradas para usar TLS 1.3. Para obter mais informações, consulte Suporte a TLS 1.3.
Versão principal 18 com novos métodos de autenticação
Para as versões 18.x.x, para melhorar a segurança, quando as novas palavras-chave da cadeia de conexão Authentication ou Access Token (ou suas propriedades correspondentes) são usadas, o driver substitui o valor de criptografia padrão definindo-o como yes. A substituição acontece no momento da inicialização do objeto da fonte de dados. Se a criptografia for definida antes da inicialização por qualquer meio, o valor será respeitado e não substituído.
Observação
Em aplicativos ADO e em aplicativos que obtêm a IDBInitialize interface por meio IDataInitialize::GetDataSourcedo , o componente principal que implementa a interface define explicitamente a criptografia para seu valor padrão de no. Como resultado, as novas propriedades/palavras-chave de autenticação respeitam essa configuração e o valor de criptografia não é substituído. Portanto, é recomendável que esses aplicativos sejam explicitamente definidos Use Encryption for Data=true para substituir o valor padrão.
Para melhorar a segurança, os novos métodos de autenticação respeitam a TrustServerCertificate configuração (e suas palavras-chave/propriedades de cadeia de conexão correspondentes) independentemente da configuração de criptografia do cliente. Como resultado, o certificado do servidor é validado por padrão. O driver determina se o certificado do servidor deve ser validado da seguinte maneira:
| Configuração do cliente de Certificado do Servidor Confiável | Cadeia de conexão/atributo de conexão Certificado de servidor confiável | Validação do certificado |
|---|---|---|
| 0 | Não (padrão) | Sim |
| 0 | Sim | Sim |
| 1 | Não (padrão) | Sim |
| 1 | Sim | Não |
A tabela a seguir descreve a avaliação das configurações de criptografia:
| Forçar configuração do cliente de criptografia de protocolo | Cadeia de conexão/atributo de conexão Criptografar/Usar criptografia para dados | Encriptação resultante |
|---|---|---|
| 0 | Não (padrão) | Não |
| 0 | Sim | Sim |
| 1 | Não (padrão) | Sim |
| 1 | Sim | Sim |
A tabela a seguir descreve a criptografia e a validação resultantes:
| Encriptação resultante | Validação do certificado | Resultado |
|---|---|---|
| Não | Não | A criptografia ocorre apenas para pacotes LOGIN. |
| Não | Sim | A criptografia ocorre para pacotes LOGIN somente se houver um certificado de servidor verificável, caso contrário, a tentativa de conexão falhará. |
| Sim | Não | A criptografia de todo o tráfego de rede sempre ocorre, mas pode usar um certificado de servidor autoassinado. |
| Sim | Sim | A criptografia de todo o tráfego de rede ocorre somente se houver um certificado de servidor verificável, caso contrário, a tentativa de conexão falhará. |
Versão principal 18 com métodos de autenticação herdados
A tabela a seguir descreve o resultado da criptografia e da validação para métodos de autenticação herdados:
| Forçar configuração do cliente de criptografia de protocolo | Configuração do cliente de Certificado do Servidor Confiável | Cadeia de conexão/atributo de conexão Criptografar/Usar criptografia para dados | Cadeia de conexão/atributo de conexão Certificado de servidor confiável | Resultado |
|---|---|---|---|---|
| 0 | N/A | Não (padrão) | N/A | A criptografia ocorre apenas para pacotes LOGIN. |
| 0 | N/A | Sim | Não (padrão) | A criptografia de todo o tráfego de rede ocorre somente se houver um certificado de servidor verificável, caso contrário, a tentativa de conexão falhará. |
| 0 | N/A | Sim | Sim | A criptografia de todo o tráfego de rede sempre ocorre, mas pode usar um certificado de servidor autoassinado. |
| 1 | 0 | Ignorado | Ignorado | A criptografia de todo o tráfego de rede ocorre somente se houver um certificado de servidor verificável, caso contrário, a tentativa de conexão falhará. |
| 1 | 1 | Não (padrão) | N/A | A criptografia de todo o tráfego de rede sempre ocorre, mas pode usar um certificado de servidor autoassinado. |
| 1 | 1 | Sim | Não (padrão) | A criptografia de todo o tráfego de rede ocorre somente se houver um certificado de servidor verificável, caso contrário, a tentativa de conexão falhará. |
| 1 | 1 | Sim | Sim | A criptografia de todo o tráfego de rede sempre ocorre, mas pode usar um certificado de servidor autoassinado. |
Ver também
Driver OLE DB do para recursos do SQL Server
Propriedades de inicialização e autorização
Palavras-chave da cadeia de conexão
Principais diferenças de versão
Configurações do Registro