Featured Contents

Sample Post 1

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. [...]

Sample Post 2

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. [...]

Sample Post 3

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. [...]

Sample Post 4

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. [...]

Latest Posts

1

PERBANDINGAN ALGORITMA SORTING

Brodhint_Explore Jumat, 03 September 2010
1 Pengurutan data dengan menggunakan metode Bubble Sort

Ide dari algoritma ini sangat menarik. Setiap pasangan data: x[j] dengan x[j-1], untuk semua i=1,...,n-1 harus memenuhi keterurutan, yaitu x[j] > x[j-1]. Apabila tidak memenuhi maka posisi kedua data harus ditukar. Untuk pemrograman konvensional maka pemeriksaan-pemeriksaan pasangan tersebut harus dilakukan satu demi satu, misalnya oleh bubble-sort dilakukan dari kanan ke kiri serta di dalam sejumlah iterasi.
Pada iterasi ke-i, pemeriksaan tsb. dilakukan pula dalam loop-for sbb.
for (j=n-1; j > i; j--) {
if (x[j] < x[j-1]) {
tmp = x[j];
x[j] = x[j-1];
x[j-1] = tmp;
}
}
Loop-for tersebut akan menggeser bilangan terkecil ke posisi i. Loop-for dilakukan hanya sampai ke i karena pada iterasi ke-i data dalam x[0], x[1], ..., x[i-1] merupakan yang paling kecil dan sudah terurut hasil pengeseran yang dilakukan setiap loop sebelumnya. Oleh sebab itu iterasi hanya dilakukan untuk harga i=0, 1, ..., n-2 atau sampai tidak terjadi penukaran dalam suatu iterasi.
void BubbleSort() {
ch = true;
for (i=0; i < n-2 && ch; i++) {
ch = false;
for (j=n-1; j > i; j--) {
if (x[j] < x[j-1]) {
tmp = x[j];
x[j] = x[j-1];
x[j-1] = tmp;
ch = true;
}
}
}
}
Contoh untuk mengurutkan data 34,43,65,90,48,82,93,86,26,76,49,23,56,37.
Pada iterasi i=0:
j=13: tukar 56-37 menjadi 34,43,65,90,49,82,93,86,26,76,49,23,37,56
j=12: tidak ada penukaran
j=11: tukar 49-23 menjadi 34,43,65,90,48,82,93,86,26,76,23,49,37,56
j=10: tukar 76-23 menjadi 34,43,65,90,48,82,93,86,26,23,76,49,37,56
j= 9: tukar 26-23 menjadi 34,43,65,90,48,82,93,86,23,26,76,49,37,56
j= 8: tukar 86-23 menjadi 34,43,65,90,48,82,93,23,86,26,76,49,37,56
j= 7: tukar 93-23 menjadi 34,43,65,90,48,82,23,93,86,26,76,49,37,56
j= 6: tukar 82-23 menjadi 34,43,65,90,48,23,82,93,86,26,76,49,37,56
j= 5: tukar 49-23 menjadi 34,43,65,90,23,48,82,93,86,26,76,49,37,56
j= 4: tukar 90-23 menjadi 34,43,65,23,90,48,82,93,86,26,76,49,37,56
j= 3: tukar 65-23 menjadi 34,43,23,65,90,48,82,93,86,26,76,49,37,56
j= 2: tukar 43-23 menjadi 34,23,43,65,90,48,82,93,86,26,76,49,37,56
j= 1: tukar 34-23 menjadi 23,34,43,65,90,48,82,93,86,26,76,49,37,56

