ANALISIS POTENSI CELAH KEAMANAN PADA WEBSITE SINGLE SIGN ON YANG MENGGUNAKAN PROTOKOL OPENID

  TUGAS AKHIR – TE 141599

ANALISIS POTENSI CELAH KEAMANAN PADA WEBSITE

SINGLE SIGN ON YANG MENGGUNAKAN PROTOKOL OPENID

  Akhirul Hajri NRP 2210100093 Dosen Pembimbing Christyowidiasmoro, ST.,MT Reza Fuad Rachmadi, ST., MT JURUSAN TEKNIK ELEKTRO Fakultas Teknologi Industri Institut Teknologi Sepuluh Nopember

  TUGAS AKHIR – TE 141599 ANALISIS POTENSI CELAH KEAMANAN PADA WEBSITE SINGLE SIGN ON YANG MENGGUNAKAN PROTOKOL OPENID

  Akhirul Hajri NRP 2210100093 Dosen Pembimbing Christyowidiasmoro, ST.,MT Reza Fuad Rachmadi, ST., MT JURUSAN TEKNIK ELEKTRO Fakultas Teknologi Industri Institut Teknologi Sepuluh Nopember

FINAL PROJECT

  • – TE 141599

  

VULNERABILITY ANALISYS ON SINGLE SIGN ON WEBSITE

THAT USE OPENID PROTOCOL

  Akhirul Hajri NRP 2210100093

  Advisors

  Christyowidiasmoro, ST.,MT Reza Fuad Rachmadi, ST., MT

  Departement of Electrical Engineering Faculty of Industrial Technology Sepuluh Nopember Institute of Technology Surabaya 2015

  

ABSTRAK

Single sign on adalah metode yang memungkinkan pengguna hanya perlu

  melakukan satu kali proses otentikasi untuk menggunakan beberapa layanan. Salah satu protokol dalam single sign on adalah protokol

  

OpenID . Proses otentikasi pada OpenID yang menggunakan satu akun

  untuk beberapa website, serta tanpa menggunakan sebuah kode sandi dan proses otentikasi berada diluar sistem/website penyedia layanan, timbul pertanyaan bagaimana tingkat keamanan pada protokol OpenID ini Untuk itu dilakukan pengujian keamanan pada protokol OpenID.Tugas Akhir ini bertujuan untuk menguji dan menemukan potensi celah keamanan yang terdapat pada protokol OpenID serta menemukan solusi untuk mengatasi dan menghindarkan pengguna dari bahaya celah keamanan tersebut. Berdasarkan pengujian yang telah dilakukan proses pengalihan memungkinkan pengguna menjadi korban Phishing. Cara terbaik untuk mencegah tindakan phishing adalah dengan cara tidak menampilkan halaman login pada proses pengalihan jika pengguna belum diotentikasi di Provider. Selain itu ketika akun pengguna di Relying Party dicuri, maka berpotensi kode token yang tersimpan pada Relying Party juga dapat dicuri dan ini akan membahayakan data-data pengguna di Provider. Untuk mengatasi celah keamanan ini, Provider harus membuat sebuah regulasi untuk membatasi website yang bisa menggunakan protokol

  OpenID .

  Kata kunci: Single sign on, OpenID, phishing, kode token,dan keamanan data.

  

(Halaman ini sengaja dikosongkan)

  

ABSTRACT

Single sign on is a method which allow users to gain access to several

services with just one authentication. One of the protocols in a single

sign-on is the OpenID protocol. Authentication process in OpenID use

one account for multiple websites, and without using a password and

authentication processes are outside the system / website Relying Party.

Raises the question of how the level of security in this OpenID protocol.

Therefore dilakukan penetration testing to determine the quality of

security in the OpenID protocol. The purpose of this penetration testing

is to find the vulnerability in OpenID Protocol and find the solution to fix

that and prevent users from the dangers of the vulnerability. Based on the

penetration testing that was done the process of allowing users become

victims of Phishing. The best way to prevent phishing action is to not

display the login page in the transfer process if the user has not been

authenticated in Provider. Additionally, when a user account on Relying

Party is stolen, then potentially token code stored on a Relying Party can

also be stolen and this will harm the user data in Provider. To resolve this

vulnerability, Providers must make a regulation to limit the websites that

can use the OpenID protocol.

  

Keywords: Single Sign On, OpenID, phishing, session hijacking dan data

security.

  

(Halaman ini sengaja dikosongkan)

KATA PENGANTAR

  Puji syukur kehadirat ALLAH SWT atas segala rahmat dan karunia-Nya, penulis dapat menyelesaikan penelitian ini dengan judul :

  

Analisis Potensi Celah Keamanan pada Website Single Sign On yang

