피드로 돌아가기
Dev.toSecurity
원문 읽기
AstraLock 프로젝트가 PAM 모듈과 systemd 데몬을 분리하여 Linux용 오프라인 얼굴 인증 시스템을 구현한 과정
Building a Face Authentication System for Linux (Using PAM, systemd, and ONNX)
AI 요약
Context
리눅스는 Windows나 macOS와 달리 네이티브 얼굴 인증 시스템이 부재하며, Howdy 같은 기존 도구들은 PAM 모듈 간 불일치, 카메라 처리 불안정, 시스템 통합 문제로 실전 환경에서 신뢰성이 낮았다.
Technical Solution
- PAM 인증 → pam_facelock.so 모듈로 시스템 인증 요청을 별도 데몬에 전달하는 경량 게이트웨이 역할 수행
- 얼굴 인식 → ONNX 기반 RetinaFace로 얼굴 감지, ArcFace(512차원 임베딩)로 코사인 유사도 매칭 수행
- 시스템 통합 → facelockd systemd 서비스를 통해 카메라 접근, 모델 추론, 이미지 처리를 PAM 외부에서 처리
- IPC 통신 → UNIX 소켓 기반으로 PAM 모듈과 얼굴 인식 파이프라인 간 동기적 통신 구현
- 보안 설계 → PAM을 sufficient 모드로 설정하여 비밀번호 폴백을 항상 유지하고 잠금 상황 방지
Impact
정량적 성능 지표는 제공되지 않음
Key Takeaway
PAM 모듈은 최소하고 예측 가능하게 유지해야 하며, 카메라 접근이나 ML 추론 같은 무거운 작업은 별도 데몬에서 처리하는 것이 시스템 안정성의 핵심이다.
실천 포인트
Linux 환경에서 PAM 기반 인증 시스템 구축 시 heavy operation(카메라, ML 추론)을 daemon로 분리하면 PAM 모듈의 예측 가능성을 유지하면서 확장성 있는 인증 파이프라인을 구현할 수 있다.