Anda di halaman 1dari 7

Network Security Prodi Telekomunikasi PENS

MODUL 10
KRIPTOGRAFI DENGAN OPENSSL
SYMMETRIC ENCRYPTION
1.1. TUJUAN PEMBELAJARAN:
1. Mahasiswa memahami teknik symmetric cryptography
2. Mahasiswa memahami algoritma digest
3. Mahasiswa memahami cara penanganan terhadap algoritma tersebut.

1.2. DASAR TEORI


Dalam hal ini, tool yang digunakan adalah open source library OpenSSL
(http://www.openssl.org/), dimana library ini dapat dijalankan di berbagai O/S termasuk
Linux dan Windows.
Semua percobaan menggunakan dasar perintah OpenSSL. Library ini mendukung
berbagai macam fungsi kriptografi yang dapat dijalankan pada terminal console dengan
perintah umum:
openssl command [command_opts][command_args]

Dalam praktikum kali ini, kita akan menggunakan perintah OpenSSL seperti berikut:
enc dgst rand speed

openssl enc
Perintah OpenSSL enc berguna untuk meng-encrypt dan meng-decrypt blok data dengan
beberapa rutin cipher yang simetris. Untuk melihat secara detil perintah enc, lakukan
perintah berikut ini:
Openssl enc –h

atau: man enc.


Berikut adalah deskripsi singkat dari perintah yang digunakan:
openssl enc [-encryption_algorithm][-e][-d][-K key][-
iv vector][-in file_input][-out file_output][-nopad]

dimana:
 -encryption_algorithm, menunjukkan algoritma symmetric cryptography yang
digunakan untuk encrypt dan/atau decrypt (misalnya: -aes128, -aes-cbc-256, -rc4,
dimana detilnya dapat didapatkan dari perintah openssl enc –h);
 -e menunjukkan bahwa pengoperasian adalah encryption.
 -d menunjukkan bahwa pengoperasian adalah decryption.
 -K key menunjukkan key yang digunakan dalam operasi symmetric cryptography.
 -iv vector menunjukkan inisialisasi vector yang digunakan.
 -in file_input menunjukkan file yang berisi data yang di-encrypt atau di-decrypt.
 -out file_output menunjukkan file hasil operasi encryption atau decryption.

zenhadi@eepis-its.edu
Network Security Prodi Telekomunikasi PENS

 -nopad menunjukkan bahwa padding tidak harus digunakan (Catatan bahwa jika
option ini digunakan dalam symmetric block algorithm, maka panjang dari data yang
di-encrypt seharusnya kelipatan dari panjang blok algoritma.
 -p digunakan untuk menghasilkan standar output key dan menginisialisasi vector.
 -nosalt , salt terdiri bit acak yang digunakan sebagai salah satu masukan untuk kunci fungsi
turunan.

openssl speed
perintah openssl speed dapat digunakan untuk mengukur kinerja dari berbagai algoritma
yang diimpelementasikan oleh OpenSSL. Untuk mengukur kinerja dari algoritma
tertentu, digunakan perintah berikut:
openssl speed algorithm_name

openssl rand
perintah ini digunakan untuk menciptakan sebuah pseudo-random string dengan satuan
nbyte dan disimpan dalam file file_name.
openssl rand –out file_name nbyte

perintah lainnya
Dalam percobaan, pertukaran data antar komputer adalah sangat penting dan sering kali
terjadi. Untuk tujuan ini, maka perlu adanya skenario, dimana satu entitas bertindak
sebagai client dan lainnya sebagai server. Dalam hal ini scp utility sebagai client dan ssh
server sebagai server.

1.3 TUGAS PENDAHULUAN


1. Berikan beberapa contoh penggunaan symmetric cryptography ?
2. Berikan contoh serangan pada symmetric cryptography ?

1.4 PERCOBAAN
1. Bangunlah jaringan seperti berikut :

Gambar 1 Jaringan Percobaan


NB:
Gunakan dhclient di masing-masing PC untuk mendapatkan IP dari router.
192.168.50.x & y : IP dari router
Pilih 192.168.50.x sebagai PC Server
Pilih 192.168.50.y sebagai PC Client

zenhadi@eepis-its.edu
Network Security Prodi Telekomunikasi PENS

A. Percobaan symmetric cryptography


A.1 Symmetric encryption
1. Pada percobaan ini, kita akan menggunakan OpenSSL yaitu enc untuk meng-encrypt
blok data. Dari file teks ptext yang berisi pesan yang akan di-encrypt, misalnya “pesan
rahasia”. Setelah tercipta file ptext, cek bahwa ukurannya tepat 13 byte (ukuran
tergantung dari isi pesan).
Data yang berada dalam file ptext dapat di-encrypt menggunakan algoritma AES dengan
perintah sebagai berikut, dimana IV (initial value) diciptakan oleh OpenSSL dari
password yang dientri. Teks yang ter-encrypt akan disimpan dalam file ctext.

openssl enc –e –in ptextA –out ctext –aes-128-cbc –nosalt –p

NB:
Jika belum terinstall maka lakukan perintah berikut
# apt-get install openssl

selanjutnya akan ditanyakan password. Catatan bahwa password ini hanya digunakan
oleh OpenSSL enc untuk menciptakan sebuah key dan IV. Anda akan mendapatkan
tampilan kira-kira seperti berikut:

enter aes-128-cbc encryption password:


Verifying – enter aes-128-cbc encryption password:
key=E35272828788388388090F5AB88B
iv =A1236242279808C3A8290F5AE8FE

NB:
Untuk aes-128
Key = MD5(passwd + salt)
IV = MD5(Key + Password + Salt)

2. Untuk proses dekripsi lakukan perintah berikut:

openssl enc –d –in ctext –out ptextB –aes-128-cbc –nosalt –p

NB:
ctext adalah hasil proses dari enkripsi.

Amati dan catat :


 Apakah nilai key dan iv memiliki nilai yang sama dengan proses enkripsi.
 Apakah ukuran file dari plain text dan cipher text memiliki ukuran yg sama /
berbeda

3. Silahkan ganti perintah di atas dengan menggunakan algoritma DES dan 3DES dan
aes-128-ecb, kemudian catat outputnya. Tulis perintah dengan menggunakan DES dan
3DES.

zenhadi@eepis-its.edu
Network Security Prodi Telekomunikasi PENS

NB:
Untuk mengetahui perintah cipher gunakan : openssl help

Cipher commands (see the `enc' command for more details)


aes-128-cbc aes-128-ecb aes-192-cbc aes-192-ecb aes-256-cbc
aes-256-ecb base64 bf bf-cbc bf-cfb
bf-ecb bf-ofb cast cast-cbc cast5-cbc
cast5-cfb cast5-ecb cast5-ofb des des-cbc
des-cfb des-ecb des-ede des-ede-cbc des-ede-cfb
des-ede-ofb des-ede3 des-ede3-cbc des-ede3-cfb des-ede3-ofb
des-ofb des3 desx rc2 rc2-40-cbc
rc2-64-cbc rc2-cbc rc2-cfb rc2-ecb rc2-ofb
rc4 rc4-40

PERTANYAAN:
 Apa saja yang dibutuhkan untuk menerapkan algoritma DES, 3DES dan AES ?
(petunjuk: pikirkan ukuran dari data yang akan di-encrypt apakah lebih kecil atau
lebih besar dari ukuran blok algoritma).
 Berapa panjang file ctext yang dibangkitkan ? bandingkan panjang file ctext
dengan panjang file ptext. Apakah ada perbedaan ?

4. Sebagai kesimpulan: apa yang terjadi ketika perintah berikut ini digunakan untuk
meng-encrypt pesan ini: “pesan ini adalah sangat rahasia jangan sampai bocor” ?

openssl enc –e –in ptext –out ctext_aes_128_cbc –K <key> -iv <iv>


-aes-128-cbc –nopad –p

NB:
Nilai key dan iv dalam bentuk hexadesimal, misal 123ABC

Coba jalankan perintah tersebut dengan pesan lain. Apakah Anda mendapatkan error ?
Mengapa terjadi error, cobalah ganti –nopad dengan –nosalt, apa yg dapat anda
simpulkan.

Lakukan proses dekripsi, dan tulis perintahnya serta verifikasi hasilnya.

5. Apa yang terjadi jika Anda menjalankan perintah berikut ini (stream cipher)
openssl enc –e –in ptext –out ctext_rc4 –K <key> -iv 0 –rc4 –p –base64

Bandingkan perintah diatas dengan perintah:


openssl enc –e –in ptext –out ctext_rc4 –K <key> -iv 0 –rc4 –p

NB:
Base64 adalah format pengiriman data pada protokol TCP/IP

PERTANYAAN:
 Amati dan catat ukuran file hasil enkripsi dari kedua proses diatas

zenhadi@eepis-its.edu
Network Security Prodi Telekomunikasi PENS

 Amati dan catat hasil enkripsi dari kedua proses diatas


 Tuliskan proses dekripsi pada kedua proses diatas dan verifikasi hasilnya.

A.2 Memodifikasi pesan ter-encrypt


Sekarang coba modifikasi pesan ter-encrypt. Untuk memodifikasi file binary gunakan
editor heksadesimal, hexedit:

hexedit ctext

NB:
Apabila belum terinstall, ketik perintah berikut : # apt-get install hexedit
Perintah penting di hexedit:
F1 untuk mengetahui daftar perintah
F2 untuk menyimpan hasil edit
Ctrl-X untuk keluar

Bentuk tiga grup; Ajeng, Bayu, dan Citra. Kemudian proses permasalahan berikut ini:
a. Ajeng dan Bayu memilih key.
b. Ajeng menyiapkan pesan baru yang hanya berisi digit desimal dan meng-encrypt
nya dengan menggunakan algoritma RC4 dan key di-share ke Bayu.
c. Ajeng mengirimkan pesan yang ter-encrypt ke Citra. Citra berusaha untuk
memodifikasi pesan yang ter-encrypt tersebut sebelum mengirimkannya ke Bayu.
d. Bayu harus memeriksa apakah pesan yang ter-encrypt yang diterimanya dari Citra
sudah dalam keadaan dimodifikasi atau tidak.

PERTANYAAN:
Apa yang harus dilakukan oleh Citra terhadap pesan yang dikirim Ajeng, sedemikian
rupa sehingga pesan yang telah dimodifikasinya tidak dapat diketahui oleh Bayu ?
Apa yang terjadi jika Anda menggunakan AES-128-CBC sebagai ganti dari RC4 ?
(cobalah)
Apa yang terjadi jika Anda menggunakan AES-128-ECB sebagai ganti dari RC4 ?
(cobalah)

A.3 Kinerja algoritma symmetric encryption


Pada percobaan ini, kita akan mengevaluasi baik waktu eksekusi dan panjang data dari
algoritma yang digunakan.
Buatlah file-file dengan ukuran yang berbeda-beda (misal: 100B, 10kB, 1MB, 10MB),
untuk tujuan ini gunakan perintah berikut:

openssl rand –out r.txt size_in_bytes

Kemudian isi Tabel 1 dengan hasil yang didapatkan ketika meng-encryptI file-file
tersebut dengan algoritma yang berbeda-beda dan dengan panjang yang berbeda. Untuk
mengevaluasi waktu yang dibutuhkan oleh operasi encryption, gunakan perintah time
berikut:
time the_openssl_encryption_command

zenhadi@eepis-its.edu
Network Security Prodi Telekomunikasi PENS

Misal:
time openssl aes-128-cbc –in r.out

PERTANYAAN:
Waktu mana yang terbesar ?
Apakah waktu untuk decryption juga akan berbeda dengan menggunakan algoritma yang
ada dalam Tabel 1 tersebut ? waktu mana yang terbesar ? (cobalah).
OpenSSL juga menyediakan perintah untuk mengukur waktu contoh:

openssl speed aes-128-cbc

Sekarang dengan menggunakan perintah speed dari OpenSSL, bandingkan hasilnya untuk
algoritma di Tabel 1. Mana yang paling besar waktunya ?

Tabel 1. Kinerja dari beberapa algoritma dalam symmetric encryption

100B 10kB 1MB 10MB


DES-CBC
DES-OFB
DES-EDE-
CBC
RC4
AES-128-
CBC
AES-256-
CBC
AES-256-
OFB

A.4 Proses pengiriman data symmetric encryption


1. Buat komunikasi antara PC Server dan PC client, pastikan di PC Server terdapat
aplikasi FTP (catat hasilnya).
2. Dari PC client lakukan perintah, catat hasil enkripsi.
openssl enc –e –in ptext –out ctextasli –rc4 -nosalt -p

openssl enc –e –in ptext –out ctextbase64 –rc4 –nosalt –p

3.Lakukan pengiriman data file hasil enkripsi yaitu ctextasli dan ctextbase64 ke PC
Server. Pada PC Server jalankan wireshark “tidak” pada mode promiscuous.
Proses pengiriman file dengan ftp, untuk mengirim data gunakan perintah put.

4.Amati pada wireshark, hasil pengiriman data mana yang sama dengan poin 2.

zenhadi@eepis-its.edu
Network Security Prodi Telekomunikasi PENS

1.5 LAPORAN RESMI


1. Berikan kesimpulan hasil praktikum yang anda lakukan.
2. Simpulkan perbedaan sistem kriptografi simetris berbasis block dan stream.

zenhadi@eepis-its.edu

Anda mungkin juga menyukai