Password

Password adalah metode autentikasi yang paling umum. Password memiliki banyak kelebihan, tapi juga banyak kekurangan. Contoh kelebihannya: sangat sederhana, mudah dishare, tidak butuh hardware khusus. Sementara itu kelemahan password: mudah dishare artinya bisa disalin dengan mudah, bisa dibruteforce, bisa terjadi password reuse, dsb.

Saat ini masalah yang sangat umum adalah ini: orang memakai password yang sama di berbagai layanan. Jika satu layanan jebol, dan password Anda ketahuan untuk semua situs lain (bisa dengan bruteforce/dictionary attack, bisa juga situs itu menyimpan plaintext password). Banyak situs kecil yang passwordnya bocor (atau mungkin bahkan pemilik situsnya jahat), tapi jangan kira situs besar tidak bisa bocor.

Selain kebocoran dari berbagai situs, password juga kadang bisa didapatkan dari mengendus (sniff) paket jaringan. Password juga bisa dengan mudah didapat dari menggunakan keylogger (program atau hardware yang menyimpan setiap tombol yang Anda tekan).

Ada berbagai solusi yang ditawarkan untuk masalah password ini, dari mulai tidak menyimpan password, menyimpan password, mengganti atau menambahkan autentikasi lain.

Lanjutkan membaca “Password”

Kesan pertama CHIP dan PINE64

Posting ini hanya sekedar review singkat, kesan pertama memakai CHIP dan PINE64. Semoga di lain waktu bisa saya buat posting baru yang lebih detail.

Di hari pertama kerja setelah liburan, saya disambut oleh dua paket yang tiba di kantor: Pine64 dan CHIP. Kedua benda ini sudah saya preorder lama sekali. CHIP saya pesan di Cyber monday 30 November 2015, dan PINE64 saya pesan 20 Maret 2016.

CHIP

Saya pertama kali mendengar CHIP dari Kickstarter yang fenomenal (2 juta dollar), tapi masih agak ragu mendukungnya karena agak mengkhawatirkan. Tapi akhirnya karena penasaran saya beli juga di Cyber Monday. Di Cyber Monday ada diskon CHIP, tadinya 9 USD menjadi 8 USD, jadi saya memesan dua dengan ongkos kirim 6 USD, jadi totalnya 22 USD untuk dua CHIP. Saat ini saya cek di website getchip.com harganya 9 USD belum termasuk kabel composite (5 USD), case (2 USD) dan ongkos kirim. Ketika saya menerima CHIP, di dalamnya sudah termasuk ada kabel composite dan case yang sudah dipasang, jadi saya benar-benar beruntung memesan jauh hari.

20160711_145513

Secara singkat CHIP ini adalah sebuah SBC berukuran mini dengan built in bluetooth, WIFI, NAND flash, USB, dengan RAM 512 MB. SOC yang dipakai benda ini adalah Allwinner R8. Tidak ada slot SD/MicroSD card di CHIP, dan tidak ada konektor Ethernet. Saat ini hanya ada satu model CHIP.

Karena sudah memiliki built in flash storage, maka kita tidak perlu mendownload atau mencari image lalu menuliskannya ke SD Card. Begitu dibuka, kita bisa mencolokkan CHIP ke monitor dan langsung bisa diboot dengan power dari micro USB.

Kendala pertama untuk CHIP adalah: konektor output built in hanya composite, sedangkan monitor komputer saya hanya bisa VGA, HDMI, dan DP. Sebenarnya ada board terpisah untuk menampilkan output CHIP via konektor VGA atau HDMI, tapi harganya mahal untuk VGA harganya 10 USD, dan untuk HDMI harganya 15 USD, lebih mahal dari CHIP itu sendiri. Karena saya pelit, saya tidak membeli keduanya.

Untungnya saya ingat kalo masih punya TV kecil yang tadinya dipakai di mobil (sekarang yang di mobil sudah diganti yang agak besar).

IMG_0920

Karena hanya memiliki satu port USB host, maka saya memakai hub agar bisa memakai mouse dan keyboard sekaligus. Sebenarnya benda ini memiliki bluetooth, jadi teorinya bluetooth mouse dan keyboard bisa dipakai, tapi karena saat ini saya tidak punya keduanya, saya pakai USB saja.

