ComputerScience
정의
그 사용자인지 확인하는 프로세스사용자가 주장하는 신원(identity)이 실제로 그 사용자인지 확인하는 프로세스로 정의합니다.
이는 시스템 보안의 가장 기본적인 단계이며, 접근 제어(access control)의 전제 조건이 됩니다.
What ?
4단계 메커니즘식별 (Identification): 사용자가 "나 누구야"라고 주장하는 단계 (예: 아이디 입력).
인증 (Authentication): 주장이 진짜인지 증거를 제시하는 단계 (예: 비밀번호, 생체 정보, OTP).
인가 (Authorization): 인증된 사용자에게 허용된 권한을 확인하는 단계 (예: 일반 유저인지 관리자인지 확인).
세션 관리 (Session Management): 매번 로그인하지 않도록 "인증된 상태"를 일정 기간 유지하는 단계.
What ?
3요소
지식 기반 (What you know): 사용자만 알고 있는 것 (비밀번호, PIN, 보안 질문).
소유 기반 (What you have): 사용자가 가지고 있는 것 (스마트폰, 하드웨어 OTP, 보안 키).
존재 기반 (What you are): 사용자의 신체적 특징 (지문, 홍채, 안면 인식)
What ?
인증 상태를 어떻게 기억할 것인가
서버 중심
전통적인 방식입니다. 서버가 "누가 로그인했는지" 메모리에 적어두고 관리합니다.
- 특징: 서버가 모든 통제권을 가짐. 사용자가 많아지면 서버 메모리 부하가 큼.
- 흐름: 로그인 성공 → 서버 메모리에 세션 생성 → 클라이언트에 Session ID 전달 → 클라이언트는 쿠키에 담아서 제출.
클라이언트 중심
현대적인 분산 환경이나 모바일 환경에서 선호됩니다.
- 특징: 서버는 기억하지 않음. 사용자가 "나 인증됨"이라는 증명서를 들고 다님.
- 흐름: 로그인 성공 → 서버가 디지털 서명된 Token 발급 → 클라이언트가 저장 → 매 요청마다 토큰 제출 → 서버는 서명만 검증.