menggunakan Protokol OpenID

  Penelitian ini disusun dalam rangka pemenuhan bidang riset di Jurusan Teknik Elektro ITS, Bidang Studi Teknik Komputer dan Telematika, serta digunakan sebagai persyaratan menyelesaikan pendidikan S-1. Penelitian ini dapat terselesaikan tidak lepas dari bantuan berbagai pihak. Oleh karena itu, penulis mengucapkan terima kasih kepada:

  1. Ayah dan ibu yang sangat banyak membantu dalam semua hal, terutama dalam hal spiritual dan material. Karena berkat doa dari kedua orang tualah semua proses penelitian tugas akhir ini dapat berjalan dengan lancar.

  2. Bapak Dr. Tri Arief Sardjono, ST., MT. selaku Ketua Jurusan Teknik Elektro, Fakultas Teknologi Industri, Institut Teknologi Sepuluh Nopember.

  3. Bapak Christyowidiasmoro, ST., MT dan Bapak Reza Fuad Rachmadi, ST., MT, selaku dosen pembimbing yang selalu memberikan saran serta bantuan dalam penelitian ini.

  4. Bapak Ibu dosen pengajar Jurusan Teknik Elektro, 5.

  Seluruh teman-teman asisten bidang Studi Teknik Komputer dan Telematika Teknik Elektro ITS. Kesmpurnaan hanya milik ALLAH SWT, untuk itu penulis memohon segenap kritik dan saran yang membangun serta meminta maaf atas segala kekurangan yang ada dalam penulisan buku ini. Semoga penelitian ini dapat memberikan manfaat bagi kita semua. Amin.

  Surabaya. Juli 2015 Penulis

  

(Halaman ini sengaja dikosongkan)

  DAFTAR ISI

  2.5 Packet Sniffing ................................................................. 15

  3.3.4 Pengujian keamanan AppID/ClientID dan App

  3.3.3 Meretas Website Relying Party ............................... 30

  3.3.2 DNS Spoofing ......................................................... 29

  3.3.1 Pengujian Protokol Transfer Paket Data ................ 28

  3.3 Sistematika Pengujian Sistem .......................................... 27

  3.2 Simulasi Sistem ............................................................... 25

  3.1 Desain Sistem .................................................................. 19

  BAB 3 DESAIN DAN SISTEMATIKA PENGUJIAN .............. 19

  2.9 Kode Token Akses ........................................................... 19

  2.8 Phishing ........................................................................... 18

  2.7 Cookies ............................................................................ 16

  2.6 Session Hijacking ............................................................. 16

  2.4 Hypertext Transfer Protocol (HTTP) ............................... 14

  ABSTRAK .................................................................................. i ABSTRACT ................................................................................ iii KATA PENGANTAR ................................................................ v DAFTAR ISI ............................................................................... vii DAFTAR GAMBAR .................................................................. ix DAFTAR TABEL ....................................................................... xi DAFTAR KODE ........................................................................ xiii

  OpenID .................................................................... 12

  2.3.2 Proses Otentikasi dan Cara Kerja Protokol

  2.3.1 Prosedu Penggunaan Protokol OpenID .................. 9

  2.3 OpenID ............................................................................ 7

  2.2 Single Sign On ................................................................. 5

  2.1 Otentikasi ......................................................................... 5

  BAB 2 DASAR TEORI .............................................................. 5

  1.5 Sistematika Penulisan ...................................................... 4

  1.4 Batasan Masalah .............................................................. 3

  1.3 Tujuan ............................................................................. 3

  1.2 Permasalahan ................................................................... 2

  1.1 Latar Belakang ................................................................. 1

  BAB 1 PENDAHULUAN .......................................................... 1

  Secret/Client Secret ................................................. 32

  3.3.5 Pencurian Kode Token ........................................... 33

  3.3.6 Menembus batasan otorisasi provider .................... 34

  BAB 4 ANALISA DAN PENGUJIAN SISTEM ....................... 37

  4.1 Analisa Prinsip Kerja OpenID ......................................... 37

  4.2 Pengujian Keamanan Sistem pada OpenID ..................... 41

  4.2.1 Pengujian Protokol Transfer Paket Data (HTTP) ... 41

  4.2.2 Pencurian Kode Token ........................................... 43

  4.2.3 Pemalsuan Halaman Login Provider ...................... 44

  4.2.4 Pengujian Keamanan AppID/ClientID dan

  AppSecret/Client Secret Relying Party ................... 52

  4.2.5 Menembus Batasan otorisasi yang diberikan Provider ................................................................... 55

  4.3 Potensi Celah Keamanan dan Potensi Bahaya yang dapat Dapat terjadi .................................................................... 56

  4.4 Saran dan Metode untuk Mencegah Pengguna Terjebak Dalam Celah Keamanan .................................................. 58

  BAB 5 PENUTUP ...................................................................... 65

  5.1 Kesimpulan ...................................................................... 65

  5.2 Saran ................................................................................ 66 DAFTAR PUSTAKA ................................................................. 67 BIOGRAFI PENULIS ................................................................ 69

  Daftar Tabel

Tabel 2.1 Daftar Provider OpenID .......................................... 14Tabel 3.1 Data pengguna untuk provider Google .................... 22Tabel 3.2 Data pengguna untuk provider Facebook ................ 23Tabel 3.3 Tabel Kode Token ................................................... 23Tabel 4.1 Tabel penyimpanan email dan password pengguna

  Di basisdata ............................................................. 46

  

(Halaman ini sengaja dikosongkan)

  Daftar Gambar

