Peluang Beasiswa UTS

Railah Beasiswa Penulung

Kabar baik bagi seluruh mahasiswa Universitas Teknologi Sumbawa, kini telah hadir Beasiswa Penulung yang diberikan oleh Dewan Penyantun Universitas Teknologi Sumbawa.
Beasiswa ini diberikan kepada mahasiswa UTS yang memiliki semangat juang tinggi dan berprestasi tapi tidak mampu secara ekonomi.
Beasiswa ini ditujukan khusus kepada mahasiswa yang berasal dari pulau sumbawa. Beasiswa diberikan dalam bentuk pembebasan biaya kuliah (all item) selama dua semester pada tahun akademik 2016/2017.
Seleksi akan dilakukan setiap tahun. Penerima tahun akademik 2016/2017 bisa mengajukan lagi utk tahun akademik berikutnya. Kuota tersedia untuk +- 50 orang.
A. Syarat Penerima Beasiswa Panulung
1. Mahasiswa aktif UTS yang berasal dari Pulau Sumbawa. Hanya untuk angkatan 2014 dan 2015.
2. Memiliki semangat juang yang tinggi serta aktif dalam organisasi maupun kegiatan2 yg diadakan UTS.
3. Penghasilan maksimum orangtua/wali (gabungan ayah + ibu) adalah Rp 2.000.000,- atau pendapatan total orangtua/wali dibagi total tanggungan keluarga maksimum adalah Rp 500.000,-
4. IPK minimum adalah 3,00
5. Tidak pernah terlibat dalam tindak pidana yang berkekuatan hukum tetap serta tidak pernah mendapat sanksi dari internal UTS karena melakukan kecurangan / pelanggaran akademik.
6. Bersedia untuk menjadi mahasiswa teladan yang bisa memberikan contoh baik kepada mahasiswa lainnya dalam hal prestasi, keaktifan, etika, dan kepedulian pada lingkungan.
B. Tata cara pendaftaran
1. Pendaftar mengisi formulir online melalui http://goo.gl/forms/d11US1UVPh  (formulir harus diisi lengkap).
2. Kumpulkan hard copy berkas yang dibutuhkan di lobi rektorat. Adapun berkas yang dibutuhkan adalah:
a. Foto copy KTM dan KRS
b. Foto copy KTP atau Kartu Keluarga
c. Bukti prestasi atau bukti keaktifan di organisasi tertentu (sertifikat, SK pengurus, dll)
d. Transkrip nilai yang di tandatangani Kaprodi/dekan.
e. Slip gaji orangtua/wali (ayah dan ibu–dua-duanya) jika orangtua/wali PNS atau karyawan swasta.
f. Jika orangtua/wali bukan PNS atau karyawan swasta, buatlah Surat pernyataan penghasilan ditandatangani orangtua mengetahui Kepala Desa.
g. Surat Rekomendasi dari Kaprodi (rekomendasi didasarkan pada ada/tidaknya catatan sanksi atas pelanggaran akademik yang dilakukan mahasiswa tersebut).
h. Surat pernyataan bersedia menjadi teladan mahasiswa di kampus (dibuat dan ditandatangani oleh pendaftar dengan diketahui sebagai saksi oleh Kaprodi)
i. Pas foto 3X4 dua lembar warna.
j. Semua dokumen disusun dalam map berwarna merah. Tuliskan nama dan NIM dalam cover map.
3. Pendaftaran online dilakukan sejak tanggal 28 April 2016 s/d 15 Mei 2016. Sedangkan batas akhir pengumpulan berkas hard copy adalah 20 Mei 2016.
4. Penerima beasiswa Panulung akan diumumkan pada tanggal 30 Mei 2016.
5. Keputusan tim seleksi tidak dapat diganggu gugat.
Informasi Beasiswa ini disampaikan oleh;
UPT Kerjasama Beasiswa dan Pengembangan Staf Universitas Teknologi Sumbawa.
Mari seluruh mahasiswa Fakultas Teknologi Infomatika, manfaatkan kesempatan ini dengan sebaik-baiknya!!!
Sumber : www.ftiuts.com

Penerapan NoSQL Untuk Basis Data Non Relasional Berskala Besar





Seiring dengan meningkatnya kebutuhan akan penggunaan sistem informasi dalam berbagai lini kehidupan manusia, menuntut para pengembang perangkat lunak untuk terus meningkatkan kemampuan serta fitur aplikasi yang mereka bangun supaya bisa memenuhi kebutuhan pengguna , tidak terkecuali teknologi basisdata telah mengalami perkembangan yang sangat signfikan, mengingat basis data merupakan komponen yang sangat penting dalam sebuah system informasi. Dalam beberapa dekade dikenal ada beberapa jenis teknologi basis data/ database , beberapa diantaranya adalah Hierarchical Database, Network Database, Relational database , Object Oriented Database (OOD), dan lain sebagainya.


Beberapa dekade terahir ini , basis data relasional telah menjadi defacto pada sistem basis data. Dengan berlandaskan teori yang mapan serta dukungan software industry yang luas, model relasional telah menggantikan model basisdata sebelumnya, yaitu basis data hierarki dan basis data jaringan . beberapa prinsip model ini, seperti normalisasi, aljabar relasional, dan Struktur Query Language (SQL) telah dikenal luas oleh kalangan industry software dan penggunaanya pun meluas.


Sayangnya ada beberapa domain masalah yang tidak cocok dipetakan kedalam model relasional. Masalah muncul ketika kita memaksakan data yang secara natural tidak relasional ke dalam model ini. Impedence mismatch adalah masalah lain, dimana suatu objek bersarang dicoba untuk dimasukan kedalam table. Selain dua contoh masalah teknis diatas ada beberapa pertimbangan lain yang mendorong penggunaan model basis data semi-terstruktur / NoSQL dalam merancang basis data perusahaan berskala besar diantaranya adalah trend penggunaan basis data tersebar / terdistribusi untuk menggantikan basis data tunggal / vertical serta penerapan teknologi Cloud Computing untuk pendistribusian data ke beberapa computer berbeda di berbagai tempat.


Alasan penggunaan model basis data NOSQL didasari oleh berbagai kebutuhan akan beberapa hal yaitu :
Data Store (Penyimpanan Data) : Dimana data disimpan dalam ukuran dalam ukuran Exabyte. Sebuah Exabyte sama dengan satu milyar Gigabytes (GB) data. Menurut internet.com , jumlah tambahan data yang disimpan pada tahun 2010 adalah 1.000 exabyte hanya 4 tahun kemudian pada tahun 2014, jumlah data yang disimpan hampir mencapai 50.000 exabyte ,itu artinya terjadi peningkatan yang sangat luar biasa. Dengan kata lain, ada banyak data yang disimpan di dunian dan akan terus tumbuh.
Interconnected Data (Data yang saling berhungan) : sehingga data diseluruh dunia menjadi terhubung. Pembuatan web didukung dengan adanya hyperlink, blog memiliki pingbacks dan setian system jaringan utama social memiliki tag yang mengaitkan sesuatu dengan yang lainya. System utama yang dibangun untuk saling berhubungan.
Complex Data structure (struktur data yang rumit) : dalam hal ini berarti NoSQL dapat dengan mudah menangani struktur hierarkis data bersarang . sedangkan SQL pada RDBMS, hal ini rumit dan sulit dilakukan, karena butuh beberapa table relasional dengan berbagai macam kunci. Selain itu, ada hubungan antara kinerja dengan kompleksitas data.


NoSQL memiliki banyak kelebihan , diantaranya adalah :
Mudah digunakan pada convensional load-balanced cluster
Data yang tetap (Persitent data) , tidak sekedar cache yang selalu diupdate
Dapat dilakukan pengukuran terhadap ketersediaan memory
Tidak ada skema tetap dan memungkinkan migrasi skema tanpa downtime
Memiliki system query sendiri
Bersifat ACID (Atomicity, Consistency, Isolation, Durability)


Basis data NoSQL dapat dibagi menjadi 4 kategori dasar yaitu :


