SSLTLS dan OpenSSL LANDASAN TEORI

2.3.3 Keamanan Aplikasi Menurut Garfinkel, 2001, keamanan aplikasi adalah serangkaian prosedur, praktek, dan teknologi untuk melindungi web server, pengguna web, dan organisasi sekitarnya. Keamanan melindungi terhadap perilaku tak terduga. Keamanan aplikasi telah sering dianggap oleh praktisi sebagai kunci kerberhasilan atau kegagalan vendor yang terkait dengannya. Sering developer kesulitan untuk menerapkan kebijakan mengenai keamanan di dalam aplikasi yang mereka bangun. Di samping karena banyaknya faktor keamanan yang harus diterapkan dengan baik dan benar untuk mencegah orang yang tidak berhak mengakses sebuah aplikasi, juga karena kurangnya pengetahuan mengenai fitur keamanan apa saja yang harus diterapkan di seluruh bagian dari aplikasi tersebut. Apalagi jika harus menerapkannya secara komprehensif tidak boleh sebagian saja. Keamanan aplikasi melindungi pengguna dari resiko penipuan, hacking dan phising, sehingga meningkatkan kepercayaan konsumen Chan et all, 2013. Dalam pengamanannya, ada beberapa hal yang dilakukan sebagai access control terhadap web ataupun mobile, seperti : melakukan pembatasan akses terhadap web sehingga hanya alamat ip yang terdapat yang dapat mengaksesnya, melakukan pembatasan terhadap user user yang terdapat dalam sebuah file dengan password yang dimiliki dapat mengakses dan yang paling umum digunakan oleh perusahaan-perusahaan besar seperti perbankan, korporasi dan lainnya yaitu SSL Secure Sockets Layer.

2.4 SSLTLS dan OpenSSL

