SlideShare a Scribd company logo
1 of 8
Download to read offline
Implementasi Algoritma Stream Cipher Rabbit Pada
                         Protokol Secure Socket Layer (SSL)
                                     Mohamad Endhy Aziz1, Yan Adikusuma2
      1
          Fakultas Ilmu Komputer, Universitas Indonesia, mohamad.endhy@ui.ac.id, Telp.+62856 92020442
             2
               Sekolah Tinggi Sandi Negara, yan_adikusuma@lemsaneg.go.id, Telp.+62813 15502332


Abstrak. Secure Socket Layer (SSL) merupakan salah           informasi yang bersifat rahasia. Enkripsi merupakan
satu protokol kriptografi yang paling banyak                 suatu teknik menyamarkan atau mengaburkan suatu
digunakan saat ini. Akan tetapi, dalam penggunaannya         pesan sedemikian rupa sehingga isi pesan tersebut
SSL memiliki beberapa permasalahan, salah satunya            dapat disembunyikan [13]. Enkripsi dapat diterapkan
dalam hal performa. Walaupun saat ini SSL telah              dalam suatu protokol kriptografi yang dikemas dalam
mendukung AES sebagai standar enkripsi, pada                 suatu aplikasi sehingga kedua belah pihak yang saling
kenyataannya masih banyak kalangan pengembang                berhubungan dapat melakukan komunikasi secara
maupun pengguna yang masih menggunakan RC4                   aman.
untuk    algoritma    penyandian      datanya   (bulk             Protokol-protokol jaringan yang digunakan saat ini
encryption). Hal ini dilakukan untuk mengurangi              hanya memberikan perlindungan yang terbatas dalam
dampak dari lambatnya performa pada SSL. Namun,              hal pengamanan data yang ditransmisikan, bahkan
dari hasil beberapa penelitian yang telah dilakukan,         terdapat beberapa protokol jaringan yang mengirimkan
RC4 terbukti memiliki beberapa kelemahan                     data secara plain. Dalam perkembangan serta
kriptografis.   Pada      penelitian    ini   penulis        pemanfaatan internet yang sangat signifikan seperti
mengimplementasikan algoritma stream cipher Rabbit           saat ini, seperti untuk transaksi elektronik, perbankan,
sebagai alternatif algoritma penyandian data baru            bahkan pemerintahan, maka sangat mutlak diperlukan
pada SSL. Algoritma Rabbit tidak hanya memiliki              suatu mekanisme perlindungan tambahan untuk
kekuatan kriptografis yang baik namun juga memiliki          menjaga kerahasiaan serta integritas data yang
performa yang relatif cukup tinggi. Hasil pengujian          ditransmisikan.
menunjukkan bahwa proses transfer data melalui SSL                Salah satu protokol kriptografi yang banyak
menggunakan algoritma Rabbit sedikit lebih lambat            digunakan saat ini adalah Secure Socket Layer. SSL
dibandingkan dengan RC4 (sekitar 5 % pada file yang          merupakan       protokol    yang     dirancang     untuk
berukuran 5 MB dan 3,5% pada file berukuran 10               mengamankan komunikasi melalui jaringan TCP/IP.
MB). Akan tetapi, dibandingkan dengan AES-128,               Tujuan utama dibuatnya protokol ini adalah untuk
algoritma ini menunjukkan peningkatan kecepatan              menghindari akses yang tidak sah atau modifikasi pada
transfer yang cukup signifikan (sekitar 4 % pada file        data yang ditransmisikan antara dua endpoint. Pada
berukuran 5 MB dan 20% pada file berukuran 10 MB).           awalnya, SSL dikembangkan oleh Netscape Corp.
                                                             dengan tujuan untuk mengamankan komunikasi pada
1. Pendahuluan                                               web (melalui web browser). Namun, seiring
                                                             perkembangan zaman, berbagai aplikasi lain, seperti
    Perkembangan ilmu pengetahuan dan teknologi              email, aplikasi transfer data, dsb juga memanfaatkan
yang demikian pesat telah memberikan banyak                  protokol ini sebagai jalur komunikasi yang dipercaya.
kemudahan bagi manusia dalam melakukan segala                Saat ini SSL telah digunakan untuk mengamankan
kegiatannya, termasuk dalam melakukan pertukaran             berbagai jenis aplikasi, mulai dari transaksi elektronik,
informasi. Akan tetapi, terdapat pihak-pihak tertentu        kesehatan, sampai finansial.
dengan berbagai kepentingan berusaha mengungkap                   Akan tetapi, SSL memiliki beberapa permasalahan,
pertukaran informasi yang dilakukan oleh pihak               salah satunya dalam hal performa [9]. Penelitian
lainnya. Tentu hal ini menimbulkan suatu kerugian            menunjukkan web server yang berjalan di atas SSL
apabila informasi yang dipertukarkan merupakan               (HTTPS) lebih lambat 3,4 sampai 9 kali dibandingkan
informasi yang bersifat rahasia, misalnya informasi          dengan web server reguler [3]. Hal ini tentu berakibat
mengenai account pribadi pada suatu bank.                    pada berkurangnya produktivitas web server tersebut
    Enkripsi dapat digunakan sebagai salah satu teknik       dalam melayani penggunanya. Permasalahan ini
dalam mengamankan pertukaran informasi, khususnya            terutama disebabkan oleh perhitungan kriptografis



                                                         1
yang dilakukan pada protokol SSL. Proses perhitungan           akses yang tidak sah terhadap data yang
yang paling banyak memakan sumber daya adalah pada             ditransmisikan. Protokol SSL saat ini telah memiliki
perhitungan public key. Beberapa penelitian telah              beberapa versi. SSL versi 3 (SSLv3) didesain dengan
dilakukan untuk mengatasi permasalahan ini dengan              memperhatikan masukan dari kalangan publik serta
menggunakan beberapa metode [6]. Proses perhitungan            industri, dan telah dipublikasikan sebagai Internet
lainnya yang cukup memakan sumber daya adalah                  Draft. Versi SSL terbaru, yaitu Transport Layer
proses enkripsi data (bulk encryption). Walaupun saat          Security (TLS) merupakan versi protokol SSL yang
ini SSL telah mendukung AES sebagai standar                    telah distandarisasi oleh IETF melalui RFC 2246.
enkripsi, namun pada kenyataannya masih banyak                      Protokol SSL bekerja di bawah lapisan aplikasi
kalangan pengembang maupun pengguna yang masih                 (application layer) pada protokol TCP/IP. SSL pada
menggunakan RC4 sebagai algoritma penyandian                   dasarnya merupakan protokol berlapis (layered
datanya. Hal ini dilakukan untuk mengurangi efek dari          protocol). SSL Record Protocol, yang merupakan
lambatnya performa SSL. Dilihat dari karakteristiknya,         lapisan (layer) paling bawah, berjalan di atas protokol
RC4 yang merupakan satu-satunya algoritma stream               transport yang dapat diandalkan (reliable transport
cipher yang diimplementasikan pada SSL (standar                protocol) seperti TCP. SSL Record Protocol juga
IETF), memang merupakan algoritma yang memiliki                berfungsi mengkapsulasi berbagai protokol pada
performa paling baik dibandingkan dengan algoritma             lapisan yang lebih tinggi (higher-level protocol),
lain pada SSL, misalnya AES, DES, 3DES, dll.                   seperti HyperText Transfer Protocol (HTTP) yang
Namun, dari hasil beberapa penelitian seperti yang             menyediakan layanan transfer pada Web. Tiga protokol
terdapat pada [12], RC4 terbukti memiliki beberapa             pada lapisan yang lebih tinggi adalah Handshake
kelemahan. Walaupun kelemahan-kelemahan tersebut               Protocol, Change Cipher Spec Protocol, dan Alert
hanya bersifat teoretis, namun tetap perlu kita                Protocol. Tiga protokol pada lapisan atas ini berfungsi
antisipasi agar tidak terjadi kebocoran dalam                  mengatur pertukaran informasi yang dilakukan pada
pengiriman informasi rahasia.                                  SSL (SSL exchange). Gambar 1 adalah ilustrasi dari
     Oleh karena itu, pada penelitian ini penulis              lapisan protokol pada SSL.
berusaha mengimplementasikan suatu algoritma yang
tidak hanya memiliki kekuatan kriptografis yang baik                 SSL            SSL Change                           Application
                                                                                                             SSL
namun juga memiliki performa yang secara umum                      Handshake        Cipher Spec
                                                                                                        Alert Protocol
                                                                                                                           Lay er
                                                                    Protocol          Protocol                            Protocol
lebih baik dibanding algoritma lainnya [1][2].
Algoritma yang diimplementasikan adalah algoritma                                        SSL Record Protocol
stream cipher Rabbit. Rabbit didesain sebagai
algoritma yang efisien dalam implementasi pada
software. Algoritma Rabbit didesain dan telah                                                     TCP

dipelajari secara ekstensif oleh para pakar kriptografi
dari Cryptico A/S dengan memperhatikan berbagai                                                    IP

jenis metode kriptanalisa [11]. Algoritma ini juga telah
distandarisasi oleh IETF melalui RFC 4503. Dari hasil               Sumber : Rhee, M.Y. 2003. Internet Security: Cryptographic Principles,
                                                                 Algorithms and Protocols.
pengujian serta analisa yang dilakukan, algoritma
                                                               Gambar 1. Ilustrasi lapisan protokol SSL.
Rabbit terbukti kuat secara kriptografis dan resistan
terhadap metode-metode kriptanalisa yang ada [2].
Berdasarkan karakteristik yang dimiliki oleh algoritma             SSL Record Protocol menyediakan layanan
Rabbit, maka diharapkan implementasi algoritma ini             keamanan dasar bagi protokol-protokol pada lapisan
dapat tetap menjaga performa pada SSL seperti yang             yang lebih tinggi, yaitu Handshake Protocol, Change
dimiliki oleh RC4 dengan tidak mengorbankan aspek              Cipher Spec Protocol, dan Alert Protocol. SSL Record
keamanan yang tentunya harus lebih diutamakan.                 Protocol menerima data dari suatu aplikasi, kemudian
                                                               menjalankan beberapa tahapan, diantaranya :
                                                               fragmentasi data ke dalam beberapa blok, kompresi
2. Protokol Secure Socket Layer (SSL)                          data (opsional), penambahan MAC, enkripsi data,
     Secure Socket Layer (SSL) merupakan salah satu            penambahan header, kemudian mengirimkan hasilnya
protokol kriptografi yang paling banyak digunakan saat         ke TCP. Sebaliknya, data yang diterima akan
ini. Protokol ini berfungsi menyediakan jalur yang             didekripsi, deverifikasi, didekompres, disatukan
aman serta mengotentikasi kedua belah pihak/entitas            (reassambled), kemudian hasilnya dikirim kepada
yang berkomunikasi untuk mencegah modifikasi atau              aplikasi pada lapisan yang lebih tinggi. Ilustrasi



                                                           2
