Senin, 23 November 2015

Mobile Security

Mobile Security

Penggunaan ponsel atau smartphone saat ini sudah sangat umum. Jaringan internet juga sudah tersebar di berbagai belahan dunia sebagai penunjang penggunaan perangkat mobile. Dibalik itu semua, penggunaan perangkat mobile memiliki resiko tersendiri, resikonya berbeda dengan penggunaan desktop atau laptop. Berikut adalah penjelasan mengenai keamanan perangkat mobile.  

Ancaman-ancaman Keamanan Perangkat Mobile

Resiko Fisik
Risiko fisik menjadi risiko paling mendasar yang dimiliki oleh perangkat mobile. Risiko fisik ini mulai dari akses oleh orang yang tak berhak hingga risiko kehilangan. Akses oleh orang yang tidak berhak.

Resiko Data Storage
Saat ini program enkripsi data pada ponsel masih belum sematang program enkripsi pada laptop. Misal pengguna laptop menggunakan aplikasi truecrypt untuk mengenkripsi data-nya. Apabila laptopnya hilang maka ia dapat menerima risikonya karena datanya tetap aman dalam keadaan terenkripsi.
Kemampuan menyimpan data secara aman namun tetap memungkinkan bagi aplikasi untuk mengaksesnya menjadi persyaratan untuk keamanan perangkat mobile.

Resiko Strong Password
Password yang kuat yaitu password dengan minimal panjang karakter delapan, kombinasi huruf besar/kecil, berikut dengan kombinasi alfanumerik dan simbol. Password ini tentu akan dengan mudah diketikkan saat ia menggunakan keyboard laptop/Desktop. Lalu bagaimana ia akan mengetikkan delapan karakter password, kombinasi huruf besar huruf kecil, kombinasi alfanumerik dan simbol pada ponselnya? Tentu akan lebih sulit dilakukan pada keyboard ponsel: model ketik tiga kali ABC.

Resiko Internet Browsing
Layar ponsel tidak sebesar layar laptop. Jadi menampilkan URL secara lengkap pada ponsel dapat dikatakan nyaris takkan bisa. Hal ini akan membuat serangan phishing semakin mudah. Pengguna tidak dapat selalu melihat URL yang diaksesnya.

Resiko Privasi Lokasi
Saat ini ponsel sudah dilengkapi GPS agar lokasi keberadaan pengguna ponsel tersebut dapat diketahui. Bisa saja fitur lokasi ini di salah gunakan oleh pihak yang tidak bertanggung jawab sehingga dapat juga merugikan pengguna ponsel tersebut.

Resiko Sistem Operasi
Setiap perangkat mobile dengan masing-masing sistem operasinya tentu akan memilikinya risikonya sendiri-sendiri. Baik Android, iPhone, BlackBerry, Symbian, Windows Phone, masing-masing memiliki risiko. Risiko sistem operasi ini melekat pada perangkat mobile tersebut.
Contoh : risiko sistem operasi adalah jailbreak atau berusaha mendapatkan akses root pada perangkat.

Mobile Security Secure Design Principles

Identifikasi dan Proteksi Data Sensitif pada Perangkat Mobile
Sebelum mendesain aplikasi mobile, lakukan identifikasi terhadap semua data yang akan diproses. Tentukan tingkat sensitivitas data. Data yang bersifat publik tidak perlu mendapatkan mekanisme pengamanan. Data yang bersifat confidential harus mendapatkan mekanisme pengamanan. 
Sedapat mungkin, desain aplikasi dengan data confidential tidak tersimpan di perangkat mobile. Jika tidak memungkinkan, data confidential yang tersimpan pada perangkat mobile harus terlindungi.

Pastikan Data Sensitif Terlindungi Saat Transit
Perangkat mobile memiliki beragam mode koneksi untuk tersambung ke Internet. Tidak semua mode koneksi ini terenkripsi. Untuk itu desain aplikasi mobile dengan menggunakan TLS/SSL (Transport LayerSecurity/Secure Socket Layer) saat mengirimkan/menerima data sensitif.

Jalankan Aplikasi dengan Hak Akses Minimum
Desain klien aplikasi mobile yang dapat dijalankan dengan hak akses minimum yang diperlukan. Contohnya aplikasi cukup bisa dijalankan user biasa, tidak harus sebagai admin/root.

Ikuti Praktik Secure Coding
Kembangkan aplikasi mengikuti praktik secure coding misalnya: input validation, output encoding. Pengembang perlu melakukan static analysis dalam proses SDLC untuk mengetahui keamanan source code.
Lainnya, tanda tangani aplikasi saat akan mengupload (signed application) untuk menjaga integritas aplikasi.

Referensi : Sebuah Pengantar Sebuah Mobile Security: Risiko, Desain yang Aman, dan Pengujian - Zaki Akhmad

Selasa, 06 Oktober 2015

Konsep, Arsitektur, dan Tools pada Symbian OS