Sebenarnya ada cara lain untuk mengakses CHIP ini, yaitu via USB di komputer, CHIP akan dianggap sebagai serial port dan bisa kita akses dari program terminal yang bisa mengakses serial port seperti Putty, Minicom, Screen dsb. Saya ingin menghubungkan ke monitor karena penasaran seperti apa GUI-nya dan seperti apa proses bootnya.

ttylogin.png

Ukuran NAND flash-nya memang hanya 4GB, tapi yang dipakai OS hanya 528 MB, jadi cukup untuk menyimpan banyak hal tanpa perlu storage external. Kebanyakan SBC lain tidak memiliki built ini NAND (misalnya Raspberry Pi). Di satu sisi memiliki built in NAND ini sangat praktis: tidak perlu download image untuk bisa memulai, tidak perlu membeli SD Card terpisah, performanya lebih bagus dibandingkan SD Card. Tapi di lain pihak memiliki SD Card juga ada kelebihannya: mudah berganti OS (hanya perlu menukar SD Cardnya), kapasitasnya bisa kita beli sesuai keinginan kita.

Built in WIFI dan Bluetooth menurut saya akan sangat berguna untuk berbagai proyek. Salah satu yang kepikiran oleh saya adalah mengubah keyboard apapun menjadi bluetooth keyboard (misalnya mechanical keyboard biasa supaya jadi bluetooth enabled). Port micro USB di board ini sebenarnya adalah port OTG, jadi teorinya benda ini juga bisa mengemulasikan device USB apa saja.

Beberapa hal sudah saya lihat tapi belum dicoba, misalnya untuk melakukan flash ulang kita bisa menggunakan browser Chrome (ada API bagi Chrome Extension untuk bisa mengakses USB sehingga ini dimungkinkan). Ada juga konektor untuk batere dan ada sirkuit built in sehingga baterenya akan dicharge ketika kita mencolokkan micro USB ke CHIP.

Secara singkat, CHIP ini cocok sekali untuk menambahkan kapabilitas IOT pada benda lain. Harganya murah, ukurannya kecil, sudah ada konektivitas bluetooth dan WIFI, dan bahkan bisa menggunakan batere dengan sirkuit charging yang sudah built-in. Secara umum CHIP mendapatkan review yang positif dari banyak pihak, dan cukup cocok untuk pemula. Cocok untuk pemula di sini maksudnya: cara mulai memakainya mudah, komunitasnya cukup besar dan baik.

Kelemahan CHIP adalah jika kita butuh sesuatu yang ekstra maka harganya akan menjadi cukup mahal. Contoh: jika butuh ingin dihubungkan ke TV melalui HDMI maka kita perlu menambah 15 USD lagi. Jika ingin dihubungkan ke beberapa USB maka perlu hub (contohnya jika storage tidak cukup maka perlu USB disk atau USB Card reader + memory card-nya).

Jika keperluannya untuk menonton film atau sebagai media center, maka pasti butuh HDMI, jadi harganya minimal 9 USD (chip) + 15 USD (HDMI adapter) = 24 USD. Dengan 11 USD ekstra Anda bisa membeli Raspberry Pi terbaru dengan RAM 1 GB dan sudah quad core, memiliki WIFI dan Bluetooth, dan memiliki 4 port USB.

Saya sedang mempelajari lebih lanjut dan mempertimbangkan apakah akan membeli PocketCHIP atau tidak (saat ini sedang promo, 49 USD, harga biasanya 69 USD). PocketCHIP ini adalah casing berupa layar dan keyboard CHIP yang bisa dikantongi. Benda ini cukup unik karena SBC yang lain tidak menawarkan solusi seperti ini.

PINE64

Device berikutnya yang saya test adalah PINE64. SBC ini muncul di kickstarter dan cukup sukses (1.7 juta USD terkumpul). Review awalnya cukup negatif, tapi saya sudah terlanjur pesan. Alasan utama membeli benda ini adalah karena saya ingin bereksperiman dengan assembly ARM64 (board yang lain waktu itu masih sangat mahal). Dari jumlah yang dikumpulkan di kickstarter (yang artinya banyak orang memiliki benda ini), saya berharap bisa terbentuk komunitas yang kuat seperti Raspberry Pi.

Sebagai catatan: saat ini meski belum didukung resmi, Raspberry Pi 3 sudah bisa menjalankan Linux ARM64. Jadi jika ingin sekedar belajar ARM64, Raspberry Pi3 juga bisa dipakai.

