• Tidak ada hasil yang ditemukan

Mulai. Pembangkitan Pasangan Kunci RSA. Penyertaan penandaan digital pada SMS. Verifikasi penandaan digital pada SMS. Selesai

N/A
N/A
Protected

Academic year: 2021

Membagikan "Mulai. Pembangkitan Pasangan Kunci RSA. Penyertaan penandaan digital pada SMS. Verifikasi penandaan digital pada SMS. Selesai"

Copied!
5
0
0

Teks penuh

(1)

Penentuan Kebijakan

Kebijakan keamanan yang diterapkan adalah sebagai berikut:

1 User policy

Terdapat dua pengguna yaitu pengirim dan penerima. Pengirim bertindak juga sebagai penanda. Hak dari pengirim adalah:

 Membangkitkan pasangan kunci RSA.

 Memberikan penandaan pada SMS yang dikirimkan.

Penerima bertindak juga sebagai pihak yang melakukan verifikasi. Hak dari penerima adalah:

 Menerima kunci publik dari pasangan kunci pribadi pembentuk penandaan.

 Melakukan verifikasi penandaan dan memeriksa status verifikasi

2 IT policy

Pasangan kunci RSA akan disimpan di media penyimpanan pada telepon seluler. Pengirim sebagai pihak penanda akan menyimpan kedua pasangan kunci RSA, kunci publik dan kunci pribadi. Penerima sebagai pihak yang melakukan verifikasi hanya meyimpan kunci publik.

3 General policy

Kebijakan lain yang diterapkan adalah sebagai berikut:

 Pengirim tidak diijinkan untuk menyebarkan atau mempertukarkan kunci pribadi yang dimilikinya.

 Lokasi penyimpanan pasangan kunci RSA tidak boleh diubah.

 Nama file pasangan kunci RSA tidak boleh diubah.

 Jika pengirim membangkitkan kunci lagi, kunci yang lama akan dianggap tidak valid dan akan ditulis-ulang dengan kunci yang baru.

 Pengirim diasumsikan memiliki kunci yang unik untuk dirinya sendiri.

Spesifikasi

Aplikasi penandaan digital pada SMS yang dikembangkan dapat dibagi menjadi 3 bagian. Ketiga bagian itu adalah pembangkitan pasangan kunci, pembentukan penandaan pada SMS yang dikirimkan, dan verifikasi penandaan. Pembangkitan pasangan kunci dilakukan dengan algoritme RSA. Penandaan yang digunakan didapat dengan menggunakan teknik MD5-RSA. Pengiriman SMS dilakukan melalui jaringan telekomunikasi yang ada. SMS dapat dikirimkan ke semua operator dengan tarif yang sesuai dengan peraturan yang berlaku. SMS yang terdapat penandaan dapat diverifikasi oleh aplikasi penerima. Hasil verifikasi akan

menunjukkan apakah SMS tersebut valid atau tidak. Hasil dari verifikasi penandaan dapat dijadikan sebagai cara untuk menjamin autentikasi SMS dan integritas SMS.

Desain

Tahapan desain merupakan proses yang dilakukan untuk merancang pembuatan sistem. Aplikasi yang dikembangkan terdiri atas tiga bagian. Ketiga bagian itu adalah pembangkitan pasangan kunci RSA, penyertaan penandaan pada SMS, dan verifikasi penandaan pada SMS. Ketiga bagian tersebut mengikuti protokol yang ditunjukkan pada Gambar 5.

Mulai

Pembangkitan Pasangan Kunci RSA

Penyertaan penandaan digital pada SMS

Verifikasi penandaan digital pada SMS

Selesai

Gambar 5 Alur protokol.

Proses pembangkitan pasangan kunci mengikuti algoritme RSA yang telah ada. Mulanya, dibangkitkan dua bilangan prima p dan q. Hitung hasil perkaliannya dan didapat nilai n = pq. Pilih sebuah bilangan e yang didapat dari gcd (e, ϕ) = 1. Nilai ϕ didapat dari ϕ = (p – 1)(q – 1). Hitung nilai d = e-1 mod ϕ. Berikutnya, dihitung nilai Chinese Remainder Theorem (CRT). Nilai ini terdiri atas dP = d mod (p-1), dQ = d mod (q-1), dan qInv = q-1 mod p. Nilai-nilai yang sudah didapat akan menjadi parameter kunci publik dan kunci pribadi. Nilai-nilai ini kemudian ditulis dan disimpan dalam media penyimpanan. Pembangkitan pasangan kunci RSA ditunjukkan pada Gambar 6.