operasi pada SSL Record Protocol secara keseluruhan                                 algoritma pada umumnya, algoritma Rabbit tidak
ditunjukkan pada Gambar 2.                                                          menggunakan linear feedback shift register ataupun S-
                                                                                    box. Desain ini memiliki beberapa konsekuensi
                                                                                    penting.




                                                                                         Sumber : Boesgard, M. et al. 2003. The Stream Cipher Rabbit.
     Sumber : Rhee, M.Y. 2003. Internet Security: Cryptographic Principles,
  Algorithms and Protocols.
                                                                                    Gambar 3. Skema Next-state Function pada Rabbit.
Gambar 2. Ilustrasi operasi pada SSL Record Protocol.
                                                                                        Desain algoritma Rabbit sangat kompak. Seluruh
                                                                                    operasi aritmatika yang digunakan pada algoritma ini
3. Stream Cipher Rabbit                                                             didukung oleh prosesor modern, sehingga algoritma ini
     Algoritma Rabbit dipublikasikan pertama kali pada                              memiliki kecepatan pemrosesan yang sangat tinggi
Fast Software Encryption Workshop 2003. Algoritma                                   pada berbagai platform. Berbeda dengan desain
ini merupakan algoritma stream cipher yang                                          algoritma stream cipher pada umumnya, algoritma ini
menggunakan kunci (secret key) dengan panjang 128-                                  juga memiliki kecepatan IV serta key setup yang tinggi.
bit dan 64-bit IV sebagai input. Hasil kombinasi                                    Algoritma Rabbit tidak menggunakan S-box atau
internal state-nya menghasilkan output berupa                                       operasi pada GF (2n). Oleh karena itu tidak dibutuhkan
rangkaian bit semi acak (pseudorandom bit) dengan                                   look up table, sehingga ruang memori yang dibutuhkan
panjang 128-bit per blok. Proses enkripsi/dekripsi                                  baik dalam implementasi pada hardware maupun
dilakukan dengan men-XOR-kan rangkaian bit semi                                     software sangat kecil. Tabel 1 merupakan performa
acak tersebut dengan plaintext/ciphertext. Internal                                 (dalam clock cycles atau clock cycles per byte), ukuran
state-nya berjumlah 513 bit dibagi ke dalam delapan                                 kode (code size) dan jumlah memori (dalam byte) yang
32-bit variabel state, delapan 32-bit counter dan satu                              dibutuhkan masing-masing untuk proses enkripsi, key
counter carry bit. Kedelapan variabel state di-update                               setup dan IV setup pada prosesor Intel Pentium
oleh fungsi non-linear masing-masing pasangan                                       berdasarkan [1].
variabel state tersebut. Algoritma Rabbit didesain agar
efisien dalam implementasi pada software serta                                      Tabel 1. Performa, ukuran kode dan jumlah memori
mengimbangi ukuran kunci sepanjang 128 bit untuk                                    yang dibutuhkan oleh Rabbit pada prosesor Pentium.
mengenkripsi sampai dengan 264 blok plaintext. Ini
                                                                                    Prosesor         Performa          Ukuran Kode            Memori
berarti bahwa untuk melakukan attack tanpa
mengetahui rangkaian kunci, maka pihak penyerang                                  Pentium III       3,7/278/253         440/617/720           40/36/44
harus menentukan sampai dengan 264 blok output                                    Pentium 4         5,1/480/749         698/516/762           16/36/28
ciphertext atau melakukan exhaustive key search
sebanyak 2128 kombinasi kunci.
     Algoritma Rabbit merupakan stream cipher dengan                                    Selain itu, yang perlu dijadikan catatan, pada
desain baru. Desain algoritma ini menggunakan proses                                prosesor modern jumlah inner state-nya tidak melebihi
pencampuran (mixing) inner state secara non-linear                                  ruang pada register prosesor tersebut, sehingga tidak
antara dua iterasinya. Berbeda dengan desain-desain                                 membutuhkan akses ke memori utama yang kurang


                                                                              3
efisien secara komputasi (membutuhkan waktu dan               dimana kombinasi kedua protokol ini membentuk suatu
perhitungan tambahan).                                        protokol yakni HTTPS (HTTP over SSL). Pada
     Algoritma Rabbit telah dievaluasi secara ekstensif       protokol SSL, ketiga algoritma tersebut digunakan
terhadap seluruh kemungkinan attack yang dapat                sebagai bulk encryption algorithm (algoritma
dilakukan, baik stream maupun block cipher                    penyandian data) dalam SSL Record Protocol. Pada
kriptanalisis. Desain Rabbit yang berbeda membuat             SSL Record Protocol inilah seluruh data dari lapisan
jenis attack umum yang dapat dilakukan terhadap               aplikasi (application layer) diproses, mulai dari
stream cipher menjadi tidak aplikatif. Baik algebraic         pemecahan data menjadi beberapa fragmen,
attack maupun correlation attack tidak dapat                  penghitungan nilai MAC, enkripsi, sampai dengan
diaplikasikan terhadap Rabbit. Time-Memory-Data               pengiriman.
tradeoff juga tidak dapat diaplikasikan terhadap Rabbit           Selain itu, pada pengujian ini perlu dilakukan
karena jumlah internal state yang cukup besar, yakni          pemisahan antara Record Protocol dengan tahapan
513 bit. Para pendesain algoritma ini yakin bahwa             protokol lainnya pada SSL. Penulis menggunakan
untuk melakukan serangan terhadap Rabbit harus                program Wireshark Network Analyzer1 untuk melihat
dilakukan berdasarkan suatu metode attack yang sama           dan memisahkan tahapan-tahapan protokol tersebut.
sekali baru. Dari hasil pengujian serta analisa,              Penulis menggunakan Wireshark Network Analyzer
disimpulkan bahwa algoritma Rabbit resistan terhadap          versi 0.99.4, dimana pada versi ini sudah terdapat
metode kriptanalisa yang ada saat ini.                        dukungan untuk melakukan analisis terhadap paket-
                                                              paket jaringan yang dikirimkan menggunakan protokol
4. Metode Pengujian                                           SSL.

     Pada bagian ini akan dijabarkan mengenai metode          4.a.Metrik Pengujian
pengujian yang digunakan untuk mengevaluasi hasil
implementasi algoritma Rabbit pada protokol SSL.                  Penulis     membandingkan       performa     ketiga
Secara umum, pengujian yang dilakukan dititik                 algoritma (Rabbit, RC4 dan AES-128) dengan
beratkan pada performa algoritma Rabbit dalam                 menggunakan :
implementasinya pada SSL.                                       3 ciphersuites yang berbeda, masing-masing
    Proses pengujian dilakukan dengan melakukan                   mewakili      algoritma    yang       diuji,  yaitu
perbandingan (benchmarking) antara algoritma Rabbit               TLS_RSA_WITH_RABBIT_SHA,                 TLS_RSA_
dengan algoritma simetrik lain yang terdapat pada                 WITH_RC4_128_SHA dan TLS_RSA_WITH_
protokol SSL, yakni AES-128 dan RC4. Sebagai                      AES128_SHA. Pemilihan ciphersuites ini
catatan, penggunaan algoritma AES banyak                          berdasarkan dukungan ciphersuites pada OpenSSL
direkomendasikan bagi pengguna yang menitik                       serta untuk kesetaraan dalam pengujian (OpenSSL
beratkan pada faktor keamanan, sedangkan RC4                      tidak mendukung ciphersuites RC4 dengan
direkomendasikan bagi mereka yang menitik beratkan                algoritma ephemeral DH/DHE sebagai algoritma
pada faktor performa.                                             otentikasinya, sedangkan ciphersuites AES dan
    Sebagai acuan awal, penulis melakukan                         Rabbit tidak mendukung penggunaan algoritma
perbandingan performa ketiga algoritma tersebut secara            digest selain SHA).
independen (sebelum/tanpa implementasi pada                     5 file dengan ukuran yang berbeda, masing-masing
protokol SSL). Untuk melakukan perbandingan ini,                  500 KB, 1 MB, 2 MB, 5 MB dan 10 MB.
penulis menggunakan tool OpenSSL. OpenSSL                         Perbedaan ukuran file ini untuk melihat sejauh
menyediakan suatu benchmarking suite yang dapat                   mana performa setiap algoritma berdampak pada
digunakan untuk menguji performa setiap algoritma                 lamanya waktu transfer tiap-tiap file.
yang terdapat pada OpenSSL. Cara kerja dari
benchmarking suite ini adalah mengukur berapa                     Setiap file dengan menggunakan setiap algoritma
banyak operasi yang dapat dilakukan oleh setiap               diambil sampel sebanyak 30 kali. Pengambilan sampel
algoritma untuk mengenkripsi data dalam jumlah dan            sebanyak ini diharapkan sudah mewakili populasi
waktu yang telah ditentukan (3 detik).                        untuk setiap proses transfer setiap file menggunakan
    Untuk menguji performa ketiga algoritma di atas           ketiga algoritma yang diuji. Pengujian ini dilakukan
dalam implementasinya pada protokol SSL, penulis              pada jaringan ethernet (LAN) dengan kapasitas 100
melakukan serangkaian tahapan pengujian. Protokol             MBps dalam kondisi lalu lintas (traffic) jaringan yang
pada lapisan aplikasi (application layer) yang                tidak terlalu sibuk, sehingga diasumsikan bahwa
memanfaatkan SSL pada pengujian ini adalah HTTP,              1
                                                                  Dapat diakses di http://www.wireshark.org


                                                          4
kondisi jaringan tidak terlalu berpengaruh pada proses
transfer data.

4.b.Platform Pengujian
     Untuk perangkat server, penulis menggunakan
Apache Server 1.3 dengan mod_ssl2 yang telah
dikonfigurasi sehingga mendukung penggunaan
algoritma Rabbit. Sedangkan untuk aplikasi client,
penulis menggunakan cURL3. cURL merupakan suatu
aplikasi transfer data yang mendukung penggunaan
beberapa jenis protokol, antara lain HTTP, HTTPS,
FTP, LDAP, dll.
     Spesifikasi komputer yang digunakan pada server          Gambar 4. Perbandingan performa antara algoritma
adalah PC dengan spesifikasi yang sama dengan                 Rabbit, RC4 dan AES-128 pada platform Windows.
pengujian kedua, menggunakan sistem operasi Fedora
Core Linux 6. Sedangkan di sisi client, penulis
menggunakan komputer notebook dengan spesifikasi
prosesor Intel Celeron 1,5 GHz dan memori 1 GB.
Sistem operasi yang digunakan adalah OpenSUSE
Linux 10.2. Pada komputer client ini sudah terinstalasi
aplikasi cURL dan Wireshark Network Analyzer yang
digunakan untuk menginisialisasi koneksi dengan
server dan menganalisa (memisahkan) tahapan-tahapan
dalam protokol SSL.

5. Hasil Pengujian dan Analisis
    Dari hasil pengujian dan analisis ini akan
didapatkan suatu evaluasi hasil implementasi dan juga         Gambar 5. Perbandingan performa antara algoritma
perbandingan antara algoritma yang diimplementasikan          Rabbit, RC4 dan AES-128 pada platform Linux (Fedora
                                                              Core Linux 6).
(Rabbit) dengan beberapa algoritma lain yang terdapat
pada protokol SSL dilihat dari sudut pandang performa
dan juga keamanannya.                                             Berdasarkan      pengujian     tersebut,    terdapat
                                                              perbedaan performa pada kedua lingkungan pengujian.
                                                              Sebagai catatan, penulis menggunakan Microsoft
5.a. Performa Algoritma Rabbit dalam                          Visual C++ 8.0 untuk melakukan kompilasi OpenSSL
Implementasinya pada SSL                                      pada lingkungan Windows, sedangkan pada Linux
     Gambar 4 dan 5 merupakan hasil dari pengujian            (Fedora Core Linux 6) penulis menggunakan gcc versi
awal untuk mengetahui performa ketiga algoritma yang          4.1.1. Hal ini menunjukkan bahwa penentuan
diuji sebelum/tanpa implementasi di SSL pada dua              lingkungan pengujian/platform juga akan berdampak
lingkungan pengujian yang berbeda (Windows dan                pada performa yang dihasilkan.
Linux). Kode sumber OpenSSL pada kedua platform                   Gambar 6 merupakan hasil perbandingan performa
tersebut dikompilasi dengan optimasi untuk prosesor           ketiga algoritma (Rabbit, RC4 dan AES-128) dalam
Pentium (x86).                                                implementasinya pada protokol SSL. Berdasarkan
                                                              pengujian tersebut, perbedaan waktu transfer yang
                                                              cukup signifikan mulai terlihat pada proses transfer file
                                                              yang berukuran 10 MB. Sedangkan waktu transfer
                                                              untuk file yang berukuran lebih kecil (500 KB, 1 MB,
                                                              2 MB dan 5 MB) perbedaannya tidak terlalu signifikan
                                                              (hanya berselisih sekitar beberapa milidetik).

2
    Dapat diakses di http://www.modssl.org
3
    Dapat diakses di http://www.curl.haxx.de


                                                          5
1,5                                                                                   operasi-operasi         sederhana      (swap         dan




                                                                                    054
                                                                                                       addition/penambahan).        Proses  enkripsi     hanya




                                                                                 77
                                                                              1,2
                                                                                6
                                                                            063
                                                                                                       dilakukan dengan men-XOR rangkaian kunci yang




                                                                        3 1,
                1,25
                                                                                                       dihasilkan dengan plaintext.




                                                                     26
                                                                  1,0
                                                                                                            Lain halnya dengan AES-128, dimana plaintext
                  1
                                                                                                       yang menjadi input pada algoritma ini diproses melalui
                                                                                                       beberapa round (putaran), dan tiap-tiap round tersebut
Waktu (detik)




                0,75                                                                      RC4          terdiri dari beberapa operasi, yaitu substitusi S-Box,



                                                                 2
                                                                 8

                                                              27
                                                              78

                                                           0,5 4
                                                                                          Rabbit       pergeseran,      multiplikasi    dan  operasi     XOR.

                                                            06
                                                           0,4
                                                         0,5
                 0,5
                                                                                          AES-128      Keseluruhan proses ini tentunya berdampak pada
                                                                                                       performa algoritma ini sehingga relatif lebih lambat
                                                     9
                                               0,2 6
                                                  32
                                              0,2 2
                                                 19




                                                                                                       dibandingkan dengan algoritma lainnya.
                                                96
                                         3
                                             0,1
                                   0,1 1
                                   0,1 4

                                      15




                0,25
                                      08
                              5
                       0,0 9




                                                                                                            Proses enkripsi pada algoritma Rabbit sedikit lebih
                                     99
                           61
                          52
                          56



                                  0,0
                       0,0
                       0,0




                                                                                                       rumit dan membutuhkan sumber daya (resource)
                  0                                                                                    dibandingkan dengan RC4. Rabbit menggunakan suatu
                        500 KB     1 MB       2 MB         5 MB        10 MB
                                                                                                       fungsi yang bernama g-function (fungsi non-linear),
                                          Jumlah Data
                                                                                                       dimana pada fungsi inilah letak kekuatan kriptografis
                Gambar 6. Hasil perbandingan performa tiap-tiap                                        utama dari keseluruhan algoritma. g-function ini
                algoritma dengan mengukur lama waktu proses transfer
                                                                                                       merupakan operasi pemangkatan 32-bit (32-bit
                file.
                                                                                                       squaring). Walaupun operasi ini relatif cepat dan
                     Hasil pengujian tersebut menunjukkan bahwa                                        efisien dalam implementasinya pada prosesor modern,
                kecepatan proses transfer file dengan algoritma Rabbit                                 operasi inilah yang paling membutuhkan sumber daya
                mengalami sedikit penurunan dibandingkan dengan                                        dibandingkan operasi-operasi yang digunakan pada
                menggunakan RC4 (sekitar 2,5% pada file yang                                           algoritma lainnya (RC4 dan AES tidak menggunakan
                berukuran 10 MB). Akan tetapi, dibandingkan dengan                                     operasi ini, walaupun pada AES terdapat operasi
                AES-128, kecepatan proses transfer file menggunakan                                    multiplikasi). Sebagai catatan, fungsi ini digunakan
                algoritma Rabbit menunjukkan peningkatan yang                                          dalam setiap proses pada algoritma Rabbit (key setup,
                cukup signifikan, khususnya pada file berukuran 10                                     IV setup dan next-state function). Faktor ini yang
                MB.                                                                                    menyebabkan performa yang dimiliki algoritma Rabbit
                     Salah satu aspek yang paling diperhatikan pada                                    tidak sebaik yang dimiliki RC4.
                pemilihan algoritma dalam implementasinya pada                                              Dalam implementasinya pada protokol SSL, dalam
                suatu sistem adalah performa (kecepatan) algoritma                                     hal ini untuk mengamankan komunikasi (transfer data)
                tersebut dalam melakukan proses enkripsi. Algoritma                                    pada HTTP, algoritma Rabbit juga menunjukkan
                Rabbit, yang merupakan jenis algoritma stream cipher,                                  performa yang relatif lebih baik jika dibandingkan
                didesain sebagai algoritma yang memiliki performa                                      dengan AES-128. Berdasarkan pengujian, dalam
                tinggi, terutama dalam implementasinya pada software.                                  implementasinya, RC4 tetap merupakan algoritma
                     Hasil pengujian menggunakan benchmarking suite                                    yang memiliki performa paling baik, disusul oleh
                OpenSSL yang diilustrasikan pada Gambar 5 dan 6                                        Rabbit dan terakhir AES-128. Pada proses transfer data
                memberikan gambaran mengenai performa algoritma                                        yang berukuran 500 KB, 1 MB, 2 MB dan 5 MB,
                Rabbit secara umum. Walaupun terdapat perbedaan                                        perbedaan performa antara ketiga algoritma belum
                hasil antara kedua lingkungan pengujian, akan tetapi                                   terlalu terlihat. Perbedaan performa ini cukup terlihat
                secara umum hasil pengujian tersebut menunjukkan                                       pada proses transfer file yang berukuran 10 MB. Pada
                bahwa algoritma Rabbit memiliki performa yang relatif                                  file dengan ukuran ini, proses transfer menggunakan
                lebih baik dibandingkan dengan AES-128 (mencapai                                       Rabbit lebih cepat mencapai 20% dibandingkan dengan
                59% pada lingkungan Windows dan 43% pada Linux).                                       AES-128, walaupun lebih lambat sekitar 3,5%
                     Berdasarkan pengujian yang sama, RC4                                              dibandingkan dengan RC4.
                merupakan algoritma yang memiliki performa paling                                           Berdasarkan hasil tersebut, penggunaan algoritma
                baik, dengan throughput mencapai 237,606 MB/s. Hal                                     Rabbit akan lebih optimal untuk proses transfer data
                ini dikarenakan proses enkripsi RC4 secara                                             yang berjumlah cukup besar (≥10 MB). Sedangkan
                keseluruhan merupakan yang paling sederhana                                            untuk proses transfer data yang jumlahnya relatif kecil,
                dibandingkan dengan Rabbit dan AES-128. Dalam                                          halaman web misalnya, pemilihan algoritma simetrik
                menghasilkan rangkaian kunci (keystream), RC4 hanya                                    tidak memiliki pengaruh yang signifikan terhadap
                membutuhkan beberapa langkah dengan menggunakan                                        kecepatan proses transfer data (berdasarkan pengujian,


                                                                                                   6
transfer data pada file berukuran 500 KB tidak                dibandingkan dengan tingkat keamanan/kekuatan
menunjukkan perbedaan yang signifikan antara tiap-            kriptografis yang dimiliki oleh Rabbit.
tiap algoritma yang digunakan).
     Selain itu, berdasarkan pengujian awal (lihat            6. Kesimpulan
gambar 5 dan 6), hasil yang berbeda dalam
implementasinya pada kedua platform yang berbeda                  Walaupun proses transfer data melalui SSL
menunjukkan bahwa performa setiap algoritma,                  menggunakan algoritma Rabbit menunjukkan hasil
termasuk Rabbit, juga bergantung pada platform yang           yang lebih lambat dibandingkan dengan RC4 (sekitar
menjalankannya. Berkaitan dengan hal ini, diperlukan          3,5% pada file berukuran 10 MB), algoritma ini
suatu penelitian lebih lanjut mengenai pengaruh suatu         menunjukkan peningkatan kecepatan transfer yang
platform terhadap proses/operasi pada algoritma               cukup signifikan dibandingkan dengan AES-128
enkripsi. Akan tetapi, yang perlu digaris bawahi adalah       (sekitar 20% pada file berukuran 10 MB). Hal ini
bahwa penentuan suatu platform juga akan berdampak            memperlihatkan bahwa perbedaan performa antara
pada performa hasil implementasi suatu algoritma.             Rabbit dengan RC4 pada SSL tidak terlalu signifikan
                                                              dibandingkan dengan tingkat keamanan/kekuatan
5.b.Analisis Penggunaan Algoritma Rabbit                      kriptografis yang dimiliki oleh Rabbit.
pada SSL Ditinjau dari Faktor Keamanan
                                                              Referensi
     Faktor keamanan adalah hal paling utama dalam
pemilihan suatu algoritma dalam implementasinya               [1] Boesgard, M., Vesterager M., Christensen T. &
pada suatu sistem. Algoritma Rabbit tidak hanya                   Zenner, E. 2003. The Stream Cipher Rabbit,
memiliki performa yang tinggi dalam implementasinya               http://www.ecrypt.eu.org/stream/p3ciphers/
pada software, namun juga memiliki kekuatan                       rabbit/rabbit_p3.pdf.
kriptografis yang sangat baik dan telah melalui               [2] Boesgard, M., Pedersen, T., Vesterager M., &
berbagai metode kriptanalisa.                                     Zenner E. 2004. Proc. SASC 2004 : The Rabbit
     Salah satu nilai tambah yang dimiliki oleh Rabbit            Stream Cipher - Design and Security Analysis,
adalah skema IV (IV scheme) yang digunakan pada
                                                                  http://www.cryptico.com/DWSDownload.asp?
proses enkripsi. Dalam setiap proses enkripsi, selain
                                                                  File=Files/Filer/ SASC_Rabbit.pdf.
menggunakan kunci sepanjang 128 bit sebagai input,
Rabbit juga menggunakan IV dengan panjang 64 bit.             [4] Coarfa, C., Druschel, P. & Wallach, D.S. 2002.
Penggunaan IV akan menghasilkan sampai dengan 264                 Performance Analysis of TLS Web Servers,
rangkaian kunci yang berbeda walaupun menggunakan                 http://www.isoc.org/isoc/conferences/ndss/02/
kunci yang sama. Selain itu, penggunaan IV juga akan              proceedings/papers/coarfa.pdf.
menambah kompleksitas dalam kriptanalisa karena               [5] Doroshenko, B. & Ryabko, B. The Experimental
adanya mekanisme re-keying, sehingga akan                         Distinguishing         Attack      On  RC4.
mempersulit rekonstruksi kunci input yang digunakan.
                                                                  http://eprint.iacr.org/2006/070.pdf.
    Hal inilah yang menjadi nilai tambah Rabbit
dibandingkan dengan RC4 sebagai sesama jenis                  [6] Jensen, Jens G. 2006. Enhancing SSL
algoritma stream cipher. Sebagai catatan, nilai IV yang           Performance, http://www.gridpp.ac.uk/papers/
dihasilkan dari proses pertukaran kunci pada fase SSL             chep06_jensen.pdf.
Handshake Protocol tidak dapat dimanfaatkan oleh              [7] Gupta, V., Stebila, D., Fung, S., Shantz, S.C.,
algoritma RC4 karena algoritma ini tidak mendukung                Gura, N. & Eberle, H. 2004. Speeding Up
penggunaan IV, sehingga nilai kerahasiaan dari setiap             Secure Web Transaction Using Elliptic Curve
pembangkitan rangkaian kunci hanya bergantung pada
                                                                  Cryptography, http://research.sun.com/projects/
kunci input yang digunakan. Walaupun saat ini belum
                                                                  crypto/ecc-ssl-ndss2004.pdf.
terdapat penelitian yang menunjukkan kelemahan
terhadap penggunaan RC4 pada SSL, akan tetapi                 [8] Hare, Chris. 2004. Dalam Tipton, H.F. &
sebagai insan sandi kita tetap perlu mewaspadai                   Krause, Micki (Eds.), Information Security
terhadap segala kemungkinan bentuk kelemahan                      Management Handbook - 5th Edition (hlm.
ataupun serangan yang mungkin terjadi. Berdasarkan                203-215). Auerbach Publications.
pengujian, perbedaan performa antara algoritma Rabbit         [9] Rescorla, E. 2001. SSL and TLS: Building and
dengan RC4 dalam implementasinya pada SSL                         Design Secure Systems. New Jersey: Addison
menunjukkan hasil yang tidak terlalu signifikan
                                                                  Wesley.


                                                          7
[10]Rhee,    M.Y.   2003.    Internet Security:
    Cryptographic Principles, Algorithms and
    Protocols. West Sussex: John Wiley & Sons
    Ltd.
[11]Rijmen, V. 2003. Analysis of Rabbit,
    http://www.cryptico.com/DWSDownload.asp?
    File=Files/filer/ security_report.pdf.
[12]Ross, A. 1995. A Class of Weak Keys in
    RC4 Stream Cipher,
    http://marcel.wanda.ch/Archive/WeakKeys-
    report.pdf
[13]Schneier, B. 1996. Applied Cryptography:
    Protocols, Algorithms, and Source Code in C -
    2nd Edition. New York: John Wiley & Sons, Inc.
[14]Viega, J., Meisser, M. & Chandra, P. 2002.
    Network Security with OpenSSL. California:
    O’Reilly & Associates, Inc.
[15]http://www.openssl.org.



Mohamad Endhy Aziz adalah seorang penggiat
keamanan informasi. Saat ini ia sedang menempuh
kembali pendidikan sarjana di Fakultas Ilmu Komputer
Indonesia setelah sebelumnya menamatkan gelar yang
sama di Sekolah Tinggi Sandi Negara. Saat ini ia bekerja
di salah satu lembaga pemerintah yang bergerak di bidang
keamanan informasi.
Yan Adikusuma adalah adalah seorang penggiat
keamanan informasi. Ia merupakan salah satu staf
pengajar di Sekolah Tinggi Sandi Negara. Setelah
menamatkan pendidikan sarjana di Universitas Budi
Luhur, ia melanjutkan studi dan memperoleh gelar Master
of Engineering dari Nara Institute of Science and
Technology (NAIST), Jepang.




                                                           8

More Related Content

More from idsecconf

idsecconf2023 - Mangatas Tondang, Wahyu Nuryanto - Penerapan Model Detection ...
idsecconf2023 - Mangatas Tondang, Wahyu Nuryanto - Penerapan Model Detection ...idsecconf2023 - Mangatas Tondang, Wahyu Nuryanto - Penerapan Model Detection ...
idsecconf2023 - Mangatas Tondang, Wahyu Nuryanto - Penerapan Model Detection ...idsecconf
 
idsecconf2023 - Rama Tri Nanda - Hacking Smart Doorbell.pdf
idsecconf2023 - Rama Tri Nanda - Hacking Smart Doorbell.pdfidsecconf2023 - Rama Tri Nanda - Hacking Smart Doorbell.pdf
idsecconf2023 - Rama Tri Nanda - Hacking Smart Doorbell.pdfidsecconf
 
idsecconf2023 - Akshantula Neha, Mohammad Febri Ramadlan - Cyber Harmony Auto...
idsecconf2023 - Akshantula Neha, Mohammad Febri Ramadlan - Cyber Harmony Auto...idsecconf2023 - Akshantula Neha, Mohammad Febri Ramadlan - Cyber Harmony Auto...
idsecconf2023 - Akshantula Neha, Mohammad Febri Ramadlan - Cyber Harmony Auto...idsecconf
 
idsecconf2023 - Aan Wahyu - Hide n seek with android app protections and beat...
idsecconf2023 - Aan Wahyu - Hide n seek with android app protections and beat...idsecconf2023 - Aan Wahyu - Hide n seek with android app protections and beat...
idsecconf2023 - Aan Wahyu - Hide n seek with android app protections and beat...idsecconf
 
idsecconf2023 - Satria Ady Pradana - Launch into the Stratus-phere Adversary ...
idsecconf2023 - Satria Ady Pradana - Launch into the Stratus-phere Adversary ...idsecconf2023 - Satria Ady Pradana - Launch into the Stratus-phere Adversary ...
idsecconf2023 - Satria Ady Pradana - Launch into the Stratus-phere Adversary ...idsecconf
 
Ali - The Journey-Hack Electron App Desktop (MacOS).pdf
Ali - The Journey-Hack Electron App Desktop (MacOS).pdfAli - The Journey-Hack Electron App Desktop (MacOS).pdf
Ali - The Journey-Hack Electron App Desktop (MacOS).pdfidsecconf
 
Muh. Fani Akbar - Infiltrate Into Your AWS Cloud Environment Through Public E...
Muh. Fani Akbar - Infiltrate Into Your AWS Cloud Environment Through Public E...Muh. Fani Akbar - Infiltrate Into Your AWS Cloud Environment Through Public E...
Muh. Fani Akbar - Infiltrate Into Your AWS Cloud Environment Through Public E...idsecconf
 
Rama Tri Nanda - NFC Hacking Hacking NFC Reverse Power Supply Padlock.pdf
Rama Tri Nanda - NFC Hacking Hacking NFC Reverse Power Supply Padlock.pdfRama Tri Nanda - NFC Hacking Hacking NFC Reverse Power Supply Padlock.pdf
Rama Tri Nanda - NFC Hacking Hacking NFC Reverse Power Supply Padlock.pdfidsecconf
 
Arief Karfianto - Proposed Security Model for Protecting Patients Data in Ele...
Arief Karfianto - Proposed Security Model for Protecting Patients Data in Ele...Arief Karfianto - Proposed Security Model for Protecting Patients Data in Ele...
Arief Karfianto - Proposed Security Model for Protecting Patients Data in Ele...idsecconf
 
Nosa Shandy - Clickjacking That Worthy-Google Bug Hunting Story.pdf
Nosa Shandy - Clickjacking That Worthy-Google Bug Hunting Story.pdfNosa Shandy - Clickjacking That Worthy-Google Bug Hunting Story.pdf
Nosa Shandy - Clickjacking That Worthy-Google Bug Hunting Story.pdfidsecconf
 
Baskoro Adi Pratomo - Evaluasi Perlindungan Privasi Pengguna pada Aplikasi-Ap...
Baskoro Adi Pratomo - Evaluasi Perlindungan Privasi Pengguna pada Aplikasi-Ap...Baskoro Adi Pratomo - Evaluasi Perlindungan Privasi Pengguna pada Aplikasi-Ap...
Baskoro Adi Pratomo - Evaluasi Perlindungan Privasi Pengguna pada Aplikasi-Ap...idsecconf
 
Utian Ayuba - Profiling The Cloud Crime.pdf
Utian Ayuba - Profiling The Cloud Crime.pdfUtian Ayuba - Profiling The Cloud Crime.pdf
Utian Ayuba - Profiling The Cloud Crime.pdfidsecconf
 
Proactive cyber defence through adversary emulation for improving your securi...
Proactive cyber defence through adversary emulation for improving your securi...Proactive cyber defence through adversary emulation for improving your securi...
Proactive cyber defence through adversary emulation for improving your securi...idsecconf
 
Perkembangan infrastruktur kunci publik di indonesia - Andika Triwidada
Perkembangan infrastruktur kunci publik di indonesia - Andika TriwidadaPerkembangan infrastruktur kunci publik di indonesia - Andika Triwidada
Perkembangan infrastruktur kunci publik di indonesia - Andika Triwidadaidsecconf
 
Pentesting react native application for fun and profit - Abdullah
Pentesting react native application for fun and profit - AbdullahPentesting react native application for fun and profit - Abdullah
Pentesting react native application for fun and profit - Abdullahidsecconf
 
Hacking oximeter untuk membantu pasien covid19 di indonesia - Ryan fabella
Hacking oximeter untuk membantu pasien covid19 di indonesia - Ryan fabellaHacking oximeter untuk membantu pasien covid19 di indonesia - Ryan fabella
Hacking oximeter untuk membantu pasien covid19 di indonesia - Ryan fabellaidsecconf
 
Vm escape: case study virtualbox bug hunting and exploitation - Muhammad Alif...
Vm escape: case study virtualbox bug hunting and exploitation - Muhammad Alif...Vm escape: case study virtualbox bug hunting and exploitation - Muhammad Alif...
Vm escape: case study virtualbox bug hunting and exploitation - Muhammad Alif...idsecconf
 
Devsecops: membangun kemampuan soc di dalam devsecops pipeline - Dedi Dwianto
Devsecops: membangun kemampuan soc di dalam devsecops pipeline - Dedi DwiantoDevsecops: membangun kemampuan soc di dalam devsecops pipeline - Dedi Dwianto
Devsecops: membangun kemampuan soc di dalam devsecops pipeline - Dedi Dwiantoidsecconf
 
Stream crime
Stream crime Stream crime
Stream crime idsecconf
 
(Paper) Mips botnet worm with open wrt sdk toolchains
(Paper) Mips botnet worm with open wrt sdk toolchains(Paper) Mips botnet worm with open wrt sdk toolchains
(Paper) Mips botnet worm with open wrt sdk toolchainsidsecconf
 

More from idsecconf (20)

idsecconf2023 - Mangatas Tondang, Wahyu Nuryanto - Penerapan Model Detection ...
idsecconf2023 - Mangatas Tondang, Wahyu Nuryanto - Penerapan Model Detection ...idsecconf2023 - Mangatas Tondang, Wahyu Nuryanto - Penerapan Model Detection ...
idsecconf2023 - Mangatas Tondang, Wahyu Nuryanto - Penerapan Model Detection ...
 
idsecconf2023 - Rama Tri Nanda - Hacking Smart Doorbell.pdf
idsecconf2023 - Rama Tri Nanda - Hacking Smart Doorbell.pdfidsecconf2023 - Rama Tri Nanda - Hacking Smart Doorbell.pdf
idsecconf2023 - Rama Tri Nanda - Hacking Smart Doorbell.pdf
 
idsecconf2023 - Akshantula Neha, Mohammad Febri Ramadlan - Cyber Harmony Auto...
idsecconf2023 - Akshantula Neha, Mohammad Febri Ramadlan - Cyber Harmony Auto...idsecconf2023 - Akshantula Neha, Mohammad Febri Ramadlan - Cyber Harmony Auto...
idsecconf2023 - Akshantula Neha, Mohammad Febri Ramadlan - Cyber Harmony Auto...
 
idsecconf2023 - Aan Wahyu - Hide n seek with android app protections and beat...
idsecconf2023 - Aan Wahyu - Hide n seek with android app protections and beat...idsecconf2023 - Aan Wahyu - Hide n seek with android app protections and beat...
idsecconf2023 - Aan Wahyu - Hide n seek with android app protections and beat...
 
idsecconf2023 - Satria Ady Pradana - Launch into the Stratus-phere Adversary ...
idsecconf2023 - Satria Ady Pradana - Launch into the Stratus-phere Adversary ...idsecconf2023 - Satria Ady Pradana - Launch into the Stratus-phere Adversary ...
idsecconf2023 - Satria Ady Pradana - Launch into the Stratus-phere Adversary ...
 
Ali - The Journey-Hack Electron App Desktop (MacOS).pdf
Ali - The Journey-Hack Electron App Desktop (MacOS).pdfAli - The Journey-Hack Electron App Desktop (MacOS).pdf
Ali - The Journey-Hack Electron App Desktop (MacOS).pdf
 
Muh. Fani Akbar - Infiltrate Into Your AWS Cloud Environment Through Public E...
Muh. Fani Akbar - Infiltrate Into Your AWS Cloud Environment Through Public E...Muh. Fani Akbar - Infiltrate Into Your AWS Cloud Environment Through Public E...
Muh. Fani Akbar - Infiltrate Into Your AWS Cloud Environment Through Public E...
 
Rama Tri Nanda - NFC Hacking Hacking NFC Reverse Power Supply Padlock.pdf
Rama Tri Nanda - NFC Hacking Hacking NFC Reverse Power Supply Padlock.pdfRama Tri Nanda - NFC Hacking Hacking NFC Reverse Power Supply Padlock.pdf
Rama Tri Nanda - NFC Hacking Hacking NFC Reverse Power Supply Padlock.pdf
 
Arief Karfianto - Proposed Security Model for Protecting Patients Data in Ele...
Arief Karfianto - Proposed Security Model for Protecting Patients Data in Ele...Arief Karfianto - Proposed Security Model for Protecting Patients Data in Ele...
Arief Karfianto - Proposed Security Model for Protecting Patients Data in Ele...
 
Nosa Shandy - Clickjacking That Worthy-Google Bug Hunting Story.pdf
Nosa Shandy - Clickjacking That Worthy-Google Bug Hunting Story.pdfNosa Shandy - Clickjacking That Worthy-Google Bug Hunting Story.pdf
Nosa Shandy - Clickjacking That Worthy-Google Bug Hunting Story.pdf
 
Baskoro Adi Pratomo - Evaluasi Perlindungan Privasi Pengguna pada Aplikasi-Ap...
Baskoro Adi Pratomo - Evaluasi Perlindungan Privasi Pengguna pada Aplikasi-Ap...Baskoro Adi Pratomo - Evaluasi Perlindungan Privasi Pengguna pada Aplikasi-Ap...
Baskoro Adi Pratomo - Evaluasi Perlindungan Privasi Pengguna pada Aplikasi-Ap...
 
Utian Ayuba - Profiling The Cloud Crime.pdf
Utian Ayuba - Profiling The Cloud Crime.pdfUtian Ayuba - Profiling The Cloud Crime.pdf
Utian Ayuba - Profiling The Cloud Crime.pdf
 
Proactive cyber defence through adversary emulation for improving your securi...
Proactive cyber defence through adversary emulation for improving your securi...Proactive cyber defence through adversary emulation for improving your securi...
Proactive cyber defence through adversary emulation for improving your securi...
 
Perkembangan infrastruktur kunci publik di indonesia - Andika Triwidada
Perkembangan infrastruktur kunci publik di indonesia - Andika TriwidadaPerkembangan infrastruktur kunci publik di indonesia - Andika Triwidada
Perkembangan infrastruktur kunci publik di indonesia - Andika Triwidada
 
Pentesting react native application for fun and profit - Abdullah
Pentesting react native application for fun and profit - AbdullahPentesting react native application for fun and profit - Abdullah
Pentesting react native application for fun and profit - Abdullah
 
Hacking oximeter untuk membantu pasien covid19 di indonesia - Ryan fabella
Hacking oximeter untuk membantu pasien covid19 di indonesia - Ryan fabellaHacking oximeter untuk membantu pasien covid19 di indonesia - Ryan fabella
Hacking oximeter untuk membantu pasien covid19 di indonesia - Ryan fabella
 
Vm escape: case study virtualbox bug hunting and exploitation - Muhammad Alif...
Vm escape: case study virtualbox bug hunting and exploitation - Muhammad Alif...Vm escape: case study virtualbox bug hunting and exploitation - Muhammad Alif...
Vm escape: case study virtualbox bug hunting and exploitation - Muhammad Alif...
 
Devsecops: membangun kemampuan soc di dalam devsecops pipeline - Dedi Dwianto
Devsecops: membangun kemampuan soc di dalam devsecops pipeline - Dedi DwiantoDevsecops: membangun kemampuan soc di dalam devsecops pipeline - Dedi Dwianto
Devsecops: membangun kemampuan soc di dalam devsecops pipeline - Dedi Dwianto
 
Stream crime
Stream crime Stream crime
Stream crime
 
(Paper) Mips botnet worm with open wrt sdk toolchains
(Paper) Mips botnet worm with open wrt sdk toolchains(Paper) Mips botnet worm with open wrt sdk toolchains
(Paper) Mips botnet worm with open wrt sdk toolchains
 

Endhy - Implementasi Algoritma Stream Cipher Rabbit Pada Protokol Secure Socket Layer (SSL)

  • 1. Implementasi Algoritma Stream Cipher Rabbit Pada Protokol Secure Socket Layer (SSL) Mohamad Endhy Aziz1, Yan Adikusuma2 1 Fakultas Ilmu Komputer, Universitas Indonesia, mohamad.endhy@ui.ac.id, Telp.+62856 92020442 2 Sekolah Tinggi Sandi Negara, yan_adikusuma@lemsaneg.go.id, Telp.+62813 15502332 Abstrak. Secure Socket Layer (SSL) merupakan salah informasi yang bersifat rahasia. Enkripsi merupakan satu protokol kriptografi yang paling banyak suatu teknik menyamarkan atau mengaburkan suatu digunakan saat ini. Akan tetapi, dalam penggunaannya pesan sedemikian rupa sehingga isi pesan tersebut SSL memiliki beberapa permasalahan, salah satunya dapat disembunyikan [13]. Enkripsi dapat diterapkan dalam hal performa. Walaupun saat ini SSL telah dalam suatu protokol kriptografi yang dikemas dalam mendukung AES sebagai standar enkripsi, pada suatu aplikasi sehingga kedua belah pihak yang saling kenyataannya masih banyak kalangan pengembang berhubungan dapat melakukan komunikasi secara maupun pengguna yang masih menggunakan RC4 aman. untuk algoritma penyandian datanya (bulk Protokol-protokol jaringan yang digunakan saat ini encryption). Hal ini dilakukan untuk mengurangi hanya memberikan perlindungan yang terbatas dalam dampak dari lambatnya performa pada SSL. Namun, hal pengamanan data yang ditransmisikan, bahkan dari hasil beberapa penelitian yang telah dilakukan, terdapat beberapa protokol jaringan yang mengirimkan RC4 terbukti memiliki beberapa kelemahan data secara plain. Dalam perkembangan serta kriptografis. Pada penelitian ini penulis pemanfaatan internet yang sangat signifikan seperti mengimplementasikan algoritma stream cipher Rabbit saat ini, seperti untuk transaksi elektronik, perbankan, sebagai alternatif algoritma penyandian data baru bahkan pemerintahan, maka sangat mutlak diperlukan pada SSL. Algoritma Rabbit tidak hanya memiliki suatu mekanisme perlindungan tambahan untuk kekuatan kriptografis yang baik namun juga memiliki menjaga kerahasiaan serta integritas data yang performa yang relatif cukup tinggi. Hasil pengujian ditransmisikan. menunjukkan bahwa proses transfer data melalui SSL Salah satu protokol kriptografi yang banyak menggunakan algoritma Rabbit sedikit lebih lambat digunakan saat ini adalah Secure Socket Layer. SSL dibandingkan dengan RC4 (sekitar 5 % pada file yang merupakan protokol yang dirancang untuk berukuran 5 MB dan 3,5% pada file berukuran 10 mengamankan komunikasi melalui jaringan TCP/IP. MB). Akan tetapi, dibandingkan dengan AES-128, Tujuan utama dibuatnya protokol ini adalah untuk algoritma ini menunjukkan peningkatan kecepatan menghindari akses yang tidak sah atau modifikasi pada transfer yang cukup signifikan (sekitar 4 % pada file data yang ditransmisikan antara dua endpoint. Pada berukuran 5 MB dan 20% pada file berukuran 10 MB). awalnya, SSL dikembangkan oleh Netscape Corp. dengan tujuan untuk mengamankan komunikasi pada 1. Pendahuluan web (melalui web browser). Namun, seiring perkembangan zaman, berbagai aplikasi lain, seperti Perkembangan ilmu pengetahuan dan teknologi email, aplikasi transfer data, dsb juga memanfaatkan yang demikian pesat telah memberikan banyak protokol ini sebagai jalur komunikasi yang dipercaya. kemudahan bagi manusia dalam melakukan segala Saat ini SSL telah digunakan untuk mengamankan kegiatannya, termasuk dalam melakukan pertukaran berbagai jenis aplikasi, mulai dari transaksi elektronik, informasi. Akan tetapi, terdapat pihak-pihak tertentu kesehatan, sampai finansial. dengan berbagai kepentingan berusaha mengungkap Akan tetapi, SSL memiliki beberapa permasalahan, pertukaran informasi yang dilakukan oleh pihak salah satunya dalam hal performa [9]. Penelitian lainnya. Tentu hal ini menimbulkan suatu kerugian menunjukkan web server yang berjalan di atas SSL apabila informasi yang dipertukarkan merupakan (HTTPS) lebih lambat 3,4 sampai 9 kali dibandingkan informasi yang bersifat rahasia, misalnya informasi dengan web server reguler [3]. Hal ini tentu berakibat mengenai account pribadi pada suatu bank. pada berkurangnya produktivitas web server tersebut Enkripsi dapat digunakan sebagai salah satu teknik dalam melayani penggunanya. Permasalahan ini dalam mengamankan pertukaran informasi, khususnya terutama disebabkan oleh perhitungan kriptografis 1
  • 2. yang dilakukan pada protokol SSL. Proses perhitungan akses yang tidak sah terhadap data yang yang paling banyak memakan sumber daya adalah pada ditransmisikan. Protokol SSL saat ini telah memiliki perhitungan public key. Beberapa penelitian telah beberapa versi. SSL versi 3 (SSLv3) didesain dengan dilakukan untuk mengatasi permasalahan ini dengan memperhatikan masukan dari kalangan publik serta menggunakan beberapa metode [6]. Proses perhitungan industri, dan telah dipublikasikan sebagai Internet lainnya yang cukup memakan sumber daya adalah Draft. Versi SSL terbaru, yaitu Transport Layer proses enkripsi data (bulk encryption). Walaupun saat Security (TLS) merupakan versi protokol SSL yang ini SSL telah mendukung AES sebagai standar telah distandarisasi oleh IETF melalui RFC 2246. enkripsi, namun pada kenyataannya masih banyak Protokol SSL bekerja di bawah lapisan aplikasi kalangan pengembang maupun pengguna yang masih (application layer) pada protokol TCP/IP. SSL pada menggunakan RC4 sebagai algoritma penyandian dasarnya merupakan protokol berlapis (layered datanya. Hal ini dilakukan untuk mengurangi efek dari protocol). SSL Record Protocol, yang merupakan lambatnya performa SSL. Dilihat dari karakteristiknya, lapisan (layer) paling bawah, berjalan di atas protokol RC4 yang merupakan satu-satunya algoritma stream transport yang dapat diandalkan (reliable transport cipher yang diimplementasikan pada SSL (standar protocol) seperti TCP. SSL Record Protocol juga IETF), memang merupakan algoritma yang memiliki berfungsi mengkapsulasi berbagai protokol pada performa paling baik dibandingkan dengan algoritma lapisan yang lebih tinggi (higher-level protocol), lain pada SSL, misalnya AES, DES, 3DES, dll. seperti HyperText Transfer Protocol (HTTP) yang Namun, dari hasil beberapa penelitian seperti yang menyediakan layanan transfer pada Web. Tiga protokol terdapat pada [12], RC4 terbukti memiliki beberapa pada lapisan yang lebih tinggi adalah Handshake kelemahan. Walaupun kelemahan-kelemahan tersebut Protocol, Change Cipher Spec Protocol, dan Alert hanya bersifat teoretis, namun tetap perlu kita Protocol. Tiga protokol pada lapisan atas ini berfungsi antisipasi agar tidak terjadi kebocoran dalam mengatur pertukaran informasi yang dilakukan pada pengiriman informasi rahasia. SSL (SSL exchange). Gambar 1 adalah ilustrasi dari Oleh karena itu, pada penelitian ini penulis lapisan protokol pada SSL. berusaha mengimplementasikan suatu algoritma yang tidak hanya memiliki kekuatan kriptografis yang baik SSL SSL Change Application SSL namun juga memiliki performa yang secara umum Handshake Cipher Spec Alert Protocol Lay er Protocol Protocol Protocol lebih baik dibanding algoritma lainnya [1][2]. Algoritma yang diimplementasikan adalah algoritma SSL Record Protocol stream cipher Rabbit. Rabbit didesain sebagai algoritma yang efisien dalam implementasi pada software. Algoritma Rabbit didesain dan telah TCP dipelajari secara ekstensif oleh para pakar kriptografi dari Cryptico A/S dengan memperhatikan berbagai IP jenis metode kriptanalisa [11]. Algoritma ini juga telah distandarisasi oleh IETF melalui RFC 4503. Dari hasil Sumber : Rhee, M.Y. 2003. Internet Security: Cryptographic Principles, Algorithms and Protocols. pengujian serta analisa yang dilakukan, algoritma Gambar 1. Ilustrasi lapisan protokol SSL. Rabbit terbukti kuat secara kriptografis dan resistan terhadap metode-metode kriptanalisa yang ada [2]. Berdasarkan karakteristik yang dimiliki oleh algoritma SSL Record Protocol menyediakan layanan Rabbit, maka diharapkan implementasi algoritma ini keamanan dasar bagi protokol-protokol pada lapisan dapat tetap menjaga performa pada SSL seperti yang yang lebih tinggi, yaitu Handshake Protocol, Change dimiliki oleh RC4 dengan tidak mengorbankan aspek Cipher Spec Protocol, dan Alert Protocol. SSL Record keamanan yang tentunya harus lebih diutamakan. Protocol menerima data dari suatu aplikasi, kemudian menjalankan beberapa tahapan, diantaranya : fragmentasi data ke dalam beberapa blok, kompresi 2. Protokol Secure Socket Layer (SSL) data (opsional), penambahan MAC, enkripsi data, Secure Socket Layer (SSL) merupakan salah satu penambahan header, kemudian mengirimkan hasilnya protokol kriptografi yang paling banyak digunakan saat ke TCP. Sebaliknya, data yang diterima akan ini. Protokol ini berfungsi menyediakan jalur yang didekripsi, deverifikasi, didekompres, disatukan aman serta mengotentikasi kedua belah pihak/entitas (reassambled), kemudian hasilnya dikirim kepada yang berkomunikasi untuk mencegah modifikasi atau aplikasi pada lapisan yang lebih tinggi. Ilustrasi 2
  • 3. operasi pada SSL Record Protocol secara keseluruhan algoritma pada umumnya, algoritma Rabbit tidak ditunjukkan pada Gambar 2. menggunakan linear feedback shift register ataupun S- box. Desain ini memiliki beberapa konsekuensi penting. Sumber : Boesgard, M. et al. 2003. The Stream Cipher Rabbit. Sumber : Rhee, M.Y. 2003. Internet Security: Cryptographic Principles, Algorithms and Protocols. Gambar 3. Skema Next-state Function pada Rabbit. Gambar 2. Ilustrasi operasi pada SSL Record Protocol. Desain algoritma Rabbit sangat kompak. Seluruh operasi aritmatika yang digunakan pada algoritma ini 3. Stream Cipher Rabbit didukung oleh prosesor modern, sehingga algoritma ini Algoritma Rabbit dipublikasikan pertama kali pada memiliki kecepatan pemrosesan yang sangat tinggi Fast Software Encryption Workshop 2003. Algoritma pada berbagai platform. Berbeda dengan desain ini merupakan algoritma stream cipher yang algoritma stream cipher pada umumnya, algoritma ini menggunakan kunci (secret key) dengan panjang 128- juga memiliki kecepatan IV serta key setup yang tinggi. bit dan 64-bit IV sebagai input. Hasil kombinasi Algoritma Rabbit tidak menggunakan S-box atau internal state-nya menghasilkan output berupa operasi pada GF (2n). Oleh karena itu tidak dibutuhkan rangkaian bit semi acak (pseudorandom bit) dengan look up table, sehingga ruang memori yang dibutuhkan panjang 128-bit per blok. Proses enkripsi/dekripsi baik dalam implementasi pada hardware maupun dilakukan dengan men-XOR-kan rangkaian bit semi software sangat kecil. Tabel 1 merupakan performa acak tersebut dengan plaintext/ciphertext. Internal (dalam clock cycles atau clock cycles per byte), ukuran state-nya berjumlah 513 bit dibagi ke dalam delapan kode (code size) dan jumlah memori (dalam byte) yang 32-bit variabel state, delapan 32-bit counter dan satu dibutuhkan masing-masing untuk proses enkripsi, key counter carry bit. Kedelapan variabel state di-update setup dan IV setup pada prosesor Intel Pentium oleh fungsi non-linear masing-masing pasangan berdasarkan [1]. variabel state tersebut. Algoritma Rabbit didesain agar efisien dalam implementasi pada software serta Tabel 1. Performa, ukuran kode dan jumlah memori mengimbangi ukuran kunci sepanjang 128 bit untuk yang dibutuhkan oleh Rabbit pada prosesor Pentium. mengenkripsi sampai dengan 264 blok plaintext. Ini Prosesor Performa Ukuran Kode Memori berarti bahwa untuk melakukan attack tanpa mengetahui rangkaian kunci, maka pihak penyerang Pentium III 3,7/278/253 440/617/720 40/36/44 harus menentukan sampai dengan 264 blok output Pentium 4 5,1/480/749 698/516/762 16/36/28 ciphertext atau melakukan exhaustive key search sebanyak 2128 kombinasi kunci. Algoritma Rabbit merupakan stream cipher dengan Selain itu, yang perlu dijadikan catatan, pada desain baru. Desain algoritma ini menggunakan proses prosesor modern jumlah inner state-nya tidak melebihi pencampuran (mixing) inner state secara non-linear ruang pada register prosesor tersebut, sehingga tidak antara dua iterasinya. Berbeda dengan desain-desain membutuhkan akses ke memori utama yang kurang 3
  • 4. efisien secara komputasi (membutuhkan waktu dan dimana kombinasi kedua protokol ini membentuk suatu perhitungan tambahan). protokol yakni HTTPS (HTTP over SSL). Pada Algoritma Rabbit telah dievaluasi secara ekstensif protokol SSL, ketiga algoritma tersebut digunakan terhadap seluruh kemungkinan attack yang dapat sebagai bulk encryption algorithm (algoritma dilakukan, baik stream maupun block cipher penyandian data) dalam SSL Record Protocol. Pada kriptanalisis. Desain Rabbit yang berbeda membuat SSL Record Protocol inilah seluruh data dari lapisan jenis attack umum yang dapat dilakukan terhadap aplikasi (application layer) diproses, mulai dari stream cipher menjadi tidak aplikatif. Baik algebraic pemecahan data menjadi beberapa fragmen, attack maupun correlation attack tidak dapat penghitungan nilai MAC, enkripsi, sampai dengan diaplikasikan terhadap Rabbit. Time-Memory-Data pengiriman. tradeoff juga tidak dapat diaplikasikan terhadap Rabbit Selain itu, pada pengujian ini perlu dilakukan karena jumlah internal state yang cukup besar, yakni pemisahan antara Record Protocol dengan tahapan 513 bit. Para pendesain algoritma ini yakin bahwa protokol lainnya pada SSL. Penulis menggunakan untuk melakukan serangan terhadap Rabbit harus program Wireshark Network Analyzer1 untuk melihat dilakukan berdasarkan suatu metode attack yang sama dan memisahkan tahapan-tahapan protokol tersebut. sekali baru. Dari hasil pengujian serta analisa, Penulis menggunakan Wireshark Network Analyzer disimpulkan bahwa algoritma Rabbit resistan terhadap versi 0.99.4, dimana pada versi ini sudah terdapat metode kriptanalisa yang ada saat ini. dukungan untuk melakukan analisis terhadap paket- paket jaringan yang dikirimkan menggunakan protokol 4. Metode Pengujian SSL. Pada bagian ini akan dijabarkan mengenai metode 4.a.Metrik Pengujian pengujian yang digunakan untuk mengevaluasi hasil implementasi algoritma Rabbit pada protokol SSL. Penulis membandingkan performa ketiga Secara umum, pengujian yang dilakukan dititik algoritma (Rabbit, RC4 dan AES-128) dengan beratkan pada performa algoritma Rabbit dalam menggunakan : implementasinya pada SSL. 3 ciphersuites yang berbeda, masing-masing Proses pengujian dilakukan dengan melakukan mewakili algoritma yang diuji, yaitu perbandingan (benchmarking) antara algoritma Rabbit TLS_RSA_WITH_RABBIT_SHA, TLS_RSA_ dengan algoritma simetrik lain yang terdapat pada WITH_RC4_128_SHA dan TLS_RSA_WITH_ protokol SSL, yakni AES-128 dan RC4. Sebagai AES128_SHA. Pemilihan ciphersuites ini catatan, penggunaan algoritma AES banyak berdasarkan dukungan ciphersuites pada OpenSSL direkomendasikan bagi pengguna yang menitik serta untuk kesetaraan dalam pengujian (OpenSSL beratkan pada faktor keamanan, sedangkan RC4 tidak mendukung ciphersuites RC4 dengan direkomendasikan bagi mereka yang menitik beratkan algoritma ephemeral DH/DHE sebagai algoritma pada faktor performa. otentikasinya, sedangkan ciphersuites AES dan Sebagai acuan awal, penulis melakukan Rabbit tidak mendukung penggunaan algoritma perbandingan performa ketiga algoritma tersebut secara digest selain SHA). independen (sebelum/tanpa implementasi pada 5 file dengan ukuran yang berbeda, masing-masing protokol SSL). Untuk melakukan perbandingan ini, 500 KB, 1 MB, 2 MB, 5 MB dan 10 MB. penulis menggunakan tool OpenSSL. OpenSSL Perbedaan ukuran file ini untuk melihat sejauh menyediakan suatu benchmarking suite yang dapat mana performa setiap algoritma berdampak pada digunakan untuk menguji performa setiap algoritma lamanya waktu transfer tiap-tiap file. yang terdapat pada OpenSSL. Cara kerja dari benchmarking suite ini adalah mengukur berapa Setiap file dengan menggunakan setiap algoritma banyak operasi yang dapat dilakukan oleh setiap diambil sampel sebanyak 30 kali. Pengambilan sampel algoritma untuk mengenkripsi data dalam jumlah dan sebanyak ini diharapkan sudah mewakili populasi waktu yang telah ditentukan (3 detik). untuk setiap proses transfer setiap file menggunakan Untuk menguji performa ketiga algoritma di atas ketiga algoritma yang diuji. Pengujian ini dilakukan dalam implementasinya pada protokol SSL, penulis pada jaringan ethernet (LAN) dengan kapasitas 100 melakukan serangkaian tahapan pengujian. Protokol MBps dalam kondisi lalu lintas (traffic) jaringan yang pada lapisan aplikasi (application layer) yang tidak terlalu sibuk, sehingga diasumsikan bahwa memanfaatkan SSL pada pengujian ini adalah HTTP, 1 Dapat diakses di http://www.wireshark.org 4
  • 5. kondisi jaringan tidak terlalu berpengaruh pada proses transfer data. 4.b.Platform Pengujian Untuk perangkat server, penulis menggunakan Apache Server 1.3 dengan mod_ssl2 yang telah dikonfigurasi sehingga mendukung penggunaan algoritma Rabbit. Sedangkan untuk aplikasi client, penulis menggunakan cURL3. cURL merupakan suatu aplikasi transfer data yang mendukung penggunaan beberapa jenis protokol, antara lain HTTP, HTTPS, FTP, LDAP, dll. Spesifikasi komputer yang digunakan pada server Gambar 4. Perbandingan performa antara algoritma adalah PC dengan spesifikasi yang sama dengan Rabbit, RC4 dan AES-128 pada platform Windows. pengujian kedua, menggunakan sistem operasi Fedora Core Linux 6. Sedangkan di sisi client, penulis menggunakan komputer notebook dengan spesifikasi prosesor Intel Celeron 1,5 GHz dan memori 1 GB. Sistem operasi yang digunakan adalah OpenSUSE Linux 10.2. Pada komputer client ini sudah terinstalasi aplikasi cURL dan Wireshark Network Analyzer yang digunakan untuk menginisialisasi koneksi dengan server dan menganalisa (memisahkan) tahapan-tahapan dalam protokol SSL. 5. Hasil Pengujian dan Analisis Dari hasil pengujian dan analisis ini akan didapatkan suatu evaluasi hasil implementasi dan juga Gambar 5. Perbandingan performa antara algoritma perbandingan antara algoritma yang diimplementasikan Rabbit, RC4 dan AES-128 pada platform Linux (Fedora Core Linux 6). (Rabbit) dengan beberapa algoritma lain yang terdapat pada protokol SSL dilihat dari sudut pandang performa dan juga keamanannya. Berdasarkan pengujian tersebut, terdapat perbedaan performa pada kedua lingkungan pengujian. Sebagai catatan, penulis menggunakan Microsoft 5.a. Performa Algoritma Rabbit dalam Visual C++ 8.0 untuk melakukan kompilasi OpenSSL Implementasinya pada SSL pada lingkungan Windows, sedangkan pada Linux Gambar 4 dan 5 merupakan hasil dari pengujian (Fedora Core Linux 6) penulis menggunakan gcc versi awal untuk mengetahui performa ketiga algoritma yang 4.1.1. Hal ini menunjukkan bahwa penentuan diuji sebelum/tanpa implementasi di SSL pada dua lingkungan pengujian/platform juga akan berdampak lingkungan pengujian yang berbeda (Windows dan pada performa yang dihasilkan. Linux). Kode sumber OpenSSL pada kedua platform Gambar 6 merupakan hasil perbandingan performa tersebut dikompilasi dengan optimasi untuk prosesor ketiga algoritma (Rabbit, RC4 dan AES-128) dalam Pentium (x86). implementasinya pada protokol SSL. Berdasarkan pengujian tersebut, perbedaan waktu transfer yang cukup signifikan mulai terlihat pada proses transfer file yang berukuran 10 MB. Sedangkan waktu transfer untuk file yang berukuran lebih kecil (500 KB, 1 MB, 2 MB dan 5 MB) perbedaannya tidak terlalu signifikan (hanya berselisih sekitar beberapa milidetik). 2 Dapat diakses di http://www.modssl.org 3 Dapat diakses di http://www.curl.haxx.de 5
  • 6. 1,5 operasi-operasi sederhana (swap dan 054 addition/penambahan). Proses enkripsi hanya 77 1,2 6 063 dilakukan dengan men-XOR rangkaian kunci yang 3 1, 1,25 dihasilkan dengan plaintext. 26 1,0 Lain halnya dengan AES-128, dimana plaintext 1 yang menjadi input pada algoritma ini diproses melalui beberapa round (putaran), dan tiap-tiap round tersebut Waktu (detik) 0,75 RC4 terdiri dari beberapa operasi, yaitu substitusi S-Box, 2 8 27 78 0,5 4 Rabbit pergeseran, multiplikasi dan operasi XOR. 06 0,4 0,5 0,5 AES-128 Keseluruhan proses ini tentunya berdampak pada performa algoritma ini sehingga relatif lebih lambat 9 0,2 6 32 0,2 2 19 dibandingkan dengan algoritma lainnya. 96 3 0,1 0,1 1 0,1 4 15 0,25 08 5 0,0 9 Proses enkripsi pada algoritma Rabbit sedikit lebih 99 61 52 56 0,0 0,0 0,0 rumit dan membutuhkan sumber daya (resource) 0 dibandingkan dengan RC4. Rabbit menggunakan suatu 500 KB 1 MB 2 MB 5 MB 10 MB fungsi yang bernama g-function (fungsi non-linear), Jumlah Data dimana pada fungsi inilah letak kekuatan kriptografis Gambar 6. Hasil perbandingan performa tiap-tiap utama dari keseluruhan algoritma. g-function ini algoritma dengan mengukur lama waktu proses transfer merupakan operasi pemangkatan 32-bit (32-bit file. squaring). Walaupun operasi ini relatif cepat dan Hasil pengujian tersebut menunjukkan bahwa efisien dalam implementasinya pada prosesor modern, kecepatan proses transfer file dengan algoritma Rabbit operasi inilah yang paling membutuhkan sumber daya mengalami sedikit penurunan dibandingkan dengan dibandingkan operasi-operasi yang digunakan pada menggunakan RC4 (sekitar 2,5% pada file yang algoritma lainnya (RC4 dan AES tidak menggunakan berukuran 10 MB). Akan tetapi, dibandingkan dengan operasi ini, walaupun pada AES terdapat operasi AES-128, kecepatan proses transfer file menggunakan multiplikasi). Sebagai catatan, fungsi ini digunakan algoritma Rabbit menunjukkan peningkatan yang dalam setiap proses pada algoritma Rabbit (key setup, cukup signifikan, khususnya pada file berukuran 10 IV setup dan next-state function). Faktor ini yang MB. menyebabkan performa yang dimiliki algoritma Rabbit Salah satu aspek yang paling diperhatikan pada tidak sebaik yang dimiliki RC4. pemilihan algoritma dalam implementasinya pada Dalam implementasinya pada protokol SSL, dalam suatu sistem adalah performa (kecepatan) algoritma hal ini untuk mengamankan komunikasi (transfer data) tersebut dalam melakukan proses enkripsi. Algoritma pada HTTP, algoritma Rabbit juga menunjukkan Rabbit, yang merupakan jenis algoritma stream cipher, performa yang relatif lebih baik jika dibandingkan didesain sebagai algoritma yang memiliki performa dengan AES-128. Berdasarkan pengujian, dalam tinggi, terutama dalam implementasinya pada software. implementasinya, RC4 tetap merupakan algoritma Hasil pengujian menggunakan benchmarking suite yang memiliki performa paling baik, disusul oleh OpenSSL yang diilustrasikan pada Gambar 5 dan 6 Rabbit dan terakhir AES-128. Pada proses transfer data memberikan gambaran mengenai performa algoritma yang berukuran 500 KB, 1 MB, 2 MB dan 5 MB, Rabbit secara umum. Walaupun terdapat perbedaan perbedaan performa antara ketiga algoritma belum hasil antara kedua lingkungan pengujian, akan tetapi terlalu terlihat. Perbedaan performa ini cukup terlihat secara umum hasil pengujian tersebut menunjukkan pada proses transfer file yang berukuran 10 MB. Pada bahwa algoritma Rabbit memiliki performa yang relatif file dengan ukuran ini, proses transfer menggunakan lebih baik dibandingkan dengan AES-128 (mencapai Rabbit lebih cepat mencapai 20% dibandingkan dengan 59% pada lingkungan Windows dan 43% pada Linux). AES-128, walaupun lebih lambat sekitar 3,5% Berdasarkan pengujian yang sama, RC4 dibandingkan dengan RC4. merupakan algoritma yang memiliki performa paling Berdasarkan hasil tersebut, penggunaan algoritma baik, dengan throughput mencapai 237,606 MB/s. Hal Rabbit akan lebih optimal untuk proses transfer data ini dikarenakan proses enkripsi RC4 secara yang berjumlah cukup besar (≥10 MB). Sedangkan keseluruhan merupakan yang paling sederhana untuk proses transfer data yang jumlahnya relatif kecil, dibandingkan dengan Rabbit dan AES-128. Dalam halaman web misalnya, pemilihan algoritma simetrik menghasilkan rangkaian kunci (keystream), RC4 hanya tidak memiliki pengaruh yang signifikan terhadap membutuhkan beberapa langkah dengan menggunakan kecepatan proses transfer data (berdasarkan pengujian, 6
  • 7. transfer data pada file berukuran 500 KB tidak dibandingkan dengan tingkat keamanan/kekuatan menunjukkan perbedaan yang signifikan antara tiap- kriptografis yang dimiliki oleh Rabbit. tiap algoritma yang digunakan). Selain itu, berdasarkan pengujian awal (lihat 6. Kesimpulan gambar 5 dan 6), hasil yang berbeda dalam implementasinya pada kedua platform yang berbeda Walaupun proses transfer data melalui SSL menunjukkan bahwa performa setiap algoritma, menggunakan algoritma Rabbit menunjukkan hasil termasuk Rabbit, juga bergantung pada platform yang yang lebih lambat dibandingkan dengan RC4 (sekitar menjalankannya. Berkaitan dengan hal ini, diperlukan 3,5% pada file berukuran 10 MB), algoritma ini suatu penelitian lebih lanjut mengenai pengaruh suatu menunjukkan peningkatan kecepatan transfer yang platform terhadap proses/operasi pada algoritma cukup signifikan dibandingkan dengan AES-128 enkripsi. Akan tetapi, yang perlu digaris bawahi adalah (sekitar 20% pada file berukuran 10 MB). Hal ini bahwa penentuan suatu platform juga akan berdampak memperlihatkan bahwa perbedaan performa antara pada performa hasil implementasi suatu algoritma. Rabbit dengan RC4 pada SSL tidak terlalu signifikan dibandingkan dengan tingkat keamanan/kekuatan 5.b.Analisis Penggunaan Algoritma Rabbit kriptografis yang dimiliki oleh Rabbit. pada SSL Ditinjau dari Faktor Keamanan Referensi Faktor keamanan adalah hal paling utama dalam pemilihan suatu algoritma dalam implementasinya [1] Boesgard, M., Vesterager M., Christensen T. & pada suatu sistem. Algoritma Rabbit tidak hanya Zenner, E. 2003. The Stream Cipher Rabbit, memiliki performa yang tinggi dalam implementasinya http://www.ecrypt.eu.org/stream/p3ciphers/ pada software, namun juga memiliki kekuatan rabbit/rabbit_p3.pdf. kriptografis yang sangat baik dan telah melalui [2] Boesgard, M., Pedersen, T., Vesterager M., & berbagai metode kriptanalisa. Zenner E. 2004. Proc. SASC 2004 : The Rabbit Salah satu nilai tambah yang dimiliki oleh Rabbit Stream Cipher - Design and Security Analysis, adalah skema IV (IV scheme) yang digunakan pada http://www.cryptico.com/DWSDownload.asp? proses enkripsi. Dalam setiap proses enkripsi, selain File=Files/Filer/ SASC_Rabbit.pdf. menggunakan kunci sepanjang 128 bit sebagai input, Rabbit juga menggunakan IV dengan panjang 64 bit. [4] Coarfa, C., Druschel, P. & Wallach, D.S. 2002. Penggunaan IV akan menghasilkan sampai dengan 264 Performance Analysis of TLS Web Servers, rangkaian kunci yang berbeda walaupun menggunakan http://www.isoc.org/isoc/conferences/ndss/02/ kunci yang sama. Selain itu, penggunaan IV juga akan proceedings/papers/coarfa.pdf. menambah kompleksitas dalam kriptanalisa karena [5] Doroshenko, B. & Ryabko, B. The Experimental adanya mekanisme re-keying, sehingga akan Distinguishing Attack On RC4. mempersulit rekonstruksi kunci input yang digunakan. http://eprint.iacr.org/2006/070.pdf. Hal inilah yang menjadi nilai tambah Rabbit dibandingkan dengan RC4 sebagai sesama jenis [6] Jensen, Jens G. 2006. Enhancing SSL algoritma stream cipher. Sebagai catatan, nilai IV yang Performance, http://www.gridpp.ac.uk/papers/ dihasilkan dari proses pertukaran kunci pada fase SSL chep06_jensen.pdf. Handshake Protocol tidak dapat dimanfaatkan oleh [7] Gupta, V., Stebila, D., Fung, S., Shantz, S.C., algoritma RC4 karena algoritma ini tidak mendukung Gura, N. & Eberle, H. 2004. Speeding Up penggunaan IV, sehingga nilai kerahasiaan dari setiap Secure Web Transaction Using Elliptic Curve pembangkitan rangkaian kunci hanya bergantung pada Cryptography, http://research.sun.com/projects/ kunci input yang digunakan. Walaupun saat ini belum crypto/ecc-ssl-ndss2004.pdf. terdapat penelitian yang menunjukkan kelemahan terhadap penggunaan RC4 pada SSL, akan tetapi [8] Hare, Chris. 2004. Dalam Tipton, H.F. & sebagai insan sandi kita tetap perlu mewaspadai Krause, Micki (Eds.), Information Security terhadap segala kemungkinan bentuk kelemahan Management Handbook - 5th Edition (hlm. ataupun serangan yang mungkin terjadi. Berdasarkan 203-215). Auerbach Publications. pengujian, perbedaan performa antara algoritma Rabbit [9] Rescorla, E. 2001. SSL and TLS: Building and dengan RC4 dalam implementasinya pada SSL Design Secure Systems. New Jersey: Addison menunjukkan hasil yang tidak terlalu signifikan Wesley. 7
  • 8. [10]Rhee, M.Y. 2003. Internet Security: Cryptographic Principles, Algorithms and Protocols. West Sussex: John Wiley & Sons Ltd. [11]Rijmen, V. 2003. Analysis of Rabbit, http://www.cryptico.com/DWSDownload.asp? File=Files/filer/ security_report.pdf. [12]Ross, A. 1995. A Class of Weak Keys in RC4 Stream Cipher, http://marcel.wanda.ch/Archive/WeakKeys- report.pdf [13]Schneier, B. 1996. Applied Cryptography: Protocols, Algorithms, and Source Code in C - 2nd Edition. New York: John Wiley & Sons, Inc. [14]Viega, J., Meisser, M. & Chandra, P. 2002. Network Security with OpenSSL. California: O’Reilly & Associates, Inc. [15]http://www.openssl.org. Mohamad Endhy Aziz adalah seorang penggiat keamanan informasi. Saat ini ia sedang menempuh kembali pendidikan sarjana di Fakultas Ilmu Komputer Indonesia setelah sebelumnya menamatkan gelar yang sama di Sekolah Tinggi Sandi Negara. Saat ini ia bekerja di salah satu lembaga pemerintah yang bergerak di bidang keamanan informasi. Yan Adikusuma adalah adalah seorang penggiat keamanan informasi. Ia merupakan salah satu staf pengajar di Sekolah Tinggi Sandi Negara. Setelah menamatkan pendidikan sarjana di Universitas Budi Luhur, ia melanjutkan studi dan memperoleh gelar Master of Engineering dari Nara Institute of Science and Technology (NAIST), Jepang. 8