Gambar 2.1 Gambaran Metode Sign On .................................. 6Gambar 2.2 Gambaran Metode Single Sign On ....................... 7Gambar 2.3 Tombol Login dengan Google .............................. 8Gambar 2.4 Permintaan izin mengakses data Pengguna .......... 9Gambar 2.5 Pengguna Berhasil Login dengan Google ............. 10Gambar 2.6 Kolom Login dengan Wordpress .......................... 10Gambar 2.7 Permintaan izin mengakses data Pengguna .......... 11Gambar 2.8 Pengguna Berhasil Login dengan Wordpress ....... 11Gambar 2.9 Alur Relying Party mendapatkan kode token

  Pengguna .............................................................. 17

Gambar 3.1 Arsitektur Protokol OpenID ................................. 19Gambar 3.2 Data Aplikasi Google ........................................... 21Gambar 3.3 Data Aplikasi Facebook ........................................ 22Gambar 3.4 Halaman Awal website Relying Party .................. 25Gambar 3.5 Permintaan izin aplikasi untuk mengakses data

  Pengguna di Facebook .......................................... 26

Gambar 3.6 Permintaan izin aplikasi untuk mengakses data

  Pengguna di Google ............................................. 26

Gambar 3.7 Data Pengguna yang tersimpan di database

   Relying Party ........................................................ ` 27

Gambar 3.8 Metodelogi Penelitian ........................................... 28Gambar 3.9 Skema Pengujian Protokol HTTP ......................... 29Gambar 3.10 Proses Otentikasi OpenID[3] ................................ 29Gambar 3.11 Cara Kerja DNS Spoofing ..................................... 30Gambar 3.12 Skema kerja peretasan website Relying Party ...... 32Gambar 3.13 Skema pencurian kode token ................................ 34Gambar 3.14 Skema menembus batasan Otorisasi ..................... 35Gambar 4.1 Daftar Hak Akses yang disediakan Facebook ...... 40Gambar 4.2 Hasil Sniffing pada aplikasi Wireshark ................. 41Gambar 4.3 Kode Token yang ditemukan ................................ 43Gambar 4.4 Proses menambahkan cookies di browser Mozilla

  Firefox .................................................................. 43

Gambar 4.5 Berhasil Login pada akun Ikan Koi dengan

  Menggunakan cookies .......................................... 44

Gambar 4.6 Halaman Login Facebook Palsu ........................... 45Gambar 4.7 Halaman Login Google Palsu ............................... 46Gambar 4.8 Tampilan hasil DNS Spoofing dari computer P .... 48Gambar 4.9 Dampak DNS Spoofing pada Komputer K ........... 49Gambar 4.10 Peretasan website Relying Party ........................... 51Gambar 4.11 Tautan Referensi yang asli ................................... 52Gambar 4.12 Tautan Referensi yang sudah diubah menuju

  Halaman Palsu ...................................................... 52

Gambar 4.13 Hasil teknik Phishing ........................................... 52Gambar 4.14 Pesan Kesalahan dari Facebook ........................... 54Gambar 4.15 Pesan Kesalahan dari Google ............................... 54Gambar 4.16 Pesan Kesalahan otorisasi .................................... 56Gambar 4.17 Halaman Utama Facebook ................................... 59Gambar 4.18 Halama Login ketika proses pengalihan ............... 59Gambar 4.19 Halaman Login Gmail tanpa pengalihan .............. 60Gambar 4.20 Halaman Login Gmail ketika proses pengalihan .. 61Gambar 4.21 Peringatan sebelum Login dengan OpenID .......... 62

  Daftar Kode

  Kode 2.1 Parameter dalam otentikasi ..................................... 13 Kode 3.1 Parameter dalam otentikasi ..................................... 22 Kode 3.2 Kode untuk memeriksa pengguna ketika login

  Dengan OpenID ....................................................... 24 Kode 3.3 Tautan referensi pada tombol “Sign with Google”.. 31

  

(Halaman ini sengaja dikosongkan)

BIOGRAFI PENULIS

  Akhirul Hajri lahir di Lubuk Jambi pada tanggal

  30 Juni 1992. Menyelesaikan pendidikan SD di SDN 001 Pasar Lubuk Jambi pada tahun 2004, kemudian melanjutkan pendidikan SMP di SMPN1 Kuantan Mudik dan lulus pada tahun 2007 dan menyelesaikan pendidikan SMA di SMAN Plus Provinsi Riau pada tahun 2010. Setelah lulus SMA, penulis melanjutkan pendidikan S1 di jurusan Teknik Elektro Institut Teknologi Sepuluh Nopember (ITS). Penulis sangat tertarik dengan jaringan komputer dan pernah mengikuti pelatihan serta sertifikasi jaringan komputer yang diadakan oleh salah satu perusahaan telekomunikasi PT Huawei, yaitu Huawei Ceritified Datacom Associate (HCDA) pada tahun 2014.

BAB 1 PENDAHULUAN

1.1 Latar Belakang

  Single Sign On merupakan sebuah metode dimana pengguna hanya sekali melakukan login untuk dapat mengakses network resources yang ada. Metode single sign on menggunakan pihak ketiga sebagai pengelola username dan password dari pengguna aplikasi. Pada dasarnya otentikasi single sign on hanya melibatkan satu credential user untuk login ke banyak aplikasi berbasis website setelah sebelumnya melakukan otentikasi pada salah satu aplikasi yang terintegrasi dengan sistem Single Sign On.

  Salah satu protokol yang digunakan dalam single sign on adalah protokol OpenID. Pada OpenID ini terdapat 3 pihak yang terlibat yaitu pengguna, pihak client atau lebih dikenal sebagai Relying Party dan pihak provider sebagai otentikator/penyedia jasa otentikasi dan penyimpan data pengguna. Proses otentikasi protokol OpenID menggunakan jasa pihak ketiga dan berada diluar sistem penyedia layanan. Jadi ketika proses otentikasi, pengguna akan dialihkan menuju sistem provider untuk diotentikasi. Ketika pengguna telah diotentikasi,

  

provider akan memberitahukan kepada Relying Party bahwa pengguna

telah diotentikasi dan bisa menggunakan layanannya.

  Pada protokol OpenID terjalin kerja sama antara Relying Party dan Provider dalam hal identitas dan data-data pengguna. dari kerja sama yang terjalin antara provider dan Relying Party, Relying Party akan mendapatkan hak untuk mengakses data-data pengguna yang ada di provider. Dan untuk keamanan dan kenyamanan pengguna, seharusnya tidak semua data-data pengguna bisa diakses oleh Relying

  

Party , harus ada regulasi untuk membatasi Relying Party untuk

mengakses data pengguna.

  Karena protokol OpenID ini adalah protokol untuk proses otentikasi, faktor keamanana adalah hal yang paling utama dalam proses otentikasi ini. Data-data untuk proses otentikasi harus dalam kondisi aman dan tidak boleh diketahui orang lain. Untuk itu dibutuhkan kredibilitas yang tinggi untuk bisa menjalin kerja sama antara Relying

  

Party dan Provider. Serta jaminan sistem yang benar-benar aman,

  dikarenakan hal ini berkaitan dengan keamanan data pengguna. Selain itu, proses otentikasi pada OpenID yang menggunakan 1 akun untuk beberapa website, serta tanpa menggunakan sebuah kode sandi dan proses otentikasi berada diluar sistem/website penyedia layanan. menimbulkan pertanyaan bagaimana tingkat keamanan pada protokol ini. Untuk itu dilakukan pengujian tingkat keamanan dan

  OpenID

  analisa mendalam pada protokol OpenID untuk mencari tahu potensi celah keamanan yang bisa terjadi. Dengan mengetahui potensi yang terdapat dalam protokol OpenID kemudian dapat dicari solusi untuk mengatasi celah keamanan tersebut. Dan diharapkan pengguna aplikasi dapat terhindar dari tindakan kriminal (cyber crime) dan berbagai tindakan hacking lainnya.

1.2 Permasalahan

  Pengunaan protokol HTTP (Hyper Text Transfer protocol) dalam proses otentikasi berpotensi menimbulkan celah keamanan yang besar. Potensi celah ini akan menimbulkan celah-celah keamanan yang lain. Akibat dari penggunaan protokol HTTP, dan tidak menggunakan saluran yang aman seperti SSL (Secure Socket Layer), semua data otentikasi sangat terbuka dan tidak terenkripsi. Dan ini sangat berbahaya, karena orang lain dapat melihat parameter-parameter yang digunakan dalam proses otentikasi. Dan parameter-parameter tersebut dapat dimanfaatkan untuk membajak akun dari pengguna dengan berbagai metode hacking, seperti session hijacking, parameter injection, dan lain sebagainya.

  Tidak hanya itu, proses redirect/pengalihan ke pihak provider juga mempunyai kerentanan terhadap tindakan phishing, yaitu dengan memalsukan halaman pihak provider. Phishing tentu sangat berbahaya karena jika pengguna terjebak didalamnya, maka peretas akan mendapatkan username dan password pengguna aplikasi.

  Jika akun pengguna di Relying Party diretas orang lain akan berpotensi menimbulkan bahaya baru, yaitu ada potensi pencurian kode token yang diberikan provider kepada Relying Party. Dimana kode token ini berfungsi sebagai alat untuk mendapatkan hak untuk mengakses data pengguna di provider.

  Setiap provider mempunyai regulasi sendiri tentang hak akses yang diberikan kepada Relying Party. Kelemahan provider bisa mengakibatkan ternjadinya pembobolan hak akses yang seharusnya tidak dimiliki oleh Relying Party menjadi bisa di akses.

  1.3 Tujuan

  Penelitian tugas akhir ini bertujuan menganilisis potensi celah keamanan pada aplikasi website yang menggunakan metode SSO, khususnya yang menggunakan protokol OpenID. Dengan ditemukannya celah keamanan yang terdapat pada penggunaan protokol OpenID ini, dapat dicari solusi untuk mengatasinya. Dengan begitu diharapkan dapat meminimalisir tindakan kriminal (cyber crime) dan tindakan pencurian akun lainnya, serta diharapkan juga dapat membantu administrator website mengetahui celah keamanan pada sistem yang dikelolanya dan kemudian meningkatkan kualitas keamanan pada sistemnya.

  1.4 Batasan Masalah

  Batasan masalah dalam pengerjaam tugas akhir ini adalah proses analisis yang hanya terbatas pada:

  1. Website single sign on yang menggunakan protkol OpenID 2.

  Hasil pengujian merupakan hasil yang didapat selama penelitian tugas akhir ini, jadi jika setelah laporan Tugas Akhir ini hasil pengujian tidak berfungsi lagi, kemungkinan sistem telah diperbaiki dan kualitas keamanan sistem telah ditingkatkan 3.

  Sampel yang digunakan untuk objek pengujian hanya untuk besar, seperti Google, Facebook dan Wordpress.

  provider

  1.5 Sistematika Penulisan

  Sistematika penulisan laporan Tugas Akhir ini dibagi dalam 4 bab, masing-masing bab diuraikan sebagai berikut:

  1. Bab 1 Merupakan pendahuluan yang berisi latar belakang, tujuan permasalahan, batasan masalah, metodelogi dan sistematika penulisan.

  2. Bab 2 Teori penunjang dan kepustakan yang digunakan dalam proses tugas akhir ini.

  3. Bab 3 Desain sistem dan sistematika pengujian keamananan.

  4. Bab 4 Hasil analisa dan pengujian keamanan sistem serta solusi untuk mengatasi permasalahan keamanan pada sistem.

BAB 2 DASAR TEORI

2.1 Otentikasi

  Otentikasi adalah sebuah metode untuk memverifikasi seorang pengguna yang mempunyai hak untuk mengakses suatu sistem terntentu. Proses otentikasi dibutuhkan untuk memperkuat keamanan sistem, untuk itu ada beberapa faktor dalam proses otentikasi seorang pengguna, yaitu: a. Sesuatu yang diketahui oleh pengguna, misalnya seperti kata sandi dan kode PIN(Personal Idetification Number).

  b. Sesuatu yang dimiliki pengguna, misalnya seperti kode token atau sebuah sertifikat perangkat lunak.

  c. Sesuatu yang ada pada diri pengguna, misalnya seperti sidik jari atau retina dari pengguna. Jika semua faktor tersebut diterapkan dengan benar, maka seorang peretas akan lebih sulit untuk melakukang penyerangan/peretasan terhadap suatu sistem, karena terdapat satu faktor yang tidak dimiliki oleh seorang peretas, seperti sesuatu yang ada pada diri pengguna, yaitu sidik jari. Dengan demikian informasi rahasia mennjadi lebih aman.

  Ada beberapa kombinasi factor-faktor dalam proses otentikasi yang biasa digunakan untuk meningkatkan kualitas keamanan sistem, seperti :

  a. Sebuah kartu pintar yang digunakan bersama dengan pembaca kartu pintar (smartcard reader) dan kode PIN.

  b. Sidik jari yang digunakan bersama kata sandi atau kode PIN

  c. Sertifikat perangkat lunak yang tersimpan dikomputer yang hanya dapat diakses dengan sebuah kata sandi atau kode PIN.

  [11] Semakin banyak kombinasi faktor yang digunakan akan membuat peluang peretas untuk melakukan pencurian data semakin kecil.

  Single sign on

2.2 Single sign on adalah sebuah metode yang memungkinkan

  pengguna dapat menggunakan beberapa layanan sekaligus hanya dengan mengguna satu username/userid dan password saja. Pada single sign on ini, proses otentikasi hanya sekali, kemudian proses otentikasi akan dilakukan dengan otomatis ketika pengguna membuat layanan lain melalui sebuah session [1] Jadi, jika pengguna menggunakan metode single sign on pada website, maka pengguna hanya perlu melakukan satu kali login dan kemudian pengguna dapat menggunakan beberapa layanan yang lain tanpa perlu memasukan password lagi. Untuk perbandingan antara metode single sign on dengan metode sign on dapat dilihat pada gambar 2.1 dan gambar 2.2

  Gambar 2.1

  Metode Sign On

Gambar 2.2 Metode Single sign on

2.3 OpenID

  OpenID

  adalah sebuah protokol terbuka yang memungkin pengguna untuk dapat menggunakan akun yang telah ada untuk login pada beberapa website tanpa perlu membuat password baru.[13] Jadi, dengan OpenID, pengguna dapat login pada website lain dengan akun yahoo miliknya. [12]

  Pada protokol OpenID ini, terdapat 3 pihak yang terlibat, yaitu: a.

   Identity Provider

  Identity provider adalah website yang bertugas sebagai penyedia identitas pengguna, misalnya Google, Yahoo, Facebook, dan Twitter.

  b.

   Relying Party

  Relying Party adalah website yang menggunakan jasa identity

  provider .

c. Pengguna

  Pengguna dapat memilih informasi apa saja yang akan diberikan atau informasi apa saja yang dapat diakses oleh website yang dikunjugi oleh pengguna. Sedangkan untuk password pengguna hanya diketahui oleh provider, dan provider yang mengelola identitas dari pengguna, selain itu tidak website yang mengetahui password pengguna. [13]

  Jadi, dengan OpenID ini, pengguna dapat login pada suatu website dengan menggunakan akun diwebsite lain. Misalnya, pengguna A dapat

  login

  website livejournal.com dengan menggunakan akun Google yang dimilikinya. Tapi dalam hal ini, website livejournal.com hanya mendapatkan beberapa hak untuk mengakses data pengguna dan hak tersebut harus sudah disetujui oleh pengguna A. livejournal.com tidak mengetahui password akun Google pengguna A. Dengan metode login seperti ini, seorang pengguna tidak perlu lagi mengingat banyak userid dan password untuk login pada beberapa website yang berbeda.

  Saat ini OpenID memiliki lebih dari satu miliar pengguna OpenID dan lebih dari 50.000 website menggunakan OpenID untuk login. Beberapa perusahaan besar menggunakan OpenID, termasuk Google, Facebook, Yahoo !, Microsoft, AOL, MySpace, Sears, Universal Music Group, France Telecom, Novell, Sun, Telecom Italia, dan masih banyak lagi. [13]

2.3.1 Prosedur Penggunaan Protokol OpenID

  Berikut adalah proses ketika pengguna login pada Website livejournal.com dengan menggunakan OpenID (menggunakan provider Google dan wordpress)

1. Menggunakan Google

a. Pengguna memilih login ke Website livejournal.com dengan akun Google+.

  Gambar 2.3

  Tombol Login Dengan Goole b. Kemudian pengguna akan dialihkan ke website Google untuk otentikasi, serta meminta persetujuan pengguna bahwa website livejournal.com akan mengakses informasi tentang pengguna yang tersimpan di provider.

  Gambar 2.4

  Permintaan izin mengakses data pengguna

c. Setelah pengguna memberikan persetujuan kepada Relying

  Party

  , selanjutnya pengguna bisa menggunakan layanan pada Website livejournal.com

  Gambar 2.5

  Pengguna Berhasil login dengan Google 2. Menggunakan url wordpress.

a. Pengguna memilih login ke Website livejournal.com dengan

  URL http://tugasakhir2015.wordpress.com Gambar 2.6

  Kolom login dengan Wordpress

  b. Kemudian, pengguna akan dialihkan ke website wordpress.com untuk otentikasi dan meminta persetujuan pengguna bahwa website livejournal.com akan mengakses informasi tentang pengguna yang tersimpan di wordpress.com

  Gambar 2.7

  Verifikasi data pengguna

  c. Setelah itu, pengguna akan dialihkan kembali ke website livejournal.com

  Gambar 2.8

  Pengguna Berhasil Login dengan Wordpress

2.3.2 Proses Otentikasi dan Cara Kerja Protokol OpenID

  Adapun prinsip kerja OpenID secara teknis dan proses otentikasi di lakukan adalah sebagai berikut: a. Pengguna memasukan URL OpenID pada kolom yang tersedia (misalnya: di website Relying

  Party .

  b. Untuk mengetahui Provider yang digunakan oleh pengguna,

  Relying Party menggunakan URL yang dikirimkan oleh

  Pengguna. Pada umumnya URL identifier OpenID terletak pada bagian <head> dari kode html Website Relying Party, lebih spesifiknya terletak pada tag <link>. Didalam tag <link> ini terdapat atribut rel=”openid2.provider” serta link dari OpenID provider yang digunakan.

  c. Setelah Relying Party mengetahui OpenID provider yang digunakan, maka Relying Party akan membuat sebuah prosedur keamanan dengan OpenID Provider menggunakan algoritma Diffie-Hellman yaitu dengan membuat security key.

  Security

  key ini akan digunakan untuk memverifikasi dalam pertukaran data antara keduanya.

  d. Kemudian Relying Party akan mengalihkan pengguna ke

  Website

  OpenID menggunakan sebuah URL identifier yang terdiri dari semua parameter yang dibutuhkan untuk proses

  setup otentikasi (openid.mode=chceckid ).

  Parameter-parameter tersebut adalah identias dari pengguna

  OpenID

  (openid.identity), asosiasi (openid.assoc) dan URL yang akan mengalihkan pengguna kembali ke

  Website Relying Party (openid.return to). Selain itu,

  biasanya Relying Party juga akan meminta parameter tambahan kepada OpenID provider seperti nama lengkap, jenis kelamin, dan email. Berikut adalah contoh parameter yang digunakan:

  GET /openid-auth?OpenID.mode= checked_setup&OpenID.identity =http://alice.myid.org&openid .return_to=http://www.example.org /openid-login&openid.assoc_handle =xxxxxxxxxxxxxxxx HTTP/1.1 Host: myid.org

  Kode 2.1

  Parameter dalam otentikasi

e. Selanjutnya pengguna akan melakukan proses otentikasi di

  Website

  OpenID provider (memasukan penggunaname dan

  password

  ) kemudian memberikan persetujuan dari permintaan

  Relying Party untuk mengakses informasi pengguna tersebut.

  Demi kenyamaan pengguna, biasanya Relying Party akan membuat sebuah HTTP Cookies untuk memudahkan pengguna kedepannya jika akan kembali menggunakan OpenID.

  f. Setelah pengguna melakukan proses otentikasi dan pemberian izin akses (otorisasi), kemudian pengguna akan di alihkan kembali ke Website Relying Party melalui sebuah URL yang

  authentication response

  terdiri dari parameter (openid.mode=id res), indentitas pengguna OpenID

  Relying Party

  (openid.identity), alamat

  to nonce

  (openid.return ), parameter (OpenID.response nonce) dan cryptographic signature (openid.sig) [6]

  Jadi, hampir semua proses otentikasi pada OpenID dapat dilihat langsung, karena semua parameter tersimpan di dalam redirect-URL. untuk menghindari hal yang tidak diinginkan, Provider akan memvalidasi

  

redirect-URL yang di terimanya dari Relying Party berdasarkan redirect-

URL

  yang sudah terdaftar sebelumnya.

  Saat ini OpenID masih dalam tahap adopsi dan akan semakin populer seiring dengan banyaknya perusahaan besar yang mulai menerima dan menjadi penyedia layanan (provider) OpenID. Berdasarkan data pada Desember 2009 diperkirakan sudah lebih dari 1 Miliar pengguna OpenID menggunakan URL (URL enabled) dengan sekitar kurang lebih 9 juta situs yang mendukung login melalui OpenID.

  Berikut beberapa penyedia layanan OpenID Tabel 2.1

  Daftar Provider OpenID

  Penyedia Layanan Format URL

  Google Google.com/account/me

  OpenID

  Yahoo .yahoo.com MyOpenID username.myOpenID.com LiveJournal username.livejournal.com

  OpenID

  AOL .aol.com/username Wordpress username.wordpress.com Blogspot username.blogspot.com Verisign username.pip.verisignlabs.com Google Profile google.com/profiles/username

  Hypertext Transfer Protocol (HTTP)

  2.4 Pengertian HTTP adalah Singkatan dari Hyper Text Transfer Protocol

  , protokol yang mendasari oleh World Wide Web. Dalam pengertian HTTP menetapkan bagaimana pesan diformat dan ditransmisikan, dan apa tindakan dari webserver dan browser sebagai respon pada berbagai perintah.

  Secara khusus HTTP dapat diartikan sebagai pesan yang berbentuk format dan dapat dikirim melalui sebuah server ke Client. HTTP juga berfungsi sebagai alat yang mengatur bentuk dan aksi apapun yang dilakukan oleh Web Server juga Web Browser untuk direspon atas perintah yang ada pada protokol HTTP.

  2.5 Packet Sniffing Packet sniffing

  adalah metode penyadapan data-data yang berada di jaringan, dimana, dengan menggunakan metode ini, seorang peretas dapat melihat data pengguna lain yang dikirim dijaringan. Adapun perangkat yang digunakan untuk melakukan sniffing disebut dengan

  packet sniffer

  . Packet sniffer ini bekerja pada layer Transmission Control

  Protocol/Internet Protocol (TCP/IP) [14].

  Paket sniffing dapat dilakukan tidak hanya pada jaringan lokal saja (LAN), tetapi juga bisa dilakukan pada jaringan yang lebih luas(WAN).

  

Packet sniffing ini umumnya digunakan untuk menganalisa paket data

  yang dikirimkan dijaringan dengan tujuan untuk mengetahui permasalahan yang terjadi dijaringan. Namun dalam perkembangannya,

  packet

  sniffing lebih sering digunakan untuk tujuan kejahatan, seperti untuk tindakan hacking, mencuri akun pengguna, dan mencuri data-data penting pengguna. Misalnya ketika terjadi komunikasi antara pengguna A dan pengguna B, maka dengan metode packet sniffing, semua data komunikasi antar A dan B dapat diketahui. Sama halnya jika seorang pengguna login pada suatu website, dengan metode packet sniffing ini, userid dan password pengguna dapat diketahui.

  Packet sniffing

  tidak hanya bersifat pasif, dimana peretas hanya bertindak sebagai pendengar tanpa melakukan apa-apa terhadap koneksi antara 2 pengguna. Tetapi packet sniffing juga dapat bersifat aktif, dimana peretas dapat mengubah data-data pengguna yang dikirim dijaringan, sehingga data yang diterima oleh pengguna lain menjadi tidak sesuai dengan data asli yang dikirim sebelumnya.

2.6 Session Hijacking

  Session hijacking adalah sebuah teknik hacking dengan tujuan

  untuk mengambil alih akun pengguna lain dengan mencuri sessi yang tersimpan didalam cookie. Ketika pengguna mengunjungi sebuah website, maka website akan mengirimkan cookie dan cookie tersebut akan tersimpan pada browser yang digunakan oleh pengguna. Cookie yang dikirimkan inilah yang kemudian dicuri peretas melalui proses packet

  sniffing

  , kemudian cookie yang sudah didapatkan disimpan ke browser yang digunakan oleh peretas. Ada banyak cara yang dilakukan untuk mendapatkan cookie, seperti melakukan packet sniffing ataupun dengan mencurinya langsung pada browser yang digunakan pengguna. Dengan metode session

  hijacking

  ini, seorang peretas dapat mencuri akun pengguna tanpa perlu mengetahui username dan password pengguna.

  Cookie

  2.7 Cookie

  adalah berkas yang dibuat oleh website yang dikunjungi pengguna yang digunakan untuk menyimpan informasi pengguna, seperti informasi profil dari pengguna [15]. Cookie ini tersimpan browser yang digunakan oleh pengguna. Jadi ketika pengguna membuka website yang pernah dikunjungi sebelumnya, maka browser akan mengirimkan cookie yang sesuai kepada website tersebut. Dengan cara ini, website dapat menampilkan informasi yang sesuai dengan pengaturan pengguna.

  Cookie

  dapat juga disebut sebagai ID card pengguna saat terhubung pada website tertentu. [9]. Cookie dapat menyimpan berbagai jenis informasi, termasuk di antaranya informasi pribadi seperti nama, alamat rumah, alamat email, atau nomor telepon pengguna. Akan tetapi informasi ini hanya akan disimpan jika pengguna pernah memberikan informasi ini kepada website tersebut. Website tidak dapat mengakses informasi yang tidak pernah diberikan pengguna kepada website tersebut, dan website juga tidak dapat mengakses berkas lainnya pada komputer pengguna..

  Phishing

  2.8 Phishing

  adalah suatu metode hacking yang digunakan untuk mendapatkan informasi pribadi pengguna seperti userid, password dan data-data rahasia lainnya dengan cara menyamar sebagai pihak lain.

  Phishing

  berasalah dari kata bahasa inggris fishing yang mempunyai arti memancing, memancing dalam hal ini adalah meancing pengguna untuk memberikan informasi rahasia seperti password, kode PIN dan lain sebagainya [16]

  Ada banyak cara untuk melakukan phishing, seperti mengirimkan informasi palsu ke email pengguna, mengggunakan sebuah tautan menuju halaman palsu dan lain sebagainya, yang tujuan utamanya adalah untuk mendapatkan userid dan password pengguna.

2.9 Kode Token Akses

  Kode token adalah sebuah kode acak yang mengidentifikasi seorang pengguna atau halaman dan dapat digunakan oleh aplikasi untuk melakukan panggilan API(Application Programming Interface). Kode token ini meyimpan informasi tentang masa berlaku kode token tersebut serta aplikasi yang diakses oleh kode token tersebut.[17] Dalam penggunaannya, ada beberapa jenis kode token, yaitu

a. Kode token pengguna

  Kode token jenis ini digunakan ketika aplikasi(dalam hal ini

  website Relying Party) ingin mengakses data-data pengguna,

  seperti membaca, memodifikasi atau menulis data pengguna tertentu atas nama mereka. Kode token ini didapatkan melalui dialog login. Untuk alur Relying Party mendapatkan kode token dapat dilihat pada gambar 2.9

  Gambar 2.9

  Alur Relying Party mendapatkan kode token penguna [17] b. Kode token aplikasi Kode token aplikasi ini diperlukan untuk memodifikasi dan membaca pengaturan aplikasi. Kode token jenis ini dihasilkan secara rahasia oleh aplikasi dan provider.

  c. Kode token halaman Kode token ini hampir sama dengan kode token pengguna.

  Untuk mendapatkan kode token ini, terlebih dahulu harus mendapatkan kode token pengguna dan hak untuk mengakses

  manage_pages

  . Setelah itu barulah kemudian mendapatkan kode token halaman ini.

  d. Kode token klien Kode token klien adalah sebuah kode pengenal yang dapat ditanamkan kedalam kode biner aplikasi mobile dan aplikasi desktop yang digunakan untuk mengidentifikasi aplikasi pengguna. Kode token klien digunakan untuk mengakses aplikasi setingkat API, tapi dengan hak akses yang terbatas.

BAB 3 DESAIN DAN SISTEMATIKA PENGUJIAN

  3.1 Desain Sistem Gambar 3.1

  Arsitektur Protokol OpenID Adapun prinsip kerja OpenID secara teknis dan proses otentikasi di lakukan adalah sebagai berikut: a. Pengguna memasukan URL OpenID pada kolom yang tersedia

  (misalnya: di website Relying

  Party .

  b. Untuk mengetahui provider yang digunakan oleh pengguna,

  Relying Party

  menggunakan URL yang dikirimkan oleh pengguna. Pada umumnya URL identifier OpenID terletak pada bagian <head> dari kode html website Relying Party, lebih spesifiknya terletak pada tag <link>. Didalam tag <link> ini terdapat atribut rel=”openid2.provider” serta link dari openid provider yang digunakan.

  c. Setelah Relying Party mengetahui OpenID provider yang digunakan, maka Relying Party akan membuat sebuah prosedur keamanan dengan OpenID Provider menggunakan algoritma Diffie-Hellman yaitu dengan membuat security key.

  Security key

  ini akan digunakan untuk memverifikasi dalam pertukaran data antara keduanya.

  d. Kemudian Relying Party akan mengalihkan pengguna ke

  website

  OpenID menggunakan sebuah URL identifier yang terdiri dari semua parameter yang dibutuhkan untuk proses

  setup otentikasi (OpenID.mode=chceckid ).

  Parameter-parameter tersebut adalah identias dari pengguna

  OpenID

  (openid.identity), asosiasi (openid.assoc) dan URL yang akan mengalihkan pengguna kembali ke website

  Relying Party

  (openid.return to). Selain itu, biasanya

  Relying Party

  juga akan meminta parameter tambahan kepada

  OpenID