Keamanan
Berlaku sejak 12 Agustus 2026 · Masekola v2.28.1
Halaman ini menjelaskan pengamanan yang benar-benar sudah berjalan, beserta yang belum ada. Sekolah menyimpan data anak di bawah umur, dan daftar yang melebih-lebihkan kemampuan sistem tidak membantu siapa pun dalam menilai risikonya.
1. Pemisahan antarsekolah
Satu pemasangan melayani banyak sekolah, dan setiap catatan dimiliki oleh tepat satu sekolah. Pemisahan ditegakkan pada lapisan basis data — bukan sekadar dengan menyaring tampilan — sehingga kueri yang lupa menyaring tidak akan menghasilkan data sekolah lain. Pemisahan ini diuji secara otomatis melalui HTTP pada setiap perubahan kode, termasuk untuk daftar akun, daftar siswa, dan seluruh menu pilihan guru.
2. Hak akses
Terdapat enam peran: super admin, admin, kepala sekolah, guru, orang tua, dan siswa. Akses ke tiap panel bersifat tolak secara bawaan — sebuah akun harus secara eksplisit diizinkan, bukan sekadar tidak dilarang. Guru hanya melihat kelas yang diampunya; orang tua dan siswa hanya melihat catatan dirinya sendiri atau anaknya. Kepala sekolah memiliki hak yang sama dengan administrator sekolah. Semua pembatasan ini ditegakkan di sisi server, bukan dengan menyembunyikan tombol.
3. Kata sandi
- Kata sandi disimpan teracak (hash) dengan bcrypt, tidak pernah dalam bentuk asli.
- Setiap pengguna dapat mengubah kata sandinya sendiri, dan harus memasukkan kata sandi lama untuk melakukannya.
- Kata sandi yang diberikan oleh administrator bersifat sementara: pemiliknya wajib menggantinya sebelum dapat menggunakan sistem.
- Percobaan masuk dibatasi lima kali per kombinasi surel dan alamat IP.
- Pesan kegagalan masuk selalu sama, sehingga halaman masuk tidak dapat dipakai untuk menebak surel mana yang terdaftar.
4. Autentikasi dua faktor
Setiap pengguna — administrator, guru, orang tua, maupun siswa — dapat mengaktifkan autentikasi dua faktor untuk akunnya sendiri melalui menu akun. Setelah aktif, masuk memerlukan kata sandi dan kode enam digit dari aplikasi autentikator di ponsel, sehingga kata sandi yang bocor saja tidak cukup untuk membuka data sekolah.
- Kode dihasilkan di ponsel (TOTP), bukan dikirim lewat surel atau SMS — sejalan dengan prinsip bahwa sistem ini tidak mengirim surel keluar.
- Kunci rahasia dan kode pemulihan disimpan dalam bentuk terenkripsi.
- Delapan kode pemulihan diberikan sekali saat pengaktifan, masing-masing hanya dapat dipakai satu kali.
- Percobaan kode dibatasi, dan proses masuk yang tertunda kedaluwarsa dalam lima menit.
- Bila ponsel hilang dan kode pemulihan habis, administrator sekolah dapat menonaktifkan autentikasi dua faktor untuk akun tersebut — ini satu-satunya jalur pemulihan, karena sistem tidak mengirim tautan lewat surel.
Secara bawaan bersifat opsional. Masekola dapat dikonfigurasi untuk mewajibkan autentikasi dua faktor bagi peran tertentu — umumnya administrator, yang dapat membaca dan mengubah seluruh catatan sekolah. Bila diwajibkan, pemilik akun diarahkan untuk mengaktifkannya sebelum dapat menggunakan sistem; tidak ada akun yang terkunci di luar, karena halaman pengaktifannya justru yang ditampilkan.
5. Data tidak meninggalkan sistem
Tidak ada surel keluar. Pemberitahuan dan surat internal tetap berada di dalam aplikasi, sehingga alamat surel orang tua dan siswa tidak pernah dikirim ke penyedia surel mana pun. Foto profil pengganti digambar di server ini sendiri, bukan diambil dari layanan avatar pihak ketiga yang akan menerima nama asli seorang anak pada setiap pemuatan halaman. Tidak ada layanan analitik atau pelacak pihak ketiga.
6. Infrastruktur
- Server berada di Jakarta, Indonesia.
- Seluruh lalu lintas melewati HTTPS; sambungan antara Cloudflare dan server asal juga terenkripsi dan diverifikasi.
- Basis data hanya menerima sambungan dari server aplikasi, tidak dari internet.
- Pencadangan basis data berjalan otomatis setiap malam, dengan salinan tersendiri sebelum setiap pembaruan besar.
7. Perubahan kode
Setiap perubahan menjalankan rangkaian uji otomatis — saat ini lebih dari 600 pengujian — sebelum dapat digabungkan, dan sebagian besar khusus menguji pemisahan antarsekolah serta batas hak akses tiap peran.
8. Catatan audit
Perubahan pada data yang bersifat pribadi atau menyangkut uang dicatat: data siswa, nilai, kehadiran, tagihan, pembayaran, pengeluaran, data wali, refleksi guru, dan akun pengguna. Setiap catatan menyimpan siapa melakukannya, kapan, dari alamat IP mana, dan kolom apa yang berubah.
- Nilai isian tidak disalin ke dalam catatan audit, kecuali beberapa hal yang justru menjadi inti pertanyaan — nilai ujian, jumlah uang, dan status siswa. Alamat, nomor telepon, dan catatan naratif hanya dicatat nama kolomnya, agar catatan audit tidak menjadi salinan kedua dari data pribadi yang justru ingin dilindunginya.
- Catatan bersifat hanya-baca dan tidak dapat diubah: tidak ada jalur di dalam aplikasi untuk menyunting atau menghapus satu baris pun, termasuk bagi administrator.
- Catatan disimpan selama satu tahun, lalu dihapus otomatis berdasarkan umur — sejalan dengan prinsip UU PDP bahwa data pribadi tidak disimpan lebih lama dari keperluannya.
- Catatan audit satu sekolah tidak dapat dibaca sekolah lain.
- Dapat dibaca oleh administrator dan kepala sekolah di Administrasi › Catatan Audit. Rincian pemrosesannya diuraikan dalam Kebijakan Privasi.
Yang belum tercakup: pembacaan data. Saat ini yang tercatat adalah perubahan, bukan siapa saja yang membuka sebuah data tanpa mengubahnya.
9. Yang belum ada
Disebutkan secara terbuka agar sekolah dapat menilai risikonya sendiri:
- Autentikasi dua faktor belum diwajibkan pada pemasangan ini. Kemampuan mewajibkannya per peran sudah tersedia (lihat bagian 4), tetapi belum diaktifkan — pengaktifannya adalah keputusan sekolah dan operator, bukan bawaan.
- Catatan audit belum merekam PEMBACAAN data. Perubahan sudah tercatat (lihat bagian 8), tetapi siapa saja yang sekadar membuka sebuah data belum.
- Belum ada pemulihan kata sandi mandiri. Kata sandi yang lupa harus diatur ulang oleh administrator sekolah — pilihan yang disengaja, karena sistem ini sengaja tidak mengirim surel.
- Belum ada uji penetrasi independen maupun sertifikasi keamanan pihak ketiga.
- Belum ada jaminan tingkat layanan (SLA) untuk ketersediaan maupun waktu pemulihan.
10. Melaporkan masalah keamanan
Bila Anda menemukan kerentanan, mohon laporkan ke [email protected] sebelum mengumumkannya secara terbuka, dan sertakan langkah yang cukup untuk menirukannya. Laporan mengenai data siswa yang terekspos akan ditangani lebih dahulu. Kewajiban pemberitahuan bila terjadi kegagalan pelindungan data diuraikan dalam Kebijakan Privasi.