1). Key Values stores : adalah suatu hash table yang memiliki key unik dan pointer ke item tertentu data. Pemetaan ini biasanya diikuti oleh mekanisme cache untuk memaksimalkan kinerja. Contohnya pada Tokyo Cabinet, Redis, Voldemort, Oracle BDB. Jenis aplikasi yang dapat menggunakannya adalah Aplikasi Content Caching, sedangkan contoh penerapanya apikasinya adalah pada pembuatan forum software, dimana terdapat sebuah home profile page yang memiliki statistic apa yang telah dilakukan oleh user / penggunanya.


2). Column Family stores : adalah tempat yang digunakan untuk menyimpan dan memproses jumlah data yang sangat besar, yang tersebar di berbagai lokasi. Disini masih terdapat beberapa key, tapi untuk mengacu ke multiple column. Dalam hal ini BigTable (model dari Column Family NoSQL milik Google), baris diidentifikasikan oleh suatu baris key dengan data yang terurut dan disimpan oleh key tersebut.


3). Document Databases : diinpirasikan oleh Lotus Notes dan mirip dengan Key-Values Stores, model ini pada dasarnya merupakan dokumen yang menyimpan kumpulan Key-Values Collections. Dokumen yang semi terstruktur disimpan dalam format seperti JSON, contohnya adalah CouchDB dan MongoDB. Jenis aplikasi yang menggunakanya adalah Aplikasi Web.


4). Graph Databases : adalah suatu baris data yang dibangun oleh kumpulan node , relasi antara notes dan karakteristik node. Pada basis data ini tidak digunakan table yang terdiri dari baris dan kolom serta SQL yang kaku, tetapi memakai model graf yang dapat diterapkan di berbagai mesin. Contoh dari basis data graf (Graph Databases) adalah Neo4J, InfoGrid dan InfiniteGraph. Aplikasi yang menggunakannya biasanya aplikasi yang bersifat Social Networking seperti facebook dan twitter (Tim Perdue, 2013).


Gambar berikut adalah perbedaan cara kerja NoSQL dengan RDBMS dalam hal pendistribusian data :



Pada gambar diatas terlihat bahwa dengan menggunakan NoSQL , data dapat didistribusikan dan secara otomatis melalui database nodes , sekaligus juga dapat mencatat data tersebut. Jika kita ingin mencatat dan menyimpan data ke 20 entitas pada suatu database cluster dengan 3 nodes maka mungkin saja data tersebut dicatat di semua nodes. Database tidak perlu melakukan singkronisasi antar node terlebih dahulu, juga tidak memerlukan 2 fase commit, dan client 1 dapat melihat perubahan pada node 1 sebelum client 2 selesai menulis ke 20 entias. Sedangkan pada RDBMS hal tersebut tidak dapat dilakukan.


Selain kemudahan dalam proses pendistribusian data , pada basis data NoSQL juga terdapat beberapa kelemahan – kelemahan , diantaranya :
Pada basis data NoSQL sering terjadi data yang tidak konsisten , karena pada mayoritas basis data No SQL digunakan pada aplikasi yang harus menyimpan dan memproses banyak data dengan cepat seperti website jejaring social, mesin pencari dan lain sebagainya. Sebagai konsekuensi dari pilihan tersebut, NoSQL mengorbankan kemudahan untuk konsistensi data. Ketidakkonsistenan sebuah basis data dapat menyebabkan kesalahan yang sangat fatal dalam beberapa kasus. Sebagai contoh dalam sebuah aplikasi penjualan online seperti Amazonsaat ada dua atau lebih pembeli yang melakukan transaksi pembelian pada barang yang sama, pada system basis data yang tidak konsisten akan mengijinkan kedua transaksi tersebut. Akibatnya, apabila stok barang yang bersangkutan hanya satu, maka salah satu pembeli akan dirugikan karena validasi transaksi dan pembayaran tetap berhasil, namun barang tidak tersedia. Meskipun aplikasi yang menggunakan basis data NoSQL dapat merekayasa konsistensi data melalui pemrograman, dengan cara membuat middleware layer ( solusi xiang [25] ) yang menggunakan algoritma hash untuk mempartisi dan mereplikasi data. Algoritma yang digunakan dapat memastikan konsistensi pada basis data NoSQL yang terpartisi pada beberapa node, bahkan mampu mengidentifikasi jika ada salah satu node server yang hilag (rusak atau tidak terhubung). Sayangnya solusi semacam ini juga mengakibatkan menurunnya performa server dan meningkatnya waktu pemrosesan query.
NoSQL merupakan sebuah implementasi sub-optimal , karena menggunakan paradikma brute force untuk pemrosesan data, bukan menggunakan indexing yang lebih baik.
Tidak menyediakan fitur yang sudah banyak digunakan oleh pengembang yang menggunakan basis data relasional.
Tidak kompatibel dengan perangkat – perangkat yang sudah biasa digunakan oleh pengguna.
Masih sedikitnya tenaga professional yang benar – benar memahami konsep basis data NoSQL (non relasional) , karena konsep basis data ini relative masih baru jika dibandingkan dengan basis data relasional yang sudah berjalan berpuluh – puluh tahun.


Konsep utama dari penerapan NoSQL adalah bagaimana mengatasi jumlah data yang sangat besar dan ledakan data dalam aplikasi web sebagai paradikma baru dalam penerapan basis data. Permasalahan dalam RDBMS mengenai skalabilitas dan partisi data , dapat diatasi menggunakan NoSQL , NoSQL memiliki beberapa keunggulan seperti basis data non-relasional (meliputi hierarki, graph dan basis data object oriented) , mapreduce yang diambil dari fungsi pemrograman diterapkan untuk menghasilkan data set yang besar, schema free yang memungkinkan dimana tidak terdapat table, kolom, kunci primer dan sekunder, join dan relasi. Horizontal scalling yang memungkinkan basis data untuk dijalankan di beberapa server untuk meningkatkan penyimpanan dan peningkatan waktu akses untuk mengatasi permasalahan banyaknya data.NoSQL merupakan alternatif dari RDBMS dalam hal pendistribusian data , bukan penanganan masalah secara keseluruhan terutama transaksi yang tinggi dan bersifat sensitif, NoSQL tidak menerapkan konsistensi dan integritas data , hal ini membuat programmer harus bekerja ekstra untuk mengatasinya dari sisi pemrograman

Cara Membuat Kotak Search (Search Box) Yang Bergaya Di Blog

Jika Anda telah menambahkan widget pencarian atau search box ke blog Anda, Anda mungkin bertanya-tanya bagaimana hal itu bisa terlihat sedikit lebih bergaya!

Sebetulnya dalam membuat model widget pencarian tidak sulit sama sekali. Anda dapat menyesuaikan tombol menggunakan CSS atau ganti dengan gambar sebagai gantinya. Pilihan lain kustomisasi adalah dengan menambahkan beberapa informasi teks di dalam kotak pencarian dan menghapus pencarian tombol sama sekali.

Dalam posting ini, kita akan melihat beberapa opsi dan metode untuk menyesuaikan widget pencarian, sehingga Anda dapat memilih metode yang terbaik bagi Anda dan gaya kotak pencarian agar sesuai dengan desain keseluruhan blog Anda sendiri.

Widget Search adalah contoh yang sangat baik dari apa yang bisa dimasukkan dalam header blog, dan dalam posting ini kita akan belajar bagaimana bentuk pencarian dapat ditata sesuai dengan tema Anda.

Widget Cari adalah jenis bentuk, dibangun dari kotak teks (area dimana Anda mengetik istilah pencarian), tombol kirim, dan beberapa elemen tersembunyi yang mengirim informasi ke server tentang pencarian yang sedang dilakukan.

Jika Anda menggunakan Blogger widget pencarian sederhana, kode untuk widget pencarian Anda akan terlihat seperti ini:
<form id="searchthis" action="/search" style="display:inline;" method="get">
<input id="search-box" name="q" size="25" type="text"/>
<input id="search-btn" value="Search" type="submit"/>
</form>

Unsur-unsur yang bisa kita lihat dalam warna merah. The "search-box" elemen itu adalah kotak yang berisi teks pencarian, sedangkan "search-btn" adalah tombol kunci untuk menyampaikan permintaan pencarian ke server.
Secara default, widget pencarian sederhana ini akan muncul seperti ini dalam template Anda:

Tetapi menggunakan beberapa teknik sederhana, kita bisa membuat ini terlihat jauh lebih cantik!

1 .Menggunakan CSS

Kustomisasi yang paling mudah dapat dicapai hanya menggunakan "inline CSS": ini berarti bahwa kotak pencarian dan tombol dapat ditata dalam kode yang digunakan untuk kotak pencarian.

Sebagai contoh, katakanlah kita ingin kotak pencarian untuk memiliki latar belakang biru pucat dan perbatasan biru tua. Untuk mencapai hal ini, kita hanya menambahkan beberapa deklarasi gaya ke elemen "pencarian-kotak", seperti ini:
<form id="searchthis" action="/search" style="display:inline;" method="get">
<input id="search-box" name="q" size="25" type="text" style="background: #ccccff; border: 2px solid #000066"/>
<input id="search-btn" value="Search" type="submit"/>
</form>

Dengan menambahkan gaya deklarasi ini, kita dapat membuat suatu bentuk pencarian yang terlihat seperti ini:

Kita juga dapat menambahkan gaya pada tombol pencarian dengan cara yang sama. Kali ini, latar belakang biru tua dengan pinggiran merah, sementara teks berwarna putih dan tebal:
<form id="searchthis" action="/search" style="display:inline;" method="get">
<input id="search-box" name="q" size="25" type="text" style="background: #ccccff; border: 2px solid #000066"/>
<input id="search-btn" value="Search" type="submit" style="background: #000066; border: 2px outset #ff0000; color: #ffffff; font-weight: bold;"/>
</form>

Perhatikan bahwa dalam contoh ini, saya menggunakan "outset" daripada "solid" untuk properti perbatasan; ini memastikan tombol terlihat mengangkat bukannya datar, dan membantu pembaca memahami bahwa itu adalah sebuah tombol yang dapat diklik.
Berikut adalah bentuk yang dihasilkan:

Anda dapat melakukan percobaan dengan berbagai warna dan gaya untuk formulir pencarian Anda sendiri untuk membuat sebuah desain yang unik.

2. Teks Yang Terlihat

Anda bisa menambahkan beberapa teks dalam kotak pencarian sebagai panduan bagi pembaca Anda (misalnya:! Cari di Blog Ini).
Hal ini dicapai dengan menambahkan "nilai" ke kotak pencarian, seperti ini:
<form id="searchthis" action="/search" style="display:inline;" method="get">
<input id="search-box" name="q" size="25" type="text" value="Cari di Blog Ini"/>
<input id="search-btn" value="Search" type="submit"/>
</form>

Ini akan tampil seperti ini:

Untuk mengubah teks pada tombol pencarian, kita hanya perlu mengubah pada value-nya saja:
<input id="search-btn" value="Search" type="submit"/>

Jika Anda lebih memilih tombol untuk mengatakan "Go!", Anda hanya bisa mengganti value dari "Search" dengan "Go!" sebagai gantinya:
<input id="search-btn" value="Go!" type="submit"/>

3. Menggunakan Gambar

Menggunakan gambar bukan tombol tidak begitu rumit. Untuk itu, kita hanya perlu mengubah jenis masukan dari "Submit " untuk Image dan menetapkan URL untuk foto tersebut.

Pertama-tama, Anda perlu untuk mencari gambar yang ingin Anda gunakan, dan upload gambar tersebut ke account hosting eksternal.

Dianjurkan untuk menggunakan gambar kecil atau ikon untuk ini (16x16px atau sedikit lebih besar akan menjadi ukuran yang sempurna untuk bentuk pencarian). Ada banyak ikon pencarian gratis yang tersedia dari Iconlet, atau Anda bisa men-download paket ikon dan memilih gambar yang cocok sebagai gantinya.

Untuk contoh ini, saya akan gunakan gambar ikon yang di upload dari Iconlet:

Untuk menggunakan gambar ikon tersebut dijadikan sebagai tombol untuk form pencarian anda, ini adalah kode yang bisa anda gunakan:
<form id="searchthis" action="/search" style="display:inline;" method="get">
<input id="search-box" name="q" size="25" type="text" value="Cari di Blog Ini"/>
<input id="search-btn" value="Search" type="image" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6NR_q9xA03Yct0KfOzKC67W7T6ucFJbG2foNpgwEtN4zgJIYkoqICye68zO4WSNyMPlBCHCun1yvgBbkPNkvvx_A4Xomb4IM9GIahZkqYqn_Jwlhi9YdmP1IQ6kyhQBIA89NluaOktLM/s320/search-small.jpg" style="margin-left: 5px; margin: 3px 0 0 5px;"/>
</form>

Perhatikan bahwa saya telah mengubah jenis input dalam bentuk ini dari "submit" untuk "gambar", dan telah menambahkan URL dari gambar saya sesudahnya. Deklarasi gaya meluruskan citra terhadap kotak pencarian, menambahkan beberapa ruang ke kiri, dan memastikan ini tidak mengapung di atas kotak pencarian.

Gambar tersebut akan terlihat seperti dalam bentuk pencarian ini:

Bila Anda ingin menggunakan foto Anda sendiri sebagai tombol kirim, pastikan referensi URL yang benar dari gambar Anda.

Anda juga mungkin perlu menyesuaikan sedikit margin untuk gambar dari ukuran yang berbeda dengan yang digunakan dalam contoh ini.

Semoga bermanfaat...
Membuat Aplikasi Kirim SMS Gratis Via Web dengan PHP dan MySQL

Membuat Aplikasi Kirim SMS Gratis Via Web dengan PHP dan MySQL


Masih terkait dengan SMS gateway, dalam artikel kali ini saya akan mencoba memaparkan cara membuat sendiri aplikasi kirim SMS gratis via web. Permintaan untuk membuat artikel dengan topik ini sudah banyak masuk ke email saya maupun komentar dalam blog ini. Namun, mohon maaf baru kali ini saya bisa mewujudkannya.
Untuk membuat fasilitas kirim SMS gratis via web, kita membutuhkan sebuah aplikasi gateway untuk mengirim SMS. Aplikasi sms gateway ini nanti kita install atau letakkan di pc yang ada di rumah kita beserta modem/hp yang tercolok pada PC tersebut sebagai alat untuk mengirim SMS. PC ini harus senantiasa terhubung ke internet untuk berkomunikasi dengan PC server yang ada di hosting. Sedangkan di dalam hosting, kita buat semacam script form untuk interface user yang ingin mengirim SMS. Untuk aplikasi sms gateway yang diinstall di PC rumah, Anda bisa menggunakan Gammu sebagai enginenya.
Pertanyaan yang muncul kemudian adalah bagaimana cara mengkomunikasikan PC server yang ada di hosting dengan PC di rumah, atau dengan kata lain bagaimana mengirim data sms yang disubmit via hosting kemudian bisa sampai di PC rumah lalu mengirimkan sms tersebut via modem/hp?
OK… konsep dasar atau ide dasar dalam pembuatannya adalah kita menggunakan semacam web service yang dibuat di server hosting untuk komunikasi antara PC rumah dan PC hosting. Web service ini nanti senantiasa akan diakses oleh PC rumah. Melalui web service inilah SMS akan dikirim dari PC hosting ke PC rumah. Lantas, apa bentuk output dari web service ini? Web service disajikan dalam bentuk XML yang isinya adalah bunyi SMS dan nomor tujuan SMS yang akan dikirim. Data XML yang berisi bunyi sms dan nomor tujuan inilah yang nanti akan dibaca oleh PC rumah, lalu mengirimkannya lewat SMS gateway (Gammu).
Nah.. sekarang kita menuju implementasi cara pembuatannya :




