- Berfungsi sebagai utilitas menu bar macOS yang dapat mengunci layar hanya dengan klik, pintasan, atau menutup penutup laptop, lalu menonaktifkan Touch ID sementara untuk memaksa input kata sandi
- Setelah kunci dibuka, pengaturan Touch ID asli dipulihkan secara otomatis, sehingga dapat beralih ke status kunci khusus kata sandi tanpa mengakhiri sesi atau mematikan sistem
- Jika opsi Lock on Close diaktifkan, saat penutup Mac ditutup, penonaktifan Touch ID dan penguncian layar langsung dijalankan, dan status ini dipertahankan hingga login kembali dengan kata sandi
- Secara internal menggunakan SMJobBless privileged helper serta perintah
bioutil dan pmset untuk mengubah nilai timeout Touch ID dan menjalankan penguncian layar, sehingga pada eksekusi pertama diperlukan input kata sandi administrator
- Tidak ada aktivitas jaringan, telemetri, maupun pengumpulan data, bersifat open source, dan menerapkan prinsip hak akses minimum sehingga cakupan kerja serta kemungkinan peninjauannya jelas
Gambaran proyek
- Berbentuk utilitas menu bar macOS yang dapat mengunci layar dan menonaktifkan Touch ID dengan satu klik atau dengan menutup penutup laptop
- Melengkapi kondisi macOS yang tidak memiliki cara bawaan untuk langsung mematikan Touch ID, sehingga memungkinkan beralih ke status buka kunci khusus kata sandi tanpa mengakhiri sesi atau mematikan sistem
- Terpisah dari kenyamanan autentikasi biometrik, alat ini dirancang dengan asumsi bahwa dalam situasi tertentu perlindungan berbasis kata sandi diperlukan
- Klik satu kali tombol menu bar
- Pintasan yang ditentukan pengguna
- Kunci otomatis saat penutup ditutup
- Setelah kunci dibuka, pengaturan Touch ID semula dipulihkan secara otomatis
Fitur utama
-
Panic lock sekali klik
- Langsung mengunci hanya dengan mengeklik ikon menu bar atau menekan pintasan
-
Lock on Close
- Jika diaktifkan di pengaturan, saat penutup Mac ditutup, layar akan otomatis dikunci dan Touch ID dinonaktifkan
-
Penonaktifan Touch ID sementara
- Memaksa input kata sandi saat membuka kunci
-
Pemulihan otomatis
- Memulihkan pengaturan Touch ID yang ada setelah kunci dibuka
-
Pintasan keyboard global
- Contoh yang diberikan adalah
⌃⌥⌘L
-
Jalankan otomatis saat login
- Mulai otomatis saat pengguna login
Persyaratan
- Memerlukan macOS 14.0 Sonoma atau lebih baru
- Memerlukan Mac yang mendukung Touch ID
Cara penggunaan
- Klik kiri untuk menjalankan panic lock instan
- Klik kanan untuk membuka menu
- Preferences
- Uninstall
- Quit
-
Lock on Close
- Jika diaktifkan di Preferences, saat penutup Mac ditutup, Touch ID akan dinonaktifkan dan layar langsung dikunci
- Status ini dipertahankan hingga login kembali dengan kata sandi
- Jika layar terkunci karena alasan lain seperti screen saver atau mode tidur layar, Touch ID akan tetap berfungsi seperti biasa
-
Eksekusi pertama
- Saat pertama kali digunakan, diperlukan input kata sandi administrator untuk menginstal privileged helper
- Prosedur ini merupakan pengaturan satu kali
Cara kerja
- Mengubah pengaturan timeout Touch ID melalui privileged helper yang dipasang dengan SMJobBless
- Urutan kerja
- Membaca nilai timeout saat ini dengan
bioutil -r -s
- Mengatur nilai timeout menjadi 1 detik dengan
bioutil -w -s -o 1
- Menjalankan penguncian layar dengan
pmset displaysleepnow
- Sekitar 2 detik kemudian memulihkan nilai timeout semula
- Utilitas ini hanya menonaktifkan Touch ID
- Buka kunci dengan Apple Watch
- Security key
- Metode buka kunci lainnya
- Jika metode di atas aktif, Mac tetap dapat dibuka dengan cara tersebut
Keamanan
- Menerapkan prinsip hak akses minimum
- Helper hanya menjalankan 3 perintah yang sudah di-hardcode, yaitu
bioutil dan pmset
- Menggunakan verifikasi XPC dengan code signing
- Helper memeriksa bundle ID, team ID, dan sertifikat aplikasi yang terhubung
-
Tidak ada aktivitas jaringan
- Aplikasi bekerja 100% offline
- Tidak menyertakan telemetry maupun analytics
-
Tidak ada pengumpulan data
- Yang disimpan hanya pengaturan seperti gaya ikon dan pintasan keyboard
-
Open source
- Seluruh kode dibuka sehingga dapat diaudit
- Menegaskan kembali batasan bahwa hanya Touch ID yang dinonaktifkan
- Jika metode seperti buka kunci dengan Apple Watch atau security key diaktifkan, metode itu tetap bisa digunakan untuk membuka kunci
Distribusi
- Skrip rilis menangani build, signing, notarization, dan packaging
- Karakteristik utama
- Mengekstrak versi secara otomatis dari proyek Xcode
- Signing dengan Developer ID untuk distribusi di luar App Store
- Mengirimkan ke Apple notarization
- Membuat DMG yang telah dinotarization untuk distribusi
- Mendukung notarization paralel menggunakan direktori
build/release/<version>/ per versi
- Alur kerja
- Naikkan
MARKETING_VERSION di Xcode
- Jalankan
./scripts/release.sh untuk build dan mengirimkan notarization
- Jalankan lagi setelahnya untuk memeriksa status dan melanjutkan setelah disetujui
- Hasil akhir berada di
build/release/<version>/PanicLock-<version>.dmg
Lisensi
Kontribusi
- Kontribusi dinyatakan terbuka
- Membuka issue atau pull request
1 komentar
Komentar Hacker News
NSWorkspaceWillSleepNotification, rasanya hanya ada sekitar 200ms, jadi kalau dalam jendela sesingkat itu masih harus bolak-balik ke Secure Enclave, ini praktis terasa seperti race conditionsudo bioutil -ws -u 0; sleep 1; sudo bioutil -ws -u 1. Saya juga sudah membuat tautan Shortcuts yang menambahkan penguncian layar, dan kalau dipasang ke shortcut global, ini cukup praktis