본문 바로가기
카테고리 없음

MFA(Multi-Factor Authentication)

by 죄니안죄니 2026. 5. 18.
반응형
 
What is Multifactor Authentication (MFA) Implementation? - Palo Alto NetworksReinforcing cybersecurity with Multi-Factor Authentication (MFA)Search for perfection in technology: Two-Factor authentication with Azure sphere and Azure IoT hub
 

MFA(Multi-Factor Authentication)는

“여러 종류의 인증 수단을 조합해서 로그인하는 방식”

 

쉽게 말하면:

비밀번호만 믿지 말고
추가 증명도 같이 요구하자
 

라는 개념.


가장 흔한 예시

로그인할 때:

1. 아이디/비밀번호 입력
↓
2. 휴대폰 인증번호 입력
 

이거 자체가 MFA


왜 필요한가

비밀번호는 털릴 수 있기 때문.

예:

  • 피싱
  • DB 유출
  • 비밀번호 재사용
  • 키로거
  • 악성코드

등등.


그래서:

비밀번호 알아도
추가 인증 없으면 못 들어오게 하자
 

가 MFA 핵심.


인증 요소(Factor) 종류

MFA는 서로 다른 종류의 인증을 조합해야 함.

보통 3가지로 나눔.


1. 내가 아는 것 (Knowledge)

지식 기반.

예:

  • 비밀번호
  • PIN
  • 보안 질문

2. 내가 가진 것 (Possession)

소유 기반.

예:

  • 휴대폰
  • OTP 앱
  • 보안키(YubiKey)
  • 인증서
  • 문자 인증

3. 나 자신 (Inherence)

생체 기반.

예:

  • 지문
  • 얼굴
  • 홍채

MFA는 조합이 중요

예:

좋은 MFA

비밀번호 + OTP
 

(지식 + 소유)


이것도 MFA

비밀번호 + 지문
 

이건 MFA 아님

비밀번호 + 보안질문
 

둘 다 “아는 것”이라
같은 factor임.


OTP가 가장 흔함

실무에서 제일 많이 쓰는 MFA.


OTP 원리

OTP = One Time Password

일회용 비밀번호.

예:

582194
 

30초마다 바뀜.


대표 앱

  • Google Authenticator
  • Microsoft Authenticator
  • Authy

OTP 동작 원리

보통 TOTP 방식 사용.

(Time-based One-Time Password)


서버와 앱이 같은 Secret 공유

처음 등록 시:

SECRET_KEY
 

를 서로 저장.


이후

현재 시간 기준으로:

HMAC(secret + currentTime)
 

계산.


그러면:

  • 서버
  • 사용자 앱

둘 다 같은 숫자 생성 가능.


그래서 네트워크 통신 없이도 됨

앱은 오프라인이어도 OTP 생성 가능.


SMS 인증은 왜 약하다고 하나

문자 MFA도 MFA는 맞음.

하지만 보안 약점 있음.


대표 공격

SIM Swapping

통신사 속여서:

내 번호를 공격자 유심으로 이동
 

시키는 공격.


그래서 요즘은:

더 안전한 방식 선호

  • OTP 앱
  • Passkey
  • FIDO2
  • 보안키

가장 강력한 MFA

FIDO2 / 보안키

예:

  • YubiKey 5 NFC
  • Windows Hello
  • Face ID

원리

공개키 암호 기반.

사이트마다:

  • 공개키 등록
  • 개인키는 기기 내부 보관

로그인 시:

개인키 서명
 

으로 인증.

비밀번호 자체가 없어질 수도 있음.


MFA와 SSO 관계

실무에서 엄청 중요.

보통:

SSO 로그인 시
MFA 추가 요구
 

구조를 씀.


예:

회사 SSO 로그인:

ID/PW
↓
OTP 입력
↓
사내 모든 시스템 접근
 

기업에서 MFA 적용 이유

특히 VPN/클라우드 때문에 중요해짐.

예:

  • AWS 콘솔
  • GitHub
  • 사내 VPN
  • 관리자 페이지

비밀번호만으로는 위험.


실무 구조

보통:

사용자
↓
IdP(Keycloak/Okta)
↓ MFA 수행
↓
JWT/OIDC 토큰 발급
↓
서비스 접근
 

Spring Security 기준

요즘은 보통:

  • 자체 구현 거의 안함
  • IdP에 위임

함.

즉:

  • Keycloak
  • Auth0
  • Okta

가 MFA 처리.

Spring은:

토큰 검증만
 

하는 경우 많음.


요즘 트렌드

Passwordless

비밀번호 제거 흐름.

예:

Face ID
지문
Passkey
 

만으로 로그인.


Passkey

애플/구글/MS가 밀고 있음.

사실상:

FIDO2 기반 공개키 인증
 

임.


핵심 정리

MFA는:

비밀번호 하나만 믿지 말고

서로 다른 종류의 인증 요소를
추가로 요구해서

계정 탈취를 어렵게 만드는 보안 방식
 

이야.

반응형

댓글