Langkah pertama, Anda harus sudah menginstall Gammu sebagai tool SMS gateway nya. Pastikan Anda bisa mengirim SMS menggunakan Gammu dan HP/modem yang tercolok di PC Anda.
Langkah kedua, buatlah script form untuk mengirim SMS. Script form ini nanti diletakkan di server hosting
sms.html
<form method="post" action="kirim.php">
No. Tujuan <input type="text" name="destination">
Isi SMS<br><textarea name="sms"></textarea>
</form>
Bila diperhatikan, form kirim SMS di atas nantinya akan disubmit di script kirim.php. Di dalam script kirim.php inilah nomor tujuan dan isi SMS akan disimpan dalam tabel temporary pada database server hosting. Misalkan kita beri nama tabel temporary tersebut adalah ‘outbox’. Kita bisa buat tabel ‘outbox’ ini dengan struktur sbb:
CREATE TABLE `outbox` (
  `id` int(11) AUTO_INCREMENT,
  `destinationNumber` varchar(20),
  `sms` text,
  PRIMARY KEY (`id`)
)
Field ‘id’ digunakan sebagai nomor unik penanda setiap SMS yang akan dikirim, field ‘destinationNumber’ untuk menyimpan nomor tujuan SMS, dan ‘sms’ untuk menyimpan isi SMS.
OK, kita buat script kirim.php nya
kirim.php
<?php
   // koneksi ke mysql server hosting
   mysql_connect('dbhost', 'dbuser', 'dbpass');
   mysql_select_db('dbname');

   // baca nomor tujuan dan isi sms dari form
   $destNumber = $_POST['destination'];
   $sms = $_POST['sms'];

   // query insert data sms ke tabel 'outbox'
   $query = "INSERT INTO outbox (destinationNumber, sms) VALUES ('$destNumber', '$sms')";
   mysql_query($query);

   echo "SMS sudah dikirim...";
?>
Setelah data sms yang dikirim tersimpan dalam tabel ‘outbox’, langkah selanjutnya kita buat script web service untuk menyajikan data sms yang tersimpan dalam tabel ‘outbox’ tersebut ke dalam bentuk dokumen XML. Misalkan kita beri nama script untuk mengenerate XML ini ‘data.php’
data.php
<?php
// koneksi ke mysql server hosting
mysql_connect('dbhost', 'dbuser', 'dbpass');
mysql_select_db('dbname');

// membuat header dokumen XML
header('Content-Type: text/xml');
echo "<?xml version='1.0'?>";

// membuat root tag untuk data XML
echo "<outbox>";

// query untuk membaca seluruh SMS yang ada di tabel outbox
Penerapan Kriptografi Pada M-Commerce

Penerapan Kriptografi Pada M-Commerce

E-commerce merupakan bisnis proses yang dijalankan melalui melalui internet, misalnya transaksi jual-beli barang dan jasa secara online. Bisnis proses ini mungkin dalam bentuk B2B Business to Business) maupun B2C (Business to Customer). Defenisi umum ini, tidak membatasi jenis alat memperoleh akses ke internet. Oleh karenaitu, mobile commercemerupakan bagian dari e- commerce, yang memanfaatkan perangkat mobile atau terminal untuk melakukan transaksi bisnis melalui jaringan telekomunikasi mobile. Transaksi bisnis ini tidak hanya terbatas pada layanan yang hanya melibatkan komunikasi, transaksi dan hiburan, tetapi juga memungkinkan terjadinya transfer uang. Selain itu, perangkat mobile yang digunakan juga tidak terbatas pada telepon seluler, penggunaan penrangkat lain seperti PDA, juga termasuk dalam mobile commerce.
Jadi mobile commerce merupakan semua transaksi (yang memiliki niai uang) baik secara langsung maupun tidak langsung melalui jaringan komunikasi nirkabel (Stuart J. Barnes). yang digunakan oleh end user
Pada umumnya jumlah pengguna telepon seluler di berbagai negara lebih banyak dari pada jumlah pengguna internet dengan pertumbuhan yang sangat cepat khusunya di negara berkembang. Dengan semakin tingginya penetrasi telepon seluler dan perangkat mobile lainnya maka lebih banyak jumlah calon pelanggan yang dapat dijangkau. Selain itu, dengan sifat perangkat yang mobile maka aplikasi mobile dapat digunakan kapan dan dimana pun. Oleh karena itu, layanan m-commerce semakin banyak dikembangkan karena memiliki potensi yang sangat besar terutama pada pasar B2C.
Contoh aplikasi telah dikembangkan adalah mobile banking, aplikasi untuk transaksi saham, pelelangan barang dan lain sebagainya. Akan tetapi, kesuksesan dari aplikasi ini sangat bergantung pada jaminan keamanan yang juga bergantung pada teknologi yang dimanfaatkan Hal ini penting, karena umumnya pengguna tidak akan mau menggunakan aplikasi mobile commerce sebelum yakin aplikasi tersebut benar- benar aman.
Aspek keamanan pada aplikasi mobile commerce meliputi keamanan jaringan telekomukasi nirkabel sebagai media transmisi data, system transaksi yang digunakan (seperti system pemba yaran),serta keamanan data yang disimpan pada perangkat mobile. Untuk itu, kriptografi dan aplikasinya telah digunakan pada berbagai platform aplikasi mobile karena menyediakan berbagai layanan keamanan yang akan dijelaskan.
Contoh penerapan kriptografi pada aplikasi mobile commerce adalah Wireless Public Key Infrastructure (WPKI), penggunaaan kriptografi pada level aplikasi atau penerapan kriptografi pada perangkat keras.Platform yang banyak digunakan adalah WAP dan Java ME baik melalui teknologi seperti Circuit Switched Data (CSD) atau General Packet Radio Service (GPRS). Oleh karena itu, pada makalah ini akan dibahas penerapan kriptografi dalam menjamin keamanan aplikasi mobile commerce.

Ancaman Keamanan Mobile commerce
Terdapat beberapa keamanan aspek keamanan
pada aplikasi mobile commerce yaitu:
  1. Kurangnya kesadaran pengguna akan resiko keamanan. Biasanya pengguna tidak begitu peduli mengenai aksinya misalnya tidak mengunakan pin pada telepon seluler.
  2. .Pencurian informasi personal yang mungkin tidak disadari pengguna. Hal ini dapat terjadi melalui pencurianperangkat mobile, bluetooth hacking,network sniffing dan sebagainya.
  3. Kurangnya kemampuan komputasi pada perangkat mobile.Hal ini mengakibatkan terbatasnya penerapan kriptografi yang dapat digunakan
  4. Adanya virus dan aplikasi yang tidak jelas sumbernya dan mungkinberbahaya .
  5. Transmisi nirkabel.Hal ini mengakibatkan sinyal transmisi dapat ditangkap oleh siapapun dengan bebas.Seorang penyadap dapat menggunakan radio mengintersepsi aliran data dari telepon selule ke BTS. Penyadap dapat mencoba menginterpretasi data,memodifikasi pesan, menahan pesan tau bahkan mencegah pesan sampai kepada pengguna
  6. Serangan man-in-the-middle-attack,dimana penyerang dapat mengintersepsi komunikasi antar dua pihak kemudian”menyerupai” salah satu pihak dengan cara bersikap seolah-olah ia adalah salah satu pihak yang berkomunikasi (pihak yang lainnya tidak menyadari kalau dia berkomunikasi dengan pihak yang salah). Serangan ini bisa saja dilakukan oleh penyerangn yang memiliki akses ke base station.
  7. Penyerang yang dapat mengintersepsi komunikasi, dapat saja menyimpan pesan tertentu kemudian mengirimkannya kembali di lain waktu.Hal ini memungkinkan penyerang untuk mencoba meyakinkan server bahwa dia adalah seorang pengguna yang terotentikasi.

Aspek Keamanan Mobile commerce
Hal yang penting pada aplikasi mobile commerce (dengan arsitektur umum client-server) dari sudut pandang keamanan adalah sebagai berikut:
  • Aplikasi menyediakan layanan yang berdasarkan pendaftaran (subscription). Untuk mendaftar user dapatmemberikan informasi seperti nomor kartu kredit atau informasi lainnya.Aplikasi harus melindungi informasi ini karena akan di proses di client dan akhirnya sampai ke server. Jika informasi pelanggan tersebut memenuhi persyaratan yang dibutuhkan maka pelanggan akan terdaftar dan informasi tersebut akan tersimpan pada basis data di server yang juga harus dilindungi keamanannya.
  • Pengguna yang sudah terdaftar dapat meminta informasi atau permintaan tertentu dari layanan yang didaftarnya.Oleh karena itu penggun membutuhkan cara tertentu untuk membuktikan indentitasnya kepada server sehingga dapat diverifikasi dengan menggunakan informasi yang tersimpan pada basis data di server.
  • Permintaan informasi dari client dan respon dari server mungkin saja mengandung informasi yang sifatnya sensitif. Contohnya jika seorang pengusaha melakukan transaksi bisnis yang menyangkut rahasia perusahaan dengan memanfaatkan server, maka pengusaha tersebut tidak mau orang lain mengetahui isi pesan selama transaksi dilakukan. Dengan kata lain kerahasian informasi harus dijaga.Aspek keamanan pada aplikasi mobile commerce dengan berbagai ancaman keamanan seperti yang telah dijelaskan diatas dapat diatasi dengan kriptografi karena kriptografi menyediakan beberapa aspek keamanan berikut :
