Minggu, 07 Juni 2015

Laporan Resmi Web SSL

A. TUJUAN PEMBELAJARAN

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.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.    HTTPtidak  melakukan otentikasi  client  sehingga  wesita  tidak  dapat  melakukan  otentikasi  useselama koneksi.  User  harus  melakukasejumlah  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 sejumla sertifikat root dari bermacam - macam perusahaan seperti VeriSign atau Entrust, yang memang menspesialiasisikan diri
sebagai perusahaan yang bergerak di bidang sertifikasi.



CA: Verisign


2                                           1



3
5       Client web browser


Amazon server





4
1.  Verisign menandatangani sertifikat Amazon dengan publik key-nya
2. Install CA sertikat dengan public key-nya pada browser client
3. Koneksi lewat https
4. Saling menukar sertifika digital,  termasuk publik key
5. Client melakukan verifikasi sertifikat Amazon menggunakan public key dari CA


Gambar 12.1 SSL/TLS handshaking pada https





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 daclient  berdasarkan  protocol  kriptografi  yang dinegosiasikaantara 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.

1




4                     Client

2              Amazon server





3



1.    Menegosiasikan cipher (metode kriptografi yang dipakai, termasuk didalamnya panjang key, hash function, otentikasi ,dll)
2.    Mengirim data yang telah terinkripsi dengan Amazon publik key
3.    Mengirim data yang telah terinkripsi dengan client publik key
4.    Dekripsi/decoding data dari Amazon dengan publik key client



Gambar 12.2  Data sending dengan SSL/TLS













Gambar 12.3 Indikator penggunaan SSL/TLS



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. TUGAS PENDAHULUAN

1. Jelaskan proses handshaking pada SSL/TLS

2. Jelaskan proses pengiriman data pada SSL/TLS





3. Sebutkan software-software yang dibutuhkan untuk menggunakan protocol https.

4. Bagaimana penggunaan TLS/SSL pada mail dan vpn ?

5. Apa yang disebut CA ? Sebutkan 5 buah CA yang anda tahu

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.


D. PERCOBAAN



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 12.4  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 12.5 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 fingerprintny da lain-lain.      Kli Detail   untuk   meliha informas 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 12.6  Detail enkripsi yang dipakai oleh CA






Gambar 12.7 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.


2. Menciptakan sertifikat SSL dengan OpenSSL

Pada bagian ini anda akan belajar bagaimana menginstall web server yan g 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  (selsigning CA).  Kita  juga  akamembuat  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 :

$ sudo apt-get install apache2

$ sudo apt-get install  openssl

2. Langkah berikutnya adalah membuat sertifikat SSL untuk web server sebelum kita
menjalankan secure server dengaHTTPS.  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
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
6.  Siapkan passphrase dan isikan pada saat diminta. Apa  passphrase anda ? tulis sebagai bagian laporan. Hasilnya akan muncul seperti ini :

Generating RSA private key, 1024 bit long modulus
........++++++
...++++++
e is 65537 (0x10001)
Enter pass phrase for server.key:
Verifying - Enter pass phrase for server.key:
You will be prompted for a pass phrase, once you type in your initial pass phrase, you will be asked to verify this pass phrase.


Gambar 12.8 Pembangkitan private key



Setelah menjalankan langkah ini akan tercipta server.key pada direktori ssl. Cek





dengan perintah ls al. Capture screenshot dari isi file server.key sebagai laporan.

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

Akamuncul  tampilan  berikutIsi  sesuai  dengan  keinginaanda. 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  yanakan  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:INA
State or Province Name: jatim Locality Name: SBY Organization Name: EEPIS Organizational Unit Name: IT
Common Name: www.webku.com
A challenge password: 1234567
An Optional Company Name: G10






Gambar 12.9  Field Informasi CA


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
Perinta diata aka memint and memasukka kembal passphras untuk

mengenerate server.key (yaitu 123456). Masukkan passphrase yang sesuai. Capture screenshot dari server.crt sebagai laporan


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 J


3. Konfigurasi Apache untuk site www.webku.com

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 mod_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

4. Copy file default ke file ke file www.webku.com

$ cd  /etc/apache2/sites-available/


5. Edit file www.webku.com dengan gedit atau pico

$ sudo gedit etc/apache2/sites-available/www.webku.com

Ubah port VirtualHost dari 80 ke 443. Baris pertama dari file namapk seperti dibawah.

<VirtualHost *:443>
Tambahkan server name dibawah baris ServerAdmin

ServerName www.webku.com:443

Ubah DocumentRoot untuk menunjuk ke web direktori dari website webku.

DocumentRoot /var/www/webku

Ubah <Directory /var/www/> untuk menunjuk ke direktori webku

<Directory /var/www/webku>

Masukkan baris ini 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. Simpan file  www.webku.com





7. Pada directory /var/www/, copy file index.html ke /var/www/webku/

$ sudo cp /var/www/index.html /var/www/webku/index.html

8.  Enable-kawebsit www.webku.com dengan :

$ sudo a2ensite www.webku.com






9.  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 :






4.  Menjalankan https

1. Restart apache2 agar efek dari sertifikat SSL mulai efektif.

$ sudo /etc/init.d/apache2 restart

Masukkan passphrase yaitu 123456. Jika cocok maka apache2 akan di-restart dan memberikan tanda [OK]
2. Buka  http://localhost pada browser. Jika apache2 berjalan dengan baik, maka akan muncul pesan It Works!
3. Buka URL berikut  https://www.webku.com. Akan muncul :




Gambar 12.10 Tampilan browser waktu pertama kali mengakses https



Pesan ini muncul dari browser kita karena sertikat yang dibangkitkan oleh www.webku.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




Gambar 12.11 Halaman https

6. Perhatikan pula bahwa pada pojok kiri bawah tampak tanda  yang menunjukkan bahwa web server tersebut tersertifikasi. Apakah tanda ini muncul di website




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: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.                                             12





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




Tidak ada komentar:

Posting Komentar