evoting 1999 dan ivoting 2021

Alhamdulillah, Sabtu kemarin telah dilaksanakan pemilu ketua IA-ITB (Ikatan Alumni Institut Teknologi Bandung) dengan menggunakan ivoting – internet voting. Dalam rangka untuk mencegah penyebaran COVID-19, maka pemilihan ketua IA-ITB tidak dapat dilakukan dengan pertemuan secara fisik. Semua harus dilakuan melalui daring (online). Ini adalah sebuah transformasi digital yang “terpaksa” dilakukan. Ha ha ha. Alhamdulillah perhelatan ini berhasil dilaksanakan dengan baik.

(Hasil akan saya sisipkan di sini.)

Bagi saya ini merupakan pengalaman yang menarik karena sebelum ivoting 2021 ini saya sempat terlibat dengan pengamanan pemilihan umum Indonesia di tahun 1999. Saat itu saya diperbantukan untuk mengamankan sistem IT KPU (pengumpulan suara, perhitungan, dan penampilan hasil pemilu). Banyak orang yang tidak tahu bahwa sistem IT sudah digunakan untuk pemilu di Indonesia pada tahun 1999, meskipun ini bukan evoting asli karena pencoblosan suara masih dilakukan dengan betul-betul mencoblos kertas suara (bukan dengan menggunakan perangkat elektronik). Hasil pemilu tentu saja masih berdasarkan perhitungan cara manual, namun sistem IT digunakan untuk mencegah terjadinya kecurangan dan kesalahan dengan cara mencatatkan semuanya.

Nampaknya suatu saat saya bisa bercerita banyak tentang hal-hal yang kami hadapi pada masa itu. Seperti misalnya, pada hari H plus sekian (lupa saya hari ke berapa) ditemukan celah keamanan (security hole) pada server web yang berbasis IIS (Internet Information Service)-nya Microsoft yang kami gunakan pada waktu itu. Perbaikan (patch) secara resmi baru akan keluar dua minggu lagi! Nah lho. Apakah web harus dimatikan sambil menunggu ketersediaan patch? The show must go on. Yang kami lakukan waktu itu adalah menambah server (firewall) dengan menggunakan Linux di depannya sehingga yang terlihat ke publik adalah Linux bukan IIS. Phew. (Meskipun akhirnya kami menemukan solusi yang tidak resmi sehingga masalah IIS tersebut tertangani.) Ini adalah salah satu dari sekian banyak cerita seru yang kami alami.

Suatu saat akan kami ceritakan pengalaman (lessons learned) yang kami alami di ivoting IA-ITB 2021 ini. Ada banyak cerita seru juga. ha ha ha.

Bagi saya yang menarik adalah saya ikut membantu (di belakang layar) keamanan dari evoting 1999 dan ivoting 2021. Ini adalah tonggak-tonggak bersejarah dalam pemanfaatan teknologi informasi untuk demokrasi. Ke depannya saya melihat akan lebih banyak penggunaan ivoting ini. It works!

Kunci Publik Kelas

Ini adalah percobaan untuk mendistribusikan kunci publik untuk PGP/GnuPG. Sebetulnya cara yang benar adalah mendistribusikan ini ke keyserver. Itu juga sudah saya lakukan. Ini hanya sebagai alternatif saja. Ini adalah kunci publik “kelasbr2021” yang akan digunakan di kelas “secure operation & incident handling” yang saya ajarkan pagi ini.

-----BEGIN PGP PUBLIC KEY BLOCK-----