a.  Kerahasiaan (confidentiality)
Layanan yang digunakan untuk menjaga isi pesan dari siapapun yang tidak berhak untuk membacanya. Layanan ini umumnya direalisasikan dengan cara mengenkripsi pesan menjadi bentuk yang tidak dapat dimengerti.

b. Integritas Data (data integrity)
Layanan yang menjamin bahwa pesan masih asli/utuh atau belum pernah dimanipulasi selama pengiriman. Dengan kata lain aspek keamanan ini dapat diungkapkan sebagai pertanyaan : “Apakah pesan yang diterima masih asli atau tidak mengalami perubahan (modifikasi)?”.Istilah lain yang serupa dengan data integrity adalah otentikasi pesan (message authentication).Untuk menjaga integritas data, sistem harus memilikikemampuan untuk mendeteksi manipulasi pesan oleh pihak-pihak yang tidak berhak, antara lain penyisipan, penghapusan, dan pensubstitusian data lain kedalam pesan yang sebenarnya.

c. Otentikasi ( Authentication)

Otentikasi adalah layanan yang untuk mengidentifikasi kebenaran pihak-pihak yang berkomunikasi (user authentication) dan untuk mengidentifikasi kebenaran sumber pesan (data origin authentication). Dua pihak yang saling berkomunikasi harus dapat mengotentikasi satu sama lain sehingga ia dapat memastikan sumber pesan. Pesan yang dikirim melalui saluran komunikasi juga harus diotentikasi satu sama lain sehingga ia dapat memastikan sumber pesan. Dengan kata lain, aspek keamanan ini dapat diungkapkan sebagai pertanyaan : “Apakah pesan yang diterima benar-benar berasal dari pengirim yang benar? ”.
Otentikasi sumber pesan secara implicit juga memberikan kepastian integritas data, sebab jika pesan telah dimodifikasi berarti sumber pesan sudah tidak benar. Oleh karena itu layanan integritas data selalu dikombinasikan dengan layanan otentikasi sumber pesan

d. Nirpenyangkalan (Nonrepudiation)
Nirpenyangkalan adalah layanan untuk mencegah entitas yang berkomunikasi melakukan penyangkalan, yaitu pengirim pesan menyangkal melakukan pengiriman atau penerima pesan menyangkal telah menerima pesan.


Kriptografi dan aplikasinya
Kriptografi adalah ilmu dan seni untuk menjaga kerahasian pesan dengan cara mengenkripsinya ke dalam bentuk yang tidak dapat dimengerti lagi maknanya [MUN06]. Berikut ini adalah teknik kriptografi dan aplikasinya yang dapat digunakan dalam menjamin keamanan pada mobile commerce:

1. Teknik kriptografi
Kriptografi dapat menyediakan aspek keamanan kerahasian, integritas, otentikasi dan nirpenyangkalan. Salah satu teknik kriptografi yang sudah lama dikenal adalah kriptografi kunci simetri yang menggunakan kunci rahasia yang sama untuk mengenkripsi dan mendekripsi pesan. Dengan demikian, dua pihak yang saling
berkomunikasi harus saling mempercayai dan merahasiakan kunci rahasia yang digunakan. Hal ini mengakibatkan timbulnya permasalahan bagaimana cara mendistribusikan kunci. Contoh algoritmanya RC4, RC5 untuk stream cipher dan AES, IDEA untuk block cipher. Untuk mengatasi permasalahan distribusi kunci tersebut berkembanglah teknik kriptografi kunci publik yang memungkinkan pengguna berkomunikasi secara aman tanpa perlu berbagi kunci rahasia. Pada teknik ini digunakan dua buah kunci yaitu kunci publik dan kunci privat.Kunci publik tidak rahasia dan digunakan untuk mengenkripsi pesan, sedangkan kunci privat bersifat rahasia dan digunakan untuk mendekripsi pesan.

2. Pertukaran kunci
Salah satu aplikasi kriptografi kunci publik
adalah pertukaran kunci simetri (session keys). Contoh algoritmanya adalah RSA dan Diffie- Hellman. Contoh protokol pertukaran kunci dengan menggunakan algoritma Diffie-Hellman adalah sebagai berikut:
a. Pelanggan memilih bilangan bulat acak yang besar x , dan mengirim hasil perhitungannya kepada agen perjalanan online:
X = gxmod n
b. Agen perjalanan online menghitung y bilangan bulat acak yang besar dan mengirim hasil perhitungan berikut kepada pelanggan:
Y = gymod n
c. Pelanggan menghitung
K = Yxmod n
d. Agen perjalanan online menghitung:
K = Xymod n

3. Tanda Tangan Dijital (DigitalSignature)
Aplikasi lain dari kriptografi kunci publik, yang dapat memberikan aspek keamanan yang telah
dijelaskan sebelumnya adalah tanda tangan dijital. Penandatanganan pesan dapat dilakukan dengan dua cara, yaitu dengan mengenkripsi pesan atau dengan cara menggunakan fungsi hash dan kriptografi kunci publik. Penandatanganan pesandengan cara mengenkripsinya menggunakan kriptografi kunci publik dapat mem berikan fungsi kerahasian pesan, otentikasi, dan nirpenyangkalan. Kerahasian pesan tentunya terjamin karena setelah dienkripsi pesan tidak dapat diketahui
maknanya. Agar dapat menjamin otentikasi maka pesan dienkripsi dengan kunci privat karena sifatnya rahasia. Dengan demikian, kebenaran pihak-pihak yang berkomunikasi dan kebenaran sumber pesan dapat dijamin. Agar tanda-tangan dijital dapat memberikan fungsi integritas data maka tanda tangan dijital memanfaatkan fungsi hash. Fungsi hash adalah
fungsi yang menerima masukan string dan menghasilkan string keluaran yang disebut dengan nilai hash. Jika string masukan dari fungsi hash diubah makan akan dihasilkan nilai
hash yang berbeda. Dengan demikian fungsi integritas pesan dapat diberikan oleh fungsi hash. Skema pemberian tanda tangan dijital dengan fungsi hash dapat dilihat pada gambar 1.
Langkah-langkah pemberian tanda tangan dijital
adalah sebagai berikut:
a. Pesan yang diubah terlebih dahulu menjadi message digest MD.
b. Message digest MD dienkripsikan dengan algoritma kunci public menggunakan kunci rahasia (SK) pengirim menjadi tanda tangan dijital S.
c. Pesan M disambung (append) dengan

