|
Membongkar Enkripsi Visi Diary 3.0
Oleh: Budi Sukmawan
Program Visi Diary adalah gabungan program Diary (buku harian),
buku telepon, dan agenda (scheduler) dan dimuat dalam CHIP-CD no
6-99 sebagai sebuah program shareware. Pada majalah CHIP no 9-99 program ini telah
dikomplain oleh seorang pembaca karena menggunakan gambar-gambar
Sailor Moon dan teman-temanya yang merupakan hak cipta dari Naoko
Takeuchi. Pada CHIP no 10-99 pembuat program Visi Diary telah
mengakui kesalahnya dan sekaligus menyinggung soal enkripsi yang
digunakan pada program Visi Diary juga menyinggung soal program
enkripsi Mixer2 yang hanya menggunakan teknik xor.
Potongan tulisannya adalah seperti ini
"Pengamanan data Visi Diary jauh lebih aman dan
secure daripada Mixer2. jadi, untuk menyimpan data-data pribadi,
Visi Diary dapat dikatakan "aman" dari orang-orang yang
tidak berhak".
Kemudian saya mengunjungi Web site dari Visi
Diary melihat ada beberapa versi yang lebih baru yaitu 3.1
dan 3.2 tetapi hanya versi 3.0 yang dapat di-download dan
pembuatnya mempromosikan sebagai berikut:
"Visi Diary is a program to protect your valuable
personal diary. You'll be the only one person who can read what
you ever write in past. Data that you type will be saved in your
disk after it was encrypted. We guarantee that our encrypt
algorhythm is very safe and secure. You can trust Visi Diary to
take care of your biggest secrets in your life."
Dengan klaim-klaim pembuat Visi Diary tersebut saya jadi ingin
mengetahui seberapa kuat sebenarnya enkripsi program tersebut.
Saya mulai menyiapkan program SoftICE 4.01, software debuging
yang saya install beberapa hari yang lalu dan saya bermaksud
mempelajarinya dan sekaligus mempraktekkannya dengan menggunakan
Visi Diary sebagai bahan latihan. Kemudian saya mulai meneliti
program tersebut dan menjalankannya, untuk me-load program ini
butuh waktu beberapa detik (saya pikir komputer saya hang) karena
me-load gambar yang cukup besar. Kemudian saya mulai mencoba-coba
program tersebut mula-mula Phone book kemudian Scheduler lalu
Diary tapi kemudian program error karena tampaknya program tidak
bisa meng-handle tanggal untuk regional setting Indonesia (suatu
hal yang ironis mengigat program ini buatan orang Indonesia),
terpaksa saya men-set regional setting ke English (US) dan me-reboot
komputer. Kali ini saya dapat masuk menu Diary dan saya mulai
mencoba mengisi diary dan melihat file data yang dihasilkannya
yang ada di direktori "C:\My Document\Visi Diary\".
Saya mulai melihat keanehan disini karena tampaknya data yang
dihasilkan tidak random, karena dapat dipastikan metoda enkripsi
yang baik akan menghasilkan ciphertext yang serupa urutan
bilangan random. Setelah saya meneliti beberapa menit saya mulai
ragu akan kekuatan enkripsi program ini. Setelah beberapa menit
lagi saya mulai mengerti metoda apa yang digunakan program ini,
ternyata program ini menggunakan modifikasi/variasi metoda
enkripsi Caesar Cipher yang digunakan oleh Julius Caesar (100 B.C. - 44 B.C.)
lebih dari 2000 tahun yang lalu untuk mengirim pesan secara
rahasia pada para jenderalnya di medan perang. Kemudian saya
mengambil buku Applied Cryptography dari Bruce Schneier dan
dihalaman 11 di definisikan Caesar Cipher sebagai berikut:
"the famous Caesar Cipher,
in which each plaintext character is replaced by the character
three to the right modulo 26 ("A" is replaced by "D",
"B" is replaced by "E"..., "W" is
replaced by "Z", "X" is repalced by "A",
"Y" is replaced by "B", and "Z" is
replaced by "C") is a simple substitusion cipher. It's
actualy even simpler, because the ciphertext alphabet is a
rotation of the plaintext alphabet and not an arbitrary
permuatation".
Enkripsi Visi Diary menggunakan jumlah karakater yang lebih
banyak dan pergeseran ditambah dengan posisi karakter jadi
misalnya kata "ABC", maka A akan menjadi D (digeser 3),
B akan menjadi F (digeser 4), C akan menjadi H (digeser 5). Untuk
mendekrip program ini sangat mudah yang diperlukan hanyalah
selembar kertas dan pensil maka dengan mudah kita akan mendekrip
data Diary yang disimpan dalam file dengan nama "tanggal.vd3",
misalnya "19991114.vd3". Adapun urutan karakter yang
digunakan dalam metoda enkripsi ini adalah sebagai berikut:
'abcdefghijklmnopqrstuvwxyz'+chr(10)+'0123456789ABCDEFGHIJKLMNOPQRSTUPWXYZ
!"#$%&'()*+,-./:;?@[\]^_`\{|}'+chr(13)
Bila kita mem-password diary maka password-nya disimpan
diregistry pada key "HKEY_LOCAL_MACHINE\Software\Visi
Software Inc.\Visi Diary\User", padaValue Name: info2.
Password ini dienkrip dengan cara yang sama dengan cara
mengenkrip data, maka bila kita berhasil mendekrip password ini
kita akan dapat dengan mudah masuk ke Diary dan membaca isinya.
Namun cara yang paling mudah adalah dengan menghapus value string
info2 dan kita dapat masuk Diary tanpa password, tapi tentunya
dengan cara ini akan mencurigakan bagi yang empunya diary. Di
bagian key ini juga ada juga Value Name info1, info4, dan info5
yang berisi urutan karakter yang mencurigakan, apakah ketiga
value name ini menentukan urutan karakter di atas?, saya tidak
tahu tapi kalaupun urutan di atas berbeda tidak sulit mencari
urutan karakter yang digunakan, tinggal mencoba memasukkan satu
karakter pada Diary kemudian memperhatikan data yang dihasilkan
pada file "*.vd3". Pada komputer saya stringValue Name
info1, info4 dan info5 adalah sebagai berikut "28DI07313HJKLUQU",
"USQOMKIGECd", dan "&(*,.:<>@\SS".
Kesimpulannya: Visi Diary memang tidak mengunakan
operasi xor untuk mengenkrip data tetapi menggunakan metoda
enkripsi yang telah berusia lebih dari 2000 tahun dan terbukti
tingkat keamanannya sama sekali tidak ada, dan tampaknya pembuat
program ini sekali lagi telah melakukan kesalahan pada program
yang dibuatnya. Dan untuk kali ini saya gagal untuk menggunakan
SoftICE karena dengan selembar kertas dan pensil, metoda enkripsi
program ini sudah dapat dibongkar.
(c) 20 November 1999 - Budi Sukmawan

|