TELNET
TELNET merupakan singkatan dari TErminaL NETwork. Telnet ini merupakan standar protocol tcp/ip untuk layanan terminal virtual yang diusulkan oleh ISO. TELNET memungkinkan pembentukan koneksi untuk system remote jarak jauh yang membuat terminal local nampaknya merupakan terminal pada system remote.
TELNET merupakan singkatan dari TErminaL NETwork. Telnet ini merupakan standar protocol tcp/ip untuk layanan terminal virtual yang diusulkan oleh ISO. TELNET memungkinkan pembentukan koneksi untuk system remote jarak jauh yang membuat terminal local nampaknya merupakan terminal pada system remote.
Konsep
TELNET berhubungan dengan beberapa konsep yang akan kita deskrpsikan secara singkat berikut.
Lingkungan
Time-Sharing
TELNET didesain
ketika kebanyakan system operasi, seperti UNIX, beroperasi pada lingkungan
time-sharing. Pada lingkungan yang seperti itu, sebuah computer besar mampu
mendukung banyak pengguna. Interaksi antara pengguna dan computer terjadi
melewati terminal, yang biasanya merupakan kombinasi dari keyboard, monitor,
dan mouse. Bahkan mikrokomputer sekalipun mampu menyimulasikan terminal dengan
emulator terminal.
Dalam lingkungan time-sharing, semua proses harus dilakukan oleh komputer pusat. Bila pengguna mengetik karakter pada keyboard, karakter tersebut biasanya dikirim ke komputer dan ditampilkan ke monitor. Time-sharing menciptakan suatu lingkungan di mana setiap pengguna memiliki ilusi komputer khusus. Pengguna dapat menjalankan program, mengakses sumber daya sistem, beralih dari satu program yang lain, dan seterusnya.
Login
Di lingkungan time-sharing, pengguna adalah bagian dari sistem dengan beberapa hak untuk mengakses sumber daya. Setiap pengguna yang berwenang telah mempunyai sebuah identifikasi dan mungkin sandi. Identifikasi pengguna mendefinisikan pengguna sebagai bagian dari sistem. Untuk mengakses sistem, pengguna login ke sistem dengan id pengguna atau nama login. Sistem juga mencakup pememeriksaan sandi untuk mencegah pengguna yang tidak sah untuk mengakses sumber daya.
Lokal Login Ketika seorang pengguna log ke dalam sistem time-sharing lokal, hal ini disebut login lokal. Sebagai jenis pengguna di terminal atau di komputer yang menjalankan terminal emulator, penekanan tombol yang diterima oleh driver terminal. Driver terminal melewati karakter untuk sistem operasi. Sistem operasi, pada gilirannya, menafsirkan kombinasi karakter dan memanggil program aplikasi yang diinginkan atau utilitas (Lihat gambar di bawah)
Bagaimanapun, mekanismenya tidak sesederhana seperti tampaknya karena sistem operasi dapat menetapkan arti khusus untuk karakter khusus. Sebagai contoh, dalam UNIX beberapa kombinasi karakter memiliki arti khusus, seperti kombinasi karakter kontrol dengan z karakter, yang berarti menangguhkan (suspend); Kombinasi karakter kontrol dengan c karakter, yang berarti membatalkan; dan seterusnya. Sedangkan situasi khusus ini tidak menciptakan masalah pada saat login lokal karena terminal emulator dan driver terminal tahu arti sesungguhnya dari setiap karakter atau kombinasi karakter, hal tersebut dapat menciptakan masalah dalam login jarak jauh. Proses yang harus menafsirkan karakter khusus? Klien atau server?
Login Jarak Jauh (Remote Login) Ketika pengguna ingin mengakses program aplikasi atau utilitas yang terletak pada mesin remote, dia melakukan login jarak jauh. Di sini program TELNET client dan server berguna. Pengguna mengirimkan penekanan tombol ke driver terminal dimana sistem operasi lokal menerima karakter tetapi tidak menafsirkan mereka. Karakter akan dikirim ke klien TELNET, yang mengubah karakter menjadi set karakter universal yang disebut Network Virtual Terminal (NVT) karakter dan mengirimkan mereka kepada tumpukan TCP/IP lokal (Lihat gambar di bawah).

