Code Signing pada Perangkat Mobile dan Pengembangannya pada BlackBerry

dokumen-dokumen yang mirip
Penerapan digital signature pada social media twitter

Aplikasi Fungsi Hash MD5 untuk Pengecekan Konten Laman Website

1. Pendahuluan. Aplikasi ini digunakan untuk memberikan digital signature terhadap file executable JAR. Permasalahan yang timbul diantaranya :

Otentikasi dan Tandatangan Digital (Authentication and Digital Signature)

Kebutuhan ini muncul karena sumber tersebut digunakan secara bersama

I. PENDAHULUAN. Key Words Tanda Tangan Digital, , Steganografi, SHA1, RSA

Penggunaan Digital Signature Standard (DSS) dalam Pengamanan Informasi

Pada sistem terdistribusi, security berfungsi untuk: pengambilan informasi oleh penerima yang tidak berhak

Tanda Tangan Digital pada E-Resep untuk Mencegah Pemalsuan Resep Dokter dan sebagai Media Anti Penyangkalan Dokter

APLIKASI TEORI BILANGAN UNTUK AUTENTIKASI DOKUMEN

Implementasi ECDSA untuk Verifikasi Berkas Berukuran Besar dengan Menggunakan Merkle Tree

MODEL KEAMANAN INFORMASI BERBASIS DIGITAL SIGNATURE DENGAN ALGORITMA RSA

ANALISIS KEAMANAN PROTOKOL PADA INFRASTRUKTUR KUNCI PUBLIK

Rancangan Protokol dan Implementasi Website checker Berbasis Tanda Tangan Digital

Peningkatan Keamanan Kunci Enkripsi Menggunakan Perubahan Kunci Berkala dan Akses Ganda

STUDI KASUS PENGGUNAAN TinyCA SEBAGAI APLIKASI CERTIFICATE AUTHORIZATION (CA) YANG MUDAH DAN SEDERHANA PADA SISTEM OPERASI UBUNTU

Bab I Pendahuluan 1 BAB I PENDAHULUAN

Algoritma QR Code Digital Signature dengan Memanfaatkan Fingerprint

MODEL KEAMANAN INFORMASI BERBASIS DIGITAL SIGNATURE DENGAN ALGORITMA RSA

Sistem Autentikasi Pengunggahan File dengan Algoritma ECDSA

Pemanfaatan Metode Pembangkitan Parameter RSA untuk Modifikasi SHA-1

Apa itu tanda tangan digital?

Analisis Manajemen Kunci Pada Sistem Kriptografi Kunci Publik

Skema Boneh-Franklin Identity-Based Encryption dan Identity-Based Mediated RSA

Pembangkit Kunci Acak pada One-Time Pad Menggunakan Fungsi Hash Satu-Arah

PENERAPAN DIGITAL SIGNATURE UNTUK VALIDASI SURAT BERHARGA DIGITAL DAN NON DIGITAL

Protokol Kriptografi

