Minggu, 03 November 2013

Source Code Algoritma AES 128 Dalam Java

Source Code Algoritma AES 128 Dalam Java

Dibawah ini merupakan source code  algoritma AES 128 menggunakan bahasa pemrograman java. Disini inputan atau plainteks nya berupa string, untuk yang file akan saya posting berikutnya. Source saya Run menggunakan Netbeans. Agar source dapat dijalankan, download dulu "The Bouncy Castle Crypto package". Selanjutkan tambahkan file .jar tersebut di Libraries. 

Berikut source code nya :
package aes;

/**
 *
 * @author zae
 */
import java.security.Security;
import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;

public class Main {
  public static void main(String[] args) throws Exception {
    Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());
    byte[] input = "tes".getBytes();
    byte[] keyBytes = new byte[] { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09,
        0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f };

    SecretKeySpec key = new SecretKeySpec(keyBytes, "AES");

    Cipher cipher = Cipher.getInstance("AES/ECB/PKCS7Padding", "BC");

    System.out.println(new String(input));

    // encryption pass
    cipher.init(Cipher.ENCRYPT_MODE, key);

    byte[] cipherText = new byte[cipher.getOutputSize(input.length)];
    int ctLength = cipher.update(input, 0, input.length, cipherText, 0);
    ctLength += cipher.doFinal(cipherText, ctLength);
    System.out.println(new String(cipherText));
    System.out.println(ctLength);

    // decryption pass
    cipher.init(Cipher.DECRYPT_MODE, key);
    byte[] plainText = new byte[cipher.getOutputSize(ctLength)];
    int ptLength = cipher.update(cipherText, 0, ctLength, plainText, 0);
    ptLength += cipher.doFinal(plainText, ptLength);
    System.out.println(new String(plainText));
    System.out.println(ptLength);
  }
}

Penjelasan dari source code diatas adalah

* Input berupa string, dalam kasus ini, saya meng-enkrip : "tes"
   byte[] input = "tes".getBytes();

*Kunci yang dipakai adalah "123456789abcdef"
SecretKeySpec key = new SecretKeySpec(keyBytes, "AES");

dimana keyBytes adalah array byte yang isinya kunci
byte[] keyBytes = new byte[] { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09,0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f }; 

* algoritma yang dipakai adalah AES, dalam hal ini AES 128, karena kunci yang dipakai 128 bit
Cipher cipher = Cipher.getInstance("AES/ECB/PKCS7Padding", "BC");

