Pembimbing 1: Yudhi Purwananto, S.Kom, M.Kom
Pembimbing 2: Baskoro Adi Pratomo, S.Kom
PENGGUNAAN DIGITAL SIGNATURE PADA SMS MENGGUNAKAN ELLIPTIC CURVE DIGITAL SIGNATURE ALGORITHM Oleh: Yohanes Khosiawan (5107100105)
Keamanan SMS? SMS yang diUBAH ISI pesannya
Fake SMS IDENTITAS pengirim SMS yang diPALSUkan
Solusinya..?
Digital Signature • Digital Signature merupakan tanda tangan untuk konten digital. • Digital Signature biasanya direpresentasikan dalam rangkaian bytes. • Digital Signature menjamin integritas data dan identitas pengirim SMS. • Digital Signature melibatkan secret key dalam pembuatannya. • Menggunakan symetric-key atau assymetric-key cryptosystem.
ASSYMETRIC KEY CRYPTOSYSTEM
ASSYMETRIC KEY CRYPTOSYSTEM (2)
ECDSA • Elliptic Curve Digital Signature Algorithm merupakan suatu varian algoritma digital signature yang menggunakan kriptografi kurva eliptik. • ECDSA tergolong assymetric-key cryptosystem (menggunakan sepasang key, yakni private dan public key masingmasing untuk membuat dan memverifikasi digital signature).
Mengapa ECDSA? Penggunaan algoritma ECDSA ini dilatarbelakangi oleh sedikitnya ruang yang dibutuhkan untuk menyimpan (menambahkan) signature pada pesan yang akan dikirim. Karena SMS hanya dapat menampung 160 karakter 7-bit (= 1120 bytes), maka pendeknya signature (sekitar 40 bytes) memberikan keunggulan yang signifikan bagi ECDSA.
Tahapan Implementasi ECDSA
Key Generation 1. Pilih sebuah bilangan bulat random dA di antara [1,n-1]. 2. Hitung QA = dA • G = (x1,y1). 3. Private key = dA, dan public key = QA.
Signature generation 1. Hitung e = HASH (m); HASH merupakan fungsi hash kriptografi (e.g. SHA-1). 2. z = Ln bit paling kiri dari e. 3. Pilih bilangan bulat random k di antara [1,n1]. 4. Hitung r = x1(mod n), di mana (x1,y1) = k • G. Jika r = 0, kembali ke langkah 2. 5. Hitung s = k − 1(z + rdA)(mod n). Jika s = 0, kembali ke langkah 2. 6. Signature merupakan gabungan dari (r,s).
Signature Verification 1. Memverifikasi bahwa r dan s adalah bilangan bulat yang antara [1,n-1]. 2. Menghitung e = HASH (m). HASH merupakan fungsi yang digunakan saat signature generation. 3. z = Ln bit paling kiri dari e. 4. Menghitung w = s-1 mod n. 5. Menghitung u1 = zw mod n dan u2 = rw mod n. 6. Menghitung u1 • G + u2 • QA = (x1,y1). 7. Menghitung v = x1 mod n. 8. Menerima signature jika dan hanya jika v = r.
Signature Encoding Rangkaian byte digital signature yang telah dibuat (pada signature generation) didistribusikan dengan menggunakan representasi heksadesimal. Rangkaian byte = {…, 127, -64, …} Dalam bit: 11111111 Dalam hex: FF
Dalam bit: 11000000 Dalam hex: C0
Mengapa diubah ke HEKSAdesimal?
Tipe data byte pada Java memiliki kapasitas penyimpanan 8 bit, dan byte pada Java merupakan signed byte. Jika didistribusikan dalam bentuk karakter secara langsung menggunakan char, tentunya akan mengakibatkan karakter -127 hingga -1 tidak ter-cover. Karena set karakter GSM 03.38 pada HP hanya meng-cover karakter dengan kode desimal 0-127
MeNGAPA HEKSADESIMAL? Awalnya dicoba byte ini diubah menjadi representasi byte dengan range 0-127. Setelah berhasil dilakukan pengubahan, ternyata didapatkan kendala dengan escape chararacter (kode desimal: 27). Mari kita lihat tabel character set GSM 03.38 pada slide selanjutnya.
[PART] Tabel Character Set GSM 03.38
MENGAPA Heksadesimal (2) Setiap ditemui escape character, akan dibaca karakter berikutnya untuk membentuk suatu karakter baru (antara karakter form feed hingga euro sign). Padahal, rangkaian byte signature tidak beraturan, bisa saja byte 27 diikuti dengan byte 0, yang tentunya tidak terdapat pada karakter set, sehingga mengakibatkan pesan tidak sampai secara utuh saat dibaca sebagai String.
Ilustrasi Invalid Character [27][0] karakter apa ya..?
Mengapa Heksadesimal (3) Maka dari itu, digunakan heksadesimal yang mampu mengubah rangkaian byte 8 bit dengan sempurna. Hasil konversi: 1 byte = 2 karakter heksadesimal. Dalam bit: xxxx yyyy Dalam Hex:
X
Y
It’s Me Messaging • Nama aplikasi yang dibuat bernama It’s Me Messaging. • It’s Me Messaging merupakan aplikasi berbasis platform/OS Android 2.2 (Froyo). • Ukuran installer It’s Me Messaging adalah 1 MB.
Tampilan It’s Me Messaging
TAMPILAN It’s Me Messaging (2)
FITUR-FITUR It’s Me Messaging • It’s Me Messaging dapat mengirim NormalSMS (SMS biasa tanpa signature) dan Signed-SMS (SMS yang disertai signature). • Fitur Signed-SMS It’s Me Messaging hanya dapat bekerja (dikirim dan diverifikasi secara sukses) jika kedua belah pihak, pengirim dan penerima sama-sama menggunakan aplikasi It’s Me Messaging • Terdapat Tab Inbox dan Sent dengan fitur Read dan Delete SMS.
Topologi Sistem It’s Me Messaging
Workflow APLIKASI It’s Me Messaging
HASIL • Dengan Aplikasi It’s Me Messaging, pengguna dapat saling berkirim SMS dengan aman tanpa ragu. • Identitas pengirim yang tertera pada SMS dan isi pesan terjamin integritasnya.
DEMO APLIKASI LIVE DEMO