mQGNBGAhbdsBDACndGRdpQqb+TjQeytLJl0R74uTCQlAI11UMHf9ASmCa50rbrSN
TJlh70MzBIxRkWLGijievPrtkLJpAdBa9XAI39q05s8sFy5iZAkGfeBPWnH8N0JL
fa6qfB9XgUbj44AZguI5/1V0Qu/vCn0Qr6kQKiwoB+Hbq8DaDSspka4nmCv3WPWv
STpPW+j4du6M3Kv+oQmvKjjd+PE8rBvHlIXQm3hlOiqJtcQ4rhVZDJCMUm/h4FuW
z/s2hROnWYm2UiT2YrsbFa8pszk/08CZUgDQvHXv/umcIfdC4h6prlfaoO9BgJ6b
o6wPSYEnLUKaOfcfcZ03oMuOI1fj9msO3L39t3zZS+yv0CMQlO93el0H7vwG3ONm
we974ZoMcYoUKPKRyNfi7M3KeLc/3Xwqm8jKC6EXWz1tyXuS5ZFWWfSSKjtsncIG
iX0ya77joxKHBCHtaV7lTmL+ulOn4wWvIj2vDAC4jSrOysN00Dlw2rV+AAZSHczY
P5QlJsTf3+9tbhcAEQEAAbQlQnVkaSBSYWhhcmRqbyA8a2VsYXNicjIwMjFAZ21h
aWwuY29tPokB1AQTAQoAPhYhBDYm0pCR6XAquOtZRgaGxZV+ECP+BQJgIW3bAhsD
BQkDwmcABQsJCAcCBhUKCQgLAgQWAgMBAh4BAheAAAoJEAaGxZV+ECP+IGgL/0nu
m9XzZldRpDQbF9cRZzWMoXbDINffPLAameZ6uTiJ/+Wjhs3jH2L2ome+P1Vs/GxK
iwYi3mmozomx5TivFJoPqfVyhGmAdQigq1fpBt6irTA/005Se+NFgWBok1Xl4f66
Pc+Dt7QlNnSrMh1RZ61tccp69kUqwvQv/cMxDcdCX6Ea6OuMtnEK20afb1xO5Dl4
H4eLPVxlJiNvt3XqLN6BWoWgsHyLcuJtUa4M1dEeZoJj3uMZiw0gfN3iEU6z2jMd
tpMsv2LYh6bAnN4K5fvJsmXU1yZspj4PIn5cDTjHukXqInXA4sXFyEERYhq7pjGQ
fKLp+RR5psJhio4xDdusAnLQaJjLXls6s6QDrgc1kiGbXIEZlTFLfoABDHsEAG3x
/ab4DStsSo8Qsv/7kDGIX+bi/6fOnSLARo+oECohMhzcIwVWwXIGsBBY79ISmHP6
nfA+BofQTPrcFguvYTQOzWxe+42xQHRj1iP7BjQdQmPt9AVuWnBPXNWt9esk6LkB
jQRgIW3bAQwAw80HZvdjRDe5S0ITmdVbDrj1gGAcsKc+NMauKE5x9HaTj/rBhkVr
PhtV9rgsEjQV5evuvzRCNyfeSZ0mktNvSql6NEWf7knhbm5tXuVu3AVl/U1xgfMO
Ou9VApjNUIGYjuJ0W1ht0OdHGEk7FY5U/AJqUpP3aTXhN1oqfAqEkVXrHUYcK4Xd
ZnJMPyhrERjjkQJz8gqQ/W9jmZDbQXNa8owUTulwE1TNUTIKMmP4iX+Otiis024c
9x1At6/MqdVpQysspYmkHALzeV8bUd1Gf3on+WLz2elb3U0GkB1314NmHU6Gjj0m
L1tJl9vZv7ISP2eSuAjS2AHNH4eBFGzq5ibN0lQvtV9gF6RCmwSOsfHgx0Bc7nCp
VoddLhtBJmWUCxwBWsVMCqBQqfkbZeYs3WoJR/5E3C33jynqDEYUrhr/rtjj52Nm
mH3WEIU8+IS+/M6cx8uBs6bnGJ/ISiEpm+OHI5owS/0L1WTile2zHl0mMGflKODw
jZz18xvO8ZTZABEBAAGJAbwEGAEKACYWIQQ2JtKQkelwKrjrWUYGhsWVfhAj/gUC
YCFt2wIbDAUJA8JnAAAKCRAGhsWVfhAj/tZwDACZQ7pqUZDPAQaftc992djBXZC7
8D5suV4M+yHtqCjpUD0Bo8YI7CCdM3PuvfsQvDrPdBZ9TcBmyYj6wFLBuq48LQj+
nb4ByrQ65WTEWuny8qVdoBPhE9KYZwbahNWK9oCyWBOZfWDBDE7p79erRZmW2pJh
z8bJVjPDl71RyeE9u6EWEZ+vwR0ZpDhq8FXUl0o+ZEYMjL10LrMey8p4YXwi+ZL9
V0apciQ8AVHreJirjFmMyQjMJ84LWax7gLOXi2EFhioefzhI3jPWxT1pfKSSoX6x
XIEE2l1Y6Zsmi3tzpDbPP/ny7WZU3CkOF80Zr8lgLf2I6Z3JiTBs2pCTKru0pb0u
I9KKhSNuha8ijbmFPttd+oYSNU5YSn2YTREUrT7SIw/rrcG5f+oEA4ctULrQuZpt
EYNFVcCgrnEBl6cy754qMiu25vd2NjKq+vFyHxM9s7nLXbrRAiblB3t/wCoNQYtE
8Ub7l4VviNrKVo3h560512HJghKqi6J35C5+Xc4=
=DmkX
-----END PGP PUBLIC KEY BLOCK-----

Masalah Kebijakan WA Terbaru

Baru-baru ini terjadi keributan yang luar biasa di seluruh dunia tentang kebijakan privasi aplikasi WhatsApp (WA) terbaru. (Kebijakan tersebut dapat dilihat di sini. Demikian pula Terms and Condition-nya) Dalam pandangan sebagian besar orang, kebijakan WA terbaru ini merisikokan data pribadi pengguna karena dianggap memberikan data tersebut kepada Facebook (FB). Pengguna takut dengan masalah keamanan (security) dari aplikasi WA jika WA menggunakan layanan (keluarga) Facebook.

Akibat dari kehebohan ini ada banyak pengguna WA yang kemudian hijrah ke aplikasi lain seperti Telegram, Signal, dan Bip. Diberitakan bahwa saat ini ada sekitar 2 milyar pengguna WA. Jumlah yang tidak sedikit. Pengguna Telegram sekitar 500 ribu dan pengguna Signal lebih sedikit lagi. Dalam dua minggu ada jutaan orang yang memasang aplikasi Telegram.

Saya membuat video tentang hal ini. Lihat video berikut ini.

Setelah video tersebut, saya ikut diundang untuk berdiskusi dengan WhatsApp yang kemudian menjelaskan apa yang sesungguhnya terjadi. Untuk hal ini, saya membuat update videonya. Ini dia.

