Tinjauan teknis untuk peninjau keamanan. Semua di sini dapat dicocokkan dengan kode sumber — termasuk bagian yang kurang menguntungkan kami, yang kami sebutkan alih-alih kami hilangkan.
Tidak ada backend. Ekstensi ini adalah ekstensi Chrome Manifest V3 yang membuat kode TOTP/HOTP secara lokal dengan OTPAuth. Kami tidak mengoperasikan server, tidak menyimpan akun, dan tidak punya saluran yang bisa membawa data pengguna kepada kami.
Karena tidak ada server, tidak ada pula material kunci di sisi server, tidak ada penitipan kunci, dan tidak ada jalur pemulihan yang kami kendalikan. Jika pengguna lupa kata sandi dan kehilangan kode pemulihannya, kami tidak bisa membantu — memang dirancang begitu.
Perlindungan kata sandi bersifat opsional dan mati secara bawaan. Saat dinyalakan:
Data tidak pernah dienkripsi langsung dengan kunci turunan kata sandi. Catatan dienkripsi oleh kunci utama acak; keluaran PBKDF2 hanya membungkus kunci utama itu. Ada dua akibatnya, dan keduanya penting:
Dengan perlindungan kata sandi aktif, seluruh catatan akun dienkripsi kecuali pengenal dan sidik jarinya — termasuk nama layanannya, sehingga profil yang dicuri tidak membocorkan di layanan mana saja pengguna punya akun. Saat diaktifkan, ekstensi mengenkripsi catatan, memverifikasinya dengan mendekripsi dan membandingkan, lalu barulah menghapus semua salinan teks biasa: penyimpanan lokal peramban, sinkronisasi, dan ketujuh snapshot cadangan bergilir.
Kami sebutkan terus terang, karena ini memengaruhi penilaian Anda:
Singkatnya: ini melindungi data saat tersimpan. Ia tidak, dan tidak bisa, menjaga perangkat yang saat dipakai sudah berada dalam kendali penyerang.
Manifes mendeklarasikan tepat dua izin dan tanpa izin host:
Tidak ada content script, tidak ada izin tabs, cookies, atau webRequest, dan tidak ada sumber daya yang bisa diakses web. Ekstensi tidak dapat membaca atau mengubah isi halaman mana pun.
Pemindaian QR dengan kamera berjalan di halaman ekstensi yang dibuka dalam tab, bukan di popup — popup dimusnahkan begitu kehilangan fokus, dan permintaan izin melakukan persis itu. Untuk ini tidak perlu izin apa pun di manifes: yang dipakai adalah permintaan kamera bawaan peramban, diberikan per origin ekstensi dan bisa dicabut di setelan situs, dan tidak pernah muncul sebelum pengguna membuka pemindai. Video didekode secara lokal dan tidak pernah dikirim atau disimpan.
Dalam pemakaian normal ekstensi tidak melakukan permintaan otomatis apa pun, dan Manifest V3 melarang kode jarak jauh. Semua koneksi yang mungkin ia buat:
| Host | Kapan | Membawa data pengguna? |
|---|---|---|
| worldtimeapi.org timeapi.io | Pemeriksaan selisih jam, di-cache, gagal tanpa suara. TOTP rusak kalau jam melenceng. | Tidak |
| authenticator.sh | Halaman sambutan saat pemasangan; halaman masukan saat pencopotan atau pemberian nilai. | Tidak (log server web biasa) |
Tidak ada font, skrip, gaya, atau gambar yang dimuat dari host pihak ketiga. Semua yang dibutuhkan untuk menggambar antarmuka sudah ada di dalam paket.
Anda tidak perlu memercayai satu pun hal di atas begitu saja. Ekstensi ini sumber terbuka, dan setiap rilis dapat direproduksi:
.crx yang dipublikasikan dari Chrome Web Store lalu ekstraknpm ci && npm run build di Node 20 LTSdist/ yang dihasilkan dengan paket yang diekstrakSHA-256 untuk setiap berkas di dalam dist/ hasil build dipublikasikan pada setiap rilis GitHub sebagai SHA256SUMS-v<version>.txt, dalam format sha256sum, sehingga langkah 4 cukup satu kali menjalankan sha256sum -c. Perbedaan seharusnya terbatas pada urutan berkas di dalam arsip dan spasi pada keluaran terminifikasi antarversi patch Node.
Dependensi runtime sengaja sedikit — OTPAuth, React, jsQR, Zustand, Framer Motion, dan Lucide — dikunci oleh lockfile yang ikut di-commit. SBOM CycloneDX tersedia atas permintaan.
Baca kode sumbernyaKami vendor kecil dan independen. Jika salah satu hal berikut adalah syarat mutlak dalam proses Anda, lebih baik tahu sekarang daripada tiga minggu setelah evaluasi berjalan:
Sebagai gantinya kami menawarkan keterbukaan penuh kode sumber, build yang dapat diverifikasi, permukaan izin yang minimal, dan tidak adanya infrastruktur server yang bisa menyimpan data Anda sejak awal.
Laporan kerentanan dan pertanyaan keamanan: security@authenticator.sh. Kebijakan pengungkapan, cakupan, waktu tanggap, dan ketentuan safe harbour ada di halaman kebijakan keamanan; apa yang disimpan dan apa yang keluar dari perangkat dijelaskan di kebijakan privasi.
Dengan senang hati kami mengisi kuesioner penilaian vendor tertulis atau menelusuri kode bersama tim keamanan Anda.
Untuk hal apa pun yang bukan soal keamanan — pemasangan, pemulihan akun, pertanyaan penagihan dari sebuah penerapan — lihat dukungan. Mohon jangan mengirim laporan kerentanan ke sana; kotak masuk itu tidak diperlakukan sebagai rahasia.