Pada iterasi i=1:
j=13: tidak ada penukaran
j=12: tukar 49-37 menjadi 23,34,43,65,90,48,82,93,86,26,76,37,49,56
j=11: tukar 76-37 menjadi 23,34,43,65,90,48,82,93,86,26,37,76,49,56
j=10: tidak ada penukaran
j= 9: tukar 86-26 menjadi 23,34,43,65,90,48,82,93,26,86,37,76,49,56
j= 8: tukar 93-26 menjadi 23,34,43,65,90,48,82,26,93,86,37,76,49,56
j= 7: tukar 82-26 menjadi 23,34,43,65,90,48,26,82,93,86,37,76,49,56
...
j= 2: tukar 34-26 menjadi 23,26,34,43,65,90,48,82,93,86,37,76,49,56
Dan seterusnya. Hingga, pada setiap akhir iterasi berikutnya berturut-turut menjadi:
i=2: 23,26,34,37,43,65,90,48,82,93,86,49,76,56
i=3: 23,26,34,37,43,48,65,90,49,82,93,86,56,76
i=4: 23,26,34,37,43,48,49,65,90,56,82,93,86,76
i=5: 23,26,34,37,43,48,49,56,65,90,76,82,93,86
i=6: 23,26,34,37,43,48,49,56,65,76,90,82,86,93
i=7: 23,26,34,37,43,48,49,56,65,76,82,90,86,93
i=8: 23,26,34,37,43,48,49,56,65,76,82,86,90,93
i=9: 23,26,34,37,43,48,49,56,65,76,82,86,90,93
Dari kedua iterasi dengan increment linear demikian dapat mudah dilihat bahwa algoritma ini memiliki kompleksitas O(n2) dan proses akan menjadi amat cepat kalau data sudah sebagian besar terurut. Masalah yang dihadapi algoritma ini adalah banyaknya penukaran yang dilakukan selama proses dalam kondisi normal. Efisiensi dapat ditingkatkan dengan mengurangi proses penukaran dengan penggeseran dan penyisipan seperti halnya insertion sort. Untuk lingkungan pemrograman paralel dengan array processor pengurutan ini menjadi amat menarik untuk dikaji.
Jika Bobble Sort dalam setiap iterasi melakukan loop-for penukaran ke satu arah, Shaker Sort (suatu variant dari Bubble Sort) melakukan loop-for penukaran dengan arah bolak-balik dengan batas loop-for kiri dan kanan semakin menyempit.

2 Pengurutan data dengan menggunakan metode Quick Sort

Ide dari algoritma ini adalah secara rekursif membagi (atau mempartisi) data set ke dalam dua sub data set; kita sebut sub data set kiri dan sub data set kanan. Partisi ini dilakukan dengan kriteria:
o digunakan salah satu data sebagai pivot value
o sub data set kiri adalah data yang berharga <= pivot value
o sub data set kanan adalah data yang berharga > pivot value
Jika data set berada dalam array X berindeks dari l sampai dengan r maka pembagian ini mempertukarkan sejumlah isi array sehingga sub data set kiri berada dalam array yang sama berindeks l sampai dengan t-1 dan sub data set kanan berada dalam array berindeks t+1 sampai dengan r. X[t] sendiri ditempati oleh pivot.
Setelah dilakukan pembagian tersebut maka algoritma Quick Sort diaplikasikan untuk masing-masing sub data set tsb dan seterusnya secara rekursif hingga terbentuk sub data set yang tidak dapat dibagi lagi yaitu jika hanya berisi satu sel (l = r).
Bagian yang paling tricky adalah pada pembagian data set, kita sebut fungsi tersebut adalah Partition(l,r) yang menghasilkan t yaitu posisi pivotnya. Maka, algoritma Quick Sort adala sebagai berikut.

void QuickSort(int l,int r) {
if (l < r) {
t = Partition(l,r);
QuickSort(l,t-1);
QuickSort(t+1,r);
}
}

