1 - Secure Socket

download 1 - Secure Socket

of 30

Transcript of 1 - Secure Socket

Secure Socketi

Overview Secure Socket Layer Cara Kerja SSL Implementasi SSL SSL pada Java

Secure Socket Layer Dikembangkan oleh Netscape Layer baru di antara TCP dan Protokol Aplikasi

Cara Kerja SSL (1) Secara Umum: SSL menggunakan TCP/IP dengan perintah highlevel protocol. SSL-enabled server mengautentifikasi diri ke SSLenabled client, dan kebalikannya. Server dan client berkomunikasi dengan enkripsi.

Cara Kerja SSL (2) Secara Umum (2):

Internet

Cara Kerja SSL (3) Terminologi: SSL server authentication. SSL client authentication. (optional) An encrypted SSL connection or Confidentiality. This protects against electronic eavesdropper. Integrity. This protects against hackers.

Cara Kerja SSL (4) Sub-Protokol SSL: Record Protocol Handshake Protocol Cipher Change Protocol Alert Protocol Application Encyption Protocol

Cara Kerja SSL (5) Komponen utama SSL: Sertifikat Server.1.Nama pemilik sertifikat 2.Tujuan sertifikat 3.Kunci Publik 4.Time stamp

Dikirim bersama Tanda Tangan Digital

Cara Kerja SSL (6) Tanda tangan digital hasil dari message-digest1.Sulit melakukan reverse engineering. 2.Sulit menemukan message berbeda dengan hasil digest yang sama.

Cara Kerja SSL (7) Cara membuat koneksi yang aman: SSL menggunakan Kriptografi RSA. Menggunakan kunci asimetris untuk enkripsi dan dekripsinya, kunci publik dan privat. Enkripsi dengan Public Key hanya dapat didekripsi oleh Private Key dan berlaku sebaliknya.

Implementasi SSL pada Java (1) Implementasi Pada Java dengan 4 kelas. javax.net.ssl Komunikasi Jaringan aman untuk Java

javax.net Untuk di-inherit ketika membuat kelas secure socket.

javax.security.cert Definisi untuk kunci publik sertifikat.

com.sun.net.ssl The concrete classes

Implementasi SSL pada Java (2) Sertifikat Server JAVA_HOME>\bin\ keytool -genkey -keyalg RSA -alias hawehawe -keystore localhost.jks Ketika dieksekusi, akan diminta:1.Nama Server 2.Nama Unit 3.Nama Organisasi 4.Lokasi 5.Provinsi / Negara Bagian 6.Kode Negarad country code

Implementasi SSL pada Java (3) Sertifikat Server (lanjutan)

Implementasi SSL pada Java (4) Export Sertifikat ke Web Server \bin\keytool-export -alias tomcat storepass changeit -file server.cer -keystore localhost.jks

Implementasi SSL pada Java (5) Tanda Tangan Digital \bin\keytool -import -v -trustcacerts -alias server-alias -file server.cer - keystore cacerts.jks -keypass changeit - storepass changeit

Implementasi SSL pada Java (6) Programming dilakukan dengan JSSE. Java Secure Socket Extension menyediakan framework dan implementasi SSL dan TLS. Termasuk didalamnya: Enkripsi Data. Autentifikasi Server. Integritas Pesan Autentifikasi Client.Softsmith Infotech

Implementasi SSL pada Java (7) SSLSocket and SSLServerSocket javax.net.ssl.SSLSocket adalah subclass java.net.Socket class. javax.net.ssl.SSLServerSocket merupakan SSLSocket class except untuk server

Pembuatan Obyek dengan 2 cara:1.Method createSocket. 2.Method Accept pada SSLServerSocket

Implementasi SSL pada Java (8) SSLSocketFactory and SSLServerSocketFactory The javax.net.ssl.SSLSocketFactory class is an object factory for creating secure sockets, and the javax.net.ssl.SSLServerSocketFactory is an object factory for creating server sockets. An SSLSocketFactory instance can be obtained in two ways 1.Get the default factory by calling SSLSocketFactory.getDefault. 2. Construct a new factory with specified configured behavior

Implementasi SSL pada Java (9) Contoh Implementasi

import java.io.*; import javax.net.ssl.*; public class Server { int port = portNumber; SSLServerSocket server; try { SSLServerSocketFactory factory = (SSLServerSocketFactory) SSLServerSocketFactory.getDefault(); server = (SSLServerSocket) factory.createServerSocket(portNumber); SSLSocket client = (SSLSocket) server.accept(); // Isi Program } catch(Exception e) { } }

Implementasi SSL pada Java (10) Contoh Implementasi (2) import java.io.*; import javax.net.ssl.*; public class Client { . try { SSLSocketFactory factory = (SSLSocketFactory) SSLSocketFactory.getDefault(); server = (SSLServerSocket) factory.createServerSocket(portNumber); SSLSocket client = (SSLSOcket) factory.createSocket(serverHost, port); //Isi Program } catch(Exception e) { } }

Pengujian SSL (1) Jika berhasil.

Pengujian SSL (2) Sertifikat Sever

Best Practices Enkripsi dan Dekripsi adalah beban komputasi. Tidak perlu implementasi SSL di seluruh website. Hanya diperlukan untuk validasi dan autentifikasi.

Softsmith Infotech

Kekurangan SSL Beberapa Kekurangan SSL: Caching tidak bisa dilakukan. Beban komputasi tambahan. Beberapa firewall dan web proxy melakukan block SSL traffic. Financial cost untuk sertifikat terpercaya.

Softsmith Infotech

Masalah Keamanan pada SSL (1) Unvalidated Parameters. Contoh karakter-karakter dan ; dapat digunakan untuk SQL Injection. Harus dilakukan validasi input user.

Softsmith Infotech

Masalah Keamanan pada SSL (2) Broken Access Control: Aturan mengenai direktori mana yang boleh diakses tidak diimplementasi dengan benar. Misalnya tombol back pada browser.Softsmith Infotech

Masalah Keamanan pada SSL (3) Broken Account and session Management. Cross-Site scripting Flaws Injeksi berbagai kode. Softsmith Infotech

Masalah Keamanan pada SSL (4) Buffer Overflows: Berbagai karakter di bahasa yang tidak umum. Bahasa arab, kanji dan lain-lain menggunakan library yang berbeda. Contohnya CGI, libraries, drivers and web application server components.

Softsmith Infotech

Masalah Keamanan pada SSL (5) Error Handling Problems: Perlu try dan kemudian catch berbagai exception sesuai kondisi. Ketika tidak ditangani dengan benar, sistem informasi akan ditampilkan ke penyerang. Contoh yang salah.

Catch(exception e) { MessageBox.Text = e.Message; }

Softsmith Infotech

Masalah Keamanan pada SSL (6) Remote Administration Flaws: Remote Connection merupakan sumber kerusakan utama. Contoh kecerobohan:Softsmith Infotech

1.Password dan Username Default 2.Tidak menerapkan Timeout 3.Tidak membatasi koneksi administrator.