Desain proses pembentukan penandaan ditunjukkan pada Gambar 7. Tahap-tahap yang dilakukan pada proses pembentukan penandaan adalah sebagai berikut:

1 Masukan adalah SMS yang akan dikirim. Pada tahap ini, pembangkitan pasangan kunci RSA sudah dilakukan dan disimpan di dalam media penyimpanan telepon seluler.

(2)

Mulai Nilai p dan q n = p x q Φ = (p – 1)(q – 1) gcd(e, ϕ) = 1 d = e-1 mod ϕ dP = d mod (p-1) dQ = d mod (q-1) qInv = q-1 mod p Menulis parameter ke media penyimpanan Selesai

Gambar 6 Proses pembangkitan pasangan kunci.

2 Pada SMS dilakukan penghitungan nilai hash menggunakan fungsi MD5. Nilai hash ini dikenal juga dengan digest.

3 Digest yang didapat kemudian dienkripsi menggunakan parameter kunci pribadi yang didapat dari pembangkitan pasangan kunci RSA.

4 Hasil enkripsi digest dijadikan penandaan untuk SMS yang akan dikirim. Penandaan digital ikut disertakan dengan SMS untuk dikirim ke penerima.

Parameter kunci publik yang didapat dari pembangkitan pasangan kunci RSA akan digunakan untuk melakukan dekripsi di pihak penerima. Parameter kunci publik diasumsikan sudah dikirim dan diterima oleh pihak penerima pesan.

Desain proses verifikasi penandaan ditunjukkan pada Gambar 8. Tahap-tahap verifikasi penandaan adalah sebagai berikut: 1 Masukan pada penerima adalah SMS yang

telah terdapat penandaan dan kunci publik yang didapat dari proses pembangkitan pasangan kunci RSA. Penanda diekstraksi terlebih dahulu dari SMS. Ekstraksi ini akan memisahkan SMS dengan penandaan. 2 Penandaan didekripsi menggunakan

parameter kunci publik. Dari hasil dekripsi ini akan didapat digest dari pengirim. 3 Pada SMS yang diterima juga dilakukan

penghitungan nilai hash untuk mendapat digest SMS di sisi penerima.

4 Digest yang didapat penerima kemudian dibandingkan dengan digest yang didapat dari pengirim. Bila digest cocok, dapat

Mulai SMS Fungsi MD5 Digest Enkripsi Parameter Kunci Pribadi Penyertaan penandaan Selesai

Gambar 7 Proses pembentukan penandaan. dijamin SMS tersebut valid dan pengirim juga berhasil diverifikasi.

5 Bila digest yang dibandingkan tidak cocok, SMS tersebut tidak valid. Ada kemungkinan kalau kunci yang digunakan untuk dekripsi tidak cocok atau terjadi pengubahan pesan oleh pihak-pihak yang tidak diinginkan.

Mulai SMS Fungsi MD5 Digest SMS Parameter Kunci Publik Dekripsi Sama ? SMS Valid. Pengirim berhasil diverifikasi Ya SMS tidak valid Tidak Selesai Digest dari pengirim Ekstraksi penandaan Penandaan

(3)

Implementasi

Implementasi dilakukan sesuai dengan desain yang telah dibuat. Perangkat yang digunakan terdiri atas perangkat keras, perangkat lunak, dan perangkat uji.

Perangkat keras yang digunakan adalah sebagai berikut:

1 Processor AMD APU A6-3400 1.40 GHz. 2 RAM 8 GB (7.48 GB Usable).

3 Harddisk kapasitas 750 GB.

Perangkat lunak yang digunakan adalah sebagai berikut:

1 Sistem operasi Microsoft Windows 7 Ultimate 64 bit.

2 JDK 7 Update 1 32 bit. 3 Netbeans IDE 7.0.1.

4 Bouncy Castle lightweight cryptography API 1.46 untuk J2ME.

Perangkat uji untuk mencoba aplikasi ini adalah telepon seluler. Telepon seluler yang digunakan adalah Sony Ericsson W660i. Ponsel ini menggunakan sistem operasi proprietary milik Sony Ericsson. Perangkat uji lain adalah Nokia 300. Ponsel ini dilengkapi dengan processor berkecepatan 1 GHz dan layar sentuh. Ponsel ini menggunakan sistem operasi Nokia S40 milik Nokia. Kedua ponsel mendukung J2ME.

