Mode FIPS

Unduh driver JDBC

Driver Microsoft JDBC untuk SQL Server mendukung berjalan di JVM yang dikonfigurasi agar sesuai dengan FIPS 140.

Prasyarat

  • JVM yang dikonfigurasi FIPS
  • Sertifikat TLS/SSL yang sesuai
  • File kebijakan yang sesuai
  • Parameter Konfigurasi yang Sesuai

JVM yang dikonfigurasi FIPS

Umumnya, aplikasi dapat mengonfigurasi java.security file untuk menggunakan penyedia kripto yang mematuhi FIPS. Lihat dokumentasi khusus untuk JVM Anda untuk cara mengonfigurasi kepatuhan FIPS 140.

Untuk melihat modul yang disetujui untuk Konfigurasi FIPS, lihat Modul Tervalidasi dalam Program Validasi Modul Kriptografi.

Vendor mungkin memiliki beberapa langkah lagi untuk mengonfigurasi JVM dengan FIPS.

Sertifikat TLS yang sesuai

Untuk menyambungkan ke SQL Server dalam mode FIPS, Diperlukan Sertifikat TLS/SSL yang valid. Instal atau impor ke Java Key Store pada komputer klien (JVM) tempat FIPS diaktifkan.

Mengimpor sertifikat TLS di keyStore Java

Untuk FIPS, kemungkinan besar Anda perlu mengimpor sertifikat (.cert) dalam PKCS atau format khusus penyedia. Gunakan cuplikan berikut untuk mengimpor sertifikat TLS/SSL dan menyimpannya dalam direktori kerja dengan format KeyStore yang sesuai. TRUST_STORE_PASSWORD adalah kata sandi Anda untuk 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);
}

Contoh berikut adalah mengimpor Sertifikat Azure TLS/SSL dalam format PKCS12 dengan Penyedia BouncyCastle. Sertifikat diimpor di direktori kerja bernama MyTrustStore_PKCS12 dengan menggunakan cuplikan berikut:

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

File kebijakan yang sesuai

Untuk beberapa Penyedia FIPS, diperlukan jar Kebijakan yang tidak terbatas. Dalam kasus seperti itu, untuk Sun / Oracle, unduh File Kebijakan Yurisdiksi Kekuatan Tak Terbatas Java Cryptography Extension (JCE) untuk JRE 8 atau JRE 7.

Parameter konfigurasi yang sesuai

Untuk menjalankan Driver JDBC dalam mode sesuai FIPS, konfigurasikan properti koneksi seperti yang ditunjukkan dalam tabel berikut.

Properti

Properti Jenis Default Deskripsi Catatan
encrypt String ["true / false / strict"] "true" Untuk properti enkripsi JVM yang diaktifkan FIPS harus benar Default berubah dari false ke true di versi 10.2. Dalam versi 11.2.0, jenis berubah dari boolean ke String dan opsi ketat ditambahkan untuk memungkinkan dukungan TDS 8.0.
TrustServerCertificate boolean ["true / false"] "false" Untuk FIPS, pengguna perlu memvalidasi rantai sertifikat, sehingga pengguna harus menggunakan nilai "false" untuk properti ini.
trustStore String null Jalur file Java Keystore tempat Anda mengimpor sertifikat. Jika Anda menginstal sertifikat pada sistem Anda, maka tidak perlu meneruskan apa pun. Driver menggunakan file cacert atau jssecacerts.
trustStorePassword String null Kata sandi yang digunakan untuk memeriksa integritas data trustStore.
fips boolean ["true / false"] "false" Untuk JVM yang diaktifkan FIPS, properti ini harus benar Ditambahkan dalam 6.1.4 (Rilis stabil 6.2.2)
fipsProvider String null Penyedia FIPS dikonfigurasi di JVM. Misalnya, BCFIPS atau SunPKCS11-NSS Ditambahkan dalam 6.1.2 (Rilis stabil 6.2.2), tidak digunakan lagi di 6.4.0 - lihat detailnya Di sini.
trustStoreType String JKS Untuk mode FIPS, atur jenis penyimpanan kepercayaan baik PKCS12 atau jenis yang ditentukan oleh penyedia FIPS Ditambahkan dalam 6.1.2 (Rilis stabil 6.2.2)