운영체제 11. 파일 시스템 (4) - File Protection

728x90
반응형

출처 : https://www.youtube.com/watch?v=zrzbETkxljM&list=PLBrGAFAIyf5rby7QylRc6JxU5lzQ9c4tN&index=41

 

 

File Protection

 

  • File에 대한 부적절한 접근 방지
    • 다중 사용자 시스템에서 더욱 필요
  • 접근 제어가 필요한 연산들
    • Read (R)
    • Write (W)
    • Execute (X)
    • Append (A)

 

 

File Protection Mechanism

 

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

 

  1. Password 기법
    • 각 file들에 password 부여
    • 비현실적
      • 사용자들이 파일 각각에 대한 PW를 기억해야 함
      • 접근 권한 별로 서로 다른 PW를 부여해야 함
      • 불가능은 아니지만 많이 불편함
  2. Access Matrix 기법

 

 

Access Matrix

 

  • 범위(domain : 사용자)와 개체(object : 파일) 사이의 접근 권한을 명시
  • 접근 권한을 표에 적어놓겠다.
  • Terminologies
    • Object
      • 접근 대상 (file, device 등 HW / SW objects)
    • Domain (protection domain)
      • 접근 권한의 집합
      • 같은 권한을 가지는 그룹 (사용자, 프로세스)
    • Access right
      • <object-name, rights-set>
      • 어떤 object에 대해 domain이 가지는 권한

 

 

  • 각 domain이 각 object에 대해 접근해서 할 수 있는 권한을 2차원 행렬로 나타낸 것이다.

 

 

  • Access Matrix의 구현
    • Global table
    • Access list
    • Capability list
    • Lock-key mechanism

 

 

Global Table

 

  • 시스템 전체 file들에 대한 권한을 Table로 유지. 즉, 표 전체를 유지함
    • <domain-name, object-name, right-set>
  • 단점
    • 빈 공간도 저장을 해야함
    • Large table size -> 용량을 많이차지함, overhead를 가짐

 

 

빈 공간을 될 수 있으면 저장을 하지 않는 방법은 2가지가 있다.

 

  • Access list
    • 각 파일마다 domain을 저장
  • Capability list
    • 각 domain마다 파일의 권한을 저장

 

 

Access List

 

  • Access matrix의 열(column)을 list로 표현
    • 각 object에 대한 접근 권한을 나열
    • Alist(Fk) = {<D1, R1>, <D2, R2>, ..., <Dm, Rm>}  (<D1, R1> : Domain 1번이 가진 권한)
    • 특정 domain이 해당 파일에 대한 어떤 권한도 없다면 작성하지 않음 -> table의 크기를 줄임
  • Object 생성 시, 각 domain에 대한 권한 부여
  • Object 접근 시 권한을 검사
  • 실제 OS에서 많이 사용됨
  • 해당 파일에 접근할 때마다 권한을 검사해야함 -> overhead 발생

 

 

Capability List

 

  • Access matrix의 행(row)을 list로 표현
    • 각 domain에 대한 접근 권한 나열
    • Clist(D1) = {<F1, R1>, <F2, R2>, ..., <Fp, Rp>} : Domain 1번은 File 1번에 R1 권한을 가지고 File 2번에 R2 권한을 가지고 ~~
    • 특정 file에 대해 아무 권한도 없다면 적지 않음 -> 용량을 줄임
  • Capability를 가짐이 권한을 가짐을 의미
    • 프로세스가 권한을 제시, 시스템이 검증 승인
  • 시스템(OS)이 capability list 자체를 보호해야 함
    • Kernel 안에 저장

 

 

Lock-key Mechanism

 

  • Access list와 Capability list를 혼합한 개념
  • Object는 Lock을, Domain은 Key를 가짐
    • Lock / key : unique bit patterns
  • Domain 내 프로세스가 object에 접근 시,
    • 자시의 key와 object의 lock 짝이 맞아야 함
  • 시스템은 key list를 관리해야 함

 

 

Comparison of Implementations

 

  • Global table
    • 간단함
    • 모든 정보를 저장하기 때문에 table이 커서 용량을 많이 차지
  • Access list
    • Object 별 권한 관리가 용이함
    • 모든 접근 마다 권한을 검사해야 함
      • Object 많이 접근하는 경우 -> overhead 발생 -> 느림
  • Capability list
    • List 내 object들 (localized Info.)에 대한 접근에 유리
    • Object 별 권한 관리(권한 취소 등)가 어려움
      • ex) F1에 대한 모든 domain들의 접근 권한을 취소하고 싶을 때, 모든 domain들을 다 찾아가면서 수정해야 함

 

 

  • 많은 OS가 Access list와 Capability list 개념을 함께 사용
    • Object에 대한 첫 접근 -> access list 탐색
      • 접근 허용 시, Capability 생성 후 해당 프로세스에게 전달
        • 이후 접근 시에는 권한 검사 불필요
    • 마지막 접근 후 -> Capability 삭제

 

 

 

728x90
반응형