Perintah atau teks, dalam bentuk NVT, berjalan melalui Internet dan tiba di tumpukan TCP/IP pada mesin remote. Di sini karakter dikirimkan ke sistem operasi dan diteruskan ke server TELNET, yang mengubah karakter-karakter terkait yang dimengerti oleh komputer remote. Namun, karakter tidak dapat dilewatkan langsung ke sistem operasi karena sistem operasi remote tidak dirancang untuk menerima karakter dari TELNET server: tapi dirancang untuk menerima karakter dari driver terminal. Solusinya adalah untuk menambahkan perangkat lunak yang disebut driver pseudoterminal, yang berpura-pura bahwa karakter tersebut datang dari terminal. Sistem operasi kemudian melewati karakter ke program aplikasi yang sesuai
Network Virtual Terminal (NVT)
Mekanisme untuk mengakses komputer remote itu kompleks. Hal ini karena setiap komputer dan sistem operasi yang menerima kombinasi khusus karakter sebagai token/tanda. Sebagai contoh, token akhir-dari-file di komputer yang menjalankan sistem operasi DOS adalah Ctrl+Z, sementara sistem operasi UNIX menggunakan Ctrl+D.
Kita berhadapan dengan sistem heterogen. Jika kita ingin mengakses komputer jarak jauh di dunia, kita harus pertama tahu jenis komputer apa yang akan kita hubungkan, dan kita juga harus menginstal emulator terminal tertentu yang digunakan oleh komputer itu. TELNET memecahkan masalah ini dengan mendefinisikan antarmuka universal yang disebut set karakter Network Virtual Terminal (NVT). Melalui antarmuka ini, klien TELNET menterjemahkan karakter (data atau perintah) yang datang dari terminal lokal ke dalam bentuk NVT dan mengirimkan mereka ke jaringan. Server TELNET, di sisi lain, menerjemahkan data dan perintah dari bentuk NVT ke bentuk yang dapat diterima oleh komputer remote. Untuk sebuah ilustrasi tentang konsep ini, lihat gambar di bawah.
Set Karakter NVT NVT menggunakan dua set karakter, satu untuk data dan satu untuk kontrol. Keduanya byte 8-bit (Lihat gambar di bawah).
Data Karakter Untuk data, NVT biasanya menggunakan apa yang disebut NVT ASCII. Ini adalah set karakter 8-bit di mana 7 urutan bit terendah adalah sama seperti US ASCII dan bit urutan tertinggi adalah 0 (Lihat gambar di atas). Meskipun dimungkinkan untuk mengirim ASCII 8-bit (dengan sedikit urutan tertinggi ditetapkan menjadi 0 atau 1), ini harus disepakati terlebih dahulu antara klien dan server menggunakan opsi negosiasi.
Karakter Kontrol Untuk mengirim kontrol karakter antar komputer (dari klien ke server atau sebaliknya), NVT menggunakan set karakter 8-bit di mana bit urutan tertinggi diatur menjadi 1 (Lihat gambar di atas tadi). Tabel di bawah berisi beberapa karakter kontrol dan makna mereka. Kemudian kami akan mengkategorikan karakter kontrol berdasarkan fungsi mereka.
Embedding
TELNET hanya menggunakan satu koneksi TCP. Server menggunakan port 23 yang terkenal dan klien menggunakan port sementara. Sambungan yang sama digunakan untuk mengirim data dan karakter kontrol. TELNET menyelesaikan hal ini dengan menanamkan karakter kontrol dalam aliran data. Namun, untuk membedakan data dari karakter kontrol, setiap urutan karakter kontrol didahului oleh kontrol khusus yang bernama interpret as control(IAC) yang artinya tafsirakn sebagai kontrol. Sebagai contoh, bayangkan pengguna menginginkan sebuah server untuk menampilkan file (file1) di server remote. Ia mengetik "cat file 1". Di mana cat adalah perintah Unix yang menampilkan isi dari file pada layar. Namun, nama file telah salah diketik (misalnya filea daripada file1). Pengguna menggunakan tombol backspace untuk memperbaiki situasi ini. "cat filea<backspace>1". Namun, dalam standar pelaksanaan TELNET, pengguna tidak dapat melakukan pengeditan lokal; pengeditan dilakukan pada remote server. Karakter backspace diterjemahkan ke dalam dua remote karakter (IAC EC), yang tertanam dalam data dan dikirim ke remote server. Apa yang dikirimkan ke server ditampilkan dalam gambar di bawah.
Pilihan / Opsi
TELNET memungkinkan klien dan server bernegosiasi pilihan pada saat sebelum atau selama menggunakan layanan. Pilihan adalah fitur tambahan yang tersedia untuk pengguna dengan terminal yang lebih canggih. Pengguna dengan terminal sederhana dapat menggunakan fitur standar. Beberapa karakter kontrol yang dibahas sebelumnya yang digunakan untuk mendefinisikan pilihan. Tabel di bawah menunjukkan beberapa pilihan yang umum.
Deskripsi pilihan di atas adalah sebagai berikut:
- Binary / Biner. Pilihan ini memungkinkan penerima untuk menafsirkan setiap karakter 8-bit yang diterima, kecuali IAC, sebagai data biner. Bila IAC diterima, karakter berikutnya atau karakter ditafsirkan sebagai perintah. Namun, jika dua berturut-turut adalah karakter IAC yang diterima, yang pertama akan dibuang dan yang kedua ditafsirkan sebagai data.
- Echo. Pilihan ini memungkinkan server untuk menampilkan data yang diterima dari klien. Ini berarti bahwa setiap karakter yang dikirim oleh klien ke pengirim akan ditampilkan kembali ke layar terminal klien. Dalam kasus ini, pengguna terminal biasanya tidak menampilkan karakter ketika mereka diketik tetapi menunggu sampai itu diterima mereka dari server.
- Suppress go-ahead/Tekan Jalan Terus. Opsi ini menekan karakter jalan terus/go-ahead (GA) (Lihat bagian pada mode operasi).
- Status. Pilihan ini memungkinkan pengguna atau proses yang berjalan pada mesin klien untuk mendapatkan status dari opsi yang diaktifkan pada lokasi server.
- Timing Mark/Penandaan Waktu. Pilihan ini memungkinkan salah satu pihak untuk mengeluarkan tanda waktu yang menunjukkan semua data yang diterima sebelumnya, telah diproses.
- Terminal Type/Tipe Terminal. Pilihan ini memungkinkan klien untuk mengirim tipe terminal.
- Terminal Speed/Kecepatan Terminal. Pilihan ini memungkinkan klien untuk mengirim kecepatan terminal.
- Line Mode. Pilihan ini memungkinkan klien untuk beralih ke mode baris.
Negosiasi Opsi
Untuk menggunakan salah satu pilihan yang disebutkan di bagian pertama sebelumnya memerlukan pilihan negosiasi antara klien dan server. Empat karakter kontrol yang digunakan untuk tujuan ini; ini ditunjukkan dalam tabel di bawah.
Mengaktifkan Sebuah Opsi
Beberapa pilihan hanya akan diaktifkan oleh server, beberapa hanya oleh klien, dan beberapa oleh kedua. Pilihan/opsi diaktifkan baik melalui penawaran atau permintaan.
Penawaran Unruk Mengaktifakan Sebuah pihak dapat menawarkan untuk mengaktifkan pilihan jika memiliki ia hak untuk melakukannya. Penawaran tersebut dapat disetujui atau ditolak oleh pihak lain. Pihak yang menawarkan akan mengirimkan perintah WILL, yang berarti "Akankah saya mengaktifkan opsi?" Pihak lain mengirim perintah DO, yang berarti "Silahkan lakukan", atau perintah DONT, yang berarti "Tolong jangan." Lihat gambar di bawah.
Permintaan Untuk Mengaktifkan Sebuah pihak dapat meminta dari pihak lain sebuah pengaktifan pilihan. Permintaan dapat diterima atau ditolak oleh pihak lain. Pihak yang meminta akan mengirim perintah DO, yang berarti "Silahkan mengaktifkan pilihan." Pihak lain juga mengirim perintah WILL, yang berarti "Aku akan", atau perintah WONT, yang berarti "Saya tidak. akan" Lihat gambar di bawah.
Menonaktifkan Opsi
Sebuah pilihan yang telah diaktifkan dapat dinonaktifkan oleh salah satu pihak. Opsi ini dinonaktifkan baik melalui penawaran atau permintaan.
Penawaran Untuk Menonaktifkan Sebuah pihak dapat menawarkan untuk menonaktifkan sebuah opsi. Pihak lain harus menyetujui penawaran; itu tidak dapat ditolak. Pihak yang menawarkan, mengirim perintah WONT, yang berarti "Saya tidak akan menggunakan opsi ini lagi." Jawabannya harus perintah DONT, yang berarti "jangan menggunakannya lagi." Gambar di bawah menunjukkan tawaran untuk menonaktifkan opsi.
Permintaan Untuk Menonaktifkan Sebuah pihak dapat meminta dari pihak lain untuk menonaktifkan pilihan. Pihak lain harus menerima permintaan; itu tidak dapat ditolak. Pihak yang meminta mengirimkan perintah DONT, yang berarti "Harap tidak menggunakan opsi ini lagi." Jawabannya harus perintah WONT, yang berarti "Saya tidak akan menggunakannya lagi." Gambar di bawah menunjukkan permintaan untuk menonaktifkan opsi.
Contoh
Gambar di bawah menunjukkan contoh dari pilihan negosiasi. Dalam contoh ini, klien ingin server untuk menampilkan setiap karakter yang dikirim ke server. Dengan kata lain, ketika karakter yang diketik di keyboard pengguna terminal, karakter itu pergi ke server dan dikirim kembali ke layar pengguna sebelum diproses. Pilihan Echo diaktifkan oleh server karena server yang mengirim karakter kembali ke terminal pengguna. Oleh karena itu, klien harus meminta dari server opsi pengaktifan menggunakan perintah DO. Permintaan terdiri dari tiga karakter: IAC, DO dan ECHO. Server menerima permintaan dan mengaktifkan opsi. Menginformasikan klien dengan mengirimkan 3 karakter persetujuan: IAC, WILL, dan ECHO.
Simetri
Salah satu fitur menarik dari TELNET adalah dengan pilihan negosiasi simetris di mana klien dan server diberikan kesempatan yang sama. Ini berarti bahwa, pada awal koneksi, diasumsikan bahwa kedua belah pihak menggunakan standar pelaksanaan TELNET dengan tidak ada pilihan diaktifkan. Jika salah satu pihak ingin pilihan diaktifkan, dapat menawarkan atau meminta. Pihak lain berhak untuk tawaran menyetujui atau menolak permintaan jika pihak tidak mampu menggunakan opsi atau tidak ingin menggunakan opsi. Hal ini memungkinkan untuk perluasan TELNET. Klien atau server dapat menginstal versi yang lebih canggih dari TELNET dengan lebih banyak pilihan. Ketika sudah terhubung ke sebuah pihak, ia dapat menawarkan atau meminta opsi baru ini. Jika pihak lain juga mendukung opsi ini, pilihan dapat diaktifkan; Jika tidak, mereka ditolak.
Subopsi Negosiasi
Beberapa opsi memerlukan informasi tambahan. Misalnya, untuk mendefinisikan tipe atau kecepatan terminal, negosiasi memasukkan string atau angka untuk mendefinisikan jenis atau kecepatan. Dalam kedua kasus, dua karakter subopsi yang ditunjukkan dalam tabel di bawah yang diperlukan untuk negosiasi subopsi.
Misalnya, jenis terminal diatur oleh klien, seperti yang ditunjukkan pada gambar di bawah.
Mengontrol Server
Beberapa karakter kontrol dapat digunakan untuk mengontrol remote server. Ketika sebuah program aplikasi berjalan pada komputer lokal, karakter khusus digunakan untuk menyela (abort) program (misalnya, Ctrl+c), atau menghapus karakter terakhir diketik (misalnya, tombol delete atau backspace), dan seterusnya. Namun, ketika sebuah program berjalan pada komputer remote, karakter kontrol ini akan dikirim ke mesin remote. Pengguna masih mengetikkan urutan yang sama, tetapi mereka berubah menjadi karakter khusus dan dikirim ke server. Tabel di bawah menunjukkan beberapa karakter yang dapat dikirim ke server untuk mengontrol program aplikasi yang sedang berjalan ke sana.
Mari kita perhatikan karakter ini secara lebih rinci:
- IP (interrupt process/menghentikan proses). Ketika sebuah program sedang dijalankan secara lokal, pengguna dapat menghentikan (abort) program itu jika, misalnya, program telah menjadi infinite loop. Pengguna dapat mengetik kombinasi Ctrl+c, sistem operasi memanggil sebah fungsi dan fungsi itu menghentikan program. Namun, jika program ini berjalan pada mesin remote, fungsi yang tepat harus dipanggil oleh sistem operasi mesin remote. TELNET mendefinisikan karakter kontrol IP (interrupt process) yang dibaca dan ditafsirkan sebagai perintah yang sesuai untuk menerapkan fungsi menghentikan dalam mesin remote.
- AO (abort output/batalkan keluaran). Ini sama dengan IP, tetapi memungkinkan proses untuk dilanjutkan tanpa membuat output/keluaran. Hal ini berguna jika proses memiliki efek lain selain membuat output. Pengguna ingin efek ini tapi tidak outputnya. Sebagai contoh, sebagian perintah di UNIX menghasilkan output dan memiliki status keluar. Pengguna mungkin ingin status keluar untuk penggunaan di masa depan tetapi tidak tertarik pada output datanya.
- AYT (are you there?/apakah anda di sana?). Karakter kontrol ini digunakan untuk menentukan apakah mesin remote masih bangun dan berjalan, terutama setelah lama berdiam diri dari server. Bila karakter ini diterima, server biasanya mengirimkan sinyal audio atau visual untuk mengkonfirmasi yang sedang berjalan.
- EC (erase character/menghapus karakter). Ketika pengguna mengirimkan data dari keyboard untuk mesin lokal, karakter delete atau backspace dapat menghapus karakter terakhir yang diketik. Untuk melakukan hal yang sama di mesin remote, TELNET mendefinisikan EC mengendalikan karakter.
- EL (erase line/menghapus baris). Ini digunakan untuk menghapus baris saat ini di remote host.
Sebagai contoh, gambar di bawah menunjukkan bagaimana untuk menghentikan sebuah program aplikasi pelarian di lokasiserver. Pengguna mengetikkan Ctrl+c, tapi klien TELNET mengirimkan kombinasi IAC dan IP ke server.
Out-of-Band Signaling
Untuk membuat karakter kontrol yang efektif dalam situasi khusus, TELNET menggunakan out-of-band signaling. Di out-of-band signaling, karakter kontrol didahului oleh IAC dan dikirim ke proses remote.
Bayangkan situasi di mana sebuah program aplikasi yang berjalan pada situs server telah pergi ke dalam infinite loop dan tidak menerima data masukan lagi. Pengguna ingin menghentikan program aplikasi, tetapi program tidak membaca data dari buffer. TCP pada situs server telah menemukan bahwa buffer telah penuh dan telah mengirim segmen yang menentukan bahwa ukuran jendela klien harus nol. Dengan kata lain, TCP pada situs server mengumumkan bahwa tidak ada lalu lintas biasa yang diterima lagi. Untuk memperbaiki situasi, segmen TCP yang darurat harus dikirim dari klien ke server. Segmen darurat mengabaikan mekanisme flow-kontrol biasa. Meskipun TCP tidak menerima segmen normal, itu harus menerima segmen darurat.
Ketika proses TELNET (klien atau server) ingin mengirim urutan karkater out-of-band untuk proses lain (klien atau server), itu menanamkan urutan dalam aliran data dan memasukkan karakter khusus yang disebut DM (data mark). Namun, untuk menginformasikan pihak lain, ia menciptakan segmen TCP dengan set bit darurat dan pointer darurat menunjuk ke karakter DM. Ketika proses penerimaan menerima data, membaca data, dan membuang data karakter kontrol yang sebelumnya (IAC dan IP, misalnya). Ketika mencapai karakter DM, sisa data ditangani seperti biasanya. Dengan kata lain, karakter DM digunakan sebagai karakter sinkronisasi yang menukar proses penerimaan dari mode darurat menjadi mode normal dan meresinkronasi dua akhir (Lihat gambar di bawah).
Dengan cara ini, kontrol karakter (IP) disampaikan dari band untuk sistem operasi, yang menggunakan fungsi sesuai untuk mengganggu menjalankan program aplikasi.
Karakter Escape
Karakter yang diketik oleh pengguna biasanya dikirim ke server. Namun, kadang-kadang pengguna menginginkan karakter ditafsirkan oleh klien bukan server. Dalam kasus ini, pengguna dapat menggunakan karakter escape, biasanya Ctrl+] (ditampilkan sebagai ^]). Gambar di bawah membandingkan gangguan dari sebuah program aplikasi di lokasi remote dengan gangguan proses klien di situs lokal menggunakan karakter escape. TELNET prompt ditampilkan setelah karakter escape ini.
Mode-Mode Operasi
Kebanyakan implementasi TELNET beroperasi di salah satu dari tiga mode: mode default, mode karakter, atau mode garis.
Mode Default
Mode default ini digunakan jika tidak ada mode lain sedang dipanggil melalui pilihan negosiasi. Dalam mode ini, penampilan dilakukan oleh klien. Pengguna mengetikkan karakter dan klien menampilkan karakter pada layar (atau printer) tapi tidak mengirimnya sampai seluruh baris selesai. Setelah mengirim seluruh baris ke server, klien menunggu perintah GA (go-ahead) dari server sebelum menerima baris baru dari pengguna. Operasi ini merupakan half-duplex. Operasi half-duplex ini tidak efisien ketika koneksi TCP itu sendiri full-duplex, dengan demikian mode ini menjadi usang.
Contoh
Dalam contoh ini, kami menggunakan mode default untuk menunjukkan konsep dan kekurangannya meskipun hampir usang sekarang ini. Klien dan server bernegosiasi tipe terminal dan kecepatan terminal dan kemudian server akan memeriksa login dan password pengguna (Lihat gambar di bawah).
Mode Karakter
Dalam mode karakter, masing-masing karakter yang diketik dikirim oleh klien ke server. Server biasanya menampilkan karakter kembali pada layar klien. Dalam mode ini penampilan karakter dapat ditunda jika waktu transmisi panjang (seperti dalam koneksi satelit). Ini juga menciptakan overhead (traffic) untuk jaringan karena tiga segmen TCP harus dikirim untuk setiap karakter data:
- Pengguna memasukkan karakter yang dikirim ke server.
- Server mengakui karakter yang diterima dan menampilkan karakter kembali (dalam satu segmen).
- Klien mengakui penerimaan karakter yang ditampilkan
Contoh
Dalam contoh ini, kami menunjukkan bagaimana klien beralih ke mode karakter. Ini mengharuskan klien meminta server untuk mengaktifkan opsi SUPPRESS GO AHEAD dan ECHO (lihat Gambar di bawah).
Mode Baris/Garis
Sebuah mode baru telah diusulkan untuk mengkompensasi kekurangan mode default dan mode karakter. Dalam mode ini, yang disebut mode line/baris, pengeditan baris (penampilan, penghapusan karakter, penghapusan baris, dan sebagainya) dilakukan oleh klien. Klien kemudian mengirimkan seluruh baris ke server. Meskipun mode line tampak seperti mode default, hal ini sebenarnya tidak. Mode default beroperasi dalam mode half-duplex; mode baris pada full-duplex dengan klien mengirimkan satu baris setelah yang lainnya, tanpa perlu untuk intervensi karakter GA (go-ahead) dari server.
Antarmuka Pengguna
Pengguna normal tidak menggunakan perintah TELNET seperti yang disebutkan di atas. Biasanya, sistem operasi (UNIX, misalnya) mendefinisikan sebuah antarmuka dengan perintah yang user-friendly. Contoh seperangkat perintah semacam itu dapat ditemukan pada Tabel di bawah. Perhatikan bahwa antarmuka bertanggung jawab untuk menerjemahkan perintah yang mudah digunakan ke perintah yang sebelumnya didefinisikan dalam protokol.
Masalah Keamanan
TELNET menderita masalah keamanan. Meskipun TELNET memerlukan nama login dan kata sandi (saat bertukar teks), seringkali ini tidak cukup. Sebuah komputer mikro yang terhubung ke broadcast LAN dapat dengan mudah "menguping" menggunakan perangkat lunak snooper dan menangkap nama login dan kata kunci yang sesuai (walaupun sudah dienkripsi).
SECURE SHELL (SSH)
Program aplikasi remote login lainnya yang populer adalah Secure Shell (SSH). SSH, layaknya TELNET, menggunakan TCP sebagai protokol transportasi yang mendasarinya, namun SSH lebih aman dan memberikan lebih banyak layanan daripada TELNET.
Versi
Ada dua versi dari SSH: SSH-1 dan SSH-2, yang sama sekali tidak sama. Versi pertama, SSH-1 sekarang tidak berlaku lagi karena celah keamanan di dalamnya. Pada bagian ini, kita hanya membahas SSH-2.
Komponen
SSH adalah protokol lapisan-aplikasi yang diusulkan dengan empat komponen, seperti yang ditunjukkan pada gambar di bawah.
Protokol Lapisan-Transport SSH (SSH-TRANS)
Karena TCP bukanlah protokol lapisan transport yang aman, SSH pertama-tama menggunakan sebuah protokol yang menciptakan saluran aman di bagian atas TCP. Lapisan baru ini merupakan protokol independen yang disebut SSH-TRANS. Ketika perangkat lunak yang mengimplementasikan protokol ini dipanggil, klien dan server pertama-tama menggunakan protokol TCP untuk membuat prokoneksi yang tidak aman. Kemudian mereka menukar beberapa parameter keamanan untuk membuat saluran aman di bagian atas TCP., Kami secara ringkas mencantumkan layanan yang diberikan oleh protokol ini:
- Privasi atau kerahasiaan pesan yang dipertukarkan.
- Integritas data, yang berarti dijamin bahwa pesan yang dipertukarkan antara client dan server tidak diubah oleh penyusup.
- Otentikasi server, yang berarti bahwa klien sekarang yakin bahwa server adalah server yang diklaimnya.
- Kompresi pesan yang meningkatkan efisiensi sistem dan membuat serangan menjadi lebih sulit.
Protokol Autentikasi SSH (SSH-AUTH)
Setelah jalur aman terbentuk antara klien dan server dan server diautentikasi untuk klien, SSH dapat memanggil perangkat lunak lain yang dapat mengotentikasi klien untuk server.
Protokol Koneksi SSH (SSH-CONN)
Setelah saluran aman terbentuk dan kedua server dan klien diautentikasi satu sama lain, SHH dapat memanggil perangkat lunak yang mengimplementasikan protokol ketiga, SSH-CONN. Salah satu layanan yang diberikan oleh protokol SSH-CONN adalah melakukan multiplexing. SSH-CONN mengambil jalur aman yang ditetapkan oleh dua protokol sebelumnya dan membiarkan klien membuat beberapa saluran logika di atasnya.
Aplikasi SSH
Setelah fase koneksi selesai, SSH memungkinkan beberapa program aplikasi untuk menggunakan koneksi. Setiap aplikasi dapat membuat saluran logika seperti yang dijelaskan di atas dan kemudian mendapatkan keuntungan dari koneksi yang aman. Dengan kata lain, remote login adalah salah satu layanan yang bisa menggunakan protokol SSH-CONN; Aplikasi lain, seperti aplikasi transfer file dapat menggunakan salah satu saluran logika untuk tujuan ini.
Port Forwarding
Salah satu layanan menarik yang disediakan oleh protokol SSH adalah menyediakan port forwarding. Kita bisa menggunakan jalur aman yang tersedia di SSH untuk mengakses program aplikasi yang tidak menyediakan layanan keamanan. Aplikasi seperti TELNET dan SMTP dapat menggunakan layanan SSH dengan menggunakan mekanisme port forwarding. Mekanisme port forwarding SSH ini menciptakan sebuah terowongan yang melaluinya pesan-pesan milik protokol lain dapat berjalan. Untuk alasan ini, mekanisme ini kadang disebut sebagai tunneling SSH. Gambar di bawah menunjukkan konsep port forwarding.
Kita dapat mengubah sebuah hubungan langsung, namun tidak aman, antara klien TELNET dan server TELNET dengan port forwarding. Klien TELNET dapat menggunakan klien SHH di situs lokal untuk membuat sambungan aman dengan server SSH di lokasi remote. Setiap permintaan dari klien TELNET ke server TELNET dibawa melalui terowongan yang disediakan oleh klien dan server SSH. Setiap tanggapan dari server TELNET kepada klien TELNET juga dilakukan melalui terowongan yang disediakan oleh klien dan server SSH.
Format dari Paket SSH
Gambar di bawah menunjukkan forma dari oaket yang digunakan oleh protokol SSH.
Di bawah ini merupakan deskripsi singkat dari setiap bidang:
- Length/Panjang, Bidang 4-byte ini mendefinisikan panjang dari paket yang termasuk tipe, data, bidang CRC, tapi bukan padding dan bidang panjangnya.
- Padding/Lapisan, Satu sampai delapan byte dari padding ditambahkan ke dalam paket untuk membuat serangan terhadap ketentuan keamanan menjadi lebih sulit.
- Type/Tipe, Bidang satu byte ini mendefinisikan jenis paket yang digunakan oleh protokol SSH.
- Data, Bidang ini memiliki panjang variabel. Panjang dari data dapat ditemukan dengan mengurangkan lima byte dari nilai bidang panjang.
- CRC, Bidang cyclic redundancy check/pemeriksaan redundansi kilat digunakan untuk mendeteksi kesalahan.
KESIMPULAN
- TELNET adalah aplikasi client-server yang memungkinkan pengguna masuk ke mesin remote, memberi akses pengguna ke sistem remote. Saat pengguna mengakses sistem remote melalui proses TELNET, ini sebanding dengan lingkungan time-sharing. Driver terminal dengan benar menafsirkan penekanan tombol pada terminal lokal atau terminal emulator. Ini mungkin tidak terjadi antara terminal dan driver terminal remote.
- TELNET menggunakan sistem Network Virtual Terminal (NVT) untuk mengkodekan karakter pada sistem lokal. Pada mesin server, NVT men-decode karakter ke bentuk yang dapat diterima oleh mesin remote. NVT menggunakan satu set karakter untuk data dan satu set karakter untuk kontrol.
- Pilihan/Opsi adalah fitur yang meningkatkan proses TELNET. TELNET memungkinkan negosiasi untuk mengatur kondisi transfer antara klien dan server sebelum dan selama penggunaan layanan. Beberapa pilihan hanya dapat diaktifkan oleh server, beberapa hanya oleh klien, dan beberapa oleh keduanya. Pilihan diaktifkan atau dinonaktifkan melalui penawaran atau permintaan. Pilihan yang membutuhkan informasi tambahan memerlukan penggunaan karakter suboption.
- Implementasi TELNET beroperasi dalam mode default, karakter, atau baris/garis. Dalam mode default, klien mengirimkan satu baris dalam satu waktu ke server dan menunggu karakter go-ahead (GA) sebelum baris baru dari pengguna dapat diterima. Dalam mode karakter, klien mengirimkan satu karakter pada satu waktu ke server. Dalam mode garis, klien mengirimkan satu baris setiap kali ke server, satu demi satu, tanpa memerlukan karakter GA yang sedang melakukan intervensi.
- Program aplikasi login jarak jauh lainnya yang populer adalah Secure Shell (SSH), yang lebih aman dan menyediakan lebih banyak layanan daripada TELNET. Ada dua versi SSH; Di sini kami hanya membahas SSH-2.
- SSH terdiri dari empat komponen: Aplikasi SSH, SSH-CONN, SSH-AUTH, dan SSH-TRANS. Kombinasi keempat komponen di atas memberikan remote login yang aman yang dapat digunakan sebagai pengganti TELNET.
- Salah satu layanan menarik yang disediakan oleh protokol SSH adalah menyediakan port forwarding. Kita bisa menggunakan jalur aman yang tersedia di SSH untuk mengakses program aplikasi yang tidak menyediakan layanan keamanan.
TELNET berhubungan dengan beberapa konsep yang akan kita deskrpsikan secara singkat berikut.
Lingkungan Time-Sharing
TELNET didesain
ketika kebanyakan system operasi, seperti UNIX, beroperasi pada lingkungan
time-sharing. Pada lingkungan yang seperti itu, sebuah computer besar mampu
mendukung banyak pengguna. Interaksi antara pengguna dan computer terjadi
melewati terminal, yang biasanya merupakan kombinasi dari keyboard, monitor,
dan mouse. Bahkan mikrokomputer sekalipun mampu menyimulasikan terminal dengan
emulator terminal.
Login
Di lingkungan time-sharing, pengguna adalah bagian dari sistem dengan beberapa hak untuk mengakses sumber daya. Setiap pengguna yang berwenang telah mempunyai sebuah identifikasi dan mungkin sandi. Identifikasi pengguna mendefinisikan pengguna sebagai bagian dari sistem. Untuk mengakses sistem, pengguna login ke sistem dengan id pengguna atau nama login. Sistem juga mencakup pememeriksaan sandi untuk mencegah pengguna yang tidak sah untuk mengakses sumber daya.Lokal Login Ketika seorang pengguna log ke dalam sistem time-sharing lokal, hal ini disebut login lokal. Sebagai jenis pengguna di terminal atau di komputer yang menjalankan terminal emulator, penekanan tombol yang diterima oleh driver terminal. Driver terminal melewati karakter untuk sistem operasi. Sistem operasi, pada gilirannya, menafsirkan kombinasi karakter dan memanggil program aplikasi yang diinginkan atau utilitas (Lihat gambar di bawah)
Bagaimanapun, mekanismenya tidak sesederhana seperti tampaknya karena sistem operasi dapat menetapkan arti khusus untuk karakter khusus. Sebagai contoh, dalam UNIX beberapa kombinasi karakter memiliki arti khusus, seperti kombinasi karakter kontrol dengan z karakter, yang berarti menangguhkan (suspend); Kombinasi karakter kontrol dengan c karakter, yang berarti membatalkan; dan seterusnya. Sedangkan situasi khusus ini tidak menciptakan masalah pada saat login lokal karena terminal emulator dan driver terminal tahu arti sesungguhnya dari setiap karakter atau kombinasi karakter, hal tersebut dapat menciptakan masalah dalam login jarak jauh. Proses yang harus menafsirkan karakter khusus? Klien atau server?
Login Jarak Jauh (Remote Login) Ketika pengguna ingin mengakses program aplikasi atau utilitas yang terletak pada mesin remote, dia melakukan login jarak jauh. Di sini program TELNET client dan server berguna. Pengguna mengirimkan penekanan tombol ke driver terminal dimana sistem operasi lokal menerima karakter tetapi tidak menafsirkan mereka. Karakter akan dikirim ke klien TELNET, yang mengubah karakter menjadi set karakter universal yang disebut Network Virtual Terminal (NVT) karakter dan mengirimkan mereka kepada tumpukan TCP/IP lokal (Lihat gambar di bawah).