Ada beberapa opsi PINE64, memorinya bisa 512 MB, 1GB atau 2GB, dan apakah kita ingin ekstra WIFI/Bluetooth (semuanya memakai SOC Allwinner A64). Versi 1G dan 2GB memiliki ethernet gigabit (keduanya ini disebut juga PINE A64+). Karena tujuan saya ingin belajar di sisi software, saya pilih RAM terbesar yaitu 2GB, dengan harga 29 USD (RAM yang terkecil 512 MB cuma 15 USD). Saya beli juga modul WIFI/Bluetooth (+10 USD), karena mungkin nanti berguna. Ongkos kirimnya cukup mahal: 12 USD ke Thailand.

20160711_101658

Ketika saya membuka kotaknya, kesan pertama saya adalah: wow besar sekali ukurannya, lebih besar dari SBC lain yang saya punya. Dengan ukurannya yang besar, jelas ini kurang cocok untuk IOT, lebih cocok di taruh di atas meja sebagai server, media player atau desktop. Ternyata opsi WIFI/BT diberikan dalam bentuk board yang perlu kita pasang (sangat mudah, tidak mungkin terbalik).

IMG_0921

Untuk testing, saya mendownload Debian tanpa desktop. Saya tidak berharap akan langsung sukses mengingat review awal cukup jelek, tapi ternyata booting bisa lancar dan langsung muncul pesan boot di layar via konektor HDMI. Ini berbeda dengan ketika saya mencoba Orange Pi, kadang booting berhasil tapi tidak tampil apa-apa di layar walau bisa diakses via jaringan.

pine64

Saya baru mencoba benda ini sebentar sekali, jadi belum bisa berkomentar banyak. Kesan pertama: benda ini cepat, konektornya ada banyak selain baris konektor kompatibel dengan PI, ada baris konektor ekstra yang diberi nama Euler, ada konektor headphone, IR Receiver dan bahkan bisa memakai batere seperti CHIP juga.

Sesuai dengan tujuan utama: untuk mengetes software Arm64 bit, saya bisa dengan mudah mengcompile dan mendebug hello world seperti pada umumnya di platform lain.

arm64

Ada banyak yang belum saya test di PINE64 (dan saya tidak tahu apakah akan segera saya test atau tidak). Contoh hal-hal yang bisa ditest: Android di PINE64, memutar video di Pine64, GPIO, dsb. Yang jelas untuk saat ini saya hubungkan saja benda ini ke jaringan supaya bisa saya akses dan pelajari kapan saja.

Parahnya Internet mobile di Indonesia

Setelah lebih dari seminggu di Indonesia dalam rangka liburan, sekarang saya mulai mengerti berbagai komplain terhadap internet di sini. Karena saya hanya memakai koneksi mobile, maka di judul ini saya sebutkan “mobile”, koneksi yang lain mungkin lebih baik (tapi mungkin juga tidak).

Yang sudah saya ketahui dan alami dari dulu adalah blokir DNS. Berbagai situs yang sering saya kunjungi (reddit, imgur) diblokir. Tahun sebelumnya saya memakai dnscrypt untuk membypass ini.

blokir

Berikutnya adalah iklan yang disisipkan di koneksi HTTP. Bahkan ini mempengaruhi sebagian aplikasi, contohnya AliExpress. Kadang sisipan ini membuat fungsionalitas tidak berjalan.

Iklan yang disisipkan pun sepertinya random, tidak kontekstual dan tidak memperhatikan tracking apapun (iklan di facebook dan situs lain biasanya disesuaikan dengan situs yang kita kunjungi atau pencarian yang kita lakukan). Contohnya ini iklan rokok, padahal saya tidak merokok sama sekali (bagaimana jika iklan ini dilihat anak-anak?)

Screenshot_2016-07-03-06-14-56

Salah satu client perusahaan tempat saya bekerja memakai sistem IP whitelisting untuk meningkatkan keamanan aplikasi. Setidaknya dengan cara ini attacker harus bisa masuk ke IP whitelist sebelum bisa melakukan serangan apapun terhadap aplikasi. Waktu saya diminta melakukan pengecekan singkat (karena ada sesuatu yang saya tinggalkan sebelum liburan), saya memasukkan IP publik saat ini ke whitelist, tapi ketika mencoba lagi pesannya tetap sama “IP Anda tidak ada di whitelist”.

Sepertinya ini terjadi karena koneksi sangat tidak stabil, sehingga sering kali proses connect/reconnect terjadi dan saya sering mendapatkan IP baru.

