Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
O Microsoft JDBC Driver para SQL Server suporta a execução em JVMs configuradas para serem compatíveis com FIPS 140.
Pré-requisitos
- JVM configurada por FIPS
- Certificado TLS/SSL Apropriado
- Ficheiros de políticas apropriados
- Parâmetros de Configuração Apropriados
JVM configurada por FIPS
Geralmente, as aplicações podem configurar o java.security ficheiro para usar fornecedores criptográficos compatíveis com FIPS. Consulte a documentação específica da sua JVM para saber como configurar a conformidade com o FIPS 140.
Para ver os módulos aprovados para a Configuração FIPS, consulte Módulos Validados no Programa de Validação de Módulos Criptográficos.
Os fornecedores podem ter alguns passos adicionais para configurar uma JVM com FIPS.
Certificado TLS apropriado
Para se ligar ao SQL Server em modo FIPS, é necessário um Certificado TLS/SSL válido. Instale-o ou importe para a Java Key Store na máquina cliente (JVM) onde o FIPS está ativado.
Importação de certificado TLS na Java KeyStore
Para FIPS, é provável que precise importar o certificado (.cert) em formato PKCS ou num formato específico do fornecedor. Use o seguinte excerto para importar o certificado TLS/SSL e armazená-lo numa pasta funcional com o formato KeyStore apropriado. TRUST_STORE_PASSWORD é a tua palavra-passe para a Java KeyStore.
public void saveGenericKeyStore(
String provider,
String trustStoreType,
String certName,
String certPath
) throws KeyStoreException, CertificateException,
NoSuchAlgorithmException, NoSuchProviderException,
IOException
{
KeyStore ks = KeyStore.getInstance(trustStoreType, provider);
FileOutputStream os = new FileOutputStream("./MyTrustStore_" + trustStoreType);
ks.load(null, null);
ks.setCertificateEntry(certName, getCertificate(certPath));
ks.store(os, TRUST_STORE_PASSWORD.toCharArray());
os.flush();
os.close();
}
private Certificate getCertificate(String pathName)
throws FileNotFoundException, CertificateException
{
FileInputStream fis = new FileInputStream(pathName);
CertificateFactory cf = CertificateFactory.getInstance("X.509");
return cf.generateCertificate(fis);
}
O exemplo seguinte é a importação de um Certificado Azure TLS/SSL em formato PKCS12 com o Fornecedor BouncyCastle. O certificado é importado para o diretório de trabalho denominado MyTrustStore_PKCS12 usando o seguinte excerto:
saveGenericKeyStore(BCFIPS, PKCS12, "SQLAzure SSL Certificate Name", "SQLAzure.cer");
Ficheiros de políticas apropriados
Para alguns Fornecedores FIPS, são necessários ficheiros JAR de política irrestrita. Nesses casos, para Sun / Oracle, descarregue os Ficheiros de Política de Jurisdição de Força Ilimitada da Java Cryptography Extension (JCE) para JRE 8 ou JRE 7.
Parâmetros de configuração apropriados
Para executar o Driver JDBC em modo compatível com FIPS, configure as propriedades da ligação conforme mostrado na tabela seguinte.
Propriedades
| Propriedade | Tipo | Predefinido | Description | Observações |
|---|---|---|---|---|
encrypt |
String ["verdadeiro / falso / estrito"] | verdadeiro | Para uma JVM com FIPS ativado, a definição de encriptação deve ser ativada | O padrão mudou de falso para verdadeiro na versão 10.2. Na versão 11.2.0, o tipo mudou de booleano para String e foi adicionada a opção estrita para permitir suporte a TDS 8.0. |
TrustServerCertificate |
Booleano ["verdadeiro / falso"] | falso | Para o FIPS, o utilizador precisa de validar a cadeia de certificados, pelo que deve usar o valor "falso" para esta propriedade. | |
trustStore |
String | null | O caminho do ficheiro Java Keystore onde importou o seu certificado. Se instalares o certificado no teu sistema, então não precisas de passar nada. O driver utiliza ficheiros cacerts ou jssecacerts. | |
trustStorePassword |
String | null | A senha usada para verificar a integridade dos dados trustStore. | |
fips |
Booleano ["verdadeiro / falso"] | falso | Para JVM com FIPS esta propriedade deve ser verdadeira | Adicionado em 6.1.4 (Versão estável 6.2.2) |
fipsProvider |
String | null | Provedor FIPS configurado na JVM. Por exemplo, BCFIPS ou SunPKCS11-NSS | Adicionado em 6.1.2 (versão estável 6.2.2), descontinuado em 6.4.0. Para mais informações, consulte Remoção de propriedade de conexão - fipsProvider. |
trustStoreType |
String | JKS | Para o modo FIPS, defina o tipo de armazenamento de confiança, seja PKCS12 ou tipo definido pelo fornecedor FIPS | Adicionado em 6.1.2 (Versão estável 6.2.2) |