. [PintOS, Project 4] File Protection
본문 바로가기
Pintos Project/이론 공부

[PintOS, Project 4] File Protection

by 불냥이_ 2021. 3. 2.

 

File Protection

File에 대한 부적절한 접근 방지

  - 다중 사용자 시스템에서 더욱 필요

 

 

접근 제어가 필요한 연산들

  - Read (R)

  - Write (W)

  - Execute (X)

  - Append (A)

 

 

File Protection Mechanism

파일 보호 기법은 system size 및 응용 분야에 따라 다를 수 있음

 

1. Password 기법

   ㆍ각 file들에 PW 부여

   ㆍ비현실적

       → 사용자들이 파일 각각에 대한 PW를 기억해야 함

       → 접근 권한 별로 서로 다른 PW를 부여해야 함

 

 2. Access Matrix 기법

   ㆍ범위(domain)와 개체(object)사이의 접근 권한을 명시

      (domain : 사용자, 개체 : 파일 이라고 생각할 수 있다.)

   ㆍObject : 접근 대상 (file, device 등 HW/SW objects)

   ㆍDomain (protection domain)

       → 접근 권한의 집합

       → 같은 권한을 가지는 그룹 (사용자, 프로세스)

   ㆍAccess right

       → <object-name, rights-set>

그림 1. Access Matrix의 예

 

Implementation of Access Matrix

Global Table

  ㆍ시스템 전체 file들에 대한 권한을 table로 유지

  ㆍ<domain-name, object-name, right-set>

  ㆍ단점 : Large table size

그림 2. Globa Table

 

 

그림 3. Page Talbe의 간소화

 Access List

  - Access matrix의 열(column)을 list로 표현 : 각 object에 대한 접근 권한을 나열

  - Object 생성 시, 각 domain에 대한 권한 부여

  - Object 접근 시, 권한을 검사

  - 실제 OS에서 많이 사용 됨

  - 단점 :  파일에 접근할 때 마다, 접근 권한을 검사함

그림 4. Linux에서 사용되는 Access list

 

 

Capability List

  - Access matrix의 행(row)을 list로 표현 : 각 domain에 대한 저근 권한 나열

  - Capabilirt를 가지는 것이, 권한을 가진다는 것을 의미

     ㆍ프로세스가 권한을 제시, 시스템이 검증 승인

  - 시스템이 capability list 자체를 보호해야한다.

     ㆍKernel안에 저장

 

 

 

Lock-key Mechanism

  - Access list와 Capability list를 혼합한 개념

  - object는 lock을, domain은 key를 가짐 : Lock / Key : unique bit patterns

  - Domain 내 프로세스가 object의 lock 짝이 맞아야 함

  - 시스템은 key list를 관리해야 함

 

 

 

Comparison of Implementations

  - Global table

     ㆍSimple, but can be large

 

  - Access list

     ㆍObject 별 권한 관리가 용이함

     ㆍ모든 접근마다 권한을 검사해야 함 : Object에 많이 접근하는 경우 느려진다.

 

  - Capability list

     ㆍList 내, object 들 (localized Info)에 대한 접근에 유리

     ㆍObject 별 권한 관리 (권한 취소 등)가 어려움

 

많은 OS가 Access list와 Capability list 개념을 함께 사용

  ㆍObject 에 대한 첫 접근 → access list 탐색

     → 접근 허용 시, Capability 생성 후, 해당 프로세스에게 전달

     → 이후 접근 시에는 권한 검사 불필요

  ㆍ마지막 접근 후, Capability 삭제

댓글