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 및 응용 분야에 따라 다를 수 있음
- Password 기법
- 각 file들에 password 부여
- 비현실적
- 사용자들이 파일 각각에 대한 PW를 기억해야 함
- 접근 권한 별로 서로 다른 PW를 부여해야 함
- 불가능은 아니지만 많이 불편함
- Access Matrix 기법
Access Matrix
- 범위(domain : 사용자)와 개체(object : 파일) 사이의 접근 권한을 명시
- 접근 권한을 표에 적어놓겠다.
- Terminologies
- Object
- 접근 대상 (file, device 등 HW / SW objects)
- Domain (protection domain)
- 접근 권한의 집합
- 같은 권한을 가지는 그룹 (사용자, 프로세스)
- Access right
- <object-name, rights-set>
- 어떤 object에 대해 domain이 가지는 권한
- Object
- 각 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 생성 후 해당 프로세스에게 전달
- 마지막 접근 후 -> Capability 삭제
- Object에 대한 첫 접근 -> access list 탐색
728x90
반응형
'Study > 운영체제' 카테고리의 다른 글
운영체제 12. 입출력 시스템 & 디스크 관리 (1) - I/O System (1) | 2023.12.10 |
---|---|
운영체제 11. 파일 시스템 (5) - File System Implementation (1) | 2023.12.09 |
운영체제 11. 파일 시스템 (3) - Directory Structure (0) | 2023.12.08 |
운영체제 11. 파일 시스템 (2) - File System Overview (0) | 2023.12.08 |
운영체제 11. 파일 시스템 (1) - Disk system (0) | 2023.12.08 |