BAB 3 PERANCANGAN

advertisement
BAB 3
PERANCANGAN
3.1. Metodologi Perancangan
Ada dua bagian besar dari sistem yang perlu dirancang, yaitu sistem operasi
eCos dan aplikasi secure fax yang akan diintegrasikan dengan eCos. Hasil integrasi
ini yang akan dijalankan di atas target perangkat keras yang digunakan. Gambar 3.1
menunjukkan tahapan proses perancangan yang dilakukan
START
Penentuan Spesifikasi
Perancangan Dasar
Sistem Operasi
Perancangan Dasar
Aplikasi
Perbaikan
Sistem Operasi
Implementasi fungsi-fungsi
yang platform-independent
Perbaikan
fungsi-fungsi
platformindependent
Pengujian
Sistem
Operasi
gagal
Pengujian
Aplikasi
di host PC
sukses
Implementasi aplikasi
di atas Sistem Operasi
Pengujian
Sistem
gagal
sukse
s
Perbaikan
fungsi-fungsi
eCos-specific
sukses
END
Gambar 3.1: Diagram alir perancangan
28
gagal
3.2. Perancangan Sistem Operasi
3.2.1. Spesifikasi Target
Sistem operasi eCos mendukung berbagai macam arsitektur prosesor, karena
itu perlu ditentukan spesifikasi target hardware yang akan didukung oleh eCos yang
dibuat sesuai dengan hardware yang digunakan.
Target hardware yang digunakan adalah Single Board Computer (SBC)
berbasis arsitektur prosesor IA32. eCos menyediakan beberapa platform untuk
keluarga prosesor ini, yaitu : i386pc target, i386pc target dengan Gigabit Ethernet,
i386 PC Motherboard, i386 Arch Standard, dan i386 generic. Untuk hardware yang
digunakan, platform yang didukung eCos yang cocok untuk digunakan adalah
i386pc target.
Ada dua buah SBC yang digunakan, yaitu SBC-456/E dan PCM-5335.
Untuk melakukan booting eCos dan aplikasi, SBC-456/E akan dilengkapi dengan
floppy disk drive, dan booting dilakukan dari floppy. Sedangkan karena PCM-5335
dilengkapi dengan socket untuk CompactFlash, PCM-5335 akan dibuat untuk memboot eCos dari CompactFlash.
3.2.2. ISO Standard C
eCos memiliki kompatibilitas dengan spesifikasi ISO 9899:1990 untuk
library standard C, yang secara esensial sama dengan spesifikasi ANSI C3.1591989 (C-89).
Ada tiga aspek kompatibilitas yang didukung oleh eCos. Pertama, terdapat
library C yang mengimplementasikan fungsi yang didefinisikan oleh standard ISO,
kecuali untuk fungsi matematika. Ini disediakan oleh paket library C eCos. Kedua,
eCos menyediakan library matematika yang mengimplementasikan fungsi dari
library ISO C. Pemisahan library C dan matematika dilakukan karena kebanyakan
implementasi standard library C memiliki linkable-file yang berbeda untuk
keduanya. Ditambah lagi, library matematika memuat semua fungsi dari file header
math.h. Ketiga, adanya environment tempat aplikasi berjalan ketika menggunakan
library C. Environment ini diatur oleh prosedur start-up library C, dan ini
menyediakan sebuah titik masuk fungsi main() dan exit(), yang dibaca dengan
29
fungsi getenv().
Perancangan ini tidak menggunakan library matematika pada eCos karena
dari sisi aplikasi tidak membutuhkan library ini. Dengan demikian, didapat pula
pengurangan ukuran paket yang akan digunakan. Sehingga diharapkan ukuran
aplikasi akhir yang dihasilkan secara relatif berukuran lebih kecil.
3.2.3. Paket I/O (Device Driver)
Paket I/O didesain sebagai framework umum untuk mendukung device
driver, meliput semua kelas driver, mulai dari serial sederhana hingga network
stack. Komponen paket I/O semisal device driver dapat dikonfigurasi dalam sistem
sama halnya dengan komponen lainnya.
Aplikasi yang akan diintegrasikan pada sistem operasi berbasis pada
komunikasi antara SBC dengan modem melalui serial port (walaupun secara fisik di
SBC interface dengan modem adalah menggunakan PC/104). Oleh karena itu, harus
disusun driver serial sedemikian rupa sehingga memenuhi syarat komunikasi serial
ini.
Untuk mengaturnya, driver (dan device yang direpresentasikannya) dapat
dianggap statis dan diakses melalui sebuah “handle”. Penamaan driver dibuat unik
agar ketika dipetakan ke sistem, tidak terjadi konflik dengan driver yang sudah ada.
Semua paket I/O API ditulis dalam bahasa C.
eCos mendefinisikan dua kelas serial driver yang berbeda sebagai standard,
yaitu “raw serial” (serial) dan “tty-like” (tty). Serial driver mampu mengirim dan
menerima blok raw data dari sebuah devais serial. Kendali atasnya disediakan untuk
mengkonfigurasi perangkat keras sebenarnya, akan tetapi tidak terdapat manipulasi
data yang dapat dilakukan oleh driver ini. Sedangkan tty driver dibangun di atas
driver serial sederhana dan secara khusus digunakan untuk devais antar muka
manusia semisal terminal. Dengan tty, terdapat beberapa tambahan fungsi format
data pada keluaran dan fungsi edit line-oriented pada masukan.
eCos juga memiliki dukungan POSIX, dan dari situ menyediakan driver
serial yang lebih lengkap bila dibandingkan dengan driver serial sederhana bawaan
eCos. Driver ini disebut “Termios compatible TTY drivers”.
Pada perancangan ini digunakan raw serial driver, yang merupakan
30
implementasi serial driver paling sederhana dan minimalis pada eCos. Karena
aplikasi hanya membutuhkan dukungan komunikasi serial yang relatif sederhana,
serial driver ini cukup untuk memenuhi kebutuhan tersebut.
3.2.4. Filesystem
Pada aplikasi secure fax yang dibuat, data fax yang diterima akan disimpan
sebagai file, karena itu diperlukan dukungan filesystem dari eCos. Untuk aplikasi
ini digunakan filesystem ramfs. Beberapa keuntungan digunakannya ramfs untuk
aplikasi secure fax adalah:
tidak perlu menggunakan device tambahan sebagai storage seperti harddisk atau
flash memory;
menjaga keamanan data fax, yaitu apabila alat secure fax mati sebelum fax
terenkripsi, data tersebut akan hilang karena RAM adalah volatile memory,
sedangkan apabila data disimpan pada non-volatile memory maka data fax akan
tetap ada dan terdapat kemungkinan untuk dicuri.
Namun demikian ada juga kerugian dari penggunaan ramfs, yaitu
dibutuhkan RAM yang cukup besar untuk menyimpan file, sedangkan harga per
byte dari RAM lebih tinggi dari harga per byte untuk device-device yang
menyimpan data secara permanen seperti harddisk. Tetapi karena platform yang
digunakan adalah embedded-PC, maka RAM yang tersedia cukup besar.
3.3. Perancangan Aplikasi
3.3.1. Spesifikasi Target Aplikasi
Perangkat secure fax dirancang untuk "diselipkan" di antara komunikasi dua
buah mesin fax. Dalam suatu proses pengiriman fax, di sisi pengirim dan sisi
penerima masing-masing terdapat mesin fax dan sebuah secure fax. Ketika fax
dikirimkan, secure fax di sisi pengirim akan menerima fax dari mesin fax. Fax yang
diterima ini kemudian dienkripsi dan hasil enkripsinya akan dikirimkan ke sisi
penerima.
Di sisi penerima, fax terenkripsi akan diterima oleh secure fax dan
31
didekripsi kembali menjadi data fax semula. Data fax inilah yang akan dikirimkan
ke mesin fax penerima. Proses ini diperlihatkan pada Gambar 3.2.
Gambar 3.2: Gambaran sistem global
Komunikasi dengan mesin fax dan secure fax lain dilakukan dengan
menggunakan modem. Secara software komunikasi dengan modem dilakukan
dengan komunikasi serial secara langsung menggunakan AT command.
Seharusnya, pengamanan data fax selama transmisi dilakukan dengan
kombinasi antara symmetric cryptography dan public-key cryptography, yaitu data
sesungguhnya dienkripsi dengan symmetric cryptography tetapi pada awal
komunikasi antara secure fax pengirim dan secure fax penerima, kunci tersebut
dikirimkan kepada penerima dalam keadaan terenkripsi menggunakan kunci publik
penerima. Namun demikian, yang akan diimplementasikan sampai pada tahap
pengerjaan tugas akhir ini hanya enkripsi data dengan menggunakan symmetric
cryptography, dengan asumsi sementara bahwa secure fax pengirim dan secure fax
penerima telah memiliki kunci yang sama.
Algoritma kriptografi yang dipilih adalah Advanced Encryption Standard
(AES). Dari sisi keamanan, belum ada bukti serangan yang benar-benar berhasil
membobol sistem yang dilindungi dengan AES. Dua serangan yang berhasil
menunjukkan kemungkinan tersebut menggunakan side channel attack, dan masih
dipertanyakan kemungkinan diterapkannya metode tersebut pada sistem yang
sesungguhnya. Selain itu, dua serangan tersebut tidak dapat dengan mudah
diterapkan pada sistem secure fax akan dibuat, di mana salah satu serangan
menargetkan server yang memberikan informasi timing, dan serangan lainnya
32
membutuhkan akses secara fisik ke sistem. Dengan panjang kunci 128 bit saja, AES
juga dapat diasumsikan aman terhadap serangan brute force attack, karena serangan
tersebut akan membutuhkan waktu triliunan tahun untuk berhasil mendapatkan
kunci AES. AES juga merupakan salah satu kriptografi yang paling populer
digunakan dan implementasinya yang open-source tersedia dan dapat digunakan.
Dalam sistem secure fax ini terdapat satu hal penting lagi yang perlu
diperhatikan, yaitu bahwa data fax yang ditransmisikan dalam sebuah transmisi fax
harus mengikuti aturan tertentu sesuai protokol pengiriman fax dan algoritma
kompresi fax. Ketika data fax yang diterima dienkripsi, data tersebut tidak lagi
sesuai dengan aturan-aturan tersebut, sehingga data tersebut tidak lagi dapat
diterima sebagai sebuah data fax dan tidak dapat dikirimkan dalam transmisi fax.
Namun demikian data tersebut dapat dikirimkan antar secure fax melalui mode data
yang didukung oleh modem, sehingga secure fax tidak hanya dapat mengirim dan
menerima fax dalam mode fax, tetapi juga harus dapat mengirim dan menerima data
fax dalam mode data.
Dengan demikian, setidaknya ada enam buah fungsi besar yang harus dapat
dilakukan oleh aplikasi secure fax, yaitu :
menerima fax dengan mode fax,
mengirim fax dengan mode fax,
menerima fax dengan mode data,
mengirim fax dengan mode data,
enkripsi data fax, dan
dekripsi data fax.
3.3.2. Rancangan Program Aplikasi
Pada bagian ini rancangan aplikasi secara garis besar akan disajikan secara
visual dalam Data Flow Diagram (DFD) untuk menunjukkan hubungan inputproses-output dari sistem.
33
3.3.2.1. Context Diagram
00
Secure Fax
Secure
Fax
Mesin Fax
Remote
Secure Fax
Gambar 3.3: Context Diagram
Sistem secure fax hanya berhubungan dengan dua buah external entity, yaitu
mesin fax dan secure fax lain yang pada Gambar 3.3 disebut remote secure fax.
Ketika secure fax berperan sebagai pengirim, aliran data terjadi dari mesin fax ke
secure fax berupa fax, dan secure fax akan menghasilkan output berupa fax
terenkripsi ke remote secure fax, seperti terlihat pada Gambar 3.4.
Mesin Fax
fax
0
Secure Fax
Remote
Encrypted Secure Fax
fax
Gambar 3.4: Aliran data ketika secure fax sebagai pengirim
Sebaliknya, ketika secure fax menjadi penerima fax, input diterima dari
remote secure fax berupa data fax terenkripsi dan menghasilkan output berupa data
fax semula yang dikirimkan ke mesin fax. Proses ini ditunjukkan pada Gambar 3.5.
Mesin Fax
fax
0
Secure Fax
Remote
Encrypted Secure Fax
fax
Gambar 3.5: Aliran data ketika secure fax sebagai penerima
34
3.3.2.2. State Transition Diagram
Untuk memudahkan dekomposisi proses keseluruhan, kerja sistem dapat
dibagi menjadi state-state seperti pada Gambar 3.6.
Gambar 3.6: State Transition Diagram
Jadi sistem secure fax memiliki tiga buah state dalam kerjanya, yaitu
menunggu panggilan untuk mengindikasikan dimulainya sesi penerimaan fax atau
penerimaan data, memproses fax yang diterima dari mesin fax, dan memproses data
yang diterima dari remote secure fax.
3.3.2.3. DFD untuk State Menunggu Panggilan
Gambar 3.7: DFD untuk state menunggu panggilan
35
Ketika secure fax tidak melakukan pengolahan data apapun, yang
dilakukannya hanya membaca semua data yang diterima dari modem. Apabila
diterima “RING<CR><LF>” dari modem, berarti terdeteksi bahwa ada panggilan
yang masuk. Apabila panggilan diterima dari mesin fax, sistem akan pindah ke state
memproses fax dari mesin fax, dan apabila panggilan diterima dari remote secure
fax, sistem akan pindah ke state memproses data dari remote secure fax.
Proses ini ditunjukkan pada Gambar 3.7. Perlu diperhatikan bahwa proses
nomor 1 (fax modem) dan proses nomor 2 (data modem) merupakan hardware,
bukan program yang akan diimplementasikan, karena merupakan bagian dari sistem
jadi dimasukkan juga ke dalam diagram. Fax modem dan data modem masingmasing merupakan modem biasa, tetapi fax modem dikonfigurasi untuk
berkomunikasi dengan mode fax sedangkan data modem dikonfigurasi untuk
berkomunikasi dengan mode data.
Karena proses state ini sudah cukup sederhana jadi tidak perlu dilanjutkan
dengan DFD pada level berikutnya.
3.3.2.4. DFD untuk State Memproses Fax dari Mesin Fax
Setelah terdeteksi adanya panggilan dari mesin fax, secure fax akan
langsung menerima fax dari mesin fax tersebut (proses 2) dengan cara
berkomunikasi melalui fax modem (proses 1). Penerimaan fax ini dilakukan dengan
mengirim AT command ke modem dan menyimpan data yang diterima, seperti
contoh sesi penerimaan fax pada Tabel 2.4.
36
Gambar 3.8: DFD untuk state memproses fax dari mesin fax
Setelah fax diterima, fax akan dienkripsi dengan menggunakan enkripsi
AES (proses 3) dan menghasilkan data fax yang sudah terenkripsi.
Terakhir, data fax yang terenkripsi akan dikirimkan dengan mode data
(proses 4) melalui data modem (proses 5) ke remote secure fax. Pengiriman fax
dalam mode data akan dijelaskan secara lebih detail pada bagian 3.3.4.
DFD untuk state ini juga sudah cukup jelas sehingga tidak perlu dilanjutkan
ke level berikutnya.
3.3.2.5. DFD untuk State Memproses Data dari Remote Secure Fax
Proses pada state ini adalah kebalikan dari proses pada state sebelumnya.
Setelah terdeteksi adanya panggilan dari remote secure fax, akan dilakukan
penerimaan data fax dengan mode data (proses 2) dengan menggunakan data
modem (proses 1), yang akan dijelaskan pada bagian 3.3.4.
Data fax terenkripsi yang diterima kemudian didekripsi (proses 3)
menggunakan dekripsi AES.
Terakhir, data fax semula yang didapat dari hasil dekripsi dikirimkan dalam
mode fax (proses 4) dengan menggunakan fax modem (proses 5) ke mesin fax.
Pengiriman fax dilakukan dengan AT command seperti pengiriman fax di Tabel 2.3.
37
Gambar 3.9: DFD untuk state memproses data dari remote secure fax
Sama seperti yang lain, DFD pada state ini juga tidak dilanjutkan ke level
berikutnya.
3.3.3. Struktur Data Fax
Untuk memudahkan pengolahan data fax, data fax akan disimpan dalam
suatu struktur data.
Karena data fax terdiri dari beberapa halaman, struktur data fax di sini
dibuat seperti linked list, di mana setiap halaman fax menjadi sebuah node, dan tiap
halaman memiliki pointer yang menunjuk ke halaman berikutnya, selain
menyimpan data untuk halaman tersebut. Gambar 3.10 menunjukkan struktur data
ini.
Gambar 3.10: Struktur data fax diimplementasikan sebagai linked list
Struktur data ini dapat diimplementasikan misalnya dengan menggunakan
struct di C. Gambar 3.11 menunjukkan model struktur data tersebut.
38
Gambar 3.11: Model struktur data fax
Pada model tersebut, FaxData adalah data utama yang merepresentasikan
suatu fax, sedangkan Page adalah data tiap halamannya. FaxData memiliki atribut
berupa pointer ke data halaman pertama dari fax (pFirstPage) dan jumlah halaman
yang dimiliki (totalPage). Page memiliki atribut berupa pointer ke suatu file yang
berisi data dari halaman tersebut (pFile), nama file (filename), besarnya data
dalam byte (dataSize), dan pointer ke halaman berikutnya (pNextPage).
File dipilih untuk digunakan sebagai tempat penyimpanan data fax,
walaupun sebetulnya dapat dibuat dengan lebih sederhana menggunakan dynamic
array. Masalah dari digunakannya dynamic array adalah karena pada awal data fax
diterima, tidak dapat diketahui secara pasti berapa ukuran data seluruhnya, sehingga
perlu dialokasikan dulu buffer yang cukup besar, baru setelah semua data diterima
dan ukuran diketahui, data dialokasikan ulang dengan ukuran yang sesuai. Dengan
file penerimaan data fax dapat dilakukan secara lebih efektif, karena ukuran file
dapat bersifat incremental, artinya ukuran file akan bertambah seiring dengan
masuknya data. Keuntungan lain adalah fleksibilitas program apabila digunakan
file. Dengan dynamic array, data pasti harus dialokasikan di RAM, sedangkan
dengan file data dapat disimpan di RAM (dengan filesystem ramfs) atau di media
penyimpanan permanen seperti memori flash, harddisk, dan sebagainya sesuai
kebutuhan.
Gambar 3.12 menunjukkan contoh gambaran data fax menggunakan model
tersebut untuk merepresentasikan fax dengan dua halaman, halaman pertama
sebesar 4 byte dan halaman kedua sebesar 5 byte.
39
Gambar 3.12: Contoh data fax dua halaman
3.3.4. Pengiriman Data Fax dengan Mode Data
Karena dalam hal ini pengiriman data fax dengan mode data pasti hanya
terjadi antara sebuah secure fax dengan secure fax juga, protokol pengirimannya
dapat didefinisikan dengan bebas. Protokol yang dirancang untuk sistem ini
ditunjukkan pada Tabel 3.1 (dicontohkan pengiriman data fax dua halaman).
Tabel 3.1: Protokol pengiriman fax dengan mode fax
Pengirim
Penerima
Dial
Answer
Kirim “OK<CR><LF>”
Kirim jumlah halaman fax
Kirim “OK<CR><LF>”
Kirim ukuran halaman pertama
Kirim “OK<CR><LF>”
Kirim data halaman pertama
Kirim “OK<CR><LF>”
Kirim ukuran halaman kedua
Kirim “OK<CR><LF>”
Kirim data halaman kedua
Kirim “OK<CR><LF>”
Disconnect
40
Pada pengiriman jumlah halaman dan ukuran halaman, nilai yang
dikirimkan harus dalam data 4 byte, dengan pengiriman dikirim mulai dari byte
paling rendah (little endian). Ukuran halaman adalah besarnya data untuk halaman
tersebut dalam byte. Ukuran yang dikirimkan adalah ukuran data fax semula
sebelum dienkripsi, tetapi pada pengiriman data halaman, data yang dikirimkan
adalah data fax terenkripsi, yang ukurannya bisa lebih besar dari data semula sesuai
enkripsi yang digunakan. Karena itu penerima harus menghitung berapa ukuran
data hasil enkripsi dengan ukuran data semula diketahui.
Seharusnya, setelah koneksi terjadi dan sebelum pengiriman jumlah
halaman, perlu ditambahkan protokol pertukaran kunci untuk memberikan kunci
AES dari pengirim ke penerima, tetapi untuk tahap pengerjaan ini hal ini belum
dimasukkan.
3.3.5. Integrasi Sistem Operasi dan Aplikasi
Tidak seperti sistem operasi Linux, eCos tidak memisahkan antara lapisan
sistem operasi dan aplikasi setelah berjalan pada sistem. Sistem operasi dan aplikasi
diintegrasikan dalam suatu file image. Setelah diintegrasikan, struktur sistem secure
fax digambarkan pada Gambar 3.13.
Gambar 3.13: Gambaran sistem secure fax
41
Download