Konfigurasi Keamanan Layanan Web (SSL/TLS)
PRAKTIKUM
6 – PRAKTIKUM KEAMANAN DATA
Johan Zakaria 2110131005
Berlian
Rahmy Lidiawaty 2110131011
Lutfi
Hariyanto 2110131023
JUDUL
PRAKTIKUM : Konfigurasi
Keamanan Layanan Web (SSL/TLS)
HARI
/ TANGGAL : Jumat / 27 Mei 2016
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 keamanankomunikasi antara Web 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.
LAPORAN 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 proseshandshake 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.
PERCOBAAN
List hostname
dan password untuk kelompok 6:
ip : 10.252.108.76
Gateway : 192.252.108.9
hostname : kelompok6
root pass : jarkom
Praktikum 1: 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 briwser firefox. Pada toolbar, masuklah ke tab Preferences -> Advanced -- ->
Encryption
2. Melihat protokol yang digunakan untuk enkripsi. Protokol
apa yang digunakan ?
Gambar
Protokol enkripsi
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
Listing Certificate Authorities (CA) di Firefox dan sertifikatnya
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 Detail
enkripsi yang dipakai oleh CA
Gambar Field
certicate untuk mengecek algoritma yang dipakai CA
5. Lihat pada field Subject’s Public Key. Ini adalah pulic
key dari CA. Berapa panjangnya dalam bit?
6. Klik Close untuk meninggalkan certificate viewer , klik
OK dan kembalilah pada jendela Preference.
7. Klik Close untuk meninggalkan certificate viewer , klik
OK dan kembalilah pada jendela Preference.
Praktikum 2: Menciptakan Sertifikat SSL dengan OpenSSL
Pada bagian ini anda
akan belajar bagaimana menginstall web server yang secure dengan menggunakan
SSL/TLS untuk transaksinya. Mengenai software yang dibutuhkan, anda bisa
membaca pada dasar teori. Sebagai langkah awal installah software-software
tersebut. Untuk mod_ssl, secara otomatis telah ter-built-in pada Apache2.
Tahap paling penting
dari praktikum ini adalah membuat public/private key, SSL sertifikat,
certificate signing request (CSR). Biasanya, server yang komersial, akan
meminta otoritas pihak ke tiga seperti VeriSign untuk menandatangani
sertifikatnya. Pada praktikum ini, kita tidak akan meminta bantuan pihak
ketiga, namun menjadi CA sendiri (self signing CA). Kita juga akan membuat
domain sendiri yang dihost secara local. Karena itu anda bisa memilih nama
domain yang anda inginkan. Kerjakan langkah-langkah dibawah dan jawab
pertanyaan - pertanyaannnya.
1.
Menginstall
software – software yang dibutuhkan:
2.
Langkah
berikutnya adalah membuat sertifikat SSL untuk web server sebelum 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.kel6.com
3.
Masuk
ke
direktori : /etc/apache2/ssl. Direktori ssl adalah direktori dimana anda
menyimpan semua private keys, certificate signing request dan sertifikat. Lihat
isi direktori ini.
$ cd
/etc/apache2/ssl
$ ls –al
4.
Untuk
membuat
Certificate Signing Request (CSR), anda harus membuat sepasang public/privat
key terlebih dahulu. Untuk itu, pertama-tama, kosongkan semua sertifikat yang
ada dengan perintah:
$
sudo rm *
5.
Kemudian buatlah key dengan nama
server.key yang merupakan private key dengan perintah:
$ sudo openssl genrsa -des3
-out server.key 1024
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
root@kelompok6:/etc/apache2/ssl# openssl genrsa -des3 -out server.key 1024
6.
Siapkan
passphrase
dan isikan pada saat diminta. Apa passphrase anda ? tulis sebagai bagian
laporan. Hasilnya akan muncul seperti ini:
Passphrase:
jarkom
7.
Pastikan anda masih 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
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.
Capture screenshot dari server.csr sebagai laporan.
Country Name: IN
State or Province Name: JATIM
Locality Name: SBY
Organization Name: EEPIS
A challenge password: jarkom
An optional company name: kel6
8.
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).
9. Sekarang coba
generate file server.crt dengan perintah dibawah:
$ sudo openssl x509 -req -days 365 -in server.csr -signkey server.key
-out server.crt
10. 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.
Praktikum 3: Konfigurasi Apache
1.
Cek direktori ssl untuk memastikan ada 3 file disini
yaitu : server.key,server.crt dan server.crs. Hal ini penting untuk kelancaran
percobaan ke 3 ini.
2.
Enable kan modul ssl dengan perintah:
$ sudo a2enmod ssl
3.
Restart apache. Tujuannya agar module ssl berjalan
pada apache. Proses ini harusnya berjalan tanpa error.
$ sudo /etc/init.d/apache2 restart
$ cd
/etc/apache2/sites-available/
Edit file www.kel6.com
dengan gedit atau pico
$ sudo gedit etc/apache2/sites-available/www.webku.com
Analisa: Di atas
merupakan hasil perubahan yang dilakukan. Pertama merubah VirtualHost menjadi
443. Kemudian menambahkan ServerName yang dialokasikan ke www.kel6.com:443 (beserta portnya).
Mengubah isi <Directory> (untuk root), dan <Directory
/var/www/kel6> ke direktori kel6. Dan terakhir, memasukan beberapa baris di
bawah sebelum baris ErrorLog /var/log/apache2/error.log. Tujuannya 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.
Pada directory /var/www/, copy file index.html ke
/var/www/kel6/
8.
Edit file /etc/hosts 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.kel6.com
PERCOBAAN 5: Menjalankan HTTPS
1. Restart apache2 agar
efek dari sertifikat SSL mulai efektif.
$ sudo /etc/init.d/apache2 restart
Masukkan passphrase
yaitu:jarkom. Jika cocok maka apache2 akan di-restart dan memberikan tanda [OK]
2. Buka http://localhostpada browser. Jika
apache2 berjalan dengan baik, maka akan muncul pesan “It Works!”
Pesan ini muncul dari
browser kita karena sertikat yang dibangkitkan oleh www.kel6.com bersifat self
signed. Kita akan menerima sertikat tersebut dan menambahkan eksepsi .
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
5. Akhirnya muncul
halaman web yang kita buat. Perhatikan bahwa awal dari URL adalah https, bukan
http ! Capture screenshoot sebagai laporan
6. Perhatikan pula bahwa
pada pojok kiri atas tampak tanda yang
menunjukkan bahwa web server tersebut tersertifikasi.
7. Double klik tanda
kunci tersebut. Klik tombol view certificate pada tanda kunci tersebut. Sampai
kapan periode validasi certifikat ini berakhir.
8. Klik pada tab Detail.
Siapa yang mengeluarkan sertifikat tersebut?
9. Bagaimana certifikat
ini digunakan untuk komunikasi web browser dan web server?
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:80no
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:80no 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 -9 1180
PERCOBAAN 6 : Passphrase
Passphrase digunakan
untuk masuk ke Apache tanpa harus memasukkan password.
1. Membuka file
passpkey.sh
$ nano passpkey.sh
2. Isikan perintah
berikut pada file passpkey.sh
Pada file
passpkey.sh, isikan password yang digunakan untuk login.
3. Memberikan permission
root@kelompok6:/etc/apache2/ssl# chmod 77 enam.sh
Dengan melakukan
chmod, maka user tidak hanya dapat read dan write saja tapi sudah memungkinkan
untuk rwx (read, write, execute)
4. Buka file
apache2.conf
Memasukkan perintah “SSLPassPhraseDialog
exec:/etc/apache2/ssl/passpkey.sh” untuk membuat link, sehingga bila ada SSLPassPhraseDialog
maka langsung meng-execute “etc/apache2/ssl/passpkey.sh”
5. Restart apache2,
berhasil jika tidak memasukan passphrase.
KESIMPULAN
Setelah melakukan percobaan di atas, maka dapat
diambil kesimpulan bahwa:
·
SSL
dapat diset untuk memiliki sertifikat
Komentar
Posting Komentar