Pembangkitan pasangan kunci RSA dilakukan di awal dan hanya dilakukan sekali. Bila terjadi pembangkitan kunci lagi, kunci yang lama akan dianggap tidak valid. Kunci yang lama tersebut ditulis ulang dengan kunci yang baru. Kunci yang sudah dibentuk akan disimpan pada media penyimpanan telepon seluler. Pembangkitan pasangan kunci RSA ditunjukkan pada Gambar 9.

Gambar 9 Pembangkitan pasangan kunci RSA. Hasil dari pembangkitan pasangan kunci ini berupa nilai parameter modulus, pubExp, privExp, p, q, dP, dQ, dan qInv. Bouncy Castle tidak dapat langsung menyimpan kunci publik

dan kunci pribadi sehingga fungsi ini diganti dengan menyimpan nilai parameter-parameter tersebut (Yuan 2003). Nilai parameter-parameter tersebut ditunjukkan pada Lampiran 1. Source code untuk pembangkitan pasangan kunci RSA ditunjukkan pada Gambar 10. BigInteger exp = new BigInteger("11", 16);

SecureRandom srand = new SecureRandom(); RSAKeyGenerationParameters params = new RSAKeyGenerationParameters(exp, srand, 1024, 80);

RSAKeyPairGenerator rsaKeyPairGen = new RSAKeyPairGenerator(); rsaKeyPairGen.init(params); AsymmetricCipherKeyPair keyPair = rsaKeyPairGen.generateKeyPair(); RSAPrivateCrtKeyParameters rsaPrivateKey = (RSAPrivateCrtKeyParameters) keyPair.getPrivate();

Gambar 10 Source code pembangkitan pasangan kunci RSA.

Parameter yang sudah disimpan dapat digunakan untuk pembangkitan penandaan dan verifikasi. Pada penandaan digital, enkripsi digest dilakukan oleh kunci pribadi. Kunci pribadi dibentuk oleh semua parameter yang disimpan (modulus, pubExp, privExp, p, q, dP, dQ, dan qInv). Aplikasi pengiriman SMS ditunjukkan pada Gambar 11.

Gambar 11 Aplikasi pengiriman SMS. Destination merupakan nomor tujuan pengiriman. Port merupakan nomor port spesifik yang digunakan untuk penerimaan SMS. Nomor port ini perlu dituliskan karena port default untuk menerima SMS ditutup dari pabrikan telepon seluler. Port default ini hanya bisa diakses oleh aplikasi SMS bawaan dari telepon seluler. Message merupakan bagian tempat menuliskan pesan yang akan dikirim. Proses pembentukan penandaan dilakukan setelah perintah pengiriman pesan (send) diberikan ke telepon seluler. Penandaan yang didapat masih dalam bentuk byte string. Bentuk ini dipenuhi dengan karakter yang tidak dikenali

(4)

telepon seluler. Penandaan akan di-encode dengan base64 untuk mendapatkan bentuk teksnya. Proses ini juga akan memperpendek penandaan. Pesan dikirim setelah penyertaan penandaan selesai dilakukan.

Source code pembentukan penandaan ditunjukkan pada Gambar 12. Source code untuk pengiriman pesan ditunjukkan pada Gambar 13.

private static byte[] getSignature(byte[] plain,

RSAPrivateCrtKeyParameters privateKey){ byte[] signatureByte = null;

try {

MD5Digest md5Engine = new MD5Digest(); RSAEngine rsaEngine = new RSAEngine(); PSSSigner signer = new

PSSSigner(rsaEngine, md5Engine, 64); signer.init(true, privateKey); signer.update(plain, 0, plain.length); signatureByte = signer.generateSignature(); }catch (org.bouncycastle.crypto.CryptoException ex){System.out.println("CryptoException error: "+ex);

} catch (DataLengthException ex)

{System.out.println("DataLengthException error: "+ex);

}

return signatureByte; }

Gambar 12 Source code pembentukan penandaan.

Thread thread = new Thread(new Runnable() {

public void run() {

MessageConnection msgConnection; try { msgConnection = (MessageConnection)Connector.open("sms:/ /"+destination+":" + port); TextMessage textMessage = (TextMessage)msgConnection.newMessage (MessageConnection.TEXT_MESSAGE); textMessage.setPayloadText(message+delim iter+sign); msgConnection.send(textMessage); Alert a = new Alert("Success!","Message sent successfully",

null,AlertType.INFO);

a.setTimeout(2000); display.setCurrent(a); msgConnection.close();

} catch (IOException ex)

{System.out.println("Send Message error "+ ex);

} } });