Dalam pembahasan kali ini kita akan memahami tentang teknologi pada sistem operasi Symbian. Sistem operasi ini popular di jamannya karena banyak digunakan di perangkat-perangkat mobile seperti handphone. Berikut ini adalah pembahasan menganai teknologi pada Symbian OS.

Konsep Symbian OS

Symbian OS adalah sistem operasi tak bebas yang dikembangkan oleh Symbian Ltd. yang dirancang untuk digunakan peralatan bergerak (mobile). Mirip seperti sistem operasi desktop, Symbian OS mampu melakukan operasi secara multithreading, multitasking dan pengamanan terhadap memori. Dan semua pemrograman pada Symbian dilakukan secara event-based, artinya hardware CPU menjadi tidak aktif ketika tidak ada inputan berupa aktivitas tertentu. Namun perlu dipahami sistem operasi ini memang ditujukan untuk diinstal pada peralatan mobile dengan keterbatasan sumber daya. Multithread dan multitasking memberikan kemampuan Symbian OS untuk menjalankan lebih dari satu aplikasi sekaligus. Namun khusus ini, adanya preemptive multitasking kernel akan memberi tiap-tiap program suatu pembagian waktu pemprosesan yang dilakukan bergantian dengan cepat sehingga nampak bagi pemakai seolah-olah proses ini dieksekusi secara bersamaan. Untuk itu telah didefinisikan penjadwalan berdasar prioritas tertentu untuk menentukan proses mana yang berjalan terlebih dahulu dan proses apa berikutnya serta berapa banyak waktu akan jadi diberi.
Symbian OS sendiri bukanlah software yang sifatnya open source secara penuh karena meskipun terdapat ketersedian API dan dokumentasinya, yang banyak membantu pihak pengembang aplikasi untuk membuat software yang berjalan di atas sistem operasi ini, dipublikasi untuk umum namun tidak untuk kode source sendiri


Arsitektur Symbian OS

Dalam sistem operasi Symbian terdapat arsitektur pendukung yang terdiri dari lapisan-lapisan (Layer) sebagai berikut
  • Lapisan pendukung aplikasi (Application Utility Layer)
Lapisan ini terdiri dari berbagai pendukung yang berorientasi pada aplikasi. Hal ini memungkinkan aplikasi lain (di luar sistem operasi) untuk berintegrasi dengan aplikasi dasar yang tersedia pada sistem operasi. Bentuk layanan lain termasuk proses pertkaran dan manajemen data.
  • Lapisan Layanan dan Framework antarmuka grafis (GUI Framework)
Lapisan ini merupakan framework Api yang tersedia untuk memberi dukungan terhadap penanganan input user secara grafis maupun suara dapat digunakan oleh aplikasi lain.
  • Lapisan Komunikasi
Lapisan ini berfungsi sebagai sistem operasi yang fokus pada implementasi peralatan komunikasi mobile. Symbian  OS memiliki kumpulan API yang fookus pada lapisan komunikasi. Berikut adalah antarmuka yang memberi dukungan komunikasi seperti Bluetooth, Infrared(IrDA), dan USB. Terakhir pada lapisan ini adalah protokol komunikasi berupa TCP/IP, HTTP, WAP, dan layanan telepon.
  • Lapisan sistem API dasar
Lapisan ini merupakan kumpulan API yang mendukung pengaksesan memori, tanggal dan waktu, serta sistem dasar lainnya.

 Contoh Tools yang digunakan pada Symbian OS

Contoh tools pemograman pada Symbian yaitu Qt. Qt dirancang untuk pengembangan aplikasi dengan C++. Oleh karenanya, Qt berisi sekumpulan kelas-kelas yang tinggal dimanfaatkan saja, mulai dari urusan antarmuka (user interface), operasi input ouput, networking, timer, template library, dan lain-lain. Qt mendukung penuh Unicode (mulai versi 2.0) sehingga urusan internationalization (I18N) dan encoding teks bukan menjadi masalah. Walaupun merupakan free software, Qt terbukti stabil dan lengkap. Dibandingkan toolkit lain, Qt juga mudah untuk dipelajari dan dipersenjatai dengan dokumentasi dan tutorial yang ekstensif dan rinci.
Untuk platform mobile, Qt mendukung beberapa sistem operasi diantaranya Symbian S60, Maemo, Symbian^3, dan MeeGo. Sedangkan untuk platform desktop, Qt mendukung sistem operasi Windows, Linux, dan Mac
Qt mendukung pengembangan dengan dua bahasa utama yaitu Object Oriented C++ dan Java. Namun untuk membuat aplikasi mobile diatas Nokia Qt SDK, bahasa pemrograman yang harus Anda kuasai adalah C++. Penggunaan bahasa java digunakan untuk membuat aplikasi berbasis desktop menggunakan Qt SDK.



Referensi: Dominikus Juju & MataMaya Studio (2009). Fun with Symbian. Jakarta: PT Elex Media Komputindo