Arsip untuk Maret, 2008

Keamanan sistem kripto

Saat ini saya sedang mencoba menggali mengenai apa saja syarat-syarat yg harus dipenuhi agar sebuah sistem kripto ‘aman’? Bingung juga…, karena sumber (textbook atau paper) yg berbeda seringkali mendaftar syarat-syarat yg berbeda. Karena bingung, maka saya coba tulis di sini saja. Barangkali ada pembaca yg dapat memberikan petunjuk :D .

Trus, karena belum nemu kriteria, maka saya akan mulai dulu dengan menuliskan apa yg dimaksudkan dengan ‘aman’ dalam konteks sistem kripto.

Mengenai keamanan sistem kripto, kita dapat memahaminya dengan merujuk pada ide-ide Shannon mengenai keamanan sistem kripto (dipublikasikan dalam Communication Theory of Secrecy Systems, 1949). Menurut Shannon, ada tiga macam keamanan dalam sistem kripto:

  1. Keamanan secara komputasional (computational security). Ukuran keamanan ini menyatakan seberapa besar upaya/effort komputasi yang diperlukan untuk memecahkan suatu sistem kripto. Persisnya, kita menyatakan sebuah sistem kripto aman secara komputasional jika algoritma terbaik (paling efisien) untuk membongkarnya memerlukan sedikitnya sejumlah N operasi, dengan N merupakan bilangan yang sangat besar. Masalah dalam definisi ini adalah: sangat sulit menemukan algoritma terbaik ataupun membuktikan bahwa suatu algoritma merupakan algoritma terbaik. Dalam praktek, peneliti menyatakan keamanan komputasional sistem kripto hanya terhadap berbagai tipe serangan tertentu.
  2. Provable security. Yaitu membuktikan keamanan dengan cara mereduksi problem keamanan ini ke dalam problem lain. Dengan kata lain, kita harus menunjukkan bahwa: jika suatu sistem kripto berhasil dipecahkan dengan suatu cara, maka problem lain (yg berdasarkan kajian yg kokoh telah dinyatakan sulit utk dipecahkan) juga dapat dipercahkan. Jadi, ‘aman’ dlm pengertian ini adalah aman relatif terhadap problem lain, bukan aman secara absolut.
  3. Unconditional security. Sistem kripto dinyatakan aman dalam pengertian ini jika tidak dapat dipecahkan meskipun dengan upaya dan sumber daya komputasi yg tidak terbatas.

Jadi, klaim keamanan sistem kripto harus menunjukkan dengan jelas tipe keamanannya. Karena terdapat berbagai jenis tipe serangan yg berbeda, maka keamanan (atau ketidakamanan) juga harus dinyatakan berdasarkan tipe serangan tersebut.

Misal: vigenere cipher (salah satu jenis cipher klasik) tidak aman secara komputasional terhadap ciphertext-only attack.

Sumber: Cryptography; Theory and Practice, Douglas Stinson

Komentar (6)

Putra Indonesia Juara!

Ini email dari Pak Trio Adiono

