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