Singkatnya bagaimana? Dalam pandangan saya ada beberapa hal yang utama. Pertama, kebijakan privasi WA ini cukup baik. Saya baca strukturnya sangat mudah. Ada tiga bagian utama saja, yaitu:

  • Data apa saja (tentang saya) yang dikumpulkan oleh WA;
  • Bagaimana WA mendapatkan data tersebut (baik diperoleh oleh WA sendiri atau melalui pihak lain);
  • Setelah data tersebut terkumpul, bagaimana penggunaan data tersebut.

Intinya hanya tiga hal itu saja. Menurut saya ini bagus karena kalau dahulu agak kurang jelas. Perlu diperhatikan bahwa WA dibeli oleh Facebok sudah di tahun 2016. Jika kita ketakutan sekarang, maka seharusnya kita sudah takut dari tahun 2016. Ha ha ha. Jadi apa yang dilakukan oleh WA dengan mendokumentasikan hal ini adalah merupakan sebuah peningkatan dari transparansi mereka. Bahwa kita tidak suka apa yang sudah mereka lakukan itu lain soal.

Kedua, dalam video kedua saya tersebut ditekankan bahwa perubahan kebijakan dan T&C ini sebetulnya lebih terkait dengan WhatsApp business. Jadi WA ini memiliki tiga layanan; Messenger, Business, dan Business API. Perubahannya adalah sekarang jika kita menggunakan WA business, maka kita dapat memanfaatkan infrastruktur yang dimiliki perusahaan keluarga Facebook. Ke depannya akan ada banyak fitur commerce yang akan menguntungkan bisnis yang menggunakan layanan tersebut. Pengguna messenger – seperti saya – sebetulnya tidak terlalu berubah. Ketika kita berhubungan dengan akun WA bisnis, maka kita dapat melihat bahwa itu adalah akun bisnis dan akun bisnis itu menggunakan layanan hosting Facebook atau tidak. Ini malah lebih transparan. Atau ini malah jadi membuat orang takut?

Ada banyak lagi yang ingin saya tuliskan, tetapi nanti saya buat seri tulisan saja. (Atau tulisan ini saya revisi.) Sementara ini dulu ya. Silahkan simak videonya.

Kematian Privasi?

Kematian Privasi ?
Yuk, simak ulasan dari pakarnya.
Buruan daftar, tempat terbatas

nyantrik BR

***
Budi Rahardjo adalah pendiri dan ketua ID-CERT (Indonesia Computer Emergency Response Team) yang berdiri tahun 1998. ID-CERT merupakan tim koordinasi teknis berbasis komunitas independen dan non profit. ID-CERT berawal dari “kenekatan”, karena belum ada CERT di Indonesia pada saat itu. ID-CERT bersama JP-CERT (Jepang) , AusCERT (Australia) dan CERT negara-negara lain di regional Asia Pacific adalah pendiri forum APCERT tahun 2001.

Beberapa insiden yang dilaporkan masyarakat ke ID-CERT antara lain pembajakan akun medsos, pembajakan pengelolaan nama domain, deface, Web/Phishing, spam dan aktivitas internet abuse lainnya. Sebagai pimpinan ID-CERT Budi Rahardjo melihat dan mengalami langsung pasang naik (dan tak pernah surut) beragam insiden keamanan internet di Indonesia.

Melihat ke belakang, Pak Budi, demikian para mahasiswa di ITB memanggilnya, adalah orang Indonesia pertama yang membuat website (dahulu disebut “homepage”) . “The Ultimate Indonesian homepage” adalah halaman web pertama tentang indonesia yang numpang di server University of Manitoba, Canada, tempat Pak Budi bersekolah dan bekerja di awal tahun 90-an. Sebagai informasi halaman web pertama di dunia dibuat oleh Tim Berners-Lee di Swiss pada 6 Agustus 1991 yang berjalan di atas komputer NeXT. Secara kebetulan komputer Pak Budi waktu itu juga NeXT. Singkat cerita, sampai sekarang, belajar dan ngoprek, adalah his way of life.

Malam ini, Kamis 06 Agustus 2020, Jam 19.30, Pak Budi akan mengajak kita untuk berdikusi tentang sesuatu yang (dulu?) menjadi barang berharga kita, yaitu privasi. Apakah benar privasi telah mati di era internet ini? Kami tunggu Anda.

Catatan: Kami membatasi jumlah peserta zoom sebanyak 50-an orang, agar setiap peserta punya kesempatan untuk berdiskusi. Namun jangan khawatir, Anda tetap bisa mengikuti keseruan diskusi secara LIVE di Youtube Channel Budi Rahardjo.

Aplikasi (Contact) Tracing vs. Privasi

Belakangan ini mungkin Anda sudah mendengar bahwa perusahaan Apple dan Google bekerjasama untuk meluncurkan sebuah aplikasi yang melakukan tracking (pemantauan) keberadaan orang dan kaitannya dengan risiko terpapar virus corona (penyakit covid-19). Di Indonesia juga ternyata ada beberapa instansi akan (sudah?) meluncurkan aplikasi sejenis. Katanya aplikasi ini memantau keberadaan kita dan orang-orang di sekitar kita.

Ada banyak permasalahan dengan aplikasi sejenis ini. Masalah tersebut terkait dengan keamanan (security), termasuk masalah privasi. Kita mulai satu persatu dahulu.