thread.start();

Gambar 13 Source code pengiriman SMS. Proses verifikasi penandaan dilakukan pada bagian penerima. Kunci publik yang digunakan untuk dekripsi dibentuk oleh parameter modulo dan pubExp. Kedua parameter ini harus berupa parameter yang sama dari bagian pengirim agar

hasil verifikasi benar (true). Aplikasi penerimaan SMS ditunjukkan pada Gambar 14.

Gambar 14 Aplikasi penerima SMS. Aplikasi ini tidak dapat menerima SMS secara otomatis karena tidak ada akses ke registry sistem. SMS baru dapat diterima jika perintah listen diberikan. Perintah listen akan menjalankan fungsi untuk mendengarkan port tertentu yang telah ditentukan. Port penerima ini harus sama dengan nomor port yang ditentukan pada pengirim. Saat SMS diterima, aplikasi ini akan memisahkan bagian pesan dengan bagian penandaan. Bagian pesan akan ditampilkan sementara bagian penandaan diverifikasi. Bagian penandaan ini sebelumnya di-decode terlebih dahulu dengan base64 untuk mendapatkan kembali bentuk byte string.

Source code untuk menerima SMS ditunjukkan pada Gambar 15. Source code untuk verifikasi penandaan ditunjukkan pada Gambar 16. public void notifyIncomingMessage(MessageConnection conn) { Message message; try { message = conn.receive(); senderAddress = message.getAddress(); formReceiver.append(senderAddress+"\n");

if (message instanceof TextMessage) { TextMessage tMessage = (TextMessage)message; String strMessage = ((TextMessage)tMessage).getPayloadText() ; split(strMessage); } else { formReceiver.append("Unknown Message received\n"); } } catch (InterruptedIOException e) {formReceiver.append("InterruptedIOExcep tion: "+e); } catch (IOException e) {formReceiver.append("IOException: "+e); }}

(5)

public boolean verifySignature(byte[] inputByte, byte[] signature,

RSAKeyParameters publicKey) {

MD5Digest md5Engine = new MD5Digest(); RSAEngine rsaEngine = new RSAEngine(); PSSSigner signer = new

PSSSigner(rsaEngine, md5Engine, 64); signer.init(false, publicKey); signer.update(inputByte, 0, inputByte.length); return signer.verifySignature(signature); }

Gambar 16 Source code verifikasi penandaan. Pengujian

Pengujian awal dilakukan dengan cara pembangkitan pasangan kunci RSA. Ponsel Sony Ericsson W660i membutuhkan waktu hingga 4 menit untuk pembangkitan kunci. Ponsel Nokia 300 membutuhkan waktu yang jauh lebih singkat, sekitar 15 detik. Perbedaan waktu tersebut kemungkinan karena ponsel Nokia memiliki kemampuan processor yang lebih baik dari ponsel Sony Ericsson. Ponsel Nokia juga memiliki teknologi yang lebih baik. Waktu yang dibutuhkan untuk pembentukan penandaan dan verifikasi berjalan cepat. Lama pengiriman SMS bergantung pada kemampuan jaringan dan tidak ada perbedaan dengan pengiriman SMS biasa.

Pengujian fungsionalitas yang dilakukan terdiri atas 6 pengujian. Pengujian ditunjukkan pada Tabel 1.

Tabel 1 Pengujian fungsionalitas

Kasus Parameter kunci pada W660i Parameter kunci pada Nokia 300 Hasil verifikasi 1 Valid Valid (Pasangan dari W660i) True 2 Valid (Pasangan dari N300) Valid True 3 Valid (Milik sendiri) Valid (Milik sendiri) False

4 Valid Invalid False

5 Invalid Valid False

6 Invalid Invalid False

Pengujian pertama dan kedua merupakan pengujian yang memberikan verifikasi benar (true). Pada pengujian ini, ponsel penerima menyimpan parameter kunci publik yang sesuai dengan parameter kunci pribadi yang membentuk penandaan. Pengujian ketiga dilakukan dengan cara kedua ponsel memiliki kuncinya masing-masing. Pengujian keempat, kelima, dan keenam melibatkan parameter kunci Invalid. Maksud dari parameter kunci Invalid adalah ada satu atau lebih parameter

