USB Dongle / USB Key Berbasis ATtiny2313 Sebagai Kunci Pengaman Software Aplikasi


usbdongle Banyak software aplikasi perkantoran maupun software operasional industri yang membutuhkan password atau kata-kunci yang tepat untuk dapat dioperasikan. Oleh karenanya hanya sebagian orang saja yang dapat mengoperasikan software tersebut, karena hanya orang-orang yang berkepentingan saja yang memiliki password atau kata-kunci tersebut.

Tak jarang seorang punggawa penting perusahaan mengantongi banyak password di memorinya sehingga boleh jadi suatu saat ketika lupa misalnya, atau gadget-nya ketinggalan di rumah misalnya, maka ia pun tidak dapat mengoperasikan software aplikasi yang harus dioperasikannya. 🙂

USB Dongle atau USB Key adalah sebuah sistem mikrokontroler yang telah ditanami program implementasi protokol komunikasi USB dan menyimpan data-data seperti USER_NAME, USER_ID, dan USER_PASSWORD. Tentunya tidak hanya data-data tersebut yang dapat disimpan dalam sebuah USB Dongle atau USB Key. Ketiga data tersebut hanyalah contoh yang saya gunakan pada eksperimen ini.

Rangkaian yang saya gunakan pada eksperimen ini adalah rangkaian yang sama dengan eksperimen sebelumnya yakni pengontrolan LED via USB tanpa konverter USB-to-RS232. Sebuah LED berwarna merah dalam eksperimen ini juga masih berfungsi sebagai perwakilan output yang dikontrol oleh software melalui port USB.

Skenario Program

Ketika program aplikasi dijalankan, pertama-tama program akan mendeteksi adanya piranti USB yang dalam eksperimen ini adalah USB Dongle atau USB Key. Jika USB Dongle tidak ditemukan, maka program akan menampilkan pesan seperti pada screenshot berikut ini.

usbkey_locked

Jika program menemukan USB Dongle yang dimaksud, maka program akan meminta user untuk memasukkan password. Sesaat setelah user mengetikkan password dan meng-klik button OK atau menekan ENTER, maka program akan meminta data USER_PASSWORD dari USB Dongle dan membandingkannya dengan password yang dimasukkan oleh user.

usbkey_passwordJika password salah, maka program akan menampilkan pesan kesalahan dan program pun diakhiri (closed). Jika password benar, maka program akan menampilkan form tampilan utama program aplikasi. Program akan meminta data USER_NAME dan USER_ID dan menampilkannya pada form utama program.

Berikut adalah fungsi pemroses pesan dialog Password Entry.

/*
  PasswordDlgProc
  Fungsi pemroses pesan Password Entry Dialog
*/
static INT_PTR CALLBACK PasswordDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
  char pwd[10];
  HWND hwndEdit;
  int nBytes;
  char buffer[10];

  switch (uMsg)
  {
    case WM_SHOWWINDOW:
      hwndEdit = GetDlgItem(hwndDlg, 4002);
      SetFocus(hwndEdit);
      return TRUE;

    case WM_COMMAND:
      switch(GET_WM_COMMAND_ID(wParam, lParam))
      {
        case IDOK:
          nBytes = usb_control_msg(handle,
            USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_ENDPOINT_IN,
            PSCMD_GETPASSWORD, 0, 0, (char *)buffer, sizeof(buffer), 5000);

          GetDlgItemText(hwndDlg, 4002, pwd, 10);

          if (strcmp(pwd, buffer)!=0)
          {
            MessageBox(hwndDlg, "Sorry, wrong password!", "Error!", MB_ICONERROR);
            exit(1);
          }
          EndDialog(hwndDlg, 0);
          return TRUE;

        case IDCANCEL:
          exit(1);
          return TRUE;
      }
  }
  return FALSE;
}

Kita juga dapat mengubah skenario di atas sehingga user tidak hanya diharuskan untuk memasukkan password saja, akan tetapi juga diharuskan untuk memasukkan user-id.

usbkey_apprun Pada eksperimen ini, form utama program aplikasi ditunjukkan oleh screenshot di samping ini. Program menyediakan 2 buah button yakni START ENGINE dan STOP ENGINE. Button START ENGINE berfungsi untuk menyalakan LED, sedangkan button STOP ENGINE berfungsi untuk mematikan LED.