Pertama, adanya ketidakjelasan cara aplikasi tersebut bekerja. Ada sih memang penjelasan umumnya, tetapi penjelasan umum tidak cukup. Misalnya, data apa saja yang dibaca oleh aplikasi? Diapakan saja data tersebut? (Dikirimkan kemana kah? Diproses apa kah?) Misal, apakah data kontak kita juga dibaca? Bagaimana dengan orang-orang yang berada di dalam kontak kita tetapi tidak ingin diketahui oleh orang lain nomor teleponnya (credentials-nya)? (Ada banyak orang yang seperti ini. Saya tidak bersedia membocorkan nomor telepon kawan-kawan saya kepada siapapun.) Apakah data orang-orang tersebut dibaca secara plain ataukah di-obfuscate atau diubah? Dengan cara apa? Apakah data tersebut digunakan? Dikirim? Diproses? Atau apa?

Kemudian ketika Anda berdekatan dengan seseorang, data apa saja yang dipertukarkan? Ada yang menggunakan Bluetooth dan saling bertukar data. Ketika kita mendapatkan data dari Bluetooth, bagaimana kita memastikan bahwa kita tidak kesusupan malware, trojan horse, virus, dll. Ada satu panduan yang umum digunakan, yaitu ketika tidak dibutuhkan, matikan Bluetooth. Jangan membiarkan Bluetooth hidup terus menerus. Ada banyak program penyerang Bluetooth. Belum lagi kalau kita bicarakan batre yang kesedot karena Bluetooth (atau networking lain) yang hidup terus.

Semua data ini kemudian diolah oleh “siapa”? Lokal di handphone kita? Menghabiskan batrekah? Atau dikirim ke tempat lain? Apa hak-nya “siapa” (instansi) yang mengelola data kita tersebut? Kalau data kita bocor, apakah “siapa” ini dapat kita tuntut ke pengadilan?

Bayangkan ini seperti aplikasi google maps / waze yang melakukan tracking kemana saja Anda pergi, ketemu siapa saja, atau dekat dengan siapa saja. Kemudian dia bakalan tahu juga kontaknya kontak Anda.

Cara-cara (protokol, mekanisme) yang digunakan harus terdokumentasi dan terbuka untuk publik. Jika ini dirahasiakan, maka itu sebuah tanda bahwa sistem ini tidak aman. Kita ambil contoh di dunia kriptografi. Sebuah algoritma kriptografi dinyatakan aman apabila algoritma tersebut dibuka ke publik. Keamanannya bukan terletak kepada kerahasiaan algoritmanya, tetapi kepada kerahasiaan kuncinya.

Setelah desain dari aplikasi tersebut kita nyatakan aman – atau setidaknya belum ditemukan masalah – maka kita beranjak kepada implementasinya. Bagaimana ide tersebut diimplementasikan. Banyak aplikasi / sistem yang idenya bagus tetapi implementasinya buruk. Jebol di sana-sini. Yang ini harus dibuktikan melalui evaluasi atau audit.

Setelah itu ada juga masalah di operasionalnya. Apakah orang mudah menggunakannya atau cenderung mengabaikan keamanannya. Misalnya ada sebuah sistem yang didesain teramat sulit ditembus, tetapi gemboknya (password-nya) misalnya 40 karakter. Karena sulit dihafal, maka password tersebut dituliskan di layar (menggunakan post-it-note). Hal yang sama, kadang karena sulit dihafal makas sandi tersebut kita simpan di handphone. Bubar jalan.

Masih ada hal-hal lain yang bisa kita bahas. Pada intinya, selama aplikasi tersebut tidak terdokumentasi dengan terbuka dan belum dievaluasi maka jangan gunakan aplikasi tersebut. Tujuan yang baik dapat berdampak buruk jika implementasinya ngawur.

Oh ya, versi video dari penjelasan ini dapat dilihat pada channel YouTube saya.

Semoga penjelasan ini dapat memberikan cara pandang lain.

Bacaan terkait.

Data Entry

Mari kita bahas (lagi) tentag dota entry, eh data entry. Supaya lebih jelas, saya akan ambilkan sebuah contoh kasus pemilihan umum di sebuah negara antah berantah.

Seorang operator data entry menemukan form (borang) dengan data seperti berikut:

calon #1 = 20
calon #2 = 20
calon #3 = 20
total suara = 80

Jika kita perhatikan, maka jumlah total suara tidak sama dengan jumlah yang seharunya. Jumlah seharusnya adalah 20+20+20 = 60. Jika Anda operator data entry tersebut, apa yang Anda lakukan?
(a) perbaiki data;
(b) masukkan (entry) data persis seperti itu.

Misalnya Anda berniat untuk memperbaiki data tersebut. Apa yang akan Anda perbaiki? Misal Anda ambil inisiatif mengubah jumlah total suara. Oleh Anda total suara diganti menjadi 60. Jreng! Anda masukkan data dan ternyata keputusan Anda itu salah! Maka Anda (dan institusi tempat Anda bekerja) langsung mendapat tuduhan menghilangkan suara! Ribut.

