IT Study/보안 및 프라이버시

🪪 인증(Authentication) vs 권한(Authorization)의 차이와 시스템 구현

cs_bot 2025. 4. 7. 16:37

1. 개요

  • 정보시스템 보안의 핵심 요소로 인증(Authentication)권한(Authorization)이 존재함
  • 두 개념은 상호 보완적이면서도 구체적인 역할과 시스템 설계 접근 방식이 다름
  • 보안 사고 대응 및 시스템 설계의 기초로 반드시 구분하여 이해할 필요가 있음

2. 개념 정의 및 차이점

구분 인증 (Authentication) 권한 (Authorization)
정의 사용자의 신원 확인 절차 인증된 사용자가 수행할 수 있는 행위나 접근 범위 지정 절차
목적 누구인지 확인 무엇을 할 수 있는지 정의
시점 시스템 접근 전 선행 처리됨 인증 완료 후 처리됨
결과 사용자의 신원 식별 정보 확보 자원 접근 허용/제한 정책 적용
예시 ID/PW, OTP, 지문, 인증서 등 파일 읽기/쓰기, 관리자 메뉴 접근 권한 등
  • 인증은 ‘누가 접속했는가’에 대한 확인
  • 권한은 ‘접속한 사용자가 무엇을 할 수 있는가’에 대한 제어

3. 시스템 구현 방식 비교

3.1 인증 시스템 구현 방식

  • 기본 구성: 사용자 정보 저장소(DB, LDAP) + 인증 수단 + 인증 모듈
  • 방식 구분
    • 지식 기반(Knowledge-based): ID/PW, PIN 등
    • 소지 기반(Possession-based): OTP, 보안토큰, 인증서
    • 생체 기반(Biometrics): 지문, 홍채, 안면인식 등
  • 구현 예시
    • 웹 서비스 로그인 시 사용자 ID와 해시된 패스워드를 DB와 대조
    • OAuth2의 인증 코드 흐름에서 인증 서버에서 사용자 인증 수행
    • FIDO(Fast Identity Online) 기반 생체 인증 적용 시 장치 내 생체정보 매칭

3.2 권한 시스템 구현 방식

  • 기본 구성: 권한 정책 저장소(RBAC/ABAC 테이블) + 권한 평가 엔진
  • 방식 구분
    • RBAC(Role-Based Access Control): 역할 기반 접근 제어
    • ABAC(Attribute-Based Access Control): 속성 기반 접근 제어
    • PBAC(Policy-Based Access Control): 정책 기반 접근 제어
  • 구현 예시
    • DB 테이블에 Role과 Permission Mapping Table 구성
    • 클라우드 환경에서 리소스 접근 정책을 IAM(Identity & Access Management)으로 통합 관리
    • Spring Security Framework에서 인증 후 각 URL에 접근 권한 설정을 통한 제어

4. 인증과 권한 간 관계 및 시나리오 예시

  • 관계 정리
    • 인증이 선행되어야 권한 평가 가능함
    • 인증 결과에 따라 다른 권한 집합 적용됨
  • 시나리오 예시
    1. 사용자가 시스템 접속 시도 → ID/PW 입력 → 인증 서버에서 신원 확인
    2. 인증 성공 → 사용자 Role 조회 (‘일반 사용자’, ‘관리자’)
    3. Role 기반으로 접근 가능한 메뉴 및 자원 결정
    4. ‘일반 사용자’는 게시글 열람만, ‘관리자’는 삭제/편집 가능

5. 통합 인증 및 권한 시스템 구조

  • 시스템 보안 아키텍처에서는 다음과 같이 구성함
[ 사용자 ] → [ 인증 모듈 ] → [ 세션 생성 / 토큰 발급 ] → [ 권한 모듈 ] → [ 자원 접근 허용 ]
  • 토큰 기반 인증 방식(OAuth2, JWT 등)의 경우
    • JWT 내부에 권한(Role/Scope) 정보 포함하여 별도 조회 없이 자원 접근 판단 가능
    • 단, 토큰 위변조 및 만료 관리 필요

6. 보안 위협 및 대응 방안

위협 설명 대응 방안
인증 우회 인증 절차를 무력화하고 자원에 접근 세션 관리 강화, 토큰 검증, CAPTCHA 적용
권한 상승 일반 사용자가 관리자 권한 획득 최소 권한 원칙 적용, 로직 오류 점검
세션 탈취 인증 후 발급된 세션을 탈취하여 부정 접근 HTTPS 강제, 세션 타임아웃, 재인증 요구
권한 정책 미흡 자원별 접근 제한이 부실하거나 누락됨 접근 제어 매트릭스 구성, 정기 점검 필요

7. 실제 사례

  • 인터넷 뱅킹 시스템

    • 인증: 공인인증서, OTP 또는 바이오 인증으로 사용자 신원 확인
    • 권한: 고객 계좌 조회는 가능하나 타인 계좌 이체는 권한 없음
  • 기업 내부 시스템

    • 인증: SSO 기반 인증 시스템으로 Active Directory 연동
    • 권한: 팀장 이상만 보고서 열람, 일반 사원은 편집 불가
  • 클라우드 서비스 (AWS IAM)

    • 인증: Access Key/Secret 또는 SSO 기반 인증
    • 권한: IAM 정책에 따라 EC2 인스턴스, S3 버킷 접근 여부 결정됨

8. 결론

  • 인증과 권한은 정보보안의 가장 기본이면서 핵심적인 개념
  • 인증은 ‘신원 확인’, 권한은 ‘접근 제어’라는 차이점 인식 필요
  • 보안 설계 시, 인증-권한 흐름을 통합적으로 고려한 시스템 구조 설계가 중요함
  • RBAC, ABAC, OAuth2, JWT 등 다양한 구현 기법에 대한 이해와 적절한 선택이 요구됨
  • 실제 서비스에서의 보안 사고 예방 및 사용자 데이터 보호를 위해 필수적인 요소임