Teringat saat membaca tulisan Pak Waskita tentang Single Sign On di Perguruan Tinggi Indonesia Tahun 2012, ITB memiliki dua Single Sign On (SSO). Sejauh pemahaman saya SSO merupakan aplikasi login untuk mengakses beberapa aplikasi lainnya. Seperti halnya Google, kita hanya butuh sekali login untuk bisa menggunakan Gmail, Gplus, Youtube, dan masih banyak lagi. Sekilas SSO memberi kemudahan kepada user, sekali login untuk melakukan banyak hal. Tapi, saat username dan password kita bocor, akan ada banyak komplikasi yang terjadi.

Dua SSO ITB berupa SSO dari Direktorat STI (biasa disebut AI3 / INA) dan dari Direktorat Pendidikan (untuk mengakses layanan akademik). Saya kira SSO dari Direktorat Pendidikan cukup secure karena akan ada captcha ketika beberapa kali gagal login. Lalu bagaimana dengan AI3? Tulisan ini menceritakan pengalaman saya bersama AI3 ITB.

Cerita dimulai dari bulan November 2016. Saat itu kami satu kelas diberi tugas individu oleh dosen untuk membuat web service. Salah satu teman saya membutuhkan data dari mahasiswa ITB dalam pengerjaan tugasnya. Data tersebut ternyata terdapat di ITB Network Information Center. Kita perlu login terlebih dahulu untuk mendapatkan layanan tersebut. Kita bisa mengetahui username, nama lengkap, NIM TPB dan jurusan, tipe user, email, tanggal kedaluwarsa, dan status dari seseorang yang memiliki akun tersebut. Sesuatu yang terlalu lengkap menurut saya. Untuk apa orang lain mengetahui username saya?

Lanjut ke cerita, untuk mempermudah pencarian data maka dilakukanlah scraping ke website terbut. Kami menggunakan cookie agar dapat melakukannya. Dan kami berhasil. Kami bisa mendapatkan data mahasiswa satu angkatan di fakultas kami dengan  cepat. Kemudia teman saya berkata, "Dari sekian banyak akun AI3 di ITB, pasti ada beberapa yang username dan passwordnya sama". Hal ini yang menarik perhatian saya.

Saya tertantang untuk membuktikan perkataan teman saya. Untuk login ke AI3 kita membutuhkan username dan password. Username dapat dicari selama kita memiliki akun AI3 yang aktif. dan pasword dapat ditebak menggunakan username tersebut. Agar lebih cepat, pencobaan perlu dilakukan dengan otomatis. Setidaknya tidak harus mencoba login manual satu demi satu user. Untuk mendapatkan username sudah berhasil dilakukan dengan scraping. Untuk mengecek akun tersebut, saya mencoba melakukan request ke SSO AI3 dengan form data yang mirip dengan saat login. Dan ternyata bisa, wew. Saya melakukan pencobaan secara urut dari NIM pada mahasiswa fakultas dan tahun angkatan tertentu. Dan ternyata, dari angkatan 2013 sampai 2016, memang cukup banyak yang memiliki akun AI3 dengan username dan password yang sama. Meskipun kurang dari 10%, jumlah tersebut terbilang lumayan untuk mahasiswa ITB di empat angkatan. Tidak hanya pencobaan menebak password dengan username. Setidaknya saya pernah mencoba dengan NIM, kombinasi nama lengkap, "qwerty", "password", dan beberapa lainnya. Dan ada yang cocok dari pencobaan tersebut.

Lalu sesuatu terjadi di bulan Desember 2016. Saya tidak bisa lagi melakukan pengecekan password. Mungkin admin telah memperbaiki sistemnya. Setelah beberapa waktu mencoba dan dipotong oleh liburan smester, akhirnya ketemu permasalahannya di bulan Januari 2017. Ada parameter tambahan yang diisikan pada header request data saat mencari username dan diperlukan delay saat melakukan login. Jadi saat kita login ke SSO AI3, jika waktu dari form login diload sampai dilakukan submit kurang dari x detik, maka login akan gagal walaupun username dan password benar.

Saya melakukan banyak pencobaan sampai akhir Januari/awal Februari. Dari sekian banyak pencobaan, saya lebih banyak melakukannya ke angkatan 2015. Bukan karena senioritas atau arogansi angkatan. Saya mencari akun yang masa hidupnya relatif lebih lama, yaitu angkatan yang lebih muda. Mengapa tidak angkatan 2016? Karena data mereka belum lengkap, belum ada NIM jurusan. Dari sekian akun tersebut, beberapa username dan password juga digunakan pada akun lainnya, seperti OL Akademik, Google, Path, dan lain-lain. Saya tidak pernah menggunakan akun tersebut untuk keuntungan pribadi/kelompok atau merugikan pihak tertentu. SSO AI3 cukup aman. Tapi, userlah yang memberi celah. Sudah seharusnya kita menggunakan password yang sulit ditebak, termasuk pada suatu aplikasi yang mungkin sepele. Akunmu adalah milikmu, jangan biarkan orang lain mendapatkan akses.