Kenapa keputusan Anda salah? Karena ternyata ada beberapa kemungkinan kesalahan. Kemungkinan pertama, yang salah adalah data untuk calon #3. Seharusnya data yang benar adalah “calon #3 = 40“. Maka jumlah total suara sudah benar, 80. Nah lho.

Kemungkinan tersebut bukan satu-satunya kemungkinan. Bisa jadi yang salah adalah data di calon #1 atau calon #2 atau keduanya atau ketiganya. Misalnya, bisa jadi datanya harusnya “calon #2 = 30” dan “calon #3 = 30“. Dan seterusnya. Paham maksud saya kan?

Ok. Cara yang paling aman adalah data dimasukkan APA ADANYA. As is. Pilihan (b). Sebagai seorang operator, Anda memasukkan data apa adanya. Seperti mesin scanner saja. Namun form ini diberi tanda (flag, warning) bahwa ada masalah di dalamnya. Tolong seseorang (manusia) melakukan verifikasi ulang.

Nah, inilah yang terjadi pada sistem perhitungan suara di Pilpres 2019. Itulah sebabnya terlihat bahwa sistem seperti tidak melakukan perhitungan, padahal dia melakukan perhitungan tetapi untuk jumlah yang salah ini maka aplikasi akan meminta perhatian seorang pemeriksa.

Ada yang berkomentar juga, kalau begitu seharusnya aplikasi tidak mau menerima data yang salah tersebut. Data yang jumlahnya totalnya salah, misalnya, jangan dimasukkan. Lah, jika demikian maka data itu mau diapakan dibuang? Ini malah bermasalah. Seolah-olah operator melakukan kecurangan dengan membuang data. Malah akan lebih bermasalah lagi. Tuduhannya malah lebih berat lagi. Jadi sudah benar bahwa data tetap dimasukkan tetapi diberi tanda (flag, warning).

Sudah kepanjangan ah.

Desain Sistem Informasi

Mumpung sedang ramai dibahas tentang web KPU, ini adalah sedikit corat-coret dari saya. Disclaimer dulu. Saya tidak terkait / terlibat dengan KPU saat ini, sehingga apa yang saya tuliskan saat ini tidak terkait dengan KPU.

Jika saya diminta untuk mendesain sebuah sistem informasi yang dapat diakses dari internet, maka desain saya kemungkinan seperti gambar di bawah ini. Namun, sebelumnya harus ada asumsi-asumsi dahulu. Sistem yang saya maksudkan bukan sistem yang real-time, dalam artian kita memasukkan sesuatu langsung tampil responnya. Sistem internet banking itu saya masukkan ke kategori “real-time”. Soalnya ketika kita melakukan transaksi, kita kan ingin melihat hasilnya segera bukan 10 menit lagi. Sementara itu sistem tabulasi hasil pemilu, misalnya, tidak harus demikian. Data dimasukkan dan hasil tabulasi boleh 5 menit lagi dikeluarkan (secara berkala).

Kita mulai dari agak kanan bawah, ke bagian aplikasi data entry. Aplikasi ini terhubung dengan sebuah database (db). Aplikasi ini diletakkan di belakang sebuah firewall dan tidak dapat diakses langsung oleh operator (user / pengguna).

Operator mengakses aplikasi melalui internet dengan menggunakan VPN. Operator terhubung ke sebuah “application gateway” yang merupakan proxy untuk aplikasi sesungguhnya. Data yang dimasukkan (entry) oleh operator akan diterima oleh aplikasi proxy dan diteruskan ke aplikasi sesungguhnya. Pada proxy ini dapat dilakukan proses perlindungan, verifikasi (terhadap kemungkinan serangan pada tingkat aplikas), sanitasi input, dan seterusnya. Data yang sudah disanitasi ini kemudian diteruskan ke aplikasi data entry sesungguhnya yang kemudian memasukkan data tersebut ke dalam database (db).

Database (db) ini kemudian dipindahkan ke database satunya lagi yang berada di bagian paling kanan bawah (ah, seharusnya pada gambar tersebut saya beri nomor ya). Dimungkinkan proses koreksi, verifikasi, dan proses-proses lainnya terhadap data. Data dalam database inilah yang kemudian dipakai untuk perhitungan atau ditambilkan. Data dalam bentuk report dapat dihasilkan oleh proses perhitungan. (Biasanya hasilnya dibuat dalam bentuk static agar nanti mudah disajikan dan menghindari penyerangan di tingkat aplikasi).

Hasil tabulasi ini (halaman web statik) dilemparkan ke application gateway (sebelah kiri, harusnya pakai nomor juga). Application gateway inilah yang mendistribusikan hasil ke web (server) publik, ke SMS gateway, ke fax, ke TV, dan seterusnya. Update distribusi ini dapat dilakukan berkala. Misal untuk web dapat dilakukan setiap 5 menit sekali.

Publik mengakses hasil di web (server) publik yang berisi data statik yang diupdate setiap 5 menit sekali. Jika web ini diretas (hacked) – amit-amit – maka dalam waktu 5 menit, hasilnya akan diperbaiki lagi. Otomatis. ha ha ha.

Demikianlah corat-coret singkat saya.

[Catatan: diagram saya sederhanakan. Ada banyak hal yang tidak saya tampilkan, misalnya IDS, NTP, log server, SIEM, monitoring, redundansi, dll.]

Untuk aplikasi. Nanti ya. Saya mau ngajar dulu.

