Sistem operasi android merupakan sistem operasi open platform yaitu sistem operasi yang dibangung menggunakan Linux Kernel, sehingga menggunakan beberapa mekanisme keamanan mirip dengan linux. Seiring dengan pesatnya perkembangan perangkat android, menyebabkan fungsi perangkat android semakin banyak seperti remote server atau fungsi lain seperti perangkat android menjadi sebuah server.

Sebagai solusi untuk menjaga keamanan komunikasi remote server digunakan mekanisme enkripsi, salah satu aplikasi open source untuk teknik enkripsi komunikasi server dengan client adalah Openssh.
Kali ini kita akan melakukan implementasi remote server yang aman menggunakan Openssh dimana android bertindak sebagai client ssh serta server Openssh. Aplikasi Openssh server di android yang digunakan adalah SSHDroid serta aplikasi client ssh di androidnya adalah menggunakan ConnectBot.

Sekilas Tentang SSH
sumber
[1] Stahnke, Michael. (2006). Pro OpenSSH. New York ,USA: Apress.
[2] ____. (2011). OpenSSH Manual pages Documentation, http://www.openssh.org/

Secure Shell (ssh) adalah suatu protokol yang memfasilitasi sistem komunikasi yang aman diantara dua sistem yang menggunakan arsitektur client/server, serta memungkinkan seorang user untuk login ke server secara remote. Berbeda dengan telnet dan ftp yang menggunakan plain text, SSH meng-enkripsi data selama proses komunikasi sehingga menyulitkan intruder yang mencoba mendapatkan password yang tidak dienkripsi.

Pada awalnya SSH dikembangkan oleh Tatu YI Nen di Helsinki University of Technology. SSH memberikan alternatif yang aman terhadap remote session tradisional dan file transfer protocol seperti telnet dan relogin. Protokol SSH mendukung otentikasi terhadap remote host, yang dengan demikian meminimalkan ancaman pemalsuan identitas client lewat IP address spoofing maupun manipulasi DNS. Selain itu SSH mendukung beberapa protokol enkripsi secret key (DES,Triple DES,IDEA, dan Blowfish) untuk membantu memastikan privacy dari keseluruhan komunikasi, yang dimulai dengan username/password. Secara umum Protokol SSH mencakup otentikasi, enkripsi, dan integritas data yang ditransmisikan melalui jaringan.


Gambar Authentication, encryption, and integrity ssh.

SSH menyediakan suatu virtual private connection pada application layer, mencakup interactive login protocol (ssh dan sshd) serta fasilitas untuk secure transfer file (scd). SSH merupakan produk serbaguna yang dirancang untuk melakukan banyak hal, yang kebanyakan berupa penciptaan tunnel antar host.


Gambar Ssh Tunneling

Fungsi utama aplikasi ini adalah untuk mengakses mesin secara remote. Bentuk akses remote yang bisa diperoleh adalah akses pada mode teks maupun mode grafis/X. SSH dirancang untuk menggantikan service-service di sistem unix/linux yang menggunakan sistem plain-text seperti telnet, ftp, rlogin, rsh, rcp). Untuk menggantikan fungsi ftp dapat digunakan sftp (secure ftp), sedangkan untuk menggantikan rcp (remote copy) dapat digunakan scp (secure copy).

Dengan SSH, semua percakapan antara server dan klien di-enkripsi. Artinya, apabila percakapan tersebut disadap, penyadap tidak mungkin memahami isinya. Apabila kita melakukan maintenance server dari jauh, tentunya dengan account yang punya hak khusus, apabila tanpa sepengetahuan kita, account dan password tersebut disadap orang lain, hal ini akan mengakibatkan server dapat diakses oleh orang lain yang tidak berkepentingan. Implementasi SSH yang banyak dipakai saat ini adalah OpenSSH, aplikasi ini telah dimasukkan kedalam berbagai macam distribusi linux.

Implementasi SSH terlihat dalam produk-produk tidak berbayar dan produk-produk yang commercial,
SSH tidak berbayar
• OpenSSH (Unix, Windows)
• LSH (unix)
• PuTTY (Windows)
• Okhapkin s port of SSH1(windows)
• MacSSH (Macintosh)
• TeraTerm (windows)
• MindTerm (Inix, Windows)
• NitfyTelnet 1.1 SSH (Machintosh)

SSH berbayar
• SSH communication Security (unix, windows)
• F-Secure SSH (unix,Windows)
• Secure CRT, SecureFX (windows)
• Vshell (Windows)

OPENSSH
OpenSSH adalah satu set aplikasi komputer yang mendukung sesi komunikasi terenkripsi pada jaringan komputer menggunakan protokol ssh. Openssh awalnya dikembangkan sebagai aplikasi open source yang menjadi alternatif dari aplikasi serupa yang berbayar. OpenSSH dikembangkan dan merupakan bagian dari proyek OpenBSD. OpenSSH tidak hanya memberikan aplikasi remote shell melalui ssh, tapi bisa digunakan untuk tunnelling atau setup vpn antara dua jaringan.

Cara kerja Openssh dapat digambarkan dengan alur sebagai berikut :
Misalkan suatu client mencoba mengakses suatu linux server melalui SSH. SH daemon yang berjalan baik pada linux server maupun SSH client telah mempunyai pasangan public/private key yang masing-masing menjadi identitas SSH bagi keduanya. Langkah-langkah koneksinya adalah sebagai berikut :

Langkah 1
Client bind pada port local dan melakukan koneksi ke port 22 pada server.

Lankah 2
Client dan server setuju untuk menggunakan sesi SSH tertentu. Hal ini penting karena SSH v.1 dan v.2 tidak kompatibel.

Langkah 3
Client meminta public key dan host key milik server.

