- 적절한 권한을 가진 사람만 특정 시스템이나 정보에 접근할 수 있도록 통제하는 것
- 컴퓨팅, 통신, 정보자원 등에 대하여 허가되지 않은 접근을 방어할 수 있다.
- 시스템의 보안 수준을 갖추는 기본 수단
- 사용자가 자원에 대해 얼마만큼의 권한을 가질지 지정해야 한다.
- 사용자 엑세스 제어와 데이터 엑세스 제어로 나뉜다.
-
사용자가 시스템에 접근하거나 정보를 요청할 때 그 사용자가 누구인지 확인하고 그 사용자가 해당 정보에 접근할 권한이 있는지 확인하는 과정
-
식별할 수 없는 사용자가 침투하는 것을 방지함
-
주로 토큰을 사용해 사용자 권한 구별
- 웹 서버로 치면 JWT로 유저 식별하고 인가하는 동작이 여기에 속함
-
Window의 예시
- 사용자가 로그인하면 시스템이 해당 사용자에 대한 액세스 토큰을 생성한다
- 액세스 토큰에 있는 정보: 보안 식별자, 권한 등 사용자에게 부여된 액세스 수준
- 관리자가 로그인하면 기본 액세스 토큰과 관리자 액세스 토큰을 생성한다.
- 관리자 권한이 필요 없는 경우엔 기본 토큰을 쓰고, 그렇지 않은 경우 관리자 토큰을 쓰는 식으로 작동
- 사용자가 로그인하면 시스템이 해당 사용자에 대한 액세스 토큰을 생성한다
- 사용자 접근 제어와 다르게, 데이터 입장에서 설정하는 엑세스 제어
- 효율성이나 접근성을 훼손하지 않아야 함
- 데이터 엑세스 제어 모델에서는 엑세스 행렬로 권한을 저장한다.
- 엑세스 행렬을 표현하는 데는 접근 제어 리스트(ACL), 권한 리스트, 락/키 방법 등 다양한 방법이 있음
-
객체에 대한 사용자의 접근 권한을 나열
-
어떤 사용자가 어떤 객체에 어떤 작업을 수행할 수 있는지를 정의한다.
-
파일 개체에 ACL을 [앨리스:읽기,쓰기; 밥:읽기] 이런 식으로 설정한 경우
- 앨리스는 파일을 읽고 쓸 수 있고 밥은 파일을 읽을 수 있다.
-
사용자가 아닌 그룹 단위로 설정할 수도 있다.
- 접근 제어 리스트의 각 행을 해당 영역과 결합한 것
- 각 객체에 권한과 액세스 가능 여부를 나타내는 태그가 부여된다.
- 파일의 주소 공간을 권한 리스트 저장 공간과 파일 데이터 저장 공간으로 나눠 저장한다.
- 권한 리스트 공간은 운영체제만 접근 가능
- 탐색 시간이 불필요하다.
-
각 객체는 락(lock)이라 불리는 유일하고 독특한 비트 패턴의 리스트를 가진다.
-
각 영역은 키(key)라고 불리는 비트 패턴의 리스트를 가진다.
-
사용자는 객체의 “락”과 일치하는 키를 가지고 있을 때만 해당 객체에 액세스할 수 있음
-
액세스제어 리스트와 권한 리스트보다 효율적임
-
많은 시스템에서 사용하는 방법
참고