dengan dua cara, yaitu dengan mengenkripsi pesan atau dengan cara menggunakan fungsi hashdan kriptografi kunci publik. Penandatanganan pesan dengan cara mengenkripsinya menggunakan kriptografi kunci publik dapat memberikan fungsi kerahasian pesan, otentikasi, dan nirpenyangkalan. Kerahasian pesan tentunya terjamin karena setelah dienkripsi pesan tidak dapat diketahui maknanya. Agar dapat menjamin otentikasi maka pesan dienkripsi dengan kunci privat karena sifatnya rahasia. Dengan demikian, kebenaran pihak-pihak yang berkomunikasi dan kebenaran sumber pesan dapat dijamin. Agar tanda-tangan dijital dapat memberikan fungsi integritas data maka tanda tangan dijital memanfaatkan fungsi hash. Fungsi hash adalah fungsi yang menerima masukan string dan menghasilkan string keluaran yang disebut dengan nilai hash. Jika string masukan dari fungsi hash diubah makan akan dihasilkan nilai hash yang berbeda. Dengan demikian fungsi integritas pesan dapat diberikan oleh fungsi hash. Skema pemberian tanda tangan dijital dengan fungsi hash dapat dilihat seperti berikut ini.
Langkah-langkah pemberian tanda tangan dijital
adalah sebagai berikut:
a. Pesan yang diubah terlebih dahulu menjadi message digest MD.
b. Message digest MD dienkripsikan dengan algoritma kunci public menggunakan kunci rahasia (SK) pengirim menjadi tanda tangan dijital S.
c. Pesan M disambung (append) dengan tanda tangan dijital S.
Selanjutnya, langkah-langkah untuk melakukan otentikasi adalah sebagai berikut:
Tanda tangan dijital S didekripsi dengan
a. menggunakan kunci publik (PK) pengirim pesan, menghasilkan message digest semula, yaitu MD.
b. Pesan M diubah menjadi message digest MD’ menggunakan fungsi hash satu arah yang sama dengan fungsi hash yang digunakan oleh pengirim.
c. Jika MD’ = MD, berarti pesan yang diterima Otentik dan berasal dari pengirim yang benar. Apabila pesan M yang diterima sudah berubah
maka MD’ yang dihasilkan dari fungsi hash berbeda dengan MD semula. Ini berarti pesan tidak asli lagi. Apabila pesan M tidak berasal dari orang yang sebenarnya maka MD akan berbeda dengan MD’ karena kunci publik yang digunakan oleh penerima pesan tidak berkoresponden dengan kunci privat pengirim. Andaikan pengirim pesan M menyangkal telah mengirim pesan, maka sangkalan tersebut dapat
dibantah dengan cara berikut: jika ia tidak mengirim pesan, berarti ia tidak mengenkripsi MD dengan kunci privatnya. Faktanya kunci publik yang berkoresponden dengan kunci privat pengirim akan menghasilkan MD=MD’ ini berarti MD memang benar dienkripsi oleh pengirim karena hanya pengirimlah yang mengetahui kunci privatnya sendiri.

4. Infrastruktur Kunci Publik (Public Key Infrastructure)
Pada sistem kriptografi kunci publik terdapat permasalahan dalam distribusi kunci publik yang juga disebut dengan man-in-the-middle-attack. Untuk lebih jelasnya, misalkan Alice dan Bob mengirim kunci publiknya masing-masing melalui saluran komunikasi. Orang ditengah misalnya Carol, memutus komunikasi antara Bob dan Alice lalui ia berpura-pura sebagai salah satu pihak (Alice atau Bob). Carol (yang menyamar sebagai Alice) mengirimkan kunci publiknya kepada Bob (Bob percaya itu adalah kunci publik milik Alice), dan Carol (yang menyamar sebagai Bob) mengieimkan kunci publiknya kepada Alice (Alice percaya itu adalah kunci public milik Bob). Selanjutnya Carol mendekripsi pesan dari Bon dengan kunci privatnya, menyimpan salinannya, lalu mengenkripsi pesan tersebut dengan kunci publik Alice dan mengirim dcipherteks tersebut kepada Alice. Alice dan Bob tidak dapat mendeteksi keberadaan Carol.
Serangan yang mirip dengan man-in-the-middle attack dan umum terjadi pada kunci publik tanpa identitas adalah penyamaran (impersonation attack). Seseorang yang memiliki kunci publik orang lain dapat menyamar seolah-olah dia adalah pemilik kunci tersebut. Contohnya dalam aplikasi e-commerce pemesanan tiket dengan dengan sistem pembayaran menggunakan kartu kredit. Pelanggan mengirimkan informasi kartu kredit melalui website agen perjalanan online. Selama pengiriman, informasi kartu kredit tersebut dilindungi dengan cara mengenkripsinya dengan kunci publik agen perjalanan online. Bagaimana pelanggan memastikan website tersebut memang benar milik agen perjalanan online dan bukan milik pihak lain yang menyamar dengan tujuan untuk mencuri informasi kartu kredit.
Karena terdapat permasalahan tersebut, maka dalam penerapan kriptografi kunci publik dibutuhkan pendukung yang dinamakan infrastruktur kunci publik (PKI). PKI adalah sebuah pengaturan yang menjamin penggunaan kunci publik bagi pihak-pihak yang terlibat dengan sistem penggunaan sistem keamanan. PKI juga mengikat kunci publik dengan identitas pengguna. Dengan PKI, setiap pengguna dapat mengotentikasi satu sama lain. Informasi di dalam sertifikat yang dikeluarkan oleh PKI digunakan untuk enkripsi dan dekripsi pesan antara pihak-pihak yang berkomunikasi. Komponen PKI adalah pengguna (pemohon sertifikat dan pemakai sertifikat), sertifikat dijital, CA (Certification Authority yaitu pihak yang mengeluarkan sertifikat dijital) dan direktori untuk menyimpan sertifikat dijital dan CRL (Certificate Revocation List berisi nomor seri sertifikat dijital ynag ditarik/ sudah kadaluarsa dan dianggap tidak sah). CA biasanya adalah institusi keuangan (seperti bank) atau institusi terpercaya. PKI menyediakan cara penstrukturan komponen-komponen ini dan mendefenisikan bermacam-macam dokumen dan protokol.
Sertifikat dijital adalah dokumen dijital yang
berisi informasi name subjek (perusahaan / individu yang disertifikasi), kunci publik subjek, waktu kadaluarsa sertifikat (expired time), algoritma yang digunakan untuk menandatangani sertifikat dan informasi relevan lain seperti nomor seri sertifikat dan lain sebagainya. Standar untuk sertifikat telah disetujui oleh ITU (International Telecommunication United) dan dinamakan X.509.
Sertifikat dijital tidak rahasia dan tersedia secara publik dan disimpan oleh CA pada direktori (certificate repositories). Salinan sertifikat ini dimiliki juga oleh pemohon sertifikat. Contoh sebuah sertifikat dijital: Sebuah agen perjalanan online membawa kunci publiknya dan mendatangi CA untuk meminta sertifikat dijital. CA mengeluarkan sertifikat dijital dan Tentunya tidak mungkin hanya ada satu CA untuk melayani sertifikat dijital dari seluruh dunia.

Pada level tertinggi terdapat root yang merupakan root certificate authority, yaitu Internet Policy Registration Authority (IRPA). Root mensertifikasi CA level satu (RA / Registry Authoriries) menggunakan kunci privat root (root key). RA bertindak sebagai policy creation authority, yaitu organisasi yang membuat kebijakan untuk memperoleg sertifikat dijital. Sebuah RA mungkin mencakup beberapa area seperti negara bagian, negara atau benua. RA menandatangai sertifikat digital untuk CA di bawahnya dengan menggunakan kunci privat RA. CA menandatangani sertifikat digital untuk individu atau organisasi dengan menggunakan
kunci privat CA. Selain itu, CA bertanggung jawab untuk otentikasi sertifikat digital, sehingga CA harus memeriksa informasi secara hati-hati sebelum mengeluarkan sertifikat digital. Gambar 2 memperlihatkan rantai sertifikat di dalam PKI. Verifikasi sertifikat digital dilakukan dari daun menuju akar (root). Misalkan pelanggan memer lukan kunci publik agen perjalanan online untuk melakukan pemesanan tiket, lalu dia mencari dan menemukan sertifikat agen perjalanan tersebut ditandatatangani oleh CA-5. Pelanggan kemudian menandatangani CA-5 dan meminta bukti legitimasi CA-5. CA-5 merespon dengan memperlihatkan sertifikat dijital yang diperoleh dari RA-2, di dalamnya ada kunci publik CA-5 yang ditandatangani oleh RA-2. Dengan menggunakan kunci publik CA-5, pelanggan dapat memverifikasi sertifikat dijital agen perjalanan yang ditandatangani oleh CA-5 dan mendapatkan hasil bahwa sertifikat tersebut sah. Langkah berikutnya, pelanggan mendatangi RA-2 dan meminta nukti legitimasi RA-5. RA-2 merespon dengan memperlihatkan sertifikat dijital yang diperoleh dari root , di dalamnya terdapat kunci publik RA-2 yang ditandatangani oleh root. Pelanggan memverifikasi sertifikat dijital RA-2 dengan menggunakan kunci publik root dan mendapatkan hasil bahwa sertifikat dijital tersebut sah. Pelanggan akhirnya yakin bahwa dia sudah memilliki kunci publik agen perjalanan. Rantai sertifikat yang menuju ke root disebut chain of trust atau certification path

