• Tidak ada hasil yang ditemukan

LANDASAN TEOR

2.4 SSL/TLS dan OpenSSL

2.4.1 SSL/TLS

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. SSL/TLS 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

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 SSL/TLS 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

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.

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,

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.

2.5 Socket

Socket adalah titik komunikasi dari lalu lintas komunikasi antar proses di dalam sebuah jaringan komputer. Hampir semua komunikasi antar komputer sekarang berdasarkan protokol internet, oleh karena itu hampir semua socket di jaringan komputer adalah Socket Internet. Adapun tujuan utama dari sebuah socket adalah untuk dapat menjembatani komunikasi yang terjadi antara dua buah program yang dijalankan pada mesin yang sama ataupun berbeda.

Hampir semua sistem operasi menyediakan application programming

interface (API) yang memungkinkan sebuah aplikasi komputer mengkontrol dan

menggunakan socket jaringan komputer. API socket internet biasanya berdasarkan pada standar berkeley sockets.

Sebuah alamat socket terdiri atas kombinasi sebuah alamat ip dan sebuah nomor port, mirip seperti sebuah koneksi telpon yang memiliki nomer telpon dan nomor ekstensinya. Berdasarkan alamat ini, socket internet mengirim paket data yang masuk ke sebuah proses atau thread aplikasi tujuan. Socket mampu menangani banyak klien sekaligus (multiple clients).

Ada 4 jenis socket yang sering digunakan user (Tutorials point,2015) .

1. Stream Socket

Stream Socket digunakan untuk komunikasi 2 arah dan menggunakan

protokol TCP (Transmission Control Protocol). Jika salah satu mengirim 3 item melalui stream socket “A,B,C” dan sebaliknya penerima juga akan mengirimkan data yang sama “A,B,C”. Namun, jika data itu bersifat tidak mungkin, maka pengirim akan menerima error.

2. Datagram Sockets

Datagram Socket dalam melakukan proses interaksi antara client-server

tidak harus selalu terhubung terus-menerus (connectionless). Klien Dapat mengirimkan data ke server, namun data tersebut ada kemungkinan sampai ke server atau tidak. Untuk itu client menunggu sinyal „error free‟ dari server. Jika client tidak menerima sinyal „error free‟ dalam suatu kurun waktu, maka client akan mengirimkan lagi data tersebut. Datagram Socket menggunakan UDP (User Datagram Protocol).

3. Raw Sockets

Raw Socket digunakan untuk melakukan pengiriman pesan ICMP (internet control message protocol) pada layar internet/ip.

4. Sequenced Packet Sockets

Sequenced packet sockets disediakan hanya untuk bagian dari Network Systems (NS) dan juga digunakan untuk aplikasi NS. Sequenced packet sockets mengizinkan pengguna untuk memanipulasi Sequence Packet Protocol (SPP) atau Internet Datagram Protocol (IDP).

2.6 Android

Menurut Safaat Nazruddin (2011) Android adalah sistem operasi untuk perangkat

mobile berbasis Linux. Android menyediakan platform yang bersifat open source bagi

para pengembang untuk menciptakan sebuah aplikasi. Awalnya, Google Inc mengakuisi Android Inc. Yang mengembangkan software untuk ponsel yang berada di Palo Alto, California Amerika Serikat. Untuk pengembangannya, dibentuklah Open Handset Alliance, yaitu konsorsium dari 34 perusahaan hardware, software, dan telekomunikasi, termasuk Google, HTC, Intel, Motorola, Qualcomm, T-Mobile, dan Nvidia. Telepon pertama yang memakai sistem operasi Android adalah HTC Dream, yang dirilis pada 22 Oktober 2008. Pada penghujung tahun 2009 diperkirakan di dunia ini paling sedikit terdapat 18 jenis. Dari segi arsitektur sistem, Android merupakan sekumpulan framework dan virtual machine yang berjalan di atas kernel linux. Virtual machine Android bernama Dalvik Virtual Machine (DVM), engine ini berfungsi untuk menginterpretasikan dan menghubungkan seluruh kode mesin yang digunakan oleh setiap aplikasi dengan kernel linux. Sementara untuk framework aplikasi sebagian besar dikembangkan oleh google dan sebagian yang lain dikembangkan oleh pihak ketiga (developer).

Menurut King C, Ableson (2011) Android memiliki empat komponen : a. Activity

Setiap aplikasi mungkin mempunyai user interface (UI), namun tidak harus memiliki satu UI. Jika sebuah aplikasi memiliki UI, setidaknya memiliki satu Activity. Setiap activity diimplementasikan sebagai satu

class yang memperluas dasar kelas activity. Class akan menampilkan user

interface yang terdiri dari views dan merespon kejadian. Kebanyakan aplikasi terdiri dari beberapa layar. Sebagai contoh, sebuah aplikasi panggilan telepon mungkin memiliki satu layar yang menunjukkan daftar kontak untuk memanggil, layar kedua untuk menyimpan nomor telepon dan layar lain untuk memeriksa pesan masuk atau keluar. Masing-masing layar akan diimplementasikan sebagai suatu activity. Berpindah ke layar lain berarti memulai aktivity baru.

b. Broadcast Receiver

Broadcast receiver adalah komponen yang merespon terhadap siaran (broadcast) yang dikeluarkan oleh sistem. Seperti, broadcast memberitahukan bahwa layar akan mati, baterai lemah, pesan masuk. Meskipun broadcast receiver tidak menampilkan user interface, broadcast receiver bisa membuat notifikasi di status bar untuk memberitahukan user sedang terjadi broadcast. Secara umum, broadcast receiver hanyalah sebuah "gerbang" kepada komponen lain dan ditujukan untuk melakukan pekerjaan yang sangat minimal.

c. Service

Jika sebuah aplikasi memiliki sebuah siklus yang panjang, maka hal terbaik adalah meletakkannya dalam sebuah layanan. Service melakukan sinkronisasi data dibalik layar. Contohnya: saat sebuah service mendownload dari internet tanpa menganggu interaksi user dengan aktivitas yang lain.

d. Content provider

Jika sebuah aplikasi mengelola data dan butuh untuk mengekspos data ke aplikasi lain yang ada dalam lingkungan android, anda harus mempertimbangkan penyedia konten (content provider). Sebuah content

provider mengatur sekumpulan data aplikasi yang terbagi (shared). Kita

bisa menyimpan data di filesystem, sebuah database SQLite, di web, atau di metode penyimpanan data lainnya yang bisa diakses oleh aplikasi kita

Dokumen terkait