Update: versi video dari tulisan ini sudah tersedia di YouTube.

Sistem informasi (berbasis) Internet


Pentingnya Web KPU Bagi Kita Semua

Belakangan ini ada banyak opini, ajakan, tulisan yang salah. Ajakannya adalah untuk merusak web KPU. Wah ini salah sekali. Lebih salah dari salah.

Begini …

Pertama – dan yang paling utama – adalah hasil pemilihan umum yang resmi adalah hasil perhitungan secara manual. Titik. Itu dulu yang kita pegang. Hasil lain – apapun – tidak ada dasar hukumnya. Dahulu saya ingin agar data elektronik hasil pemilu dapat dianggap sah, tetapi landasan hukumnya tidak ada. Kami meneliti e-Voting. Sudah ada banyak mahasiswa S2 dan S3 saya yang meneliti di bidang ini. Namun secara hukum, untuk pemilu, ya sah adalah perhitungan manual.

Lantas apa hubungannya dengan web KPU? Kalau web KPU dirusak, ya tidak ada pengaruhnya. Lah yang dihitung adalah perhitungan manual. Iya, kertas yang kita coblos itu. Itu yang sahnya. Lha mbok data di web KPU mau diubah seperti apapun ya bakalan tidak pengaruh.

Kedua, justru web KPU itu kita butuhkan untuk memastikan bahwa KPU kerjanya benar. Kita dapat menguji apakah data yang ada di KPU sama dengan data yang ada di TPS kita. Kesalahan memasukkan data dapat terjadi. Perhatikan bahwa para petugas-petugas di lapangan bekerja keras, berjibaku menunaikan tugasnya. Bahkan ada yang bertugas lebih dari 24 jam. Kelelahan. Tentu saja ada kemungkinan salah menghitung atau salah melakukan data entry. Maka keberadaan web KPU dan kejelian mata kita untuk mendeteksi kesalahan dan melaporkannya kepada mereka. Itu akan menjadi umpan balik (feedback) bagi mereka untuk melakukan check & recheck.

Kalau web KPU dirusak, maka kita tidak punya kesempatan untuk ikut mengawasi. Upaya merusak web KPU itu menurut saya merupakan kejahatan kriminal yang harus dipidana. Maka menjaga web KPU merupakan tugas kita semua. Tugas seluruh warga Indonesia. Bagi yang melakukan pengrusakan, cabut saja kewarganegaraannya! Jika Anda melihat orang yang melakukan pengrusakan web KPU, tegur dan/atau laporkan ke Polisi. Sanggupkah kita melakukan tugas ini? Bersama-sama, kita pasti bisa! Mosok tidak bisa sih? Malu-maluin. Sini …

Khusus untuk Pemilu 2019, link kepada hasil perhitungan (sementara) ada link berikut ini. (Gunakan untuk memantau hasilnya ya. Jangan dirusak.)

https://pemilu2019.kpu.go.id/#/ppwp/hitung-suara/

sumber gambar


Aturan Lokasi Data

Salah satu yang didobrak oleh pemanfaatan teknologi informasi adalah batasan ruang dan waktu. Sekarang sulit untuk mendefinisikan ruang dan waktu untuk hal-hal yang terkait dengan aplikasi atau layanan yang menggunakan teknologi informasi. Sebagai contoh, sebuah perusahaan di Indonesia menggunakan layanan dari perusahaan Singapura yang memiliki pusat data (data center) di Amerika. Klien (nasabah) dari perusahaan itu warga negara Perancis yang sedang berada di Inggris. Ketika terjadi transaksi, hukum (aturan) mana yang mau dipakai? Indonesia? Singapura? Amerika? Perancis? Inggris?

Sekarang tambah lebih rumit lagi dengan keberadaan layanan “cloud”, yang pada prinsipnya kita tidak perlu tahu lagi lokasi fisik keberadaan data (atau server) kita. Contoh sederhananya adalah kalau kita membuka email kita di Gmail, sebetulnya secara fisik itu data kita berada dimana ya? (Ini belum membicarakan soal backup dan disaster recovery center / DRC.)

Secara bisnis, keberadaan layanan seperti cloud itu memudahkan (dan bahkan lebih murah). Namun secara hukum agak sulit. Sebagai contoh, kalau kita memiliki data transaksi yang bersifat rahasia dan data tersebut secara fisik berada di negara lain, maka akan sulit ketika terjadi masalah atau sengketa. Pengadilan, misalnya, meminta data transaksi tetapi negara dimana data tersebut secara fisik berada tidak memperkenankan datanya diberikan ke pihak lain (aturan privasi di negara tersebut, misalnya). Maka data tidak tersedia. Inilah sebabnya peraturan di berbagai negara (termasuk Indonesia) mewajibkan letak data secara fisik di negaranya.

Di satu sisi, ini dapat “merugikan” secara bisnis. Layanan penyimpanan data di luar negeri boleh jadi lebih murah. Namun, dilihat dari kacamata keamanan (sebagaimana diuraikan di atas), ini bermasalah. Jika kita memilih keamanan (dan sovereignty) dari data kita lebih penting, maka peraturan yang mengharuskan letak data secara fisik harus di Indonesia.

Tambahan lagi adalah pendekatan ini juga menghidupkan bisnis terkait di Indonesia. Keberpihakan ini sangat penting di era persaingan yang kurang seimbang ini. Negara lainpun melakukannya.