BAB I PENDAHULUAN. masyarakat dalam memperoleh data dan informasi. Internet (Interconnected

Studi Terhadap Implementasi Key-Agreement Protocol pada Smart Card

Perancangan Sistem Keamanan Alternatif E-KTP Menggunakan Berbagai Algoritma Kriptografi

Studi dan Analisis Penggunaan Secure Cookies Berbasis Kriptografi Kunci Publik untuk Aplikasi ecommerce

Implementasi dan Analisis Perbandingan Algoritma MAC Berbasis Fungsi Hash Satu Arah Dengan Algoritma MAC Berbasis Cipher Block

PERANCANGAN PEMBANGKIT TANDA TANGAN DIGITAL MENGGUNAKAN DIGITAL SIGNATURE STANDARD (DSS) Sudimanto

Penerapan Digital Signature pada Dunia Internet

TUGAS DIGITAL SIGNATURE

Keamanan Sistem Komputer. Authentication, Hash Function, Digital Signatures, Quantum Cryptography

Tandatangan Digital. Yus Jayusman STMIK BANDUNG

Penerapan ECC untuk Enkripsi Pesan Berjangka Waktu

Annisa Cahyaningtyas

Teknik-teknik Kriptografi untuk Menangkal Praktek Phishing

Public Key Infrastructure (PKI)

Analisis Penggunaan Fungsi Hash pada Activation Key untuk Autentikasi Pendaftaran Akun

DIGITAL CERTIFICATE & DIGITAL SIGNATURE

Lisensi Perangkat Lunak dengan Menggunakan Tanda- Tangan Digital dengan Enkripsi

Analisis dan Implementasi Penerapan Enkripsi Algoritma Kunci Publik RSA Dalam Pengiriman Data Web-form

Tanda-Tangan Digital, Antara Ide dan Implementasi

Pembuatan Aplikasi Chat yang Aman Menggunakan Protokol OTR

Perancangan dan Implementasi Aplikasi Bluetooth Payment untuk Telepon Seluler Menggunakan Protokol Station-to-Station

SISTEM KEAMANAN DATA PADA WEB SERVICE MENGGUNAKAN XML ENCRYPTION

PENGAKSESAN DAUN SECARA RANDOM PADA HASH TREE

Public Key Infrastructure (PKI)

Tanda Tangan Digital dalam Mencegah Pengatasnamaan Pengiriman SMS dengan Autentikasi IMEI

ABSTRAK. Kata kunci :SSL, RSA, MD5, Autentikasi, Kriptografi. Universitas Kristen Maranatha

Security and Potection

I. PENDAHULUAN. Kata kunci : Android, kriptografi, Digital Signature, fotografi, DSDro, kamera, autentikasi

Pembangkitan Nilai MAC dengan Menggunakan Algoritma Blowfish, Fortuna, dan SHA-256 (MAC-BF256)

Tanda Tangan Digital Untuk Gambar Menggunakan Kriptografi Visual dan Steganografi

BAB I PENDAHULUAN 1.1 Latar Belakang

Kriptografi Elliptic Curve Dalam Digital Signature

Pemanfaatan dan Implementasi Library XMLSEC Untuk Keamanan Data Pada XML Encryption

Analisis Penggunaan Algoritma RSA untuk Enkripsi Gambar dalam Aplikasi Social Messaging

BAB I PENDAHULUAN. memungkinkan setiap orang untuk dapat berkomunikasi dan saling bertukar data.

Protokol Kriptografi Secure P2P

BAB I PENDAHULUAN. 1.1 Latar Belakang

Pengamanan Sistem Login Aplikasi Menggunakan Protokol ID Based Diffie-Hellman Key Agreement

DIGITAL SIGNATURE UNTUK VALIDASI IJAZAH SECARA ONLINE

Analisis Keamanan Penggunaan Kunci Publik dan Privat pada Digital Signature untuk Aplikasi Blackberry

Tanda Tangan Digital Dengan Menggunakan SHA-256 Dan Algoritma Knapsack Kunci-Publik

MAKALAH COMPUTER SECURITY. Digital Signature, Key Distribution Center dan Certificate Authority

MAKALAH DIGITAL SIGNATURE. Disusun Untuk Memenuhi Tugas Mata Kuliah Sekuriti Komputer. Disusun oleh : NAMA : FAUZAN BEKTI NUGOHO NIM :

BAB I PENDAHULUAN 1.1 Latar Belakang

Modifikasi Cipher Block Chaining (CBC) MAC dengan Penggunaan Vigenere Cipher, Pengubahan Mode Blok, dan Pembangkitan Kunci Berbeda untuk tiap Blok

Pemanfaatan Kriptografi Visual untuk Pengamanan Foto pada Sistem Operasi Android

PENERAPAN TANDA TANGAN ELEKTRONIK PADA SISTEM ELEKTRONIK PEMERINTAHAN GUNA MENDUKUNG E-GOVERNMENT

Pengantar E-Business dan E-Commerce

PERTEMUAN 12 Keamanan dan Administrasi Database. (Chap. 20 Conolly)

BAB III ANALISIS MASALAH

Pengembangan Fungsi Random pada Kriptografi Visual untuk Tanda Tangan Digital

ENKRIPSI DENGAN MENGGUNAKAN METODE ELGAMAL PADA PERANGKAT MOBILE

Security in Mobile Applications and Networks

Pemanfaatan Vigenere Cipher untuk Pengamanan Foto pada Sistem Operasi Android

Penerapan Algoritma Elliptic Curve Cryptography Untuk Enkripsi dan Penandatanganan Data Pada Sistem Informasi Geografis (SIG)

Pengamanan Aplikasi Web Menggunakan Protokol Secure Socket Layer

Imam Prasetyo Pendahuluan

BAB III ANALISIS MASALAH

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB I PENDAHULUAN. dengan cepat mengirim informasi kepada pihak lain. Akan tetapi, seiring

Tanda Tangan Digital untuk Pengecekan Keaslian Data pada Perpustakaan Digital

Prosiding SNaPP2012Sains, Teknologi, dan Kesehatan. Ari Muzakir

KEAMANAN E-COMMERCE MENGGUNKAN SECURE TRANSAKSI ELEKTRONIK

HASIL DAN PEMBAHASAN. 2 Perangkat keras: Prosesor AMD Athlon II 245 2,9 GHz; Memori 2046 MB; HDD 160 GB. Client:

BAB 1 PENDAHULUAN. Jaringan selular adalah sebuah komponen yang sangat penting dalam

PROTOKOL PENGIRIMAN PAKET DENGAN DIGITAL SIGNATURE

Perancangan dan Implementasi Aplikasi Bluetooth Payment untuk Telepon Seluler Menggunakan Protokol Station-to-Station

BAB 3 ANALISIS DAN PERANCANGAN PROGRAM

XML Security. Departemen Teknik Informatika Institut Teknologi Bandung Jalan Ganesha 10 Bandung 40132

Penggunaan Teori Bilangan dan Kriptografi dalam Peningkatan Keamanan Aplikasi Personal and Group Messaging

Manajemen Keamanan Informasi

PERANCANGAN DAN UJI COBA KEAMANAN PADA JALUR TRANSPORT WEB SERVICE MENGGUNAKAN METODE XML SIGNATURE DAN XML ENCRYPTION

Percobaan Pemanfaatan Graf pada Protokol Kriptografi

Transkripsi:

Signing pada Perangkat Mobile dan Pengembangannya pada BlackBerry Aris Feryanto / 13507110 1 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung, Jl. Ganesha 10 Bandung 40132, Indonesia 1 aris_feryanto@yahoo.com Abstract Seiring dengan peningkatan bandwidth dan kemudahan akses, perangkat mobile dan juga perangkat Internet lainnya menjadi lebih terbuka terhadap celah-celah keamanan Internet. Salah satunya adalah melalui aplikasi yang didistribusikan dengan menggunakan media Internet. Pengguna perangkat mobile bisa tanpa sengaja mengunduh dan menjalankan aplikasi jahat atau bervirus yang mengakibatkan banyak dampak buruk. Untuk mengatasi masalah ini, diperlukan satu mekanisme untuk menjamin keamanan dari aplikasi yang diunduh. Salah satu solusinya adalah dengan melakukan code signing pada aplikasi yang didistribusikan. signing menjamin integritas dan memverifikasi sumber aplikasi, sehingga memudahkan pemeriksaan kerusakan dan pelacakan aplikasi. Makalah ini akan membahas mengenai code signing pada perangkat mobile, bagaimana cara kerjanya, dan percobaan mengembangkan sebuah simulasi code signing pada perangkat BlackBerry. Index Terms signing, verifikasi aplikasi simulasi BlackBerry code signing I. PENDAHULUAN Sebagai seorang pengembang aplikasi yang baik, tentunya kita mengharapkan aplikasi yang kita kembangkan bisa digunakan dan disenangi oleh banyak orang. Namun, ketika kita menyediakan aplikasi untuk diunduh dari Internet, ada kemungkinan terjadi perubahan-perubahan atau modifikasi yang tidak diinginkan terhadap arsip aplikasi. Perubahan-perubahan ini bisa saja terjadi karena hal-hal sebagai berikut. 1. Gangguan jaringan komunikasi. Sebagai dasar dari protokol komunikasi dalam Internet, Transmission Control Protocol/Internet Protocol (TCP/IP), memiliki kelemahan, yaitu dapat diganggu pada saat transmisi data melalui node-node perantara. Sebuah sesi TCP/IP dapat diganggu dengan beberapa cara, yaitu eavesdropping, tampering, dan impersonation [3]. Eavesdropping adalah pencurian informasi yang sensitif, seperti nomor kartu kredit atau identitas pribadi lain. Tampering adalah pengubahan informasi yang dikirimkan ke penerima. Sedangkan impersonation adalah pemberian informasi dari atau kepada seseorang yang berpura-pura menjadi orang lain. 2. Kesengajaan pihak lain untuk memodifikasi. Perubahan pada isi aplikasi yang didistribusikan di Internet juga bisa disebabkan adanya orang yang secara sengaja mengunduh aplikasi, mengubah kodenya, dan kemudian mendistribusikan kembali aplikasi tersebut dengan nama yang sama, seperti proses mirroring pada arsip-arsip di server FTP. Beberapa masalah yang timbul dan menjadi isu kemudian adalah sebagai berikut. 1. Bagaimana pengembang dapat memastikan integritas dari aplikasi yang mereka buat. 2. Bagaimana pengguna dapat memastikan bahwa aplikasi berasal dari sumber yang terpercaya. 3. Bagaimana pengembang sistem operasi (baik sistem operasi komputer, smartphone, atau perangkat lain) dapat menyediakan platform yang aman bagi pengembang aplikasi. II. CODE SIGNING signing adalah proses dimana sebuah kode ditandatangani secara dijital oleh pembuat kode dalam rangka untuk menjamin autentikasi dan integritas kode yang kuat bagi pemakai kode [2]. Kode yang dimaksud di sini adalah kode aplikasi (executeable file). Cara kerja code signing adalah dengan memberikan tanda tangan dijital menggunakan sistem kunci privat dan publik, mirip seperti pada SSL atau SSH. Dengan code signing, pengembang menggunakan sebuah kunci untuk menandatangani aplikasi yang dibuat. Kunci ini bersifat unik untuk seorang pengembang atau sebuah grup atau bahkan untuk tiap aplikasi atau objek. Cara umum untuk melakukan tanda tangan dijital adalah dengan menggunakan sertifikat dari certificate authority (CA) yang terpercaya. signing sangat berguna dalam lingkungan yang terdistribusi, dimana sumber dari sebuah bagian kode tidak langsung diketahui dengan jelas. Sebagai contoh, aplikasi Java 2 Micro Edition (J2ME) yang telah banyak didukung oleh perangkat-perangkat mobile yang ada

sekarang. Aplikasi J2ME banyak beredar di Internet dan bebas diunduh langsung melalui perangkat mobile. signing akan membantu pengguna untuk memilih aplikasi mana yang aman untuk dipakai. 2. Pembuat konten kemudian menggunakan Publisher ID untuk menandatangani kode dan mengunggahnya ke VeriSign menggunakan antarmuka yang berbasis browser dan aman. 3. VeriSign memvalidasi tanda tangan pembuat konten dan membuat sebuah sertifikat Content ID yang mengandung informasi pembuat konten dan informasi aplikasi. 4. VeriSign menandatangani ulang konten yang diunggah menggunakan sertifikat Content ID tadi dan mengizinkan pembuat konten untuk mengunduh konten yang telah ditandatangan ulang tersebut. 5. Konten yang telah ditandatangan ulang atau diautentikasi ini sekarang siap didistribusikan secara aman melalui Internet. Gambar 1. Cara kerja ACS signing menggunakan certificate authority Salah satu cara yang cukup banyak digunakan untuk melakukan code signing adalah dengan menggunakan sertifikat dari sebuah certificate authority. Dalam makalah ini dicontohkan cara kerja Authenticated Content Signing (ACS, lebih umum dari code signing, mencakup semua konten dijital) yang disediakan oleh VeriSign. Dari gambar 1, langkah-langkah cara kerjanya adalah sebagai berikut. 1. Pembuat konten dijital mendaftar dan mendapatkan sebuah sertifikat Publisher ID yang merupakan identitas dan legitimasi vendor sebagai pengembang aplikasi atau konten. Signer signing menggunakan kunci sendiri Cara lain untuk melakukan code signing adalah dimana pengembang bisa menggunakan kunci yang dibuat sendiri. Pengguna kemudian harus mengambil kunci publik dari pengembang untuk memverifikasi bahwa sebuah aplikasi berasal dari pengembang tersebut. Langkah-langkahnya sebenarnya sama seperti tanda tangan dijital biasa, seperti pada gambar 2. Namun, cara ini memiliki beberapa kelemahan, diantaranya: 1. Pengguna perangkat mobile harus mendapatkan kunci publik dan melakukan verifikasi secara manual. 2. Kurangnya tingkat kepercayaan karena kunci publik yang didapatkan bisa saja salah. 3. Tidak tersedianya aplikasi untuk melakukan pengecekan content yang ditandatangi dengan menggunakan kunci sendiri. Verifier Fungsi Hash Message Digest (MD) Fungsi Hash Secret Key Encrypt Public Key Decrypt Message Digest (MD)? = Message Digest (MD') Gambar 2. signing menggunakan kunci sendiri

III. CODE SIGNING PADA PERANGKAT MOBILE Vendor-vendor sistem operasi atau platform mobile pada umumnya sudah menyediakan fasilitas untuk melakukan code signing aplikasi yang dibangun di atas sistem operasi atau platform-nya. 1. iphone OS Apple sebagai pengembang iphone OS telah menyiapkan mekanisme untuk menjamin aplikasi yang didistribusikan adalah aplikasi yang benar dan terpercaya. Apple menyediakan App Store yang merupakan bagian dari aplikasi itunes yang menjadi tempat bagi pengguna untuk mengunduh aplikasiaplikasi untuk iphone. Aplikasi yang masuk ke App Store telah diperiksa terlebih dahulu dan diberi code signing. 2. BlackBerry OS Pada BlackBerry OS yang dikembangkan oleh Research In Motion (RIM), aplikasi yang harus diberi code signing adalah aplikasi-aplikasi yang menggunakan Application Programming Interface (API) khusus, misalnya API yang berkaitan dengan invokasi aplikasi lain dalam BlackBerry atau API yang berkaitan dengan kriptografi. signing pada BlackBerry berbayar, tidak gratis. signing pada BlackBerry tidak melibatkan certificate authority, tapi pengelolaan kuncinya langsung dilakukan oleh pihak RIM sendiri. Tujuan dari code signing di sini lebih kepada menjaga keamanan data pengguna BlackBerry dan menjaga agar akses ke kode yang kritis tidak dapat dilakukan sembarangan, sehingga tidak mengganggu keamanan aplikasi BlackBerry. 3. Symbian OS Hampir mirip seperti aplikasi pada BlackBerry OS, aplikasi pada Symbian OS juga harus diberi code signing jika ingin menggunakan fitur-fitur. Sama seperti BlackBerry, code signing pada Symbian juga berbayar, namun Symbian memanfaatkan certificate authority, yakni VeriSign untuk membantu penanganan sertifikat dijitalnya. 4. Brew platform Binary Runtime Environment for Wireless atau Brew adalah sebuah platform yang berjalan di atas chipset Qualcomm yang biasanya terdapat pada ponsel CDMA. Aplikasi yang dibangun di atas Brew harus melalui suatu proses pengujian yang dinamakan True Brew Test (TBT) agar dapat didistribusikan. Selain itu, semua aplikasi Brew yang akan didistribusikan juga harus diberi code signing. signing pada Brew menggunakan jasa certificate authority VeriSign, sama seperti aplikasi Symbian OS. 5. J2ME platform Platform ini adalah platform yang paling umum terdapat pada sebagian besar perangkat mobile. Platform J2ME telah memiliki sistem code signing yang memanfaatkan sertifikat dijital yang dipercayakan kepada certificate authority (CA). Beberapa CA yang cukup terkenal untuk pemberian code signing pada J2ME adalah VeriSign dan Thawte. Dengan melakukan code signing, pembuat aplikasi J2ME dapat mengakses fitur-fitur, seperti akses baca dan tulis file, kamera, koneksi internet. Namun, aplikasi J2ME tidak diwajibkan harus memiliki sertifikat untuk dapat menjalankan fitur-fitur tersebut. Aplikasi tanpa sertifikat tetap dapat dipasang dan dijalankan, hanya saja terdapat notifikasi untuk mengizinkan akses tiap kali aplikasi mengakses fiturfitur. Berdasarkan uraian di atas, dapat dilihat terdapat perbedaan-perbedaan dalam aplikasi code signing pada berbagai perangkat mobile. Untuk perbandingan yang lebih jelas, dapat dilihat pada tabel di bawah ini. Tujuan Sertifikasi iphone OS BlackBerry OS Symbian OS Brew platform J2ME platform Verifikasi keamanan aplikasi yang berjalan Menggunakan mekanisme sendiri Membatasi penggunaan API demi keamanan perangkat Menggunakan mekanisme sendiri Membatasi penggunaan fiturfitur Menggunakan CA VeriSign Memverifikasi aplikasi yang didistribusikan Menggunakan CA VeriSign Mengamankan akses ke fitur-fitur Menggunakan beberapa CA, seperti VeriSign dan Thawte Semua Ya Tidak Tidak Ya Tidak aplikasi Berbayar Ya Ya Ya Ya Ya Dapat dijalankan tanpa signing Tidak Tidak, bila menggunakan API Tidak, bila menggunakan fitur Tidak Ya, namun selalu muncul notifikasi untuk akses fitur

IV. IMPLEMENTASI CODE SIGNING PADA BLACKBERRY Dari penjabaran pada bab sebelumnya, dapat dilihat bahwa pada BlackBerry, belum ada mekanisme code signing yang ditujukan untuk memverfikasi aplikasi. signing pada BlackBerry hanya dilakukan sekedar untuk membatasi penggunaan API khusus. Oleh karena itu, penulis melihat adanya keperluan untuk mengembangkan aplikasi yang mampu melakukan verifikasi aplikasi. Gambar 3 Proses dalam code signing yang dirancang Proses verifikasi kode yang telah diberi code signing dapat dilihat seperti pada gambar 3. Sebelum diverifikasi, aplikasi akan diberi code signing. signing sebenarnya dapat dilakukan di luar lingkungan pengembangan BlackBerry, namun kali ini penulis akan membuat code signing generator juga dalam aplikasi BlackBerry. Adapun langkah-langkah dan algoritma hash dan kriptografi yang digunakan dalam aplikasi ini adalah sebagai berikut. 1. Pertama-tama, arsip kode aplikasi yang akan diberi code signing dibaca dan dibuat nilai hash-nya dengan menggunakan algoritma MD5. 2. Selanjutnya nilai hash ini akan dienkripsi dengan menggunakan algoritma RSA menggunakan kunci privat dari pihak pengembang aplikasi yang diberi code signing. 3. Nilai hash yang telah dienkripsi inilah yang disebut sebagai signature dan disimpan pada file terpisah untuk keperluan verifikasi nantinya. Sebaliknya, verifikasi dilakukan dengan langkahlangkah sebagai berikut. 1. File signature dibaca dan didekripsi menggunakan kunci publik yang didapatkan dari pengembang aplikasi yang akan diverifikasi. Hasil dekripsi ini adalah sebuah nilai hash. 2. File kode aplikasi dibaca dan dihitung nilai hash-nya dengan algoritma MD5 yang sama dengan algoritma yang digunakan saat memberi code signing. 3. Nilai hash hasil dekripsi dan nilai hash hasil perhitungan dari file aplikasi dibandingkan. Bila sama, maka aplikasi yang diverifikasi adalah aplikasi yang sah dari pengembangnya. Bila tidak sama, mungkin file aplikasi sudah pernah diubah atau juga mungkin terdapat kesalahan pada kunci publik yang digunakan. Berikut ini adalah potongan kode yang digunakan untuk melakukan verifikasi file aplikasi. private void verifyaction() int index = _list.getselectedindex(); FileExplorerDemoFileHolder fileholder = (FileExplorerDemoFileHolder) _list.get(_list, index); if (fileholder!= null) String filename = fileholder.getpath() + fileholder.getfilename(); if (Dialog.ask(Dialog.D_OK_CANCEL, "Pastikan file signature telah terdapat " + "pada direktori yang sama.") == Dialog.D_OK) FileConnection fc = null; FileConnection fcsig = null; try fc = (FileConnection)Connector.open("file:///" + filename); InputStream fis = fc.openinputstream(); int retval; // Membuat instance MD5 digest MD5Digest digest = new MD5Digest(); DigestOutputStream digeststream = new DigestOutputStream( digest, null ); // Menulis isi file untuk mendapatkan digest while ((retval = fis.read())!= -1) digeststream.write( retval ); // Membaca signature dari file byte[] signature = new byte[32]; Menghitung hash fcsig = (FileConnection)Connector.open("file:///" + filename + ".sig"); InputStream sigis = fcsig.openinputstream();

int i = 0; while ((retval = sigis.read())!= -1) signature[i++] = (byte) retval; fcsig.close(); Mendekripsi signature // Membangkitkan hash dengan melakukan dekripsi dari signature yang dibaca byte[] hash = new byte[32]; samplersadecryption(16, d, p, q, signature, hash, i - 1); // Jika hasil dekripsi sama dengan hash yang dihitung dari file, // maka file berhasil diverifikasi if (digest.getdigest() == hash) Membandingkan Dialog.alert("File ini berhasil diverifikasi, file dan signaturenya cocok."); else Dialog.alert("File ini gagal diverifikasi, " + "mungkin telah ada perubahan pada file."); catch (Exception ex) Dialog.alert("Gagal memverifikasi : " + filename); Beberapa screenshot aplikasi ini adalah sebagai berikut. Gambar 4 Membuat code signing dari sistem code signing adalah sebagai berikut. 1. Pengguna dapat dijebak untuk menjalankan kode aplikasi yang belum diberi code signing. Pada beberapa platform mobile yang mengizinkan aplikasi untuk tetap dapat dijalankan tanpa diberi code signing, pengembang aplikasi yang jahat bisa menjebak penggunanya dengan memberikan penjelasan yang menipu. Misalnya, dengan menjelaskan adanya fitur yang sangat menarik bila pengguna memilih sebuah menu. Sehingga pengguna menjalankan aplikasi, meskipun tanpa menggunakan code signing. 2. Sistem tetap aman hanya selama kunci privat yang digunakan tidak diketahui pihak lain selain pengembang. 3. Perlu diperhatikan bahwa code signing pada beberapa platform, seperti iphone, BlackBerry, dan J2ME tidak menjamin pengguna dari serangan berbahaya atau kesalahan (bug) pada program. signing hanya memberikan jaminan bahwa sebuah program atau aplikasi benar-benar berasal dari sebuah pengembang dan tidak diubah oleh pihak lain. Gambar 5 Verifikasi code signing V. MASALAH PADA CODE SIGNING Seperti berbagai masalah keamanan yang lain, code signing ternyata juga dapat diserang. Beberapakelemahan VI. KESIMPULAN DAN SARAN Beberapa kesimpulan yang dapat ditarik dari pembahasan mengenai code signing dan pembuatan aplikasinya pada BlackBerry adalah: 1. Tujuan dasar dari code signing pada perangkat mobile

adalah menjaga integritas aplikasi, terutama aplikasi yang dapat diunduh secara bebas dari Internet. 2. Implementasi code signing dapat dilakukan dengan menggunakan jasa certificat authority (CA) ataupun dengan menggunakan kunci sendiri. 3. Implementasi code signing pada perangkat mobile sangat bervariasi, tergantung dari pengembang sistem operasi atau platform. 4. Penulis berhasil membuat simulasi code signing pada perangkat BlackBerry yang mungkin dapat dikembangkan lagi. 5. signing memiliki beberapa kelemahan, seperti: pengguna yang dapat dijebak, keamanan bergantung pada kerahasiaan kunci, dan tidak menjamin program bebas dari kesalahan pemrograman atau bug. Bandung, 29 April 2010 Aris Feryanto 13507110 Penerapan code signing pada beberapa aplikasi mobile sudah baik. Hanya saja, penulis melihat adanya celah dimana pada beberapa platform, aplikasi tanpa code signing masih dapat dijalankan. Menurut penulis, hal ini harus dihindari dan sebaiknya aplikasi tanpa code signing langsung diblok atau tidak dapat dijalankan. DAFTAR PUSTAKA [1] Mobile Security, AD Rubin, DE Geer Jr - IEEE Internet Computing, 1998, http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.33.301 &rep=rep1&type=pdf [2] Mobile Security, S Loureiro, R Molva, Y Roudier - Proceedings of ISYPAR, 2000 Citeseer, http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.15.833 &rep=rep1&type=pdf [3] Using Public Key Cryptography in Mobile Phones, Discretyx, http://www.discretix.com/pdf/using%20public%20key%20cryp tography%20in%20mobile%20phones.pdf [4] Signing Resources, Verisign http://www.verisign.com/code-signing/informationcenter/resources/index.html [5] VeriSign Authenticated Content Signing, http://www.verisign.com/stellent/groups/public/documents/data_s heet/003201.pdf [6] BlackBerry Developer, http://www.blackberry.com/developers/ PERNYATAAN Dengan ini saya menyatakan bahwa makalah yang saya tulis ini adalah tulisan saya sendiri, bukan saduran, atau terjemahan dari makalah orang lain, dan bukan plagiasi.