Skip to content

엑세스 제어

  • 적절한 권한을 가진 사람만 특정 시스템이나 정보에 접근할 수 있도록 통제하는 것
  • 컴퓨팅, 통신, 정보자원 등에 대하여 허가되지 않은 접근을 방어할 수 있다.
  • 시스템의 보안 수준을 갖추는 기본 수단
  • 사용자가 자원에 대해 얼마만큼의 권한을 가질지 지정해야 한다.
  • 사용자 엑세스 제어와 데이터 엑세스 제어로 나뉜다.

사용자 접근 제어

  • 사용자가 시스템에 접근하거나 정보를 요청할 때 그 사용자가 누구인지 확인하고 그 사용자가 해당 정보에 접근할 권한이 있는지 확인하는 과정

  • 식별할 수 없는 사용자가 침투하는 것을 방지함

  • 주로 토큰을 사용해 사용자 권한 구별

    • 웹 서버로 치면 JWT로 유저 식별하고 인가하는 동작이 여기에 속함
  • Window의 예시

    image
    • 사용자가 로그인하면 시스템이 해당 사용자에 대한 액세스 토큰을 생성한다
      • 액세스 토큰에 있는 정보: 보안 식별자, 권한 등 사용자에게 부여된 액세스 수준
    • 관리자가 로그인하면 기본 액세스 토큰과 관리자 액세스 토큰을 생성한다.
      • 관리자 권한이 필요 없는 경우엔 기본 토큰을 쓰고, 그렇지 않은 경우 관리자 토큰을 쓰는 식으로 작동

    https://learn.microsoft.com/en-us/windows/security/application-security/application-control/user-account-control/how-it-works

데이터 엑세스 제어

  • 사용자 접근 제어와 다르게, 데이터 입장에서 설정하는 엑세스 제어
  • 효율성이나 접근성을 훼손하지 않아야 함
  • 데이터 엑세스 제어 모델에서는 엑세스 행렬로 권한을 저장한다.
image
  • 엑세스 행렬을 표현하는 데는 접근 제어 리스트(ACL), 권한 리스트, 락/키 방법 등 다양한 방법이 있음

1. 접근 제어 리스트(ACL)

  • 객체에 대한 사용자의 접근 권한을 나열

  • 어떤 사용자가 어떤 객체에 어떤 작업을 수행할 수 있는지를 정의한다.

  • 파일 개체에 ACL을 [앨리스:읽기,쓰기; 밥:읽기] 이런 식으로 설정한 경우

    • 앨리스는 파일을 읽고 쓸 수 있고 밥은 파일을 읽을 수 있다.
  • 사용자가 아닌 그룹 단위로 설정할 수도 있다.

    image

2. 권한 리스트

  • 접근 제어 리스트의 각 행을 해당 영역과 결합한 것
  • 각 객체에 권한과 액세스 가능 여부를 나타내는 태그가 부여된다.
    • 파일의 주소 공간을 권한 리스트 저장 공간과 파일 데이터 저장 공간으로 나눠 저장한다.
    • 권한 리스트 공간은 운영체제만 접근 가능
image
  • 탐색 시간이 불필요하다.

3. 락/키 방법

  • 각 객체는 락(lock)이라 불리는 유일하고 독특한 비트 패턴의 리스트를 가진다.

  • 각 영역은 키(key)라고 불리는 비트 패턴의 리스트를 가진다.

  • 사용자는 객체의 “락”과 일치하는 키를 가지고 있을 때만 해당 객체에 액세스할 수 있음

    • 키와 락에는 운영체제만 접근 가능

      image
  • 액세스제어 리스트와 권한 리스트보다 효율적임

  • 많은 시스템에서 사용하는 방법


참고