본문으로 건너뛰기

인증 흐름 (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 명령을 받아야 하며, 별도의 명령이 없으면 잠김 상태를 유지한다.