본문으로 건너뛰기

인증 흐름 (Authentication Flow)

본 시스템의 2단계 인증(2FA) 프로세스는 두 개의 독립적인 검증 단계를 순차적으로 완료해야 한다. 파이프라인의 어느 지점에서든 검증에 실패하면 즉시 프로세스가 중단되고, 실패 시도가 기록되며, 서보 구동부는 잠금 상태를 유지한다.

검증 파이프라인 (Verification Pipeline)​

사용자ArduinoBackendVision AIDatabase1. NFC 태그 또는 PIN 입력2. Serial 데이터 전송3. 인증 정보 조회 (Query)4. 1차 인증 성공 (UID/Hash 일치)5. 얼굴 인식 요청6. 카메라 프레임 캡처7. 대조 결과 반환일치 시 (Match Success)8a. 성공 로그 기록 (EVENT_SUCCESS)9a. 잠금 해제 명령 전송 (OPEN_DOOR)불일치 시 (Match Failed)8b. 2차 인증 실패 기록 (FAILURE_AUTH2)9b. 거부 명령 전송 (DENY)

예외 처리 정책 (Failure Handling Policies)​

본 시스템은 Fail-Secure(장애 시 보안 유지) 원칙에 따라 설계되었다.

  1. NFC / PIN 인증 실패:
    • NFC UID가 등록되지 않았거나 PIN 해시가 일치하지 않는 경우, 시스템은 UNAUTHORIZED 이벤트를 기록한다. 이 단계에서 실패하면 Vision AI 모듈은 호출되지 않는다.
  2. 얼굴 인식(Face Verification) 실패:
    • 유효한 1차 인증 수단이 제공되었더라도 카메라가 얼굴을 감지하지 못하거나 등록된 얼굴과 일치하지 않는 경우 시스템은 FINAL_FAIL 이벤트를 기록한다.
  3. 하드웨어 및 타임아웃 오류:
    • Backend와 Arduino 간의 연결이 끊어지거나 Vision 모듈에서 타임아웃이 발생하는 경우, Arduino는 잠금 해제를 위해 Backend로부터 명시적인 OPEN_DOOR 명령을 받아야 하며, 별도의 명령이 없으면 잠김 상태를 유지한다.