LAPORAN RESMI KEAMANAN JARINGAN KONFIGURASI KEAMANAN LAYANAN WEB
Oleh : Akbar Nadzif
2103141043
Dosen Pengampu : Ferry Astika Saputra
PROGRAM STUDI D3 TEKNIK INFORMATIKA DEPARTEMEN TEKNIK INFOR MATIKA DAN TEKNIK KOMPUTER POLITEKNIK ELEKTRONIKA NEGERI SURABAYA 2016
LAPORAN RESMI KEAMANAN JARINGAN A. TUJUAN 1. Mengenalkan tentang konsep SSL. 2. Membuat self-signed server certificate 3. Melakukan instalasi dan konfigurasi Apache2 + SSL/TLS 4. Melakukan testing instalasi B. DASAR TEORI 1. SSL / TLS Transport Layer Security (TLS) adalah protocol untuk mengamankan komunikasi antar aplikasi lewat internet. TLS mengamankan konten pada layer aplikasi, seperti halaman web dan diimplementasikan pada layer transport, yaitu TCP. Untuk menjamin keamanan. data yang dikirim dienkripsi dan diotentikasi pada sisi server dan client. Secure Socket Layer (SSL) adalah protocol yang diciptakan sebelum TLS yang mengaplikasikan hal ini. SSL/TLS biasanya dioperasikan secara bersama-sama dengan HTTP, sehingga membentuk protocol baru yang disebut HTTPS, untuk mengamankan transaksi lewat web. Selain intu, protocol ini dapat digunakan untuk aplikasi-aplikasi lain seperti email, file transfer dan virtual private networks (VPN).
2. HTTPS HTTPS menggabungkan protocol HTTP dan SSL/TLS untuk menjamin keamanan komunikasi antara eb server dan web browser. HTTPS beroperasi pada port 443 dan bukan pada port 80 seperti normalnya HTTP. HTTPS bekerja dengan menyediakan enkripsi untuk konten web dan otentikasi web server. HTTPS tidak melakukan otentikasi client sehingga web sita tidak dapat melakukan otentikasi user selama koneksi. User harus melakukan sejumlah otentikasi tambahan seperti password,biometric atau metode otentikasi lain. Komunikasi SSL/TLS meliputi dua tahap yaitu handshaking dan data sending. Sebelum berkomunikasi, web site harus meminta certificate authority (CA) agar dapat menanda tangani (signing) digital certificate-nya yang berisi public key dari site. User yang menerima digital sertificate CA, segera memanggil sertifikat root, yang dimiliki ketika mereka menginstall web browser. Web browser seperti Internet Explorer atau Firefox sebelumnya telah dilengkapi dengan sejumlah sertifikat root dari bermacam-macam perusahaan seperti VeriSign atau Entrust, yang memang menspesialiasisikan diri sebagai perusahaan yang bergerak di bidang sertifikasi. `
Gambar 1 Alur verifikasi sertifikat
Pada gambar diatas, begitu user hendak mengkoneksikan diri dengan website lewat koneksi https, web server mengirim certifikatnya yang mengandung public key dari web site tersebut. User akan memverifikasi sertifikat ini dengan memakai pre-installed sertifikat root dari website CA. Pada tahap kedua dari komunikasi SSL/TLS adalah tahapan enkripsi antara server dan client berdasarkan protocol kriptografi yang dinegosiasikan antara kedua belah pihak. Pada gambar berikut, begitu sertifikat digital server berhasil diverifikasi, maka browser dan server mulai saling bernegosiasi cipher yang hendak dipakai untuk pengkodean data dan verifikasi digital signature. Jika public key enkripsi sudah dipilih, kedua belah pihak mengenkripsikan data dengan public key masing-masing dan mendekripsi dengan private keynya. Untuk menghemat waktu, enkripsi public key hanya digunakan saat saling menukar session key (private key yang temporer) yang dipakai untuk data enkripsi.
Gambar 2 Pertukaran metode dan key antar client dan server
Software yang dibutuhkan untuk menginstall web server yang secure dan berbasis open-source adalah : 1. Apache 2.2.11: Apache2 ini adalah web server yang akan kita gunakan. Anda dapat mengecek informasinya lewat http://httpd.apache.org/.
2. OpenSSL
0.9.8k:
OpenSSL
adalah
toolkit
yang
digunakan
untuk
mengimplementasikan protocol Secure Socket Layer (SSL v2/v3) dan Transport Layer Security (TLS v1). OpenSSL juga menyediakan general purpose library untuk kriptografi. Anda dapat mengecek informasinya lewat http://www.openssl.org/.
3. Mod_SSL 2.2.11: Mod_SSL adalah add-on modul untuk Apache. Pada versi lama apache, user harus mengkompile paket ini, sedangkan pada versi baru, Mod_SSL sudah built-in pada server sebagai interface antara OpenSSL dan Apache2. Anda dapat mengecek informasinya lewat http://www.mod_ssl.org.
C. PERCOBAAN Manajemen sertifikat dengan web browser Pada bagian ini anda akan belajar bagaimana browser menyimpan informasi certificate authority (CA) dan informasi-informasi berkaitan dengan cipher-nya.
1. Buka browser firefox. Pada toolbar, pilih tab Preferences -> Advanced Encryption 2. Melihat protokol yang digunakan untuk enkripsi. Protokol apa yang digunakan ?
Gambar 3 Tampilan tab advanced
Dari gambar di atas dapat dilihat bahwa protocol yang digunakan untuk enkripsi ada 2 yaitu SSL 3.0 dan TLS 1.0
3. Klik Certificates Authorities. Anda akan melihat Certificate Authorities (CA) yang diinstall di browser anda, Ini adalah kumpulan listing perusahaan (CA) yang menawarkan jasa untuk penandatanganan (signing) dan verifikasi sertifikat (mereka adalah pihak ketiga yang dipercaya). Sebutkan dua saja !
Gambar 4 Tampilan cerificate manager
Didalam kotak dialog certificate manager tab authorities berisi sekumpulan Certificate yang telah dimiliki oleh browser tersebut.
4. Selain melisting nama-nama CA, juga dicantumkan sertifikat dari masing-masing perusahaan. Anda dapat melihatnya dengan mengetik Built in object token. Sertifikat ini disebut sebagai root certificate. Pilih salah satu sertifikat ini dengan menklik View General. General memberikan informasi tentang perusahan CA tersebut seperti Common Name, Organization, Organization Unit, validitas, kode fingerprintnya dan lain-lain. Klik Detail untuk melihat informasi seputar enkripsinya. Klik certificate fileds. Cari Certificate Signature Algorithm. Fiels ini menunjukan algoritma apa yang dipakai CA untuk menandatangani sertifikat.
Hasilnya akan Nampak di fields value. Apa protocol enkripsi yang dipakai?
Gambar 5 Isi dari sertifikat elektronik
5. Lihat pada field Subject’s Public Key. Ini adalah pulic key dari CA. Berapa panjangnya dalam bit?
Gambar 6 Public key dari CA
6. Klik Close untuk meninggalkan certificate viewer , klik OK dan kembalilah pada jendela Preference.
2. Membuat sertifikat SSL dengan OpenSSL 4. Menginstall software yang dibutukan
$ sudo apt-get install apache2 $ sudo apt-get install openssl
Gambar 7 Proses install openssl
Keterangan : dalam hal ini ada 2 software yaitu apache dan openssl : Apache digunakan sebagai web server dan Openssl digunakan untuk pembuatan sertifikat ssl
5. Langkah berikutnya adalah membuat sertifikat SSL untuk web server sebelum kita menjalankan secure server dengan HTTPS. Selain itu , kita juga akan membuat pasangan public/private key untuk melakukan request sertifikat. Anda akan membutuhkan domain name untuk sertifikat yang anda ciptakan. Pada contoh ini digunakan nama : www.webku.com
6. Masuk ke direktori /etc/apache2/ssl. Direktori ssl adalah direktori dimana anda menyimpan semua private keys, certificate signing request dan sertifikat. $ cd /etc/apache2/ssl. $ ls -al
Gambar 8 Melihat isi direktori ssl
7. Membuat sepasang public/private key. Pertama-tama kosongkan semua sertifikat yang ada dengan perintah rm * pada direktori /etc/apache2/ssl $ sudo rm *
Gambar 9 Menghapus sertifikat yang sudah ada
8. Kemudian buat key dengan nama server.key yang merupakan private key dengan perintah #openssl genrsa –des3 –ou server.key 1024. Key yang dibuat ini misalkan diberi nama server.key. Siapkan passphrase dan isikan data pada saat diminta. Passphrase ini digunkan untuk validasi untuk membuat file selanjutnya seperti csr dan crt $ sudo openssl genrsa -des3 -out server.key 1024
Gambar 10 Proses generate private key
9. Generate file server.csr menggunakan private key di atas dengan perintah openssl req –new -key server.key –out server.csr file csr ini misalkan diberi nama server.csr. Untuk membuat file csr ini dibutuhkan validasi terlebih dahulu dengan menginputkan password passphrase server.key
Gambar 11 Proses generate file server.csr
Keterangan :
genrsa : menunjukkan OpenSSL bahwa anda ingin menciptakan sepasang key
des3 : menunjukkan bahwa private key harus dienkripsi dan dilindungi oleh passphrase
out : menunjukkan filename yang akan menyimpan hasil output
1024 : menunjukkan jumlah bit dari key yang dibuat
10. Menyiapkan passphrase dan isikan pada saat diminta. Apa passphrase anda ? tulis sebagai bagian laporan. Hasilnya akan muncul seperti ini :
Gambar 12 Tampilan memasukkan passphrase
Setelah menjalankan langkah ini. akan tercipta server.key pada direktori ssl.
11. Pastikan anda maih berada pada direktori /etc/apache2/ssl. Cobalah generate file server.csr dengan menggunakan private key diatas. Gunakan perintah dibawah. Csr ini kependekan dari certificate signing request. $ sudo openssl req -new -key server.key -out server.csr
Gambar 13 Tampilan proses generate file server.csr
Akan muncul tampilan berikut. Isi sesuai dengan keinginan anda. Yang penting ketika memasukkan Common Name (CN) adalah CN harus sesuai dengan alamat web, nama DNS atau IP address pada konfigurasi Apache. Setelah anda memasukkan informasi tersebut, akan terbentuk file server.csr yang akan digunakan untuk meminta sertifikat. Coba cek dengan perintah ls untuk meihat apakah file ini sudah terbentuk
Gambar 14 Contoh isi file server.csr
Perhatikan bahwa untuk membuat file server.crt anda membutuhkan server.key dan server.csr. Biasanya, pada langkah ini, web server komersial akan meminta CA professional seperti VeriSign untuk memberikan file crt. Pada praktikum ini kita akan berlaku sebagai CA dan mengenerate file crt tersebut secara mandiri (self signing certificate).
12. Generate file server.crt
Gambar 15 Proses generate file server.crt
Perintah diatas akan meminta anda memasukkan kembali passphrase untuk mengenerate server.key (yaitu 123456). Masukkan passphrase yang sesuai.
13. Cek lagi directory ssl dan anda seharusnya memiliki 3 file, server.key,server.crt dan server.crs. Jika benar, selamat, anda telah menyelesaikan lab ini dengan baik
Gambar 16 Isi direktori ssl
3. Konfigurasi Apache untuk site www.webku.com 1. Cek direktori ssl untuk memastikan ada 3 file yaitu server.key, server.crt dan server.crs
2. Enable kan modul mod_ssl dengan perintah a2enmod ssl
Gambar 17 Proses enabling module ssl
3. Restart apache
Gambar 18 Perintah untuk restart apache
4. Copy file default yang ada di /etc/apache2/sites-available, beri nama file tersebut dengan nama www.webku.com.conf
5. Edit file www.webku.com.conf dengan perintah #gedit etc/apache2/sitesavailable/www.webku.com
Gambar 19 Isi file www.webku.com.conf
-
Ubah port VirtualHost dari 80 ke 443
-
Tambahkan server name dibawah server admin sebagai berikut ServerName www.webku.com:443
-
Ubah DocumentRoot untuk menunjuk ke web direktori dari website webku. DocumentRoot /var/www/webku
-
Ubah untuk menuju ke direktori webku.
-
Masukkan baris ini sebelum baris ErrorLog /var/log/apache2/error.log. tujuannya adalah agar virtual host tahu dimana key dan sertifikat SSL disimpan SSLEngine On SSLCertificateFile /etc/apache2/ssl/server.crt SSLCertificateKeyFile /etc/apache2/ssl/server.key
6. Simpan file www.webku.com.conf melalui editor gedit / nano dsb. Kemudian pada direktori /var/www/ copy file index.html ke /var/www/webku/
7. Enable kan website www.webku.com dengan cara a2ensite www.webku.com
8. Edit file /etc/host untuk melakukan resolusi domain www.webku.com website ke 127.0.0.1. cari baris 127.0.0.1 lalu tambahkan baris ini : 127.0.0.1 localhost webku www.webku.com
Gambar 20 Isi file /etc/hosts
4. Menjalankan HTTPS 1. Restart apache2 agar efek dari sertifikat SSL mulai efektif. Karena mode ssl sudah diaktifkan maka untuk melakukan restart apache dibutuhkan validasi dengan menggunakan passphrase file server.key
2. Buka http://localhost pada browser untuk melakukan pengecekan terhadap localhost
Gambar 21 Tampilan pengecekan localhost
3. Buka URL berikut https://www.webku.com dan kemduian get certificate untuk mendapatkan akses ssl ke www.webku.com. Klik tombol : I Understand the Risks, kemudian klik tombol: Add Exception dan terakhir klik Get Certificate . Klik View. Anda
akan melihat sertifikat self-signed yang tadi anda buat. Setelah itu klik checkbox Permanently store this exception dan klik tombol Confirm Security Exception
Gambar 22 Proses confirm security dari www.webku.com
Setelah mendapatkan certificate, maka www.webku.com dapat diakses. Terlihat pada gambar
Gambar 23 Tampilan ketika berhasil mengakses ww.webku.com
D. KESIMPULAN Dari percobaan ini, kita belajar melakukan pehaman terhadap konsep WebSSL. Dari sini kita tahu bahwa untuk memiliki website yang aman harus menggunakan sertifikat
dari lembaga resmi. Dengan menggunakan sertifikat ini dapat di pastkan bahwa website yang kita miliki menjadi legal dan secure untuk di akses.