# PanicLock - MacBook 덮개를 닫으면 Touch ID를 비활성화하고 비밀번호로만 잠금 해제하는 유틸리티

> Clean Markdown view of GeekNews topic #28691. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=28691](https://news.hada.io/topic?id=28691)
- GeekNews Markdown: [https://news.hada.io/topic/28691.md](https://news.hada.io/topic/28691.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2026-04-20T02:38:49+09:00
- Updated: 2026-04-20T02:38:49+09:00
- Original source: [github.com/paniclock](https://github.com/paniclock/paniclock/)
- Points: 1
- Comments: 1

## Topic Body

- **macOS 메뉴 바 유틸리티**로 동작하며, 클릭·단축키·노트북 덮개 닫기만으로 화면을 잠그고 **Touch ID를 일시 비활성화**해 비밀번호 입력을 강제함
- 잠금 해제 후에는 **기존 Touch ID 설정 자동 복원**이 이뤄지며, 세션 종료나 시스템 종료 없이 비밀번호 전용 잠금 상태 전환 가능
- **Lock on Close** 옵션을 켜면 Mac 뚜껑을 닫는 즉시 Touch ID 비활성화와 화면 잠금이 실행되고, 비밀번호로 다시 로그인할 때까지 상태 유지
- 내부적으로 **SMJobBless privileged helper**와 `bioutil`, `pmset` 명령을 사용해 Touch ID 타임아웃 값을 바꾸고 화면 잠금을 수행하며, 최초 실행 시 관리자 비밀번호 입력 필요
- **네트워크 활동·텔레메트리·데이터 수집 없음**, 오픈소스 공개, 최소 권한 원칙 적용으로 동작 범위와 검토 가능성이 분명한 도구임

---

### 프로젝트 개요
- **macOS 메뉴 바 유틸리티** 형태로, 한 번의 클릭이나 노트북 뚜껑 닫기로 화면을 잠그고 **Touch ID 비활성화** 수행
- macOS에 **즉시 Touch ID를 끄는 내장 방식 부재** 상황을 보완하며, 세션 종료나 시스템 종료 없이 **비밀번호 전용 잠금 해제** 상태 전환 가능
- 생체 인증의 편의성과 별개로, 특정 상황에서는 비밀번호 기반 보호가 필요한 경우를 전제로 동작
  - 메뉴 바 버튼 1회 클릭
  - 사용자 지정 단축키
  - 뚜껑 닫기 시 자동 잠금
- 잠금 해제 이후에는 원래 Touch ID 설정 자동 복원

### 주요 기능
- ## 원클릭 패닉 잠금
  - 메뉴 바 아이콘 클릭 또는 단축키 입력만으로 즉시 잠금 수행
- ## Lock on Close
  - 설정에서 활성화하면 Mac 뚜껑을 닫을 때 자동으로 화면 잠금과 Touch ID 비활성화 수행
- ## Touch ID 임시 비활성화
  - 잠금 해제 시 비밀번호 입력 강제
- ## 자동 복원
  - 잠금 해제 후 기존 Touch ID 설정 복구
- ## 전역 키보드 단축키
  - 예시로 `⌃⌥⌘L` 제시
- ## 로그인 시 자동 실행
  - 사용자가 로그인할 때 자동 시작

### 요구 사항
- **macOS 14.0 Sonoma 이상** 필요
- **Touch ID 지원 Mac** 필요

### 사용 방식
- 왼쪽 클릭 시 **즉시 패닉 잠금** 실행
- 오른쪽 클릭 시 메뉴 열기 동작
  - Preferences
  - Uninstall
  - Quit
- ## Lock on Close
  - Preferences에서 활성화하면 Mac 뚜껑을 닫는 즉시 **Touch ID 비활성화**와 화면 잠금 수행
  - 이 상태는 **비밀번호로 다시 로그인할 때까지** 유지
  - 화면 보호기, 디스플레이 절전 등 다른 이유로 화면이 잠긴 경우에는 Touch ID가 평소처럼 계속 동작
- ## 최초 실행
  - 처음 사용할 때 **privileged helper 설치**를 위해 관리자 비밀번호 입력 필요
  - 해당 절차는 **1회성 설정** 형태

### 동작 방식
- **SMJobBless**로 설치한 privileged helper를 통해 Touch ID 타임아웃 설정 변경 수행
- 동작 순서
  - 현재 타임아웃 값을 `bioutil -r -s`로 읽기
  - 타임아웃 값을 `bioutil -w -s -o 1`로 1초로 설정
  - `pmset displaysleepnow`로 화면 잠금 수행
  - 약 2초 후 원래 타임아웃 값 복원
- 이 유틸리티는 **Touch ID만 비활성화**함
  - Apple Watch 잠금 해제
  - 보안 키
  - 기타 다른 잠금 해제 수단
  - 위 방식이 활성화되어 있으면 해당 수단으로 Mac 잠금 해제 가능

### 보안
- **최소 권한** 원칙 적용
  - helper는 `bioutil`, `pmset`의 하드코딩된 3개 명령만 실행
- **코드 서명된 XPC** 검증 사용
  - helper가 연결하는 앱의 bundle ID, team ID, certificate 확인
- ## 네트워크 활동 없음
  - 앱은 100% 오프라인으로 동작
  - telemetry 및 analytics 미포함
- ## 데이터 수집 없음
  - 저장 항목은 아이콘 스타일과 키보드 단축키 같은 환경설정만 해당
- ## 오픈소스
  - 전체 코드 공개로 감사 가능
  - Touch ID만 비활성화한다는 제한 다시 명시
  - Apple Watch 잠금 해제, 보안 키 등 다른 방식이 켜져 있으면 계속 잠금 해제 가능

### 배포
- 릴리스 스크립트가 **빌드, 서명, notarization, 패키징** 처리
- 주요 특성
  - Xcode 프로젝트에서 버전 자동 추출
  - App Store 외부 배포용 Developer ID 서명
  - Apple notarization 제출
  - 배포용 notarized DMG 생성
  - 버전별 `build/release/&lt;version&gt;/` 디렉터리를 사용하는 병렬 notarization 지원
- 워크플로
  - Xcode에서 `MARKETING_VERSION` 증가
  - `./scripts/release.sh` 실행 후 빌드 및 notarization 제출
  - 이후 다시 실행해 상태 확인 및 승인 후 계속 진행
  - 최종 산출물은 `build/release/&lt;version&gt;/PanicLock-&lt;version&gt;.dmg`

### 라이선스
- **MIT License** 적용

### 기여
- 기여 환영 명시
- issue 또는 pull request 개방

## Comments



### Comment 55853

- Author: neo
- Created: 2026-04-20T02:38:50+09:00
- Points: 1

###### [Hacker News 의견들](https://news.ycombinator.com/item?id=47807809) 
- Apple Silicon에서 **lid sensor**가 감지된 뒤 실제 sleep까지 시간이 얼마나 되는지 궁금함. 내가 M2용 메뉴바 앱을 몇 개 배포해봤는데 `NSWorkspaceWillSleepNotification`을 들어도 체감상 **200ms 정도**밖에 없어서, 그 짧은 창 안에 Secure Enclave 왕복까지 필요하면 사실상 레이스 컨디션처럼 보임
- 아이디어와 구현이 아주 좋다고 느낌. 굳이 앱을 설치하지 않아도 `sudo bioutil -ws -u 0; sleep 1; sudo bioutil -ws -u 1` 이 **원라이너**로 같은 효과를 낼 수 있음. 거기에 화면 잠금까지 붙인 [Shortcuts 링크](https://www.icloud.com/shortcuts/9362945d839140dbbf987e5bce9...)도 만들어뒀고, 전역 단축키로 걸어두면 꽤 실용적임
  - 이걸 [Crank](https://lowtechguys.com/crank)에 연결해서 **lid angle 30° 이하** 트리거로 걸면, 뚜껑을 살짝 내리는 동작만으로 자동 실행되게 만들 수 있음
- Touch ID에 **여러 손가락**을 등록하고 손가락별로 동작을 다르게 스크립트할 수 있으면 좋겠다고 생각함. 예를 들어 중지는 일반 잠금 해제, 검지는 Touch ID 비활성화 후 비밀번호 강제 입력 같은 식이면 꽤 유용해 보임
  - 손가락별로 아예 **다른 계정**에 매핑하는 건 가능함. 나는 예전에 그걸 이용해서 계정 간 **fast user switch**를 했던 기억이 있음
- iOS 쪽에서는 측면 버튼과 볼륨 버튼을 길게 눌러 전원 슬라이더를 띄운 다음 취소하면, 다음 잠금 해제에서 **암호 입력**이 강제됨. 측면 버튼 5번으로 Emergency SOS를 띄워도 같은 효과가 있음. 오래전부터 있던 기능인데 의외로 잘 알려지지 않았고, Mac에도 비슷한 흐름이 생겨서 반가움
  - 내 기준에는 전원 버튼을 **빠르게 5번 이상** 누르는 쪽이 더 쉬움
- 발상이 멋지다고 느낌. 예전부터 **강제 잠금 해제**의 적법성 논쟁이 있었고, 내 기억엔 지문은 강제로 요구될 수 있지만 비밀번호 입력 강제는 더 어렵다고 알려져 있었음. 그래서 이 도구도 주된 목적이 그런 상황 대응인지, 아니면 다른 목표도 있는지 궁금했음
  - 나는 Washington Post 기자 **Hannah Natanson** 사례를 보고 이걸 만들었음. 그 기자가 지문으로 컴퓨터 잠금 해제를 강요받았고, 그 결과 데스크톱 Signal까지 열려서 취재원과 대화가 노출됐음. 관련 기사는 [Yahoo 기사](https://www.yahoo.com/news/articles/washington-post-raid-pro...)에서 볼 수 있고, 법적 배경과 판례는 [앱 소개 페이지](https://paniclock.github.io/)에 더 정리해뒀음
  - 이게 **미국만의 문제**인지 궁금함. 영국은 기억상, 합리적으로 알고 있을 법한 비밀번호는 제출을 강제할 수 있는 쪽에 더 가까웠던 것 같음
  - 또 다른 문제는 기기 표면에 **지문 흔적**이 남는다는 점임. 선명한 지문 이미지를 만들 수 있으면 젤라틴 복제 같은 방식으로 많은 지문 센서를 속일 수 있었음. 예전에는 포토샵으로 정리한 뒤 OHP 필름에 레이저 프린트해서 몰드처럼 쓰는 기법도 자주 언급됐음
  - 생체인식 대 비밀번호, 그리고 **법적 상황**에 대한 추가 설명은 [paniclock 사이트](https://paniclock.github.io/)에 더 있음
  - 비밀번호 강제의 적법성이 불명확한 면은 있어도, 법원은 **모욕죄(contest)** 가 아니라 contempt를 통해 사실상 무기한 구금 압박으로 비밀번호 입력을 강제할 수 있다는 점도 같이 봐야 함
- 현실 사례로, 당국이 법적 강제나 이른바 **rubber-hose cryptanalysis** 없이도 컴퓨터 전체 접근을 원하면 어떻게 하는지 잘 보여주는 예가 있음. 대상이 로그인된 상태가 될 때까지 기다렸다가 근처에서 소동을 연출하고 열린 노트북을 그대로 낚아채는 방식이었음. DPR 체포 작전은 [이 글](https://www.forensicscolleges.com/blog/forensics-casefile/si...)에 정리돼 있음
- 이건 정말 좋다고 느낌. 보통은 생체인식이 비밀번호를 대체하면 안 된다는 **보안 조언**을 많이 보지만, 내 경우엔 공개된 장소에서 비밀번호를 칠 때 누군가에게 촬영되거나 엿보이는 위험이 더 크게 느껴짐. 그런 현실적인 상황까지 생각하면 이런 도구가 균형을 잘 맞춰줌
  - Apple 플랫폼에는 크게 두 가지 **빈틈**이 있다고 봄. 하나는 Touch ID와 생체인식에 대한 세밀한 설정 프로필이고, 다른 하나는 iCloud 백업의 버전 관리임. 사람마다 요구하는 보안 수준이 전혀 다르니 one-size-fits-all은 맞지 않음. 평균 사용자에게 생체인식은 shoulder surfing을 줄이고 보안을 높여주는 좋은 선택이지만, 어떤 사용자는 Apple Watch 같은 2차 요소를 붙이거나, 비밀번호 강제까지의 시간을 짧게 하거나, 아예 **생체인식+비밀번호 동시 요구**를 원할 수도 있음. 지금보다 훨씬 세밀한 선택지가 필요하다고 느낌
  - 여기서 진짜 필요한 건 **멀티팩터**라고 봄. 예를 들면 지문과 기기별 PIN을 둘 다 요구하는 식임. 안타깝게도 기반 기술은 이미 있는데도 이런 기능을 제품에서 잘 제공하지 않음
- Touch ID 버튼을 클릭했을 때 그 로그인 시도를 **무효화**하고 비밀번호를 요구하게 만들 수 있으면 좋겠다고 생각함. 평소엔 지문 로그인 편의성을 좋아하지만, 필요할 때 즉시 빠져나올 수 있는 **출구 버튼** 같은 감각이 있으면 더 좋겠음
- 맥에는 가속도계도 있으니, 뚜껑을 닫는 **힘의 세기**를 감지하거나 적당한 프록시 값을 추정할 수 있으면 정말 좋겠다고 생각함. 살짝 닫으면 아무 일도 없고, 좀 더 세게 닫으면 Touch ID 비활성화, 정말 다급하게 slam shut 하면 모든 생체인식 비활성화에 세션 상태 폐기, 가능하다면 RAM과 FileVault 키까지 날리는 식이면 이상적임
  - 그건 거의 **rage quitting machine** 같음. 기업용 버전에서는 뚜껑을 전력으로 닫는 순간 현재 고용주에게 **전문적인 사직서**까지 자동 발송하면 완성일 것 같음
  - 그런 마지막 단계가 합리적이라고 생각한다면 아마 **고양이나 아이**와 함께 살지 않는 사람일 가능성이 높다고 느낌
- “민감한 상황에서 많은 나라의 수사기관이나 국경 요원은 비밀번호와 달리 **생체인식 해제**를 강제할 수 있음”이라는 설명은 이해하지만, 위협 모델에 국가급 행위자가 포함된다면 생체인식만 꺼서는 물리 메모리의 데이터를 막지 못할 수 있음. 그럴수록 디스크 암호화를 켜고, RAM에 평문 데이터가 남지 않도록 컴퓨터를 즉시 **전원 종료나 최대절전**시키는 패닉 버튼이 더 현명해 보임. 사이트에서는 종료가 시간이 걸리고 세션을 죽인다고 하지만, 최대절전 버튼이라면 속도는 비슷하면서 세션은 보존할 수 있음
  - 적어도 **Apple Silicon**은 이런 종류의 공격이 훨씬 더 어렵긴 함. 완전히 불가능하다고는 못 해도 예전보다는 방어력이 높아 보임
  - 다만 경찰은 국가를 위해 일할 뿐이지, 보통 우리가 말하는 **state-level actor**와는 결이 다르다고 봄