yang bukan pasangan parameter yang lainnya. Pasangan parameter invalid tidak menghalangi pembentukan penandaan.

Penandaan yang dihasilkan menjadi bagian dari SMS dan menghasilkan overhead sepanjang 172 karakter. Ini berarti penandaan tersebut sudah menghabiskan lebih dari satu bagian SMS. Overhead sepanjang itu kemungkinan berasal dari bentuk penandaan yang awalnya berupa byte string. Contoh SMS beserta overhead penandaan ditunjukkan pada Lampiran 2.

Pengujian kinerja dilakukan untuk mengetahui kecepatan pembentukan penandaan dan verifikasi. Pengujian ini dilakukan dengan bantuan stopwatch. Pengujian dengan stopwatch tentu menghasilkan bias antara penekanan tombol dengan waktu aslinya. Pengujian dilakukan tiga kali dan dihitung waktu rata-ratanya. Hasil pengujian kinerja pembentukan penandaan ditunjukkan pada Tabel 2.

Tabel 2 Kinerja pembentukan penandaan Panjang SMS Sony Ericsson W660i Nokia 300 2 SMS 1.97 detik 1.37 detik 3 SMS 2.00 detik 1.40 detik 4 SMS 1.93 detik 1.30 detik

Hasil pengujian ini menunjukkan waktu pembentukan penandaan tidak dipengaruhi panjang pesan. Pengujian menunjukkan perbedaan waktu yang sangat kecil. Nokia 300 dengan teknologi yang lebih baik mampu menghasilkan penandaan dengan waktu yang lebih singkat.

Penghitungan waktu verifikasi dilakukan setelah pesan berhasil dikirim. Cara ini tentu menghasilkan bias yang diakibatkan waktu pengiriman. Bias pada pengujian ini menjadi semakin besar karena ditambah bias penggunaan stopwatch. Untuk memperkecil pengaruh kapasitas jaringan, digunakan produk yang sama dari satu operator. Hasil pengujian kinerja penerimaan SMS beserta verifikasi penandaan ditunjukkan pada Tabel 3.

Tabel 3 Kinerja penerimaan dan verifikasi Panjang SMS Sony Ericsson W660i Nokia 300 2 SMS 4.03 detik 11.37 detik 3 SMS 3.53 detik 12.23 detik 4 SMS 3.63 detik 12.67 detik

Pada ponsel Sony Ericsson W660i, penerimaan dan verifikasi tidak terlalu dipengaruhi panjang pesan. Pengujian pada ponsel Nokia 300 menghasilkan waktu yang termasuk lama. Kemungkinan lamanya waktu

Gambar

Gambar 5  Alur protokol.
Gambar 6  Proses pembangkitan pasangan  kunci.
Gambar 9  Pembangkitan pasangan kunci RSA.
Gambar 12  Source code pembentukan   penandaan.
+2

Referensi

Dokumen terkait

squamosa yang terdapat di lokasi tersebut masih layak untuk dikonsumsi, hal ini sejalan dengan penelitian terdahulu yang menyatakan bahwa semakin banyak polutan yang

Ketua : Kepala Bagian Tata Usaha pada Perwakilan Badan Pengawasan Keuangan dan Pembangunan Provinsi Jawa Barat.. Anggota :

FRINNA SHINTA 500644607 Magister Manajemen MM PENGARUH PELATIHAN, INTERAK.SI SOSIAL, DAN MOTIVASI KERJA TERHADAP KINERJA PENYULUH MELALUI KOMPETENSI Studi pada Kantor

Dari hasil pengolahan data didapatkan koefisien determinasi sebesar 0,153, yang berarti bahwa pengaruh suku bunga dan kurs terhadap harga saham di perusahaan

This study have limitations in studying this field, where the measurements to the media exposure variable using dummy variable where a value of 1 for companies that

Pada penelitian ini peneliti melakukan penelitian tentang peran keluarga dalam pemberian diet pada penderita hipertensi di Desa Mamek, Propinsi Kalimantan Barat dengan

Tidak lupa juga kepada para responden yang terlibat dalam kajian ini iaitu pihak industri perhotelan di Malaysia, para pensyarah dan pelajar semester akhir Diploma Hotel dan

Bedasarkan penelitian diatas dapat tarik se- buah proses deteksi partial discharge pada kabel yaitu men- gukur gelombang suara menggukakan sensor microphone ke- mudian