ClickOnce dan Kode autentikasi

Authenticode adalah teknologi Microsoft yang menggunakan kriptografi standar industri untuk menandatangani kode aplikasi dengan sertifikat digital yang memverifikasi keaslian penerbit aplikasi. Dengan menggunakan Authenticode untuk penyebaran aplikasi, ClickOnce mengurangi risiko Trojan horse. Trojan horse adalah virus atau program berbahaya lainnya yang salah direpresentasikan oleh pihak ketiga berbahaya sebagai program sah yang berasal dari sumber yang jelas dan dapat dipercaya. Menandatangani penyebaran ClickOnce dengan sertifikat digital adalah langkah opsional untuk memverifikasi bahwa rakitan dan file tidak dirusak.

Bagian berikut menjelaskan berbagai jenis sertifikat digital yang digunakan dalam Authenticode, bagaimana sertifikat divalidasi menggunakan Otoritas Sertifikat (CA), peran stempel waktu dalam sertifikat, dan metode penyimpanan yang tersedia untuk sertifikat.

Authenticode dan penandatanganan kode

Sertifikat digital adalah file yang berisi pasangan kunci publik/privat kriptografi, bersama dengan metadata yang menjelaskan penerbit yang sertifikatnya dikeluarkan dan agensi yang menerbitkan sertifikat.

Ada berbagai jenis sertifikat Authenticode. Masing-masing dikonfigurasi untuk berbagai jenis penandatanganan. Untuk aplikasi ClickOnce, Anda harus memiliki sertifikat Authenticode yang valid untuk penandatanganan kode. Jika Anda mencoba menandatangani aplikasi ClickOnce dengan tipe sertifikat lain, seperti sertifikat email digital, aplikasi tersebut tidak akan berfungsi. Untuk informasi selengkapnya, lihat Pengantar penandatanganan kode.

Anda dapat memperoleh sertifikat untuk penandatanganan kode dengan salah satu dari tiga cara:

  • Membeli dari vendor sertifikat.

  • Menerima satu dari grup di organisasi Anda yang bertanggung jawab untuk membuat sertifikat digital.

  • Membuat sertifikat Anda sendiri dengan menggunakan cmdlet PowerShell New-SelfSignedCertificate, atau dengan menggunakan MakeCert.exe, yang disertakan dengan kit pengembangan perangkat lunak (SDK) Windows.

Bagaimana menggunakan otoritas sertifikat dapat membantu pengguna

Sertifikat yang dihasilkan menggunakan New-SelfSignedCertificate atau utilitas MakeCert.exe umumnya disebut sertifikasi mandiri atau sertifikasi pengujian. Sertifikat semacam ini bekerja dengan cara yang sama seperti file .snk bekerja di .NET Framework. Ini hanya terdiri dari pasangan kunci kriptografi publik/privat, dan tidak berisi informasi yang dapat diverifikasi tentang penerbit. Anda dapat menggunakan sertifikasi mandiri untuk menyebarkan aplikasi ClickOnce dengan kepercayaan tinggi pada intranet. Namun, ketika aplikasi ini berjalan di komputer klien, ClickOnce akan mengidentifikasinya sebagai berasal dari Publisher yang Tidak Diketahui. Secara default, ClickOnce aplikasi yang ditandatangani dengan sertifikasi mandiri dan disebarkan melalui Internet tidak dapat menggunakan Penyebaran Aplikasi Tepercaya.

Sebaliknya, jika Anda menerima sertifikat dari CA, seperti vendor sertifikat, atau departemen dalam perusahaan Anda, sertifikat menawarkan lebih banyak keamanan untuk pengguna Anda. Ini tidak hanya mengidentifikasi penerbit perangkat lunak yang ditandatangani, tetapi memverifikasi identitas tersebut dengan memeriksa dengan CA yang menandatanganinya. Jika CA bukan otoritas akar, Authenticode juga akan "menautkan" kembali ke otoritas akar untuk memverifikasi bahwa CA berwenang untuk menerbitkan sertifikat. Untuk keamanan yang lebih besar, Anda harus menggunakan sertifikat yang dikeluarkan oleh CA jika memungkinkan.

Untuk informasi selengkapnya tentang membuat sertifikasi mandiri, lihat New-SelfSignedCertificate atau MakeCert.

Stempel waktu

Sertifikat yang digunakan untuk menandatangani aplikasi ClickOnce akan kedaluwarsa setelah jangka waktu tertentu, biasanya dua belas bulan. Untuk menghapus kebutuhan untuk terus menandatangani ulang aplikasi dengan sertifikat baru, ClickOnce mendukung stempel waktu. Ketika aplikasi ditandatangani dengan stempel waktu, sertifikatnya akan terus diterima bahkan setelah kedaluwarsa, asalkan tanda waktu valid. Ini memungkinkan ClickOnce aplikasi dengan sertifikat yang kedaluwarsa, tetapi tanda waktu yang valid, untuk mengunduh dan menjalankan. Ini juga memungkinkan aplikasi yang diinstal dengan sertifikat kedaluwarsa untuk terus mengunduh dan menginstal pembaruan.

Untuk menyertakan tanda waktu di server aplikasi, server tanda waktu harus tersedia. Untuk informasi tentang cara memilih server tanda waktu, lihat Cara: Menandatangani Manifes Aplikasi dan Penyebaran.

Memperbarui sertifikat yang kedaluwarsa

Dalam versi .NET Framework sebelumnya, memperbarui aplikasi yang sertifikatnya telah kedaluwarsa dapat menyebabkan aplikasi tersebut berhenti berfungsi. Untuk mengatasi masalah ini, gunakan salah satu metode berikut:

  • Perbarui .NET Framework versi 3.5 atau yang lebih baru.

  • Hapus instalan aplikasi, dan instal ulang versi baru dengan sertifikat yang valid.

Menyimpan sertifikat

  • Anda dapat menyimpan sertifikat sebagai file .pfx pada sistem file Anda, atau Anda dapat menyimpannya di dalam kontainer kunci. Pengguna di domain Windows dapat memiliki sejumlah kontainer utama. Secara default, MakeCert.exe akan menyimpan sertifikat dalam kontainer kunci pribadi Anda, kecuali Anda menentukan bahwa itu harus menyimpannya ke .pfx sebagai gantinya. Mage.exe dan MageUI.exe, alat SDK Windows untuk membuat penyebaran ClickOnce, memungkinkan Anda menggunakan sertifikat yang disimpan dalam salah satu cara.