MEMBUAT USB KEY DAN KEY GENERATOR SEBAGAI...
-
Upload
vuongxuyen -
Category
Documents
-
view
243 -
download
5
Transcript of MEMBUAT USB KEY DAN KEY GENERATOR SEBAGAI...
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
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 LANDASAN TEORI
2.1 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.
2
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.
3
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
4
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
5
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
permasalahan dan solusi yang ada
kemudian merancang aplikasi untuk
menerapkan solusi yang telah
didapat.
2. Dapat merancang
sistem dengan baik
2 Programmer Mengimplementasikan rancangan
yang diberikan dari analis untuk
dibuat aplikasi atau sistemnya.
Melakukan Generate key dengan
menggukan passkey yang
diimplementasi terhadap aplikasi
yang di buat.
1. Mengusai bahasa
pemrograman
2. Menguasai Library
USB Key dan bisa
menjalankan Aplikasi
USB Key Generator
3 Pengguna Orang yang menggunakan aplikasi
yang dibuat dan terimplementasi USB
Key
a. Memahami cara
menjalankan aplikasi
dengan USB Key
3.2 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.
6
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.
7
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
8
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
9
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:
10
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
11
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
12
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
13
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
14
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 :
15
Tabel 3.3.1.41Testing USB Key Generator
No Pengguna Fungsi Skenario Hasil Status
1 Pengemban
g
Load
USB
Memasukan USB flash disk
dan memanggil fungsi load
secara otomatis
Drive letter
akan tampil di
ComboBox
Sukses
2 Pengemban
g
Refresh Memasukan USB Flash disk
dan Menjalankan fungsi load
USB secara manual
Drive letter
akan tampil di
ComboBox
Sukses
3 Pengemban
g
Generat
e
Memilih USB drive dan
memasukan passkey dengan
panjang lebih dari 8 karakter
Generate file
“key.usbk” di
USB flash disk
Sukses
Tabel 3.3.1.42Testing USB Key dan Aplikasi
No Skenario Hasil Status
1 Menggunakan USB Key yang
valid
Masuk dalam aplikasi Sukses
2 Menggunakan USB Key hasil
duplikasi
Muncul pesan “USB Key tidak
ditemukan” dan gagal masuk
dalam aplikasi
Sukses
3 Tidak Menggunakan USB
Key
Muncul pesan “USB Key tidak
ditemukan” dan gagal masuk
dalam aplikasi
Sukses
4 Melepaskan USB Key saat
aplikasi sedang berjalan
Muncul pesan “USB Key telah
dikeluarkan” dan aplikasi keluar
secara paksa
Sukses
5 PENUTUP
5.1 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
16
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.
17
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.