Category Archives: Programming

e-KTP dan Security (Bagian II)

Update (29/11/2014):

  1. Aplikasi proof of concept pembacaan e-KTP ini saya putuskan untuk dipublish ke Play Store
  2. Jika ada yang berminat atau penasaran ingin mencoba ngulik contactless card berbasis ISO-DEP/ISO14443-4 (termasuk dalam pengujian pembacaan data foto e-KTP ini saya menggunakan tools ini); bisa langsung install aplikasi APDU Debug di Play Store

Melanjutkan postingan sebelumnya mengenai keamanan e-KTP karena terlalu panjang sebagai update postingan sebelumnya, maka saya putuskan untuk menjadi postingan terpisah.

Kembali ke tujuan awal dari postingan saya, yang sebenarnya adalah memberikan semacam alert kepada institusi pemerintahan pengelola e-KTP. Bahwa ada celah keamanan yang mungkin bisa dieksploitasi lebih lanjut oleh siapa pun di luar sana. Celah ini bukan pada desain sistem e-KTP, melainkan pada implementasi di lapangan. Sehingga memungkinkan orang yang tidak berkepentingan (red: non pemerintah) mendapat materi dalam hal ini aplikasi termasuk library untuk membaca e-KTP. Exploit lebih lanjut bisa saja dilakukan oleh expert-expert di luar sana 😀

Lalu PoC untuk membaca e-KTP?

Continue reading

e-KTP dan Security (Bagian I)

Mungkin mengenai teknologi pengamanan data pada e-KTP sudah pernah dibahas secara detail di sini. Mulai dari enkripsi data dengan algoritma enkripsi yang katanya paling kuat (walaupun masih symmetric) sampai dengan penggunaan biometric untuk autentikasi data.

Lalu data aman? secara teori keamanan data selain dari teknologi ada faktor lain yaitu lingkungan penggunaan teknologi tersebut. Ingat bagaimana social engineering bekerja? kurang lebih begitu maksud saya.

Saya coba membedah mengenai keamanan e-KTP ini melalui pendekatan tersebut.

Continue reading

Delphi SecondsBetween Bugs?

Ada sebuah kasus teknis (programming) dalam hal ini adalah Delphi (versi 7, ntahlah di versi-versi yang lain). Tujuannya adalah menghitung selisih waktu detik antara dua buah satuan waktu.

Waktu awal: 2010/02/15 13:51:34, waktu akhir: 2010/02/15 13:51:21.

Secara kasat mata atau perhitungan manual kita tahu bahwa selisih waktu awal dan waktu akhir adalah 13 detik. Tapi coba hitunglah selisih waktu di atas dengan menggunakan sebuah fungsi di Delphi yang dikhususkan untuk menghitung selisih waktu dalam satuan detik. SecondsBetween.

Hasilnya adalah sebuah angka yang tidak sesuai dengan harapan, yaitu 12 detik.

Namun untuk beberapa kasus, fungsi SecondsBetween memberikan nilai perhitungan yang benar seperti untuk data input:

Waktu awal: 2010/02/15 16:50:13, waktu akhir: 2010/02/15 16:50:14. Hasilnya adalah 1 detik.

Dan pada akhirnya sampai pada pertanyaan mendasar: kenapa begitu?

Adakah bugs dalam fungsi SecondsBetween?

Continue reading