Pendapat saya, untuk saat ini lebih baik letak data secara fisik harus berada di Indonesia.

Mengajarkan Cyber Security

Minggu lalu saya diminta untuk memberikan presentasi tentang cyber crime (yang akhirnya saya buat lebih umum menjadi cyber security) kepada siswa SMP, SMA, guru-guru dan orang tua di Al Izhar Jakarta. Baiklah. Ini merupakan tantangan tersendiri karena biasanya pendengar presentasi saya adalah mahasiswa.

Beberapa hal utama yang saya sampaikan adalah tentang privasi dan hoax. Bagaimana kita harus menjaga privasi kita dan berbagai kemungkinan serangan terhadap pencurian data pribadi kita. Sementara tentang hoax adalah kita harus MAU mencari informasi dan banyak membaca. (Kata MAU memang sengaja saya tebalkan karena masalahnya bukan bisa atau tidak bisa melainkan mau atau tidak mau.)

Secara umum acaranya berjalan lancar. Sayangnya saya tidak banyak mengambil foto. Maklum, susah kan menjadi pembicara dan mengambil foto.

IMG_20180928_094643 kids
kids are always kids

Foto di atas adalah foto siswa SMP. Bagaimana kalau guru-gurunya berfoto? Sama saja. ha ha ha.

guru-al-izhar_0001

Semoga apa yang saya presentasikan dapat bermanfaat bagi semuanya.

Source Code Versioning & Security

Dalam kuliah “Software Security” yang saya ajarkan minggu lalu, kami berdiskusi mengenai topik “source code versioning” dan “security“. Apa kaitannya keduanya? Adakah kaitannya?

Source code versioning adalah sebuah kegiatan dalam pengembangan perangkat lunak. Pada awalnya pengembangan perangkat lunak dilakukan secara serampangan. Tidak ada metodologi. Pokoknya asal jadi saja. Salah satu masalah yang muncul adalah ketidakjelasan versi yang digunakan. Misal, di sistem produksi ada masalah dengan perangkat lunaknya. Dia menggunakan versi 1.1. Sementara itu di bagian pengembangan, perangkat lunaknya sudah sampai ke versi 1.7. Agak sulit menentukan masalah karena ada perbedaan versi. Masalah lain juga dapat terjadi ketika terjadi upgrade. Misal, perangkat lunak dari versi 1.1 diperbaharui menjadi versi 1.3 kemudian diperbaharui lagi ke versi 1.7. Ternyata ada masalah di versi 1.7, maka perangkat lunak harus dikembalikan ke versi sebelumnya. Tanpa menggunakan versioning, ini akan sulit dilakukan.

Saat ini ada banyak sistem source code versioning ini. Yang paling terkenal saat ini adalah Git.

Mari kita sekarang membahas topik utamanya; hubungan antara code versioning ini dengan security. Dalam diskusi yang kami lakukan, kami belum menemukan hubungan atau alasan yang dapat diterima dengan mudah bahwa code versioning itu mendukung security. Yang kami temukan adalah alur seperti ini:

Pengembangan perangkat lunak sangat disarankan (harus?) menggunakan code versioning. Karena code versioning ini digunakan, maka hal-hal yang terkait dengan itu harus aman (secure). Kendali-kendali keamanan apa saja yang sudah diterapkan?

Itu yang baru dapat kami utarakan.

Cyber Intelligence Asia 2018

Hampir seminggu ini saya berada di Singapura. Acara utama yang saya kunjungi adalah Cyber Intelligence Asia 2018. (Kalau disingkat bisa jadi CIA 2018. CIA, biasanya di dunia security merupakan singkatan dari Confidentiality, Integrity, dan Availability. Jadi pas juga.) Cyber Intelligence Asia ini adalah acara tahunan yang lokasi penyelenggaraannya pindah-pindah. Kali ini di Singapura. Sayangnya belum pernah di Indonesia.

Topik yang dibahas di acara ini terkait dengan cyber security di negara atau organisasi masing-masing pembicara. Asyiknya adalah kita dapat membahas banyak hal secara terbuka, yang mana ini akan sulit jika dibahas tanpa tatap muka. Ada banyak “rahasia”. Kita dapat belajar bagaimana negara lain menangani kasus kejahatan ATM di negara mereka, misalnya. Atau bagaimana mereka mengembangkan framework cyber security di negara mereka.

IMG_20180322_083731 day2

Sudah beberapa acara CIA ini saya diminta untuk menjadi chairman-nya. Tugas saya adalah mengatur agar acaranya berjalan lancar; memastikan pembicara tidak melebihi waktunya, menyiapkan pertanyaan jika peserta tidak bertanya. Lumayan repotlah.

Topik acara kali ini cukup lumayan bagusnya. Sama seperti tahun-tahun sebelumnya. Sayangnya jumlah pesertanya kelihatannya menurun. Mungkin karena bersamaan dengan acara ini ada banyak acara cyber security lainnya di Singapura. Misalnya, Blackhat sedang berlangsung juga. Anyway, acara ini sukses.

IMG_20180322_143323_HDR 0001

Berburu Hash