5. Hambatan Penerapan Kriptography Pada Mobile Commerce.

Pada bagian sebelumnya dapat dilihat aplikasi kriptografi yang dapat digunakan untuk komunikasi yang aman pada aplikasi mobile commerce. Apakah aplikasi kriptografi ini dapat langsung diterapkan?
Penerapan kriptografi pada jaringan nirkabel
yang merupakan lingkungan aplikasi mobile commerce digunakan, lebih sulit dari pada penerapan kriptografi pada jaringan kabel karena terdapat berbagai batasan. Pada jaringan kabel terdapat beberapa asumsi yaitu client memiliki kemampuan komputasi, bandwith, latency yang tinggi dan tempat pemyimpanan yang cukup. Hal ini bertolak belakang dengan perangkat nir kabel yang memiliki bandwith terbatas, kemampuan komputasi terbatas, memiliki sumber tenaga berupa baterai. Oleh karena itu, banyak aplikasi kriptografi pada jaringan kabel yang harus dioptimasi supaya berjalan dengan efisien pada perangkat nir kabel tetapi harus compatible dengan aplikasi pada jaringan kabel.
Karena adanya keterbatasan kemampuan komputasi maka algoritma kriptografi yang dapat digunakan pada aplikasi mobile commerce menjadi terbatas bergantung dari karakteristik algoritma tersebut. Oleh karena itu, algoritma yang digunakan harus membutuhkan biaya komputasi yang kecil, tetapi tetap dapat memberikan jaminan keamanan yang dibutuhkan.
Karena adanya keterbatasan latency yang tinggi pada jaringan nirkabel, maka protokol kriptografi yang diterapkan sebaiknya memiliki jumlah pesan dan pertukaran pesan yang lebih sedikit. Hal ini dapat dilihat pada penggunaan WTLS kelas 3 yang menggunakan handshake sebagai permintaan sertifikat (berbeda dengan SSL).
Keterbatasan bandwith juga membatasi ukuran pesan. Hal ini mengakibatkan sertifikat pada aplikasi seperti mobile commere sedikit berbeda dan pengiriman rantai sertifikat misalnya url sertifikat tidak dilakukan.
Keterbatasan yang keempat adalah ruang penyimpanan yang terbatas pada perangkat seperti telepon seluler dan PDA. Oleh karena itu, dalam menerapkan kriptografi kode yang dibutuhkan harus diminimumkan misalnya memanfaatkan kode yang dioptimasi untuk platform perangkat mobile. Solusi lainnya adalahmengurangi ukuran kunci dan menyimpan sertifikat pada client. Karena adanya keterbatasan yang telah dijelaskan di atas maka, tingkat jaminan keamanan yang diimplementasikan hendaknya disesuaikan dengan nilai dari transaksi yang dilakukan karena dalam menjamin keamanan ini sering kali dibutuhkan resource yang relatif besar. Pada gambar 1 dapat dilihat berbagai jenis aplikasi dengan nilai transaksinya serta prioritas tingkat keamanannya.

6. Kriptografi pada Teknologi pendukung Mobile commerce
6.1 SIM Application Toolkit (SAT)
SIM misalnya pada GSM menyimpan data personal pemilik kartu dan dapat diimplementasikan dalam bentuk kartu cerdas (smart card) yang sering disebut kartu SIM. SIM toolkt merupakan spesifikasi SIM dan fungsionalitas terminal yang memungkinkan
SIM mengendalikan perangkat mobile untuk beberapa fungsi tertentu. SIM ApplicationToolkit (SAT) digunakan untuk membuat aplikasi mobile commerce berbasis Short Message Service (SMS).
Dalam sistem berbasis SAT komunikasi antara mobile client dan penyedia layanan dilakukan melalui SMS. SMS digunakan untuk mengidentifikasi dan mengotorisasi pembayaran. Pengguna diidentifikasi dan diotentikasi oleh layanan otentikasi GSM sehingga operator seluler GSM bertindak sebagai perantara antara mobile client, server untuk pembayaran, dan penjual layanan.

6.2 WAP

Adapun area yang berhubungan dengan keamanan pada WAP 1.x adalah WTLS, Wireless Identity Module, WAP PKI, WML Script signText, dan keamanan end-to-end pada transport Layer.

a. WPKI (Wireless Public KeyInfrastructure)
WPKI merupakan ekstensi dari PKI, yang dibuat Khusus untuk jaringan nirkabel. WPKI memerlukan komponen yang sama dengan PKI yang telah dijelaskan sebelumnya. Namun pada WPKI, registration authority (RA) diimplementasikan berbeda dan terdapat entitas baru yaitu PKI Portal. PKI Portal dapat seperti sistem pada dua jaringan seperti halnya WAP gateway. PKI Portal berfungsi sebagai RA dan bertangung jawab untuk menterjemahkan pesan dari client kepada RA dan berinteraksi dengan CA pada jaringan kabel. RA mevalidasi aplikasi, apakah permintaannya untuk memperoleh sertifikat dijital dikabulkan atau ditolak.

b. WTLS (Wireless Transport Layer Security )

Protokol WTLS merupakan protokol yang mendukung WPKI dan didesain untuk menjamin keamanan komunikasi dan transaksi melalui jaringan nirkabel. Seperti dapat dilihat pada gambar 5, WTLS terdapat pada transport Layer antara WAP client pada perangkat mobile dengan WAP server pada WAP gateway. WTLS menyediakan fungsionalitas yang mirip dengan fungsi Layer keamanan pada internet yaitu TLS/SSL. WTLS dibuat berdasarkan TLS dan dioptimasi untuk komunikasi nirkabel, Mendukung datagram, memiliki protocol handshake yang dioptimasi dan memiliki mekanisme dynamic key refreshing [HAM01].

c. Record Protocol
Record Protocol dibagi menjadi empat client
protokol yaitu alert, application, change cipher dan handshake protocol. Protokol ini menerima data yang akan ditransfer. Data ini akan dikompresi, kemudian di-hash dengan MAC (fungsi hash satu arah yang menggunakan kunci rahasia dalampembangkitan nilai hash). Selanjutnya data yang telah ditambah dengan nilai hash dienkripsi dan ditransmisikan.
Ketika data diterima pada record protocol di tempat tujuan, data tersebut akan didekripsi,diverifikasi, didekompresi kemudian diteruskan ke layer diatasnya. Teknik yang digunakan untuk kompresi, otentikasi dan enkripsi opsional dan ditentukan pada saat handshake. Tidak seperti TLS tidak ada fragmentasi pada protokol ini,karena fragmentasi dan asembli dilakukan pada layer transport.

d. Alert Protocol
Protokol ini digunakan untuk mengirim alert yang berbeda antara client dan server. Sebuah alert dapat berupa pesan untuk menutup koneksi antara client dan server atau sebuah pesan kesalahan. Pesankesalahan dapat berisi informasi seberapa parah kesalahan tersebut dandeskripsi perma salahannnya. Terdapat tiga jenis kesalahan yaitu warning, critical dan fatal.

e. Handshake Protocol

Terdapat tiga jenis handshake yaitu full abbreviated handshake optimised handshake. Selain itu, terdapat Service Data Unit (SDU) yang digunakan ketika komunikasi terjadi menggunakan datagram. SDU terdiri dari beberapa pesan handshake yang digabungkan karena memiliki tujuan yang sama. Selama proses handshake dilakukan maka ditentukan informasi mengenai versi protokol, algoritma kriptografi dan informasi apakah otentikasi digunakan dan kunci public.
Salah satu contoh arsitektur mobile commerce yang memanfaatkan WAP 1.x dapat dilihat pada gambar 14. Ketika terjadi transaksi yang
melibatkan data rahasia seperti nomor credit card,password, alamat, data ditransmisikan lewat jaringan, sehingga pertukaran informasi ini harus dijamin keamanannya. Ada beberapa bagian dimana masalah keamanan memiliki peran penting yaitu bagian yang berhubungan dengan komunikasi lewat jaringan nirkabel,