Setelah di Run maka hasilnya sebagai berikut
run:
tes                
//output System.out.println(new String(input));
O
, qX(PNNy     //output System.out.println(new String(cipherText));
16                 
//output System.out.println(ctLength);
tes                
//output System.out.println(new String(plainText));
3                   //output System.out.println(ptLength);

Password Cracking

Password Cracking

pAssWorD cRacKinG adalah proses pemulihan password dari data yang telah disimpan atau dikirimkan oleh suatu sistem komputer. Biasanya password cracking digunakan untuk mendapatkan akses ke suatu bukti dalam bentuk digital, dimana akses tersebut sudah ditutup atau dibatasi.

Inilah 10 software password cracker terbaik menurut sectools.org :
  1. Cain & Abel **** Tools yg berjalan di windows, dapat melakukan beberapa tugas antara lain memanen password dg sniffing jaringan, cracking password yg terenkripsi dg dictionary attack, brute-force dan cryptanalisis, merekam percakapan VOIP, decoding password yg di enkripsi,mengembalikan password yg ter cache, serta menganalisis routing protokol.
  2. John the Ripper **** Tools yg powerfull dan multi platform,berjalan di linux, Windows, macOS, DOS, BeOS dan openVMS. Pada awalnya digunakan untuk mendeteksi password yang lemah pada sistem operasi Linux.
  3. THC Hydra **** Tools ini berjalan multiplatform, dan digunakan untuk cracking melalui jaringan, menggunakan metode dictionary attack dan mendukng 30 protokol termasuk telnet,ftp,http,https,smb,beberapa database dan lain-lain.
  4. Aircrack
  5. L0phtrack
  6. Airsnort
  7. Solar Winds
  8. Pwdump
  9. Rainbow Crack
  10. Brutus
# Beberapa cara untuk password cracking :
1.Social Engineering
Social Engineering adalah nama suatu tehnik pengumpulan informasi dengan memanfaatkan celah psikologi korban. Atau mungkin boleh juga dikatakan sebagai “penipuan” Sosial Engineering membutuhkan kesabaran dan kehati-hatian agar sang korban tidak curiga. Kita dituntut untuk kreatif dan mampu berpikiran seperti sang korban.
2.Key Logger
KeyLogger adalah software yang dapat merekam aktivitas user Hasil rekaman itu biasa disimpan berupa teks atau gambar. KeyLogger bekerja berdasarkan ketukan keyboard user. Aplikasi ini mampu mengenali form-form sensitif seperti form password.
3. Web Spoofing
Inti dari tehnik ini ialah dengan memanfaatkan kesalahan user saat mengetikan alamat situs pada address bar. Pada dasarnya, Web Spoofing adalah usaha untuk menipu korban agar mengira dia sedang mengakses suatu situs tertentu, padahal bukan. Contohnya pada kasus bank BCA.


Sabtu, 02 November 2013

JARINGAN NIRKABEL
 
Wireless atau dalam bahasa indonesia disebut nirkabel, adalah teknologi yang menghubungkan dua piranti untuk bertukar data tanpa media kabel. Data dipertukarkan melalui media gelombang cahaya tertentu (seperti teknologi infra merah pada remote TV) atau gelombang radio (seperti bluetooth pada komputer dan ponsel)dengan frekuensi tertentu.
Kelebihan teknologi ini adalah mengeliminasi penggunaan kabel, yang bisa cukup menganggu secara estetika, dan juga kerumitan instalasi untuk menghubungkan lebih dari 2 piranti bersamaan. Misalnya: untuk menghubungkan sebuah 1 komputer server dengan 100 komputer client, dibutuhkan minimal 100 buah kabel, dengan panjang bervariasi sesuai jarak komputer klien dari server. Jika kabel2 ini tidak melalui jalur khusus yang ditutupi (seperti cable tray atau conduit), hal ini dapat mengganggu pemandangan mata atau interior suatu bangunan. Pemandangan tidak sedap ini tidak ditemui pada hubungan antar piranti berteknologi nirkabel
Kekurangan teknologi ini adalah kemungkinan interferensi terhadap sesama hubungan nirkabel pada piranti lainnya.
Jenis – jenis wireless :

WAP (Wireless Application Protocol)

Merupakan standar protokol untuk aplikasi wireless (seperti yang digunakan handphone). WAP merupakan hasil kerjasama antara industri untuk membuat sebuah standar yang terbuka (open standard). WAP berbasis pada standar Internet, dan beberapa protokol yang sudah dioptimasi untuk lingkungan wireless, seperti kebutuhan kompresi data, long latency dan keterbatasan bandwith, serta keterbatasan perangkat wireless. Disain dari informasi yang dikirimkan melalui WAP biasanya menggunakan format WML (Wireless Markup Language). WML ini mirip HTML, hanya lebih spesifik untuk perangkat wireless yang memiliki keterbatasan seperti di atas.

WBMP (Wireless Bitmap)

Format grafik yang terdapat dalam WAP. WBMP merupakan format yang mirip dengan format BMP. Gambar dengan standar format WBMP terbagi dalam dua bagian, yaitu :q Bagian header, tempat untuk informasi karakteristik dari gambar, seperti tinggi, lebar dan type gambar. q Bagian isi yang disebut Type dependent, merupakan bagian dari informasi gambar.

Standar format WBMP ini dibuat dengan susunan yang dapat diperluas kegunaannya. Bagian isi atau Type dapat berubah menjadi format-format bare yang dapat diakses. Walaupun WBMP akan memperlambat transfer data karena ukurannya yang tidak kecil, tetapi menggunakan gambar dapat memberikan informasi yang lebih banyak pada layar berukuran kecil seperti pada handhone.

Wireless LAN (Wireless Local Area Network)

Teknologi komunikasi data dengan tidak menggunakan kabel untuk menghubungkan antara klien dan server. Secara umum teknologi Wireless LAN hampir sama dengan teknologi jaringan komputer yang menggunakan kabel (Wire LAN atau Local Area Network). Teknologi Wireless LAN ada yang menggunakan frekuensi radio untuk mengirim dan menerima data yang tentunya mengurangi kebutuhan atau ketergantungan hubungan melalui kabel. Akibatnya pengguna mempunyai mobilitas atau fleksibilitas yang tinggi dan tidak tergantung pada suatu tempat atau lokasi. Teknologi Wireless LAN juga memungkinkan untuk membentuk jaringan komputer yang mungkin tidak dapat dijangkau oleh jaringan komputer yang menggunakan kabel.