You are on page 1of 10

Perancangan dan Tahapan Implementasi Algoritma Stream Cipher Rabbit pada

Protokol Secure Socket Layer (SSL)


Menggunakan OpenSSL
Mohamad Endhy Aziz*, Yan Adikusuma**
* Staf Deputi Bidang Pengkajian Persandian, Lembaga Sandi Negara
endhy.aziz@lemsaneg.go.id
** Staf Dosen pada Sekolah Tinggi Sandi Negara
adiku20@yahoo.com

algoritma Rabbit pada protokol Open Secure Socket Layer (SSL). membentuk dua buah library,
yaitu cryptography library dan SSL library. Ciphersuites yang menggunakan algoritma RSA untuk
otentikasi dan algoritma Diffie-Hellman untuk proses pertukaran kunci. Proses yang dilakukan
adalah pembuatan struktur/modul utama algoritma yang diimplementasikan, yakni meliputi file
header (untuk deklarasi fungsi dan struktur kunci), pengintegrasian kode-kode sumber Rabbit ke
dalam antar muka pemrograman OpenSSL (EVP API), pembuatan definisi-definisi untuk file object
algoritma Rabbit yang diperlukan untuk proses pemanggilan algoritma tersebut, perubahan/
modifikasi untuk command line interface OpenSSL, perubahan/modifikasi pada kumpulan pustaka
protokol SSL, penambahan instruksi-instruksi baru berupa informasi mengenai direktori dan juga
fungsi-fungsi algoritma Rabbit.
Kata kunci : Open SSL, algoritma Rabit
penyandian

1. Pendahuluan

datanya

(bulk

encryption

algorithm). Dalam membuat ciphersuites baru

Makalah ini akan membahas tentang


tahap

ini, penulis mengacu pada standar protokol

implementasi algoritma Rabbit pada protokol

SSL versi terbaru (TLSv1), dalam hal ini

Secure

adalah RFC 2246.

proses

perancangan
Socket

hingga

Layer

(SSL).

Proses

Hasil akhir dari implementasi pada kedua

implementasi dilakukan menggunakan salah


yang

library tersebut adalah versi OpenSSL baru

dikembangkan secara open source, yaitu

yang telah memuat algoritma Rabbit sebagai

OpenSSL.

fasilitas

satu

implementasi
Penulis

protokol

SSL

memodifikasi

dan

enkripsi,

baik

enkripsi

melalui

menambahkan beberapa file kode sumber

protokol SSL maupun enkripsi secara manual

(source code) OpenSSL sehingga algoritma

(melalui command line).

Rabbit

dapat

diimplementasikan.

Implementasi dilakukan di library OpenSSL,


yakni cryptography library dan SSL library.
Sebelum melakukan proses implementasi
tersebut, penulis perlu membuat rancangan
ciphersuites baru yang merupakan kombinasi
beberapa

algoritma

algoritma

Rabbit

kriptografi
sebagai

dengan
algoritma

2. Perancangan

otentikasi (total anonimity). Berikut ini adalah

2.1. Perancangan Ciphersuites Baru pada SSL

deskripsi masing-masing ciphersuites yang

Algoritma Rabbit akan diimplementasikan

akan dibentuk :

sebagai algoritma penyandian data (bulk


encryption

algorithm)

dimana

1). TLS_RSA_WITH_RABBIT_SHA

algoritma

Ciphersuites

yang

menggunakan

penyandian data ini merupakan salah satu

algoritma RSA untuk proses otentikasi dan

bagian

pertukaran kunci. Ciphersuites ini dapat

dari

ciphersuites

pada

SSL.

Tabel 1. Ciphersuites baru yang dibentuk.


Ciphersuites

Pertukaran
Kunci

Otentikasi

TLS_RSA_WITH_RABBIT_SHA

RSA

RSA

TLS_DHE_RSA_WITH_RABBIT_SHA

RSA

DHE

TLS_DHE_DSS_WITH_RABBIT_SHA

DSS

DHE

TLS_DH_anon_WITH_RABBIT_SHA

DH

Ciphersuites merupakan suatu set algoritma

Enkripsi
Rabbit
Rabbit
Rabbit
Rabbit

Message
Digest

(hexadesimal)

SHA

0x0047

SHA

0x0048

Nomor

SHA

0x0049

SHA

0x004A

digunakan dalam mode otentikasi dua

yang digunakan dalam membangun koneksi

belah

SSL. Ciphersuites ini tersusun atas algoritma

pihak

(authentication

of

both

parties) atau mode otentikasi server saja

otentikasi server, algoritma pertukaran kunci,

(authenticated server only/authenticated

algoritma penyandian data dan algoritma

server with an unauthenticated client).

message digest.

2). TLS_DHE_RSA_WITH_RABBIT_SHA

Algoritma Rabbit akan dikombinasikan

Ciphersuites

ini

menggunakan

dengan beberapa algoritma lain sehingga

algoritma Diffie-Hellman untuk pertukaran

membentuk ciphersuites baru. Kombinasi

kunci. Parameter Diffie-Hellman yang

ciphersuites baru ini tentunya juga disesuaikan

dikirim digabungkan (di-binding) dengan

pada standar yang ada, dalam hal ini adalah

sertifikat digital milik server (ephemeral

RFC 2246 sebagai standar versi terbaru

Diffie-Hellman). Sedangkan untuk proses

protokol SSL (TLSv1). Tabel 1 merupakan

otentikasi, ciphersuites ini menggunakan

daftar ciphersuites baru yang dibentuk.

algoritma RSA. Ciphersuites ini dapat

Ciphersuites tersebut mendukung tiga

digunakan dalam mode otentikasi dua

mode otentikasi yang didukung oleh TLS,

belah

yaitu

pihak

parties) atau mode otentikasi server saja

(authentication of both parties), otentikasi

(authenticated server only/authenticated

server

server with an unauthenticated client).

otentikasi
saja

only/authenticated
unauthenticated

dua

belah

(authenticated
server

server

with

an

client) dan mode

tanpa

pihak

(authentication

of

3). TLS_DHE_DSS_WITH_RABBIT_SHA

both

Ciphersuites

menggunakan

dideskripsikan pada RFC 2246. Pada RFC

algoritma Diffie-Hellman untuk pertukaran

2246, sebenarnya terdapat dua algoritma

kunci. Parameter Diffie-Hellman yang

message

dikirim digabungkan (di-binding) dengan

digunakan pada SSL, yaitu SHA (SHA-1) dan

sertifikat digital milik server (ephemeral

MD-5. Akan tetapi, untuk mempermudah

Diffie-Hellman). Sedangkan untuk proses

proses pengujian, pada penelitian ini hanya

otentikasi, ciphersuites ini menggunakan

digunakan satu message digest, yaitu SHA.

algoritma

Penggunaan message digest ini juga tidak

DSS

Standard).

ini

(Digital

Ciphersuites

Signature

yang

ditetapkan

untuk

dapat

berpengaruh banyak pada hasil penelitian,

digunakan dalam mode otentikasi dua

karena fokus penelitian ini terletak pada bulk

belah

encryption.

pihak

ini

digest

(authentication

of

both

parties) atau mode otentikasi server saja

2.2. Rencana Implementasi Pada OpenSSL

(authenticated server only/authenticated

Penulis

server with an unauthenticated client).


ini

open source, yaitu OpenSSL. Dalam proses

menggunakan

implementasi ini, penulis menambahkan serta

algoritma Diffie-Hellman untuk pertukaran

memodifikasi beberapa file kode sumber

kunci. Tidak ada proses otentikasi pada

(source

penggunaan ciphersuites ini.

0x0047-0x004A

hexadesimal).

(dalam

Berdasarkan

bilangan

literatur

dan

implementasi

algoritma

Camellia

pada

Interface OpenSSL1.
Penulis memilih menggunakan OpenSSL

Camellia pada SSL), keempat urutan (nomor)

karena tool ini merupakan implementasi SSL

tersebut belum digunakan. Keempat nomor

yang bersifat gratis (free) dan memiliki

inilah yang nantinya akan dikirimkan dalam

dukungan serta dokumentasi yang paling

negosiasi ciphersuites pada SSL

lengkap. Untuk memudahkan penulis dalam

Handshake Protocol.

proses implementasi, penulis menggunakan

ciphersuites
algoritma

(library)

OpenSSL yang terdapat pada CVS Web

SSL) dan RFC 4132 (implementasi algoritma

menggunakan

pustaka

penulis tambahkan mengacu pada catatan (log)

RFC 3268 (implementasi algoritma AES pada

Seluruh

pada

diimplementasikan. Kode-kode sumber yang

standar yang ada, dalam hal ini RFC 2246,

proses

codes)

OpenSSL, sehingga algoritma Rabbit dapat

Keempat ciphersuites di atas menempati


urutan

implementasi

protokol SSL yang telah dikembangkan secara

4). TLS_DH_anon_WITH_RABBIT_SHA

Ciphersuites

menggunakan

SHA

tersebut

OpenSSL versi 0.9.8c (stable version) karena

(SHA-1)

versi ini merupakan versi pertama yang dirilis

sebagai algoritma message digest sebagaimana

Web yang menampilkan informasi tentang setiap


perubahan/pengembangan yang dilakukan pada OpenSSL.

setelah

dibuatnya

catatan

implementasi

membangun

algoritma Camellia.

dilakukan

kode-kode
di

aplikasi

yang

memanfaatkan kriptografi sebagai fasilitas

Secara garis besar, implementasi berupa


penambahan

suatu

kedua

sumber

akan

kode-kode

sumber

OpenSSL

tersebut

OpenSSL

sebenarnya membentuk dua buah library,

(cryptography library dan SSL library).

yaitu cryptography library dan SSL library.

Penambahan

library

Untuk membangun kedua library tersebut,

diperlukan karena di library inilah seluruh

selain diperlukan fungsi-fungsi dalam bentuk

fungsi

termasuk

kode-kode sumber, diperlukan suatu set

akan

instruksi dalam bentuk script yang digunakan

di

cryptography

kriptografi

algoritma

library

pengamanan data. Akan tetapi, secara umum,

disimpan,

Rabbit

yang

diimplementasikan. Sedangkan untuk library

dalam proses kompilasi (build).

SSL, implementasi terutama difokuskan pada


penambahan

ciphersuites

dihasilkan

implementasi

sehingga

library tersebut disimpan pada direktori yang

yang

terpisah, masing-masing di direktori crypto

mendukung penggunaan algoritma Rabbit.

dan direktori ssl. Seluruh fungsi kriptografi

Selain itu juga perlu dilakukan beberapa

beserta rutin-rutin yang diperlukan dalam

modifikasi

(script)

pemanggilan fungsi kriptografi (seperti digital

kompilasi agar kode-kode sumber algoritma

envelope, Base64 encoding, dll) disimpan

baru

pada direktori crypto. Pada direktori ini

pada

yang

baru,

Pada kode sumber OpenSSL, kedua

SSL

beberapa

file

diimplementasikan

dapat

diintegrasikan pada OpenSSL.

pula akan disimpan

algoritma Rabbit. Direktori ssl menyimpan

3. Proses Dan Tahapan Implementasi

seluruh fungsi beserta kode-kode lain yang

Pada bagian ini akan dijelaskan mengenai

diperlukan dalam implementasi protokol SSL.

tahapan implementasi algoritma Rabbit pada


OpenSSL.

Untuk

kemudahan

kode sumber utama

penjelasan,

tahapan ini hanya yang akan dijelaskan secara

Cryptography
Library

SSL
Library

umum.
Sebelum melakukan proses implementasi,

Script Kompilasi
(Compilation Script)

perlu dilakukan identifikasi terhadap kodekode sumber OpenSSL. Kode-kode sumber

Gambar 1. Bagan umum library OpenSSL.

yang terdapat dalam paket distribusi OpenSSL

Proses implementasi dibagi ke dalam 3

sebenarnya cukup rumit. Ini dikarenakan

tahap, yaitu implementasi pada cryptography

banyak sekali fungsionalitas yang didukung

library, implementasi pada SSL library, dan

oleh OpenSSL yang dapat digunakan untuk

yang terakhir melakukan modifikasi pada file-

pemrograman pada OpenSSL) dengan

file konfigurasi/ pendukung lainnya.

membuat

Beberapa hal yang perlu diperhatikan/

terdapat

kode

sumber

pada

seperti

file

yang

openssl/

dipersiapkan untuk melakukan implementasi

crypto/evp/

algoritma simetrik baru pada OpenSSL adalah

itu diperlukan modifikasi pada beberapa

sebagai berikut. Kode-kode sumber baru tidak

file yang berkaitan dengan rutin-rutin EVP

ditampilkan

API yang tersimpan pada file-file berikut :

untuk

menyederhanakan

penjelasan.

1). Pembuatan
algoritma

struktur/modul
yang

utama

/evp/c_allc.c

diimplementasikan,

menyimpan seluruh fungsi pada algoritma

openssl/crypto

/evp/evp_test.c

openssl/crypto
openssl/crypto

/evp/evptests.txt

(fungsi key setup, enkripsi, dll) dan


untuk

openssl/crypto

/evp/evp_err.h

fungsi dan struktur kunci), file utama yang

(diperlukan

openssl/crypto
/evp/evp.h

meliputi file header (untuk deklarasi

Makefile

e_rabbit.c. Selain

3). Pembuatan definisi-definisi untuk file

proses

object algoritma Rabbit yang diperlukan

kompilasi). Pada proses implementasi ini,

untuk

struktur/modul

tersebut. Beberapa definisi ditambahkan

tersebut

masing-masing

adalah sebagai berikut :

openssl/crypto

/rabbit/rabbit.c

/objects/obj_mac.h

openssl/crypto

openssl/crypto

4). Perubahan/modifikasi pada beberapa file

mendeklarasi tipe data yang didefinisikan

yang diperlukan untuk command line

sendiri

interface OpenSSL. Beberapa perubahan

(openssl/crypto/rabbit/rabbit_locl

berupa tambahan kode deklarasi serta

dan file yang dapat digunakan untuk

pemanggilan file object algoritma Rabbit

pengujian hasil enkripsi algoritma yang

diperlukan pada beberapa file berikut :

diimplementasikan

(openssl/crypto/

rogs.h

rabbit/rabbittest.c).

EVP

API

(antar

openssl/apps/p
openssl/apps/p

rogs.pl

2). Pengintegrasian kode-kode sumber Rabbit


dalam

openssl/crypto

openssl/crypto
/objects/obj_mac .num

openssl/crypto
/objects/objects .txt

yang sifatnya opsional, seperti file untuk

ke

openssl/crypto

Selain itu, dapat dibuat pula beberapa file

telah

algoritma

/objects/obj_dat.h

/rabbit/Makefile

.h)

pemanggilan

pada file-file berikut :

/rabbit/rabbit.h

proses

peed.c

muka

openssl/apps/s

openssl/apps/M
akefile

5). Perubahan/modifikasi
pustaka

protokol

perubahan

berupa

pada

kumpulan

SSL.

Beberapa

tambahan

kode

deklarasi serta pemanggilan algoritma


Rabbit diperlukan pada beberapa file
berikut :

openssl/ssl/s3
_lib.h

openssl/ssl/ss

l.h

openssl/ssl/ss
l_algs.c

openssl/ssl/ss

l_locl.h

openssl/ssl/ss
l_ciph.c

openssl/ssl/tl

s1.h

6). Penambahan

instruksi-instruksi

baru

berupa informasi mengenai direktori dan


juga fungsi-fungsi algoritma Rabbit yang
diperlukan

dalam

proses

kompilasi.

Penambahan instruksi tersebut dilakukan


pada file-file berikut :

openssl/Makefi
le.org

openssl/config
openssl/util/l

ibeay.num

openssl/util/m
k1mf.pl

openssl/util/m

kdef.pl

openssl/util/m
kfiles.pl

Gambar
implementasi

merupakan
algoritma

hasil

Rabbit

proses
dengan

menampilkan daftar algoritma (ciphersuites)


yang dapat digunakan untuk komunikasi
menggunakan SSL (menggunakan perintah
ciphers v pada OpenSSL).

OpenSSL> ciphers -v
DHE-RSA-AES256-SHA
DHE-DSS-AES256-SHA
AES256-SHA
DHE-RSA-CAMELLIA256-SHA
DHE-DSS-CAMELLIA256-SHA
CAMELLIA256-SHA
EDH-RSA-DES-CBC3-SHA
EDH-DSS-DES-CBC3-SHA
DES-CBC3-SHA
DES-CBC3-MD5
DHE-RSA-AES128-SHA
DHE-DSS-AES128-SHA
AES128-SHA
DHE-RSA-CAMELLIA128-SHA
DHE-DSS-CAMELLIA128-SHA
CAMELLIA128-SHA
DHE-RSA-RABBIT-SHA
DHE-DSS-RABBIT-SHA
RABBIT-SHA
IDEA-CBC-SHA
IDEA-CBC-MD5
EXP-EDH-RSA-DES-CBC-SHA
EXP-EDH-DSS-DES-CBC-SHA
EXP-DES-CBC-SHA
EXP-RC2-CBC-MD5
EXP-RC2-CBC-MD5
EXP-RC4-MD5
EXP-RC4-MD5

SSLv3
SSLv3
SSLv3
SSLv3
SSLv3
SSLv3
SSLv3
SSLv3
SSLv3
SSLv2
SSLv3
SSLv3
SSLv3
SSLv3
SSLv3
SSLv3
SSLv3
SSLv3
SSLv3
SSLv3
SSLv2
SSLv3
SSLv3
SSLv3
SSLv3
SSLv2
SSLv3
SSLv2

Kx=DH
Kx=DH
Kx=RSA
Kx=DH
Kx=DH
Kx=RSA
Kx=DH
Kx=DH
Kx=RSA
Kx=RSA
Kx=DH
Kx=DH
Kx=RSA
Kx=DH
Kx=DH
Kx=RSA
Kx=DH
Kx=DH
Kx=RSA
Kx=RSA
Kx=RSA
Kx=DH(512)
Kx=DH(512)
Kx=RSA(512)
Kx=RSA(512)
Kx=RSA(512)
Kx=RSA(512)
Kx=RSA(512)

Au=RSA
Au=DSS
Au=RSA
Au=RSA
Au=DSS
Au=RSA
Au=RSA
Au=DSS
Au=RSA
Au=RSA
Au=RSA
Au=DSS
Au=RSA
Au=RSA
Au=DSS
Au=RSA
Au=RSA
Au=DSS
Au=RSA
Au=RSA
Au=RSA
Au=RSA
Au=DSS
Au=RSA
Au=RSA
Au=RSA
Au=RSA
Au=RSA

Enc=AES(256)
Enc=AES(256)
Enc=AES(256)
Enc=Camellia(256)
Enc=Camellia(256)
Enc=Camellia(256)
Enc=3DES(168)
Enc=3DES(168)
Enc=3DES(168)
Enc=3DES(168)
Enc=AES(128)
Enc=AES(128)
Enc=AES(128)
Enc=Camellia(128)
Enc=Camellia(128)
Enc=Camellia(128)
Enc=Rabbit(128)
Enc=Rabbit(128)
Enc=Rabbit(128)
Enc=IDEA(128)
Enc=IDEA(128)
Enc=DES(40)
Enc=DES(40)
Enc=DES(40)
Enc=RC2(40)
Enc=RC2(40)
Enc=RC4(40)
Enc=RC4(40)

Mac=SHA1
Mac=SHA1
Mac=SHA1
Mac=SHA1
Mac=SHA1
Mac=SHA1
Mac=SHA1
Mac=SHA1
Mac=SHA1
Mac=MD5
Mac=SHA1
Mac=SHA1
Mac=SHA1
Mac=SHA1
Mac=SHA1
Mac=SHA1
Mac=SHA1
Mac=SHA1
Mac=SHA1
Mac=SHA1
Mac=MD5
Mac=SHA1
Mac=SHA1
Mac=SHA1
Mac=MD5
Mac=MD5
Mac=MD5
Mac=MD5

Gambar 2. Daftar algoritma yang dapat digunakan pada OpenSSL2.

4. Simulasi Hasil Implementasi

OpenSSL (lihat Gambar 2). Akan tetapi,

Bagian ini menjelaskan mengenai proses


simulasi

dari

implementasi

telah

urutan teratas (secara default, SSL akan

dilakukan. Simulasi ini menggunakan dua

memilih ciphersuites pada urutan paling atas),

buah tools yang disediakan oleh OpenSSL,

maka opsi penggunaan algoritma Rabbit perlu

yaitu s_server dan s_client (masing-

dispesifikasikan.

masing bertindak sebagai SSL server dan SSL

dispesifikasikan pada kedua program atau

client). Kedua tools tersebut dapat digunakan

salah

untuk

proses

dispesifikasikan pada SSL server, maka SSL

implementasi yang telah dilakukan dapat

server hanya akan mengizinkan ciphersuites

berjalan dengan baik atau tidak. Pada simulasi

Rabbit

ini program SSL server dan SSL client

mendukung

tersebut dijalankan pada komputer yang sama

ciphersuites Rabbit). Sedangkan apabila opsi

(localhost).

tersebut dispesifikasikan pada SSL client,

mengetahui

apakah

yang

karena ciphersuites Rabbit tidak menempati

hasil

Opsi

satunya.

pada

ini

Apabila

seluruh

opsi

koneksinya

ciphersuites

lainnya

dapat
ini

(tidak
selain

Program SSL server diatur sehingga me-

maka ciphersuite yang diajukan oleh client

load seluruh ciphersuites yang didukung oleh

hanya ciphersuites yang mendukung algoritma

Rabbit

(SSL

server

tetap

mengizinkan

penggunaan ciphersuites lainnya).

Pada

simulasi

ini

penulis

menspesifikasikan opsi tersebut pada SSL


client (dengan menambahkan opsi cipher
RABBIT). Berdasarkan opsi tersebut, maka
ciphersuites

yang

dinegosiasikan

hanya

ciphersuites yang menggunakan algoritma


Rabbit.

Kemudian,

berdasarkan

urutan

ciphersuites yang diajukan oleh SSL client


tersebut, maka ciphersuite yang digunakan
pada koneksi adalah DHE-RSA-RABBITSHA (ciphersuite

ini

menempati

urutan

pertama berdasarkan yang diajukan oleh SSL


client dan juga dukungan dari SSL server,
sehingga ciphersuite inilah yang dipilih).
Untuk lebih jelasnya, proses koneksi pada SSL
client dapat dilihat pada Gambar 3.2
OpenSSL>s_client -connect localhost:443 -cert endhy-cert.crt -key endhy-key.pem
-CAfile cacert.crt cipher RABBIT
hanya menampilkan ciphersuites
Enter pass2 phraseDaftar
for tersebut
endhy-key.pem:
Loading 'screen'
intootentikasi
randomdua
state
- done
dengan mode
belah pihak
(authentication of
CONNECTED(0000074C)
both parties) dan otentikasi server saja (authenticated
server only/authenticated server with unauthenticated
depth=1 /C=ID/ST=Jawa
Barat/L=Bogor/O=Sekolah
Tinggi Sandi Negara/OU=ACRG/
client), sedangkan
mode tanpa otentikasi (total anonimity/
CN=CA ACRG
(Demotidak
only)
anonymous)
ditampilkan.
verify return:1
depth=0 /C=ID/ST=Jawa Barat/L=Bogor/O=Sekolah Tinggi Sandi
Negara/OU=ACRG/
8
CN=localhost/emailAddress=admin@localhost
verify return:1
---

Certificate chain
0 s:/C=ID/ST=Jawa Barat/L=Bogor/O=Sekolah Tinggi Sandi Negara/OU=ACRG/CN=localhost/
emailAddress=admin@localhost
i:/C=ID/ST=Jawa Barat/L=Bogor/O=Sekolah Tinggi Sandi Negara/OU=ACRG/CN=CA ACRG (Demo only)
1 s:/C=ID/ST=Jawa Barat/L=Bogor/O=Sekolah Tinggi Sandi Negara/OU=ACRG/CN=CA ACRG (Demo only)
i:/C=ID/ST=Jawa Barat/L=Bogor/O=Sekolah Tinggi Sandi Negara/OU=ACRG/CN=CA ACRG (Demo only)
--Server certificate
-----BEGIN CERTIFICATE----MIIDozCCAougAwIBAgIBDDANBgkqhkiG9w0BAQUFADCBhTELMAkGA1UEBhMCSUQx
EzARBgNVBAgTCkphd2EgQmFyYXQxDjAMBgNVBAcTBUJvZ29yMSQwIgYDVQQKExtT
ZWtvbGFoIFRpbmdnaSBTYW5kaSBOZWdhcmExDTALBgNVBAsTBEFDUkcxHDAaBgNV
BAMTE0NBIEFDUkcgKERlbW8gb25seSkwHhcNMDcwNjIzMTUxNDQwWhcNMDgwNjIy
MTUxNDQwWjCBmzELMAkGA1UEBhMCSUQxEzARBgNVBAgTCkphd2EgQmFyYXQxDjAM
BgNVBAcTBUJvZ29yMSQwIgYDVQQKExtTZWtvbGFoIFRpbmdnaSBTYW5kaSBOZWdh
cmExDTALBgNVBAsTBEFDUkcxEjAQBgNVBAMTCWxvY2FsaG9zdDEeMBwGCSqGSIb3
DQEJARYPYWRtaW5AbG9jYWxob3N0MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB
gQC4nLBcIMXJFzUSKH0PlvW4bfKLdOAjYJIf+SS/sjm7FCBSadadY2R62jutHVGJ
+cWZgii4sN1mIpNkmms+ONysYoEF2f9xJNNOWJqpBVQmoCxrXYrH58LM8v4GW02m
mXgEe6yZf0S3/p3cmpCpKZzCo5pj1D+IUXk01a4LkvPllQIDAQABo4GJMIGGMAkG
A1UdEwQCMAAwCwYDVR0PBAQDAgXgMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdl
bmVyYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUmYZxfJxqLvJ9ZPQP1/i4M2ql
eR8wHwYDVR0jBBgwFoAU6zTo/hU352zbmrt52jNdxat8yhUwDQYJKoZIhvcNAQEF
BQADggEBAFPEKPmOJhWaypT2X6wFLhiAW8u+vnfCislKuvBPWwRYYwNxkmNKMTnw
EgDabks8WUQomh4TdjaPZ33MmR7jhocusCLaKJviyra5tl8VEyUjymNTXBVtoqgE
THLAqhwWNb0P1tVfYgrU0jtd1KrzAKAQzcpIRUfxmjClCdOatyGt0t3193nWUriA
RUWgED+j35wSRtD1KMAhKSMM7XZ2ua23akmWkxYRiK5uZ0KtMAixKdxLHlHOZo0D
I51NjvXW+ehDA5Ps1FV2/gX0Mhbg1OaEm8bJ1edMRnRZkBpK1OJeuQm6g5AljxEG
ytylMqUCgL9LzfmoxXfNQjS2z5mPJxg=
-----END CERTIFICATE----subject=/C=ID/ST=Jawa Barat/L=Bogor/O=Sekolah Tinggi Sandi Negara/OU=ACRG/CN=localhost/
emailAddress=admin@localhost
issuer=/C=ID/ST=Jawa Barat/L=Bogor/O=Sekolah Tinggi Sandi Negara/OU=ACRG/CN=CA ACRG
(Demo only)
--No client certificate CA names sent
--SSL handshake has read 2528 bytes and written 273 bytes
--New, TLSv1/SSLv3, Cipher is DHE-RSA-RABBIT-SHA
Server public key is 1024 bit
Compression: NONE
Expansion: NONE
SSL-Session:
Protocol : TLSv1
Cipher
: DHE-RSA-RABBIT-SHA
Session-ID: 73E620D30146FA3F33BD1244240E6CFABF11AF3661CEA261678A062EDA218927
Session-ID-ctx:
Master-Key: 29B81D2DC8744E1A65952255303EAEF2D653A5EC0C4233B1B3E7E2515401A4F5
3BB115D43FDFBF0179787E96820C7334
Key-Arg
: None
Start Time: 1185378618
Timeout
: 300 (sec)
Verify return code: 0 (ok)
--Protokol SSL berfungsi menyediakan jalur yang aman serta
mengotentikasi kedua belah pihak/entitas yang berkomunikasi
untuk mencegah modifikasi atau akses yang tidak sah terhadap
data yang ditransmisikan.
Q
DONE

Gambar 3. Simulasi program client yang melakukan koneksi menggunakan algoritma Rabbit sebagai bulk encryption
algorithm

fungsi algoritma Rabbit yang diperlukan


dalam proses kompilasi.

5. Kesimpulan

6. Pengembangan Lebih Lanjut

Proses implementasi algoritma simetrik

Dari hasil proses implementasi ini, dapat

baru (stream cipher Rabbit) dapat dilakukan

dikembangkan suatu pemanfaatan protokol

melalui beberapa bagian tahapan. Langkah


awal

yang

perlu

mendefinisikan
memuat

dilakukan

ciphersuites

algoritma

simetrik

SSL dengan algoritma yang dikostumasi untuk

adalah

baru

yang

yang

akan

keperluan/ kepentingan tertentu, misalnya


untuk

selanjutnya,

untuk jenis algoritma lainnya, antara lain pada


public key serta hash function, sehingga tidak

file kode sumber OpenSSL yang secara

menutup kemungkinan dibuatnya ciphersuites

umum meliputi : 1) pembuatan struktur/modul

baru yang sepenuhnya proprietary untuk

utama algoritma yang diimplementasikan,

kepentingan yang lebih konfidensial.

yakni meliputi file header (untuk deklarasi


fungsi dan struktur kunci), file utama yang

Referensi

menyimpan seluruh fungsi pada algoritma

[1] Rescorla, E. 2001. SSL and TLS: Building and


Design Secure Systems. New Jersey: Addison
Wesley.

(fungsi key setup, enkripsi, dll) dan Makefile;


2) pengintegrasian kode-kode sumber Rabbit

[2] RFC 2246. The TLS Protocol Version 1.0,


http://www.ietf.org/rfc/rfc2246.txt.

ke dalam antar muka pemrograman OpenSSL

[3] RFC 3268, Advanced Encryption Standard (AES)


Ciphersuites for Transport Layer Security (TLS),
http://www.ietf.org/rfc/rfc3268.txt.

(EVP API); 3) pembuatan definisi-definisi


untuk file object algoritma Rabbit yang
untuk

proses

dengan

itu, dapat dikembangkan pula implementasi

dilakukan

modifikasi dan penambahan pada beberapa

diperlukan

pemerintahan

algoritma proprietary yang telah teruji. Selain

diimplementasikan.
Langkah

kepentingan

[4] RFC 4132, Addition of Camellia Ciphersuites to


Transport Layer Security (TLS),
http://www.ietf.org/rfc/rfc4132.txt.

pemanggilan

algoritma tersebut; 4) perubahan/ modifikasi


pada beberapa file yang diperlukan untuk

[5] Viega, J., Meisser, M. & Chandra, P. 2002.


Network Security with OpenSSL. California:
OReilly & Associates, Inc.

command line interface OpenSSL berupa

[6] www.openssl.org.

tambahan kode deklarasi serta pemanggilan


file

object

algoritma

Rabbit;

5)

perubahan/modifikasi pada kumpulan pustaka


protokol SSL berupa tambahan kode deklarasi
serta pemanggilan algoritma Rabbit; dan 6)
penambahan instruksi-instruksi baru berupa
informasi mengenai direktori dan juga fungsi10

You might also like