Apa itu Penandatanganan Kode?

Peretas sering mengambil perangkat lunak — baik offline atau online — mengatur ulang dan mengubah kode untuk membuatnya berbahaya, dan kemudian mengunggahnya secara online sehingga pengguna mengunduh program gratis dan kode berbahaya yang ada di dalamnya. Untuk memastikan pengguna tidak mengalami masalah ini, penandatanganan kode digunakan. Penandatanganan kode adalah metode di mana pemrogram atau perusahaan asli yang membuat program menandatangani program dan, ketika program diinstal, diautentikasi untuk memastikan program tidak menambahkan atau mengubah pengkodean. Ini tidak memerlukan perangkat lunak khusus di sisi pengguna, dan pengguna dapat memverifikasi identitas programmer. Meskipun ini dimaksudkan sebagai bentuk keamanan, peretas yang membuat program atau menemukan tanda tangan dapat menciptakan kepercayaan palsu dan salah tempat.

Program terus-menerus dijual baik online maupun offline. Ketika seseorang membeli program secara offline dari pemasok atau pengecer tepercaya, pengguna memiliki sedikit alasan untuk khawatir tentang peretas yang menyuntikkan kode berbahaya ke dalam program. Ini karena, kecuali pengembang perangkat lunak dengan sengaja membuat program berbahaya, tidak ada cara bagi seseorang untuk merusak perangkat lunak dan membuatnya berbahaya. Saat pengguna mengunduh program dari Internet, tidak ada jaminan seperti itu.

Untuk melindungi pengguna yang membeli atau mengunduh program secara online, penandatanganan kode diterapkan. Penandatanganan kode dipisahkan menjadi dua bagian: pengembang dan pengguna akhir. Pengembang menggunakan hash kriptografi, operasi satu arah yang menyamarkan kode program, dan kemudian menggabungkan kunci pribadinya dengan hash. Ini menciptakan tanda tangan yang ditanamkan ke program.

Ketika pengguna menerima program, bagian kedua dari proses penandatanganan kode terjadi. Program memeriksa sertifikat dan kunci publik yang ditempatkan programmer dalam program. Menggunakan kunci publik, program dapat menjalankan hash yang sama pada pemrograman saat ini, dan kemudian memeriksa yang asli terhadap versi saat ini yang sedang diinstal. Jika program yang diinstal dan yang asli disinkronkan, ini menunjukkan kepada pengguna bahwa tidak ada yang diubah. Proses ini dilakukan secara otomatis, dan program yang diperlukan untuk otentikasi ini harus diinstal sebelumnya pada sistem operasi (OS) komputer.

Sementara penandatanganan kode adalah metode yang ampuh untuk memastikan keamanan, itu memang memiliki kekurangan. Jika pengguna mengunduh program dari peretas, maka otentikasi akan menunjukkan bahwa program asli masih utuh. Ini akan mengarahkan pengguna ke rasa aman yang salah; program dibuat berbahaya, sehingga keamanan tidak tercapai dalam pengertian ini. Peretas canggih juga dapat menyiasati hash untuk menyuntikkan pengkodean, membuat penandatanganan kode tidak berguna.