Aplikasi SSH Client pada mobile device menggunakan J2ME - USD Repository
A A P P L L
I I K K A A S S
I I S S S S H H C C L L
I I E E N N T T P
P
A A D D A A M M O O B BI I L L E E D D E E
V V
I I C C E E M M E E N N G G G G U U N N
A
A
K K A A N N J J2
2 M M E E S S K K R R
I
I P P S SI I D D i i a a j j u u k k a a n n U U n n t t u u k k M M e e m m e e n n u u h h i i S S a a l l a a h h S S a a t t u u S S y y a a r r a a t t M M e e m m p p e e r r o o l l e e h h G G e e l l
a
a
r
r
S S a a r r j j a a n n a a T T e e k k n n i i k k J J u u r r u u s s a a n n T T e e k k n n
i
i
k
k
I I n n f f o o r r m m a a t t i i k k a a
Disusun oleh :
Paskhalis Handi Artiawan
T H E S S H C L
I E N T A P P L
I C A T
I O N T H E S S H C L
I E N T A P P L
I C A T
I O N O N M O B
I L E D E
V
I C E U SI N G J
2 M E O N M O B
I L E D E
V
I C E U SI N G J
2 M E
A A T T h h e e s s i i s s
P P r r e e s s e e n n t t e e d d a a s s P P a a r r t t i i a a l l F F u u l l f f i i l l l l m m e e n n t t o o f f t t h h e e R R e e q q u u i i r r e e m m e e n n t t s s
t o O b t a i n S a r j a n a T e k n i k D e g r e e
t o O b t a i n S a r j a n a T e k n i k D e g r e e
i n D e p a r t m e n t o f I n f o r m a t i c s T e c h n o l o g y i n D e p a r t m e n t o f I n f o r m a t i c s T e c h n o l o g yby
Paskhalis Handi Artiawan
PERNYATAAN KEASLIAN KARYA
Saya menyatakan dengan sesungguhnya bahwa skripsi yang saya tulis tidak memuat karya atau bagian karya orang lain, kecuali yang telah disebutkan dalam kutipan dan daftar pustaka, sebagaimana layaknya karya ilmiah.
Yogyakarta, 19 September 2007 Penulis
Paskhalis Handi Artiawan
HALAMAN PERSEMBAHAN
Karya Tulis ini Ku Persembahkan Untuk
Yesus Krist us yang tidak pernah sedetik pun meninggalkan aku ... Kedua Orang Tua dan Adikku yang selalu mendoakan dan mendukungku
... Dia yang selalu menemani dan memberiku semangat disaat aku jatuh
... Tem an- t em an Teknik I nform at ika 2002 yang memberiku inspirasi, semangat, dan bantuan untuk menyelesaikan skripsi ini
... Seseorang di int ernet , sebut saj a Paij o ( bukan nam a sebenarnya) yang bersedia menerima konsultasi dan menjadi dosen pembimbing III ku
HALAMAN MOTTO
Pada prinsipnya, kuliah it u j angan sam pai m engganggu w akt u berm ain Tujuan dari penelitian ini adalah membuat aplikasi SSH client pada perangkat
mobile , sehingga diharapkan mampu mempermudah seorang administrator jaringan
melakukan aktifitas monitoring, maintenance, dan mengkonfigurasi servernya dari jarak jauh tanpa menggunakan sebuah perangkat komputer, melainkan dapat melakukannya dengan sebuah perangkat mobile sehingga dapat melakukannya darimana saja dan dimana saja.
Aplikasi ini dikembangkan dengan menggunakan bahasa pemrograman Java
2 Micro Edition (J2ME). Di dalam aplikasi ini digunakan Record Management System
(RMS) untuk menyimpan data-data yang diperlukan oleh pemakai yaitu data login, data tampilan, dan data server.
Dari hasil uji coba aplikasi menggunakan handphone NOKIA tipe 6600, aplikasi ini dapat berfungsi dengan baik. Aplikasi ini dapat membantu pemakai dalam melakukan aktifitas monitoring, maintenance, dan mengkonfigurasi servernya dari jarak jauh.
The goal of this research is to create a SSH client application on the mobile device, so it can make easier a network administrator activities doing server monitoring, maintenance, and configuration from the long distance without using a computer sets, but can do that with a mobile device so it can be done from wherever and whenever.
This application is developed using Java 2 Micro Edition (J2ME) programming language. It used Record Management System (RMS) to save data needed by the user which is login, display, and server data.
From the result of implementing this application using NOKIA type 6600 mobile device, this application can work fine. This application can help user activities doing server monitoring, maintenance, and configuration from the long distance. Puji dan syukur kepada Bapa di Surga, dengan cinta kasih sayang-Nya yang selalu tercurahkan, sehingga penyusunan tugas akhir ini dapat diselesaikan dengan baik.
Tugas akhir yang berjudul “Aplikasi SSH Client pada Mobile Device
Menggunakan J2ME” merupakan salah satu syarat untuk memperolah gelar Sarjana
Teknik, Jurusan Teknik Informatika, Fakultas Teknik, Universitas Sanata Dharma.Penulis menyadari dalam mempersiapkan, menyususun dan menyelesaikan tugas akhir ini, penulis banyak mendapat bantuan dan bimbingan dari berbagai pihak.
Pada kesempatan ini penulis ingin mengucapkan terima kasih kepada :
1. Rm. Ir. Greg. Heliarko, S.J., S.S., B.S.T., M.A., M.Sc., selaku Dekan Fakultas Teknik Universitas Sanata Dharma Yogyakarta.
2. Ibu Agnes Maria Polina, S.Kom, M,Sc., selaku Ketua Jurusan Teknik Informatika Universitas Sanata Dharma Yogyakarta.
3. Ibu Ridowati Gunawan, S.kom, M.T., selaku Dosen Pembimbing I yang telah pengetahuan.
6. Dosen-dosen penguji yang telah memberikan masukan yang membangun untuk tugas akhir ini.
7. Staff Sekretariat Fakultas Teknik, terima kasih atas bantuan informasi dan sarana prasarana yang mendukung.
8. Bapak, Ibu, dan Sani, yang telah memberikan kasih sayang, doa, dan dukungan sangat berarti selama ini.
9. Caecilia Iswardani, yang selama ini menemaniku, mendengarkan keluh kesahku, memberiku semangat untuk segera menyelesaikan skripsi ini, dan memberiku kasih sayang yang tulus, “you’re the best I ever had...”.
10. Teman-teman : Pristo atas pinjaman naskah, source code, dan konsultasi
online -nya, Afu atas pinjaman handphone-nya, Widy atas pinjaman card reader dan sharing Bunderan-nya yang sangat inspiring, Andika dan Gwendy
atas pinjaman kabel UTP-nya, Mardoni atas pinjaman kemeja, dasi, dan sepatu untuk ujian pendadaran, Eddy atas pinjaman monitornya. memberikan bantuan dan dukungan selama ini.
13. Teman-teman basket Paingan, yang memberi semangat dengan game-game yang mengasyikkan, seru, keras, dan penuh tantangan.
14. Semua pihak yang tidak dapat penulis sebutkan satu persatu, yang telah memberikan dukungan serta bantuannya guna penyusunan karya tulis ini.
Penulis menyadari sepenuhnya bahwa tugas akhir ini masih jauh dari kesempurnaan dan masih banyak kekurangan. Oleh karena itu penulis mengharapkan kririk dan saran yang bersifat membangun demi perbaikan lebih lanjut. Akhir kata penulis berharap tugas akhir ini dapat bermanfaat dan berguna bagi pembaca.
Yogyakarta, 19 September 2007
HALAMAN JUDUL ................................................................................................ i HALAMAN PERSETUJUAN ................................................................................. iii HALAMAN PENGESAHAN .................................................................................. iv HALAMAN PERNYATAAN KEASLIAN KARYA ............................................. v HALAMAN PERSEMBAHAN ............................................................................... vi HALAMAN MOTTO .............................................................................................. vii ABSTRAKSI ............................................................................................................ viii ABSTRACT ............................................................................................................. ix KATA PENGANTAR ............................................................................................. x DAFTAR ISI ............................................................................................................ xiii DAFTAR GAMBAR ................................................................................................ xviii DAFTAR LISTING .................................................................................................. xxi DAFTAR TABEL ..................................................................................................... xiii
1.5. Metodologi Penelitian ....................................................................................... 3
1.6. Sistematika Penulisan ....................................................................................... 4
BAB II. LANDASAN TEORI
2.1. Secure Shell (SSH) ........................................................................................... 6
2.2. Arsitektur SSH .................................................................................................. 7
2.2.1. Identifikasi Host atau Otentikasi .......................................................... 8
2.2.2. Enkripsi ................................................................................................ 9
2.2.3. Otorisasi ............................................................................................... 10
2.3. Protokol SSH ................................................................................................... 10
2.3.1. SSH Transport Layer Protocol (SSH-TRANS) ................................... 11
2.3.2. SSH Authentication Protocol (SSH-AUTH) ....................................... 11
2.3.3. SSH Connection Protocol (SSH-CONN) ............................................ 12
2.3.4. SSH File Transfer Protocol (SSH-SFTP) ............................................ 12
2.4. Paket Data SSH ............................................................................................... 13
2.9.2. Eksekusi sebuah MIDlet ..................................................................... 18
2.10. Pemrograman J2ME ..................................................................................... 19
2.10.1. High Level User Interface ................................................................. 20
2.10.2. Low Level User Interface .................................................................. 20
2.10.3. Record Management System (RMS) ................................................. 20
2.10.4. Generic Connection Framework ........................................................ 21
BAB III. ANALISIS DAN PERANCANGAN SISTEM
3.1. Orang yang Terlibat dalam Sistem .................................................................. 24
3.2. Gambaran Umum Sistem ................................................................................ 24
3.3. Analisa Kebutuhan .......................................................................................... 26
3.3.1. Use Case Diagram ............................................................................... 26
3.4. Analisa Berorientasi Objek dan Modeling ...................................................... 27
3.4.1. Activity Diagram ................................................................................. 27
BAB IV. IMPLEMENTASI SISTEM
4.1. Lingkungan Implementasi ............................................................................... 61
4.1.1. Lingkungan Perangkat Keras ............................................................... 61
4.1.2. Lingkungan Perangkat Lunak .............................................................. 61
4.2. Implementasi SSH Client ................................................................................ 62
4.2.1. Mekanisme Login ................................................................................ 62
4.2.2. Mekanisme Forget Password .............................................................. 64
4.2.3. Mekanisme Display Setting ................................................................. 66
4.2.4. Mekanisme Buat Koneksi .................................................................... 68
4.2.5. Mekanisme Edit Data Koneksi ............................................................ 70
4.2.6. Mekanisme Hapus Data Koneksi ........................................................ 75
4.2.7. Mekanisme Koneksi ke Server ............................................................ 75
4.2.8. Mekanisme Terminal ........................................................................... 85
4.3. Implementasi Antarmuka ................................................................................ 87
4.3.1. Tampilan Login ................................................................................... 88
4.3.8. Tampilan About ................................................................................... 104
BAB V. ANALISA HASIL
5.1. Kelebihan Sistem ............................................................................................ 105
5.2. Kekurangan Sistem ......................................................................................... 106
BAB VI. PENUTUP
6.1. Kesimpulan ..................................................................................................... 107
6.2. Saran ............................................................................................................... 107 DAFTAR PUSTAKA ............................................................................................... 108
Gambar 2.1. Pembagian komponen pada high level user interface dan low level user interface ..................................................................................... 19Gambar 2.2. Permintaan koneksi dari client ke server .......................................... 22Gambar 2.3. Koneksi dua arah client dan server ................................................... 22Gambar 3.1. Use Case Diagram ............................................................................ 26Gambar 3.2. Activity Diagram Login .................................................................... 27Gambar 3.3. Activity Diagram Mengatur Tampilan ............................................. 28Gambar 3.4. Activity Diagram Buat Koneksi ....................................................... 29Gambar 3.5. Activity Diagram Edit Koneksi ........................................................ 31Gambar 3.6. Activity Diagram Hapus Koneksi .................................................... 33Gambar 3.7. Activity Diagram Koneksi ke Server ............................................... 34Gambar 3.8. Activity Diagram Memasukkan perintah ......................................... 37Gambar 3.9. Activity Diagram Tutup Koneksi ..................................................... 39Gambar 3.10. Activity Diagram Ubah Password .................................................... 40Gambar 3.17. Sequence Diagram Memasukkan Perintah ...................................... 48Gambar 3.18. Sequence Diagram Tutup Koneksi .................................................. 49Gambar 3.19. Sequence Diagram Ubah Password ................................................. 50Gambar 3.20. Class Diagram .................................................................................. 52Gambar 3.21. Tampilan Login ................................................................................ 54Gambar 3.22. Tampilan Change Password ............................................................. 54Gambar 3.23. Tampilan Main Menu ....................................................................... 55Gambar 3.24. Tampilan Connection Menu ............................................................. 55Gambar 3.25. Tampilan Create Connection ............................................................ 56Gambar 3.26. Tampilan Edit Connection ................................................................ 57Gambar 3.27. Tampilan Display Setting .................................................................. 58Gambar 3.28. Tampilan Help .................................................................................. 58Gambar 3.29. Tampilan Terminal ........................................................................... 59Gambar 3.29. Tampilan Input Command ............................................................... 59Gambar 4.1. Tampilan Login ................................................................................ 88Gambar 4.8. Tampilan Main Menu ....................................................................... 93Gambar 4.9. Tampilan Connection Menu ............................................................. 94Gambar 4.10. Tampilan Create Connection ............................................................ 95Gambar 4.11. Tampilan Pesan Kesalahan Alias ..................................................... 96Gambar 4.12. Tampilan Pesan Kesalahan Create Connection ............................... 96Gambar 4.13. Tampilan Connection Menu yang Lengkap ..................................... 97Gambar 4.14. Tampilan Edit Connection ............................................................... 98Gambar 4.15. Tampilan Pesan Kesalahan Alias ..................................................... 99Gambar 4.16. Tampilan Pesan Kesalahan Edit Connection ................................... 99Gambar 4.17. Tampilan Terminal tanpa Scroll Bar ............................................... 100Gambar 4.18. Tampilan Input Command ............................................................... 101Gambar 4.19. Tampilan Terminal dengan Scroll Bar ............................................. 101Gambar 4.20. Tampilan Terminal setelah dilakukan clear screen .......................... 102Gambar 4.21. Tampilan Display Setting ................................................................. 103Gambar 4.22. Tampilan Pesan Sukses Display Setting .......................................... 103Listing 4.1. Fungsi openRecStore( ) ....................................................................... 63 Listing 4.2. Fungsi createDefault( ) ........................................................................ 63 Listing 4.3. Proses validasi data login .................................................................... 64 Listing 4.4. Fungsi cekJawaban( ) .......................................................................... 65 Listing 4.5. Proses setelah validasi jawaban ........................................................... 66 Listing 4.6. Proses update data tampilan ................................................................ 67 Listing 4.7. Proses update data tampilan ................................................................ 68 Listing 4.8. Proses validasi data koneksi ................................................................ 69 Listing 4.9. Fungsi createNewConnection( ) .......................................................... 70 Listing 4.10. Fungsi findRecID( ) ........................................................................... 71 Listing 4.11. Fungsi getDataConnection( ) ............................................................. 72 Listing 4.12. Proses validasi edit data koneksi ....................................................... 74 Listing 4.13. Fungsi getDataConnection( ) ............................................................. 74 Listing 4.14. Fungsi deleteConnection( ) ................................................................ 75
Listing 4.21. Tipe Pesan SSH2_MSG_SERVICE_ACCEPT ................................ 83 Listing 4.22. Tipe Pesan SSH2_MSG_USERAUTH_FAILURE dan SSH2_MSG_USERAUTH_SUCCESS ............................................. 84 Listing 4.23. Tipe Pesan SSH2_MSG_CHANNEL_OPEN_CONFIRMATION .. 85 Listing 4.24. Fungsi paint( ) pada terminal ............................................................. 86 Listing 4.25. Fungsi putString( ) pada terminal ...................................................... 87
Tabel 2.1. Tabel Perbedaan CLDC dan CDC ....................................................... 15PENDAHULUAN
1.1 LATAR BELAKANG
Seiring dengan perkembangan dunia komputer, jaringan, dan internet telah memungkinkan seorang administrator jaringan untuk melakukan aktifitas monitoring, maintenance, dan mengkonfigurasi server-nya dari jarak jauh. Seorang administrator tidak perlu berada di lokasi server untuk melakukan aktifitasnya, melainkan dapat melakukannya secara remote menggunakan komputer lain.
Secure Shell (SSH) adalah sebuah teknologi yang memungkinkan sebuah komputer atau server untuk diatur, dimonitoring, dan dikonfigurasi dari jarak jauh.
SSH menjamin keamanan komunikasi antara client dan server, dengan menggunakan otentikasi, otorisasi, dan enkripsi. Hal ini sangat berguna untuk menghindari data-data yang penting seperti username dan password server dicuri monitoring, maintenance, dan mengkonfigurasi server-nya dari jarak jauh tanpa menggunakan sebuah perangkat komputer. Aplikasi ini memungkinkan seorang administrator dapat melakukan aktifitasnya menggunakan perangkat mobile darimana saja dan dimana saja dengan aman.
1.2 RUMUSAN MASALAH
Berdasarkan latar belakang tersebut maka rumusan masalah dalam penelitian ini adalah bagaimana membuat sebuah aplikasi SSH client pada sebuah perangkat
mobile .
1.3 BATASAN MASALAH
Batasan masalah dalam pembuatan aplikasi ini adalah sebagai berikut : 1. Aplikasi ini menggunakan protokol SSH versi 2.
2. Aplikasi ini hanya mendukung untuk eksekusi perintah jarak jauh, tidak mendukung pengiriman file jarak jauh dengan Secure File Transfer Protocol
TUJUAN DAN MANFAAT
Tujuan dari aplikasi ini adalah membuat aplikasi SSH client pada perangkat
mobile . Sedangkan manfaat dari sistem adalah untuk mempermudah seorang
administrator jaringan melakukan aktifitas monitoring, maintenance, dan mengkonfigurasi servernya dari jarak jauh tanpa menggunakan sebuah perangkat komputer, melainkan dapat melakukannya dengan sebuah perangkat mobile sehingga dapat melakukannya darimana saja dan dimana saja.
1.5 METODOLOGI PENELITIAN
Metodologi dalam penelitian ini adalah metodologi berorientasi objek dengan tahap-tahap sebagai berikut :
1. Pencarian kebutuhan dengan melakukan studi literatur, memahami dan mendalamai konsep sistem yang akan dibuat, dan mempelajari protokol SSH.
2. Melakukan analisis dan desain sistem
a. Analisis sistem Melakukan analisis kebutuhan (Requirement Analysis) yang terdiri dari
design ).
3. Mengimplementasikan analisis dan desain yang telah dilakukan ke dalam aplikasi menggunakan Sun J2ME Wireless Toolkit 2.2.
1.6 SISTEMATIKA PENULISAN
BAB I PENDAHULUAN Bab ini berisi latar belakang yang mendasari penulis mengambil judul
penelitian, rumusan masalah, batasan masalah, tujuan, metodologi penelitian, dan sistematika penulisan.
BAB II LANDASAN TEORI Bab ini bersi dasar-dasar teori yang digunakan penulis untuk melakukan penelitian dan memecahkan masalah dalam pembuatan aplikasi ini. BAB III ANALISIS DAN DESAIN SISTEM Bab ini berisi tentang analisis kebutuhan sistem dan desain sistem yang akan dibuat.
BAB VI KESIMPULAN DAN SARAN Bab ini berisi tentang kesimpulan dari penelitian yang telah dilakukan dan
dijelaskan pada bab I sampai dengan bab V dan berisi saran-saran yang berkaitan dengan penelitian yang telah dilakukan.
LANDASAN TEORI
2.1. Secure Shell (SSH)
Pada tahun 1995, Tatu Ylönen, seorang peneliti di Helsinki University of
Techonolgy , Finlandia, mendesain sebuah protokol yang dapat mengatasi
serangan password sniffing. Protokol tersebut dikenal sebagai SSH-1 dan saat ini telah berkembang menjadi SSH-2. SSH adalah sekumpulan standar dan protokol jaringan yang memungkinkan komunikasi yang aman antara sebuah komputer lokal dan komputer remote. Adanya protokol ini memungkinkan seorang administrator jaringan untuk mengelola komputer atau server-nya dan mengeksekusi perintah dari jarak jauh. SSH menggunakan public key
cryptography untuk otentikasi ke komputer remote dan memungkinkan
komputer remote melakukan otentikasi terhadap user, serta menggunakan enkripsi pada saat sesi komunikasi terjadi.
Tujuan dari SSH adalah menggantikan protokol rlogin, telnet, dan rsh,
SSH mempunyai arsitektur client-server. Sebuah program server SSH, pada umumnya diinstal dan dijalankan oleh seorang administrator sistem, yang dapat menerima atau menolak permintaan koneksi kepadanya. Kemudian, user dilain komputer menjalankan program SSH client untuk meminta koneksi kepada server SSH.
SSH mempunyai tujuan utama yaitu menjamin privasi data, menjamin integritas data, otentikasi antara server dan client, otorisasi user, dan menyediakan tunneling untuk komunikasi data yang berbasis TCP/IP.
Sebelum terjadi komunikasi antara client dan server, SSH melakukan tiga tahap yang harus diselesaikan, yaitu :
1. Client yang akan melakukan koneksi ke perangkat remote akan memastikan perangkat yang akan ditujunya adalah benar (server
authentication ).
2. Server atau perangkat yang dituju juga akan memastikan bahwa client yang meminta koneksi adalah client yang sesungguhnya (user dengan server. Proses negosiasi tersebut biasanya akan melibatkan tiga komponen yaitu identifikasi host, enkripsi, dan otorisasi.
2.2.1. Identifikasi Host atau Otentikasi
Identifikasi host merupakan sebuah proses pembuktian bahwa perangkat yang dituju adalah benar. Proses ini dilakukan dengan menggunakan sebuah teknik yang dikenal dengan nama RSA. Teknik ini akan mengatur pembuatan sebuah kunci pada sebuah host yang akan digunakan untuk membuka proses
SSH. Kunci yang dibuat oleh host tersebut ada dua buah, yaitu kunci yang bersifat public dan bersifat private. Kunci yang bersifat private adalah kunci spesifik yang hanya berada di dalam host tersebut. Kunci ini bersifat rahasia dan hanya diketahui oleh administrator dari host tersebut. Sedangkan kunci yang bersifat public adalah kunci yang dapat diketahui secara bebas. Sebuah pesan yang dienkripsi dengan sistem RSA menggunakan kunci public sebagai penguncinya, hanya dapat dibuka dengan menggunakan kunci yang bersifat itu, dikirimkan kembali ke server asalnya. Setibanya di server asal, pesan yang terenkripsi dengan kunci private dari client dapat dibuka dengan menggunakan kunci private yang dimiliki oleh server. Dengan demikian, server akan mengetahui kunci private yang dimiliki oleh client.
Adanya pertukaran kunci ini, maka antara server dan client akan mengetahui kuncinya masing-masing, meskipun tidak seluruh kunci yang dimiliki oleh server diketahui oleh client. Walaupun demikian, kunci-kunci ini merupakan kunci identifikasi yang sangat berguna untuk saling mengamankan sesi komunikasi yang akan dibangun. Kunci-kunci ini berguna untuk server maupun client dalam meyakinkan bahwa mereka telah berbicara dengan perangkat yang tepat.
2.2.2. Enkripsi
Setelah hubungan antara client dan server-nya diamankan, ternyata fasilitas ini masih belum juga dianggap benar-benar aman. Meski client dan untuk dapat dibuka oleh penerima data dari komunikasi ini. Kunci ini harus diketahui oleh client dan server yang berkomunikasi. Pembuatan kunci ini juga menggunakan bantuan otentikasi RSA.
2.2.3. Otorisasi
Setelah melalui proses di atas, maka kini komunikasi antara client dan
server menjadi terenkripsi. Tetapi, gerbang pengaman masih kurang lengkap tanpa adanya proses otorisasi dari pengguna yang ingin masuk ke dalam server.
Agar tidak sembarang pengguna dapat masuk ke server tersebut, maka proses otorisasi ini cukup penting.
Metode-metode otorisasi yang biasa digunakan dalam SSH adalah
password , public-key, dan host-based authentication. Metode-metode ini
memiliki tingkat pengamanan yang berbeda-beda untuk mengenali seseorang yang ingin masuk ke dalam server.
4. SSH File Transfer Protocol (SSH-SFTP) Setiap bagian mempunyai tugas yang berbeda namun saling berkaitan dalam menyediakan komunikasi antara client dan server. Sebelum menjalankan SSH-
AUTH, sebuah program SSH client terlebih dahulu akan menjalankan SSH- TRANS. Sebelum menjalankan SSH-CONN, sebuah program SSH client harus menjalankan SSH-TRANS. Demikian juga sebelum menjalankan SSH-SFTP, harus menjalankan SSH-CONN terlebih dahulu.
2.3.1. SSH Transport Layer Protocol (SSH-TRANS)
SSH-TRANS menyediakan dasar dari sebuah komunikasi SSH, yaitu menyediakan inisial koneksi, autentikasi server, enkripsi standar dan menjamin integritas data. Dalam menjalankan proses ini, antara client dan server pertama kali akan melakukan pertukaran parameter session yang disebut key exchange
initialization (KEXINIT). Proses tersebut akan menghasilkan dua buah
parameter, yaitu sebuah shared secret dan sebuah exchange hash. Shared secret dapat masuk ke dalam server, dan menentukan hak dari setiap client. Metode otorisasi yang digunakan pada SSH-AUTH adalah password, public-key, dan
host-based authentication .
2.3.3. SSH Connection Protocol (SSH-CONN)
SSH-CONN bertujuan untuk menyediakan multiplexing, yaitu memungkinkan beberapa chanel komunikasi melalui sebuah jalur koneksi.
Setiap channel mempunyai sebuah nomor identitas dan bisa dibuat atau dihapus oleh salah satu pihak client atau server. Pada protokol SSH terdapat empat macam channel, yaitu session, X11, Forwarded-TCP/IP, dan Direct-TCP/IP.
2.3.4. SSH File Transfer Protocol (SSH-SFTP)
SSH-SFTP memungkinkan pengiriman file seperti pada protokol File
Transfer Protocol (FTP). Hanya saja pengiriman file dilakukan diatas protokol SSH, dimana file yang dikrimkan akan dienkripsi. menunjukkan panjang paket yang dikirimkan, dengan ukuran maksimal sebuah paket adalah 262144 byte.
2. Padding : berisi 1 sampai dengan 8 bytes data random. Jumlah padding ditentukan dengan perhitungan (8 - (panjang data % 8)) bytes.
Penambahan padding di setiap awal paket berguna untuk mempersulit serangan yang akan ditujukan pada pesan.
3. Packet type : terdiri dari 8 bit unsigned byte yang menunjukkan tipe paket.
4. Data : merupakan isi pesan dalam bentuk data biner.
5. Check bytes : berisi 32 bit Cyclic Redundancy Check (CRC) dan dibentuk dalam format 8 bit dalam satuan bytes, berguna untuk menjamin integritas paket data yang dikirimkan.
TM
2.5. Java
2 Micro Edition (J2ME)
J2ME adalah subset dari J2SE yang ditujukan untuk implementasi pada peralatan embedded system dan handheld yang tidak mampu mendukung secara bergerak berupa handphone, PDA, dan lain-lain.
2.6. Jenis-jenis Aplikasi J2ME
Saat ini terdapat 2 jenis aplikasi J2ME, yaitu : 1.
Walled garden application
Aplikasi ini merupakan aplikasi yang berdiri sendiri atau stand alone yang berjalan pada handphone tanpa perlu mengakses sumber daya eksternal melalui jaringan pembawa arus atau carrier network. Contoh dari aplikasi ini adalah kalkulator atau single player games.
2. Network aware application
Aplikasi ini berinteraksi dengan jaringan. Tidak seperti aplikasi yang pertama, aplikasi ini mempunyai kemampuan untuk mengakses sumber daya eksternal. Contoh dari aplikasi ini adalah aplikasi email yang berada di dalam handphone.
Ada 2 kategori J2ME configuration saat ini, yaitu :
1. Connected Limited Device Configuration (CLDC) Konfigurasi ini merupakan konfigurasi minimal dari J2ME yang ditujukan untuk perangkat yang sangat kecil, sumber daya terbatas, memiliki kemampuan komputasional, dan memiliki baterai serta memori terbatas antara 160 KB sampai dengan 512 KB. Akibatnya, fitur-fitur yang kurang penting untuk diimplementasikan dalam handheld device yang bersangkutan dari Java 2 harus dibuang.
2. Connected Device Configuration (CDC) Konfigurasi ini umumnya digunakan untuk aplikasi Java pada perangkat- perangkat handheld yang memiliki memori minimal 2MB.
Tabel 2.1 menujukkan perbedaan CLDC dan CDC.CLDC CDC
Mengimplementasikan subset dari J2SE Mengimplementasikan seluruh fitur dari J2SE
Menggunakan Java Virtual Machine yang Menggunakan Java Virtual Machine dikenal dengan nama Kilobyte Virtual yang dikenal dengan nama CDC Virtual
Sebuah profile dibangun diatas sebuah configuration. Jika J2ME
configuration menyediakan library Java untuk implementasi fitur-fitur standar
dari sebuah perangkat handheld, J2ME profile menyediakan implementasi- implementasi tambahan yang sangat spesifik dari sebuah perangkat handheld.
Ada 5 kategori J2ME profile, yaitu :
1. Mobile Information Device Profile (MIDP) 2.
Foundation Profile 3. Personal Profile 4. RMI Profile 5. PDA Profile
MIDP menyediakan library Java untuk implementasi dasar antarmuka, implementasi jaringan, database dan timer. MIDP khususnya dirancang khususnya untuk handphone.
MIDlet
2.9. Aplikasi
3. lib : berisi file-file kelas Java yang diperlukan dalam format JAR atau ZIP. 4. res : berisi file-file resources. Beberapa istilah penting dalam daur hidup sebuah MIDlet yaitu :
1. Application Management Software (AMS), adalah sebuah lingkungan tempat siklus dari sebuah MIDlet mampu diciptakan, dijalankan, dihentikan, maupun dihilangkan. Fungsi dari AMS adalah mengatur manajemen aplikasi MIDlet yang ada.
2. MIDlet , adalah aplikasi yang dijalankan pada sebuah perangkat handheld.
MIDlet tidak berinteraksi langsung dengan perangkat keras dari
atau perangkat handheld lainnya, melainkan
handphone, PDA, berinteraksi melalui AMS.
3. MIDlet states, adalah status dari sebuah MIDlet pada saat dijalankan yang terdiri dari beberapa bagian, yaitu : a. Paused : status ini terjadi ketika MIDlet selesai diinisialisasi dan tidak melakukan aksi apapun. Pada status ini MIDlet tidak boleh sedang seluruh resources yang digunakan akan dilepaskan. Status ini berhasil jika dilakukan pemanggilan fungsi MIDlet.destroyApp( ) atau MIDlet.notifyDestroy( )
2.9.2. Eksekusi sebuah MIDlet
Umumnya urutan eksekusi sebuah MIDlert adalah sebagai berikut :
1. AMS menginisialisasi sebuah objek MIDlet, sehingga MIDlet berada pada status paused.
2. Ketika AMS memutuskan bahwa MIDlet sudah waktunya dijalankan, maka AMS memanggil fungsi MIDlet.startApp( ) sehingga MIDlet akan mulai aktif berfungsi.
3. Ketika AMS memutuskan bahwa MIDlet harus dinonaktifkan secara sementara, maka AMS akan memanggil funsi MIDlet.pauseApp( ) sehingga MIDlet akan berhenti bekerja dan berada pada status paused.
4. Ketika AMS memutuskan bahwa MIDlet harus dinonaktifkan selamanya,
Pemrograman J2ME pada penelitian ini meliputi pemrograman untuk user
interface , record management system (RMS), dan generic connection
framework . Pemrograman user interface diperlukan untuk menyediakan
antarmuka bagi pemakai, pemrograman RMS diperlukan untuk menyimpan data-data yang dimasukkan oleh pemakai, sedangkan pemrograman generic
connection framework diperlukan untuk menjalin komunikasi antara pemakai
dengan server. Pemrograman user interface meliputi pemrograman high level
user interface dan low level user interface. Berikut ini adalah gambar yang
menunjukkan komponen-komponen yang dapat dipakai dalam high level user dan low level user interface.
interface
Pemrograman pada high level user interface memungkinkan pemrogram untuk membuat text box, list, alert, dan form. Pada sebuah form dapat ditambahkan beberapa item yaitu choicegroup, data field, textfield, gauge,
image item, dan string item. Komponen-komponen tersebut berada pada class javax.microedition.lcdui.* .
2.10.2. Low Level User Interface
Pemrograman pada low level user interface memungkinkan pemrogram untuk menambahkan tampilan berupa grafis. Terdapat dua bagian pada low level , yaitu :
user interface
1. Canvas : merupakan latar yang memiliki panjang dan lebar yang dinyatakan dengan koordinat vertikal dan horisontal.
2. Graphics : merupakan objek yang digambar pada canvas yang merupakan objek dari class graphics. sebuah record. Kumpulan dari beberapa record disebut record store. Sebuah MIDlet dapat mempunyai lebih dari satu record store atau tidak mempunyai
record store sama sekali. Beberapa operasi yang diijinkan pada record store adalah pengurutan, pencarian, notifikasi, dan exception.
2.10.4. Generic Connection Framework
Generic connection framework memungkinkan seorang pemrogram untuk
membuat koneksi ke jaringan atau server. Sebuah class connector dapat digunakan untuk membuat beberapa tipe koneksi seperti file, hypertext transfer (http), datagram, dan sebagainya. Untuk menciptakan koneksi
protocol
digunakan method connector.open dengan format sebagai berikut : connector.open(“protokol:alamat;parameter”); Sebuah socket adalah satu end-point dari hubungan komunikasi dua arah antara dua program yang berjalan pada jaringan. Kelas-kelas socket digunakan dalam program dengan arsitektur client-server. Biasanya sebuah server berjalan connection request
CLIENT
SERVER port
Gambar 2.2 Permintaan koneksi dari client ke serverJika permintaan koneksi seperti pada gambar diatas berjalan dengan baik,
server akan menerima koneksi dari client. Setelah menerima koneksi, server
akan memberikan socket baru yang diikat pada nomor port yang berbeda, sehingga server dapat menunggu lagi koneksi dari client yang lain pada port yang sebenarnya. Gambar 2.3 menunjukkan server telah memberikan socket yang baru untuk komunikasi dengan client dan koneksi client – server sedang berjalan.
CLIENT
SERVER port
port connection tersebut akan digunakan untuk berkomunikasi dengan server. Setelah socket terbentuk, client dan server dapat saling berkomunikasi dengan cara read dan
write pada socket tersebut.
ANALISIS DAN PERANCANGAN SISTEM 3.1.
Orang yang Terlibat dalam Sistem
1. Pemakai Pemakai (user) adalah orang yang terlibat langsung dengan sistem karena menggunakan sistem ini untuk mengelola komputer atau server secara
remote menggunakan perangkat mobile.
3.2. Gambaran Umum Sistem
Sistem ini digunakan untuk mempermudah pemakai dalam melakukan aktifitas monitoring, maintenance, dan mengkonfigurasi komputer atau server dari jarak jauh tanpa menggunakan sebuah perangkat komputer, melainkan dapat melakukannya dengan sebuah perangkat mobile sehingga dapat melakukannya darimana saja dan dimana saja.
Sebelum menjalankan sistem, pemakai harus melakukan proses login menampilkan terminal dimana pemakai dapat memasukkan perintah-perintah yang akan dieksekusi di server. Pemakai dapat mengubah data-data yang telah disimpan tersebut dan dapat juga menghapusnya. Pemakai dapat juga mengubah tampilan terminal sesuai dengan yang diinginkannya. Sistem ini juga memiliki fasilitas untuk mengubah username dan password untuk login ke sistem. Hal ini diperlukan jika pemakai lupa username dan password untuk login ke sistem.
Analisa Kebutuhan
3.3.1. Use Case Diagram
Edit Koneksi Hapus Koneksi Mengatur tampilan Koneksi ke serv er Buat Koneksi Login
Pemakai <<depends on>>
<<depends on>> <<depends on>>
3.4.1. Activity Diagram
Activity diagram memodelkan alur kerja (workflow) sebuah proses bisnis
dan urutan aktivitas dalam suatu proses. Berikut ini adalah activity diagram pada sistem yang mengacu pada use case diagram :
1. Activity Diagram Login
menampilkan tampilan login menerima masukan username dan password memvalidasi masukan username dan password benar ? ya tidak
menampilkan pesan kesalahan menampilkan tampilan utama akan menampilkan menu utama, jika salah sistem akan menampilkan pesan kesalahan dan akan menampilkan kembali tampilan untuk login.
2. Activity Diagram Mengatur Tampilan
menampilkan tampilan utama menerima pilihan edit tampilan menampilkan tampilan untuk mengedit tampilan menerima masukan data tampilan menerima pilihan untuk menyimpan data tampilan menyimpan data tampilan data tampilan berupa ukuran huruf, warna huruf, dan latar belakang layar, kemudian menyimpan data tampilan.
3. Activity Diagram Buat Koneksi