Rabu, 10 April 2013
PROGRAM KEAMANAN DENGAN KENDALI AKSES REMOVABLE DISK DI LINGKUNGAN WINDOWS
PROGRAM KEAMANAN DENGAN KENDALI AKSES
REMOVABLE DISK DI LINGKUNGAN WINDOWS
ABSTRAK
Salah satu fungsi USB adalah untuk penyimpanan data (memory flash atau dapat disebut
dengan memory stick) dalam OS Windows sering disebut dengan removable disk. Permasalahan
sekarang pada USB-Port dengan sistem operasi Windows yaitu Windows tidak mengendalikan
akses removable disk sehingga bagi pihak lain bisa meng-copy data tanpa disetujui oleh pihak
berwenang, kecuali pada Windows Vista mempunyai paket aplikasi yang disebut dengan USB
Blocking. Untuk mencegah hal di atas, maka membutuhkan sebuah aplikasi untuk mengendalikan
removable disk.
Penelitian ini akan mencoba mengembangkan program aplikasi yang disebut Removable
Blocking untuk kendali akses dilingkungan windows dengan memanfaatkan windows API-32 bit
dan Visual Basic.6.0
Program utility yang dikembangkan dapat mengendalikan akses removeable disk yang
ditentukan oleh administrator. Kelemahan dari program utility yang dikembangkan oleh penulis
meskipun bisa digunakan untuk kendali akses removable disk tetapi tidak mampu untuk kendali
akses tipe disk yang lain seperti USB-HDD.
Kata Kunci : Removeble disk, USB-Port, Windows API-32 bit
1. PENGANTAR
1.1 Latar Belakang
Perkembangan teknologi sangat cepat baik dilihat dari segi software, hardware maupun
brainware. Salah satu sebagai alat penelitian untuk pengembangan hardware yaitu Universal Serial
Bus (USB).
Universal Serial Bus (USB) merupakan soket yang terdapat di semua PC model baru untuk
koneksi perangkat-perangkat USB. USB mendukung instalasi yang mudah dengan sistem Plug and
Play dan secara bertahap menggantikan port serial dan parallel yang lama.
Dengan USB-Port, bisa mengkoneksi sampai 127 jenis perangkat (peripheral devices),
seperti speaker, telepon, CD-Rom, joysticks, keyboard, scanner, kamera, dan lain-lain. USB
mendukung dua kecepatan operasi, disebut low-speed (1,5 megabit/det) dan full-speed (12
megabit/det). Revisi terbaru pada spesifikasi bus (USB 2.0) memperkenal kecepatan operasi ketiga,
disebut high-speed (480 megabit/det). USB dengan cepat memperoleh pengakuan di pasaran, dan
dengan tambahan kemampuan high-speed menjadikannya dengan sebagai pilihan metode
interkoneksi bagi sebagian besar perangkat komputer.
Salah satu fungsi USB adalah untuk penyimpanan data (memory flash atau dapat disebut
dengan memory stick) dalam OS Windows sering disebut dengan removable disk. Yang termasuk
removable disk, seperti Floppy disk, Flashdisk, Compact Flash, SD/Mini SD, T-Flash Card,
MMC/RS MMC, Msmory Stick, dll.
D ‐ 1
Seminar Nasional Teknologi 2007 (SNT 2007)
Yogyakarta,
Permasalahan sekarang pada USB-Port dengan sistem operasi Windows yaitu Windows
tidak mengendalikan akses removable disk sehingga bagi pihak lain bisa meng-copy data tanpa
disetujui oleh pihak berwenang, kecuali pada Windows Vista mempunyai paket aplikasi yang
disebut dengan USB Blocking. Untuk mencegah hal di atas, maka membutuhkan sebuah aplikasi
untuk mengendalikan removable disk. Di bawah ini akan membahas tentang sebuah aplikasi yang
disebut dengan Removable Blocking yang dibuat oleh penulis.
1.2 Tinjauan Teori
1.2.1 Microsoft Visual Basic 6.0
Visual Basic 6.0 adalah salah satu produk bahasa pemrograman yang dikeluarkan
Microsoft. Visual Basic telah melalui sejumlah versi dan jauh berbeda dengan produk aslinya.
Mulai dari Visual basic 1.0 dirilis pada pertengahan tahun 1991 sampai dengan Visual Basic 6.0
dirilis pada tahun 1998.
Kelebihan Visual Basic 6.0 di sini yaitu bisa menginterkoneksi DLL (Dynamic Link
Library) Windows dengan bantuan Windows API-32Bit.
1.2.2 Windows API-32bit
Windows API (Application Programming Interface) merupakan sekumpulan fungsi-fungsi
eksternal yang terdapat dalam file-file perpustakaan Windows (disebut library Windows) atau file
library lainnya yang dapat digunakan oleh program. Fungsi ini dapat menangani semua yang
berhubungan dengan Windows, seperti pengaksesan disk, interface printer, grafik Windows, kotak
dialog (buka file, simpan file, memilih font, memilih warna, dan lain-lain), Windows shell, setting
sistem operasi , penanganan file, mengakses sistem registry, memainkan musik, dan sebagainya.
Fungsi menyediakan banyak fitur-fitur standar untuk semua program yang berbasis Windows.
Semua fungsi Windows API hampir terdapat dalam direktori sistem milik Windows
(biasanya terdapat dalam direktori C:\Windows\System32 (untuk OS Windows XP),
C:\WindowsNT\ System32 (untuk OS Windows NT/2000), dan paling banyak berekstensi DLL
yang digunakan oleh sistem operasi Windows. Selain fungsi ini juga memastikan secara konsisten
penggunaan semua sumber yang terdapat dalam Windows. File-file itulah yang disebut dengan
Windows API.
Karena fungsi Windows API merupakan fungsi eksternal, maka untuk menggunakan
fungsi tersebut terlebih dahulu dideklarasikan dengan perintah Declare di dalam kode program
(pembahasan printah Declare akan dijelaskan nanti dibagian “Mendeklarasikan Fungsi Windows
API”). Setelah pendeklarasian fungsi selesai dilakukan, selanjutnya untuk menggunakan fungsi
tersebut layaknya Visual Basic di dalam program.
1.2.3 Arsitektur USB
USB didesain untuk memenuhi beberapa tujuan utama:
1. Menyediakan sistem interkoneksi yang sederhana, low-cost, dan mudah digunakan yang dapat
mengatasi kesulitan karena terbatasnya jumlah port I/O pada suatu komputer.
2. Mengakomodasi karakteristik transfer data skala luas untuk perangkat I/O, termasuk koneksi
telepon dan Internet.
3. Meningkatkan kenyamanan user melalui mode operasi plug-and-play.
D ‐ 2
Seminar
Yogyakarta, 24 November 2007
Gambar 1 Operasi Split Bus
Pada Gambar 1, Hub A dihubungkan ke root hub oleh high-speed link. Hub ini melayani
satu perangkat high-speed, C, dan satu perangkat low-speed, D. Biasanya, suatu pesan ke perangkat
D akan dikirimkan pada kecepatan rendah dari root hub. Pada 1,5 megabit/det, bahkan pesan
pendek sekalipun memerlukan beberapa puluh milidetik. Selama durasi pesan tersebut, tidak ada
transfer data lain yang bisa lakukan, sehingga mengurangi keefektifan high-speed link dan
menimbulkan jeda yang tidak dapat diterima untuk perangkat high-speed. Untuk mengurangi
persoalan, protokol USB mensyaratkan agar suatu pesan yang ditransmisikan pada high-speed link
selalu ditransmisikan pada kecepatan tinggi, bahkan pada saat receiver akhir adalah perangkat low-
speed. Karenanya, pesan yang ditujukan untuk perangkat D dikirim pada kecepatan tinggi dari root
hub ke hub A, kemudian dilanjutkan pada kecepatan rendah ke perangkat D. Transfer yang terakhir
tersebut memerlukan waktu lama, namun selama itu lalu lintas high-speed ke node lain dapat
berlanjut. Misalnya, root hub dapat mempertukarkan beberapa pesan dengan perangkat C pada saat
pesan low-speed dikirim dari hub A ke perangkat D. Selama periode ini, bus dapat dikatakan di-
split antara lalu lintas high-speed dan low-speed. Pesan ke perangkat D didahului dan diikuti oleh
perintah khusus ke hub A untuk memulai dan mengakhiri masing-masing mode operasi split-traffic
tersebut.
Kabel yang digunakan untuk koneksi USB terdiri dari empat kabel. Dua digunakan untuk
membawa daya, +5V dan Ground. Sehingga, hub atau perangkat I/O dapat langsung mendapat
daya dari bus, atau memiliki koneksi daya eksternal sendiri. Dua kawat yang lain digunakan untuk
membawa data. Skema signaling yang berbeda digunakan untuk kecepatan transmisi ynag berbeda.
Pada kecepatan rendah, 1 dan 0 ditransmisikan dengan mengirim keadaan tegangan tinggi (5V)
pada satu bagian atau bagian lain dari dua kawat sinyal tersebut. Untuk link high-speed, digunakan
transmisi diferensial.
2. CARA PENELITIAN
2.1 Alat yang Dipakai
Penelitian ini dilakukan pada sebuah PC (Personal Computer), spesifikasi komputer yang
digunakan yaitu:
1. Seperangkat PC
Memory sekunder untuk perangkat ekternal, seperti:
a. UFD (Flashdisk)
D ‐ 3
Seminar
Yogyakarta, 24 November 2007
b. MMC + CardReader
c. USB-HDD
2.2 Jalan Penelitian
Gambar 2 Flowchart Menu Utama
D ‐ 4
Seminar
Yogyakarta, 24 November 2007
D ‐ 5
Seminar Nasional Teknologi 2007 (SNT 2007)
ISSN : 1978 – 9777
Yogyakarta,
Secara garis besar, program utility yang dikembangkan mempunyai tahap-tahap yang harus
ditempuh, yaitu:
1. Seleksi serial number dari sebuah perangkat removable disk.
Setiap perangkat baik itu removable disk, USB-HDD, CD-Drive (yang ada CD-nya)
mempunyai serial number yang unik. Untuk informasi serial number bisa mengunakan
command prompt (C:\>VOL). Listing program sederhana di bawah ini berfungsi untuk
mencari informasi serial number dari sebuah drive (default C:\).
Private Declare Function GetVolumeSerialNumber Lib "kernel32.dll" _
Alias "GetVolumeInformationA" (ByVal lpRootPathName As String, _
ByVal lpVolumeNameBuffer As String, ByVal nVolumeNameSize As Long, _
lpVolumeSerialNumber As Long, lpMaximumComponentLength As Long, _
lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String, _
ByVal nFileSystemNameSize As Long) As Long
Public Function VolumeSerialNumber(ByVal RootPath As String) As String
Dim VolLabel As String
Dim VolSize As Long
Dim Serial As Long
Dim MaxLen As Long
Dim Flags As Long
Dim Name As String
Dim NameSize As Long
Dim s As String
Else
If GetVolumeSerialNumber(RootPath, VolLabel, VolSize, Serial, MaxLen, _
Flags, Name, NameSize) Then
'bikin 8 karakter string
s = Format(Hex(Serial), "00000000")
'tambahkan '-' antara 4 karakter pertama dan 4 karakter terakgir
VolumeSerialNumber = Left(s, 4) + "-" + Right(s, 4)
'jika terjadi kesalahan, nilai yang dibalikan 0000-0000
VolumeSerialNumber = "-"
End If
End Function
Private Sub Form_Load()
MsgBox VolumeSerialNumber("c:\")
D ‐ 6
Seminar Nasional Teknologi 2007 (SNT 2007)
Yogyakarta,
End Sub
2. Seleksi tipe drive
Dalam sistem operasi Windows terdapat 7 jenis tipe drive, yaitu:
1. DRIVE_UNKNOWN, yaitu tipe drive tidak diketahui
2. DRIVE_NO_ROOT_DIR, yaitu nama root direktori tidak ditemukan.
3. DRIVE_REMOVABLE, yaitu tipe disk yang dapat dilepas atau dipasang dari disk
seperti flashdisk, mmc, dll.
4. DRIVE_FIXED, yaitu tipe disk yang tidak dapat dilepas atau dipasang dari drive
(harddisk).
5. DRIVE_REMOTE, yaitu tipe drive adalah drive jaringan.
6. DRIVE_CDROM, yaitu tipe drive adalah CD-ROM.
7. DRIVE_RAMDISK, yaitu tipe disk adalah RAM disk.
Listing program sederhana di bawah ini berfungsi untuk menentukan tipe disk yang
dispesifikasikan, apakah bertipe removable, harddisk, dll.
‘in module
Public Declare Function GetDriveType Lib "kernel32.dll" _
Alias "GetDriveTypeA" (ByVal nDrive As String) As Long
Public Const DRIVE_UNKNOWN = 0
Public Const DRIVE_DOES_NOT_EXIST = 1
Public Const DRIVE_REMOVABLE = 2
Public Const DRIVE_FIXED = 3
Public Const DRIVE_REMOTE = 4
Public Const DRIVE_CDROM = 5
Public Const DRIVE_RAMDISK = 6
‘in form
Private Sub Command1_Click()
Select Case GetDriveType("c:\")
Case DRIVE_UNKNOWN
Case DRIVE_DOES_NOT_EXIST
Case DRIVE_REMOVABLE
MsgBox "Tipe disk tidak diketahui", vbExclamation
MsgBox "Tipe disk tidak ada", vbCritical
MsgBox "Tipe disk dapat dipasang/dilepaskan dari drive (Disket)", _
vbInformation
D ‐ 7
Seminar
Yogyakarta, 24 November 2007
Case DRIVE_FIXED
Case DRIVE_REMOTE
Case DRIVE_CDROM
Case DRIVE_RAMDISK
End Select
End Sub
MsgBox "Tipe disk tidak dapat dipasang/dilepas dari drive
(Hardisk)", vbInformation
MsgBox "Tipe drive adalah drive remote (jaringan)", vbInformation
MsgBox "Tipe drive adalah CD-ROM", vbInformation
MsgBox "Tipe drive adalah RAM disk", vbInformation
3. Meng-eject removable disk
Listing program sederhana di bawah ini berfungsi untuk meng-eject sebuah drive, fungsi
ini dapat meng-eject 2 tipe disk, yaitu removable dan CD-Drive (CD-ROM).
'Example by Howard Henry Schlunder
' This example requires one command button (Command1)
Private Declare Function GetVersion Lib "kernel32" () As Long
Private Declare Function CreateFile Lib "kernel32" Alias "CreateFileA"
(ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal
dwShareMode As Long, lpSecurityAttributes As Any, ByVal
dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal
hTemplateFile As Long) As Long
Private Declare Function DeviceIoControl Lib "kernel32" (ByVal hDevice
As Long, ByVal dwIoControlCode As Long, lpInBuffer As Any,
ByVal nInBufferSize As Long, lpOutBuffer As Any, ByVal nOutBufferSize
As Long, lpBytesReturned As Long, lpOverlapped As Any) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long)
As Long
Private Const INVALID_HANDLE_VALUE = -1
Private Const OPEN_EXISTING = 3
Private Const FILE_FLAG_DELETE_ON_CLOSE = 67108864
Private Const GENERIC_READ = &H80000000
Private Const GENERIC_WRITE = &H40000000
Private Const IOCTL_STORAGE_EJECT_MEDIA = 2967560
Private Const VWIN32_DIOC_DOS_IOCTL = 1
D
Seminar
Yogyakarta, 24 November 2007
Private Type DIOC_REGISTERS
reg_EBX As Long
reg_EDX As Long
reg_ECX As Long
reg_EAX As Long
reg_EDI As Long
reg_ESI As Long
reg_Flags As Long
End Type
Private Sub Command1_Click()
Dim hDrive As Long, DummyReturnedBytes As Long
Dim EjectDrive As String, DriveLetterAndColon As String
Dim RawStuff As DIOC_REGISTERS
EjectDrive = InputBox("Which drive shall we try to eject the media
If Len(EjectDrive) Then 'Confirm the user didn't cancel
DriveLetterAndColon = UCase(Left$(EjectDrive & ":", 2))
'Make it all caps for easy interpretation
If GetVersion >= 0 Then 'We are running Windows NT/2000
from?", "Eject Media")
Else 'We are running Win9x/Me
hDrive = CreateFile("\\.\" & DriveLetterAndColon, GENERIC_READ Or
GENERIC_WRITE, 0, ByVal 0, OPEN_EXISTING, 0, 0)
If hDrive <> INVALID_HANDLE_VALUE Then
'Eject media!
Call DeviceIoControl(hDrive, IOCTL_STORAGE_EJECT_MEDIA, 0, 0,
0, 0, DummyReturnedBytes, ByVal 0)
Call CloseHandle(hDrive) 'Clean up after ourselves
End If
hDrive = CreateFile("\\.\VWIN32", 0, 0, ByVal 0, 0,
If hDrive <> INVALID_HANDLE_VALUE Then
'Setup our raw registers to use Interrupt 21h Function 440Dh
Minor Code 49h
RawStuff.reg_EAX = &H440D 'The function to use
RawStuff.reg_EBX = Asc(DriveLetterAndColon) - Asc("A") + 1
FILE_FLAG_DELETE_ON_CLOSE, 0)
D ‐ 9
Seminar Nasional Teknologi 2007 (SNT 2007)
Yogyakarta, 24 November 2007
RawStuff.reg_ECX = &H49 Or &H800
'The minor code of the function in the low byte of the low
word and the device category of 8 in the high byte of the
low word
'Eject media!
Call DeviceIoControl(hDrive, VWIN32_DIOC_DOS_IOCTL,
RawStuff, LenB(RawStuff), RawStuff, LenB(RawStuff),
DummyReturnedBytes, ByVal 0)
Call CloseHandle(hDrive) 'Clean up after ourselves
End If
End If
End If
End Sub
3. HASIL DAN PEMBAHASAN
3.1 Form Menu Utama
Gambar 5 Form Menu Utama
Form menu utama terdiri 2 frame, yaitu:
1) Manage Accept
a) Accept All, berfungsi: menerima semua removable disk yang dicolokkan ke USB-
Port.
b) Only From List, berfungsi: menerima removable disk yang telah terdaftar di dalam
Accepted List ketika dicolokkan ke USB-Port. Dan menolak removable disk yang
tidak terdaftar daftar di dalam Accepted List.
c) From No One, berfungsi: menolak semua removable disk yang dicolokkan ke
USB-Port.
2) Accepted List
D ‐ 10
Seminar
ISSN : 1978 – 9777
Yogyakarta,
Berfungsi untuk menambah atau menghapus nama label dan serial number removable
disk di dalam daftar list.
3.2 Analisis Uji Coba
Tabel 1 Perbandingan Hak Akses antara Administrator dengan Non-
No.
Administrator
Eject removable disk
Autorun when OS Windows startup
Hiden Registry
Disable Task Manager
Enable Password
Enable Multi User
Disable All USB Storage
Hak Akses
Administrator
√
√
√
√
√
√
√
Penjelasan Tabel 1
Hasil analisis pada Tabel 1, untuk eject removable disk dapat berfungsi di sisi
administrator account dan tidak dapat berfungsi pada non-administrator account hal ini
dikarena pada penggunaan extention DLL OS Windows. Di dalam OS Windows bagi yang
non-administrator account eject removable disk tidak berfungsi. Untuk mencegah hal ini,
penulis memproteksi dengan screen. Untuk autorun when OS Windows startup dan hiden
registry baik di sisi administrator account atau di sisi non-administrator account hal ini bisa
dilakukan. Sedangkan untuk disable task manager, enable password, enable multi user, dan
disable all USB storage di sisi non-administrator account tidak dapat berfungsi karena
penyimpanan data ke memori registry tidak dapat berfungsi (OS Windows tidak
mengizinkan penambahan, perbaikan, dan penghapusan di memori registry).
Tabel 2 Perbandingan Hak Akses dari Masing-Masing Jenis Perangkat
No.
1
2
Penjelasan Tabel 2
Jenis Perangkat
Hak Akses
Eject removable disk
Disable All USB Storage
Flashdisk
√
√
D ‐ 11
Seminar Nasional Teknologi 2007 (SNT 2007)
ISSN : 1978 – 9777
Yogyakarta,
Hasil analisis pada Tabel 2, USB-HDD tidak bisa di eject karena USB-HDD dalam OS
Windows terdeteksi sebagai local disk (fixed) dalam hal ini tidak tergolong dalam
removable disk. Untuk mencegah keamanaan data maka user (administrator account) bisa
mensetting ke disable all USB storage sehingga bisa menghindari dari peng-copy-an atau
pengcurian data bagi user lainnya. Kelemahan dari mensetting ke disable all USB storage
yaitu semua memori storage termasuk USB-HDD, removable disk, dan lain-lain tidak
terdeteksi oleh OS Windows baik di sisi user maupun di sisi multi user.
4. KESIMPULAN DAN SARAN
4.1 Kesimpulan
Program utility yang dikembangkan dapat mengendalikan akses removeable disk yang
ditentukan oleh administrator. Kelemahan dari program utility yang dikembangkan oleh
penulis meskipun bisa digunakan untuk kendali akses removable disk tetapi tidak mampu
untuk kendali akses tipe disk yang lain seperti USB-HDD.
Untuk pengembangan program utility ini yang dibuat oleh penulis, masih terdapat banyak
hal yang dapat dilakukan untuk penyempurnaan sistem ini. Beberapa saran untuk pengembangan
lebih lanjut antara lain:
1. Meningkatkan kemampuan program utility dalam penggunaan teknologi safely removable
hardware (menon-aktifkan aliran listrik ke USB storage).
2. Meningkatkan kemampuan program utility untuk kendali akses tipe disk yang lain, seperti
USB-HDD, CD-Drive, dan lain-lain.
DAFTAR PUSTAKA
Carl hamacher, Zkonko Vranesic dan Safwat Zaky, 2004, Organisasi Komputer Edisi 5.
Yogyakarta: Andi Offset.
Hadi, Rahadian, 2002, Pemrograman Windows API dengan Microsoft Visual Basic. Jakarta: PT.
Elex Media Komputindo.
Halvorson, Michael, 2002, Step by Step Microsoft Visual Basic 6.0. Jakarta: PT. Elex Media
Komputindo.
MSDN Library Visual Studio 6.0, Microsoft Corporation, 2001.
Pamungkas, 2000, Tip & Trik Microsoft Visual Basic 6.0. Jakarta: PT. Elex Media Komputindo.
Putra, Rahmat, 2005, The Best Source Code Visual Basic. Jakarta: PT. Elex Media Komputindo.
Sallings, William, 1998, Organisasi dan Arsitektur Komputer Jilid 2. Jakarta: Prenhallindo.
Suryo Kusumo Ario, Drs., 2004, Buku Latihan Visual Basic .Net Versi 2002 dan 2003. Jakarta: PT.
Elex Media Komputindo.
Wahana Komputer, 2003, Panduan Lengkap Pemrograman VBScript. Yogyakarta: ANDI.
www.chip.co.id Add to Cart
REMOVABLE DISK DI LINGKUNGAN WINDOWS
ABSTRAK
Salah satu fungsi USB adalah untuk penyimpanan data (memory flash atau dapat disebut
dengan memory stick) dalam OS Windows sering disebut dengan removable disk. Permasalahan
sekarang pada USB-Port dengan sistem operasi Windows yaitu Windows tidak mengendalikan
akses removable disk sehingga bagi pihak lain bisa meng-copy data tanpa disetujui oleh pihak
berwenang, kecuali pada Windows Vista mempunyai paket aplikasi yang disebut dengan USB
Blocking. Untuk mencegah hal di atas, maka membutuhkan sebuah aplikasi untuk mengendalikan
removable disk.
Penelitian ini akan mencoba mengembangkan program aplikasi yang disebut Removable
Blocking untuk kendali akses dilingkungan windows dengan memanfaatkan windows API-32 bit
dan Visual Basic.6.0
Program utility yang dikembangkan dapat mengendalikan akses removeable disk yang
ditentukan oleh administrator. Kelemahan dari program utility yang dikembangkan oleh penulis
meskipun bisa digunakan untuk kendali akses removable disk tetapi tidak mampu untuk kendali
akses tipe disk yang lain seperti USB-HDD.
Kata Kunci : Removeble disk, USB-Port, Windows API-32 bit
1. PENGANTAR
1.1 Latar Belakang
Perkembangan teknologi sangat cepat baik dilihat dari segi software, hardware maupun
brainware. Salah satu sebagai alat penelitian untuk pengembangan hardware yaitu Universal Serial
Bus (USB).
Universal Serial Bus (USB) merupakan soket yang terdapat di semua PC model baru untuk
koneksi perangkat-perangkat USB. USB mendukung instalasi yang mudah dengan sistem Plug and
Play dan secara bertahap menggantikan port serial dan parallel yang lama.
Dengan USB-Port, bisa mengkoneksi sampai 127 jenis perangkat (peripheral devices),
seperti speaker, telepon, CD-Rom, joysticks, keyboard, scanner, kamera, dan lain-lain. USB
mendukung dua kecepatan operasi, disebut low-speed (1,5 megabit/det) dan full-speed (12
megabit/det). Revisi terbaru pada spesifikasi bus (USB 2.0) memperkenal kecepatan operasi ketiga,
disebut high-speed (480 megabit/det). USB dengan cepat memperoleh pengakuan di pasaran, dan
dengan tambahan kemampuan high-speed menjadikannya dengan sebagai pilihan metode
interkoneksi bagi sebagian besar perangkat komputer.
Salah satu fungsi USB adalah untuk penyimpanan data (memory flash atau dapat disebut
dengan memory stick) dalam OS Windows sering disebut dengan removable disk. Yang termasuk
removable disk, seperti Floppy disk, Flashdisk, Compact Flash, SD/Mini SD, T-Flash Card,
MMC/RS MMC, Msmory Stick, dll.
D ‐ 1
Seminar Nasional Teknologi 2007 (SNT 2007)
Yogyakarta,
Permasalahan sekarang pada USB-Port dengan sistem operasi Windows yaitu Windows
tidak mengendalikan akses removable disk sehingga bagi pihak lain bisa meng-copy data tanpa
disetujui oleh pihak berwenang, kecuali pada Windows Vista mempunyai paket aplikasi yang
disebut dengan USB Blocking. Untuk mencegah hal di atas, maka membutuhkan sebuah aplikasi
untuk mengendalikan removable disk. Di bawah ini akan membahas tentang sebuah aplikasi yang
disebut dengan Removable Blocking yang dibuat oleh penulis.
1.2 Tinjauan Teori
1.2.1 Microsoft Visual Basic 6.0
Visual Basic 6.0 adalah salah satu produk bahasa pemrograman yang dikeluarkan
Microsoft. Visual Basic telah melalui sejumlah versi dan jauh berbeda dengan produk aslinya.
Mulai dari Visual basic 1.0 dirilis pada pertengahan tahun 1991 sampai dengan Visual Basic 6.0
dirilis pada tahun 1998.
Kelebihan Visual Basic 6.0 di sini yaitu bisa menginterkoneksi DLL (Dynamic Link
Library) Windows dengan bantuan Windows API-32Bit.
1.2.2 Windows API-32bit
Windows API (Application Programming Interface) merupakan sekumpulan fungsi-fungsi
eksternal yang terdapat dalam file-file perpustakaan Windows (disebut library Windows) atau file
library lainnya yang dapat digunakan oleh program. Fungsi ini dapat menangani semua yang
berhubungan dengan Windows, seperti pengaksesan disk, interface printer, grafik Windows, kotak
dialog (buka file, simpan file, memilih font, memilih warna, dan lain-lain), Windows shell, setting
sistem operasi , penanganan file, mengakses sistem registry, memainkan musik, dan sebagainya.
Fungsi menyediakan banyak fitur-fitur standar untuk semua program yang berbasis Windows.
Semua fungsi Windows API hampir terdapat dalam direktori sistem milik Windows
(biasanya terdapat dalam direktori C:\Windows\System32 (untuk OS Windows XP),
C:\WindowsNT\ System32 (untuk OS Windows NT/2000), dan paling banyak berekstensi DLL
yang digunakan oleh sistem operasi Windows. Selain fungsi ini juga memastikan secara konsisten
penggunaan semua sumber yang terdapat dalam Windows. File-file itulah yang disebut dengan
Windows API.
Karena fungsi Windows API merupakan fungsi eksternal, maka untuk menggunakan
fungsi tersebut terlebih dahulu dideklarasikan dengan perintah Declare di dalam kode program
(pembahasan printah Declare akan dijelaskan nanti dibagian “Mendeklarasikan Fungsi Windows
API”). Setelah pendeklarasian fungsi selesai dilakukan, selanjutnya untuk menggunakan fungsi
tersebut layaknya Visual Basic di dalam program.
1.2.3 Arsitektur USB
USB didesain untuk memenuhi beberapa tujuan utama:
1. Menyediakan sistem interkoneksi yang sederhana, low-cost, dan mudah digunakan yang dapat
mengatasi kesulitan karena terbatasnya jumlah port I/O pada suatu komputer.
2. Mengakomodasi karakteristik transfer data skala luas untuk perangkat I/O, termasuk koneksi
telepon dan Internet.
3. Meningkatkan kenyamanan user melalui mode operasi plug-and-play.
D ‐ 2
Seminar
Yogyakarta, 24 November 2007
Gambar 1 Operasi Split Bus
Pada Gambar 1, Hub A dihubungkan ke root hub oleh high-speed link. Hub ini melayani
satu perangkat high-speed, C, dan satu perangkat low-speed, D. Biasanya, suatu pesan ke perangkat
D akan dikirimkan pada kecepatan rendah dari root hub. Pada 1,5 megabit/det, bahkan pesan
pendek sekalipun memerlukan beberapa puluh milidetik. Selama durasi pesan tersebut, tidak ada
transfer data lain yang bisa lakukan, sehingga mengurangi keefektifan high-speed link dan
menimbulkan jeda yang tidak dapat diterima untuk perangkat high-speed. Untuk mengurangi
persoalan, protokol USB mensyaratkan agar suatu pesan yang ditransmisikan pada high-speed link
selalu ditransmisikan pada kecepatan tinggi, bahkan pada saat receiver akhir adalah perangkat low-
speed. Karenanya, pesan yang ditujukan untuk perangkat D dikirim pada kecepatan tinggi dari root
hub ke hub A, kemudian dilanjutkan pada kecepatan rendah ke perangkat D. Transfer yang terakhir
tersebut memerlukan waktu lama, namun selama itu lalu lintas high-speed ke node lain dapat
berlanjut. Misalnya, root hub dapat mempertukarkan beberapa pesan dengan perangkat C pada saat
pesan low-speed dikirim dari hub A ke perangkat D. Selama periode ini, bus dapat dikatakan di-
split antara lalu lintas high-speed dan low-speed. Pesan ke perangkat D didahului dan diikuti oleh
perintah khusus ke hub A untuk memulai dan mengakhiri masing-masing mode operasi split-traffic
tersebut.
Kabel yang digunakan untuk koneksi USB terdiri dari empat kabel. Dua digunakan untuk
membawa daya, +5V dan Ground. Sehingga, hub atau perangkat I/O dapat langsung mendapat
daya dari bus, atau memiliki koneksi daya eksternal sendiri. Dua kawat yang lain digunakan untuk
membawa data. Skema signaling yang berbeda digunakan untuk kecepatan transmisi ynag berbeda.
Pada kecepatan rendah, 1 dan 0 ditransmisikan dengan mengirim keadaan tegangan tinggi (5V)
pada satu bagian atau bagian lain dari dua kawat sinyal tersebut. Untuk link high-speed, digunakan
transmisi diferensial.
2. CARA PENELITIAN
2.1 Alat yang Dipakai
Penelitian ini dilakukan pada sebuah PC (Personal Computer), spesifikasi komputer yang
digunakan yaitu:
1. Seperangkat PC
Memory sekunder untuk perangkat ekternal, seperti:
a. UFD (Flashdisk)
D ‐ 3
Seminar
Yogyakarta, 24 November 2007
b. MMC + CardReader
c. USB-HDD
2.2 Jalan Penelitian
Gambar 2 Flowchart Menu Utama
D ‐ 4
Seminar
Yogyakarta, 24 November 2007
D ‐ 5
Seminar Nasional Teknologi 2007 (SNT 2007)
ISSN : 1978 – 9777
Yogyakarta,
Secara garis besar, program utility yang dikembangkan mempunyai tahap-tahap yang harus
ditempuh, yaitu:
1. Seleksi serial number dari sebuah perangkat removable disk.
Setiap perangkat baik itu removable disk, USB-HDD, CD-Drive (yang ada CD-nya)
mempunyai serial number yang unik. Untuk informasi serial number bisa mengunakan
command prompt (C:\>VOL). Listing program sederhana di bawah ini berfungsi untuk
mencari informasi serial number dari sebuah drive (default C:\).
Private Declare Function GetVolumeSerialNumber Lib "kernel32.dll" _
Alias "GetVolumeInformationA" (ByVal lpRootPathName As String, _
ByVal lpVolumeNameBuffer As String, ByVal nVolumeNameSize As Long, _
lpVolumeSerialNumber As Long, lpMaximumComponentLength As Long, _
lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String, _
ByVal nFileSystemNameSize As Long) As Long
Public Function VolumeSerialNumber(ByVal RootPath As String) As String
Dim VolLabel As String
Dim VolSize As Long
Dim Serial As Long
Dim MaxLen As Long
Dim Flags As Long
Dim Name As String
Dim NameSize As Long
Dim s As String
Else
If GetVolumeSerialNumber(RootPath, VolLabel, VolSize, Serial, MaxLen, _
Flags, Name, NameSize) Then
'bikin 8 karakter string
s = Format(Hex(Serial), "00000000")
'tambahkan '-' antara 4 karakter pertama dan 4 karakter terakgir
VolumeSerialNumber = Left(s, 4) + "-" + Right(s, 4)
'jika terjadi kesalahan, nilai yang dibalikan 0000-0000
VolumeSerialNumber = "-"
End If
End Function
Private Sub Form_Load()
MsgBox VolumeSerialNumber("c:\")
D ‐ 6
Seminar Nasional Teknologi 2007 (SNT 2007)
Yogyakarta,
End Sub
2. Seleksi tipe drive
Dalam sistem operasi Windows terdapat 7 jenis tipe drive, yaitu:
1. DRIVE_UNKNOWN, yaitu tipe drive tidak diketahui
2. DRIVE_NO_ROOT_DIR, yaitu nama root direktori tidak ditemukan.
3. DRIVE_REMOVABLE, yaitu tipe disk yang dapat dilepas atau dipasang dari disk
seperti flashdisk, mmc, dll.
4. DRIVE_FIXED, yaitu tipe disk yang tidak dapat dilepas atau dipasang dari drive
(harddisk).
5. DRIVE_REMOTE, yaitu tipe drive adalah drive jaringan.
6. DRIVE_CDROM, yaitu tipe drive adalah CD-ROM.
7. DRIVE_RAMDISK, yaitu tipe disk adalah RAM disk.
Listing program sederhana di bawah ini berfungsi untuk menentukan tipe disk yang
dispesifikasikan, apakah bertipe removable, harddisk, dll.
‘in module
Public Declare Function GetDriveType Lib "kernel32.dll" _
Alias "GetDriveTypeA" (ByVal nDrive As String) As Long
Public Const DRIVE_UNKNOWN = 0
Public Const DRIVE_DOES_NOT_EXIST = 1
Public Const DRIVE_REMOVABLE = 2
Public Const DRIVE_FIXED = 3
Public Const DRIVE_REMOTE = 4
Public Const DRIVE_CDROM = 5
Public Const DRIVE_RAMDISK = 6
‘in form
Private Sub Command1_Click()
Select Case GetDriveType("c:\")
Case DRIVE_UNKNOWN
Case DRIVE_DOES_NOT_EXIST
Case DRIVE_REMOVABLE
MsgBox "Tipe disk tidak diketahui", vbExclamation
MsgBox "Tipe disk tidak ada", vbCritical
MsgBox "Tipe disk dapat dipasang/dilepaskan dari drive (Disket)", _
vbInformation
D ‐ 7
Seminar
Yogyakarta, 24 November 2007
Case DRIVE_FIXED
Case DRIVE_REMOTE
Case DRIVE_CDROM
Case DRIVE_RAMDISK
End Select
End Sub
MsgBox "Tipe disk tidak dapat dipasang/dilepas dari drive
(Hardisk)", vbInformation
MsgBox "Tipe drive adalah drive remote (jaringan)", vbInformation
MsgBox "Tipe drive adalah CD-ROM", vbInformation
MsgBox "Tipe drive adalah RAM disk", vbInformation
3. Meng-eject removable disk
Listing program sederhana di bawah ini berfungsi untuk meng-eject sebuah drive, fungsi
ini dapat meng-eject 2 tipe disk, yaitu removable dan CD-Drive (CD-ROM).
'Example by Howard Henry Schlunder
' This example requires one command button (Command1)
Private Declare Function GetVersion Lib "kernel32" () As Long
Private Declare Function CreateFile Lib "kernel32" Alias "CreateFileA"
(ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal
dwShareMode As Long, lpSecurityAttributes As Any, ByVal
dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal
hTemplateFile As Long) As Long
Private Declare Function DeviceIoControl Lib "kernel32" (ByVal hDevice
As Long, ByVal dwIoControlCode As Long, lpInBuffer As Any,
ByVal nInBufferSize As Long, lpOutBuffer As Any, ByVal nOutBufferSize
As Long, lpBytesReturned As Long, lpOverlapped As Any) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long)
As Long
Private Const INVALID_HANDLE_VALUE = -1
Private Const OPEN_EXISTING = 3
Private Const FILE_FLAG_DELETE_ON_CLOSE = 67108864
Private Const GENERIC_READ = &H80000000
Private Const GENERIC_WRITE = &H40000000
Private Const IOCTL_STORAGE_EJECT_MEDIA = 2967560
Private Const VWIN32_DIOC_DOS_IOCTL = 1
D
Seminar
Yogyakarta, 24 November 2007
Private Type DIOC_REGISTERS
reg_EBX As Long
reg_EDX As Long
reg_ECX As Long
reg_EAX As Long
reg_EDI As Long
reg_ESI As Long
reg_Flags As Long
End Type
Private Sub Command1_Click()
Dim hDrive As Long, DummyReturnedBytes As Long
Dim EjectDrive As String, DriveLetterAndColon As String
Dim RawStuff As DIOC_REGISTERS
EjectDrive = InputBox("Which drive shall we try to eject the media
If Len(EjectDrive) Then 'Confirm the user didn't cancel
DriveLetterAndColon = UCase(Left$(EjectDrive & ":", 2))
'Make it all caps for easy interpretation
If GetVersion >= 0 Then 'We are running Windows NT/2000
from?", "Eject Media")
Else 'We are running Win9x/Me
hDrive = CreateFile("\\.\" & DriveLetterAndColon, GENERIC_READ Or
GENERIC_WRITE, 0, ByVal 0, OPEN_EXISTING, 0, 0)
If hDrive <> INVALID_HANDLE_VALUE Then
'Eject media!
Call DeviceIoControl(hDrive, IOCTL_STORAGE_EJECT_MEDIA, 0, 0,
0, 0, DummyReturnedBytes, ByVal 0)
Call CloseHandle(hDrive) 'Clean up after ourselves
End If
hDrive = CreateFile("\\.\VWIN32", 0, 0, ByVal 0, 0,
If hDrive <> INVALID_HANDLE_VALUE Then
'Setup our raw registers to use Interrupt 21h Function 440Dh
Minor Code 49h
RawStuff.reg_EAX = &H440D 'The function to use
RawStuff.reg_EBX = Asc(DriveLetterAndColon) - Asc("A") + 1
FILE_FLAG_DELETE_ON_CLOSE, 0)
D ‐ 9
Seminar Nasional Teknologi 2007 (SNT 2007)
Yogyakarta, 24 November 2007
RawStuff.reg_ECX = &H49 Or &H800
'The minor code of the function in the low byte of the low
word and the device category of 8 in the high byte of the
low word
'Eject media!
Call DeviceIoControl(hDrive, VWIN32_DIOC_DOS_IOCTL,
RawStuff, LenB(RawStuff), RawStuff, LenB(RawStuff),
DummyReturnedBytes, ByVal 0)
Call CloseHandle(hDrive) 'Clean up after ourselves
End If
End If
End If
End Sub
3. HASIL DAN PEMBAHASAN
3.1 Form Menu Utama
Gambar 5 Form Menu Utama
Form menu utama terdiri 2 frame, yaitu:
1) Manage Accept
a) Accept All, berfungsi: menerima semua removable disk yang dicolokkan ke USB-
Port.
b) Only From List, berfungsi: menerima removable disk yang telah terdaftar di dalam
Accepted List ketika dicolokkan ke USB-Port. Dan menolak removable disk yang
tidak terdaftar daftar di dalam Accepted List.
c) From No One, berfungsi: menolak semua removable disk yang dicolokkan ke
USB-Port.
2) Accepted List
D ‐ 10
Seminar
ISSN : 1978 – 9777
Yogyakarta,
Berfungsi untuk menambah atau menghapus nama label dan serial number removable
disk di dalam daftar list.
3.2 Analisis Uji Coba
Tabel 1 Perbandingan Hak Akses antara Administrator dengan Non-
No.
Administrator
Eject removable disk
Autorun when OS Windows startup
Hiden Registry
Disable Task Manager
Enable Password
Enable Multi User
Disable All USB Storage
Hak Akses
Administrator
√
√
√
√
√
√
√
Penjelasan Tabel 1
Hasil analisis pada Tabel 1, untuk eject removable disk dapat berfungsi di sisi
administrator account dan tidak dapat berfungsi pada non-administrator account hal ini
dikarena pada penggunaan extention DLL OS Windows. Di dalam OS Windows bagi yang
non-administrator account eject removable disk tidak berfungsi. Untuk mencegah hal ini,
penulis memproteksi dengan screen. Untuk autorun when OS Windows startup dan hiden
registry baik di sisi administrator account atau di sisi non-administrator account hal ini bisa
dilakukan. Sedangkan untuk disable task manager, enable password, enable multi user, dan
disable all USB storage di sisi non-administrator account tidak dapat berfungsi karena
penyimpanan data ke memori registry tidak dapat berfungsi (OS Windows tidak
mengizinkan penambahan, perbaikan, dan penghapusan di memori registry).
Tabel 2 Perbandingan Hak Akses dari Masing-Masing Jenis Perangkat
No.
1
2
Penjelasan Tabel 2
Jenis Perangkat
Hak Akses
Eject removable disk
Disable All USB Storage
Flashdisk
√
√
D ‐ 11
Seminar Nasional Teknologi 2007 (SNT 2007)
ISSN : 1978 – 9777
Yogyakarta,
Hasil analisis pada Tabel 2, USB-HDD tidak bisa di eject karena USB-HDD dalam OS
Windows terdeteksi sebagai local disk (fixed) dalam hal ini tidak tergolong dalam
removable disk. Untuk mencegah keamanaan data maka user (administrator account) bisa
mensetting ke disable all USB storage sehingga bisa menghindari dari peng-copy-an atau
pengcurian data bagi user lainnya. Kelemahan dari mensetting ke disable all USB storage
yaitu semua memori storage termasuk USB-HDD, removable disk, dan lain-lain tidak
terdeteksi oleh OS Windows baik di sisi user maupun di sisi multi user.
4. KESIMPULAN DAN SARAN
4.1 Kesimpulan
Program utility yang dikembangkan dapat mengendalikan akses removeable disk yang
ditentukan oleh administrator. Kelemahan dari program utility yang dikembangkan oleh
penulis meskipun bisa digunakan untuk kendali akses removable disk tetapi tidak mampu
untuk kendali akses tipe disk yang lain seperti USB-HDD.
Untuk pengembangan program utility ini yang dibuat oleh penulis, masih terdapat banyak
hal yang dapat dilakukan untuk penyempurnaan sistem ini. Beberapa saran untuk pengembangan
lebih lanjut antara lain:
1. Meningkatkan kemampuan program utility dalam penggunaan teknologi safely removable
hardware (menon-aktifkan aliran listrik ke USB storage).
2. Meningkatkan kemampuan program utility untuk kendali akses tipe disk yang lain, seperti
USB-HDD, CD-Drive, dan lain-lain.
DAFTAR PUSTAKA
Carl hamacher, Zkonko Vranesic dan Safwat Zaky, 2004, Organisasi Komputer Edisi 5.
Yogyakarta: Andi Offset.
Hadi, Rahadian, 2002, Pemrograman Windows API dengan Microsoft Visual Basic. Jakarta: PT.
Elex Media Komputindo.
Halvorson, Michael, 2002, Step by Step Microsoft Visual Basic 6.0. Jakarta: PT. Elex Media
Komputindo.
MSDN Library Visual Studio 6.0, Microsoft Corporation, 2001.
Pamungkas, 2000, Tip & Trik Microsoft Visual Basic 6.0. Jakarta: PT. Elex Media Komputindo.
Putra, Rahmat, 2005, The Best Source Code Visual Basic. Jakarta: PT. Elex Media Komputindo.
Sallings, William, 1998, Organisasi dan Arsitektur Komputer Jilid 2. Jakarta: Prenhallindo.
Suryo Kusumo Ario, Drs., 2004, Buku Latihan Visual Basic .Net Versi 2002 dan 2003. Jakarta: PT.
Elex Media Komputindo.
Wahana Komputer, 2003, Panduan Lengkap Pemrograman VBScript. Yogyakarta: ANDI.
www.chip.co.id Add to Cart
Langganan:
Posting Komentar (Atom)
0 komentar:
Posting Komentar