Keamanan WWW dan SSL

advertisement
Keamanan WWW
dan SSL
Pertemuan 7
Sejarah WWW



Dikembangan oleh Tim Berners-Lee
ketika sedang berada di CERN
Kemudahan untuk mengakses
informasi melalui sistem hypertext
Mula-mula dikembangkan dengan
NeXT, kemudian muncul Mosaic
(Windows, Mac, Unix), dan …
akhirnya Netscape. Kemudian
meledak
Sistem WWW

Arsitektur sistem WWW




Server (apache, IIS)
Client (IE, Netscape, Mozilla, opera,
kfm, arena, amaya, lynx)
Terhubung melalui jaringan
Program dapat dijalankan di
server (CGI, [java] servlet) atau
di sisi client (javascript, java
applet)
Asumsi [Sisi Pengguna]



Server dimiliki dan dikendalikan
oleh organisasi yang mengaku
memiliki server tersebut
Dokumen yang ditampilkan bebas
dari virus atau itikad jahat lainnya
Server tidak mencatat atau
mendistribusikan informasi
tentang user (misalnya kebiasaan
browsing)
Asumsi [Sisi Webmaster]



Pengguna tidak beritikad untuk
merusak web server atau
mengubah isinya
Pengguna hanya mengakses
dokumen2 yang diperkenankan
diakses (dimana dia memiliki ijin)
Identitas pengguna benar
Asumsi Kedua Pihak


Network dan komputer bebas dari
penyadapan pihak ketiga
Informasi yang disampaikan dari
server ke pengguna (dan
sebaliknya) terjamin keutuhannya
dan tidak dimodifikasi oleh pihak
ketiga
Keamanan Server WWW



Server WWW (httpd) menyediakan
informasi (statis dan dinamis)
Halaman statis diperoleh dengan
perintah GET
Halaman dinamis diperoleh dengan




CGI (Common Gateway Interface)
Server Side Include (SSI)
Active Server Page (ASP), PHP
Servlet (seperti Java Servlet, ASP)
Eksploitasi server WWW

Tampilan web diubah (deface)
dengan eksploitasi skrip / previledge /
OS di server
 Situs yang dideface dikoleksi di
http://www.alldas.org


Informasi bocor

(misal laporan keuangan semestinya
hanya dapat diakses oleh orang/
bagian tertentu)
Eksploitasi server WWW [2]

Penyadapan informasi



URLwatch: melihat siapa mengakses apa
saja. Masalah privacy
SSL memproteksi, namun tidak semua
menggunakan SSL karena komputasi yang
tinggi
DoS attack


Request dalam jumlah yang banyak
(bertubi-tubi)
Request yang memblokir (lambat
mengirimkan perintah GET)
Eksploitasi server WWW [3]

Digunakan untuk menipu firewall
(tunelling ke luar jaringan)

Port 80 digunakan untuk identifikasi
server (karena biasanya dibuka di
router/firewall)
 telnet ke port 80 (dibahas di bagian lain)
Membatasi Akses

Access Control



Hanya IP tertentu yang dapat
mengakses server
(konfigurasi web server atau firewall)
Via userid & password (htaccess)
Menggunakan enkripsi untuk
menyandikan data-data
htaccess di Apache

Isi berkas “.htaccess”
AuthUserFile /home/budi/.passme
AuthGroupFile /dev/null
AuthName “Khusus untuk Tamu Budi”
AuthType Basic
<Limit GET>
require user tamu
</Limit>


Membatasi akses ke user “tamu” dan password
Menggunakan perintah “htpasswd“ untuk
membuat password yang disimpan di “.passme”
Cari info server


Informasi tentang server digunakan
sebagai bagian dari casing the joint
Dapat dilakukan dengan


Memberikan perintah HTTP langsung
via telnet
Menggunakan program nc, ogre
Keamanan CGI



CGI digunakan sebagai interface
dengan sistem informasi lainnya
(gopher, WAIS)
Diimplementasikan dengan
berbagai bahasa (perl, C, C++,
python, dll.)
Skrip CGI dijalankan di server
sehingga membuka potensi
lubang keamanan
Lubang Keamanan CGI

Beberapa contoh






CGI dipasang oleh orang yang tidak berhak
CGI dijalankan berulang-ulang untuk
menghabiskan resources (CPU, disk): DoS
Masalah setuid CGI di sistem UNIX, dimana
CGI dijalankan oleh userid web server
ASP di sistem Windows
Guestbook abuse dengan informasi sampah
Akses ke database via SQL
Keamanan Client WWW

Berhubungan dengan masalah privacy



Cookies untuk tracking kemana saja browsing
Pengiriman informasi pribadi
Attack (via active script, javascript, java)



Pengiriman data-data komputer (program apa
yang terpasang, dsb.)
DoS attack (buka windows banyak)
Penyusupan virus dan trojan horse
Secure Socket Layer (SSL)



Menggunakan enkripsi untuk
mengamankan transmisi data
Mulanya dikembangkan oleh
Netscape
Implementasi gratis pun tersedia

openSSL
Sejarah SSL dan TLS
SSL 1.0
Design complete
SSL 2.0
Product ship
PCT 1.0
publihsed
SSL 3.0
publihsed
TLS
published
TLS
formed
1993
NCSA
Mosaic
released
1994
Netscape
Navigator
released
1995
Internet
Explorer
released
1996
1997
1998
1999
Pendekatan Keamanan Jaringan
Arsitektur Protokol
Contoh
Separate Protocol
Layer
SSL
Application Layer
S-HTTP
Integrated with
Core
IPSEC
Parallel Protocol
Keterangan:





Kerberos
A = Full Security
B = Multiple Application
C = Tailored Service
D = Transparent to Application
E = Easy to Deploy
A
B
C
D
E
Separated Security Protocols

Not Secure

Secure
HTTP
HTTP
SSL
TCP
TCP
IP
IP
Penambahan SSL di aplikasi lain selain HTTP
HTTP
NNTP
SSL
TCP
IP
FTP
Application Specific Security

Not Secure
HTTP

Secure
HTTP
security
TCP
TCP
IP
IP
Security within Protocols

Not Secure

Secure
HTTP
HTTP
TCP
TCP
IP
IP with IPSec
Parallel Security Protocol

Not Secure
HTTP

Secure
Kerberos
HTTP
TCP
TCP and UDP
IP
IP
Operasi SSL




SSL memiliki dua aturan yang
berbeda, untuk client dan server;
Client yang memulai secure
communication
WEB Browser => SSL untuk client
WEB Site => SSL untuk server
SSL Message
Tipe-tipe Message (Pesan)
Keterangan
Alert
Menginformasikan pihak lain dari kemungkinan kegagalan
komunikasi atau pelanggaran keamanan
Application Data
Kedua belah pihak saling tukar informasi yang aktual untuk
membuktikan keasliannya, yang dienkripsi, dan atau diverifikasi
melalui SSL
Sertifikat
Suatu pesan yang dibawa pengirim berupa public key certificate
Permintaan Sertifikat
Suatu permintaan oleh server kemudian client menyediakan public
key certificate
Verifikasi sertifikat
Suatu pembuktian sertifikate dari client bahwa itu adalah miliknya
ChangeChiperSpec
Sebuah indikasi untuk memulai persetujuan menggunakan
pelayanan keamanan (seperti enkripsi)
Client Hello
Sebuah pesan dari identifikasi client untuk kemampuan dan
mendukung pelayanan keamanan
ClientKeyExchange
Pesan berasal dari client yang membawa kunci enkripsi untuk
komunikasi
Finished
Sebuah indikasi bahwa seluruh penginisialisasi negosiasi telah
lengkap dan komunikasi telah terjaga keamanannya
HelloRequest
Permintaan server ke client untuk memulai proses negosiasi melalui
SSL
ServerHello
Sebauh pesan dari server bahwa pelayanan keamanan akan
digunakan untuk komunikasi
ServerHelloDone
Sebuah pesan dari server bahwa seluruh permintaan client telah
Komunikasi establish encrypted
`
Server
Client
ClientHello
1
ServerHello
ServerKeyExchange
ServerHelloDone
5
6
7
2
3
4
ClientKeyExchange
ChangeChiperSpec
Finished
ChangeChiperSpec
8
Fineshed
9
Proses negosiasi komunikasi yang di enskripsi
Langkah
Aksi
1
Client mengirim pesan ClientHello dengan menggusulkan pilihan
SSL
2
Server merespon dengan pesan ServerHello dengan memilih SSL
3
Server mengirimkannya informasi public key dalam bentuk pesan
ServerKeyExchange
4
Server mengakhiri negosiasi dengan pesan ServerHelloDone
5
Client mengirim session key infformation (di endskripsikan dengan
public key server) didalam pesan ClientKeyExchange
6
Client mengirim pesan ChangeCipherSet mengaktifkan negosiasi
pilihan untuk keseluruhan pesan selanjutnya (future message)
yang akan dikirimkan
7
Client mengirimkan pesan Finished selanjutnya server memeriksa
pilihan aktifitas yang terbaru
8
Server mengirim pesan ChangeCipherSet mengaktifkan negosiasi
pilihan untuk keseluruhan future message yang akan dikirimkan
9
Server mengirimkan pesan Finished selanjutnya client memeriksa
pilihan aktifitas yang terbaru
Mengakhiri secure communication
`
Server
Client
1

ClosureAlert
ClosureAlert
2
Pesan ClosureAlert menjamin akhir
dari sesi keamanan antara dua
komponen
Membuktikan keaslian identitas server



Menggunakan sertifikat sebagai pengganti
ServerKeyExchange
secara sederhana, rantai sertifikat yang dimulai
dari setifikat pubic key server dan berakhir
denga sertifikat otoritas
Client memiliki tanggung jawab untuk
meyakinkan sertifikat yang didapat berasal dari
server, tangung jawab termasuk;



Sertifikat tanda tangan
Validasi waktu
Status untuk mengambil kembali
Prosesnya
`
Server
Client
ClientHello
1
ServerHello
Certificate
ServerHelloDone
5
6
7
2
3
4
ClientKeyExchange
ChangeChiperSpec
Finished
ChangeChiperSpec
8
Fineshed
9
Format pesan (message)
HTTP
SSL
Change
Chiper
Handshake
Alert
Record Layer
TCP
Application
Sejarah WWW

Bahan bacaan




http://ensiklomedia.insan.co.id
Buku Tim Berners-Lee, “Weaving the
Web”
http://www.w3.org
Thomas, Stephen; SSL and TLS
Essentials; Willey; 2000
Download