Somos obrigados a usar criptografia com o SQL Server, por isso habilitamos o ForceEncryption. De acordo com a documentação, caso não seja fornecido um certificado, o SQL Server irá gerar seu próprio certificado interno para fazer a criptografia.
Precisamos entender que nível de criptografia isso fornece. Acho que geralmente usamos certificados de 2.048 bits.
Em qual armazenamento de certificados está localizado o certificado interno/substituto? E como podemos obter o nível de criptografia?
Responder1
Por padrão, o certificado está localizado no registro, em:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL.x\MSSQLServer\SuperSocketNetLib
(Onde MSSQL.x
é MSSQL.x é um espaço reservado para o valor correspondente da instância do SQL Server.)
Se o SQL Server não conseguir encontrar um certificado nesse local, ele voltará a procurar no armazenamento de certificados um certificado com o FQDN do computador em que está instalado. Por padrão, esse certificado seria o certificado da máquina, encontrado em Local Computer
-> Personal
-> Certificates
por meio do snap-in Certificados MMC.
Você verificaria o comprimento da chave (e outras propriedades) deste (ou de qualquer) certificado por meio do snap-in Certificados MMC, navegando até ele, clicando duas vezes nele e, em seguida, clicando na Details
guia na caixa de diálogo seguinte que aparece para o certificado.
Se esse certificado também não estiver disponível, o SQL Server gerará um certificado substituto autoassinado e o usará para criptografia. Você pode visualizar a impressão digital ou o certificado que está sendo usado ao visualizar os logs de erros quando o serviço SQL é reiniciado. A localização deste certificado substituto não é oficialmente conhecida e outros fóruns sugeriram que ele provavelmente reside na memória.Consulte aqui para mais informações