BAHASA PEMROGAMAN KOMPUTER

Sejarah Bahasa Pemrograman Komputer Sejak pertama komputer difference engine diciptakan oleh Charles Babbage pada tahun 1822, komputer membutuhkan sejumlah instruksi untuk melakukan suatu tugas tertentu. Instruksi-instruksi ini dikenal sebagai bahasa pemrograman. Bahasa komputer mulanya terdiri dari sejumlah langkah pengkabelan untuk membuat suatu program; hal ini dapat dipahami sebagai suatu rangkaian pengetikan kedalam komputer dan kemudian dijalankan. Pada awalnya, difference engine-nya Charles Babbage hanya dibuat untuk menjalankan tugas dengan menggunakan perpindahan gigi roda untuk menjalankan fungsi kalkukasi. Jadi, bentuk awal dari bahasa komputer adalah berupa gerakan secara mekanik, selanjutnya gerakan mekanik tersebut digantikan dengan sinyal listrik ketika pemerintah AS mengembangkan ENIAC pada tahun 1942, tetapi masih banyak mengadopsi prinsip-prinsip dasar dari Babbage’s engine yang mana diprogram dengan mengeset switch dan perkabelan pada seluruh sistem pada setiap “program” maupun kalkulasi. Tentu saja ini merupakan pekerjaan yang membosankan. Pada 1945, John Von Neumann yang bekerja pada Institute for Advanced Study mengemukakan dua konsep yang secara langsung mempengaruhi masa depan dari bahasa pemrograman komputer. Yang pertama dikenal sebagai “shared-program technique” (www.softlord.com). Pada teknik ini dinyatakan bahwa hardware komputer haruslah sederhana dan tidak perlu dilakukan pengkabelan dengan menggunakan tangan untuk setiap program. Sebagai gantinya, instruksi-instruksi yang lebih kompleks harus digunakan untuk mengendalikan perangkat keras yang lebih sederhana, hal ini memungkinkan komputer diprogram ulang dengan cepat. Konsep yang kedua yang juga sangat penting untuk pengembangan bahasa pemrograman. Von Neumann menyebutnya sebagai “conditional control transfer” (www.softlord.com). Ide ini berkembang menjadi bentuk subrutin, atau blok kode yang kecil yang dapat panggil berdasarkan aturan tertentu, dari pada suatu himpunan tunggal urutan kronologis yang harus dijalankan oleh komputer. Bagian kedua dari ide tersebut menyatakan bahwa kode komputer harus dapat bercabang berdasarkan pernyataan logika seperti IF (ekspresi) THEN, dan perulangan seperti FOR statement. “Conditional control transfer” mengembangkan ide adanya “libraries,” yang mana merupakan blok kode yang dapat digunakan berulang kali. Pada 1949, setelah beberapa tahun Von Neumann bekerja, bahasa Short Code dilahirkan (www.byte.com), yang merupakan bahasa komputer yang pertama untuk peralatan elektronik yang membutuhkan programmer untuk mengubah perintah kedalam 0 dan 1 dengan tangan. Pada 1957, bahasa khusus yang pertama muncul dalam bentuk FORTRAN yang merupakan singkatan dari sistem FORmula TRANslating. Bahasa ini dirancang pada IBM untuk perhitungan scientific. Komponen-komponennya sangat sederhana, dan menyediakan bagi programmer akses tingkat rendah kedalam komputer. Sampai saat ini, bahasa ini terbatas pada hanya terdiri dari perintah IF, DO, dan GOTO, tetapi pada waktu itu, perintah-perintah ini merupakan lompatan besar kearah depan. Type data dasar yang digunakan sampai sekarang ini dimulai dari FORTRAN, hal ini meliputi variabel logika (TRUE atau FALSE), dan bilangan integer, real, serta double-precision. FORTRAN sangat baik dalam menangani angka-angka, tetapi tidak terlalu baik untuk menangani proses input dan output, yang mana merupakan hal yang penting pada komputasi bisnis. Komputasi bisnis mulai tinggal landas pada 1959, dengan dikembangkannya COBOL, yang dirancang dari awal sebagai bahasa untuk para pebisnis. Type data yang ada hanya berupa number dan text string. Hal tersebut juga memungkinkan pengelompokan menjadi array dan record, sehingga data di telusuri dan diorganisasikan dengan lebih baik. Sesuatu hal yang menarik untuk dicatat bahwa suatu program COBOL dibuat menyerupai suatu essay, dengan empat atau lima bagian utama yang membentuk keseluruhan yang tertata dengan baik. Perintah-perintah COBOL sangat menyerupai tata bahasa English, sehingga membuatnya agak mudah dipelajari. Semua ciri-ciri ini dikembangkan agar mudah dipelajari dan mudah diterapkan pada dunia bisnis. Pada 1958, John McCarthy di MIT membuat bahasa LISt Processing (atau LISP), yang dirancang untuk riset Artificial Intelligence (AI). Karena dirancang untuk fungsi spesialisasi yang tinggi, maka tata cara penulisannya jaring kelihatan sebelum ataupun sesudahnya. Sesuatu perbedaan yang paling nyata dari bahasa ini dengan bahasa lain adalah dasar dan type satu-satunya adalah list, yang ditandai dengan suatu urutan item yang dicakup dengan tanda kurung. Program LISP sendirinya dibuat sebagai suatu himpunan dari list, sehingga LISP memiliki kemampuan yang khusus untuk memodifikasi dirinya, dan juga dapat berkembang sendiri. Tata cara penulisan LISP dikenal sebagai “Cambridge Polish,” sebagaimana dia sangat berbeda dari logika Boolean (Wexelblat, 177) : x V y – Cambridge Polish, what was used to describe the LISP program OR(x,y) – parenthesized prefix notation, what was used in the LISP program x OR y – standard Boolean logic LISP masih digunakan sampai sekarang karena spesialiasi yang tinggi dari sifat abstraknya. Bahasa Algol dibuat oleh suatu komite untuk pemakaian scientific pada tahun 1958. Kontribusi utamanya adalah merupakan akar dari tiga bahasa selanjutnya yaitu Pascal, C, C++, dan Java. Dia juga merupakan bahasa pertama dengan suatu tata bahasa formal, yang dikenal sebagai Backus-Naar Form atau BNF (McGraw-Hill Encyclopedia of Science and Technology, 454). Pada Algol telah diterapkan konsep-konsep baru, seperti rekursif pada function, bahasa berikutnya Algol 68, menjadi bahasa yang membosankan dan sulit digunakan (www.byte.com). Hal ini mengarah kepada adopsi terhadap bahasa yang lebih kecil dan kompak seperti Pascal. Pascal dimulai pada tahun 1968 oleh Niklaus Wirth. Tujuan pengembangannya adalah untuk kebutuhan pengajaran. Pada awalnya bahasa ini dikembangkan bukan dengan harapan adopsi pemakaian secara luas. Prinsipnya mereka mengembangkannya untuk alat pengajaran pemrograman yang baik seperti kemampuan debug dan perbaikan sistem dan dukungan kepada mikroprosesor komputer yang digunakan pada institusi pendidikan. Pascal dirancang dengan pendekatan yang sangat teratur (terstruktur), dia mengkombinasikan kemampuan yang terbaik dari bahasa-bahasa saat itu, COBOL, FORTRAN, dan ALGOL. Dalam pengerjaannya banyak perintah-perintah yang tidak teratur dan aneh dihilangkan, sehingga sangat menarik bagi pemakai (Bergin, 100-101). Kombinasi dari kemampuan input/output dan kemampuan matematika yang solid, membuatnya menjadi bahasa yang sukses besar. Pascal juga mengembangkan tipe data “pointer”, suatu fasilitas yang sangat bermanfaat pada bahasa yang mengimplementasikannya. Dia juga menambahkan perintah CASE, yang mana memperbolehkan perintah bercabang seperti suatu pohon pada suatu aturan: CASE expression OF possible-expression-value-1: statements to execute… possible-expression-value-2: statements to execute… END Pascal juga mengembangkan variabel dinamis, dimana variabel dapat dibuat ketika suatu program sedang berjalan, melalui perintah NEW dan DISPOSE. Tetapi Pascal tidak mengimplementasikan suatu array dinamis, atau kelompok dari variabel-variabel, yang mana sangat dibutuhkan, dan merupakan salah satu penyebab kekalahannya (Bergin, 101-102). Wirth kemudian membuat lanjutan dari Pascal, Modula-2, tetapi pada saat itu muncul C yang dengan cepat menjadi mengeser posisi Pascal. C dikembangkan pada tahun 1972 oleh Dennis Richie ketika sedang bekerja pada Bell Labs di New Jersey. Transisi pemakaian dari bahasa umum yang pertama ke bahasa umum sampai hari ini yaitu transisi antara Pascal dan C, C merupakan perkembangan dari B dan BCPL, tetapi agak menyerupai Pascal. Semua fasilitas di Pascal, termasuk perintah CASE tersedia di C. C menggunakan pointer secara luas dan dibangun untuk kecepatan dengan kelemahannya yaitu menjadi sulit untuk dibaca. Tetapi karena dia menghilangkan semua kelemahan yang terdapat di Pascal, sehingga dengan cepat mengambil alih posisi Pascal. Ritchie mengembangan C untuk sistem Unix yang baru pada saat yang bersamaan. Oleh karena ini, C dan Unix saling berkaitan. Unix memberikan C beberapa fasilitas besar seperti variabel dinamis, multitasking, penanganan interrupt, forking, dan strong low-level,input-output. Oleh karena itu, C sangat sering digunakan untuk pemrograman sistem operasi seperti Unix, Windows, MacOS, dan Linux. Pada akhir tahun 1970 dan awal 1980, suatu metode pemrograman yang baru telah dikembangkan. Ha tersebut dikenal sebagai Object Oriented Programming, atau OOP. Object merupakan suatu potongan dari data yang dapat dipaket dan dimanipulasi oleh programmer. Bjarne Stroustroup menyukai metode ini dan mengembangkan lanjutan dari C yang dikenal sebagai “C With Classes.” Kemampuan lanjutan ini dikembangkan menjadi bahasa C++ yang diluncurkan pada tahun 1983. C++ dirancang untuk mengorganisasikan kemampuan dasar dari C dengan OOP, dengan tetap mempertahankan kecepatan dari C dan dapat dijalankan pada komputer yang tipe berlainan. C++ sering kali digunakan dalam simulasi, seperti game. C++ menyediakan cara yang baik untuk memanipulasi ratusan instance dari manusia didalan elevator, atau pasukan yang diisi dengan tipe prajurit yang berbeda. Bahasa ini menjadi pilihan pada mata kuliah AP Computer Science sampai hari ini. Pada awal 1990′s, interaktif TV adalah teknologi masa depan. Sun Microsystems memutuskan bahwa interaktif TV membutuhkan suatu hal yang khusus, yaitu bahasa portable (bahasa yang dapat berjalan pada banyak jenis mesin yang berbeda). Bahasa ini dikenal sebagai Java. Pada tahun 1994, team proyek Java mengubah fokus mereka ke web, yang mana berubah menjadi sesuatu yang menjanjikan setelah interactive TV gagal. Pada tahun berikutnya, Netscape menyetujui pemakaian Java pada internet browser mereka, Navigator. Sampai titik ini, Java menjadi bahasa masa depan dan beberapa perusahaan mengumumkan aplikasi harus ditulis dalam Java. Java mempunyai tujuan yang besar dan merupakan bahasa yang baik menurut buku text, pada kenyataanya “bahasa tersebut tidak”. Dia memiliki masalah yang serius dalam optimasi, dengan arti program yang ditulis dengannya berjalan dengan lambat. Dan Sun telah membuat cacat penerimaan terhadap Java dengan pertikaian politis dengan Microsoft. Tetapi Java telah dinyatakan sebagai bahasa untuk instruksi masa depan dan benar-benar menerapkan object-oriented dan teknik tingkat tinggi seperti kode yang portable dan garbage collection. Visual Basic sering diajari sebagai bahasa pemrograman dasar yang mengacu pada bahasa BASIC yang dikembangkan pada tahun 1964 oleh John Kemeny dan Thomas Kurtz. BASIC adalah bahasa yang sangat terbatas dan dirancang untuk orang yang bukan computer science. Perintah-perintah dijalankan secara berurutan, tetapi kendali program dapat berubah berdasarkan IF..THEN, dan GOSUB yang mana menjalankan suatu blok kode dan kembali ketitik semula didalam alur program. Microsoft telah mengembangkan BASIC ke dalam produk Visual Basic (VB). Jantung dari VB adalah form, atau suatu window kosos dimana anda dapat drag dan drop komponen seperti menu, gambarm dan slider bars. Item-item ini dikenal sebagai “widgets.” Widget memiliki properti (seperti warna) dan events (seperti klik dan double klik) dan menjadi pusat dari pengembangan antarmuka dengan pemakai diberbagai bahasa program dewasa ini. VB merupakan program yang banyak digunakan untuk membuat interface sederhana ke produk Microsoft lainnya seperti Excel dan Access tanpa membaca banyak kode, dengannya dapat dimungkinkan untuk dibuat aplikasi yang lengkap. Perl telah sering digambarkan sebagai “duct tape of the Internet,” karena sering digunakan sebagai engine untuk interface web atau pada script untuk memodifikasi file konfigurasi. Dia memiliki fungsi text matching yang sangat baik sehingga membuatnya menjadi hal yang ideal untuk pekerjaan tersebut. Perl dikembangkan oleh Larry Wall pada 1987 karena fasilitas pada sed dan awk pada Unix (digunakan untuk manipulasi text) tidak mencukupi kebutuhannya. Tergantung kepada siapa anda bertanya, Perl adalah singkatan dari Practical Extraction and Reporting Language atau Pathologically Eclectic Rubbish Lister. Bahasa pemrograman telah berkembangan dari masa kemasa dan tetap dikembangkan dimasa depan. Mereka dimulai dari suatu daftar langkap pengkabelan agar komputer menjalankan tugas tertentu. Langkah-langkah ini berkembang menjadi software dan memiliki kemampuan yang lebih baik. Bahasa umum yang pertama menekankan pada kesederhanaan dan untuk satu tujuan saja, sedangkan bahasa dewasa ini terbagi atas bagaimana mereka diprogram, sehingga mereka dapat digunakan untuk semua tujuan. Dan mungkin bahasa yang akan datang lebih natural dengan penemuan pada quantum dan komputer-komputer biologis. Sumber : Indoprog ‘Algoritma & Pemrograman’ oleh Hendra, S.T.

