어디까지나 웹 개발자를 위한 인증요소
1.1. 개요
인증요소는 사용자가 누구인지 확인하기 위해 사용
주요 인증요소에는 무엇을 알고 있는 것(비밀번호), 무엇을 소유하고 있는 것(스마트카드, 토큰), 무엇을 그릴 수 있는 것(생체 인식) 등이 존재
1.2. 다중 인증요소(Multi-Factor Authentication)
다중 인증요소(Multi-Factor Authentication, MFA)는 사용자 인증을 위해 두 개 이상의 인증요소를 사용하는 접근 방법
예를 들어, 비밀번호와 스마트폰으로 전송되는 일회용 인증번호(OTP)를 함께 사용하는 것이 MFA의 한 예시
MFA는 보안을 강화하며, 단일 인증요소(Single-Factor Authentication)만 사용하는 경우에 비해 더 안전한 인증 절차를 제공
2.1. OTP 개요
OTP(One-Time Password)는 말 그대로 한 번만 사용할 수 있는 비밀번호를 의미
사용자가 로그인 또는 인증을 시도할 때마다 새로운 OTP가 생성되며, 이를 통해 사용자의 신원을 확인
OTP는 물리적인 디바이스(토큰) 또는 모바일 앱을 통해 생성되며, 주요 특징은 보안성이 높고 사용자 경험이 비교적 편리하다는 점이 있음
2.2. OTP 동작 원리
OTP는 주로 시간 기반(TOTP) 또는 이벤트 기반(HOTP) 알고리즘을 사용하여 생성됩니다.
시간 기반 OTP는 일정 시간 간격마다 변경되는 OTP를 생성하며, 이를 위해 공유된 비밀키와 현재 시간 정보가 필요
이벤트 기반 OTP는 이벤트가 발생할 때마다 변경되며, 이벤트 카운터와 공유된 비밀키가 필요
2.3. MOTP 동작 원리
MOTP(Mobile OTP)는 사용자의 스마트폰에 모바일 앱을 설치하고, 해당 앱은 서버와 동기화하여 OTP를 생성
MOTP의 원리는 주로 TOTP와 유사하며, 사용자의 모바일 앱을 통해 동작
2.4. OTP와 MOTP의 주요 차이점
OTP는 물리적인 토큰 또는 소프트웨어 앱을 통해 생성될 수 있으며, MOTP는 모바일 앱을 통해 생성
OTP와 MOTP는 원리적으로는 유사하지만, MOTP는 사용자가 항상 스마트폰을 가지고 다녀야 하므로 휴대성이 뛰어나다는 점에서 차이가 있음
OAuth는 온라인 서비스와 웹 및 모바일 애플리케이션에서 안전하게 사용자의 리소스에 대한 접근 권한을 부여하기 위한 오픈 표준 프로토콜로 OAuth를 사용하면 사용자는 다른 서비스나 앱에서 자신의 데이터에 대한 제어를 유지하면서 서비스 간 연결을 허용
3.2. 동작 원리
OAuth의 동작 원리는 크게 "인증 서버"와 "리소스 서버" 그리고 "클라이언트 애플리케이션"으로 구성
3.4. 사용 사례
소셜 미디어 로그인: 사용자는 자신의 소셜 미디어 계정을 사용하여 다른 웹 사이트나 앱에 로그인
외부 서비스 연동: 앱 또는 서비스는 사용자의 다른 계정(예: 구글 또는 페이스북)을 통해 데이터를 가져오거나 공유
API 접근 권한 부여: 사용자는 앱에 자신의 데이터에 대한 접근 권한을 부여하고, 해당 앱은 사용자 데이터를 사용하여 추가 기능을 제공
4.5. 사용 사례