Perintah atau teks, dalam bentuk NVT, berjalan melalui Internet dan tiba di tumpukan TCP/IP pada mesin remote. Di sini karakter dikirimkan ke sistem operasi dan diteruskan ke server TELNET, yang mengubah karakter-karakter terkait yang dimengerti oleh komputer remote. Namun, karakter tidak dapat dilewatkan langsung ke sistem operasi karena sistem operasi remote tidak dirancang untuk menerima karakter dari TELNET server: tapi dirancang untuk menerima karakter dari driver terminal. Solusinya adalah untuk menambahkan perangkat lunak yang disebut driver pseudoterminal, yang berpura-pura bahwa karakter tersebut datang dari terminal. Sistem operasi kemudian melewati karakter ke program aplikasi yang sesuai
Network Virtual Terminal (NVT)
Mekanisme untuk mengakses komputer remote itu kompleks. Hal ini karena setiap komputer dan sistem operasi yang menerima kombinasi khusus karakter sebagai token/tanda. Sebagai contoh, token akhir-dari-file di komputer yang menjalankan sistem operasi DOS adalah Ctrl+Z, sementara sistem operasi UNIX menggunakan Ctrl+D.
Kita berhadapan dengan sistem heterogen. Jika kita ingin mengakses komputer jarak jauh di dunia, kita harus pertama tahu jenis komputer apa yang akan kita hubungkan, dan kita juga harus menginstal emulator terminal tertentu yang digunakan oleh komputer itu. TELNET memecahkan masalah ini dengan mendefinisikan antarmuka universal yang disebut set karakter Network Virtual Terminal (NVT). Melalui antarmuka ini, klien TELNET menterjemahkan karakter (data atau perintah) yang datang dari terminal lokal ke dalam bentuk NVT dan mengirimkan mereka ke jaringan. Server TELNET, di sisi lain, menerjemahkan data dan perintah dari bentuk NVT ke bentuk yang dapat diterima oleh komputer remote. Untuk sebuah ilustrasi tentang konsep ini, lihat gambar di bawah.
Set Karakter NVT NVT menggunakan dua set karakter, satu untuk data dan satu untuk kontrol. Keduanya byte 8-bit (Lihat gambar di bawah).
Data Karakter Untuk data, NVT biasanya menggunakan apa yang disebut NVT ASCII. Ini adalah set karakter 8-bit di mana 7 urutan bit terendah adalah sama seperti US ASCII dan bit urutan tertinggi adalah 0 (Lihat gambar di atas). Meskipun dimungkinkan untuk mengirim ASCII 8-bit (dengan sedikit urutan tertinggi ditetapkan menjadi 0 atau 1), ini harus disepakati terlebih dahulu antara klien dan server menggunakan opsi negosiasi.
Karakter Kontrol Untuk mengirim kontrol karakter antar komputer (dari klien ke server atau sebaliknya), NVT menggunakan set karakter 8-bit di mana bit urutan tertinggi diatur menjadi 1 (Lihat gambar di atas tadi). Tabel di bawah berisi beberapa karakter kontrol dan makna mereka. Kemudian kami akan mengkategorikan karakter kontrol berdasarkan fungsi mereka.
Contoh
Karakter Kontrol Untuk mengirim kontrol karakter antar komputer (dari klien ke server atau sebaliknya), NVT menggunakan set karakter 8-bit di mana bit urutan tertinggi diatur menjadi 1 (Lihat gambar di atas tadi). Tabel di bawah berisi beberapa karakter kontrol dan makna mereka. Kemudian kami akan mengkategorikan karakter kontrol berdasarkan fungsi mereka.
Embedding
TELNET hanya menggunakan satu koneksi TCP. Server menggunakan port 23 yang terkenal dan klien menggunakan port sementara. Sambungan yang sama digunakan untuk mengirim data dan karakter kontrol. TELNET menyelesaikan hal ini dengan menanamkan karakter kontrol dalam aliran data. Namun, untuk membedakan data dari karakter kontrol, setiap urutan karakter kontrol didahului oleh kontrol khusus yang bernama interpret as control(IAC) yang artinya tafsirakn sebagai kontrol. Sebagai contoh, bayangkan pengguna menginginkan sebuah server untuk menampilkan file (file1) di server remote. Ia mengetik "cat file 1". Di mana cat adalah perintah Unix yang menampilkan isi dari file pada layar. Namun, nama file telah salah diketik (misalnya filea daripada file1). Pengguna menggunakan tombol backspace untuk memperbaiki situasi ini. "cat filea<backspace>1". Namun, dalam standar pelaksanaan TELNET, pengguna tidak dapat melakukan pengeditan lokal; pengeditan dilakukan pada remote server. Karakter backspace diterjemahkan ke dalam dua remote karakter (IAC EC), yang tertanam dalam data dan dikirim ke remote server. Apa yang dikirimkan ke server ditampilkan dalam gambar di bawah.Pilihan / Opsi
TELNET memungkinkan klien dan server bernegosiasi pilihan pada saat sebelum atau selama menggunakan layanan. Pilihan adalah fitur tambahan yang tersedia untuk pengguna dengan terminal yang lebih canggih. Pengguna dengan terminal sederhana dapat menggunakan fitur standar. Beberapa karakter kontrol yang dibahas sebelumnya yang digunakan untuk mendefinisikan pilihan. Tabel di bawah menunjukkan beberapa pilihan yang umum.
Deskripsi pilihan di atas adalah sebagai berikut:
- Binary / Biner. Pilihan ini memungkinkan penerima untuk menafsirkan setiap karakter 8-bit yang diterima, kecuali IAC, sebagai data biner. Bila IAC diterima, karakter berikutnya atau karakter ditafsirkan sebagai perintah. Namun, jika dua berturut-turut adalah karakter IAC yang diterima, yang pertama akan dibuang dan yang kedua ditafsirkan sebagai data.
- Echo. Pilihan ini memungkinkan server untuk menampilkan data yang diterima dari klien. Ini berarti bahwa setiap karakter yang dikirim oleh klien ke pengirim akan ditampilkan kembali ke layar terminal klien. Dalam kasus ini, pengguna terminal biasanya tidak menampilkan karakter ketika mereka diketik tetapi menunggu sampai itu diterima mereka dari server.
- Suppress go-ahead/Tekan Jalan Terus. Opsi ini menekan karakter jalan terus/go-ahead (GA) (Lihat bagian pada mode operasi).
- Status. Pilihan ini memungkinkan pengguna atau proses yang berjalan pada mesin klien untuk mendapatkan status dari opsi yang diaktifkan pada lokasi server.
- Timing Mark/Penandaan Waktu. Pilihan ini memungkinkan salah satu pihak untuk mengeluarkan tanda waktu yang menunjukkan semua data yang diterima sebelumnya, telah diproses.
- Terminal Type/Tipe Terminal. Pilihan ini memungkinkan klien untuk mengirim tipe terminal.
- Terminal Speed/Kecepatan Terminal. Pilihan ini memungkinkan klien untuk mengirim kecepatan terminal.
- Line Mode. Pilihan ini memungkinkan klien untuk beralih ke mode baris.
Negosiasi Opsi
Untuk menggunakan salah satu pilihan yang disebutkan di bagian pertama sebelumnya memerlukan pilihan negosiasi antara klien dan server. Empat karakter kontrol yang digunakan untuk tujuan ini; ini ditunjukkan dalam tabel di bawah.Mengaktifkan Sebuah Opsi
Beberapa pilihan hanya akan diaktifkan oleh server, beberapa hanya oleh klien, dan beberapa oleh kedua. Pilihan/opsi diaktifkan baik melalui penawaran atau permintaan.Penawaran Unruk Mengaktifakan Sebuah pihak dapat menawarkan untuk mengaktifkan pilihan jika memiliki ia hak untuk melakukannya. Penawaran tersebut dapat disetujui atau ditolak oleh pihak lain. Pihak yang menawarkan akan mengirimkan perintah WILL, yang berarti "Akankah saya mengaktifkan opsi?" Pihak lain mengirim perintah DO, yang berarti "Silahkan lakukan", atau perintah DONT, yang berarti "Tolong jangan." Lihat gambar di bawah.
Permintaan Untuk Mengaktifkan Sebuah pihak dapat meminta dari pihak lain sebuah pengaktifan pilihan. Permintaan dapat diterima atau ditolak oleh pihak lain. Pihak yang meminta akan mengirim perintah DO, yang berarti "Silahkan mengaktifkan pilihan." Pihak lain juga mengirim perintah WILL, yang berarti "Aku akan", atau perintah WONT, yang berarti "Saya tidak. akan" Lihat gambar di bawah.
Menonaktifkan Opsi
Sebuah pilihan yang telah diaktifkan dapat dinonaktifkan oleh salah satu pihak. Opsi ini dinonaktifkan baik melalui penawaran atau permintaan.Penawaran Untuk Menonaktifkan Sebuah pihak dapat menawarkan untuk menonaktifkan sebuah opsi. Pihak lain harus menyetujui penawaran; itu tidak dapat ditolak. Pihak yang menawarkan, mengirim perintah WONT, yang berarti "Saya tidak akan menggunakan opsi ini lagi." Jawabannya harus perintah DONT, yang berarti "jangan menggunakannya lagi." Gambar di bawah menunjukkan tawaran untuk menonaktifkan opsi.
Permintaan Untuk Menonaktifkan Sebuah pihak dapat meminta dari pihak lain untuk menonaktifkan pilihan. Pihak lain harus menerima permintaan; itu tidak dapat ditolak. Pihak yang meminta mengirimkan perintah DONT, yang berarti "Harap tidak menggunakan opsi ini lagi." Jawabannya harus perintah WONT, yang berarti "Saya tidak akan menggunakannya lagi." Gambar di bawah menunjukkan permintaan untuk menonaktifkan opsi.
Gambar di bawah menunjukkan contoh dari pilihan negosiasi. Dalam contoh ini, klien ingin server untuk menampilkan setiap karakter yang dikirim ke server. Dengan kata lain, ketika karakter yang diketik di keyboard pengguna terminal, karakter itu pergi ke server dan dikirim kembali ke layar pengguna sebelum diproses. Pilihan Echo diaktifkan oleh server karena server yang mengirim karakter kembali ke terminal pengguna. Oleh karena itu, klien harus meminta dari server opsi pengaktifan menggunakan perintah DO. Permintaan terdiri dari tiga karakter: IAC, DO dan ECHO. Server menerima permintaan dan mengaktifkan opsi. Menginformasikan klien dengan mengirimkan 3 karakter persetujuan: IAC, WILL, dan ECHO.
Simetri
Salah satu fitur menarik dari TELNET adalah dengan pilihan negosiasi simetris di mana klien dan server diberikan kesempatan yang sama. Ini berarti bahwa, pada awal koneksi, diasumsikan bahwa kedua belah pihak menggunakan standar pelaksanaan TELNET dengan tidak ada pilihan diaktifkan. Jika salah satu pihak ingin pilihan diaktifkan, dapat menawarkan atau meminta. Pihak lain berhak untuk tawaran menyetujui atau menolak permintaan jika pihak tidak mampu menggunakan opsi atau tidak ingin menggunakan opsi. Hal ini memungkinkan untuk perluasan TELNET. Klien atau server dapat menginstal versi yang lebih canggih dari TELNET dengan lebih banyak pilihan. Ketika sudah terhubung ke sebuah pihak, ia dapat menawarkan atau meminta opsi baru ini. Jika pihak lain juga mendukung opsi ini, pilihan dapat diaktifkan; Jika tidak, mereka ditolak.
Subopsi Negosiasi
Beberapa opsi memerlukan informasi tambahan. Misalnya, untuk mendefinisikan tipe atau kecepatan terminal, negosiasi memasukkan string atau angka untuk mendefinisikan jenis atau kecepatan. Dalam kedua kasus, dua karakter subopsi yang ditunjukkan dalam tabel di bawah yang diperlukan untuk negosiasi subopsi.
Misalnya, jenis terminal diatur oleh klien, seperti yang ditunjukkan pada gambar di bawah.
Mengontrol Server
Beberapa karakter kontrol dapat digunakan untuk mengontrol remote server. Ketika sebuah program aplikasi berjalan pada komputer lokal, karakter khusus digunakan untuk menyela (abort) program (misalnya, Ctrl+c), atau menghapus karakter terakhir diketik (misalnya, tombol delete atau backspace), dan seterusnya. Namun, ketika sebuah program berjalan pada komputer remote, karakter kontrol ini akan dikirim ke mesin remote. Pengguna masih mengetikkan urutan yang sama, tetapi mereka berubah menjadi karakter khusus dan dikirim ke server. Tabel di bawah menunjukkan beberapa karakter yang dapat dikirim ke server untuk mengontrol program aplikasi yang sedang berjalan ke sana.
Mari kita perhatikan karakter ini secara lebih rinci:
- IP (interrupt process/menghentikan proses). Ketika sebuah program sedang dijalankan secara lokal, pengguna dapat menghentikan (abort) program itu jika, misalnya, program telah menjadi infinite loop. Pengguna dapat mengetik kombinasi Ctrl+c, sistem operasi memanggil sebah fungsi dan fungsi itu menghentikan program. Namun, jika program ini berjalan pada mesin remote, fungsi yang tepat harus dipanggil oleh sistem operasi mesin remote. TELNET mendefinisikan karakter kontrol IP (interrupt process) yang dibaca dan ditafsirkan sebagai perintah yang sesuai untuk menerapkan fungsi menghentikan dalam mesin remote.
- AO (abort output/batalkan keluaran). Ini sama dengan IP, tetapi memungkinkan proses untuk dilanjutkan tanpa membuat output/keluaran. Hal ini berguna jika proses memiliki efek lain selain membuat output. Pengguna ingin efek ini tapi tidak outputnya. Sebagai contoh, sebagian perintah di UNIX menghasilkan output dan memiliki status keluar. Pengguna mungkin ingin status keluar untuk penggunaan di masa depan tetapi tidak tertarik pada output datanya.
- AYT (are you there?/apakah anda di sana?). Karakter kontrol ini digunakan untuk menentukan apakah mesin remote masih bangun dan berjalan, terutama setelah lama berdiam diri dari server. Bila karakter ini diterima, server biasanya mengirimkan sinyal audio atau visual untuk mengkonfirmasi yang sedang berjalan.
- EC (erase character/menghapus karakter). Ketika pengguna mengirimkan data dari keyboard untuk mesin lokal, karakter delete atau backspace dapat menghapus karakter terakhir yang diketik. Untuk melakukan hal yang sama di mesin remote, TELNET mendefinisikan EC mengendalikan karakter.
- EL (erase line/menghapus baris). Ini digunakan untuk menghapus baris saat ini di remote host.
Sebagai contoh, gambar di bawah menunjukkan bagaimana untuk menghentikan sebuah program aplikasi pelarian di lokasiserver. Pengguna mengetikkan Ctrl+c, tapi klien TELNET mengirimkan kombinasi IAC dan IP ke server.
Mode default ini digunakan jika tidak ada mode lain sedang dipanggil melalui pilihan negosiasi. Dalam mode ini, penampilan dilakukan oleh klien. Pengguna mengetikkan karakter dan klien menampilkan karakter pada layar (atau printer) tapi tidak mengirimnya sampai seluruh baris selesai. Setelah mengirim seluruh baris ke server, klien menunggu perintah GA (go-ahead) dari server sebelum menerima baris baru dari pengguna. Operasi ini merupakan half-duplex. Operasi half-duplex ini tidak efisien ketika koneksi TCP itu sendiri full-duplex, dengan demikian mode ini menjadi usang.
Setelah fase koneksi selesai, SSH memungkinkan beberapa program aplikasi untuk menggunakan koneksi. Setiap aplikasi dapat membuat saluran logika seperti yang dijelaskan di atas dan kemudian mendapatkan keuntungan dari koneksi yang aman. Dengan kata lain, remote login adalah salah satu layanan yang bisa menggunakan protokol SSH-CONN; Aplikasi lain, seperti aplikasi transfer file dapat menggunakan salah satu saluran logika untuk tujuan ini.
Out-of-Band Signaling
Untuk membuat karakter kontrol yang efektif dalam situasi khusus, TELNET menggunakan out-of-band signaling. Di out-of-band signaling, karakter kontrol didahului oleh IAC dan dikirim ke proses remote.
Bayangkan situasi di mana sebuah program aplikasi yang berjalan pada situs server telah pergi ke dalam infinite loop dan tidak menerima data masukan lagi. Pengguna ingin menghentikan program aplikasi, tetapi program tidak membaca data dari buffer. TCP pada situs server telah menemukan bahwa buffer telah penuh dan telah mengirim segmen yang menentukan bahwa ukuran jendela klien harus nol. Dengan kata lain, TCP pada situs server mengumumkan bahwa tidak ada lalu lintas biasa yang diterima lagi. Untuk memperbaiki situasi, segmen TCP yang darurat harus dikirim dari klien ke server. Segmen darurat mengabaikan mekanisme flow-kontrol biasa. Meskipun TCP tidak menerima segmen normal, itu harus menerima segmen darurat.
Ketika proses TELNET (klien atau server) ingin mengirim urutan karkater out-of-band untuk proses lain (klien atau server), itu menanamkan urutan dalam aliran data dan memasukkan karakter khusus yang disebut DM (data mark). Namun, untuk menginformasikan pihak lain, ia menciptakan segmen TCP dengan set bit darurat dan pointer darurat menunjuk ke karakter DM. Ketika proses penerimaan menerima data, membaca data, dan membuang data karakter kontrol yang sebelumnya (IAC dan IP, misalnya). Ketika mencapai karakter DM, sisa data ditangani seperti biasanya. Dengan kata lain, karakter DM digunakan sebagai karakter sinkronisasi yang menukar proses penerimaan dari mode darurat menjadi mode normal dan meresinkronasi dua akhir (Lihat gambar di bawah).
Dengan cara ini, kontrol karakter (IP) disampaikan dari band untuk sistem operasi, yang menggunakan fungsi sesuai untuk mengganggu menjalankan program aplikasi.
Karakter Escape
Karakter yang diketik oleh pengguna biasanya dikirim ke server. Namun, kadang-kadang pengguna menginginkan karakter ditafsirkan oleh klien bukan server. Dalam kasus ini, pengguna dapat menggunakan karakter escape, biasanya Ctrl+] (ditampilkan sebagai ^]). Gambar di bawah membandingkan gangguan dari sebuah program aplikasi di lokasi remote dengan gangguan proses klien di situs lokal menggunakan karakter escape. TELNET prompt ditampilkan setelah karakter escape ini.
Mode-Mode Operasi
Kebanyakan implementasi TELNET beroperasi di salah satu dari tiga mode: mode default, mode karakter, atau mode garis.
Mode Default
Mode default ini digunakan jika tidak ada mode lain sedang dipanggil melalui pilihan negosiasi. Dalam mode ini, penampilan dilakukan oleh klien. Pengguna mengetikkan karakter dan klien menampilkan karakter pada layar (atau printer) tapi tidak mengirimnya sampai seluruh baris selesai. Setelah mengirim seluruh baris ke server, klien menunggu perintah GA (go-ahead) dari server sebelum menerima baris baru dari pengguna. Operasi ini merupakan half-duplex. Operasi half-duplex ini tidak efisien ketika koneksi TCP itu sendiri full-duplex, dengan demikian mode ini menjadi usang.
Contoh
Dalam contoh ini, kami menggunakan mode default untuk menunjukkan konsep dan kekurangannya meskipun hampir usang sekarang ini. Klien dan server bernegosiasi tipe terminal dan kecepatan terminal dan kemudian server akan memeriksa login dan password pengguna (Lihat gambar di bawah).
Mode Karakter
Dalam mode karakter, masing-masing karakter yang diketik dikirim oleh klien ke server. Server biasanya menampilkan karakter kembali pada layar klien. Dalam mode ini penampilan karakter dapat ditunda jika waktu transmisi panjang (seperti dalam koneksi satelit). Ini juga menciptakan overhead (traffic) untuk jaringan karena tiga segmen TCP harus dikirim untuk setiap karakter data:
- Pengguna memasukkan karakter yang dikirim ke server.
- Server mengakui karakter yang diterima dan menampilkan karakter kembali (dalam satu segmen).
- Klien mengakui penerimaan karakter yang ditampilkan
Contoh
Dalam contoh ini, kami menunjukkan bagaimana klien beralih ke mode karakter. Ini mengharuskan klien meminta server untuk mengaktifkan opsi SUPPRESS GO AHEAD dan ECHO (lihat Gambar di bawah).
Dalam contoh ini, kami menunjukkan bagaimana klien beralih ke mode karakter. Ini mengharuskan klien meminta server untuk mengaktifkan opsi SUPPRESS GO AHEAD dan ECHO (lihat Gambar di bawah).
Mode Baris/Garis
Sebuah mode baru telah diusulkan untuk mengkompensasi kekurangan mode default dan mode karakter. Dalam mode ini, yang disebut mode line/baris, pengeditan baris (penampilan, penghapusan karakter, penghapusan baris, dan sebagainya) dilakukan oleh klien. Klien kemudian mengirimkan seluruh baris ke server. Meskipun mode line tampak seperti mode default, hal ini sebenarnya tidak. Mode default beroperasi dalam mode half-duplex; mode baris pada full-duplex dengan klien mengirimkan satu baris setelah yang lainnya, tanpa perlu untuk intervensi karakter GA (go-ahead) dari server.Antarmuka Pengguna
Pengguna normal tidak menggunakan perintah TELNET seperti yang disebutkan di atas. Biasanya, sistem operasi (UNIX, misalnya) mendefinisikan sebuah antarmuka dengan perintah yang user-friendly. Contoh seperangkat perintah semacam itu dapat ditemukan pada Tabel di bawah. Perhatikan bahwa antarmuka bertanggung jawab untuk menerjemahkan perintah yang mudah digunakan ke perintah yang sebelumnya didefinisikan dalam protokol.Masalah Keamanan
TELNET menderita masalah keamanan. Meskipun TELNET memerlukan nama login dan kata sandi (saat bertukar teks), seringkali ini tidak cukup. Sebuah komputer mikro yang terhubung ke broadcast LAN dapat dengan mudah "menguping" menggunakan perangkat lunak snooper dan menangkap nama login dan kata kunci yang sesuai (walaupun sudah dienkripsi).
SECURE SHELL (SSH)
Program aplikasi remote login lainnya yang populer adalah Secure Shell (SSH). SSH, layaknya TELNET, menggunakan TCP sebagai protokol transportasi yang mendasarinya, namun SSH lebih aman dan memberikan lebih banyak layanan daripada TELNET.
Versi
Ada dua versi dari SSH: SSH-1 dan SSH-2, yang sama sekali tidak sama. Versi pertama, SSH-1 sekarang tidak berlaku lagi karena celah keamanan di dalamnya. Pada bagian ini, kita hanya membahas SSH-2.
Komponen
SSH adalah protokol lapisan-aplikasi yang diusulkan dengan empat komponen, seperti yang ditunjukkan pada gambar di bawah.
Protokol Lapisan-Transport SSH (SSH-TRANS)
Karena TCP bukanlah protokol lapisan transport yang aman, SSH pertama-tama menggunakan sebuah protokol yang menciptakan saluran aman di bagian atas TCP. Lapisan baru ini merupakan protokol independen yang disebut SSH-TRANS. Ketika perangkat lunak yang mengimplementasikan protokol ini dipanggil, klien dan server pertama-tama menggunakan protokol TCP untuk membuat prokoneksi yang tidak aman. Kemudian mereka menukar beberapa parameter keamanan untuk membuat saluran aman di bagian atas TCP., Kami secara ringkas mencantumkan layanan yang diberikan oleh protokol ini:
- Privasi atau kerahasiaan pesan yang dipertukarkan.
- Integritas data, yang berarti dijamin bahwa pesan yang dipertukarkan antara client dan server tidak diubah oleh penyusup.
- Otentikasi server, yang berarti bahwa klien sekarang yakin bahwa server adalah server yang diklaimnya.
- Kompresi pesan yang meningkatkan efisiensi sistem dan membuat serangan menjadi lebih sulit.
Protokol Autentikasi SSH (SSH-AUTH)
Setelah jalur aman terbentuk antara klien dan server dan server diautentikasi untuk klien, SSH dapat memanggil perangkat lunak lain yang dapat mengotentikasi klien untuk server.
Protokol Koneksi SSH (SSH-CONN)
Setelah saluran aman terbentuk dan kedua server dan klien diautentikasi satu sama lain, SHH dapat memanggil perangkat lunak yang mengimplementasikan protokol ketiga, SSH-CONN. Salah satu layanan yang diberikan oleh protokol SSH-CONN adalah melakukan multiplexing. SSH-CONN mengambil jalur aman yang ditetapkan oleh dua protokol sebelumnya dan membiarkan klien membuat beberapa saluran logika di atasnya.
Aplikasi SSH
Setelah fase koneksi selesai, SSH memungkinkan beberapa program aplikasi untuk menggunakan koneksi. Setiap aplikasi dapat membuat saluran logika seperti yang dijelaskan di atas dan kemudian mendapatkan keuntungan dari koneksi yang aman. Dengan kata lain, remote login adalah salah satu layanan yang bisa menggunakan protokol SSH-CONN; Aplikasi lain, seperti aplikasi transfer file dapat menggunakan salah satu saluran logika untuk tujuan ini.
Port Forwarding
Salah satu layanan menarik yang disediakan oleh protokol SSH adalah menyediakan port forwarding. Kita bisa menggunakan jalur aman yang tersedia di SSH untuk mengakses program aplikasi yang tidak menyediakan layanan keamanan. Aplikasi seperti TELNET dan SMTP dapat menggunakan layanan SSH dengan menggunakan mekanisme port forwarding. Mekanisme port forwarding SSH ini menciptakan sebuah terowongan yang melaluinya pesan-pesan milik protokol lain dapat berjalan. Untuk alasan ini, mekanisme ini kadang disebut sebagai tunneling SSH. Gambar di bawah menunjukkan konsep port forwarding.
Kita dapat mengubah sebuah hubungan langsung, namun tidak aman, antara klien TELNET dan server TELNET dengan port forwarding. Klien TELNET dapat menggunakan klien SHH di situs lokal untuk membuat sambungan aman dengan server SSH di lokasi remote. Setiap permintaan dari klien TELNET ke server TELNET dibawa melalui terowongan yang disediakan oleh klien dan server SSH. Setiap tanggapan dari server TELNET kepada klien TELNET juga dilakukan melalui terowongan yang disediakan oleh klien dan server SSH.
Format dari Paket SSH
Gambar di bawah menunjukkan forma dari oaket yang digunakan oleh protokol SSH.
Di bawah ini merupakan deskripsi singkat dari setiap bidang:
- Length/Panjang, Bidang 4-byte ini mendefinisikan panjang dari paket yang termasuk tipe, data, bidang CRC, tapi bukan padding dan bidang panjangnya.
- Padding/Lapisan, Satu sampai delapan byte dari padding ditambahkan ke dalam paket untuk membuat serangan terhadap ketentuan keamanan menjadi lebih sulit.
- Type/Tipe, Bidang satu byte ini mendefinisikan jenis paket yang digunakan oleh protokol SSH.
- Data, Bidang ini memiliki panjang variabel. Panjang dari data dapat ditemukan dengan mengurangkan lima byte dari nilai bidang panjang.
- CRC, Bidang cyclic redundancy check/pemeriksaan redundansi kilat digunakan untuk mendeteksi kesalahan.
























Komentar
Posting Komentar