인증이 어떻게 작동하는가 및 다양한 유형
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
개발 툴
대상자
- 소프트웨어 개발자 및 시스템 설계자
- 중간 수준의 이해도 (인증 메커니즘의 기초 지식을 가정)
핵심 요약
- 인증(Authorization)은 "사용자가 누구인지 확인"하는 과정으로, 권한 부여(Authorization)와 구분
- 주요 인증 유형: 패스워드 기반, 토큰 기반, OAuth, MFA(Multi-Factor Authentication), API 키
- 보안 강화를 위해 MFA와 API 키 활용 추천
- OAuth는 3rd party 인증을 통해 사용자 편의성 향상
섹션별 세부 요약
1. 인증의 기본 개념
- 인증은 사용자의 신분을 검증하는 과정
- 예시: 이메일/패스워드 입력, 토큰, OAuth, MFA, API 키
- 인증 vs 권한 부여: 인증은 "누구인가?", 권한 부여는 "무엇을 할 수 있는가?"
2. 패스워드 기반 인증
- 방식: 이메일과 패스워드 입력 후 서버에서 일치 여부 확인
- 위험 요소: 약한 패스워드, 암호화 미비 시 보안 취약
- 추천: 암호화, 패스워드 정책 강화
3. 토큰 기반 인증
- 방식: 로그인 후 토큰 발급 (예: VIP 패스)
- 장점: 재로그인 필요 없음, 요청마다 토큰 검증
- 보안 고려사항: 토큰 만료 시간 설정, 재사용 방지
4. OAuth 인증
- 방식: 3rd party(예: Google, Facebook)를 통해 인증
- 장점: 사용자 편의성 증대, 패스워드 노출 방지
- 제한: 제한된 접근 권한만 부여
5. MFA(Multi-Factor Authentication)
- 방식: ID + 텍스트 인증 코드 (예: 이메일/전화로 코드 전송)
- 보안 효과: 2단계 인증으로 해킹 방지
- 단점: 사용자 경험 저하 (추가 인증 단계)
6. API 키 기반 인증
- 방식: 앱 간 통신 시 API 키 사용 (예: 서비스 앱과 다른 앱 간 인증)
- 용도: 내부 시스템 통신, 보안 강화
- 보안 고려사항: API 키 회전 정책 적용
결론
- 보안 강화를 위해 MFA와 API 키 활용
- OAuth는 사용자 편의성을 위해 3rd party 인증 사용
- 패스워드 기반 인증은 암호화와 패스워드 정책으로 보완
- 인증과 권한 부여는 구분하여 설계 (예: 일반 사용자 vs 관리자)