Praktikum 6 Keamanan Data (Konfigurasi Keamanan Layanan Web (SSL/TSL)) di PENS (Politeknik Elektronika Negeri Surabaya)

Kukuh Adi Prasetyo // Jumat, 17 Juni 2016


1.      Judul Percobaan        : Konfigurasi Keamanan Layanan Web (SSL/TSL)
2.      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 bermacammacam perusahaan seperti VeriSign atau Entrust, yang memang menspesialiasisikan diri sebagai perusahaan yang bergerak di bidang sertifikasi.

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 preinstalled 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.


Software yang dibutuhkan untuk menginstall web server yang secure dan berbasis opensource 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.



3.      Tugas Pendahuluan
1.       Jelaskan proses handshaking pada SSL/TLS
TLS Handshake Protocol
      TLS Handshake protocol mengijinkan komunikasi yang telah ter-autentikasi untuk memulai koneksi antara klien dan server. Protokol ini mengijinkan klien dan server untuk saling berbicara dengan bahasa yang sama, mengijinkan kedua belah pihak untuk menyetujui sebuah algoritma enkripsi  dan kunci enkripsi terlebih dahulu sebelum protokol aplikasi memulai pengiriman data. Jalanya proses handshake pada TLS ini sama dengan proses yang terjadi pada SSL. TLS menyediakan autentikasi ke server dan juga secara opsional ke klien. Meskipun begitu, ada beberapa perubahan yang terjadi pada proses handshake tersebut.
2.       Jelaskan proses pengiriman data pada SSL/TLS
        Saat seseorang melakukan aktifitas menggunakan internet, terjadi suatu hubungan antara komputer user tersebut dengan server yang akan dimintai informasi yang diinginkan oleh user. Terkadang informasi yang diminta oleh user tersebut bersifat penting, sensitif dan rahasia supaya hanya user tersebut yang hanya bisa melakukan akses terhadap informasi tersebut, contohnya saja transaksi jual beli melalui internet, internet banking, login suatu akun, dll. Tetapi, sering kali ada third-party (pihak ketiga) yang mencoba untuk menyadap proses pengiriman data dari user ke server tersebut sehingga pihak ketiga tersebut dapat dengan mudah mengetahui informasi yang bersifat rahasia itu. Akibatnya informasi penting tersebut dapat disalahgunakan oleh pihak ketiga dan dapat menimbulkan kerugian bagi banyak orang. untuk mencegah hal tersebut, maka dibuatlah suatu protocol jaringan komputer yang dapat mengamankan proses pengiriman data dari client ke server yaitu SSL (Secure Sockets Layer) dan TLS (Transport Layer Security).
        SSL dan TLS adalah suatu protocol jaringan komputer yang menyediakan keamanan dalam melakukan komunikasi melalui internet. Kedua protocol ini bekerja dengan melakukan enkripsi simetris terhadap data-data yang dikirim sehingga kerahasiaan dari data yang dikirimpun dapat terjamin keamananya. Dengan begitu pihak ketiga akan kesulitan untuk menyadapnya.
3.       Sebutkan software-software yang dibutuhkan untuk menggunakan protocol https.
        Salah satu software yang digunakan utnuk protocol HTTP adalah Apache. Apace adalah adalah nama web server yang dibuat berbasiskan kode sumber dan ide-ide yang ada pada web server sebelumnya, yaitu web server NCSA. Sesuai namanya, web server NCSA dibuat oleh National Center for Supercomputing Applications.
4.       Bagaimana penggunaan TLS/SSL pada mail dan vpn ?
        VPN adalah singkatan dari Virtual Private Network, yaitu sebuah cara aman untuk mengakses local area network yang berada diluar jangkauan, dengan menggunakan internet atau jaringan umum lainnya untuk melakukan transmisi paket data secara pribadi, dan terenkripsi. Sedangkan PPTP adalah singkatan dari Point-to-Point Tunneling Protocol, dan merupakan sebuah metode dalam implementasi penggunaan VPN.

        VPN biasanya digunakan untuk menghubungkan kantor-kantor yang tersebar dibeberapa tempat dengan menggunakan akses internet. Namun, VPN juga dapat digunakan untuk keperluan lain, seperti anonimity (menyembunyikan identitas) atau mem-bypass firewall (termasuk mem-bypass content filtering).
5.       Apa yang disebut CA ? Sebutkan 5 buah CA yang anda tahu
      Certificate Authority (CA) adalah lembaga yang menerbitkan sertifikat digital (SSL) kepada perusahaan, lembaga atau individu lain setelah melalui proses verifikasi. CA harus menyimpan informasi tentang apa yang sudah diterbitkan dan informasi apa yang digunakan untuk menerbitkannya, dan secara rutin diaudit untuk memastikan semuanya sudah sesuai prosedur. Setiap CA memiliki Certification Practice Statement (CPS) yang berisi prosedur yang harus dijalankan dalam memverifikasi setiap permohonan sertifikat yang masuk. Saat ini dikenal beberapa CA, diantaranya adalah Verisign yang sekarang diakuisisi oleh Symantec Corp, Comodo, Entrust, GlobalSign dan lain sebagainya. CA yaitu Symantec Corp, Comodo,Entrust,Global Sign
