Bagikan melalui


Mengelola assembly dan penandatanganan manifes

Penandatanganan nama yang kuat memberi komponen perangkat lunak identitas unik global. Nama yang kuat digunakan untuk menjamin bahwa assembly tidak dapat di-spoofed oleh orang lain, dan untuk memastikan bahwa dependensi komponen dan pernyataan konfigurasi dipetakan ke versi komponen dan komponen yang benar.

Nama yang kuat terdiri dari identitas perakitan (nama teks sederhana, nomor versi, dan informasi budaya), ditambah token kunci publik dan tanda tangan digital.

Untuk informasi tentang menandatangani rakitan di proyek Visual Basic dan C#, lihat Membuat dan menggunakan rakitan bernama kuat.

Untuk informasi tentang menandatangani rakitan dalam proyek C++, lihat rakitan dengan nama kuat (C++/CLI).

Catatan

Penandatanganan nama yang kuat tidak melindungi dari rekayasa balik rakitan. Untuk melindungi dari rekayasa terbalik, lihat Komunitas Dotfuscator.

Jenis dan penandatanganan aset

Anda dapat menandatangani rakitan .NET dan manifes aplikasi:

  • Executables (.exe)

  • Manifes aplikasi (.exe.manifest)

  • Manifes penyebaran (.application)

  • Rakitan komponen bersama (.dll)

Tanda tangani jenis aset berikut:

  1. Rakitan, jika Anda ingin menyebarkannya ke cache perakitan global (GAC).

  2. Aplikasi ClickOnce dan manifes penyebaran. Visual Studio memungkinkan penandatanganan secara default untuk aplikasi ini.

  3. Rakitan interop utama, yang digunakan untuk interoperabilitas COM. Utilitas TLBIMP memberlakukan penamaan yang kuat saat membuat rakitan interop utama dari pustaka jenis COM.

Secara umum, Anda tidak boleh menandatangani executable. Komponen yang sangat bernama tidak dapat mereferensikan komponen yang tidak diberi nama kuat yang disebarkan dengan aplikasi. Visual Studio tidak menandatangani executable aplikasi, tetapi sebaliknya menandatangani manifes aplikasi, yang menunjuk ke executable bernama lemah. Hindari komponen penandatanganan yang bersifat privat untuk aplikasi Anda, karena penandatanganan dapat membuatnya lebih sulit untuk mengelola dependensi.

Cara menandatangani rakitan di Visual Studio

Prosedur untuk menandatangani rakitan tergantung pada versi Project Designer mana yang digunakan proyek Anda.

Untuk proyek C# .NET Core (dan .NET 5 dan yang lebih baru) di Visual Studio 2022:

  1. Buka jendela properti proyek (klik kanan simpul proyek di Penjelajah Solusi dan pilih Properti).
  2. Di bawah Bangun, cari Penamaan yang kuat, dan pilih kotak centang Tanda tangani perakitan. Opsi tambahan untuk file kunci dan penandatanganan penundaan muncul saat Anda mencentang kotak.
  3. Tentukan file kunci. Jika Anda memilih untuk membuat file kunci baru, file kunci baru selalu dibuat dalam format .pfx . Anda memerlukan nama dan kata sandi untuk file baru.

Untuk proyek .NET Framework dan Visual Basic di Visual Studio 2022, atau di Visual Studio 2019:

  1. Buka tab Penandatanganan dari jendela properti proyek (klik kanan simpul proyek di Penjelajah Solusi dan pilih Properti). Pilih tab Penandatanganan .
  2. Pilih kotak centang Tanda tangani rakitan .
  3. Tentukan file kunci. Jika Anda memilih untuk membuat file kunci baru, file kunci baru selalu dibuat dalam format .pfx . Anda memerlukan nama dan kata sandi untuk file baru.

Peringatan

Anda harus selalu melindungi file kunci Anda dengan kata sandi untuk mencegah orang lain menggunakannya. Anda juga dapat mengamankan kunci Anda dengan menggunakan penyedia atau penyimpanan sertifikat.

Anda juga dapat menunjuk ke kunci yang telah Anda buat. Untuk informasi selengkapnya tentang membuat kunci, lihat Membuat pasangan kunci publik-privat.

Jika Anda hanya memiliki akses ke kunci publik, Anda dapat menggunakan penandatanganan penundaan untuk menunda penetapan kunci. Anda mengaktifkan penandatanganan penundaan dengan memilih kotak centang Hanya tanda tunda. Proyek yang ditandatangani penundaan tidak berjalan, dan Anda tidak dapat men-debugnya. Namun, Anda dapat melewati verifikasi selama pengembangan dengan menggunakan alat nama kuat Sn.exe dengan opsi .-Vr

Untuk informasi tentang manifes penandatanganan, lihat Cara: Menandatangani manifes aplikasi dan penyebaran.