Eksperimen ini masih menggunakan V-USB untuk implementasi protokol USB pada mikrokontroler ATtiny2313, libusb-win32 sebagai driver piranti USB dan library pemrograman USB, serta Kompiler Pelles C sebagai IDE dan kompiler bahasa C untuk program contoh aplikasi.

USB Dongle juga dapat digunakan pada aplikasi sistem check-log karyawan. Aplikasi lainnya adalah sebagai dongle software aplikasi yang selain menyimpan data USER_NAME, USER_ID, dan USER_PASSWORD, piranti ini juga memiliki fungsi sebagai pengacak data. Karena pengacakan data dilakukan oleh USB Dongle secara eksternal, maka tentunya akan lebih aman jika dibandingkan yang hanya menggunakan software saja. Dan tentunya masih banyak lagi aplikasi-aplikasi yang dapat memanfaatkan teknologi ini sebagai pendukung sistemnya.

Jika Anda membutuhkan piranti USB seperti USB Dongle, USB-Relay Controller, USB Temperature Data Logger, USB Temperature & Humidity Data Logger, atau yang lain, silakan menghubungi kami melalui email ke: info@teknikelektrolinks.com. Silakan juga mengunjungi situs kami di: http://teknikelektrolinks.com.

Semoga bermanfaat, selamat belajar dan selamat berkarya!

🙂

Iklan
Perihal

Cek situs kami di http://teknikelektrolinks.com. Blog Raspberry Pi: http://raspi.teknikelektrolinks.com

Tagged with: , , ,
Ditulis dalam AVR, C/C++, Elektronika, Industrial Control and Automation, Mikrokontroler, Software/Programming
2 comments on “USB Dongle / USB Key Berbasis ATtiny2313 Sebagai Kunci Pengaman Software Aplikasi
  1. toto xu mengatakan:

    Kalo usb dongle hilang, gimana cara nge-hack prohramnya ya pak ?
    Kebetulan mesin CNC kantor, usb dongle-nya dibawa orang yg tidak bertanggung jawab.

    Trims

    • Chandra MDE mengatakan:

      Kalau nge-hack pastinya tidak gampang. Menurut saya lebih gampang menghubungi authorized dealer atau technical support mesin CNC tersebut untuk mendapatkan dongle yang baru.

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

Blog Stats
  • 1,298,748 hits

Bergabunglah dengan 2.490 pengikut lainnya

NEO STARDUINO
USB Relay USB-2REL
USB Relay USB-4REL
Water Level Control WLC-02
Serial Relay SER-4REL
NEO STARDUINO SMS ALARM

Alarm SMS Berbasis NEO STARDUINO

1 PC – 6 Unit USB-2REL

Testing 6 USB-2REL Pada 1 Komputer

Standard Pengujian USB-2REL

Pengujian USB-2REL Sebelum Dikirim

LPT-4REL on Knoppix 7.0.5

Testing LPT-4REL on Knoppix Linux

T101 Inkubator Telur

T101 Inkubator Penetas Telur

KONTROL PERALATAN LISTRIK VIA PORT LPT KOMPUTER

Demo Kontrol Kontaktor via Port LPT

STARDUINO meets ANDROID

Demo Kontrol Bluetooth Relay Android

STARDUINO SMS RELAY

Kontrol Relay Via SMS Dengan Starduino

STARDUINO WEB RELAY

Demo Kontrol Relay Via Web/Internet

JustBASIC USB-2REL Control

Demo Kontrol USB-2REL + JustBASIC

STARDUINO + GPS + LCD

Demo Starduino GPS Dengan LCD

USB-2REL EXTREME TEST

Demo Kontrol On/Off Lampu USB-2REL

THERMOSTAT T101 IN ACTION

Demo Thermostat T101 Pada SV=37.5°C

WATER LEVEL CONTROL WLC-02

Demo Kontrol Level Air Tandon WLC-02

HUMIDITY CONTROLLER H103

Demo Kontrol Kelembaban H103 (DHT11)

%d blogger menyukai ini: