Professional Documents
Culture Documents
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
Secure
proses
perancangan
Socket
hingga
Layer
(SSL).
Proses
OpenSSL.
fasilitas
satu
implementasi
Penulis
protokol
SSL
memodifikasi
dan
enkripsi,
baik
enkripsi
melalui
Rabbit
dapat
diimplementasikan.
algoritma
algoritma
Rabbit
kriptografi
sebagai
dengan
algoritma
2. Perancangan
akan dibentuk :
algorithm)
dimana
1). TLS_RSA_WITH_RABBIT_SHA
algoritma
Ciphersuites
yang
menggunakan
bagian
dari
ciphersuites
pada
SSL.
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
Enkripsi
Rabbit
Rabbit
Rabbit
Rabbit
Message
Digest
(hexadesimal)
SHA
0x0047
SHA
0x0048
Nomor
SHA
0x0049
SHA
0x004A
belah
pihak
(authentication
of
both
message digest.
2). TLS_DHE_RSA_WITH_RABBIT_SHA
Ciphersuites
ini
menggunakan
belah
yaitu
pihak
server
otentikasi
saja
only/authenticated
unauthenticated
dua
belah
(authenticated
server
server
with
an
tanpa
pihak
(authentication
of
3). TLS_DHE_DSS_WITH_RABBIT_SHA
both
Ciphersuites
menggunakan
message
algoritma
DSS
Standard).
ini
(Digital
Ciphersuites
Signature
yang
ditetapkan
untuk
dapat
belah
encryption.
pihak
ini
digest
(authentication
of
both
Penulis
menggunakan
(source
0x0047-0x004A
hexadesimal).
(dalam
Berdasarkan
bilangan
literatur
dan
implementasi
algoritma
Camellia
pada
Interface OpenSSL1.
Penulis memilih menggunakan OpenSSL
Handshake Protocol.
ciphersuites
algoritma
(library)
menggunakan
pustaka
Seluruh
pada
proses
codes)
implementasi
4). TLS_DH_anon_WITH_RABBIT_SHA
Ciphersuites
menggunakan
SHA
tersebut
(SHA-1)
setelah
dibuatnya
catatan
implementasi
membangun
algoritma Camellia.
dilakukan
kode-kode
di
aplikasi
yang
suatu
kedua
sumber
akan
kode-kode
sumber
OpenSSL
tersebut
OpenSSL
Penambahan
library
fungsi
termasuk
akan
di
cryptography
kriptografi
algoritma
library
disimpan,
Rabbit
yang
ciphersuites
dihasilkan
implementasi
sehingga
yang
modifikasi
(script)
baru
pada
yang
baru,
SSL
beberapa
file
diimplementasikan
dapat
Untuk
kemudahan
penjelasan,
Cryptography
Library
SSL
Library
umum.
Sebelum melakukan proses implementasi,
Script Kompilasi
(Compilation Script)
membuat
terdapat
kode
sumber
pada
seperti
file
yang
openssl/
crypto/evp/
ditampilkan
untuk
menyederhanakan
penjelasan.
1). Pembuatan
algoritma
struktur/modul
yang
utama
/evp/c_allc.c
diimplementasikan,
openssl/crypto
/evp/evp_test.c
openssl/crypto
openssl/crypto
/evp/evptests.txt
openssl/crypto
/evp/evp_err.h
(diperlukan
openssl/crypto
/evp/evp.h
Makefile
e_rabbit.c. Selain
proses
untuk
struktur/modul
tersebut
masing-masing
openssl/crypto
/rabbit/rabbit.c
/objects/obj_mac.h
openssl/crypto
openssl/crypto
sendiri
(openssl/crypto/rabbit/rabbit_locl
diimplementasikan
(openssl/crypto/
rogs.h
rabbit/rabbittest.c).
EVP
API
(antar
openssl/apps/p
openssl/apps/p
rogs.pl
openssl/crypto
openssl/crypto
/objects/obj_mac .num
openssl/crypto
/objects/objects .txt
ke
openssl/crypto
telah
algoritma
/objects/obj_dat.h
/rabbit/Makefile
.h)
pemanggilan
/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
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
dalam
proses
kompilasi.
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
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
dari
implementasi
telah
dispesifikasikan.
salah
untuk
proses
Rabbit
mendukung
(localhost).
mengetahui
apakah
yang
hasil
Opsi
satunya.
pada
ini
Apabila
seluruh
opsi
koneksinya
ciphersuites
lainnya
dapat
ini
(tidak
selain
Rabbit
(SSL
server
tetap
mengizinkan
Pada
simulasi
ini
penulis
yang
dinegosiasikan
hanya
Kemudian,
berdasarkan
urutan
ini
menempati
urutan
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
5. Kesimpulan
yang
perlu
mendefinisikan
memuat
dilakukan
ciphersuites
algoritma
simetrik
adalah
baru
yang
yang
akan
selanjutnya,
Referensi
proses
dengan
dilakukan
diperlukan
pemerintahan
diimplementasikan.
Langkah
kepentingan
pemanggilan
[6] www.openssl.org.
object
algoritma
Rabbit;
5)