Bahasa Pemrogaman

Bahasa pemrograman, atau sering diistilahkan juga dengan bahasa komputer, adalah teknik komando/instruksi standar untuk memerintah komputer. Bahasa pemrograman ini merupakan suatu himpunan dari aturan sintaks dan semantik yang dipakai untuk mendefinisikan program komputer. Bahasa ini memungkinkan seorang programmer dapat menentukan secara persis data mana yang akan diolah oleh komputer, bagaimana data ini akan disimpan/diteruskan, dan jenis langkah apa secara persis yang akan diambil dalam berbagai situasi.

Menurut tingkat kedekatannya dengan mesin komputer, bahasa pemrograman terdiri dari:

  1. Bahasa Mesin, yaitu memberikan perintah kepada komputer dengan memakai kode bahasa biner, contohnya 01100101100110
  2. Bahasa Tingkat Rendah, atau dikenal dengan istilah bahasa rakitan (bah.Inggris Assembly), yaitu memberikan perintah kepada komputer dengan memakai kode-kode singkat (kode mnemonic), contohnya MOV, SUB, CMP, JMP, JGE, JL, LOOP, dsb.
  3. Bahasa Tingkat Menengah, yaitu bahasa komputer yang memakai campuran instruksi dalam kata-kata bahasa manusia (lihat contoh Bahasa Tingkat Tinggi di bawah) dan instruksi yang bersifat simbolik, contohnya {, }, ?, <<, >>, &&, ||, dsb.
  4. Bahasa Tingkat Tinggi, yaitu bahasa komputer yang memakai instruksi berasal dari unsur kata-kata bahasa manusia, contohnya begin, end, if, for, while, and, or, dsb.