f. Koneksi HTTPS
HTTPS merupakan koneksihttp yang menggunakan SSL dan banyak digunakan pada aplikasi e-commerce. Pada MIDP terdapat implementasi SSL yang disebut KSSL (kilobyte SSL) dan mulai digunakan sejak MIDP versi1 .0.3
Implementasi HTTPS pada MIDP 2.0 merupakan implementasi http yang diatas salah satu dari protokol TLS 1.0, SSL 3.0, WTLS, WAP TLSProfile and Tunneling Spesification[KNU02]. Koneksi yang aman pada MIDP 2.0 diimplementasikan dengan menggunakan kelas Antara lain HTTPSConnection, SecurityInfo,dan Certificate. Keamanan dari HTTPS sangat bergantung pada cipher suite. Contoh cipher suite TLS_ RSA_ WITH_ RC4_128_SHA,berarti digunakan protokol TLS, RSA digunakan untuk pertukaran kunci, RC4 dengan panjang session key 128 bit, dan SHA-1 digunakan sebagai fungsi hash. Protokol TLS dimulai dengan proses handshake yang pada prinsipnya sama dengan penjelasan WTLS di atas. Pada gambar 16 dapat dilihat contoh data dengan HTTPS dan tanpa HTTPS yang berhasil ditangkap oleh network sniffer.


g. Kriptografi pada level aplikasi
Pada J2SE, enkripsi dapat digunakan pada aplikasi dengan memanfaatkan Java Crypt ographic Extension(JCE). JCE menyediakan framework dan implementasi enkripsi,key generation and agreement, dan algoritma MAC. JCE mendukung algoritma enkripsi kunci simetri, asimetri, block cipher dan stream cipher. Namun, JCE tidak dimasukkan sebagai bagian dari JAVA ME karena selain ukurannya besar, JCE juga memerlukan memori yang tidak sedikit. SATSA merupakan JSR yang relatif baru dan dapat diimplementasikan seluruhnya dalam bentuk perangkat lunak. Akan tetapi, menulis sendiri kode enkripsi dan dekripsi pada Java ME pun tidak disarankan karena terdapatnya kesulitan yang kompleks dalam memilih dan mengimplementasikan algoritma kriptografi dengan berbagai batasan yang ada. Namun pengembang dapat memanfaatkan toolkit yang dikembangkan oleh vendor lain
Pada CDC sebagian kecil dari paket pada JCA (Java Cryptography Architecture) dapat didukung secara opsional. Namun, beberapa API penting tidak tersedia sehingga beberapa algoritma tidak dapat diimplementasikan dan kalaupun bisa, kemungkinan besar kurang efisien.

7. Analisis

Pada WAP, keamanan dijamin lewat protokol WTLS (pada WAP 1.x) dan WAP TLS Profile (pada WAP 2.0). Protokol ini menyediakan layanan keamanan integritas data, kerahasian dan otentikasi. Salah satu persoalan keamanan pada WAP 1.x yang dikenal dengan “WAP gap” disebabkan oleh adanya saat dimana pesan berada dalam bentuk plainteks pada Wap gateway ketika sedang dikonversi. Namun, hal ini sudah diatasi pada WAP 2.0.
Pada SIM kebutuhan keamanan dapat mengatasi masalah keamanan umum pada transport Layer seperti peer authentication,integritas pesan, deteksi balasan dan integritas urutan, bukti penerimaan dan kerahasiaan pesan. Setiap pesan dari aplikasi dibagi ke dalam paket yang masing-masing dijamin keamanannya dengan melindungi isi pesan dan menambahkan header untuk keamanan. Akan tetapi,irpenyangkalan tidak didukung sehingga haru diimplementasikan pada level aplikasi. Pengirim dan penerima pesan diidentifikasi sehingga penyerang tidak dapat mencoba memalsukan kecuali jika mengkloning kartu SIM. Jadi pesan SMS dapat digunakan untuk otentikasi. Lebih jauh lagi data SMS dienkripsi untuk menjamin kerahasian data. Meskipun demikian, perlindungan ini berakhir pada
jaringan, tidak ada keamanan end-to-end dan operator seluler dan infrastrukturnya harus dipercaya ketika tidak ada lagi perlindungan terhadap pesan SMS. Java ME menyediakan beberapa tingkat keamanan seperti class loader, byte code verifier,dansecurity manager. Tingkat keamanan ini melindungi sistem dari program yang tidak terjamin keamanannya. Kelebihan JAVA ME dibandingkan dengan WAP adalah adanya keamanan end-to-end (versi 1.x), penggunaan jaringan yang lebih sedikit dan mendukung enkripsi isi pesan. Pada WAP 1.x, pesan dari perangkat mobile dienkripsi pada WTLS dan akan didekripsi pada data TLS. Selama konversi berlangsung pada gateway, data berada pada bentuk plainteks. Hal ini tidak diperlukan pada Java ME sehingga memungkinkan keamanan end-to-end.Penggunaan jaringan pada Java ME lebih sedikit dibandingkan dengan WAP karena Java ME memungkinkan pemrosesan data dan pembangkitan GUI secara lokal, tidak seperti WAP yang membutuhkan koneksi ke jaringan untuk setiap pemrosesan data (pada WAP bisnis logik aplikasi diambil dari web server). Fitur ini mengurangi kemungkinkan data yang hilang atau dicuri pada Java ME. Selain itu, pada Java ME juga dimungkinkan enkripsi content-based karena aplikasi Java ME dapat memproses data sebelum dikirimkan ke jaringan sehingga isi pesan mungkin saja dienkripsi jika dibutuhkan HTTPS diperlukan pada MIDP 2.0 dirilis pada tahun 2002. Implementasi dari HTTPS sebaiknya menghindari spesifikasi WTLS untuk menghindari celah keamanan seperti WAP-gateway.Adakalanya HTTPS tidak dapat memenuhi kebutuhan aplikasi misalnya untuk kebutuhan aplikasi berikut:
a. Content based security:
HTTPS, SSL, dan TLS merupakan protokol keamanan yang tidak berdasarkan content.Ide dasa rnya adalah mengamankan saluran komunikasi, dengan demikian akan mengamankan semua hal yang melewati semua saluran tersebut. Pendekatan ini memiliki beberapa permasalahan antara lain:
1. Harus dibangun koneksi langsung antara client dan server
Jika aplikasi kita memiliki banyak perantara untuk menyediakan value added service, maka lebih dari satu koneksi HTTPS harus disambungkan. Hal ini tentunya menimbulkan potensi adanya lubang keamanan,tetapi juga menimbulkan kesulitan dalam manajemen kunci public sertifikat. Contohnya sebuah aplikasi pada sebuah perusahaan yang memungkinkan pegawai yang bekerja di luar perusahan melakukan pembelian barang secara online melalui aplikasimobile commerce. Akan tetapi, untuk dapat melakukan pemesanan, pegawai harus mendapatkan tanda tangan dijital dari manajer keuangan sebagai bukti bahwa permintaan terse but sudah diverifikasi dan disetujui. Permintaan dari pelanggan yang sudah ditandatangani manajer keuangan akan diverifikasi oleh bank. Kemudian bank akan menandatangani status pembayarandar permintaan pegawai. Selan jutnya, permintaan pegawai yang sudah ditandatangani bank akan disampaikan kepada toko online. Sesudah memverifikasi tanda tangan dari bank, maka toko online dapat mengirimkan barang yang diminta pegawai.
2. Terdapat kebutuhan semua isi pesan harus dienkripsi.
3. HTTPS tidak fleksibel untuk aplikasi yang memerlukanjaminan keamanan dan performansi khusus. HTTPS kurang fleksibel untuk aplikasi yang membutuhkan handshake dan mekanisme pertukaran kunci khusus.


b. Distributed access control:
Aplikasi mobile adakalanya berinteraksi dengan lebih dari satu server, mengambil informasi yang dibutuhkan dari server-server tersebut, kemudian menyusunnya untuk ditampilkan kepada pengguna. Setiap penyedia informasi mungkin memiliki protokol otentikasi dan otorisasi yang berbeda. Tentu saja untuk melakukannya secara manual pada setiap server akan merepotkan pengguna.