Share via


FIPS-modus

JDBC-stuurprogramma downloaden

Het Microsoft JDBC-stuurprogramma voor SQL Server ondersteunt uitvoering in JVM's die zijn geconfigureerd als FIPS 140-compatibel.

Vereiste voorwaarden

  • FIPS-geconfigureerde JVM
  • Passend TLS/SSL-certificaat
  • Geschikte beleidsbestanden
  • Juiste configuratieparameters

FIPS-geconfigureerde JVM

Over het algemeen kunnen toepassingen het java.security bestand configureren voor het gebruik van CRYPTO-providers die compatibel zijn met FIPS. Zie de documentatie die specifiek is voor uw JVM voor het configureren van FIPS 140-naleving.

Als u de goedgekeurde modules voor FIPS-configuratie wilt zien, raadpleegt u Gevalideerde modules in het validatieprogramma voor cryptografische modules.

Leveranciers hebben mogelijk nog enkele stappen voor het configureren van een JVM met FIPS.

Geschikt TLS-certificaat

Als u verbinding wilt maken met SQL Server in de FIPS-modus, is een geldig TLS/SSL-certificaat vereist. Installeer of importeer deze in de Java Key Store op de clientcomputer (JVM) waarvoor FIPS is ingeschakeld.

TLS-certificaat importeren in Java KeyStore

Voor FIPS moet u waarschijnlijk het certificaat (.cert) importeren in PKCS of een providerspecifieke indeling. Gebruik het volgende codefragment om het TLS/SSL-certificaat te importeren en op te slaan in een werkmap met de juiste KeyStore-indeling. TRUST_STORE_PASSWORD is uw wachtwoord voor 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);
}

In het volgende voorbeeld wordt een Azure TLS/SSL-certificaat in PKCS12-indeling geïmporteerd met de BouncyCastle-provider. Het certificaat wordt geïmporteerd in de werkmap met de naam MyTrustStore_PKCS12 met behulp van het volgende fragment:

saveGenericKeyStore(BCFIPS, PKCS12, "SQLAzure SSL Certificate Name", "SQLAzure.cer");

Passende beleidsbestanden

Voor sommige FIPS-providers zijn onbeperkte policy JAR-bestanden nodig. In dergelijke gevallen downloadt u voor Sun/Oracle de Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files voor JRE 8 of JRE 7.

Geschikte configuratieparameters

Als u het JDBC-stuurprogramma in de FIPS-compatibele modus wilt uitvoeren, configureert u verbindingseigenschappen, zoals wordt weergegeven in de volgende tabel.

Eigenschappen

Vastgoed Typologie Verstek Description Opmerkingen
encrypt Tekenreeks ["true / false / strict"] waar Voor een FIPS-ingeschakelde JVM moet de eigenschap 'versleuteling' waar zijn. De standaard is gewijzigd van false naar true in versie 10.2. In versie 11.2.0 is het type gewijzigd van boolean naar tekenreeks en is de strikte optie toegevoegd voor ondersteuning van TDS 8.0.
TrustServerCertificate Booleaanse waarde ["waar / onwaar"] "onwaar" Voor FIPS moet de gebruiker de certificaatketen valideren, dus moet de gebruiker de waarde 'false' voor deze eigenschap gebruiken.
trustStore Snaar / Touwtje Nul Uw Java Keystore-bestandspad waarin u uw certificaat hebt geïmporteerd. Als u een certificaat op uw systeem installeert, hoeft u niets door te geven. Stuurprogramma maakt gebruik van cacerts- of jssecacerts-bestanden.
trustStorePassword Snaar / Touwtje Nul Het wachtwoord dat wordt gebruikt om de integriteit van de trustStore-gegevens te controleren.
fips Booleaanse waarde ["waar / onwaar"] "onwaar" Voor fips ingeschakelde JVM moet deze eigenschap waar zijn Toegevoegd in 6.1.4 (Stabiele release 6.2.2)
fipsProvider Snaar / Touwtje Nul FIPS-provider geconfigureerd in JVM. Bijvoorbeeld BCFIPS of SunPKCS11-NSS Toegevoegd in 6.1.2 (Stabiele release 6.2.2), afgeschaft in 6.4.0. Zie De eigenschap Verbinding verwijderen - fipsProvider voor meer informatie.
trustStoreType Snaar / Touwtje JKS Voor de FIPS-modus stelt u het type vertrouwensarchief in, PKCS12 of het type dat is gedefinieerd door de FIPS-provider Toegevoegd in 6.1.2 (Stabiele release 6.2.2)