SemisecureReimaginedStripped

Program ini ditulis menggunakan PHP, digunakan untuk melakukan enkripsi input HTML (biasanya digunakan pada form login) menggunakan javascript. Ketika user men-submit username dan passwordnya, javascript akan melakukan enkripsi password menggunakan algoritma RSA. Data yang terenrkip akan didekrip di sisi server menggunakan PHP.

Metode ini sedikit banyak efektif untuk menghindari teks polos berjalan di kabel untuk diintip oleh para sniffer yang biasanya melakukan MAC Address Poisoning pada switch kantor.

Tanpa proses enkripsi, data yang ditangkap di kabel tampak seperti berikut:

POST /~sokam/semisecure/process.php HTTP/1.1
Host: localhost
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008070206 Firefox/3.0.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer: http://localhost/~sokam/semisecure/login.php
Cookie: PHPSESSID=eca3208c0c29b94b0a11d1d5f99a2d54
Content-Type: application/x-www-form-urlencoded
Content-Length: 25

log=kamas&pass=rahasiadong

Dengan proses enkripsi, data yang ditangkap di kabel tampak seperti berikut:

POST /~sokam/semisecure/process.php HTTP/1.1
Host: localhost
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008070206 Firefox/3.0.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer: http://localhost/~sokam/semisecure/login.php
Cookie: PHPSESSID=eca3208c0c29b94b0a11d1d5f99a2d54
Content-Type: application/x-www-form-urlencoded
Content-Length: 396

log=kamas&pwd_rsa=JTIty2yOKPGRI19CbNPhLOrfKJxin0rlZzVntZcCcIM%2FwPxGFn
SFKkl2vxAGdywuwbgBjqQ9FMNACJpf%2F7uWKr%2F6JXwC9%2F4zzUA2GP%2Fs
ccrGnEAfwolJQ1PzaUQ3XcnMJiEg%2BunKLr5lkoMyagTM4Nx%2FZQ6zUt%2B

Besar kemungkinan script ini masih membutuhkan proses scripting. Setidaknya halaman login yang disertakan di sini hampir pasti tidak sama dengan yang ada di aplikasi anda. Silakan disesuaikan, terutama di Obj::login_head() dan Obj::login_form().

Mengapa namanya SemisecureReimaginedStripped? Karena script ini adalah turunan dari plugin wordpress SemisecureLoginReimagined yang saya sederhanakan agar bisa digunakan pada aplikasi umum. Saya tidak membuat program ini sendiri. Saya hanya mengubah bentuknya (dan sedikit cara kerjanya) saja.

Perubahan yang saya lakukan adalah:

  1. Menghapus operasi-operasi yang berkaitan langsung dengan wordpress
  2. Key tidak disimpan di database MySQL, melainkan di dalam filesystem. (Agar lebih mudah diimplementasikan di sistem tanpa database.)
  3. Pembuatan key hanya dapat dilakukan menggunakan OpenSSL. Metode "alternate" telah dihilangkan.

Segala macam konfigurasi silakan melihat di program aslinya. FAQ dan sebagainya juga ikut ke situ. Yang saya ubah sudah saya tuliskan di atas.

Untuk lebih jelasnya silakan baca isi SemisecureLoginReimagined.php. Segalanya cukup jelas, dan harusnya cukup straightforward. Contoh penggunaan bisa dilihat di file login.php dan process.php.

Warning/Perhatian/Awas!!!

Script ini menyimpan seluruh key pada filesystem. Hal ini bisa jadi sangat tidak aman. Bayangkan kalau ada orang yang ambil file-file itu directly dari browser. Kondisinya sama persis dengan meletakkan kunci rumah persis di depan pintu rumah kita.

Cara yang saya lakukan untuk agak mengamankan kondisi itu adalah dengan cara meletakkan direktori penyimpanan keys di luar direktori web. Anda punya cara lain? Silakan saja :)

Download: di sini.

Menurut anda program ini kurang X? Y? Z? Anda bebas ngubah programnya sendiri kok. Kalau mau diskusi, ya ayo via email saja. Kenapa kok di halaman ini ndak bisa pasang komentar ini itu dan anu-anu? Saya males bikin. Kalo mau kontak, (lagi-lagi) ya email saja he..he..he..

[TWTR] [FB] [GPLUS]
Seharusnya situs ini kelihatan bagus kalo anda lihat menggunakan layar monitor. Jangan pernah mencoba membaca isinya pakai kuku atau barang-barang klenik lainnya.
kamas@its.ac.id