Untungnya tahun ini saya sudah mempersiapkan diri: saya sudah mempersiapkan koneksi VPN dengan OpenVPN. Instalasi di sisi server mudah dilakukan dengan OpenVPN road warrior installer for Debian, Ubuntu and CentOS. Client OpenVPN tersedia untuk Android, iOS, Windows, Linux, jadi mudah melakukan koneksi dari device mana saja.

Dengan VPN, persoalan blokir bisa dibypass, iklan juga tidak akan muncul. Saya tidak memakai layanan VPN dari 3rd party karena tidak mau membayar ekstra untuk VPN yang jarang saya akses, sedangkan VPN ini bisa dilakukan via server yang sudah saya sewa. Kelebihan lainnya: saya bisa menginstall proxy server dengan adblocker di server saya supaya koneksi bisa lebih lancar dan cepat. Server saya ini juga menyelesaikan masalah untuk memiliki fixed public IP (karena pasti exit node-nya hanya satu IP saja).

Screenshot_2016-07-03-06-39-20

Dari pengamatan, penggunaan VPN ini tidak terlalu mempengaruhi browsing sehari-hari karena walaupun ada overhead koneksi ke server VPN, paket data akan dikompres (kompresi ini bagian dari protokol VPN). Jika saya ingin mendownload sesuatu dan tidak diblokir, biasanya saya matikan VPN-nya.

Sebagai tambahan: browser opera (saat ini baru versi developer) juga memiliki fitur VPN built in, tapi hanya bisa dilakukan di private mode (jadi agak repot untuk browsing yang perlu login karena akan terlogout lagi/tidak diingat).

HP Lama untuk IOT

Setelah membaca blognya pak Budi Raharjo yang mempertanyakan apakah HP lama bisa untuk IOT (Internet Of Things), saya ingin berkomentar , tapi karena panjang jadi saya tulis saja jadi posting blog tersendiri.

cimg1988

HP sudah ada cukup lama, saya memakainya sejak 1999, dan sekarang sudah ada banyak generasi HP. Generasi awal biasanya bisa dimanfaatkan sebagai modem SMS, baik menggunakan kabel data serial ataupun FBUS/MBUS. LCD Nokia tertentu (misalnya 5110) bisa dikanibal untuk menjadi display (bahkan sekarang LCD ini masih dijual di Aliexpress dan berbagai situs lain). Generasi berikutnya yang mendukung GPRS bisa dipakai menjadi modem.

Dulu sempat ada usaha juga membuat firmware alternatif untuk Nokia tertentu. Dengan firmware tersebut, teorinya kita bisa menggunakan ponsel sebagai “otak” sebuah benda iOT. Untuk ponsel berbasis TI Calypso (misalnya Motorolla C115/123/140/155, Sony Ericsson J100i) firmware dari OsmocomBB bisa digunakan (proyek ini masih aktif).

Sekilas ponsel yang mendukung J2ME bisa diprogram untuk mengendalikan benda lain via bluetooth/IR/Internet. Pada praktiknya ini sulit karena biasanya tiap kali akan melakukan koneksi, user akan ditanya dulu: boleh atau tidak. Jaman dulu sebuah aplikasi harus minta ijin user untuk melakukan koneksi apapun. Supaya bisa diset agar tidak minta ijin, kita perlu menandatangani secara digital (inipun tidak universal, signing dengan certificate dari pihak tertentu kadang hanya berlaku di beberapa merk HP saja).

Ponsel dengan OS Symbian, Palm OS (sempat ada beberapa smartphone berbasis PalmOS), Windows Mobile cukup terbuka untuk bisa diprogram melakukan apa saja. Saya dulu pernah memprogram driver untuk Windows Mobile dan tidak perlu code signing.

Ponsel dengan OS modern seperti Android dan iOS bisa dimanfaatkan dengan dua cara. Pertama ponsel bisa menjadi otak, dan pengendalian benda bisa dilakukan dengan bluetooth, WIFI, USB dan bahkan NFC. Koneksi Bluetooth iOS hanya bisa dilakukan di versi baru dengan BLE (Blutooth Low Energy) sedangkan bluetooth di Android bisa dikoneksikan ke modul hardware murah (sekitar 4 USD). Beberapa ponsel Android mendukung mode Host sehingga bisa dihubungkan ke device USB apa saja.