Proses Partisi diserahkan kepada anda untuk mempelajarinya sendiri. Dalam beberapa literatur terdapat variant-varuant yang pada dasarnya terjadi karena perbedaan cara menentukan harga pivot: bisa data pertama (X[l]), data terakhir (X[r]) atau data ditengah (X[(l+r)/2]) data set).
Kompleksitas algoritma Quick Sort adalah bergantung pada hasil partisi tersebut. Kondisi best case adalah jika dalam setiap partisi tidak dilakukan operasi pertukaran tempat dan pivot tepat berada ditengah subset (O(n)). Kondisi average case adalah jika partisi menghasilkan sub data set yang balance (o(n log n)). Kondisi worse case adalah jika partisi menghasilkan sub data set kosong dan yang lain besar (o(n2). Walaupun demikian, algoritma ini cenderung untuk average case.
0

Wireless Security

Brodhint_Explore Selasa, 31 Agustus 2010
Jaringan Wifi memiliki lebih banyak kelemahan dibanding dengan jaringan kabel. Saat ini perkembangan teknologi wifi sangat signifikan sejalan dengan kebutuhan sistem informasi yang mobile. Banyak penyedia jasa wireless seperti hotspot komersil, ISP, Warnet, kampus-kampus maupun perkantoran sudah mulai memanfaatkan wifi pada jaringan masing masing, tetapi sangat sedikit yang memperhatikan keamanan komunikasi data pada jaringan wireless tersebut. 
Hal ini membuat para hacker menjadi tertarik untuk mengexplore keamampuannya untuk melakukan berbagai aktifitas yang biasanya ilegal menggunakan wifi. Kali ini akan dibahas berbagai jenis aktivitas dan metode yang dilakukan para hacker wireless ataupun para pemula dalam melakukan wardriving. Wardriving adalah kegiatan atau aktivitas untuk mendapatkan informasi tentang suatu jaringan wifi dan mendapatkan akses terhadap jaringan wireless tersebut. Umumnya bertujuan untuk mendapatkan koneksi internet, tetapi banyak juga yang melakukan untuk maksud-maksud tertentu mulai dari rasa keingintahuan, coba coba, research, tugas praktikum, kejahatan dan lain lain.


Kelemahan Wireless

Kelemahan jaringan wireless secara umum dapat dibagi menjadi 2 jenis, yakni kelemahan pada
konfigurasi dan kelemahan pada jenis enkripsi yang digunakan. Salah satu contoh penyebab
kelemahan pada konfigurasi karena saat ini untuk membangun sebuah jaringan wireless cukup
mudah. Banyak vendor yang menyediakan fasilitas yang memudahkan pengguna atau admin
jaringan sehingga sering ditemukan wireless yang masih menggunakan konfigurasi wireless default
bawaan vendor. Penulis sering menemukan wireless yang dipasang pada jaringan masih
menggunakan setting default bawaan vendor seperti SSID, IP Address , remote manajemen, DHCP
enable, kanal frekuensi, tanpa enkripsi bahkan user/password untuk administrasi wireless tersebut.
WEP (Wired Equivalent Privacy) yang menjadi standart keamanan wireless sebelumnya, saat ini
dapat dengan mudah dipecahkan dengan berbagai tools yang tersedia gratis di internet. WPA-PSK
dan LEAP yang dianggap menjadi solusi menggantikan WEP, saat ini juga sudah dapat dipecahkan
dengan metode dictionary attack secara offline.

Beberapa kegiatan dan aktifitas yang dilakukan untuk mengamanan jaringan wireless antara lain:

1. Menyembunyikan SSID
Banyak administrator menyembunyikan Services Set Id (SSID) jaringan wireless mereka dengan
maksud agar hanya yang mengetahui SSID yang dapat terhubung ke jaringan mereka. Hal ini
tidaklah benar, karena SSID sebenarnya tidak dapat disembuyikan secara sempurna. Pada saat saat
tertentu atau khususnya saat client akan terhubung (assosiate) atau ketika akan memutuskan diri
(deauthentication) dari sebuah jaringan wireless, maka client akan tetap mengirimkan SSID dalam
bentuk plain text (meskipun menggunakan enkripsi), sehingga jika kita bermaksud menyadapnya,
dapat dengan mudah menemukan informasi tersebut. Beberapa tools yang dapat digunakan untuk
mendapatkan ssid yang dihidden antara lain, kismet (kisMAC), ssid_jack (airjack), aircrack ,
void11 dan masih banyak lagi.


2. Keamanan wireless hanya dengan kunci WEP

WEP merupakan standart keamanan & enkripsi pertama yang digunakan pada wireless, WEP
memiliki berbagai kelemahan antara lain :
>>> Masalah kunci yang lemah, algoritma RC4 yang digunakan dapat dipecahkan.
>>> WEP menggunakan kunci yang bersifat statis
>>> Masalah initialization vector (IV) WEP
>>> Masalah integritas pesan Cyclic Redundancy Check (CRC-32)


WEP terdiri dari dua tingkatan, yakni kunci 64 bit, dan 128 bit. Sebenarnya kunci rahasia pada
kunci WEP 64 bit hanya 40 bit, sedang 24bit merupakan Inisialisasi Vektor (IV). Demikian juga
pada kunci WEP 128 bit, kunci rahasia terdiri dari 104bit.



Serangan-serangan pada kelemahan WEP antara lain :

- Serangan terhadap kelemahan inisialisasi vektor (IV), sering disebut FMS attack. FMS
singkatan dari nama ketiga penemu kelemahan IV yakni Fluhrer, Mantin, dan Shamir.
Serangan ini dilakukan dengan cara mengumpulkan IV yang lemah sebanyak-banyaknya.
Semakin banyak IV lemah yang diperoleh, semakin cepat ditemukan kunci yang digunakan

- Mendapatkan IV yang unik melalui packet data yang diperoleh untuk diolah untuk proses
cracking kunci WEP dengan lebih cepat. Cara ini disebut chopping attack, pertama kali
ditemukan oleh h1kari. Teknik ini hanya membutuhkan IV yang unik sehingga mengurangi
kebutuhan IV yang lemah dalam melakukan cracking WEP.

- Kedua serangan diatas membutuhkan waktu dan packet yang cukup, untuk mempersingkat
waktu, para hacker biasanya melakukan traffic injection. Traffic Injection yang sering
dilakukan adalah dengan cara mengumpulkan packet ARP kemudian mengirimkan kembali
ke access point. Hal ini mengakibatkan pengumpulan initial vektor lebih mudah dan cepat.
Berbeda dengan serangan pertama dan kedua, untuk serangan traffic injection,diperlukan
spesifikasi alat dan aplikasi tertentu yang mulai jarang ditemui di toko-toko, mulai dari chipset, versi firmware, dan versi driver serta tidak jarang harus melakukan patching
terhadap driver dan aplikasinya.

3. Keamanan wireless hanya dengan kunci WPA-PSK atau WPA2-PSK
WPA merupakan teknologi keamanan sementara yang diciptakan untuk menggantikan kunci
WEP. Ada dua jenis yakni WPA personal (WPA-PSK), dan WPA-RADIUS.
Saat ini yang sudah dapat di crack adalah WPA-PSK, yakni dengan metode brute force
attack secara offline. Brute force dengan menggunakan mencoba-coba banyak kata dari suatu
kamus. Serangan ini akan berhasil jika passphrase yang yang digunakan wireless tersebut
memang terapat pada kamus kata yang digunakan si hacker.
Untuk mencegah adanya serangan terhadap keamanan wireless menggunakan WPA-PSK,
gunakanlah passphrase yang cukup panjang (satu kalimat).
Tools yang sangat terkenal digunakan melakukan serangan ini adalah CoWPAtty (
http://www.churchofwifi.org/ ) dan aircrack ( http://www.aircrack-ng.org ) . Tools ini
memerlukan daftar kata atau wordlist, dapat di ambil dari http://wordlist.sourceforge.net/

4. MAC Filtering
Hampir setiap wireless access point maupun router difasilitasi dengan keamanan MAC
Filtering. Hal ini sebenarnya tidak banyak membantu dalam mengamankan komunikasi
wireless, karena MAC address sangat mudah dispoofing atau bahkan dirubah.
Tools ifconfig pada OS Linux/Unix atau beragam tools spt network utilitis, regedit, smac,
machange pada OS windows dengan mudah digunakan untuk spoofing atau mengganti
MAC address.
Penulis masih sering menemukan wifi di perkantoran dan bahkan ISP (yang biasanya
digunakan oleh warnet-warnet) yang hanya menggunakan proteksi MAC Filtering. Dengan
menggunakan aplikasi wardriving seperti kismet/kisMAC atau aircrack tools, dapat
diperoleh informasi MAC address tiap client yang sedang terhubung ke sebuah Access Point.
Setelah mendapatkan informasi tersebut, kita dapat terhubung ke Access point dengan
mengubah MAC sesuai dengan client tadi. Pada jaringan wireless, duplikasi MAC adress
tidak mengakibatkan konflik. Hanya membutuhkan IP yang berbeda dengan client yang tadi.

5. Captive Portal
Infrastruktur Captive Portal awalnya didesign untuk keperluan komunitas yang
memungkinkan semua orang dapat terhubung (open network). Captive portal sebenarnya
merupakan mesin router atau gateway yang memproteksi atau tidak mengizinkan adanya trafik
hingga user melakukan registrasi/otentikasi. Berikut cara kerja captive portal :
>>> user dengan wireless client diizinkan untuk terhubung wireless untuk mendapatkan IP
address (DHCP)
>>> block semua trafik kecuali yang menuju ke captive portal (Registrasi/Otentikasi berbasis
web) yang terletak pada jaringan kabel.
>>> redirect atau belokkan semua trafik web ke captive portal
>>> setelah user melakukan registrasi atau login, izinkan akses ke jaringan (internet)

Beberapa hal yang perlu diperhatikan, bahwa captive portal hanya melakukan tracking koneksi
client berdasarkan IP dan MAC address setelah melakukan otentikasi. Hal ini membuat captive
portal masih dimungkinkan digunakan tanpa otentikasi karena IP dan MAC adress dapat dispoofing.
Serangan dengan melakukan spoofing IP dan MAC. Spoofing MAC adress seperti yang sudah
dijelaskan pada bagian 4 diatas. Sedang untuk spoofing IP, diperlukan usaha yang lebih yakni
dengan memanfaatkan ARP cache poisoning, kita dapat melakukan redirect trafik dari client yang
sudah terhubung sebelumnya.
Serangan lain yang cukup mudah dilakukan adalah menggunakan Rogue AP, yaitu mensetup Access
Point (biasanya menggunakan HostAP) yang menggunakan komponen informasi yang sama seperti
AP target seperti SSID, BSSID hingga kanal frekwensi yang digunakan. Sehingga ketika ada client
yang akan terhubung ke AP buatan kita, dapat kita membelokkan trafik ke AP sebenarnya.
Tidak jarang captive portal yang dibangun pada suatu hotspot memiliki kelemahan pada konfigurasi
atau design jaringannya. Misalnya, otentikasi masih menggunakan plain text (http), managemen
jaringan dapat diakses melalui wireless (berada pada satu network), dan masih banyak lagi.
Kelemahan lain dari captive portal adalah bahwa komunikasi data atau trafik ketika sudah
melakukan otentikasi (terhubung jaringan) akan dikirimkan masih belum terenkripsi, sehingga
dengan mudah dapat disadap oleh para hacker. Untuk itu perlu berhati-hati melakukan koneksi pada
jaringan hotspot, agar mengusahakan menggunakan komunikasi protokol yang aman seperti
https,pop3s, ssh, imaps dst.
 
Copyright 2010 BrodhintExplore