MEMBUAT USB KEY DAN KEY GENERATOR SEBAGAI KUNCI APLIKASI MENGGUNAKAN VISUAL STUDIO 2010
NASKAH PUBLIKASI
diajukan oleh Rizki Fajar Tandjung 10.11.3537
kepada SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER AMIKOM YOGYAKARTA YOGYAKARTA 2013
CREATING A USB KEY AND KEY GENERATOR FOR APPLICATIONS KEY USING VISUAL STUDIO 2010
MEMBUAT USB KEY DAN KEY GENERATOR SEBAGAI KUNCI APLIKASI MENGGUNAKAN VISUAL STUDIO 2010
Rizki Fajar Tandjung Emha Taufiq Luthfi Jurusan Teknik Informatika STMIK AMIKOM YOGYAKARTA
ABSTRACT
Use the software to simplify the current work is growing. Many companies are using the services of a programmer to create a software, but many users are often abused these software, one of which is to double the software and sold to other companies, in this case the programmer and the company has a right to feel aggrieved that software. For it must be done for the protection of such software, one way to protect a software is to use a USB key, using the hardware it almost impossible for duplicating. USB key is a USB drive that is used to lock a software made a programmer that can not be duplicated and used by unauthorized persons. In making this coupled software to create encryption keys are created using the C# programming language and uses 128bit AES encryption algorithm. For this key implementation writer also made the framework for its application to the software made. Keywords: USB Key, Programming, Visual Studio 2010, Visual C#
1
PENDAHULUAN Penggunaan aplikasi untuk mempermudah pekerjaan saat ini sudah semakin
berkembang. Banyak perusahaan yang menggunakan jasa programmer untuk membuat sebuah aplikasi, tetapi banyak pengguna aplikasi yang sering menyalah gunakan aplikasi tersebut, salah satunya adalah menggandakan aplikasi tersebut dan dijual ke perusahaan lain, dalam hal ini programmer dan perusahaan yang memiliki hak atas aplikasi tersebut merasa dirugikan. Untuk itu haruslah dilakukan perlindungan untuk aplikasi tersebut, salah satu cara untuk memptoteksi sebuah aplikasi adalah dengan menggunakan USB key, dengan menggunakan perangkat keras maka hamper tidak mungkin untuk di gandakan. USB key ini adalah sebuah USB drive yang digunakan untuk mengunci sebuah aplikasi yang dibuat seorang programmer agar aplikasi tersebut tidak bisa digandakan dan digunakan oleh orang yang tidak berkepentingan. Dalam pembuatan ini disertai juga aplikasi untuk membuat enkripsi kunci yang dibuat dengan menggunakan bahasa pemrograman C# dan menggunakan algoritma enkripsi AES 128bit. Untuk mengimplentasikan kunci ini penulis juga membuat framework untuk pengaplikasiannya terhadap aplikasi yang dibuat.
2 2.1
LANDASAN TEORI USB Flash Drive (Flash Disk) USB flash drive adalah alat penyimpanan data memori flash tipe NAND yang
memiliki alat penghubung USB yang terintegrasi. USB flash drive (Flash Disk) memiliki banyak kelebihan dibandingkan alat penyimpanan data lainya..Pada kenyataanya, pemanfaat flash drive telah berkembang untuk berbagai hal. Misalnya sebagai alat untuk booting.Beberapa aplikasi juga dapat dijalankan secara langsung dari flash drive tanpa harus meng-install-nya terlebih dahulu ke komputer. Sehingga disebut dengan aplikasi portable. 2.2
Kriptografi Kriptografi berasal dari bahasa Yunani yaitu crypto dan graphia.Crypto berarti
rahasia dan graphia berarti tulisan.Secara terminology kriptografi berarti ilmu dan seni untuk menjaga keamanan pesan.
1
2.2.1
Advanced Encryption Standard Advanced Encryption Standard (AES) merupakan salah satu algoritma kriptografi yang
dapat digunakan untuk melindungi data. Algoritma AES menggunakan kunci simetris untuk melakukan proses enkripsi dan dekripsi. 2.3
Lingkungan Bahasa Pemrograman Microsoft Visual C# Microsoft Visual C-Sharp atau yang lebih dikenal dengan Visual C# adalah sebuah
bahasa yang tidak diragukan lagi dalam proses pengembangan aplikasi berbasis .NET Framework, di mana C# bebas dari masalah kompatibilitas dilengkapi dengan berbagai fitur yang sebagian besar merupakan fitur baru, menarik, dan tentu saja menjanjikan. Visual
C#
merupakan kombinasi antara efisiensi pemrograman C++, kesederhanaan pemrograman Java, dan penyederhanaan dari pemrograman Visual Basic. 2.3.1
Arsitektur .NET dan .NETFramework
2.3.1.1
Common Language Runtime(CLR)
Common Language Runtime (CLR).CLR adalah sebuah layer atau lapisan framework yang berada pada system operasi dan menangani eksekusi dari aplikasi .NET. 2.3.1.2
Microsoft Intermediate Language Code
MSIL adalah kode sistem operasi dan kode hardware yang berdiri sendiri. Pada saat program dieksekusi, MSIL akan mengubahnya menjadi kode biner executable. 2.3.1.3
Just In Time Compilers
JITers pada dasarnya berbeda dengan compiler konvensional yang mengompilasi IL ke native code hanya pada saat dibutuhkan. 2.3.1.4
Framework Class Library
FCL
merupakan
library
standar
besar
yang
dikemas
dalam
satu
bahasa
pemrograman. 2.3.1.5
Common Language Spesification
Common Language Spesification (CLS) pada dasarnya adalah sebuah desain bahasa yang menetapkan standar tertentu.
2
2.3.1.6
CommonTypeSystem
.Net mendefinisikan sebuah Common Type System (CTS), yaitu mendefinisikan tipe data dasar yang dipakai dan digunakan dalam IL.Masing-masing .NET Complilant Languageharus memetakan datanya pada sebuah tipe data standar. 2.3.1.7
Garbage Collection
CLR juga berisi sebuah Garbage Collector(GC) yang berjalan di prioritas thread rendah dan memeriksa apakah terdapat alokasi ruang memori yang tidak direferensikan. 2.3.1.8
.NET Framework
.NET Framework adalah kombinasi dari layer CLR, FCL, data dan kelas XML, Windows, aplikasi web dan web servis. 2.4
UML(Unified Modeling Language) Unified Modeling Language(UML) adalah notasi yang lengkap untuk membuat
visualisasi model suatu sistem. 2.4.1
Tipe-tipe diagram UML UML biasanya disajikan dalam bentuk diagram/gambar yang meliputi class beserta
atribut dan opersasinya, serta hubungan antar class meliputi inheritance, association dan komposisi. UML terdiri dari banyak diagram, antara lain : Use Case Diagram, Activity Diagram, Class Diagram dan Sequence Diagram.
3
ANALISIS DAN PERCANGAN Analisis adalah sebuah proses untuk menguraikan sebuah sistem yang
menjadi
bagian-bagian kecil dengan tujuan untuk mengidentifikasi dan mengevaluasi segala permasalahan, kebutuhan dan hambatan yang ada. 3.1
Analisis Kebutuhan Dalam perancangan sistem peneliti mendefinisikan kebutuhan sistem dan proses
apa saja yang akan dilakukan oleh sistem. Kebutuhan sistem sendiri terbagi menjadi dua yaitu kebutuhan fungsional dan kebutuhan non fungsional. 3.1.1
Kebutuhan Fungsional Kebutuhan Fungsional adalah jenis kebutuhan yang berisi proses-proses apa saja
yang nantinya dilakukan oleh sistem. Kebutuhan fungsional juga berisi informasi-informasi
3
apa saja yang harus ada dan dihasilkan oleh sistem. Berikut adalah kebutuhan fungsional yang dimiliki oleh aplikasi yang akan di buat: 1.
Aplikasi USB Key Generator bisa melakukan proses generate terhadap USB flash disk menjadi USB Key.
2.
Aplikasi pesanan hanya bisa dibuka dengan menggunakan USB Key yang sesuai. a. Hanya pengembang yang mengembangkan aplikasi pesanan yang bisa melakukan generate terhadap USB flash disk menjadi USB Key. b. Pengguna aplikasi pesanan hanya bisa menggunakan USB key yang telah digenerate pengembang aplikasi pesanan itu sendiri.
3.1.2
Kebutuhan Non-Fungsional Kebutuhan Non-Fungsional adalah tipe kebutuhan yang berisi properti perilaku yang
dimiliki oleh sistem. Berikut adalah kebutuhan Non-Fungsional yang ada pada aplikasi yang akan dibuat: 1. Operasional a. Kebutuhan perangkat lunak Tabel 3.1.2.1 Kebutuhan Perangkat Lunak No
Software
Kebutuhan
1
Sistem Operasi
Windows 7
2
Program Editor
Visual Studio 2010(.Net Framework V 4.0)
b. Kebutuhan perangkat keras Kebutuhan Perangkat keras adalah kebutuhan perangkat keras yang dibutuhkan
dalam
membangun
aplikasi.Pada
pembuatan
aplikasi
penulis
menggunakan komputer atau PC. Berikut adalah spesifikasi perangkat keras yang digunakan: Tabel 3.1.2.2 Kebutuhan Perangkat Keras No
Spesifikasi
Kebutuhan
1
Processor
Intel(R) Core(TM)i3-2100 CPU @ 3.10GHz
2
RAM
4.00 GB
4
3
VGA
NVIDIA GeForce 9400 GT512.0 MB
4
Harddisk
320GB
c.
Kebutuhan Pengguna / Brainware Dalam menjalankan aplikasi tentu tak lepas dari peran pengguna, berikut adalah kebutuhan pengguna yang diperlukan untuk menjalankan aplikasi USB key generator ini secara maksimal: Tabel 3.1.2.3 Kebutuhan Brainware
No
Brainware
Tugas
Keterangan
1
Sistem Analis
Melakukan analisis terhadap
2. Dapat merancang
permasalahan dan solusi yang ada
sistem dengan baik
kemudian merancang aplikasi untuk menerapkan solusi yang telah didapat. 2
Programmer
Mengimplementasikan rancangan
1. Mengusai bahasa
yang diberikan dari analis untuk
pemrograman
dibuat aplikasi atau sistemnya.
2. Menguasai Library
Melakukan Generate key dengan
USB Key dan bisa
menggukan passkey yang
menjalankan Aplikasi
diimplementasi terhadap aplikasi
USB Key Generator
yang di buat. 3
3.2
Pengguna
Orang yang menggunakan aplikasi
a. Memahami cara
yang dibuat dan terimplementasi USB
menjalankan aplikasi
Key
dengan USB Key
Analisis Kelayakan Sistem Ketika sistem analis selesai menyusun dokumen kebutuhan sistem, maka tahap
desain sistem bisa dimulai. Namun tidak semua kebutuhan sistem yang didefinisikan pada tahapan analisis kebutuhan sistem layak untuk dikembangkan. Tahap inilah yang sering di sebut dengan tahapan analisis kelayakan atau studi kelayakan.
5
3.2.1
Analisis Kelayakan Teknologi Dari segi hardware aplikasi ini sudah bisa dijalankan pada spek komputer standar,
sehingga dapat dikatakan layak terhadap teknologi yang ada saat ini. Selain itu juga USB flash disk sangat mudah ditemukan dengan harga yang bervariasi dan layak untuk dijadikan USB key. 3.2.2
Analisis Kelayakan Operasional Untuk disebut layak secara operasional, usulan kebutuhan sistem harus benar-benar
bisa menyelesaikan masalah. Pertanyaan yang bisa menjadi pedoman untuk mengukur kelayakan operasional yaitu: “Apakah USB Key ini bisa mengamankan aplikasi sehingga aplikasi hanya bisa diakses oleh orang yang memiliki USB key yang valid ?” Karena aplikasi ini menggunakan teknik kriptografi maka akan sangat aman karena ID dari USB Flash disk akan di enkripsi terlebih dahulu kemudian baru disimpan dalam bentuk file “key.usbk”. Dengan semua kelebihan itu maka Aplikasi ini layak secara Operasional. 3.2.3
Analisis Kelayakan Ekonomi Secara ekonomi aplikasi ini membutuhkan biaya untuk membeli lisensi dari Microsoft
visual studio 2010.Namun karena USB Key ini dibuat untuk menjual aplikasi yang terproteksi, biaya untuk membeli lisensi Microsoft Visual studio tidak menjadi masalah. Dari penjelasan yang telah ditulis dapat di simpulkan bahwa aplikasi ini layak secara ekonomi. 3.2.4
Analisis Kelayakan Hukum Kelayakan hukum dimaksudkan untuk mengetahui apakah sistem yang akan
diterapkan melanggar hukum atau tidak. Misalnya kelayakan dalam hal legalitas software. Dalam hal ini software Microsoft Visual studio 2010 yang digunakan adalah software yang asli sehingga sangat layak. 3.3
Perancangan Sistem Perancangan sistem merupakan bagian penting dalam pembuatan suatu sistem
ataupun aplikasi , perancangan sistem ini dimaksudkan untuk memberikan gambaran umum tentang aplikasi yang akan dibuat.
6
3.3.1
Perancangan UML Untuk lebih memperjelas tentang gambaran sistem maka penulis membuat UML
dengan beberapa tipe yaitu Use case diagram, Activity diagram, Sequence diagram, dan Class diagram. 3.3.1.1
Use case diagram Berikut adalah gambaran interaksi antara aplikasi dan aktor yang ada pada aplikasi
ini:
Gambar 3.3.1.1-1 Use Case Diagram USB Key Generator
Gambar 3.3.1.1-2 Use Case Diagram Aplikasi Prototype
7
3.3.1.2
Activity Diagram Activity diagram menggambarkan rangkaian aliran dari aktivitas, digunakan untuk
mendeskripsikan aktivitas yang dibentuk dalam suatu operasi sehingga dapat juga digunakan untuk aktifitas lainnya seperti use case atau interaksi.
Gambar 3.3.1.2-1 Activity Diagram USB Key Generator
8
Gambar 3.3.1.2-2 Activity Diagram Aplikasi Prototype
3.3.1.3
Class Diagram Berikut ini adalah class diagram yang digunakan untuk menggambarkan struktur
kelas yang ada padaaplikasi ini:
9
Gambar 3.3.1.3-1Rancangan Class Diagram USB Key Generator
Gambar 3.3.1.3-2 Rancangan Class Diagram USB Key pada Aplikasi prototype
10
3.3.1.4
Sequence Diagram Sequence diagram ini akan menggambarkan rangkaian langkah-langkah yang
menggambarkan respon dari event pada aplikasi ini. Berikut adalah gambaran dari Sequence diagram pada aplikasi ini:
Gambar 3.3.1.4-1 Sequence Diagram USB Key Generator
Gambar 3.3.1.4-2 Sequence Diagram Aplikasi Prototype
11
4
IMPLEMENTASI DAN PEMBAHASAN Bagian ini merupakan tahapan yang bertujuan mengubah hasil analisis dan
perancangan sistem menjadi bentuk yang nyata, dalam hal ini berupa USB Key Generator dan aplikasi prototype yang berjalan pada desktop komputer. Bagaimana tampilan-tampilan dari aplikasi yang dibuat dan proses instalisasi atau proses menjalankan aplikasi dan harus disesuaikan dengan analisis serta perancangan yang sudah dibuat sebelumnya. 4.1
Manual Pembuatan Aplikasi dan USB Key Berikut adalah bagaimana cara pengembang mengaplikasikan USB key pada
aplikasi yang dikembangkan.Aplikasi dibuat dengan menggunakan .net framework versi 4.0.Setelah aplikasi dibuat, kemudian ditambahkan library dan beberapa baris kode untuk mengaplikasikan USB key, berikut langkah – langkah pengaplikasiannya.
Gambar 4.1.1 Menambahkan References
12
Gambar 4.1.1 Menambahkan library USB Key
4.2
Manual Penggunaan Aplikasi Setelah aplikasi dan USB Key selesai dibuat, aplikasi digunakan oleh end user,
aplikasi hanya bisa dibuka dengan menggunakan USB Key, berikut manual untuk menjalankan aplikasi yang sudah diproteksi dengan USB Key: 1. Pengguna memasukkan USB Key yang valid pada port USB komputer. 2. Pengguna menjalankan aplikasi, jika USB Key valid maka langsung ditampilkan menu utama aplikasi pada pengguna.
Gambar 4.2.1 Tampilan Utama aplikasi
13
3. Jika USB key yang dimasukan tidak valid(hasil duplikat) akan muncul pesan “USB Key tidak ditemukan” dan aplikasi akan berhenti.
Gambar 4.2.1 Pesan error saat Key tidak ditemukan
4. Jika pengguna melepaskan USB Key pada saat aplikasi sedang berjalan, aplikasi akan tertutup secara otomatis dan menampilkan pesan “USB Key telah dikeluarkan”.
Gambar 3.3.1.4.2 Pesan error saat Key dilepas paksa 4.3
Ujicoba Sistem dan Program Beberapa kategori yang akan di uji adalah sebagai berikut : 1. Fungsi generate USB key 2. Fungi USB key sebagai key untuk aplikasi yang dibuat Berikut adalah tabel Black Box Testing yang terdapat pada program ini yang telah
dibuat oleh penulis :
14
Tabel 3.3.1.41Testing USB Key Generator No
Pengguna
Fungsi
Skenario
Hasil
Status
1
Pengemban
Load
Memasukan USB flash disk
Drive letter
Sukses
g
USB
dan memanggil fungsi load
akan tampil di
secara otomatis
ComboBox
Memasukan USB Flash disk
Drive letter
dan Menjalankan fungsi load
akan tampil di
USB secara manual
ComboBox
2
Pengemban
Refresh
g
3
Pengemban
Generat
Memilih USB drive dan
Generate file
g
e
memasukan passkey dengan
“key.usbk” di
panjang lebih dari 8 karakter
USB flash disk
Sukses
Sukses
Tabel 3.3.1.42Testing USB Key dan Aplikasi No
Skenario
Hasil
Status
1
Menggunakan USB Key yang
Masuk dalam aplikasi
Sukses
Menggunakan USB Key hasil
Muncul pesan “USB Key tidak
Sukses
duplikasi
ditemukan” dan gagal masuk
valid 2
dalam aplikasi 3
Tidak Menggunakan USB
Muncul pesan “USB Key tidak
Key
ditemukan” dan gagal masuk
Sukses
dalam aplikasi 4
Melepaskan USB Key saat
Muncul pesan “USB Key telah
aplikasi sedang berjalan
dikeluarkan” dan aplikasi keluar
Sukses
secara paksa
5 5.1
PENUTUP Kesimpulan Setelah tahapan-tahapan penelitian dilakukan kesimpulan yang dapat diambil dalam
penelitian kali ini adalah : 1. Pengamanan aplikasi dapat menggunakan kriptografi dengan cara membuat key dengan melakukan proses ekripsi terhadap ID yang ada pada USB flash disk
15
yang berfungsi seperti pada USB Dongle, namun dengan USB flash disk menjadi lebih mudah karena USB flash disk mudah ditemukan di pasaran. 2. Proses pembuatan key dilakukan dengan mengkombinasikan dua ID unik yang ada di dalam USB flash disk sehingga jika salah satu ID di spoof masih ada satu ID lagi yang menjaga keamanan USB Key, sehingga dapat dikatakan sangat aman. 3. Aplikasi dan library dibuat dengan menggunakan .Net framework sehingga bisa USB key ini bisa digunakan pada bahasa pemrograman lain dengan .net framework versi 4.0, misalnya Visual Basic .Net . 4. Aplikasi hanya bisa dijalankan oleh pengguna yang memiliki akses sehingga isi dari aplikasi bisa dijaga kerahasiaannya.
5.2
Saran Pada penulisan Skripsi ini tentu masih banyak kekurangan , dan mungkin dapat
disempurnakan oleh penelitian-penelitian berikutnya. Untuk lebih menyempurnakan program ini penulis memberikan beberapa saran diantaranya : 1. Kecepatan dan kualitas USB flash disk berpengaruh terhadap USB key, sebaiknya menggunakan USB flash disk dengan kualitas dan kecepatan yang bagus untuk memaksimalkan kecepatan dan ketahanan USB key. 2. Untuk generate key pengembang masih harus mencatat passkey yang digunakan secara manual dan yang melakukan generate adalah pengembang, kedepan aplikasi ini akan dikembangkan dengan menggunakan sistem yang lebih baik sehingga pengguna bisa melakukan generate sendiri namun pengembang masih bisa membatasi jumlah key yang digenerate.
16
DAFTAR PUSTAKA
Amperiyanto, T. 2011. Eksploitasi Flash Disk. Jakarta: Elex Media Komputindo. Anonim. 2011. Microsoft Visual C# 2010. Semarang: Wahana Komputer. Ariyus, D. 2006. KRIPTOGRAFI KEAMANAN DATA DAN KOMUNIKASI. Yogyakarta: GRAHA ILMU. Ariyus, D. 2008. Pengantar Ilmu Kriptografi Teori, Analisis dan Implementasi. Yogyakarta: ANDI OFFSET. Fatta, H. A. 2007. Analisis dan Perancangan Sistem Informasi untuk Keunggulan Bersaing Perusahaan dn Organisasi Modern. Yogyakarta: C.V. ANDI OFFSET. Yasin, V. 2012. REKAYASA PERANGKAT LUNAK BERORIENTASI OBJEK Pemodelan, Arsitektur dan Perancangan (Modeling, Architecture and Design). Jakarta: Mitra Wacana Media.
17