Bagikan melalui


Mengidentifikasi Sumber Paket dengan Tanda Tangan Digital

Berlaku untuk: SQL Server SSIS Integration Runtime di Azure Data Factory

Paket Integration Services dapat ditandatangani dengan sertifikat digital untuk mengidentifikasi sumbernya. Setelah paket ditandatangani dengan sertifikat digital, Anda dapat meminta Layanan Integrasi memeriksa tanda tangan digital sebelum memuat paket. Agar Integration Services memeriksa tanda tangan, Anda mengatur opsi di SQL Server Data Tools (SSDT) atau di utilitas dtexec (dtexec.exe), atau mengatur nilai registri opsional.

Menandatangani paket dengan sertifikat digital

Sebelum dapat menandatangani paket dengan sertifikat digital, Anda harus terlebih dahulu mendapatkan atau membuat sertifikat. Setelah Anda memiliki sertifikat, Anda kemudian dapat menggunakan sertifikat ini untuk menandatangani paket. Untuk informasi selengkapnya tentang cara mendapatkan sertifikat dan menandatangani paket dengan sertifikat tersebut, lihat Menandatangani Paket dengan Menggunakan Sertifikat Digital.

Atur opsi untuk memeriksa tanda tangan paket

Baik SQL Server Data Tools (SSDT) dan utilitas dtexec memiliki opsi yang mengonfigurasi Integration Services untuk memeriksa tanda tangan digital paket yang ditandatangani. Apakah Anda menggunakan SQL Server Data Tools (SSDT) atau utilitas dtexec bergantung pada apakah Anda ingin memeriksa semua paket atau hanya paket tertentu:

  • Untuk memeriksa tanda tangan digital semua paket sebelum memuat paket pada waktu desain, atur opsi Periksa tanda tangan digital saat memuat paket di SQL Server Data Tools (SSDT). Opsi ini adalah pengaturan global untuk semua paket di SQL Server Data Tools (SSDT).

  • Untuk memeriksa tanda tangan digital paket individual, tentukan opsi /VerifyS[igned] saat Anda menggunakan utilitas dtexec untuk menjalankan paket. Untuk informasi selengkapnya, lihat Utilitas dtexec.

Atur nilai Registri untuk memeriksa tanda tangan paket

Integration Services juga mendukung nilai registri opsional, BlockedSignatureStates, yang dapat Anda gunakan untuk mengelola kebijakan organisasi untuk memuat paket yang ditandatangani dan tidak ditandatangani. Nilai registri dapat mencegah paket dimuat jika paket tidak ditandatangani, atau memiliki tanda tangan yang tidak valid atau tidak tepercaya. Untuk informasi selengkapnya tentang cara mengatur nilai registri ini, lihat Menerapkan Kebijakan Penandatanganan dengan Mengatur Nilai Registri.

Catatan

Nilai registri BlockedSignatureStates opsional dapat menentukan pengaturan yang lebih ketat daripada opsi tanda tangan digital yang diatur di SQL Server Data Tools (SSDT) atau di baris perintah dtexec. Dalam situasi ini, pengaturan registri yang lebih ketat mengambil alih pengaturan lain.

Menerapkan Kebijakan Penandatanganan dengan Menetapkan Nilai Registri

Anda dapat menggunakan nilai registri opsional untuk mengelola kebijakan organisasi untuk memuat paket yang ditandatangani atau tidak ditandatangani. Jika Anda menggunakan nilai registri ini, Anda harus membuat nilai registri ini di setiap komputer tempat paket Layanan Integrasi akan berjalan dan di mana Anda ingin menerapkan kebijakan. Setelah nilai registri ditetapkan, Integration Services akan memeriksa atau memverifikasi tanda tangan sebelum memuat paket.

Prosedur dalam artikel ini menjelaskan cara menambahkan nilai DWORD BlockedSignatureStates opsional ke kunci registri HKLM\SOFTWARE\Microsoft\Microsoft SQL Server\150\SSIS\Setup\DTSPath.

Catatan

Lokasi registri di bawah 150 mewakili SQL Server 2019, di bawah 140 mewakili SQL Server 2017, di bawah 130 mewakili SQL Server 2016, di bawah 120 mewakili SQL Server 2014, dan di bawah 110 mewakili SQL Server 2012.

Nilai data di BlockedSignatureStates menentukan apakah paket harus diblokir jika memiliki tanda tangan yang tidak tepercaya, memiliki tanda tangan yang tidak valid, atau tidak ditandatangani.

