Proteksi Perangkat Lunak dengan Kriptografi dan Perangkat Keras

Wuaahh… sudah lama saya absen menulis di blog ini. Hari ini saya mulai lagi. Sebenarnya ini sudah agak telat, karena wisuda sarjana ITB sudah selesai. Kenapa wisuda? Karena yang saya bahas kali ini adalah Tugas Akhir mahasiswa saya di Informatika ITB.

Mahasiswa saya bernama Samudra Harapan Bekti, Informatika ITB Angkatan 2008, mengerjakan topik Tugas Akhir yang sangat menarik dan membuat saya angkat topi. Saya beri dia nilai A++ karena idenya orisinil dan hasilnya sangat bermanfaat buat industri perangkat lunak.

Dia mengangkat topik proteksi perangkat lunak dari penggandaan secara ilegal. Selama ini penggandaan perangkat lunak cukup sulit dicegah. Hal ini karena sifat data digital yang mudah digandakan. Memang sudah banyak dikembangkan orang proteksi berbasis perangkat lunak juga, tetapi tetap saja tidak berhasil menanggulangi masalah pembajakan.

Berangkat dari hobi dan ketertarikannya dengan elektronika sejak SMA, dia membuat sistem proteksi perangkat lunak berbasis perangkat keras. Idenya adalah perangkat keras sulit digandakan, dan inilah yang menjadi dasar sistem proteksinya itu.

Dia merancang sendiri pengendali mikro (microcontroller) untuk menyimpan kunci lisensi perangkat lunak. Perangkat lunak yang diproteksi dienkripsi terlebih dahulu dengan kunci tersebut. Perangkat lunak terenkripsi (misal disimpan di dalam CD atau DVD) didistribusikan (atau dijual) kepada konsumen bersama dengan pengendali mikro tadi. Sebuah antarmuka USB digunakan untuk menghubungkan perangkat keras dengan komputer pengguna. Di dalam CD/DVD terdapat perangkat lunak yang dienkripsi dan sebuah program loader yang diaktifkan pada waktu aktivasi produk pertama kali.

Ilustrasi: Contoh sebuah USB microcontroller (Sumber: https://www.olimex.com/dev/mod-mma7260q.html)

USB Microcontroller yang dirancang Samudra Harapan Bekti (Sumber: laman fesbuk ybs di http://www.facebook.com/photo.php?fbid=4008407243732&set=a.4008358162505.2163560.1087712270&type=3&theater)

Dikutip dari laporan TA Samudera Harapan Bekti, pengendali mikro adalah sistem komputer yang terintegrasi di dalam sebuah chip. Chip tersebut disusun oleh prosesor, memori, dan perangkat masukan/keluaran yang dapat diprogram untuk menjalankan fungsi tertentu. Pengendali mikro dapat dimanfaatkan sebagai bagian dari sistem proteksi perangkat lunak untuk menggantikan peran server aktivasi sehingga proses aktivasi perangkat lunak dapat dilakukan di luar jaringan (offline).

Saya tidak akan membahas mengenai rancangan pengendali mikronya, karena saya tidak punya keahlian disitu. Yang ingin saya bahas adalah penggunaan kriptografi di dalam sistem proteksi tersebut.

Perangkat lunak yang diproteksi dienkripsi dengan sebuah algoritma kriptografi (dia memakai algoritma AES) dan kunci rahasia. Kunci rahasia ditanam di dalam USB. Kunci akan dikirim oleh program loader ke komputer pengguna ketika pengguna melakukan aktivasi produk. Kunci dipakai untuk mendekripsi perangkat lunak yang telah dienkripsi.

Kunci yang dipakai untuk mengenkripsi perangkat lunak dienkripsi lagi dengan sebuah session key. Session key ini dihitung dengan algoritma kunci-publik Diffie-Hellman. Kunci privat (private key) yang digunakan di dalam algoritma Diffie-Hellman diambil dari ID hardware yang bersifat unik untuk setiap komputer, sedangkan kunci publiknya (public key) ditentukan oleh pengembang perangkat lunak dan disimpan di dalam USB microcontroller.

Ketika pengguna mengaktivasi produk, program loader meminta pengguna memasukkan USB ke komputer. Selanjutnya terjadi proses perhitungan session key dengan algoritma Diffie-Hellman dengan menggunakan kunci privat (ID hardware) dan kunci publik yang tersimpan di dalam USB tadi.

Session key mendekripsi kunci master, selanjutnya kunci master digunakan untuk mendekripsi perangkat lunak yang diproteksi.

Yang menarik adalah di dalam USB juga dapat disertakan jumlah lisensi yang memungkinkan pengguna menginstalasi produk pada lebih dari satu komputer. Setiap kali aktivasi maka lisensi berkurang satu. Selain itu aktivasi produk dilakukan satu kali saja, tetapi setiap kali menjalankan perangkat lunak program loader akan memeriksa validitas nilai tertentu yang disimpan di dalam sebauh berkas eksternal.

Saya berharap karya TA-nya ini dapat dikembangkan dan diproduksi secara massal untuk mencegah penggandaan ilegal. USB dapat dibuat secara massal di pabrik dengan sebuah kunci lisensi tertentu. Pengembang dapat menyimpan kunci lisensi di dalam USB dan menentukan jumlah lisensi yang dibeli. Perangkat lunak dijual dalam satu paket yang berisi CD/DVD program dan USB tersebut.

8 Komentar

Filed under Aplikasi kriptografi, Kriptografi nirsimetri

8 responses to “Proteksi Perangkat Lunak dengan Kriptografi dan Perangkat Keras

  1. Asep Budi

    mantabs TA-nya!!!!, mudah-mudahan bisa dikembangkan/diproduksi dan di apliakasikan..

  2. wah mantap banget, apakah sudah di lempar ke pasaran?

  3. Mahasiswa

    Pak Rin, kemudian apa bedanya dengan “USB-dongle” yang sudah ada sejak sekitar 20 tahun yang lalu?🙂

  4. Thanks Infonya sobat,,,di tunggu kunjungan baliknya…

  5. maaf, dimana letak ‘orisinilnya’. itu sdh lama dg donggel, waktu itu dipasang di serial. tapi tdk praktis, jd tdk dikembangkan.

    skrang pake ‘umur’, klo blum bayar, memang masih bisa ‘dicrack’. zaman internet, lbh mudah gak pake ‘hardware’. mungkin ada protek yg gak bisa ‘dicrack’ pak dosen?

    klo u soft khusus, rasanya sih msh bisa dipake.

  6. bermanfaat sekali infonya pak

  7. mantap banget, apakah sudah di lempar ke pasaran?

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s