허가 (컴퓨터 과학)
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
허가(컴퓨터 과학)는 컴퓨터 시스템 및 네트워크에서 접근 제어를 수행하는 과정으로, 접근 정책에 따라 사용자의 리소스 접근을 허용하거나 거부하는 것을 의미한다. 접근 제어는 정책 정의 단계(인가)와 정책 시행 단계로 나뉘며, 인가는 정책 정의 단계의 핵심 기능이다. 인가는 접근 제어 목록(ACL), 역할 기반 접근 제어(RBAC), 속성 기반 접근 제어(ABAC) 등의 모델을 통해 구현되며, 최소 권한의 원칙에 따라 필요한 리소스에만 접근이 허용된다. 인가 크레덴셜은 접근 시 인가 검증에 사용되는 데이터 객체로, OAuth의 액세스 토큰 등이 해당된다.
더 읽어볼만한 페이지
- 접근 제어 - 오므론
오므론은 1933년 설립된 일본의 글로벌 기업으로, 센서, 제어 장치, 의료기기 등 다양한 전자 부품 및 시스템을 생산·판매하며, 특히 전자 혈압계 분야에서 세계적인 선두주자이다. - 접근 제어 - 역할 기반 접근 제어
역할 기반 접근 제어는 조직 내 직무에 따라 역할에 권한을 할당하여 사용자가 역할을 통해 권한을 얻는 접근 제어 방식으로, 사용자 권한 관리를 단순화하고 보안 규칙을 적용할 수 있어 공공기관 및 기업에서 도입이 강조되고 있다. - 컴퓨터 접근 제어 - 로그인
로그인은 특정 페이지, 웹사이트 또는 응용 프로그램에 접근하기 위해 사용자 이름과 암호를 입력하여 시스템에 접근하는 절차이며, 1960년대 시분할 시스템과 1970년대 BBS에서 사용되기 시작했다. - 컴퓨터 접근 제어 - SIM 카드
SIM 카드는 이동통신 장치에서 가입자 정보를 저장하고 네트워크를 인증하는 스마트 카드로, 가입자 식별 정보, 인증 정보, 전화번호부 등을 저장하며, 최근에는 내장형 eSIM으로 발전하고 있다.
허가 (컴퓨터 과학) | |
---|---|
개요 | |
정의 | 권한 부여는 컴퓨터 시스템에서 사용자, 프로그램 또는 프로세스가 특정 리소스에 액세스할 수 있는 권한을 결정하는 프로세스임. |
목적 | 액세스 제어를 통해 시스템 리소스에 대한 액세스 권한을 관리하는 데 사용됨. |
관련 개념 | 인증: 사용자의 신원을 확인하는 프로세스 액세스 제어: 리소스에 대한 액세스를 관리하는 메커니즘 |
사용 예시 | 운영 체제에서 파일에 대한 액세스 권한 관리 웹 애플리케이션에서 특정 기능에 대한 액세스 권한 관리 데이터베이스에서 테이블 또는 데이터에 대한 액세스 권한 관리 |
인증과의 관계 | |
인증 후 권한 부여 | 일반적으로 사용자가 인증된 후에 액세스 권한이 부여됨. |
분리된 프로세스 | 인증은 신원을 확인하는 것이고, 권한 부여는 해당 신원이 수행할 수 있는 작업을 결정하는 것임. |
권한 부여 방법 | |
접근 제어 목록 (ACL) | 각 리소스에 대해 액세스 권한을 가진 사용자를 나열하는 목록 |
역할 기반 접근 제어 (RBAC) | 사용자를 역할에 할당하고, 역할에 따라 액세스 권한을 부여 |
속성 기반 접근 제어 (ABAC) | 사용자, 리소스 및 환경 속성을 기반으로 액세스 권한을 부여 |
구현 기술 | |
OAuth | 웹 및 모바일 애플리케이션에서 권한 부여를 위한 개방형 표준 |
OpenID Connect | OAuth 2.0을 기반으로 구축된 인증 프로토콜 |
XACML | 속성 기반 액세스 제어를 위한 표준 언어 |
보안 고려 사항 | |
권한 상승 공격 | 공격자가 자신의 권한보다 더 높은 권한을 얻으려고 시도하는 공격 |
최소 권한 원칙 | 사용자에게 필요한 최소한의 권한만 부여해야 함. |
추가 정보 | |
표준 | RFC 2196 – Site Security Handbook A Consistent Definition of Authorization |
2. 접근 제어의 단계
컴퓨터 시스템이나 네트워크에서 접근 제어는 접근 정책을 기반으로 하며, 크게 두 단계로 나뉜다.
1. 정책 정의 단계: 접근 제어 정책을 정의하고 허가 기능을 수행한다.
2. 정책 시행 단계: 정의된 정책에 따라 접근 요청을 허가하거나 거부한다.
최근 다중 사용자형 운영 체제는 대부분 접근 제어를 수행하며, 이는 '누가 무엇을 할 수 있는지'를 정하는 인가에 따라 동작한다. 예를 들어, 인사 부서 직원은 직원 기록에 접근할 권한이 있지만, 일반 사원은 접근할 수 없다. 이러한 권한은 컴퓨터 시스템 내 접근 제어 규칙으로 만들어진다.
리소스에는 파일, 데이터, 프로그램, 하드웨어, 애플리케이션 등이 포함된다. 이용자는 컴퓨터 사용자, 프로그램, 기타 장치 등을 가리킨다.
이용자가 리소스에 접근하려면, 접근 제어 처리를 통해 사용 인가 여부를 확인한다. 인가는 보통 부서장 등 책임자(authority)가 결정하지만, 시스템 관리자에게 위임되기도 한다.
인가와 접근 제어 목록을 함께 사용하여 접근을 제어하더라도, 인가 데이터 보존은 쉽지 않아 관리 부담이 크다. 사용자 인가 변경이나 취소 시 시스템 상의 접근 규칙을 변경하거나 삭제해야 한다. 기존 시스템별 인가 관리 대신, 신뢰할 수 있는 제3자가 인가 정보를 안전하게 배포하는 :en:Atomic Authorization 방식도 있다.
2. 1. 정책 정의 (인가)
접근 제어는 정책 정의 단계와 정책 시행 단계로 나뉜다. 허가 기능은 정책 정의 단계에 해당한다.[1]대부분의 현대 멀티유저 운영체제는 접근 제어를 지원하며, 이는 허가 기능을 필요로 한다. 사용자가 리소스에 접근하려 할 때, 접근 제어 프로그램은 접근 제어 정책을 참고하여 허가 여부를 결정한다.[1] 정책은 보통 해당 부서의 부서장이 정하지만, 시스템 관리자에게 위임되는 경우가 많다.[1] 이러한 정책은 접근 제어 목록(ACL), 역할 기반 접근 제어(RBAC), XACML과 같은 정책 관리 지점 형태로 표현되며, 최소 권한의 원칙에 따라 만들어져야 한다.[1] 즉, 사용자는 작업을 위해 반드시 필요한 리소스에만 접근할 수 있어야 한다.[1]
"익명 사용자" 또는 "게스트"는 인증을 하지 않아도 되는 사용자이며, 일반적으로 제한된 자원만 허가된다.[1] 분산 시스템에서는 키나 티켓과 같은 접근 토큰으로 리소스 접근을 허용하는 경우가 종종 있다.[1]
신뢰할 수 있는 사용자는 보통 시스템 리소스에 무제한 접근이 허용되지만, 시스템 리소스가 원치 않는 용도로 사용되는 것을 막기 위해 "부분적으로 신뢰할 수 있는" 사용자나 게스트는 제한된 리소스만 허가되어야 한다.[1] 일부 운영체제에서는 기본적으로 모든 사용자에게 모든 리소스에 대한 무제한 접근을 허용하는 반면, 다른 운영체제에서는 시스템 운영자가 직접 허가해야만 리소스를 사용할 수 있다.[1]
2. 2. 정책 시행
사용자가 시스템에 로그인하면, 시스템은 인증 메커니즘을 통해 사용자의 신원을 확인한다.[1] 사용자가 특정 자원에 접근을 요청하면, 시스템은 정의된 접근 제어 정책을 참조하여 접근 허용 여부를 결정한다.[1] 접근이 허용되면 사용자는 해당 자원을 사용할 수 있다. 접근이 거부되면 사용자에게 오류 메시지가 표시되고 접근이 차단된다.[1] 이러한 정책은 보통 접근 제어 목록과 같은 형식으로 저장되며, 최소 권한의 원칙을 바탕으로 만들어져야 한다.[1]3. 접근 제어 모델
컴퓨터 시스템이나 네트워크에서 접근 제어는 접근 정책을 기반으로 한다. 접근 제어는 정책 정의 단계와 정책 시행 단계로 나뉜다. 허가 기능은 정책 정의 단계에 해당하며, 이후 정책 시행 단계에서 정의된 허가에 따라 접근 요청을 수락하거나 거부한다.
대부분의 현대 멀티유저 운영체제들은 접근 제어를 지원하며, 허가 기능을 필요로 한다. 접근 제어 프로그램은 인증을 통해 사용자의 신원을 확인한다. 사용자가 리소스에 접근하려 할 때, 접근 제어 프로그램은 접근 제어 정책을 참고해 허가 여부를 결정한다. 정책은 보통 시스템 관리자가 접근 제어 목록과 같은 형식으로 저장하며, 최소 권한의 원칙에 따라 만들어져야 한다. 즉, 사용자는 작업을 위해 반드시 필요한 리소스에만 접근이 허용되어야 한다. 오래된 시스템이나 단독 사용자 시스템은 인증 및 접근 제어 기능이 없거나 약한 경우가 많다.
"익명 사용자" 또는 "손님"은 인증을 필요로 하지 않으며, 제한된 자원만 허가된다. 분산 시스템에서는 키나 티켓과 같은 접근 토큰으로 신원 확인 없이 리소스 접근을 허용하기도 한다.
신뢰할 수 있는 사용자는 보통 시스템 리소스에 무제한 접근이 허용되므로 반드시 인증을 거쳐야 한다. "부분적으로 신뢰할 수 있는" 사용자나 손님은 제한된 리소스만 허가하여 시스템 리소스의 오용을 방지한다. 일부 운영체제는 모든 사용자에게 모든 리소스에 대한 무제한 접근을 허용하는 반면, 다른 운영체제는 시스템 운영자가 직접 허가해야만 리소스 접근을 허용하기도 한다.
3. 1. 접근 제어 목록 (ACL)
접근 제어 목록(ACL, Access Control List영어[1])은 각 자원에 대해 어떤 사용자 또는 그룹이 어떤 권한(읽기, 쓰기, 실행 등)을 가지는지 명시하는 목록이다. 파일 시스템, 네트워크 장비 등 다양한 시스템에서 사용된다.접근 제어 정책은 보통 접근 제어 목록 형식으로 저장되며, 최소 권한의 원칙에 따라 만들어져야 한다. 즉, 사용자는 작업을 위해 반드시 필요한 리소스에만 접근이 허용되어야 한다.
인가와 접근 제어 목록을 조합하여 접근을 제어하더라도, 인가 데이터 보존은 용이하지 않으며 관리 부담이 크다. 사용자 인가를 변경하거나 취소해야 할 때 시스템 상의 해당 접근 규칙을 변경하거나 삭제해야 한다.
3. 2. 역할 기반 접근 제어 (RBAC)
역할 기반 접근 제어(RBAC)는 사용자에게 역할(예: 관리자, 일반 사용자, 게스트)을 부여하고, 그 역할에 따라 접근 권한을 할당하는 방식이다. 역할 기반 접근 제어[1] 대부분의 현대적인 다중 사용자 운영 체제가 이를 지원한다.[1] 사용자는 자신이 맡은 역할에 따라 시스템 자원에 접근할 수 있다.[1]이 방식은 사용자 관리가 편리하고, 역할이 변경되면 권한을 쉽게 조정할 수 있다는 장점이 있다.[1] 예를 들어, 어떤 사용자를 '관리자' 역할에서 '일반 사용자' 역할로 변경하면, 해당 사용자의 접근 권한도 자동으로 '관리자' 권한에서 '일반 사용자' 권한으로 바뀐다.
최소 권한의 원칙에 따라, 사용자는 자신의 업무를 수행하는 데 필요한 권한만 부여받아야 한다.[1]
3. 3. 속성 기반 접근 제어 (ABAC)
속성 기반 접근 제어(ABAC)는 사용자, 자원, 환경 등 다양한 속성을 기반으로 접근 권한을 동적으로 결정하는 방식이다.[1] 세분화된 접근 제어가 가능하며, 복잡한 정책을 구현할 수 있다는 장점이 있다.[1]4. 인가 크레덴셜
인가 크레덴셜(Authorization Credential, authorization credential영어)은 접근 시 인가 검증에 사용되는, 인가를 표현한 이동 가능한(可搬) 데이터 객체이다.[7]
일상생활에서의 "허가증"과 매우 유사한 개념으로, 눈에 보이지 않는 "권리"를 "증서"라는 유형물에 기록함으로써, 증서의 검증을 통해 권리의 존재를 확인할 수 있다. 접근 제어에서는 눈에 보이지 않는 "인가"를 "인가 크레덴셜"이라는 데이터 객체에 대응시켜 인가 검증을 가능하게 한다. 따라서 보호 리소스에 접근 시, 인가 크레덴셜을 제시하고 이것이 정당하다고 검증(verify)되면 "적절한 인가가 있다"고 하여 접근 제어를 통과할 수 있다.[7]
OAuth의 액세스 토큰이 인가 크레덴셜의 한 예이다.[8]
5. 관련 개념
컴퓨터 시스템이나 네트워크에서 접근 제어는 접근 정책을 기반으로 한다. 접근 제어는 정책을 정의하는 단계와 정책에 따라 접근 요청을 허가하거나 거부하는 단계로 나뉘는데, 허가는 이 앞단계에 해당한다.
대부분의 현대 멀티유저 운영체제는 접근 제어를 지원하며, 인증 기능을 통해 사용자의 신원을 확인한다. 사용자가 리소스에 접근하려 하면, 접근 제어 프로그램은 접근 제어 정책을 참고해 허가 여부를 결정한다. 정책은 보통 해당 부서의 부서장이 정하지만, 시스템 관리자가 대리하는 경우가 많다. 이러한 정책은 접근 제어 목록과 같은 형식으로 저장되며, 최소 권한의 원칙에 따라 만들어진다. 오래된 시스템이나 단독 사용자 시스템은 인증 및 접근 제어 기능이 없거나 매우 약하다.
"익명 사용자"나 "손님"은 인증 없이도 사용 가능한 사용자를 의미하며, 보통 제한된 자원만 허가된다. 분산 시스템에서는 키나 티켓과 같은 접근 토큰으로 리소스 접근을 허용하기도 한다.
신뢰할 수 있는 사용자는 보통 시스템 리소스에 무제한 접근이 허용되므로 반드시 인증을 통해 신원을 확인해야 한다. "부분적으로 신뢰할 수 있는" 사용자나 손님은 제한된 리소스만 허가하여 시스템 리소스의 오용을 방지한다. 일부 운영체제는 모든 사용자에게 모든 리소스에 대한 무제한 접근을 허용하는 반면, 다른 운영체제는 시스템 운영자가 직접 허가해야만 리소스를 사용할 수 있다.
5. 1. 인증 (Authentication)
인증은 사용자의 신원을 확인하는 과정이다.[1] 인증된 사용자가 자원에 접근하려 할 때, 접근 제어 프로세스는 해당 사용자가 해당 자원을 사용할 권한이 있는지 확인한다.[1]"익명 사용자" 또는 "게스트"는 인증을 요구받지 않은 사용자이다.[1] 이들은 종종 제한된 권한을 가진다.[1] 분산 시스템에서는 고유한 신원을 요구하지 않고 접근 권한을 부여하는 것이 바람직한 경우가 많다.[1] 접근 토큰의 예로는 키, 인증서 및 티켓이 있으며, 이는 신원을 증명하지 않고 접근 권한을 부여한다.[1]
신뢰할 수 있는 사용자는 시스템 자원에 대한 무제한적인 접근 권한을 종종 부여받지만, 접근 제어 시스템이 접근 승인 결정을 내릴 수 있도록 확인되어야 한다.[1] "부분적으로 신뢰할 수 있는" 사용자 및 게스트는 부적절한 접근 및 사용으로부터 자원을 보호하기 위해 종종 제한된 권한을 갖는다.[1]
5. 2. IAM (Identity and Access Management)
IAM(Identity and Access Management, 신원 및 접근 관리)은 크게 두 단계로 구성된다. 첫 번째는 사용자 계정을 생성하고 해당 접근 권한 정책을 정의하는 구성 단계이다. 이 단계에서는 누가 어떤 자원에 접근할 수 있는지 결정한다.[1] 두 번째는 사용자 인증 후 접근 제어를 통해 사용자나 프로그램이 권한을 가진 자원에만 접근하도록 보장하는 사용 단계이다.[1]간단히 말해, 구성 단계에서는 '누가 무엇을 할 수 있는지'를 정하고, 사용 단계에서는 '정해진 규칙대로 접근이 이루어지는지' 확인하는 것이다. 따라서 컴퓨터 시스템 및 컴퓨터 네트워크의 접근 제어는 구성 단계에서 지정된 접근 권한에 의존한다.[1]
대부분의 현대적인 다중 사용자 운영 체제는 역할 기반 접근 제어(RBAC)를 포함하여 역할에 따라 권한을 정의한다.[1] 인증은 사용자의 신원을 확인하는 과정이며, 인증된 사용자가 자원에 접근하려 할 때, 접근 제어 프로세스는 해당 사용자가 해당 자원을 사용할 권한이 있는지 확인한다.[1]
권한 부여는 보통 부서 관리자와 같은 권한자가 결정하지만, 시스템 관리자에게 위임되는 경우가 많다.[1] 권한은 접근 제어 목록이나 capability 또는 XACML과 같은 정책 관리 지점의 형태로 표현된다.[1] 최소 권한의 원칙에 따라 사용자는 자신의 업무를 수행하는 데 필요한 자원에만 접근 권한을 부여받아야 한다.[1]
5. 3. 최소 권한 원칙 (Principle of Least Privilege)
최소 권한의 원칙에 따라, 사용자는 자신의 업무를 수행하는 데 필요한 최소한의 권한만을 부여받아야 한다. 이는 잠재적인 피해를 최소화하고 보안 위협을 줄이는 데 기여한다.[1] 사용자는 작업을 하기 위해 반드시 필요한 리소스에만 접근이 허용되어야 한다.6. 관련 분야
- 공공 정책에서 허가는 보안 또는 사회 통제를 위해 사용되는 신뢰할 수 있는 시스템의 기능이다.
- 은행업에서 승인은 직불 카드 또는 신용 카드를 사용하여 구매가 이루어질 때 고객 계정에 걸리는 보류이다.
- 출판에서 때때로 공개 강연 및 기타 자유롭게 이용 가능한 텍스트가 저작자의 승인 없이 출판되기도 한다. 이러한 자료들을 무단 텍스트라고 한다. 한 예로, 2002년 스티븐 호킹의 강연에서 발췌하여 저작권법에 따라 그의 허가 없이 출판된 ''모든 것의 이론: 우주의 기원과 운명''이 있다.
6. 1. 공공 정책
공공 정책에서 허가는 보안 또는 사회 통제를 위해 사용되는 신뢰할 수 있는 시스템의 기능이다.6. 2. 은행
은행업에서, 승인은 직불 카드 또는 신용 카드를 사용하여 구매가 이루어질 때 고객 계정에 걸리는 보류이다.6. 3. 출판
출판에서, 때때로 공개 강연 및 기타 자유롭게 이용 가능한 텍스트가 저작자의 승인 없이 출판되기도 한다. 이러한 자료들을 무단 텍스트라고 한다. 한 예로, 2002년 스티븐 호킹의 강연에서 발췌하여 저작권법에 따라 그의 허가 없이 출판된 ''모든 것의 이론: 우주의 기원과 운명''이 있다.7. 혼동
인가라는 용어는 정책 시행 단계의 기능을 의미하는 것으로 잘못 사용되는 경우가 많다. 이러한 혼동은 시스코 시스템즈의 AAA 서버 도입에서 비롯되었다. 예를 들어, [9]나 시스코 AAA[10]에서 혼동되어 사용된다. 보안 서비스의 기본적인 기밀성, 무결성, 가용성은 인가를 사용하여 정의된다[11]. 국제 표준화 기구 (ISO)의 정의에 따르면 "기밀성"은 "해당 정보에 접근하도록 인가된 자만이 접근할 수 있도록 보장하는 것"이며, 여기서의 "인가"는 정책 정의 단계의 기능이다. 이 기밀성의 정의를 "해당 정보에 접근을 요청받았을 때, 허가된 자만이 접근할 수 있도록 보장하는 것"으로 해석하는 것은 불합리하며, 예를 들어 허가받지 않은 자가 비밀번호를 훔쳐 접근했을 경우, "인가된" 것이 되어버린다. 로그인 화면에서 "인가된 사용자만 이 시스템에 접근할 수 있습니다"와 같은 경고를 표시하는 경우가 많다.[12] 인가라는 용어를 잘못된 의미로 사용하면, 이 경고에 대해 훔친 비밀번호를 가진 공격자가 "인가되었기 때문에 로그인할 수 있었다"라고 주장하는 것을 허용하게 되어, 경고를 무효화하게 된다.
인가라는 단어를 두 가지 의미(정책 정의 단계와 정책 시행 단계)로 동일한 문서 내에서 사용하는 예도 많다.[13]
참조
[1]
논문
RFC 2196 – Site Security Handbook
IETF
[2]
논문
A Consistent Definition of Authorization
Proceedings of the 13th International Workshop on Security and Trust Management (STM 2017)
[3]
문서
RFC4949 より引用
[4]
문서
RFC4949 より引用
[5]
문서
RFC4949 より引用
[6]
문서
RFC4949 より引用
[7]
문서
RFC4949 より引用
[8]
문서
RFC6749 より引用
[9]
논문
AAA Authorization Framework
http://www.ietf.org/[...]
IETF
[10]
서적
Cisco Access Control Security: AAA Administration Services
Cisco Press
[11]
간행물
ISO 7498-2 Information Processing Systems - Open Systems Interconnection - Basic Reference Model - Part 2: Security Architecture
ISO/IEC
[12]
웹사이트
Access Warning Statements
http://technology.be[...]
[13]
서적
Understanding SOA Security Design and Implementation
http://www.redbooks.[...]
IBM Redbook
[14]
논문
Authorization-Based Access Control for the Services Oriented Architecture
http://www.hpl.hp.co[...]
Proceedings of the Fourth International Conference on Creating, Connecting, and Collaborating through Computing (C5)
[15]
논문
A Method for Access Authorisation Through Delegation Networks
http://persons.unik.[...]
Proceedings of the Australasian Information Security Workshop (AISW'06)
[16]
논문
RFC 2196 – Site Security Handbook
IETF
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com