Untuk status tanda tangan yang digunakan untuk menandatangani paket, nilai registri BlockedSignatureStates menggunakan definisi berikut:

  • Tanda tangan yang valid adalah tanda tangan yang berhasil dibaca.

  • Tanda tangan yang tidak valid adalah tanda tangan yang checksum terdekripsi (hash satu arah dari kode paket yang dienkripsi oleh kunci privat) tidak cocok dengan checksum terdekripsi yang dihitung sebagai bagian dari proses pemuatan paket Layanan Integrasi.

  • Tanda tangan tepercaya adalah tanda tangan yang dibuat dengan menggunakan sertifikat digital yang ditandatangani oleh Otoritas Sertifikasi Akar Tepercaya. Pengaturan ini tidak mengharuskan penanda tangan ditemukan dalam daftar Penerbit Tepercaya pengguna.

  • Tanda tangan yang tidak tepercaya adalah tanda tangan yang tidak dapat diverifikasi seperti yang dikeluarkan oleh Otoritas Sertifikasi Akar Tepercaya, atau tanda tangan yang tidak terkini.

Tabel berikut mencantumkan nilai data DWORD yang valid dan kebijakan terkaitnya.

Nilai Deskripsi
0 Tidak ada batasan administratif.
1 Memblokir tanda tangan yang tidak valid.

Pengaturan ini tidak memblokir paket yang tidak ditandatangani.
2 Blokir tanda tangan yang tidak valid dan tidak tepercaya.

Pengaturan ini tidak memblokir paket yang tidak ditandatangani, tetapi memblokir tanda tangan yang dihasilkan sendiri.
3 Memblokir tanda tangan yang tidak valid dan tidak tepercaya dan paket yang tidak ditandatangani

Pengaturan ini juga memblokir tanda tangan yang dihasilkan sendiri.

Catatan

Pengaturan yang direkomendasikan untuk BlockedSignatureStates adalah 3. Pengaturan ini memberikan perlindungan terbesar terhadap paket atau tanda tangan yang tidak ditandatangani yang tidak valid atau tidak tepercaya. Namun, pengaturan yang direkomendasikan mungkin tidak sesuai dalam semua keadaan. Untuk informasi selengkapnya tentang penandatanganan aset digital, lihat topik, "Pengantar Penandatanganan Kode," di Pustaka MSDN.

Untuk menerapkan kebijakan penandatanganan untuk paket

  1. Pada menu Mulai , klik Jalankan.

  2. Dalam kotak dialog Jalankan, ketik Regedit, lalu klik OK.

  3. Temukan kunci registri, HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\100\SSIS.

  4. Klik kanan MSDTS, arahkan ke Baru, lalu klik Nilai DWORD.

  5. Perbarui nama nilai baru ke BlockedSignatureStates.

  6. Klik kanan BlockedSignatureStates dan klik Ubah.

  7. Dalam kotak dialog Edit Nilai DWORD, ketik nilai 0, 1, 2, atau 3.

  8. Klik OK.

  9. Di menu File, klik Simpan.

Menandatangani Paket dengan Menggunakan Sertifikat Digital

Topik ini menjelaskan cara menandatangani paket Integration Services dengan sertifikat digital. Anda dapat menggunakan tanda tangan digital, bersama dengan pengaturan lain, untuk mencegah paket yang tidak valid untuk dimuat dan dijalankan.