6.       Lihatlah sertifikat dari webmail dengan mengklik tanda kunci. Lihat pada kolom issued by dan issued to. Tulis CN,O,OU. PAda technical Details, lihat metode enkripsi. Apa metode enkripsinya.
Certificate Management [Manajemen Sertifikat]
Gunakan halaman Manajemen Sertifikat untuk melihat rincian tentang sertifikat Anda, mengubah, menghapus, atau meminta yang baru
1. Klik tab Security [Keamanan].
2. Klik link Certificate Management [Manajemen Sertifikat].

Menginstal Sertifikat
CATATAN: Produk ini mendukung format impor berikut untuk sertifikat:
● .DER (biner)
● .CER (biner atau Base64)
● PEM (Base64)
● PFX (sertifikat identitas)




Untuk menginstal sertifikat, lakukan langkah-langkah berikut:
1. Klik tombol Browse [Jelajah] di samping field Choose File [Pilih File].
2. Temukan sertifikat untuk impor, lalu klik tombol Open [Buka].
CATATAN: Sertifikat tipe identitas, serta sertifikat tipe Otoritas Sertifikat, adalah tipe yang valid untuk impor dan digunakan dengan produk ini.
3. Klik tombol Import [Impor].
CATATAN: Untuk sertifikat PFX yang memerlukan kata sandi, ketikkan kata sandi untuk sertifikat dalam field Certificate Password [Kata Sandi Sertifikat].
           
Certificates [Sertifikat]
Gunakan area Certificates [Sertifikat] di halaman Certificate Management [Manajemen Sertifikat] untuk mengelola sertifikat yang diimpor.
Untuk menghapus sertifikat, lakukan langkah-langkah berikut:
1. Pilih sertifikat.
2. Klik tombol Remove... [Hapus...].
3. Konfirmasi operasi penghapusan di kotak dialog peringatan yang ditampilkan.

Untuk melihat rincian sertifikat, seperti kunci publik dan nomor seri sertifikat, lakukan langkah-langkah berikut:
1. Pilih sertifikat.
2. Klik tombol View Details [Lihat Rincian], yang menampilkan informasi sertifikat.

Untuk mengekspor sertifikat, lakukan langkah-langkah berikut:
1. Pilih sertifikat.
2. Klik tombol Export... [Ekspor...].
CATATAN: Apabila mengekspor sertifikat identitas, hanya kunci publik yang diekspor.

Untuk menggunakan sertifikat sebagai tanda tangan e-mail, ikuti langkah-langkah berikut:
-                      Pilih sertifikat lalu klik tombol Use for E-mail Signing [Gunakan untuk Tanda Tangan E-mail].
           
Certificate Validation [Validasi Sertifikat]
Gunakan tab Certificate Validation [Validasi Sertifikat] untuk memvalidasi sertifikat server OCSP Kerberos.
Ikuti langkah-langkah ini untuk mengkonfigurasi validasi sertifikat:
1. Pilih kotak centang Perform OCSP Validation on the certificate trust chain [Lakukan Validasi OCSP pada rantai kepercayaan sertifikat].
2. Masukkan URL untuk server OCSP lalu klik tombol Add [Tambah].
CATATAN: Beberapa server OCSP dapat ditambahkan untuk validasi sertifikat. URL untuk server OCSP dapat berupa nama domain atau alamat IP yang benar-benar memenuhi syarat:
3. Bila perlu, pilih kotak centang Treat Unknown certificate status as valid [Perlakukan status sertifikat yang Tidak Diketahui sebagai valid].
4. Klik tombol Apply [Terapkan] untuk menyimpan perubahan Anda.
CATATAN: Sertifikat mungkin perlu diinstal pada tab sertifikat untuk server OCSP.
4.      Percobaan
1.       Menciptakan sertifikasi SSL dengan OpenSSL
1.       Install software yang dibutuhkan :
$ sudo apt-get install apache2
$ sudo apt-get install openssl

2.       Buat sertifikasi SSL untuk web server dan pasanga public/private key untuk melakukan request sertifikat. Diperlukan domain name untuk sertifikat yang akan kita buat. Contohnya nama www.kelompok3.com
3.       Masuk ke direktori /etc/ssl dimana anda menyimpan semua private key, sertifikat signing request dan sertifikat. Lihat isi dari direktori

4.       Membuat sepasang public/private key. Pertama-tama kosongkan semua sertifikat yang ada dengan perintah rm * pada direktori /etc/ apache2/ssl
5.       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

6.       Cek pada direktori ssl

