BAB II TINJAUAN PUSTAKA
2.1 Jaringan Komputer
Menurut Jogiyanto 1999:313-314, jaringan komputer adalah jaringan dari sistem komunikasi data yang melibatkan sebuah atau lebih sistem komputer yang
dihubungkan dengan jalur transmisi alat komunikasi membentuk satu sistem. Komponen dari suatu jaringan komputer adalah node dan link. Node adalah titik
yang dapat menerima input data ke dalam network atau menghasilkan output informasi atau kedua-duanya. Link adalah channel atau jalur transmisi untuk arus
informasi atau data di antara node. Jaringan yang masing-masing node terletak di lokasi yang berjauhan satu
dengan yang lainnya dan menggunakan link berupa jalur transmisi jarak jauh disebut WAN Wide Area Network. Sedangkan jaringan yang masing-masing
node terpisah dalam jarak lokal dan menggunakan link berupa jalur transmisi kabel disebut LAN Lokal Area Network. Jaringan komputer LAN pada suatu organisasi
membentuk intranet, seperti pada gambar di bawah, memiliki satu atau lebih server
. Server-server saling berkomunikasi menggunakan suatu aturan yang disebut protokol.
Gambar 2.1 Jaringan Komputer Sumber : HTTP:jaffer.com
2.2 Secure Socket Layer
SSL adalah protokol keamanan yang didesain untuk dijalankan pada TCPIP
dan dengan mudah dapat digantikan dengan API soket UNIX-style standar yang digunakan oleh hampir semua perangkat lunak jaringan. Keamanan dijamin
dengan menggunakan kombinasi dari kriptografi kunci publik dan kriptografi kunci simetri
bersamaan dengan sebuah infrastruktur sertifikat. Sebuah sertifikat adalah sebuah kumpulan data identifikasi dalam format yang
telah distandarisasi. Data tersebut digunakan dalam proses verifikasi identitas dari sebuah entitas contohnya sebuah web server pada internet. Sertifikat ini secara
digital ditandatangani oleh sebuah Certificate Authority CA, yaitu sebuah entitas
yang dapat dipercaya yang diberikan kekuasaan untuk melakukan verifikasi sebuah perusahaan atau individu yang ingin menyediakan aplikasi yang diamankan
menggunakan SSL. Client yang ingin berkomunikasi secara aman dengan entitas tersebut dapat melakukan verifikasi identitasnya dengan menanyakannya pada
basis data CA. Sebuah sertifikat juga mengandung kunci publik dari pemiliknya. Kunci ini
berpasangan dengan kunci private yang hanya diketahui oleh pemiliknya. Pasangan kunci ini digunakan untuk verifikasi identitas dari pemilik sertifikat, dan
juga untuk membuat informasi rahasia dapat dipertukarkan antara pemilik sertifikat dan entitas lainnya.
SSL adalah protokol keamanan yang digunakan pada hampir semua transaksi
aman pada internet. SSL mengubah suatu protokol transport seperti TCP menjadi sebuah saluran komunikasi aman yang cocok untuk transaksi yang sensitif.
Protokol SSL mendefinisikan metode yang digunakan untuk membangun sebuah
saluran komunikasi yang aman dan tidak tergantung pada algoritma kriptografi mana yang digunakan. SSL mendukung berbagai macam algoritma kriptografi, dan
berlaku sebagai sebuah framework di mana kriptografi dapat digunakan dengan cara yang tepat dan terdistribusi.
Penggunaan SSL sangat luas. Aplikasi yang membutuhkan pengiriman data melalui sebuah jaringan yang tidak aman seperti internet atau intranet perusahaan
adalah salah satu aplikasi yang berpotensi untuk memanfaatkan SSL. SSL menyediakan keamanan, dan yang lebih penting adalah ketenangan. Dengan
menggunakan SSL, kita dapat memastikan bahwa data kita aman dari pihak-pihak yang tidak berhak mengakses. SSL didesain untuk dijalankan pada TCPIP.
Gambar 1 berikut ini menunjukkan bagaimana posisi protokol SSL pada model referensi TCPIP.
Gambar 2.2 SSL Pada Model Referensi TCPIP SSL
menyediakan autentikasi pada sisi client, dan opsional pada sisi server terhadap pihak-pihak yang berkomunikasi. SSL dapat mengamankan koneksi
antara dua titik, dan tidak ada pihak yang dapat melakukan hal-hal yang bersifat destruktif atau mengakses informasi yang bersifat sensitif. SSL menyediakan
sebuah saluran komunikasi yang aman tanpa perlu adanya pertemuan kedua pihak yang berkomunikasi untuk melakukan proses pertukaran kunci.
Fungsi SSL pada komunikasi aman sama seperti fungsi TCP pada komunikasi normal, yaitu menyediakan sebuah infrastruktur komunikasi standar di mana
sebuah aplikasi dapat menggunakannya dengan mudah dan hampir tidak dapat terlihat invisible. SSL menyediakan sebuah komponen penting pada sistem yang
aman. Mekanisme otentikasi dasar seperti password Telnet dan otentikasi HTTP dasar menjadi sangat kuat ketika dieksekusi dengan SSL dibandingkan dengan
TCP , di mana pada SSL password tidak lagi dikirim dalam bentuk plainteks. SSL
mengenkripsi koneksi, bukan data pada kedua pihak yang berkomunikasi, dan tidak mengandung mekanisme untuk otentikasi user ataupun perlindungan
password hanya koneksi yang diautentikasi, keamanannya akan gagal jika mesin pada kedua pihak yang berkomunikasi saling berkompromi.
Implementasi SSL
paling pertama dikembangkan oleh Netscape Communications
Corporation pada awal tahun 1990-an untuk mengamankan HTTP
, yang mengirimkan data dalam bentuk plainteks melalui internet. Peluncuran resmi pertamanya adalah versi 2.0, di mana saat itu diterima cukup
luas, meskipun masih ada beberapa masalah desain pada protokol. Pada akhir tahun 1990-an, semakin terlihat dengan jelas bahwa SSL 2.0
tidaklah aman. Netscape memulai untuk membangun SSL 3.0. Dengan bantuan Netscape
, Internet Engineering Task Force IETF, badan yang mengatur untuk standar internet memulai untuk menstandarisasi SSL, sebuah proyek yang
kemudian dikenal dengan nama TLS Transport Layer Security. SSL 3.0 tidak dikembangkan seteliti TLS, sehingga SSL 3.0 dapat dirilis lebih dahulu dan
menggantikan\SSL 2.0 sebagai standar industri. TLS yang akhirnya diselesaikan pada tahun 2000, menyediakan protokol terstandarisasi yang pertama untuk SSL.
Walaupun SSL 3.0 masih digunakan secara luas, untuk pengembangan terbaru termasuk sudah tertinggal karena saat ini hampir semua browser modern
mendukung TLS. Walaupun SSL sederhana pada teorinya kunci dipertukarkan menggunakan kriptografi kunci publik, dan komunikasi dilakukan dengan
menggunakan kriptografi kunci simetri, namun cukup kompleks pada implementasi aktualnya. Berikut ini beberapa detail dalam membangun sebuah
koneksi SSL dan berkomunikasi menggunakan koneksi tersebut.
2.2.1 Alert
Salah satu komponen terpenting dari SSL adalah sistem penanganan errornya. Error pada SSL disebut dengan alert dan merupakan presentasi dari kemungkinan
serangan-serangan. Alert adalah pesan-pesan yang dikirim melalui saluran komunikasi SSL, dan kadang juga dienkripsi. Spesifikasi SSL menjelaskan secara
mendetil tentang 20 alert yang berbeda dan memberikan petunjuk bagaimana menanganinya ketika alert tersebut diterima, serta kapan waktu yang tepat untuk
membangkitkan dan mengirimkannya.
2.2.2 Handshake
Komunikasi SSL diadakan pada sebuah SSL session. SSL ini dibangun menggunakan sebuah proses handshake yang mirip dengan TCP 3-way handshake.
Keseluruhan proses handshake, termasuk pembangunan soket TCPIP, dapat dilihat pada gambar 2.6
Gambar 2.3 Proses SSL Handshake Seperti yang dapat dilihat pada gambar, koneksi TCPIP dibangun terlebih
dahulu, kemudian proses handshake SSL dimulai. Session SSL dimulai ketika client
dan server berkomunikasi menggunakan parameter dan cipher yang telah dinegosiasikan. Session SSL diakhiri ketika kedua pihak selesai mentransmisikan
data aplikasi dan memberitahu mesin lainnya bahwa pengiriman data telah selesai.
2.2.3 Client Hello dan Operasi Kunci publik
Semua session pada SSL dimulai dengan sebuah pesan Client Hello. Pesan ini dikirim oleh client kepada server yang ingin dituju untuk berkomunikasi. Pesan
ini berisi versi SSL dari client, sebuah bilangan acak yang akan digunakan selanjutnya pada penurunan kunci, dan juga sebuah kumpulan ciphersuite offer.
Offer ini merupakan penanda yang menunjukkan cipher dan algoritma hash yang
ingin digunakan oleh client. Pada saat membangun koneksi inisial, server memilih sebuah offer yang ingin digunakan, dan menyampaikan kembali offer tersebut
kepada client bersama dengan certificate dan sebuah bilangan acak yang dimilikinya. Client kemudian melakukan verifikasi server menggunakan sertifikat
dan mengekstraksi kunci publik server. Dengan menggunakan kunci publik, client mengenkripsi rahasia premaster, sebuah nilai acak yang akan digunakan untuk
membangkitkan kunci simetri, dan mengirim pesan terenkripsi tersebut kepada server
, yang kemudian mendekripsi pesan menggunakan kunci privatenya.
2.2.4 Penurunan Kunci simetri
Setelah server menerima rahasia premaster dari client, server dan client sama-sama membangkitkan kunci simetri yang sama menggunakan rahasia
premaster dan juga membangkitkan bilangan acak yang telah dipertukarkan sebelumnya menggunakan TLS pseudorandomfunction PRF, yang mengekspansi
rahasia dan beberapa data menjadi sebuah blok dengan panjang tertentu. Dengan cara ini, yang hanya mengenkripsi rahasia premaster kecil menggunakan
kriptografi kunci publik, membatasi kemungkinan mahalnya operasi pada
performansi.
2.2.5 Finish Handshake
Segera setelah kunci dibangkitkan, client dan server bertukar pesan-pesan “change cipher spec” untuk mengindikasikan bahwa mereka telah memiliki kunci
simetri dan komunikasi selanjutnya dapat dilaksanakan menggunakan algoritma
simetri yang dipilih pada tahap inisial proses handshake. Pada tahap ini, server dan client
menggunakan semua pesan-pesan handshake yang diterima dan dikirim, dan membangkitkan sebuah blok data yang digunakan untuk melakukan verifikasi
bahwa handshake tidak terganggu. Data ini, yang dibangkitkan menggunakan TLS PRF
, dikirimkan pada pesan handshake terakhir disebut Finish. Jika data pada pesan finish yang dibangkitkan tidak cocok dengan data finish yang dibangkitkan
secara lokal, maka koneksi akan diterminasi oleh pihak manapun yang gagal melakukan tes verifikasi.
2.2.6 SSL Session
Ketika sebuah proses handshake selesai, client dan server mulai berkomunikasi dengan menggunakan saluran komunikasi aman yang baru. Setiap
pesan di-hash, dienkripsi dan kemudian dikirim. Setiap kali ada kegagalan, baik itu pada proses dekripsi, enkripsi, hash, verifikasi, atau komunikasi, SSL alert akan
dikirimkan menggunakan enkripsi kunci simetri oleh entitas yang mengalami
kegagalan. Kebanyakan alert bersifat fatal, dan menyebabkan komunikasi harus dihentikan sesegera mungkin.
2.2.7 Mengakhiri SSL Session
Ketika client atau server selesai berkomunikasi, sebuah alert khusus, close_notify
, dikirimkan untuk memastikan semua komunikasi telah dihentikan dan koneksi dapat ditutup. Alert ini digunakan untuk mencegah pihak yang tidak
bertanggung jawab melakukan sebuah serangan pemotongan, yang akan menipu server
atau client agar berpikir bahwa semua data yang ingin dipertukarkan telah berhasil terkirim, padahal sebenarnya masih ada data yang masih belum terkirim
hal ini dapat menjadi masalah pada situasi seperti transaksi perbankan, di mana semua informasi harus terkirim.
2.2.8 Keamanan
Kerumitan dan mahalnya pembangunan session SSL merupakan hasil dari pembelajaran selama bertahun-tahun terhadap berbagai serangan terhadap SSL dan
protokol keamanan lainnya. Beberapa serangan menargetkan implementasi
kriptografi nya, serangan lainnya menargetkan PRNG. Beberapa serangan dapat
menggunakan pengetahuan tentang informasi yang dikirim untuk mendapatkan informasi rahasianya. Beberapa serangan bahkan menggunakan timing dari
algoritma tertentu untuk mendapatkan rahasia. SSL dan TLS menangani beberapa masalah ini pada desain protokolnya. Namun yang lebih penting adalah
implementasinya harus mengikuti protokol agar pengamanan dapat bekerja dengan baik.
2.3 Diffie-Hellman
Diffie-Hellman Key Exchange ditemukan pada tahun 1976 atas hasil
kerjasama antara Whitfield Diffie dan Martin Hellman. Metode ini merupakan metode praktikal pertama untuk menciptakan sebuah rahasia bersama antara dua
belah pihak melalui sebuah jalur komunikasi yang tidak terjaga. Menurut Stallings 2009:11 terdapat 3 jenis pertukaran kunci Diffie-
Hellman , yaitu :
1. Fixed Diffie-Hellman: Ini adalah pertukaran kunci Diffie-Hellman dimana pada sertifikat server terdapat parameter publik Diffie-Hellman yang
ditandatangani oleh certificate authority CA. Yakni, sertifikat kunci publik mengandung parameter kunci publik Diffie-Hellman. Client menyediakan
parameter kunci publik Diffie-Hellman baik dalam bentuk sertifikat, jika autentikasi client diperlukan, atau dalam pesan pertukaran kunci. Metode ini
menghasilkan secret key yang tetap antara dua pihak, berdasarkan perhitungan Diffie-Hellman
menggunakan kunci publik yang tetap. 2. Ephemeral Diffie-Hellman: Teknik ini digunakan untuk mencipatakan kunci
rahasia ephemeral sementara, satu waktu. Dalam kasus ini, kunci publik Diffie-Hellman
dipertukarkan, dan ditandatangani menggunakan kunci
privatee RSA atau DSS pengirim. Si penerima dapat menggunakan kunci
publik yang berkaitan untuk memverifikasi tanda tangan. Sertifikat digunakan
untuk mengautentikasi kunci publik. Pilihan ini tampaknya menjadi pilihan paling aman dalam ketiga pertukaran kunci Diffie-Hellman karena kunci
autentikasi yang dihasilkan bersifat sementara. 3. Anonymous Diffie-Hellman: Algoritma dasar Diffie-Hellman yang digunakan,
dengan tidak ada autentikasi. Pendekatan ini rentan terhadap man-in-the- middle attacks
, yang mana penyerang melakukan pertukaran kunci Diffie- Hellman
dengan kedua belah pihak. Diffie-Hellman
bukan metode enkripsi dan tidak dapat digunakan untuk enkripsi
data. Ini merupakan metode pertukaran kunci sekuritas dari enkripsi data. Diffie-Hellman
mengkompilasi pertukaran sekuritas dengan membuat “shared secret
” atau disebut dengan “Key Encryption Key” KEK. antara dua perangkat. Shared secret
kemudian dienkripsi dengan kunci simetris untuk sekuritas pengiriman. Kunci simetris terkadang disebut dengan Traffic Encryption Key
TEK atau Data Encryption Key DEK. Terkadang KEK digunakan untuk sekuritas pengiriman dalam TEK.
Menurut Palmgren 2010:15, Tahapan Proses KEK, adalah: 1. Setiap side mengenerate kunci private baik disisi penerima dan di sisi
pengirim. 2. Kemudian kedua sistem tersebut melakukan pertukaran kunci publik.
3. Komunikasi yang dilakukan oleh setiap sisi menggunakan kunci private masing-masing dan kunci publik dari sistem lainnya.
4. Protokol Deffie-Hellman mengenerate “shared secrets” untuk identifikasi kunci kriptografi yang akan di share pada setiap sisi.
5. Kemudian share secret akan dikalkulasi dengan perhitungan secara matematis untuk membentuk kunci simetris.
6. Kunci simetris kemudian di enkripsi dan dikirm ke sisi penerima. Di sisi penerima kunci simetris diubah kembali menjadi shared secret.
7. Pada saat pembuatan kunci simetris data dienkripsi di sisi pengirim dan data didekripsi di sisi penerima.
Gambar 2.4 Proses Pertukaran Kunci publik dan Pertukaran Kunci Diffie-Hellman
2.4 Sistem Monitoring Jaringan Nagios