[CS] 인증과 인가: 보안의 두 기둥
정보 보안의 두 가지 핵심 개념인 인증(Authentication)과 인가(Authorization)는 사용자의 신원 확인 및 접근 권한 부여와 관련된 과정이다. 이 두 과정은 시스템의 보안성을 높이는 데 필수적이다.
1. 인증 (Authentication)
인증은 사용자가 주장하는 신원을 확인하는 과정이다. 이는 사용자가 실제로 누구인지 검증하는 것을 의미한다.
1-1. 인증 프로세스
서버에서의 인증 과정은 일반적으로 다음과 같은 단계로 이루어진다.
- 클라이언트 : 클라이언트가 서버에 요청을 보낸다.
- 서버 응답 : 서버는 클라이언트의 요청에 대해 인증이 필요하다는 401 Unauthorized 상태 코드와 함께 www-Authenticate헤더를 포함한 응답을 반환한다.
- 클라이언트 자격 증명 제공 : 클라이언트는 사용자에게 자격 증명을 입력하도록 요청하고, 입력된 정보를 Authorization 헤더에 포함하여 서버에 다시 요청한다.
- 서버 인증 확인 : 서버는 클라이언트가 제공한 자격 증명을 확인하고, 유효한 경우 요청을 처리한다. 그렇지 않으면 다시 401 Unauthorized응답을 반환한다.
1-2. 인증의 유형
- 단일 요소 인증(Single-factor-authentication) : 하나의 요소만 사용하여 신원을 확인한다. 예를 들어, 비밀번호만 사용하는 경우이다. 보안이 낮아 금융 거래와 같은 중요한 작업에는 권장되지 않는다.
- 다중 요소 인증(Muti-factor authentication) : 두 가지 이상의 요소를 사용하여 신원을 확인한다. 예를 들어, 비밀번호와 함께 SMS로 전송된 코드를 요구하는 방식이다. 보안이 높다.
1-3. 인증 요소의 세 가지 범주
- 지식 기반 요소 (Knowledge) : 사용자가 알고 있는 정보 (예: 비밀번호, PIN)
- 소유 기반 요소 (Ownership) : 사용자가 소유한 물건 (예 : ID 카드, 보안 토큰)
- 고유 기반 요소 (Inherence) : 사용자의 생체 정보 (예: 지문, 얼굴 인식)
1-4. 디지털 인증 (Digital Authentication)
- 디지털 인증은 전자적 방법을 통해 사용자 신원을 확인하는 과정이다.
- 이는 원격으로 네트워크를 통해 개인이나 엔티티를 인증해야 하므로 기술적 도전이 따른다.
1-5. 보안 문제
인증 과정에서 발생할 수 있는 보안 문제로는 중간자 공격(Man-in-the-middle attacks)이 있다. 이 공격은 제 3자가 통신을 가로채어 정보를 탈취하는 방식이다.
1-6. 제품 인증
위조 제품을 방지하기 위한 기술적 방법이다. 예를 들어, QR 코드, 보안 인쇄 기술, 그리고 다양한 물리적 보안 기능이 사용된다.
https://en.wikipedia.org/wiki/Authentication
Authentication - Wikipedia
From Wikipedia, the free encyclopedia Act of proving an assertion ATM user authenticating himself Authentication (from Greek: αὐθεντικός authentikos, "real, genuine", from αὐθέντης authentes, "author") is the act of proving an assertion
en.wikipedia.org
인가란 리소스에 접근할 수 있는 권한이나 특권을 지정하는 기능이다. 이는 정보 보안과 IAM(Identity and Access Management)과 밀렵한 관련이 있다.
2. 인가 (Authorization)
2-1. 인가의 정의
인가는 리소스에 접근할 수 있는 권한이나 특권을 지정하는 기능이다. 이는 정보 보안 및 컴퓨터 보안과 관련이 있으며, 특히 IAM(Identity and Access Management)과 관련이 깊다. 인가는 시스템 및 사용자 계정 구성 중에 접근 정책을 정의하는 과정이다.
2-2. 인가의 중요성
인가는 사용자가 특정 리소스에 접근할 수 있는지를 결정하는 중요한 과정이다. 예를 들어, 인사부 직원의 사용자 계정은 직원 기록에 접근할 수 있는 권한으로 구성된다. 인가는 접근 제어 규칙으로 형식화되어 컴퓨터 시스템에 적용된다.
2-3. 인가 프로세스
인가는 일반적으로 다음 두 가지 단계로 나뉜다.
- 구성 단계 (Configuration Phase) : 사용자 계정이 생성되고 해당 계정의 접근 인가 정책이 정의된다.
- 사용 단계 (Usage Phase) : 사용자 인증이 이루어진 후, 접근 제어가 수행되어 사용자가 인가된 리소스에만 접근할 수 있도록 보장한다.
2-4. 접근 제어 (Access Control)
접근 제어는 인가 정책을 시행하여 인증된 소비자가 리소스에 대한 접근 요청을 승인(허가)하거나 거부(거절)하는 과정을 포함한다. 리소스에는 개별 파일, 데이터, 컴퓨터 프로그램, 컴퓨터 장치 및 애플리케이션에서 제공하는 기능이 포함된다.
2-5. 역할 기반 접근 제어 (RBAC)
현대의 다중 사용자 운영 체제는 역할 기반 접근 제어(RBAC)를 포함하여 인가가 역할에 의해 암묵적으로 정의된다. 사용자가 특정 역할에 할당되면 해당 역할에 따라 자동으로 권한이 부여된다.
2-6. 신뢰할 수 있는 소비자와 비신뢰 소비자
- 신뢰할 수 잇는 소비자 : 시스템의 리소스에 대한 무제한 접근 권한이 부여된 소비자이다. 그러나 접근 제어 시스템이 접근 승인 결정을 내리기 위해서는 이들의 신원이 확인되어야 한다.
- 비신뢰 소비자 : 인증되지 않은 소비자(예: 게스트)는 제한된 인가를 가진다. 분산 시스템에서는 고유한 신원을 요구하지 않고 접근을 허용하는 것이 바람직할 수 있다.
2-7. 최소 권한 원칙 (Principle of Least Privilege)
소비자는 자신의 업무를 수행하는 데 필요한 최소한의 권한만 부여받아야한다. 이는 보안을 강화하고 자원에 대한 부적절한 접근을 방지하는 데 도움이 된다.
2-8. 인가 데이터 관리
인증 및 접근 제어 목록을 통해 접근이 제어되더라도 인가 데이터를 유지 관리하는 문제는 간단하지 않으며, 종종 인증 자격 증명을 관리하는 것만큼 행정적 부담이 크다. 사용자의 인가를 변경하거나 제거해야 할 필요가 있을 때, 시스템에서 해당 접근 규칙을 변경하거나 삭제하여 수행한다.
2-9. 공공 정책에서의 인가
공공 정책에서 인가는 보안 또는 사회적 통제를 위한 신뢰할 수 있는 시스템의 기능이다. 예를 들어, 은행에서 인가는 고객의 계좌에 대한 구매 시 보류를 의미한다.
https://en.wikipedia.org/wiki/Authorization
Authorization - Wikipedia
From Wikipedia, the free encyclopedia Function of specifying access rights and privileges to resources "Authorization code" redirects here. For the code allowing internet domain name transfers, see Auth-Code. Authorization or authorisation (see spelling di
en.wikipedia.org
인증은 “당신이 주장하는 사람이 맞는지 확인하는 과정” 이고,
인가는 “당신이 하고자 하는 일을 할 수 잇는 권한이 있는지 확인하는 과정” 이다.