Server.key berhasil dibuat. Lokasinya ada di /etc/apache2/ssl
7.       Generate file server.csr menggunakan private key di atas dengan perintah :
openssl req –new   -key server.key –out server.csr
file csr ini diberi nama server.csr. untuk membuat file csr ini dibutuhkan validasi terlebih dahulu dengan menginputkan password passphrase server.key
         

8.       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).
9.       Generate file server.crt

Pada perintah diatas akan diminta memakkan passphrase untuk mengenerate server.key.

10.   Cek direktori ssl. Terdapat 3 file, server.key,server.crt dan server.crs


2.       Konfigurasi Apache untuk site www.kelompok3.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  $ sudo a2enmod ssl.
Kemudian restart apache. Tujuannya agar modul ssl berjalan pada apache.
                         

3.      Copy file default yang ada di /etc/apache2/sites-available, beri nama file tersebut dengan nama www.kelompok3.com kemudian edit file www.kelompok3.com

4.      Ubah port VirtualHost dari 80 ke 443. Tambahkan server name dibawah server admin. Ubah DocumentRoot untuk menuju ke web direktori dari website webku.
Ubah <Directory/var/www> 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  kemudian simpan file www.kelompok3.com


5.      Pada direktori /var/www/, copy file index.html ke /var/www/webku/
Kemudian enable-kan website www.kelompok3.com

6.      Edit file /etc/host untuk melakukan resolusi domain www.kelompok3.com website ke 127.0.0.1. cari baris 127.0.0.1 lalu tambahkan baris ini

3.       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.
                              


3.      Buka URL https://10.252.108.73/kelompok3 kemudian akan muncul tampilan seperti ini
                              

Catatan : pada alamat website menggunakan 10.252.108.73 karena kita menginstall dan melakukan konfigurasinya pada virtual yang kita buat yaitu kelompok3 dimana 10.252.108.73 milik kelompok kami



4.      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



Dibawah ini adalah certificate status dari website sesuai dengan yang telah konfigurasi sebelumnya
                              




5.      Setelah mendapat certificate maka web https://10.252.108.73/kelompok3.com dapat diakses

6.      Untuk melihat sampai kapan periode validasi certifikat berakhir, kelompok kami melalui Preferences -> Advanced ->View Certificates


Apabila diperbesar maka akan seperti dibawah ini. Sertifikat kelompok3 valid hingga 05/16/2026


Catatan :
1.      Jika $ /etc/init.d/apache2 restart tidak berhasil, dan memberikan pesan :
* Restarting web server apache2
(13)Permission denied: make_sock: could not bind to address 0.0.0.0:80 no
listening sockets available, shutting down
Unable to open logs
Action 'start' failed.
Artinya anda harus melakukan /etc/init.d/apache2 restart ketika anda berlaku sebagai root. Untuk itu jangan lupa lakukan sudo, seperti : $ sudo /etc/init.d/apache2

2.      Jika pesan yang diberikan :
* Restarting web server apache2
(98)Address already in use: make_sock: could not bind to address
0.0.0.0:80 no listening sockets available, shutting down
Unable to open logs
Action 'start' failed.
Artinya Apache2 sudah berjalan sebagai proses. Untuk itu coba cek no PID dan kill PID
tersebut.
$ sudo fuser -v 80/tcp
                  USER  PID  ACCESS     COMMAND
80/tcp:           root  1180 F....      apache2
$ sudo kill



TAMBAHAN

Pada saat menjalankan https (merestart apache2) kita masih diminta memasukkan passphrase. Agar tidak diminta lagi maka ikuti langkah berikut :

1.  Seperti terlihat. Pada saat kami mencoba merestart apache2, kita masih dimintai passphrase.


2.  Mula-mula buat file script yang berisi passphrase kita. Kami membuat dengan nama passwordnya.sh. Ketikkan perintah nano /etc/apache2/ssl/passwordnya.sh
               


3.  Lalu beri hak akses agar bisa diakses oleh semuanya dengan perintah chmod 777 /etc/apache2/ssl/passwordnya.sh

4.  Lalu buka apache2.conf dengan cara nano /etc/apache2/apache2.conf dan tambahkan baris yang diblok


5.  Lalu restart apache2


TAMBAHAN

Pada saat menjalankan https (merestart apache2) kita masih diminta memasukkan passphrase. Agar tidak diminta lagi maka ikuti langkah berikut :

1.  Seperti terlihat. Pada saat kami mencoba merestart apache2, kita masih dimintai passphrase.




2.  Mula-mula buat file script yang berisi passphrase kita. Kami membuat dengan nama passwordnya.sh. Ketikkan perintah nano /etc/apache2/ssl/passwordnya.sh



              

3.  Lalu beri hak akses agar bisa diakses oleh semuanya dengan perintah chmod 777 /etc/apache2/ssl/passwordnya.sh



4.  Lalu buka apache2.conf dengan cara nano /etc/apache2/apache2.conf dan tambahkan baris yang diblok




5.  Lalu restart apache2


0 comments