Langkah 4
Client dan server menyetujui algoritma enkripsi yang akan dipakai (misalnya TripleDES atau IDEA).

Langkah 5
Client membentuk suatu session key yang didapat dari client dan mengenkripsinya menggunakan public key milik server.

Langkah 6
Server men-decrypt session ky yang didapat dari client, meng-re-encrypt-nya dengan public key milik client, dan mengirimkannya kembali ke client untuk verivikasi.

Langkah 7
Pemakai mengotentikasi dirinya ke server di dalam aliran data terenkripsi dalam session key tersebut. Sampai disini koneksi telah terbentuk, dan client dapat selanjutnya bekerja secara interaktif pada server atau mentransfer file ke atau dari server. Langkah ketujuh diatas dapat dilaksanakan dengan berbagai cara (username/password, kerberos, RSA dan lain-lain)

SSHDroid
SSHDroid adalah salah satu Openssh server yang bisa di implementasikan di perangkat android. dengan menggunakan sshdroid, kita dapat terhubung dengan perangkat android dan melakukan perintah seperti terminal dan adb shell atau melakukan edit file menggunakan SFTP,WinSCP,Cyberduck. SSHDroid adalah aplikasi Openssh server di android yang secara gratis dapat digunakan serta di download dari situs resmi android market

ConnectBot
ConnecBot adalah aplikasi open source yang berfungsi sebagai ssh client pada sistem operasi smartphone atau tablet PC android. Dengan menggunakan ConnecBot pada android kita dapat melakukan koneksi ssh ke server, membuat tunnels yang aman, copy/paste antara server dan client, fasilitas perintah command line linux serta fasilitas lainnya yang umum dimiliki oleh aplikasi ssh client.

IMPLEMENTASI REMOTE SERVER DARI ANDROID

implementasi Openssh server pada server komputer dengan client ssh dari smartphone android
Openssh server yang akan digunakan pada server komputer adalah berbasis sistem operasi linux ubuntu. Menjalankan server Openssh adalah sebagai berikut :

Gambar Menjalan Openssh server.

Server Openssh mempunyai ip address 167.205.67.68 dengan salah satu user yang sudah terdaftar di server adalah uxcwilis.

Client ssh android
Aplikasi client ssh android yang akan digunakan adalah ConnecBot yang dapat di unduh secara gratis di market android, untuk melakukan instlasi serta penggunaan ConnectBot adalah sebagai berikut :
• Dari perangkat android lakukan akses ke android market dengan membuka aplikasi market. Lakukan instalasi ConnecBot.

• Setelah ConnectBot jalan, selanjutkan menentukan ip address openssh server yang akan diakses seperti gambar berikut :

Ip address 167.205.67.68 adalah ip server yang akan di remote dari android dengan melalui port 22 di server.

• Setelah terhubung dengan openssh server akan muncul persetujuan penggunaan enkripsi RSA untuk fingerprint key seperti gambar berikut :

• Setelah persetujuan penggunaan algoritma untuk enkripsi dan generate publickey, kemudian akan dilakukan validasi password pengguna yang akan digunakan untuk remote openssh server seperti gambar berikut :

Masukkan password user yang akan melakukan remote server openssh dimana user ini adalah user yang sudah terdaftar pada server openssh.

• Apabila password yang dimasukkan benar, maka akan muncul pesan welcome dari openssh server yang kita remote, dalam hal ini openssh server yang diremote adalah berbasis ubuntu 10.10 seperti gambar berikut :

Dari ConnecBot kita dapat melakukan perintah-perintah command line dalam meremote server openssh kita seperti gambar berikut :

Begitu juga dengan mengakses file,directory maupun file sistem selama user yang kita gunakan untuk remote server mempunyai hak aksesnya, seperti gambar berikut melihat directory pada server openssh.

Openssh Server android
Openssh server yang akan digunakan pada android adalah SSHDroid, implementasi ini kita akan menjadikan device android yang menjadi server tentunya device android yang akan di remote dari komputer.SSHDroid bisa anda download di android market dalam bentuk aplikasinya atau source code aplikasi itu sendiri tentunya di code.google.com

setelah openssh server di androidnya dijalankan seharusnya android itu sudah bisa di remote dari ssh client seperti contoh gambar berikut remote dari winscp.


Ide Dokument ini sebenarnya adalah Bagaimana code untuk membuat device android jadi openssh server disisipkan di project lainnya (dalam suatu aplikasi ditanam code supaya devloper bisa remote device yg install aplikasi tersebut), artinya coding supaya device android kita remote dari jauh,, sesungguhnya ini sangat masuk akal.. karena source code openssh server di android itu open source semuanya, dan tidak ada yang tidak memungkinkan disitu, code semua tersedia di code.google.com dan di tempat lainnya

uxc.wilis
🙂

Special thx to Pak Budi Rahardjo (rahard.wordpress.com) atas nilai A untuk matakuliah security information sistem.

DAFTAR PUSTAKA

Kathleen, H. (2010, Januari). Android’s Growth set to double in 2011. 2 Mei 2011, http://www.computerweekly.com/Articles/244863/Androids-growth-set-to-double-in-2011.htm

Chaudhuri, A. (2009). Language-Based Security on Android. ACM.

Ableson, W. F., Collins, C., & Sen, R. (2009). Unlocking Android :A Developer’s Guide. Greenwich: Manning Publications.

Barrett, D. J., & Silverman, R. E. (2001). SSH, the Secure Shell: The Definitive Guide. Sebastopol,USA: O’Reilly & Associates, Inc.

Stahnke, Michael. (2006). Pro OpenSSH. New York ,USA: Apress.

_________. (2011). OpenSSH Manual pages Documentation. 2 Mei 2011, http://www.openssh.org/