MFA(Multi-factor authentication)

hiio420.official·2025년 5월 27일

정리

목록 보기
5/5

다요소 인증(多要素認證, Multi-factor authentication, MFA)은 적어도 다음 분류 중 두 가지에 한해 별도의 여러 증거 부분을 인증 매커니즘에 성공적으로 제시한 이후에만 사용자가 접근 권한이 주어지는 컴퓨터 접근 제어 방식의 하나이다: 지식(knowledge), 소유(possession), 속성(inherence).출처:위키

다중 인증(MFA, Multi-Factor Authentication)은 사용자의 신원을 확인하기 위해 두 가지 이상의 인증 요소를 요구하는 보안 절차입니다. 이는 단일 인증 방식보다 보안을 강화하여 무단 접근을 방지하는 데 효과적입니다.

역사와 배경


1. 초기 형태: ATM과 PIN

1967년 영국 Barclays 은행에서 도입된 최초의 ATM은 카드(소유 요소)와 PIN(지식 요소)을 요구하여 초기의 2단계 인증 형태를 구현했습니다.

2. 1990년대: 기업용 2FA 도입

1990년대 후반, AT&T는 하드웨어 토큰을 활용한 2FA 시스템을 개발했습니다. 이러한 시스템은 기업 환경에서 보안을 강화하는 데 사용되었습니다.

3. 2000년대: 소비자용 2FA 확산

2000년대 초반, 온라인 뱅킹 및 전자상거래의 성장과 함께 소비자용 2FA가 확산되었습니다. SMS 기반 OTP와 같은 방식이 일반화되었으며, 이는 피싱 공격과 같은 위협에 대응하기 위한 조치였습니다.

4. 2010년대 이후: 모바일 및 생체 인증

스마트폰의 보급과 함께 모바일 앱 기반의 인증 방식이 등장했으며, 지문, 얼굴 인식 등 생체 인증 기술도 MFA에 통합되었습니다. 또한, FIDO2 및 WebAuthn과 같은 표준이 개발되어 비밀번호 없는 인증 환경이 조성되고 있습니다.

구성요소


MFA는 일반적으로 다음 세 가지 요소 중 두 가지 이상을 조합하여 사용합니다:

지식 요소: 사용자가 알고 있는 정보 (예: 비밀번호, PIN)

소유 요소: 사용자가 소유한 물리적 장치 (예: 스마트폰, 보안 토큰)

고유 요소: 사용자의 생체 정보 (예: 지문, 얼굴 인식)


고려사항


비밀번호:

강력한 비밀번호 정책 필요 (예: 길이, 복잡성, 반복 방지 등)

해시(예: bcrypt, Argon2) 처리 필수

토큰, 앱, SMS, 이메일:

SMS/이메일 OTP: 일정 시간 만료, 횟수 제한, 서버-클라이언트 동기화 필요

Authenticator App (TOTP): 시간 기반 알고리즘(HOTP/TOTP), Google Authenticator, Authy 등 연동

FIDO2/WebAuthn: 생체 기반 또는 보안키 기반 → 브라우저/디바이스 호환성 고려

생체 정보 기반:

일반적으로 클라이언트(기기)에 저장, 서버에는 생체 정보 저장 안함

WebAuthn API, Android/iOS 생체 인증 API 사용

보안 고려사항


MFA 인증 흐름을 탈취 방지 설계

토큰 재사용 불가, 단일 사용성 확보

TLS(HTTPS) 적용 필수

타이밍 공격, 브루트포스 방지

MFA 실패 시 반복 제한 및 알림 기능

TOTP 사용 시 서버와 클라이언트의 시간 동기화 관리

사용자 경험(UX) 최적화


MFA 등록/삭제 기능 제공 (사용자 선택 가능하게)

백업 수단 제공 (예: 백업 코드, 보조 이메일)

MFA 단계에서의 안내 메시지 명확화 (예: "인증 코드를 입력하세요", "앱에서 승인해주세요")

MFA 오류 시 유연한 예외 처리 (예: 디바이스 분실 시)

기술 스택별 구현 도구

요소라이브러리/기술
OTP 생성/검증speakeasy, otplib, google-authenticator
SMS 발송Twilio, MessageBird, AWS SNS
이메일 인증nodemailer, Amazon SES
WebAuthn@simplewebauthn/server, webauthn-json
상태 저장Redis (TTL 기반) or DB (PostgreSQL, MongoDB)

0개의 댓글