Sebelum dapat menandatangani paket Integration Services, Anda harus melakukan tugas berikut:

  • Buat atau dapatkan kunci privat untuk dikaitkan dengan sertifikat, dan simpan kunci privat ini di komputer lokal.

  • Dapatkan sertifikat untuk tujuan penandatanganan kode dari otoritas sertifikasi tepercaya. Anda dapat menggunakan salah satu metode berikut untuk mendapatkan atau membuat sertifikat:

    • Dapatkan sertifikat dari otoritas sertifikasi komersial publik yang menerbitkan sertifikat.

    • Dapatkan sertifikat dari server sertifikat, yang memungkinkan organisasi menerbitkan sertifikat secara internal. Anda harus menambahkan sertifikat akar yang digunakan untuk menandatangani sertifikat ke penyimpanan Otoritas Sertifikasi Akar Tepercaya . Untuk menambahkan sertifikat akar, Anda dapat menggunakan snap-in Sertifikat untuk Konsol Manajemen Microsoft (MMC). Untuk informasi selengkapnya, lihat topik, "Layanan Sertifikat," di pustaka MSDN.

    • Buat sertifikat Anda sendiri hanya untuk tujuan pengujian. Perintah PowerShell New-SelfSignedCertificate dapat membuat sertifikat baru yang ditandatangani sendiri dengan algoritma hash aman untuk tujuan pengujian. Contohnya:

        $params = @{
            Type = 'CodeSigningCert'
            Provider = 'Microsoft Enhanced RSA and AES Cryptographic Provider'
            Subject = 'CN=PS code signing Certificate 2'
            TextExtension = @(
                '2.5.29.37={text}1.3.6.1.5.5.7.3.3',
                '2.5.29.17={text}upn=yourupn' )
            KeyExportPolicy = 'NonExportable'
            KeyUsage = 'DigitalSignature'
            KeyAlgorithm = 'RSA'
            KeyLength = 2048
            CertStoreLocation = 'Cert:\CurrentUser\My'
                     HashAlgorithm = 'sha512'
        }
        New-SelfSignedCertificate @params
    

    Jika Anda melihat pesan kesalahan 'Penandatanganan paket gagal dengan kesalahan 0x80090008 "Algoritma yang tidak valid ditentukan."', ini menunjukkan bahwa algoritma hash sertifikat Anda tidak aman, ubah sertifikat Anda menjadi algoritma hash yang lebih aman seperti SHA512 dan gunakan CSP (Penyedia Layanan Kriptografi). Karena kerangka kerja .NET ditingkatkan ke 4.7.2 untuk SQL Server 2022, dan algoritma SignedXML default diubah ke SHA256 karena SHA1 tidak lagi dianggap aman. Detailnya, lihat artikel ini.

    Untuk informasi selengkapnya tentang sertifikat, lihat Bantuan online untuk snap-in Sertifikat. Untuk informasi selengkapnya tentang cara menandatangani aset digital, lihat topik, "Menandatangani dan Memeriksa Kode dengan Authenticode," di Pustaka MSDN.

  • Pastikan bahwa sertifikat telah diaktifkan untuk penandatanganan kode. Untuk menentukan apakah sertifikat diaktifkan untuk penandatanganan kode, tinjau properti sertifikat di snap-in Sertifikat.

  • Simpan sertifikat di penyimpanan Pribadi.

Setelah menyelesaikan tugas sebelumnya, Anda bisa menggunakan prosedur berikut untuk menandatangani paket.

Untuk menandatangani paket

  1. Di SQL Server Data Tools (SSDT), buka proyek Integration Services yang berisi paket yang akan ditandatangani.

  2. Di Penjelajah Solusi, klik dua kali paket untuk membukanya.

  3. Di SSIS Designer, pada menu SSIS , klik Penandatanganan Digital.

  4. Dalam kotak dialog Penandatanganan Digital, klik Tanda tangani.

  5. Dalam kotak dialog Pilih Sertifikat , pilih sertifikat.

  6. (Opsional) Klik Tampilkan Certificate untuk melihat informasi sertifikat.

  7. Klik OK untuk menutup kotak dialog Pilih Sertifikat .

  8. Klik OK untuk menutup kotak dialog Penandatanganan Digital.

  9. Untuk menyimpan paket yang diperbarui, klik Simpan Item Terpilih pada menu File .

    Meskipun paket telah ditandatangani, Anda sekarang harus mengonfigurasi Integration Services untuk memeriksa atau memverifikasi tanda tangan digital sebelum memuat paket.

Referensi Antarmuka Pengguna Kotak Dialog Penandatanganan Digital

Gunakan kotak dialog Penandatanganan Digital untuk menandatangani paket dengan tanda tangan digital atau untuk menghapus tanda tangan. Kotak dialog Penandatanganan Digital tersedia dari opsi Penandatanganan Digital pada menu SSIS di SQL Server Data Tools (SSDT).

Untuk informasi selengkapnya, lihat Menandatangani Paket dengan Menggunakan Sertifikat Digital.

Opsi

Tanda
Klik untuk membuka kotak dialog Pilih Sertifikat , dan pilih sertifikat yang akan digunakan.

Hapus
Klik untuk menghapus tanda tangan digital.

Lihat juga

Paket Integration Services (SSIS)
Gambaran Umum Keamanan (Layanan Integrasi)