Sebagian besar bahasa pemrograman digolongkan sebagai Bahasa Tingkat Tinggi, hanya bahasa C yang digolongkan sebagai Bahasa Tingkat Menengah dan Assembly yang merupakan Bahasa Tingkat Rendah.

Jumat, 15 Oktober 2010

•TCP_IP dan Sekuriti Jaringan

KHOIRUL ANAM
TCP/IP dan Praktek
Sekuriti Jaringan
Bagian 1: Port Scanning dan Blocking
Pendahuluan
Jaringan komputer LAN pada suatu organisasi yang membentuk intranet, seperti pada
gambar di bawah, memiliki 1 buah atau lebih server.
Server-server saling berkomunikasi menggunakan suatu aturan yang di sebut protokol.
Gambar 1 Jaringan Komputer (Intranet)
Lisensi Dokumen:
Copyright © 2003 IlmuKomputer.Com
Seluruh dokumen di IlmuKomputer.Com dapat digunakan, dimodifikasi dan
disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat
tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang
disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang,
kecuali mendapatkan ijin terlebih dahulu dari IlmuKomputer.Com.
Kuliah Umum IlmuKomputer.Com
Copyright © 2003 IlmuKomputer.Com
2
Protokol komunikasi di Interenet di kenal dengan nama TCP/IP. TCP/IP bekerja secara
bertingkat atau memiliki layer-layer komunikasi. Protokol TCP/IP merupakan sekumpulan
protokol dengan 2 protokol utamanya adalah TCP dan IP.
Analogi komunikasi di atas seperti 2 orang kepala negara yang saling berkomunikasi
dengan surat. Permintaan aplikasi, misalnya http, sebagai kepala negara A, yang di tujukan
ke server aplikasi (web server), sebagai kepala negara B. Surat dari kepalan negara A
(dengan bahasa A) di terjemahkan dulu ke bahasa Inggris oleh seorang penterjemah,
kemudian di ketik dan di edit oleh sekertaris. Lalu dikirim melalui seorang kurir (jalur
transmisi). Di sisi penerima (negara B), surat tadi akan masuk ke sekertaris dan di proses
adminitrasinya, kemudian di terjemahkan ke bahasa B. Kedua kepala negara tidak seolaholah
saling berkomunikasi (komunikasi peer to peer) dengan bahasanya masing-masing.
Aplikasi
(telnet, ftp, http)
Transport (TCP)
Internet (IP)
Layer Fisik
(Ethernet / label)
Aplikasi
(telnet, ftp, http)
TCP
IP
Layer Fisik
(Ethernet / label
Jalur Transmisi
Komunikasi
Peer to Peer
Port
Scanning Port
Komunikasi antara layer aplikasi dengan TCP menggunakan port. Setiap port di
identifikasikan dengan suatu aplikasi. Gambar 3 memperlihatkan nomor port dan aplikasi
yang bersesuaian. Misalnya ftp biasa menggunakan port 21, ssh (Secure Shell)
menggunakan port 22, dan seterusnya.
Pekerjaan yang di lakukan oleh protokol TCP/IP dapat digambarkan sebagai berikut.
Sebuah web server misalnya http://www.company.com/ menangani permintaan dari sebuah
browser misalnya Internet Explorer. File index.htm, hendak di kirim ke browser. Di TCP,
file index.htm, akan di pecah-pecah menjadi paket yang lebih kecil dan di beri tanda urutan
paketnya, agar penerima dapat menggabungkan paket tersebut kembali. Tanda urutan paket
disimpan dalam header TCP. Kemudian pada layer IP, di buat header lagi yang berisi
alamat IP asal dan port asal, serta alamat IP dan port tujuan. Dari penjelasan ini dapat
diambil kesimpulan bahwa layer transport dan layer internet, hanya mengolah header,
pengolah data atau menjalankan program (data yang dimaksud dapat berupa data teks,
gambar ataupun sebuah script/program) di lakukan di tingkat aplikasi. Dan port menjadi
penting, karena port merupakan jalan masuk ke aplikasi tertentu. Port pada suatu server
dapat di buka atau di tutup seperlunya sesuai dengan aplikasi yang dilayani server tersebut,
atau jenis komunikasi yang diperbolehkan melewati server tersebut.

Pada percobaan pertama berkaitan dengan keamanan jaringan ini, akan di cobakan 2 hal.
Dari sisi seseorang yang akan mencoba membobol keamanan suatu server (hacker) yaitu
dengan melakukan pendeteksian port, dan dari sisi orang yang akan mengamankan
komputernya dengan memblok port yang tidak diperlukan. Pendeteksi port yang digunakan
adalah Freeware (tersedia gratis), SuperScan yang dibuat oleh Robin Keir
(http://members.home.com/rkeir/software.html).
Gambar 4 memperlihatkan SuperScan yang dijalankan untuk mendeteksi IP (host) aktif
pada range tertentu. Sementara gambar 5 memeriksa port-port yang terbuka pada suatu
server.
Memblok IP
Untuk memblok IP pada PC Windows
dapat digunakan ZoneAlarm
(http://www.zonealarm.com) lisensi gratis
untuk pemakaian gratis.
Gambar 6 memper-lihatkan pemberitahuan
(alert) ZoneAlarm dari usaha memeriksa
IP (ping) oleh program scanning port
SuperScan. Dan gambar 7 memperlihatkan
SuperScan yang tidak mendapatkan apaapa
dari usahanya mendeteksi port yang
terbuka.

Untuk mengkonfigurasi ZoneAlarm, pertama kali adalah membedakan LAN dan Internet.
Gambar 8 memperlihatkan konfigurasi IP lokal.
Gambar 9 memperlihatkan policy baik terhadap LAN (lokal) maupun Internet. Terdapat 3
macam policy : low, medium dan high.

Port Scanning Lanjut (Advanced Mode)
Pada percobaan di atas, port scanning di atas menggunakan jenis scan TCP yang terhubung
(TCP connect scan). Selan TCP connect scan masih ada scan jenis lain, seperti yang dapat
dilihat pada tabel 1.
Tabel 1. Jenis scan port
Jenis Koneksi
TCP Connect scan SYN → SYN/ACK → ACK
TCP SYN scan SYN → SYN/ACK → RST/ACK (terbuka)
SYN → SYN/RST → RST/ACK (tertutup)
TCP FIN scan FIN → RST (Closed port)
TCP Xmas Tress scan FIN / URG / PUSH → RST (Closed port)
TCP null scan Turn off all flag → RST (Closed port)
TCP ACK scan Firewall rule set (ACK bit set)
TCP Windows scan TCP windows size reported (di AIX, FreeBSD)
TCP RPC scan Detect and indentify RPC (di UNIX)
UDP scan UDP → tidak ada respon (kemungkinan terbuka)
UDP → ICMP port unreachable (di tutup)
Pada TCP connect scan client akan mengirim sinyal SYN, kemudian akan di balas oleh
server dengan sinyal SYN/ACK, untuk mengakhiri hubungan client mengirim ACK sebagai
konfirmasi. Cara ini di sebut 3-way handshake dari TCP. Server akan mencatat (terdeteksi
oleh ZoneAlarm), bila ACK dari client diterima oleh server pada hubungan yang penuh.
Sebenarnya saat client mengirim SYN, server akan menjawab dengan 2 kemungkinan
SYN/ACK bila port terbuka dan RST/ACK bila port tertutup. Dengan informasi ini, client

telah dapat menentukan status port, apapun hasilnya bila client mengirim sinyal RST (bukan
ACK), maka aktifitas client tidak akan tercatat (tidak dapat terdeteksi). Cara ini dikenal
dengan hubungan half-open scanning atau mode stealth. Tool yang dapat melakukan
scanning ini adalah nmap yang bekerja pada sistem operasi UNIX (gambar 10).
Tingkah laku respon server sewaktu scanning dari client berbeda untuk setiap sistem operasi.
Tabel 2 memperlihatkan sinyal dan respon server yang membuatnya dapat dikenali jenis
sistem operasinya. Perlu di catat, parameter pada server dengan mudah diubah, sehingga
prediksi jenis sistem operasi dengan cara di atas bisa tidak tepat.

Jenis Probe Respon Server Sistem Operasi
FIN probe FIN/ACK Windows NT
Bogus Flag probe
(undefined flag)
Flag set Linux
ISN sampling
(Initial Sequence Number)
Asumsi OS
“Don’t fragment bit”
monitoring
Set
“Don’t fragment bit”
Some OS
TCP initial window size Asumsi OS
ACK value Send back sequence number
- number sent
- number sent - 1
ICMP error message
Quenching
UDP scan pada selang waktu
tertentu :
Jumlah pesan unreachable
Asumsi OS
ICMP message quoting Asumsi OS
ICMP error message –
Echoing integrity
Alter the IP headers Asumsi OS
TOS (Type of Service) Pesan “ICMP port unreachable” Banyak
menggunakan 0
Fragmentation handling Noting how probe packets
are reassembled
Asumsi OS
TCP options Multiple options sets Asumsi OS

Bagian 2: Sniffer dan Enkripsi
Pendahuluan
Ide internet berawal saat Amerika Serikat melakukan perang dingin dengan Uni Sovyet.
Sebuah bom atom mampu menghancurkan suatu area yang luas. Ide Internet sangat
sederhana, yaitu bagaimana komputer dapat berkomunikasi tanpa melewati suatu jalur yang
permanen (dedeicated), sehingga bila pusat komando dihancurkan, koordinasi (komunikasi)
dapat dilakukan di mana saja. Implikasinya adalah setiap komputer yang terhubung ke
internet, datanya akan melewati banyak server (maksimal 30 hops), sebelum mencapai
tujuannya. Setiap orang yang berada pada jalur data tersebut, dimungkinkan untuk membaca
data tersebut. Pembacaan data yang bukan tujuannya ini dikenal sebagai sniff.
Sniffer
Program Sniffer yang digunakan adalah Network Monitor dari Distinct Corporation
(http://www.distinct .com ). Program ini merupakan versi trial yang berumur 10 hari. Di
dalam komunikasi TCP/IP atau yang menggunakan model komunikasi 7 layer OSI, sebuah
komputer akan mengirim data dengan alamat komputer tujuan. Pada sebuah LAN dengan
topologi bus atau star dengan menggunakan hub yang tidak dapat melakukan switch (hub
tersebut melakukan broadcast), setiap komputer dalam jaringan tersebut menerima data
tersebut. Standarnya hanya komputer dengan alamat yang bersesuaian dengan alamat
tujuanlah yang akan mengambil data tersebut. Tetapi pada saat snif, komputer dengan
alamat bukan alamat tujuan tetap mengambil data tersebut.
host A sniffer host B
Sebelum melakukan sniff, pertama kali adalah membuka adapter (ethernet card), agar
mengambil semua data yang melewatinya, sekalipun bukan sebagai alamat tujuan. (Gambar
2)
Biasanya data yang melewati Adapter akan sangat banyak, untuk mempermudah encarian,
unakan fasilitas filter seperti terlihat pada gambar 3.
Gambar 3 : Sniffer : Filter
Gambar 2 Sniffer : Membuka Adapter
Kuliah Umum IlmuKomputer.Com
Copyright © 2003 IlmuKomputer.Com
11
Hasil dari sniff pada protokol POP (Post Office Propotocol), dapat dilihat pada gambar 4.
Gambar 4 : Sniffer : Data Result
Kuliah Umum IlmuKomputer.Com
Copyright © 2003 IlmuKomputer.Com
12
Pengacakan Data
Agar data tidak dapat disadap oleh orang lain, maka data yang hendak dikirim di acak
(enkripsi) terlebih dahulu. Mekanisme Enkripsi yang akan digunakan pada percobaan ini
adalah mekanisme yang menggunakan kunci publik. Pada mekanisme kunci publik, terdapat
2 macam kunci yaitu kunci privat dan kunci publik. Kunci publik di hasilkan (generate)
oleh kunci privat milik kita. Untuk selanjutnya kunci publik di sebar ke setiap orang yang
akan berkomunikasi dengan kita. Di internet terdapat beberapa server kunci publik (gambar
5), yang menyimpan kunci publik dari orang yang terdaftar di server tersebut. Publik key
berfungsi untuk meng-enkripsi, dan data hasil enkripsi ini hanya bisa dibuka oleh kunci
privat yang menghasilkan kunci publik peng-enkripsi tadi. (Gambar 6). Cara ini juga
merupakan Sistem Kriptografi Asimetris. (Enkripsi dan dekripsi menggunakan kunci yang
berbeda).

Program yang akan digunakan pada percobaan ini adalah PGP 6.0.2 versi freeware, buatan
Network Associates, Inc. (http://www.nai.com).
Pembuatan Kunci Publik
Langkah pertama sebelum dapat melakukan komunikasi dengan data yang ter-acak,
adalah membuat kunci publik.
Allie Bob
Kunci
Privat
Allie
Kunci
Publik
Allie
Kirim Kunci
Publik
Allie
Data Bob
Belum
dienkripsi
(plain
text)
Enkripsi
Data Bob
Terenkripsi
(Chipertext)
Dekripsi
Kirim
Data Bob
a. Inisialisasi

e. Kunci Privat
b. alamat e-mail
c. Panjang Kunci
d. Masa Berlaku Kunci
f.
Pemilihan
Bilangan
Acak
g. Kunci
Publik
telah
dibuat
h. Pengiriman Kunci
Publik ke server
i. Selesai
Untuk pengatur kunci gunakan tool PGPKeys (gambar 8) dan PGPTools (gambar 9) untuk
meng-enkripsi serta men-dekripsi suatu file.
Enkripsi File
Enkripsi dapat dilakukan dengan meng-click kanan file yang akan diacak pada
Windows Explorer (gambar 10).
Dekripsi File
Kebalikan dari enkripsi adalah dekripsi (gambar 12).
Gambar 12 Dekripsi File
Kuliah Umum IlmuKomputer.Com
Copyright © 2003 IlmuKomputer.Com
17
Untuk mendekripsi file diperlukan kunci privat (gambar 13)
Gambar 13 Kunci Privat Untuk Dekripsi
Perbandingan file asli dengan file yang telah di dekripsi (gambar 14).
Gambar 14 Perbandingan File Setelah Didekripsi

0 komentar:

Posting Komentar

Twitter Delicious Facebook Digg Stumbleupon Favorites More