1 poin oleh GN⁺ 4 hari lalu | 1 komentar | Bagikan ke WhatsApp
  • 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

  • Menggunakan MIT License

Kontribusi

  • Kontribusi dinyatakan terbuka
  • Membuka issue atau pull request

1 komentar

 
GN⁺ 4 hari lalu
Komentar Hacker News
  • Saya penasaran berapa lama jeda dari saat lid sensor terdeteksi di Apple Silicon sampai benar-benar sleep. Saya pernah merilis beberapa aplikasi menu bar untuk M2, dan meski mendengarkan NSWorkspaceWillSleepNotification, rasanya hanya ada sekitar 200ms, jadi kalau dalam jendela sesingkat itu masih harus bolak-balik ke Secure Enclave, ini praktis terasa seperti race condition
  • Menurut saya idenya dan implementasinya sangat bagus. Bahkan tanpa memasang aplikasi pun, efek yang sama bisa dicapai dengan one-liner sudo 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
    • Kalau ini dihubungkan ke Crank dan dijadikan pemicu lid angle di bawah 30°, eksekusinya bisa otomatis hanya dengan sedikit menurunkan penutupnya
  • Saya pikir akan bagus kalau bisa mendaftarkan beberapa jari ke Touch ID lalu membuat skrip tindakan berbeda untuk tiap jari. Misalnya jari tengah untuk buka kunci biasa, telunjuk untuk menonaktifkan Touch ID lalu memaksa input kata sandi, hal seperti itu kelihatannya sangat berguna
    • Sebenarnya memetakan tiap jari ke akun yang berbeda itu memungkinkan. Saya ingat dulu pernah memakainya untuk fast user switch antar akun
  • Di iOS, kalau tombol samping dan tombol volume ditekan lama untuk memunculkan slider daya lalu dibatalkan, maka pada buka kunci berikutnya akan dipaksa memasukkan kode sandi. Memunculkan Emergency SOS dengan menekan tombol samping 5 kali juga memberi efek yang sama. Fitur ini sudah ada sejak lama tetapi ternyata tidak terlalu dikenal, jadi senang melihat alur serupa juga muncul di Mac
    • Buat saya, menekan tombol daya cepat 5 kali atau lebih terasa lebih mudah
  • Saya suka gagasannya. Sudah lama ada perdebatan soal legalitas forced unlocking, dan setahu saya sidik jari bisa dipaksa lebih mudah, sementara memaksa input kata sandi dikenal lebih sulit. Jadi saya penasaran apakah tujuan utama alat ini memang untuk menghadapi situasi seperti itu, atau ada tujuan lain juga
    • Saya membuat ini setelah melihat kasus jurnalis Washington Post, Hannah Natanson. Jurnalis itu dipaksa membuka kunci komputer dengan sidik jari, dan akibatnya Signal desktop yang sedang terbuka ikut terbuka sehingga percakapannya dengan narasumber terekspos. Artikelnya bisa dilihat di artikel Yahoo, dan latar belakang hukum serta presedennya saya rangkum lebih lanjut di halaman pengenalan aplikasi
    • Saya penasaran apakah ini hanya masalah di AS. Kalau tidak salah, di Inggris posisinya lebih dekat ke bisa memaksa penyerahan kata sandi yang secara masuk akal diketahui seseorang
    • Masalah lain adalah adanya bekas sidik jari yang tertinggal di permukaan perangkat. Kalau bisa dibuat gambar sidik jari yang jelas, banyak sensor sidik jari dulu dapat dikelabui dengan metode seperti replika gelatin. Dulu juga sering disebut teknik membersihkannya di Photoshop lalu mencetaknya dengan laser ke film OHP untuk dipakai sebagai semacam mold
    • Penjelasan tambahan tentang biometrik vs kata sandi, serta situasi hukumnya, ada lebih lanjut di situs paniclock
    • Meski legalitas pemaksaan kata sandi masih punya area abu-abu, perlu juga dilihat bahwa pengadilan bisa secara efektif memaksa input kata sandi melalui contempt, bukan penghinaan(contest), dengan tekanan penahanan yang nyaris tanpa batas
  • Ada contoh dunia nyata yang sangat menunjukkan bagaimana otoritas mendapatkan akses penuh ke komputer tanpa paksaan hukum atau yang disebut rubber-hose cryptanalysis. Mereka menunggu sampai target berada dalam keadaan login, lalu membuat keributan di dekatnya dan langsung menyambar laptop yang terbuka. Operasi penangkapan DPR dirangkum dalam tulisan ini
  • Ini benar-benar bagus. Biasanya kita sering melihat saran keamanan bahwa biometrik tidak boleh menggantikan kata sandi, tetapi bagi saya risiko yang lebih nyata justru adalah seseorang merekam atau mengintip saat saya mengetik kata sandi di tempat umum. Kalau memikirkan situasi realistis seperti itu, alat ini terasa memberi keseimbangan yang pas
    • Menurut saya ada dua celah besar di platform Apple. Satu adalah profil pengaturan yang rinci untuk Touch ID dan biometrik, yang lain adalah versioning untuk backup iCloud. Tingkat keamanan yang dibutuhkan tiap orang sangat berbeda, jadi pendekatan one-size-fits-all tidak cocok. Bagi pengguna rata-rata, biometrik adalah pilihan bagus yang mengurangi shoulder surfing dan meningkatkan keamanan, tetapi sebagian pengguna mungkin ingin menambahkan faktor kedua seperti Apple Watch, mempersingkat waktu sampai pemaksaan kata sandi, atau bahkan meminta biometrik+kata sandi sekaligus. Rasanya perlu pilihan yang jauh lebih terperinci dari sekarang
    • Yang benar-benar dibutuhkan di sini menurut saya adalah multifactor. Misalnya mewajibkan sidik jari dan PIN khusus perangkat sekaligus. Sayangnya, walaupun teknologi dasarnya sebenarnya sudah ada, fitur seperti ini tidak benar-benar disediakan dengan baik di produk
  • Saya pikir akan bagus kalau saat tombol Touch ID diklik, percobaan login itu bisa dibatalkan dan langsung meminta kata sandi. Saya suka kenyamanan login sidik jari sehari-hari, tetapi akan lebih baik jika ada semacam tombol keluar untuk segera lolos dari situasi itu saat diperlukan
  • Karena Mac juga punya akselerometer, saya pikir akan keren kalau bisa mendeteksi seberapa kuat penutup ditutup, atau setidaknya memperkirakan nilai proksi yang memadai. Kalau ditutup pelan tidak terjadi apa-apa, kalau sedikit lebih keras Touch ID dinonaktifkan, dan kalau benar-benar dibanting maka semua biometrik dinonaktifkan sambil membuang status sesi, dan kalau memungkinkan bahkan RAM dan kunci FileVault ikut dihapus
    • Itu hampir seperti mesin rage quitting. Untuk versi enterprise, rasanya akan lengkap kalau saat penutup dibanting sekuat tenaga, sistem juga otomatis mengirim surat pengunduran diri profesional ke atasan saat ini
    • Kalau menurut Anda tahap terakhir itu masuk akal, kemungkinan besar Anda tidak tinggal dengan kucing atau anak kecil
  • Saya paham penjelasan bahwa “dalam situasi sensitif, aparat penegak hukum atau petugas perbatasan di banyak negara bisa memaksa pembukaan biometrik, tidak seperti kata sandi”, tetapi jika model ancamannya mencakup aktor setingkat negara, mematikan biometrik saja mungkin tidak cukup untuk melindungi data di memori fisik. Dalam situasi seperti itu, tampaknya lebih bijak punya tombol panik yang segera mematikan daya atau menghibernasi komputer agar enkripsi disk aktif dan data plaintext tidak tertinggal di RAM. Situsnya memang mengatakan shutdown butuh waktu dan mematikan sesi, tetapi tombol hibernate bisa memberi kecepatan yang mirip sambil tetap mempertahankan sesi
    • Setidaknya di Apple Silicon, serangan semacam ini memang jauh lebih sulit. Tidak bisa dibilang mustahil sepenuhnya, tetapi daya tahannya tampak lebih baik daripada dulu
    • Namun polisi hanya bekerja untuk negara, dan menurut saya biasanya berbeda nuansanya dari yang biasa kita sebut state-level actor