Alhamdulillah Tim Garuda Parahiyangan dan CREW dari STEI-ITB masing-masing meraih juara I (meraih IEICE Communication Society Award)
dan Juara II (meraih “LSI of the Year for Student” dari “The Semiconductor Industry Newspaper”) pada Microchip/LSI Design Contest ke 11 di Okinawa (http://www.lsi-contest.com/index_e.html). Lomba ini merupkan lomba chip desain tingkat Internasional yang beberapa jurinya berasal dari perusahaan-perusahaan multinasional dan besar dalam industri Elektronika, seperti Sony, Renesas, Synplicity, Xilinx dll.

Lomba tahun ini bertopik merancang chip untuk sekuriti yang banyak dipakai di Industri IT, baik internet, hand-phone, wireless dan lain sebagainya yaitu rancangan RSA encoder-decoder. Chip yang dirancang memiliki tingkat kesulitan yang sangat tinggi, sehingga president dari Sony Semiconductor, yang terkenal dengan produk Play Station3-hand Phone
dan TV-nya, datang langsung untuk melihat dan bertindak sebagai juri dalam lomba ini. Kategori penilaian meliputi Ide Baru Rancangan dan Kemungkinannya dalam aplikasi industri. Yang lebih mengesankan lagi adalah semua tim dari Indonesia merupakan mahasiswa S1, dimana tim lainnya sebagian besar adalah mahasiswa Master, bahkan dari perwakilan industri. Hasil karya tim indonesia juga akan di undang secara khusus untuk tampil di jurnal terkemuka bidang elektronika di Jepang, yaitu IEICE (http://www.ieice.org/eng/index.html) dan diliput di majalah Design Wave Magazine, yaitu merupakan majalah referensi utama bagi engineer bidang electronic design di Jepang. Tim Garuda Parahiyangan, beranggotakan Oky Firmansyah, Andry Ongkinata dan Bagus Prasetyo Wibowo, mengajukan rancangan yg berjudul ” RSA Enchiper Hardware Design Using Interleaved Algorithm with Dynamic Masking”. Sementara Time Crew, yang beranggotakan Iput Heri Kurniawan, Asep Bagja Nugraha dan Randy Saut Purba, membuat rancangan berjudul “RSA Hardware Implementation Based   nPipeline Architecture of Montgomery’s Algorithm”. Kedua Tim dipimpin langsung oleh Dr. Trio Adiono, yang membimbing langsung mahasiswa dalam membuat rancangan mereka melalui kuliah tingkat akhir “Perancangan VLSI”
di STEI ITB. ITB juga mendapat kehormatan bahwa dari 14 juri yang ada, salah satunya dari ITB, yaitu Dr. Sarwono Sutikno, yang pada lomba-lamba
sebelumnya memimpin tim-tim dari ITB. Diharapkan prestasi ini dapat mengantar ITB menjadi “World Class University”, yang kiprahnya dikenal di dunia Internasional. Dan juga diharapkan dapat membangkitkan Industri Elektronika Nasional, dan khususnya dalam chip desain yang diupayakan oleh Pusat Mikroelektronika ITB melalui berbagai programnya. Kedua Tim juga di dukung oleh perusahaan nasional untuk dapat mengikuti lomba tersebut, yaitu PT. Indosat, PT Harif, PT Graha Sarana dan berbagai pihak, PPI Okinawa, IOM ITB dan Alumni ITB.

Selamat! Semoga putra2 bangsa ini dapat mengabdikan ilmunya untuk kemajuan Indonesia.

Komentar (5)

Teka teki matematika

Hiburan waktu luang untuk blogger, khususnya utk kaisar matematika (ayo jawab, Mas!). Ada teka-teki menarik dari dunia maya :

Gue gak nyangka kalo 2 + 2 = 5 itu bisa dibuktiin secara matematis! Selama ini elo setuju kan kalo 2 + 2 itu sama dengan 4? Gue akhirnya nemuin rumus pembuktian untuk hal itu! Percaya gak lo…? Baca aja pelan-pelan dan jangan lupa corat-coret di kertas kalo elo emang penasaran!!

  1. Pertama-tama
    Pikirkan angka a. Angka apa aja.
  2. Sekarang bikin angka b.
  3. Angka a harus sama dengan b. Catet tuh: a = b
  4. a*a = b*a. Ya kan? Angkanya sama loh.
  5. Karena angka itu sama di kedua sisi, boleh kan gue kasih sesuatu?
    Nih, a*a – b*b = b*a – b*b. Perhatikan - b*b yang sama di kedua sisi.
  6. Kalo difaktorkan, persamaan kita menjadi (a+b)*(a-b) = b(a-b).
  7. Dari persamaan tersebut, kita bisa “mencoret” angka yang sama, yaitu (a-b), sehingga persamaannya menjadi: (a+b)*(a-b) = b(a-b).
  8. Setelah dicoret, hasilnya menjadi (a+b) = b
  9. Sekali lagi, jika gue kasih angka yang sama di kedua sisi, sama aja kan? Nih dia, (a+b) +3 = b + 3
  10. Sekarang misalnya kita menganggap kalo a = 1. Catet dulu tuh.
  11. Karena a = b , maka b = 1 juga kan?
  12. Masukkan angka itu ke persamaan no 9 –> (1+1) +3 = 1 + 3
  13. 5 = 4

NAH LO!! 5 = 4 !!?

BERARTI 2 + 2 = 4. KARENA 4 = 5 , MAKA TERBUKTILAH BAHWA 2 + 2 = 5 !!

…masih gak percaya? Berikan komentarmu!

Sumbernya dari sini

Komentar (77)

Kerja dan Belajar

Kategori ‘kerja dan belajar’ kok isinya hanya 1 tulisan ya? Berartu saya kurang kerja dan belajar…

Komentar (2)

Kartu Debit. Aman gak ya?

Sampai sekarang saya masih belum mengerti tentang cara pengamanan kartu debit. Ini pernah ditulis oleh Primus di sini. Saat ini saya menggunakan kartu debit BNI. Seingat saya, dua tahunan yang lalu, cara pembayarannya adalah: pengguna harus memasukkan PIN sebelum approval. Beberapa waktu setelahnya, tiba-tiba hal ini berubah. Otentikasi menggunakan PIN dihilangkan dan diganti dengan pembubuhan tanda tangan. Bedanya, PIN dimasukkan sebelum pembayaran, sedangkan pembubuhan tanda-tangan dilakukan setelah proses pembayaran terjadi. Jadi, pembubuhan tanda-tangan bukan merupakan proses otentikasi.

Beberapa waktu lalu saya mengunjungi sebuah toko yg lama tidak saya kunjungi, ternyata toko tersebut masih menggunakan PIN untuk otentikasi. Tampaknya, BNI menyerahkan pilihan mekanisme PIN atau tanda tangan kepada pihak toko atau retailer. Hal yang sama sepertinya juga dilakukan oleh bank-bank lainnya.

Wah, jadi khawatir juga, nih. Kalau kartu ATM/debit saya tercuri trus bagaimana, dong?

Jadi, permasalahannya adalah: Apakah PIN merupakan mekanisme pengamanan yang wajib (mandatory) untuk kartu ATM dan kartu debit?

Hingga saat ini, sebagian besar kartu ATM dan kartu debit di Indonesia masih menggunakan teknologi magnetic strip. Seluruh data yang dipergunakan dalam proses transaksi disimpan di dalam magnetic strip dalam bentuk plaintext (tidak terenkripsi). Jadi, penyerang dapat dengan mudah membaca data-data tersebut hanya dengan menggunakan alat pembaca kartu magnetik. Selanjutnya, dengan mudah pula penyerang tersebut membuat kartu debit palsu.

Di sinilah fungsi utama PIN. Meskipun data-data dalam kartu dapat di-cloning, kita masih memiliki satu faktor keamanan lagi, yaitu PIN. Account kita masih tetap aman selama PIN tersimpan dengan aman.

Jadi bagaimana dengan transaksi kartu debit tanpa PIN?

Dalam kasus ini berarti tidak ada mekanisme otentikasi dengan faktor ‘what you know’ (yaitu PIN). Yang ada adalah faktor ‘what you have’ (yaitu kartu magnetik itu sendiri), yang tidak aman berdasarkan penjelasan sebelumnya . Jadi transaksi dengan kartu debit tanpa PIN tidak aman.

Jadi mengapa hal ini masih tetap dijalankan? Menurut saya ada beberapa sebab:

  1. Penggunaan signature justru bertujuan untuk menghindari ter-expose atau terbukanya PIN yang terlampau sering. PIN hanya dipergunakan di ATM, tidak di supermarket. Jadi kemungkinan terjadinya pencurian PIN menjadi lebih kecil.
  2. Kemudahan. Kita dapat meminjamkan kartu debit kepada orang lain (istri, anak, saudara, bahkan teman) tanpa perlu memberitahukan PIN kita. Orang yang menggunakan kartu yg bukan miliknya juga tidak perlu lagi mengingat-ingat PIN.
  3. Perhitungan manajemen risiko dari bank penyelenggara menyatakan bahwa prosentase fraud yang terjadi karena penyalahgunaan kartu debit tanpa PIN sangat kecil (terhadap seluruh nilai transaksi yang terjadi)

Ada sebab yg lain?

Bagi saya, tidak menggunakan PIN dalam transaksi kartu debit sama saja menghilangkan faktor keamanan utama kartu debit.

Kita bahas kembali tiga hal di atas.

Nomor satu dapat diatasi dengan penghalang pandangan di sekitar terminal POS (point of sales). Tentu tidak sebesar ruang ATM. Hanya sekedar mencegah orang mengintip PIN yang sedang kita ketikkan. Penempatan terminal juga harus diperhatika. Hal ini sebenarnya tidak susah untuk dilakukan. Pengguna juga berhak untuk menolak/membatalkan transaksi jika merasa tidak aman.

Nomor dua, menyalahi prinsip utama penggunaan kartu ATM dan kartu debit. Kartu ini hanya boleh dipergunakan oleh orang yang memiliki seluruh faktor otentikasi (ada dua, seperti yang dijelaskan di atas). Kemudahan? Sebenarnya bank penyelenggara menyediakan kemudahan tersebut dengan cara memindahkan risiko keamanan kepada pengguna. Tingkat keamanan diturunkan, risiko tanggung sendiri. Sebagai pengamanan, bank juga menetapkan batas maksimal transaksi yang dapat dilakukan tiap hari. Namun, batas ini dihitung berdasarkan perhitungan manajemen risiko fraud yang akan ditanggung oleh bank, bukan risiko yang akan kita tanggung. Sekali lagi, risiko tanggung sendiri. Mau?

Untuk nomor tiga, saya tidak memiliki bukti statistik penyalahgunaan kartu debit tanpa PIN. Mungkin rekan-rekan blogger punya? Saya menduga cukup besar.

Yang membuat saya lebih pusing lagi, seingat saya, BNI tidak pernah memberitahukan perubahan cara transaksi tersebut, apalagi menjelaskan risiko-risiko baru yang akan muncul. Menurut saya, bank penyelenggara wajib menjelaskan hal-hal seperti ini. Atau saya saja yang kelewat. Pembaca yang lain bagaimana?

Catatan: risiko penggunaan tanda tangan pada kartu kredit berbeda dengan kartu debit. Ini karena pada kartu kredit kita masih dapat menolak membayar tagihan karena menduga ada fraud. Untuk debit, uang kita sudah berpindah ke account merchant. Bisa gitu ditarik lagi?

Tinggalkan sebuah Komentar

Konfusius

Dari konfusius:

Kalau orang lain sukses hanya dengan mengerahkan satu upaya, saya akan mengerahkan seratus kali lipat upaya; kalau orang lain sukses dengan mengerahkan sepuluh kali lipat upaya, saya akan mengerahkan seribu kali lipat upaya

Komentar (5)

Hak Cipta Produk Dijital (Digital Copy Right). Mau ke mana?

Jadi ingin nulis2 tentang topik ini terutama setelah membaca tulisan P Ari di sini. Pembajakan di dunia dijital ataupun pembajakan di dunia selain dijital pada prinsipnya sama saja, yaitu memperbanyak produk tanpa seijin orang atau pihak yang memiliki hak cipta. Namun dalam kasus produk dijital, masalah ini tampaknya lebih rumit. Ini karena produk-produk dalam format dijital dapat dicopy atau diperbanyak dan didistribusikan dengan sangat mudah. Ini berbeda dengan kasus produk fisik tiruan (lukisan, patung, perangkat elektronik, perangkat mekanik dll). Perlu upaya sangat keras untuk meniru dan menyembunyikan kepalsuan produk secara fisik. Hal ini tidak berlaku di dunia dijital.

Produk dijital ini diantaranya mencakup: perangkat lunak, foto dijital, musik dijital ,film dijital dan ebook. Apakah pembajakan terhadap produk-produk ini dibenarkan? Secara hukum, tentu saja tidak. Namun, masalahnya bukan pada benar atau salah.

Yang menjadi masalah adalah: Apakah upaya perlindungan, dengan perangkat hukum dan teknologi, terhadap produk-produk ini cukup efektif dan feasible? Bukti di lapangan, menurut pengamatan saya, menyatakan tidak. Berbagai upaya telah dilakukan untuk melindungi produk perangkat lunak, hampir semuanya gagal atau tinggal menunggu waktu untuk gagal. Ini termasuk perlindungan dengan menambahkan hardware keamanan pada produk tersebut. Perlindungan terhadap musik dan film dijital? Sama saja. Pengguna internet (termasuk saya) dengan mudah me-rip CD/DVD film dan musik menjadi file digital (mp3, mp4, rmvb dll) dan mendistribusikannya lewat internet. Hal yg sama terjadi pada buku, dengan sedikit upaya tambahan untuk mengubah format buku hardcopy ke dalam format dijital (ebook).

Menurut bruce schneier, kesangatmudahan proses copy dan distribusi file dijital terjadi tidak lain karena hal ini sesungguhnya merupakan karakteristik intrinsik dari format dijital tersebut. Seluruh upaya yg dilakukan untuk melindungi produk dijital ini merupakan tindakan yang melawan hukum alam. Produsen tidak akan dapat menyelamatkan bisnisnya tanpa menyadari dan menerima hukum ini.

Dalam hal ini, saya sependapat dengan Bruce. Industri penghasil produk dijital tidak dapat mengatasi pembajakan hanya dengan menerapkan perangkat hukum dan teknologi untuk melindungi produk tersebut. Yang diperlukan adalah: Skema bisnis baru! Hal ini sudah dilakukan dalam kasus perangkat lunak yaitu melalui skema open source. Industri open source memperoleh pendapatan dari service bukan dari produk perangkat lunak. Bagaimana dengan musik dan film? Beberapa hal penting sebenarnya sudah terjadi (hanya mungkin luput dari pengamatan kita):

1. Film? Maraknya pembajakan film tidak mematikan industri bioskop. Orang tetap berbondong-bondong menonton film di bioskop meskipun film yg sama juga tersedia dalam CD/DVD bajakan. Apa yg dicari?

2. Musik? Kecenderungan saat ini adalah: orang hanya menyukai satu atau dua lagu dalam satu album. Jadi, mengapa harus membeli satu album penuh? Hal ini yang dibidik oleh P BR dengan Digital Beat Store-nya. Yang lain? Industri musik dapat memproduksi musik yang berkualitas high-end yang dapat dinikmati (dengan head-phone  yang nyaman utk masing2 pendengar) di tempat-tempat khusus, misalnya kafe atau ruang baca di toko buku. Tiap pendengar harus membayar berbasis waktu atau berdasarkan item lagu yg dipesan.

3. Buku? Rasanya saya tidak pernah berminat membajak buku2 lokal yang dipajang di toko2 buku. Mengapa? Karena hasil yang diperoleh tidak sepadan dengan harga dan upaya yang dikeluarkan. Saya tetap memilih buku asli karena masih cukup murah dan mudah. Bagaimana dengan buku textbook yg mahal-mahal? Utk kasus ini, maka akan berlaku hukum di atas, bajakan dalam format dijital lebih menarik. Capek membaca ebook di depan Laptop? Ah, masih bisa ditoleransi kok.

Jadi, apakah hukum dan teknologi saat ini efektif mengatasi pembajakan? Menurut saya tidak, tanpa ada skema bisnis baru.

Apakah kita dapat mengharapkan itikad baik dari publik? Dalam batas tertentu, ya. Yg dimaksud batas tertentu adalah: harga masih cukup masuk akal (meskipun belum tentu terjangkau), ada alternatif lain (perpustakaan yg memadai utk textbook. Open source utk software, meskipun ada effort tambahan).

Tinggalkan sebuah Komentar

Good vs Bad Cryptography

Tidak sengaja nemu artikel lama dan menarik dari Bruce Schneier tentang kriptografi. Artikel ini memberikan beberapa panduan untuk membedakan algoritma kriptografi yang aman dan yang tidak. Singkatnya, Bruce memaparkan tanda-tanda apa saja yang membuat sebuah algoritma kriptografi layak untuk diragukan keamanannya. Artikel ini tampaknya ditulis oleh Bruce untuk menyikapi munculnya berbagai perangkat lunak kriptografi komersial yang memberikan klaim keamanan yang berlebihan. Berikut ini adalah beberapa hal (tidak semua saya tulis kembali) yang harus diperhatikan menurut Bruce (dengan beberapa komentar saya):

Pertama, kriptografi yg dibangun dengan metode matematika baru, misalnya chaos, neural-network dan cellular automata. Tiga hal ini memang belum lazim dipergunakan oleh komunitas kriptografi saat ini. Menurut saya: metode matematika baru seharusnya secara terbuka harus diterima oleh komunitas kriptografi dengan syarat algoritma tersebut harus dapat membuktikan klaim-klaim keamanannya berdasarkan beberapa kriteria yang telah dipergunakan oleh komunitas kriptografi. Penolakan terhadap metode matematikan baru tanpa kecuali dapat menghambat kemajuan riset kriptografi secara keseluruhan.

Kedua, proprietary cryptography. Yaitu algoritma kriptografi yang disembunyikan. Perusahaan yang memproduksinya menolak membuka algoritma kriptografi karena beberapa alasan, mungkin keamanan mungkin juga karena proses patent yang belum selesai. Apapun alasannya, kita harus menghindari produk kriptografi jenis ini. Menurut prinsip Kerckhoff, proses desain algoritma kriptografi harus mengasumsikan bahwa algoritma tersebut (termasuk kriteria-kriteria desainnya) terpublikasi, tidak dirahasiakan. There is no security by obscurity. Algoritma yang terpublikasi dapat dianalisa dan diuji oleh banyak pihak dalam komunitas kriptografi.

Ketiga, kunci yang sangat panjang. Beberapa contoh algoritma kunci simetrik yang dipaparkan Bruce menggunakan kunci 4096 bit, bahkan ada yg hingga satu juta bit! Panjang kunci dalam batas tertentu memang diperlukan dalam sistem kriptografi. Tujuannya adalah untuk membuat brute-force attack menjadi infeasible. Hitungan sederhana kebutuhan komputasi untuk brute-force attack menyatakan bahwa kunci 256-bit untuk symmetric-key cryptography dan 2048-bit untuk public-key cryptography. Membongkarnya dengan metode brute-force attack memerlukan waktu yang lebih panjang dari usia alam semesta. Jadi kunci yang lebih panjang dari ini sama sekali tidak berguna.

Keempat, klaim dengan OTP (one time pad). One time pad merupakan teknik enkripsi dengan menggunakan panjang kunci yang sama dengan panjang plaintext. Selanjutnya tiap karaker dari kunci ini dipergunakaan untuk me-masking tiap karakter plaintext (misal dengan XOR). Secara teori OTP bersifat provably secure (tidak ada teknik yang lebih efisien dari brute-force attack untuk membongkarnya). Namun teknik ini tidak dapat dipergunakan secara praktis, karena beberapa hal berikut:

  • Panjang kunci bergantung pada panjang plaintext, sehingga jika plaintext sangat panjang maka kita juga perlu kunci yang sangat panjang. Secara praktis hal ini sangat menyulitkan proses distribusi kunci.
  • One-time-pad bersifat provably secure jika dan hanya jika kunci yang dipergunakan benar-benar random artinya tidak boleh ada algoritma atau sistem yang dapat mereproduksi kunci tersebut. Secara praktis sangat sulit membuat atau menemukan truly random number generator.

Kelima, tidak ada bukti keamanan secara matematis. Ada dua kemungkinan untuk kasus ini, (1) ada bukti matematis yang sangat rinci dan kokoh yang tidak relevan dengan pembuktian keamanan sistem kriptografi, atau (2) bukti matematis palsu. Contoh yang dipaparkan bruce: sebuah produsen sistem kripto menjelaskan cara kerja dan tingkat keamanan OTP, kemudian produsen tersebut menyatakan bahwa algoritmanya memiliki perilaku yang serupa dengan OTP sehingga karena itu memiliki tingkat keamanan yang setara OTP. Kemudian dilanjutkan dengan serangkaian uji statistik untuk menunjukkan klaim tersebut. Menurut Bruce, cara pembuktian ini tidak valid dalam komunitas kriptografi

Artikel ini sangat penting bagi rekan-rekan yang sedang melakukan riset di bidang kriptografi, dan juga bagi kalangan praktisi yang akan mengimplementasikan sistem kriptografi dalam aplikasi-aplikasi yang mensyaratkan keamanan tinggi (misal: payment system, e-cash, settlement system dll)

Artikel lengkap dapat dilihat di sini.

Komentar (13)

Tulisan yang Lebih Tua »