4
BAB 2
LANDASAN TEORI
2.1 Internet
2.1.1. Latar Belakang
Internet pertama kali dikembangkan tahun 1969 oleh Departemen Pertahanan Amerika Serikat dengan nama ARPAnet (US Defense Advanced Research Projects Agency). Di awal 1980-an, ARPAnet terpecah menjadi dua jaringan, yaitu ARPAnet dan Milnet (sebuah jaringan militer), akan tetapi keduanya mempunyai hubungan sehingga komunikasi antar jaringan tetap dapat dilakukan. Pada mulanya jaringan interkoneksi ini disebut DARPA Internet, tapi lama-kelamaan disebut sebagai Internet. Sesudahnya, Internet mulai digunakan untuk kepentingan akademis dengan menghubungkan beberapa perguruan tinggi, masing-masing UCLA, University of California at Santa Barbara, University of Utah, dan Stanford Research Institude. Ini disusul dengan dibukanya layanan Usenet dan Bitnet yang memungkinkan Internet diakses melalui sarana komputer pribadi. Berikutnya, protokol standar TCP/IP mulai diperkenalkan pada tahun 1982, disusul dengan penggunaan sistem DNS (Domain Name Service) pada 1984. Indonesia baru bisa menikmati layanan Internet komersial pada sekitar tahun 1994. Sebelumnya beberapa perguruan tinggi seperti Universitas Indonesia telah terlebih dahulu tersambung dengan jaringan Internet melalui gateway yang menghubungkan universitas dengan network di luar negeri.
2.1.2 Pengertian Internet
Internet (interconnected-networking) adalah suatu sistem jaringan komputer yang terkoneksi secara global serta menggunakan TCP/IP sebagai protokol standard untuk melayani jutaan penggunanya di seluruh dunia. Internet menghubungkan situs
Universitas Sumatera Utara
5
akademik, pemerintahan, komersil, organisasi, maupun perorangan. Layanan Internet meliputi komunikasi langsung (email, chat), diskusi (milis), sumber daya informasi yang terdistribusi (World Wide Web), remote login dan lalu lintas data (telnet, FTP), dan aneka layanan lainnya. Protokol standar pada Internet dikenal sebagai TCP/IP (Transmission Control Protocol/Internet Protocol). Protokol ini memiliki kemampuan untuk bekerja di atas segala jenis komputer, tanpa terpengaruh oleh perbedaan perangkat keras maupun sistem operasi yang digunakan.
2.1.3 Aplikasi Internet
Internet menyediakan beragam aplikasi yang dapat digunakan untuk berbagai keperluan. Setiap aplikasi berjalan di atas sebuah protokol tertentu. Istilah “protokol” di Internet mengacu pada satu set aturan yang mengatur bagaimana sebuah aplikasi berkomunikasi dalam suatu jaringan. Sedangkan software aplikasi yang berjalan di atas sebuah protokol disebut aplikasi client. Beberapa aplikasi yang sering dimanfaatkan oleh pengguna Internet antara lain:
2.1.3.1 WWW (World Wide Web)
Secara teknis, web adalah sebuah sistem dimana informasi dalam bentuk teks, gambar, suara, dan lain-lain yang tersimpan dalam sebuah Internet webserver dipresentasikan dalam bentuk hypertext. Informasi di web dalam bentuk teks umumnya ditulis dalam format HTML (Hypertex Markup Language). Informasi lainnya disajikan dalam bentuk grafis (dalam format GIF, JPG, PNG), suara (dalam format AU, WAV), dan objek multimedia lainnya (seperti MIDI, Shockwave, Quicktime Movie). Web dapat diakses oleh perangkat lunak web client yang secara populer disebut sebagai browser. Browser membaca halaman-halaman web yang tersimpan dalam webserver melalui protokol HTTP (Hypertext Transfer Protocol). Beberapa browser yang banyak digunakan secara luas diantaranya Microsoft Internet Explore, Mozilla Firefox, Opera dan Safari.
Universitas Sumatera Utara
6
2.1.3.2 Email (Electronic Mail)
Email adalah aplikasi yang memungkinkan para pengguna Internet untuk saling berkirim pesan melalui alamat elektronik di Internet. Para pengguna email memiliki sebuah mailbox (kotak surat) elektronik yang tersimpan dalam suatu mailserver. Suatu mailbox memiliki sebuah alamat sebagai pengenal agar dapat berhubungan dengan mailbox lainnya, baik dalam bentuk penerimaan maupun pengiriman pesan. Pesan yang dikirim melalui email tidak hanya berupa teks tapi juga bisa disisipkan suatu berkas melalui attachment (lampiran).
2.1.3.3 File Transfer
Fasilitas ini memungkinkan para pengguna Internet untuk melakukan pengiriman (upload) atau menyalin (download) sebuah file antara komputer lokal dengan komputer lain yang terhubung dalam jaringan Internet. Protokol standar yang digunakan untuk keperluan ini disebut sebagai File Transfer Protocol (FTP). FTP umumnya dimanfaatkan sebagai sarana pendukung untuk kepentingan pertukaran maupun penyebarluasan sebuah file melalui jaringan Internet. FTP juga dimanfaatkan untuk melakukan proses upload suatu halaman web ke webserver agar dapat diakses oleh pengguna Internet lainnya.
Gambar 2.1 Proses download data dari Internet
Universitas Sumatera Utara
7
Secara teknis, aplikasi FTP disebut sebagai FTP client yang umumnya dimanfaatkan untuk transaksi FTP yang bersifat dua arah (active FTP). Modus ini memungkinkan pengguna untuk melakukan proses upload maupun proses download. Untuk mencegah penyalahgunaan yang dapat berakibat fatal bagi sebuah server FTP, maka pengguna FTP modus active harus memiliki hak akses berupa login name dan password sebagai kunci memasuki sebuah sistem FTP server. Untuk modus passive, selama memang tidak ada restriksi dari pengelola server, umumnya dapat dilakukan oleh semua pengguna dengan modus anonymous login. Kegiatan mendownload software dari Internet misalnya, juga dapat digolongkan sebagai passive FTP.
2.2 Data, Informasi dan Berkas Komputer
2.2.1 Data dan Informasi Data adalah sesuatu yang belum mempunyai arti bagi penerimanya dan masih memerlukan adanya suatu pengolahan. Data bisa berwujud suatu keadaan, gambar, suara, huruf, angka, matematika, bahasa ataupun simbol-simbol lainnya yang bisa digunakan sebagai bahan untuk melihat lingkungan, objek, kejadian atau suatu konsep. Informasi merupakan hasil pengolahan dari sebuah model, formasi, organisasi, ataupun suatu perubahan bentuk dari data yang memiliki nilai tertentu, dan bisa digunakan untuk menambah pengetahuan bagi yang menerimanya. Dalam hal ini, data bisa dianggap sebagai objek dan informasi adalah suatu subjek yang bermanfaat bagi penerimanya. Informasi juga bisa disebut sebagai hasil pengolahan ataupun pemrosesan data. Penyajian data yang diolah oleh komputer dapat dibagi dalam beberapa tingkatan yaitu: a) Byte/karakter Merupakan satuan data paling kecil. Karakter bisa berbentuk huruf (A s/d Z, atau a s/d z), berbentuk angka (0 s/d 9), ataupun berbentuk tanda baca lainnya. b) Field Merupakan kumpulan dari karakter-karakter yang membentuk suatu arti
Universitas Sumatera Utara
8
tertentu; misalnya, Field untuk Nomor Mahasiswa, Field untuk Nama Mahasiswa, Field untuk Mata Pelajaran dan lainnya. c) Record Merupakan kumpulan dari field-field yang membentuk sebuah arti. Misalkan kumpulan field NIRM, NAMA MATERI PENDIDIKAN pada akhirnya membentuk sebuah record. d) File (berkas) File merupakan kumpulan dari record-record.
2.2.2 Berkas Komputer Berkas komputer atau berkas (file) adalah entitas dari data yang disimpan di dalam sistem berkas yang dapat diakses dan diatur oleh pengguna. Sebuah berkas memiliki nama yang unik yang disimpan di dalam suatu direktori. Sistem berkas akan memberikan sebuah nama terhadap sebuah berkas agar dapat dikelola dengan mudah. Meski oleh sistem berkas penamaan dilakukan dengan menggunakan angka-angka biner, sistem operasi dapat menerjemahkan angka-angka biner tersebut menjadi karakter yang mudah dipahami. Ukuran sebuah berkas umumnya direpresentasikan dalam satuan byte (bita). Jika bilangan terlalu besar untuk direpresentasikan dalam satuan byte, maka dapat menggunakan satuan KiB (Kibibyte, yang berarti 1.024 byte), MiB (Mebibyte, yang berarti 1.048.576 byte), GiB (Gibibyte, yang berarti 1.073.741.824 byte), dan TiB (Tebibyte, yang berarti 1.099.511.627.776 byte), selain tentunya menggunakan satuan KB (kilobyte, yang berarti 1.000 byte), MB (Megabyte, yang berarti 1.000.000 byte), GB (Gigabyte, yang berarti 1.000.000.000 byte) dan TB (Terabyte, yang berarti 1.000.000.000.000 byte). Dalam mekanisme penyimpanan berkas, komputer akan menyimpan berkas dalam dua jenis ukuran: ukuran fisik dan ukuran logis. Ukuran fisik berkas merujuk kepada ukuran aktual dari berkas, yakni berapa banyak byte yang terdapat di dalam berkas. Sementara ukuran logis merujuk kepada jumlah ruangan yang dialokasikan oleh sistem berkas untuk menempatkan berkas yang bersangkutan di dalam media penyimpanan. Ukuran fisik umumnya lebih besar dibandingkan dengan ukuran berkas
Universitas Sumatera Utara
9
logisnya. Sebagai contoh, untuk mengalokasikan berkas berukuran logis 5125 byte, dalam sebuah media penyimpanan yang diformat dengan sistem berkas yang menggunakan ukuran unit alokasi 4096 byte, komputer akan mengalokasikan dua buah unit alokasi, yang berukuran 4096 dan 4096, sehingga menghabiskan 8192 byte. Meski ukuran logis berkas tersebut 5125 byte, komputer mengalokasikan 8192 byte, membuat 3067 byte tidak digunakan (disebut sebagai wasted space atau slack space).
2.2.3 Tipe-tipe File
Komputer menyimpan file dalam berbagai tipe. Tipe-tipe dari file beranekaragam. Beberapa tipe file yang secara umum banyak digunakan oleh komputer ditunjukkan dalam tabel berikut ini:
Tabel 2.1 Tipe-tipe dari file Komputer
Tipe Data Executable
Ekstensi exe, com, bin
Keterangan Membaca untuk menjalankan bahasa program
Object
Obj, o
Bahasa mesin, tidak terhubung, compiled
Source code (kode sumber) c, cpp, java,
Word processor
Archive
Kode sumber dalam berbagai bahasa
pas, asm
pemrograman
txt, rtf, doc,
Berbagai bentuk format file dalam
ppt, odt, pdf
bentuk teks.
zip, tar, rar,
Beberapa file digabung menjadi satu
iso, 7zip
file, dikompres, memudahkan pengarsipan file dan penyimpanan.
Gambar
Multimedia
jpeg, gif, png,
Berbagai bentuk tipe file dalam bentuk
bmp
gambar.
mpeg, mov,
File biner yang mengandung informasi
rm, mp3
audio atau video.
Universitas Sumatera Utara
10
2.3 Kriptografi
2.3.1 Pengertian Kriptografi
Kriptografi merupakan ilmu yang mempelajari teknik-teknik matematika yang berhubungan dengan aspek keamanan informasi seperti kerahasiaan data, keabsahan data, integritas data, serta autentikasi data. Ada empat tujuan mendasar dari ilmu kriptografi ini yang juga merupakan aspek keamanan informasi yaitu: a. Kerahasiaan, adalah layanan yang digunakan untuk menjaga isi dari informasi dari siapapun kecuali yang memiliki otoritas atau kunci rahasia untuk membuka informasi yang telah disandi. b. Integritas data, adalah berhubungan dengan penjagaan dari perubahan data secara tidak sah. Untuk menjaga integritas data, sistem harus memiliki kemampuan untuk mendeteksi manipulasi data oleh pihak-pihak yang tidak berhak, antara lain penyisipan, penghapusan, dan pensubtitusian data lain ke dalam data yang sebenarnya. c. Autentikasi, adalah berhubungan dengan identifikasi/pengenalan, baik secara kesatuan sistem maupun informasi itu sendiri. Dua pihak yang saling berkomunikasi harus saling memperkenalkan diri. Informasi yang dikirimkan melalui kanal harus diautentikasi keaslian, isi datanya, waktu pengiriman, dan lain-lain. d. Nirpenyangkalan, adalah usaha untuk mencegah terjadinya penyangkalan terhadap
pengiriman/terciptanya
suatu
informasi
oleh
yang
mengirimkan/membuat.
2.3.2 Fungsi Hash
Fungsi hash kriptografi adalah fungsi hash yang memiliki beberapa sifat keamanan tambahan sehingga dapat dipakai untuk tujuan keamanan data. Umumnya digunakan untuk keperluan autentikasi dan integritas data. Fungsi hash adalah fungsi yang secara efisien mengubah string input dengan panjang berhingga menjadi string output dengan panjang tetap yang disebut nilai hash.
Universitas Sumatera Utara
11
Fungsi hash kriptografi memiliki beberapa sifat antara lain sebagai berikut: a. Tahan preimej (Preimage resistant): bila diketahui nilai hash h maka sulit (secara komputasi tidak layak) untuk mendapatkan m dimana h = hash (m). b. Tahan preimej kedua (Second preimage resistant): bila diketahui input m1 maka sulit mencari input m2 (tidak sama dengan m1) yang menyebabkan hash(m1) = hash(m2). c. Tahan tumbukan (Collision-resistant): sulit mencari dua input berbeda m1 dan m2 yang menyebabkan hash(m1) = hash(m2)
2.3.3 Message Digest 5 (MD5)
MD5 di desain oleh Ronald Rives pada tahun 1991 untuk menggantikan hash function sebelumnya MD4 yang berhasil diserang oleh kriptanalis. MD5 ialah fungsi kriptografi yang digunakan secara luas dengan hash value 128-bit. Pada standard Internet, MD5 telah dimanfaatkan secara bermacam-macam pada aplikasi keamanan dan MD5 juga umum digunakan untuk melakukan pengujian integritas sebuah file. Ringkasan MD5 digunakan secara luas dalam dunia perangkat lunak (software) untuk menyediakan jaminan bahwa file yang diambil (download) belum terdapat perubahan. Seorang user dapat membandingkan MD5 sum yang dipublikasikan dengan checksum dari file yang diambil. Dengan asumsi bahwa checksum yang dipublikasikan dapat dipercaya akan keasliannya, seorang user dapat secara yakin bahwa file tersebut adalah file yang sama dengan file yang dirilis oleh para pengembang (developer), jaminan perlindungan dari Trojan Horse dan virus komputer yang ditambahkan pada perangkat lunak. Bagaimanapun juga, seringkali kasus yang terjadi bahwa checksum yang dipublikasikan tidak dapat dipercaya (sebagai contoh, checksum didapat dari channel atau lokasi yang sama dengan tempat mengambil file), dalam hal ini MD5 hanya mampu melakukan error-checking. MD5 akan mengenali file yang di download tidak sempurna, cacat atau tidak lengkap.
Universitas Sumatera Utara
12
2.3.3.1 Algoritma MD5
Algoritma MD5 yang utama beroperasi pada kondisi 128-bit, dibagi menjadi empat word 32-bit, menunjukkan A, B, C dan D. Operasi tersebut diinisialisasi dijaga untuk tetap konstan. Algoritma utama kemudian beroperasi pada masing-masing blok pesan 512-bit, masing-masing blok melakukan pengubahan terhadap kondisi. Pemrosesan blok pesan terdiri atas empat tahap, batasan putaran; tiap putaran membuat 16 operasi serupa berdasar pada fungsi non-linear F, tambahan modular, dan rotasi ke kiri. Pada Gambar 2.2 dapat dilihat satu buah operasi dari MD5 dengan operasi yang dipakai sebagai contoh adalah FF(a, b, c, d, Mi, s, Ki) menunjukkan: a = b + ((a + F(b, c, d) + Mi + Ki) <<< s)
Gambar 2.2 Satu operasi MD5
Bila Mi menggambarkan pesan ke-i dari sub blok (dari 0 sampai 15) dan <<< s menggambarkan bit akan digeser ke kiri sebanyak s bit, maka keempat operasi dari masing-masing ronde adalah: FF(a, b, c, d, Mi, s, Ki) menunjukkan a = b + ((a + F(b, c, d) + Mi + Ki) <<< s) GG(a, b, c, d, Mi, s, Ki) menunjukkan a = b + ((a + G(b, c, d) + Mi + Ki) <<< s) HH(a, b, c, d, Mi, s, Ki) menunjukkan a = b + ((a + H(b, c, d) + Mi + Ki) <<< s) II(a, b, c, d, Mi, s, Ki) menunjukkan a = b + ((a + I(b, c, d) + Mi + Ki) <<< s) Konstanta Ki didapat dari integer 232 abs (sin(i)), dimana i dalam radian.
Universitas Sumatera Utara
13
2.3.3.2 Penggunaan MD5
MD5 digunakan untuk banyak hal yang berkaitan dengan kriptografi dan keamanan. Beberapa penggunaan MD5 yang banyak digunakan antara lain:
a. Verifikasi Integritas File Verifikasi integritas file merupakan suatu langkah pemeriksaan terhadap kebenaran isi dari suatu file, memastikan bahwa file tersebut masih utuh / asli.
Gambar 2.3 Diagram Verifikasi File Dengan MD5
Pada gambar di atas dapat dilihat proses verifikasi integritas file. Pengunggah sebelumnya melakukan generate kode MD5 terhadap file. File beserta kode MD5 yang dihasilkan kemudian diunggah ke server website. Pengunduh kemudian mengunduh file dari website resmi atau website lain yang memuat file tersebut. Pengunduh kemudian melakukan generate MD5 terhadap file yang telah selesai diunduh. Kode MD5 yang dihasilkan kemudian dicocokkan dengan kode MD5 yang terdapat pada website resmi. Jika sama maka file yang diunduh masih utuh (tidak mengalami perubahan).
b. Penyimpanan Password (Storing Password) Penyimpanan password dalam bentuk nilai hash MD5 lebih aman daripada menyimpan password dalam bentuk plain text.
Universitas Sumatera Utara
14
Gambar 2.4 Pemeriksaan password dengan nilai MD5 yang disimpan di dalam database
Ketika user mendaftar, password yang dimasukkan akan dibangkitkan nilai hashnya dan disimpan di dalam database. Contohnya bila pengguna mendaftar dengan nama ”komputer” maka nilai hash yang dihasilkan adalah 71431b1e88117facdc7584c476e09452 dan disimpan di dalam database. Bila kemudian user login dengan password yang lain, maka nilai hashnya tidak cocok
dengan
yang
ada
di
database
sehingga
otentikasi
gagal.
c. Tanda tangan Digital (Digital Signature) Digital signature tidak lain adalah nilai hash yang terenkripsi dengan kunci private pembuat dokumen. Penerima dokumen bisa memverifikasi signature ini dengan cara menghitung nilai hash dokumen yang dia terima, kemudian mendekripsi digital signature dengan kunci publik pembuat dokumen sehingga kembali menjadi hash. Kedua nilai hash ini lalu dibandingkan, hasil dekripsi dan hasil perhitungan, jika sama maka signature valid. Digital signature dipakai juga untuk membuat certificate SSL. Certificate SSL sangat vital peranannya menjaga confidentiality dan authentication ketika seseorang mengakses website. Browser sudah memiliki daftar trusted Certificate Authority, jadi setiap browser mengakses website dengan https akan diperiksa apakah certificate server tersebut ditandatangani oleh salah satu dari CA yang dipercaya browser.
Universitas Sumatera Utara