Pemanfaatan kedua adalah memanfaatkan sensor di ponsel (yang jumlahnya sangat banyak) dan datanya distream ke Raspberry atau benda lain. Bagian ini belum saya coba, tapi sudah ada saudara yang mencoba:

Using phone’s accelerometer x & y axis as controller #raspberrypi

A video posted by Andi Dinata (@mdinata) on

Sejujurnya: meskipun ponsel dan hardware lama masih bisa dimanfaatkan, saya lebih suka membeli hardware baru saja. Dokumentasi lebih banyak, harga juga relatif terjangkau, jadi saya tidak mengorbankan banyak waktu ataupun biaya. Tapi jika Anda punya banyak ponsel yang ingin dimanfaatkan, mungkin beberapa hal yang saya share ini bisa berguna.

Facebook Instant Articles dan Google Accelerated Mobile Pages

Akhir-akhir ini ketika membuka Facebook app mobile, semakin banyak berita atau artikel yang bisa dibaca secara instan. Ketika kita men-tap linknya, artikel langsung muncul instan di dalam aplikasi Facebook (bukan di browser). Artikel semacam ini memiliki versi Instant Articles yang disimpan oleh Facebook, dan ada simbol petir di kanan atas link untuk menunjukkan hal tersebut.

Screenshot_2016-06-15-06-53-54

Tujuan FB membuat Instant Articles adalah agar orang bisa lebih nyaman membaca artikel, dan tidak meninggalkan aplikasi FB ketika membaca artikel. Ketika Instant Articles diperkenalkan dan spesifikasinya belum dibuka untuk umum, sebagian orang sempat mengkhawatirkan bahwa ini bisa “memecah belah” web dengan artikel yang hanya bisa diakses dari FB saja. Ternyata fitur ini memakai teknologi yang terbuka.

Lanjutkan membaca “Facebook Instant Articles dan Google Accelerated Mobile Pages”

Catatan Apps: Android

Sejak jaman dulu saya suka memakai HP yang bisa diinstall aplikasi. Saya dulu bahkan membeli SL45i, HP pertama dengan J2ME. Sejak jaman dulu sudah ada banyak aplikasi saya coba baik itu di J2ME, Symbian, Blakcberry, iOS, Windows Mobile maupun Android. Tidak seperti aplikasi PC yang mudah sekali untuk kembali bernostalgia dengan DOSBox, VirtualBox dan aplikasi sejenis lainnya, agak sulit kembali mengenang aplikasi mobile yang dipakai jaman dulu. Jadi seri posting ini hanya sekedar jadi catatan aplikasi yang saya pakai sekarang untuk dikenang di masa depan.

Screenshot_2016-06-14-15-55-22

Dulu saya sangat rajin mengoprek Android, tapi sekarang lebih berfokus ke bagian securitynya (terutama pentesting, atau kadang iseng membongkar exploit seperti ini). Ngoprek yang saya maksud mulai dari mengcompile ulang kernel, mengcompile ulang aplikasi open source (dengan modifikasi saya), sampai mengcompile seluruh ROM juga (waktu dulu masih memakai Nexus).

Sekarang ini HP Android yang saya pakai ada dua: Samsung Note 4 (HP Utama), dan Android One (IQ Mobile II) untuk dioprek (misalnya bisa untuk beta test Android N). Lanjutkan membaca “Catatan Apps: Android”

Pi Zero, Roseapple Pi, Orange Pi PC, dan Raspberry PI 3

Akhir-akhir ini selain Raspberry Pi 1 & 2 yang sudah saya miliki (plus Beaglebone XM yang sudah saya punya dari dulu), saya menambah beberapa Single Board Computer (SBC) lagi.

Pi Zero

Benda pertama adalah Raspberry Pi Zero. Semestinya ini adalah SBC termurah (5 USD saja), tapi sampai saat ini setiap kali ada stock langsung habis. Beberapa penjual di eBay bahkan menjual dengan harga sampai 60 USD. Penjual online resmi juga banyak yang memanfaatkan kelarisan Pi Zero ini dengan melakukan bundling (harus membeli bersama kit yang harganya lebih dari 20 USD).

20151203_123110
Majalah MagPi

Saya beruntung karena bisa mendapatkan Pi Zero dari majalah MagPi edisi 40. Saya segera memesan majalah ini ketika dilaunch (Majalahnya 10 USD, ongkir 5 USD).

Lanjutkan membaca “Pi Zero, Roseapple Pi, Orange Pi PC, dan Raspberry PI 3”