Ini cerita tentang tugas atau pekerjaan rumah mahasiswa saya. Ceritanya saya mengajar kuliah keamanan informasi (information security). Salah satu bagian dari materinya adalah tentang kriptografi dan minggu lalu kami membahas fungsih hash.

Apa itu fungsi hash? Bisa panjang lagi ceritanya. (Nambah daftar topik yang perlu diceritakan.) Singkatnya fungsi hash adalah fungsi satu arah yang dapat memberikan ciri atau tanda-tanda (signature) dari data digital (stream of data, files, dan-lain-lain). Contoh fungsi hash yang terkenal adalah MD5 dan SHA256.

Misal ada sebuah berkas (bernama “pesan1.txt”) yang berisi “beli 10000”. Maka hasil SHA 256 (algoritma SHA dengan panjang bit 256) dari teks tersebut dapat dilihat pada contoh di bawah ini.

unix$ echo "beli 10000" | shasum -a 256
375a6c46228994656932f4aa17d9ae50f21da75a31ff17f8517c255c06cba809 -

unix$ cat pesan1.txt
beli 10000
unix$ shasum -a 256 pesan1.txt
375a6c46228994656932f4aa17d9ae50f21da75a31ff17f8517c255c06cba809 pesan1.txt

unix$ cat pesan2.txt
beli 1000
unix$ shasum -a 256 pesan2.txt
5901bccc6a0556fac2b4a164ef831a7ed4ceddeb60c6ddde1162f5a40b9d2917 pesan2.txt

Pada contoh di atas ditunjukkan jika kita memiliki data yang berbeda – dicontohkan dengan berkas “pesan2.txt” yang berisi “beli 1000” (hilang satu angka nolnya) – maka hasil hash-nya pun berbeda. Bahkan, sangat jauh berbeda.

Hal lain dari fungsi hash adalah, jika kita diberikan sebuah hasil hash, maka akan sangat sulit bagi kita untuk merekonstruksi ulang berkas aslinya.

Kebetulan saat ini yang sedang ngetop adalah blockchain. Atau lebih ngetopnya adalah Bitcoin-nya. Salah satu dasar dari blockchain adalah fungsi hash. Maka salah satu tugas mahasiswa di kelas saya adalah berburu (hasil) hash.

Skenarionya adalah kita memiliki sebuah pesan “A>B,5000” (tanpa tanda kutip). Pesan ini ditambahkan nonce, sebuah angka (data, string) yang diambil “dari langit”, dan kemudian keduanya di-hash-kan dengan SHA256.

A>B,5000
NONCE

Ada sedikit “perlombaan” di kelas, yaitu siapa yang berhasil menghasilkan hash terkecil adalah pemenangnya. Cara menguji angka hash yang kecil adalah dengan melihat jumlah “0” di depannya. Yang perlu dicari adalah nonce-nya tersebut. Jadi carilah nonce yang menghasilkan nilai hash paling kecil. Silahkan diperlombakan. Kalau di kelas diberi waktu satu minggu. Pemenangnya akan saya beri hadiah buku.

[Catatan: konsep ini mirip dengan konsep “miner” di bitcoin.]

Memulai Perkuliahan Lagi

Hari ini sebetulnya sudah merupakan minggu kedua dari perkuliahan di ITB. Semester ini saya mengajar tiga (3) mata kuliah. Semuanya di bidang information security:

  • II3230 – Keamanan Informasi (Information Security)
  • EL5215 – Keamanan Perangkat Lunak (Software Security)
  • EL6115 – Secure Operation and Incident Handling

Ini potret yang saya ambil di kelas Keamanan Informasi minggu lalu.

ITB information security class 2018

Kelasnya dimulai pagi sekali, pukul 7 pagi. Ayo semangat! Semoga tetap bersemangat sampai akhir semester.

Verifikasi NIK dan KK

Mumpung sedang ramai-ramainya dibahas tentang pendaftaran ulang nomor kartu telepon prabayar, mari kita diskusikan aspek teknis. Kesempatan untuk belajar “protokol”.

Ceritanya kita sebagai pengguna diminta untuk mengirimkan NIK dan KK melalui SMS ke 4444. Saya punya masalah dengan mengirimkan KK. Mengapa harus mengirimkan KK? Permasalahannya adalah operator jadi memiliki KK kita. Untuk apa? Seharusnya kita berikan informasi secukupnya saja. Sesedikit mungkin. Ini masalah privasi. Pertanyaannya adalah bagaimana cara operator dapat memastikan bahwa NIK yang kita kirimkan itu benar (terasosiasi dengan KK)?

Berikut ini adalah video yang saya buat (beberapa menit yang lalu). Sekalian nyoba nge-vlog agar kekinian. hi hi hi.

Selamat menikmati videonya. Semoga bisa menjadi sumber pembelajaran.

Update: Ini ada cuplikan dari berita. Di gerai bisa akses KK; diberikan data NIK, keluar KK-nya. Parah. Ini seharusnya tidak boleh karena data KK kemudian dapat dikumpulkan.

NIK KK

Update lagi: berikut ini adalah tampilan layar papan tulis (whiteboard) ketika saya mengajar network security di kelas.

P_20171108_084040 NIK KK//embedr.flickr.com/assets/client-code.js

P_20171108_090635 NIK KK//embedr.flickr.com/assets/client-code.js

P_20171108_092802 NIK KK//embedr.flickr.com/assets/client-code.js