본문으로 건너뛰기

위협 모델 (Threat Model)

본 장에서는 2FA Smart Door Lock 시스템의 보안 무결성을 확보하기 위해 수행된 위협 모델링 결과를 기술한다. 본 분석은 Microsoft의 STRIDE 방법론을 기반으로 하여, 시스템의 각 구성 요소에서 발생할 수 있는 잠재적 보안 위협을 체계적으로 식별하고 이에 대한 완화 전략을 수립하였다.

STRIDE 방법론 개요

구분위협 유형 (Threat Type)설명
SSpoofing (속임수)타인의 NFC 카드, PIN 또는 안면 정보를 도용하여 인가된 사용자로 위장하는 행위
TTampering (변조)시리얼 통신 데이터나 데이터베이스의 무단 수정, 하드웨어 회로의 물리적 변경
RRepudiation (부인)특정 사용자가 수행한 접근 기록을 부정하거나 시스템 로그를 조작하여 흔적을 지우는 행위
IInformation Disclosure (정보 유출)사용자의 안면 데이터, 해시된 PIN, 접근 기록 등 민감 정보가 외부에 노출되는 행위
DDenial of Service (서비스 거부)전원 차단, 무차별 대입 공격 등을 통해 시스템의 정상적인 작동을 방해하는 행위
EElevation of Privilege (권한 상승)일반 사용자 권한으로 시스템 설정에 접근하거나 관리자 기능을 탈취하는 행위

보안 매트릭스 (Security Matrix)

본 시스템의 주요 구성 요소에 대해 식별된 위협 시나리오와 대응 방안은 다음과 같다.

분류 (STRIDE)위협 시나리오 (Threat Scenario)위험도완화 전략 (Mitigation Strategy)잔여 위험 (Remaining Risk)
Spoofing타인의 NFC 카드 또는 PIN 정보를 도용하여 1차 인증 시도2단계 인증(2FA) 필수 적용. 1차 인증 성공 후 반드시 안면 인식 단계를 거치도록 설계함.유효한 카드와 PIN을 모두 탈취하고 안면 정보까지 위조할 경우 방어 불가.
Spoofing고해상도 사진이나 태블릿 화면을 이용한 안면 인식 우회 (Presentation Attack)YOLOv8 모델의 신뢰도 임계값(Threshold) 최적화 및 비정상적인 매칭 결과에 대한 로깅.2D 카메라의 한계로 인해 정교한 위조(Liveness 탐지 부재)에 취약할 수 있음.
TamperingArduino와 서버 간 시리얼 통신에 임의의 UNLOCK 명령 주입서버와 Arduino를 단일 폐쇄 케이스 내에 배치하여 물리적 접근 차단 (설계 가이드라인).물리적 보안이 뚫릴 경우 평문 시리얼 명령 탈취 및 주입 가능.
Tampering릴레이 출력 단자를 직접 단락(Short)시켜 도어락 강제 개방치명릴레이 및 도어락 구동부를 보안 구역(문 안쪽)에 설치하고 외함(Enclosure) 보호 적용.외부 노출형 설치 시 물리적 공격에 대한 소프트웨어적 방어 불가.
Information Disclosure데이터베이스(SQLite) 접근을 통한 사용자 정보 및 접근 로그 유출DB 파일 권한 설정(0o600) 및 PIN 정보의 Bcrypt 암호화(Hashed) 저장.서버 운영체제 권한(Root) 탈취 시 파일 직접 접근 위험 잔존.
Denial of Service고의적인 전원 차단 또는 시스템 과부하 유도Fail-Secure 하드웨어(정전 시 잠금 상태 유지) 사용 및 비정상 시도에 대한 속도 제한.정전 시 기계식 비상 열쇠가 없을 경우 정당한 사용자도 출입이 불가능함 (가용성 저해).
Elevation of Privilege일반 사용자 계정을 통해 웹 대시보드의 관리 설정에 접근관리자 권한 분리 및 API 엔드포인트에 대한 접근 제어(Web App 단에서 처리).API 인증 로직의 허점이 발견될 경우 권한 상승 위험 존재.

안전 및 주의사항 (Safety and Precautions)

본 시스템은 전기적 신호를 통해 물리적인 잠금장치를 제어하므로, 제작 및 운영 시 다음과 같은 안전 지침을 반드시 준수해야 한다.

구분지침 및 주의사항
전기적 안전릴레이 모듈 연결 시 도어락의 전압(12V)과 제어부 전압(5V)이 혼용되지 않도록 분리된 전원을 사용한다. 결선 노출 부위는 수축 튜브나 절연 테이프로 마감하여 단락을 방지한다.
하드웨어 보호Arduino와 서버(PC/SBC) 간의 USB 연결 시 과전류 방지를 위해 안정적인 포트를 사용한다. 정전기 방지를 위해 하드웨어 취급 전 접지를 수행한다.
Fail-Secure전원 공급 중단 시 문이 잠금 상태를 유지하는 'Fail-Secure' 하드웨어를 사용한다. 이는 화재 등 비상시 외부 침입을 막는 데 유리하지만, 내부 탈출을 위한 수동 개폐 장치(Manual Override)를 반드시 병행 설치해야 한다.
유지보수주기적으로 데이터베이스 백업을 수행하고, 안면 인식률 저하를 방지하기 위해 카메라 렌즈의 청결 상태를 유지한다.

설계 철학 (Design Philosophy)

본 시스템은 **"신뢰할 수 없는 환경에서의 방어적 설계"**를 철학으로 한다.

  1. Fail-Secure 우선: 소프트웨어 예외, 하드웨어 통신 단절(카메라, 시리얼 포트), 또는 인증 서버 다운 시 시스템은 항상 '잠금(Locked)' 상태를 유지한다.
  2. 명시적 허용: 2단계 인증의 모든 조건이 명시적으로 충족되지 않는 한, UNLOCK 명령은 절대 생성되지 않는다.
  3. 최소 권한 원칙: 각 모듈(Arduino, Backend, Database)은 기능 수행에 필요한 최소한의 데이터와 명령만을 교환하도록 설계되었다.