2.4.1 SSLTLS SSL Secure Sockets Layer adalah standar keamanan yang melakukan proses enkripsi antara server dan client. Atau mail server dan mail client. TLS Transport Secure Layer adalah lanjutan dari SSL. SSLTLS memungkinkan berisi informasi sensitif seperti nomor kartu kredit, nomor jaminan sosial, dan login untuk ditransmisikan dengan aman. Biasanya, data yang dikirim antara browser dan server dalam bentuk plain-text teks biasa sehingga rentan terhadap penyadapan. Jika seorang dapat mencegat semua data yang dikirimkan browser ke webserver, maka mereka dapat melihatnya dan menggunakan informasi tersebut. Lebih spesifik lagi, SSL dan TLS Universitas Sumatera Utara adalah sebuah protokol keamanan. Protokol menggambarkan bagaimana seharusnya sebuah algoritma digunakan dan dalam hal ini protokol menentukan variabel enkripsi yang akan digunakan digicert.com. Enkripsi yang digunakan di SSLTLS menggunakan enkripsi asimetris, suatu enkripsi yang menggunakan private key dan public key. Perbedaan antara SSL dan TLS sangatlah halus dan sangat teknis, tapi sistem TLS ini lebih baru dan lebih halus. Keamanan versi SSL 3.0, sebanding dengan TLS 1.0, tapi TLS 1.1 dan 1.2 mampu memberikan keamanan yang sangat tajam. Meski begitu, dua metode ini sangat mirip. Pengguna dapat mengakses situs web yang dijamin dengan SSL dan TLS melalui sistem yang disebut Hypertext Transfer Protocol Secure HTTPS. SSL dan TLS sama-sama bertujuan untuk menjamin kerahasiaan, kesatuan dan keaslian informasi yang terkait. Untuk menjaga informasi, SSL dan TLS menggunakan kriptografi. Sedangkan untuk menjaga kesatuan informasi dimungkinkan dengan menggunakan digital signature tanda tangan digital. Keaslian informasi dijamin dengan adanya sebuah sertifikat. 1. Algoritma Kriptografi Kriptografi adalah ilmu pengetahuan seni untuk menjaga pesan atau informasi agar tetap aman dari pihak-pihak yang tidak dikehendaki. Untuk menjaga keamanan data, kriptografi melakukan proses penyandian informasi yang disebut dengan enkripsi. Dimana proses enkripsi bertujuan untuk menyandikan informasi berupa plainteks kedalam bentuk chiperteks. Proses pengambilan informasi dalam bentuk cipherteks ke dalam plaintext disebut dengan proses deskripsi. Proses enkripsi dan deskripsi menggunakan algoritma cipher dan sebuah kunci. Semakin baik algoritma yang digunakan, maka semakin sulit bagi orang yang tidak mengetahui kunci rahasia untuk dalam memperoleh dan mengetahui informasi yang disandikan. Berdasarkan jenis kunci yang digunakan, algoritma kriptografi ada 2 jenis : 1. Kriptografi simetris Kriptografi simetris menggunakan kunci yang sama saat proses enkripsi dan deskripsi. Sehingga, dinamakan dengan single-key algorithm. Universitas Sumatera Utara 2. Kriptografi Asimetris Kriptografi asimetris menggunakan kunci yang berbeda saat proses enkripsi dan deskripsi. Sehingga, asimetris lebih aman untuk digunakan. Karena, pihak-pihak lain harus mengetahui 2 kunci yang digunakan. 2. Digital Signature Tanda Tangan Digital Dalam memastikan kesatuan informasi yang dikirimkan dalam setiap pertukaran informasi dalam SSL dilengkapi dengan adanya sebuah digital signature. Digital signature memiliki fungsi sebagai penanda pada data yang memastikan bhwa data tersebut adalah data yang sebenarnya. Digital signature berupa informasi yang melalui proses enkripsi dengan kunci umum menggunakan fungsi hash. Hash berfungsi mengubah masukan menjadi sebuah untaian karakter yang panjangnya tetap dan tertentu. Keluaran dari fungsi hash disebut nilai hash. Contohnya belanja online, informasi yang hendak akan dikirim oleh seorang pembeli diubah dengan fungsi hash sehingga menjadi untaian karakter yang disebut dengan message digest. Message digest kemudian akan dienkripsi oleh kunci publik menjadi digital signature. Untuk dapat membuka digital signature dibutuhkan kunci privat. Bila data telah diubah maka digital signature juga telah berubah sehingga kunci privat yang ada tidak akan bisa membukanya. Sehingga, keaslian data dapat terjamin dari perubahan-perubahan yang dilakukan pihak luar. 3. Sertifikasi Dalam hal memastikan siapa saja yang terlibat dalam pertukaran informasi lewat internet, SSL menggunakan sertifikat digital untuk mengotentikasi memastikan indentitas server. Otentifikasi pengunjung situs tidak harus dilakukan optional. Sehingga dengan sertifikat ini maka dapat terhindar dari pihak yang mengaku sebagai server dengan kunci yang salah. SSL menggunakan sertifikat X.509 untuk menvalidasi identitas. Sertifikat mengandung informasi dari pihak yang terkait, termasuk kunci publik dan nama. Universitas Sumatera Utara SSL bekerja melalui empat layer protocol Record Layer, ChangeChiperSpec protokol, Alert Protokol, dan Handshake Protokol berfungsi mengenkapsulasi semua komunikasi antara komputer client dengan server sehingga bisa terjalin koneksi yang aman McKinley, 2015. 1. Record Layer Record layer berupa layer yang melakukan format terhadap layer lainnya yaitu ChangeChiperSpec Protocol, Alert Protocol, Handshake Protocol dan application protokol messages. Format tersebut membentuk sebuah header untuk tiap pesan dan hash yang dikirim. Header mempunyai nilai 5 byte, yang berisi protocol definition 1 byte, protocol Version 2 bytes, dan Length 2 bytes. 2. ChangeChiperSpec Protocol Layer ChangeCipherSpec adalah suatu pesan yang memberi sinyal untuk memulai komunikasi yang aman antara client dan server. Meskipun protokol ini menggunakan format record layer, layer ini sebenarnya hanya sebesar 1 byte. 3. Alert Protocol Protokol ini mengirimkan error, masalah, ataupun warning mengenai koneksi antara klien dan server. Layer ini terbentuk dari dua field yaitu severity level dan alert description. Severity Level mengirim pesan dengan nilai “1” atau “2”, tergantung pada level concern- nya. Pesan dengan nilai “1” berarti sebuah peringatan agar klien dan server memutus session yang telah mereka lakukan dan reconnect lagi menggunakan handshake baru. Sedangkan nilai “2” berarti sebuah fatal alert message dan mengharuskan kedua belah pihak untuk mengakhiri session mereka. Kemudian field alert description yang bertugas mendeskripsikan secara spesifik error yang menyebabkan alert message tersebut keluar. 4. Handshake Protocol Handshake protocol adalah proses pengiriman pesan secara bolak-balik dan terus-menerus antara klien dan server untuk memulai sebuah komunikasi yang aman. Terdapat beberapa tahap dalam proses handshake ini yaitu: ClientHello, ServerHello, ServerKeyExChange, ServerHelloDone, ClientKeyExChange, ChangeCipherSpec, Finished, ChangeCipherSpec, Finished. Universitas Sumatera Utara TLS merupakan penerus dari SSL. Namun pada pengembangannya, TLS menerapkan dua level protokol pada kinerja untuk lebih meningkatkan keamanan McKinley, 2015 : 1. TLS Record Protocol TLS record protocol berfungsi untuk melakukan koneksi dan negoisasi yang privat dan handal antara klien dan server. Meski record protocol bisa digunakan tanpa enkripsi, namun protokol ini tetap menggunakan kunci kriptografi simetris symmetric cryptography Keys untuk memastikan privasi keamanan koneksi. Koneksi ini diamankan melalui pemakaian fungsi hash yang dihasilkan oleh Message Authentication Code. 2. TLS Handshake Protokol TLS Handshake protocol memberikan izin untuk mengautentikasi sebuah komunikasi untuk memulai koneksi antara klien dan server. Protokol ini mengijinkan klien dan server untuk saling berkomunikasi dengan bahasa yang sama dan 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 proses handshake tersebut. 2.4.2 OpenSSL Menurut www.openssl.org, OpenSSL adalah proyek open source yang menyediakan layanan yang kuat, commercial-grade, dan toolkit dengan fitur lengkap untuk Transport Layer Security TLS dan Secure Socket Layer SSL protokol. OpenSSL juga merupakan sebuah library kriptografi untuk tujuan yang sama. OpenSSL toolkit ini di bawah lisensi Apache, yang pada dasarnya berarti bahwa anda bebas untuk mendapatkan dan menggunakannya untuk tujuan komersial dan non-komersial dan harus tunduk pada beberapa kondisi lisensi sederhana. OpenSSL memberikan layanan untuk menjaga keamanan komunikasi dari pihak yang tidak diinginkan. Universitas Sumatera Utara

2.5 Socket