-
11-4. File Protection MechanismOS/os 공부 2022. 1. 26. 20:54
File Protection
파일 보호는 왜 해야 할까??
다중 사용자 시스템에서 특정파일에 대해 나 이외에 다른 사용자를 차단하거나 파일에 대한 부적절한 접근을 방지하기 위해 필요하다.
접근 제어를 위해 필요한 연산으로는 Read, Write, Execute, Append가 있다.
파일 보호 기법은 System의 사이즈 나 응용분야에 따를 수있으나 간단하게 생각했을때 아래 두가지로 생각해볼 수 있다.
1. Password 기법
2. Access Matrix 기법
1번 Password기법은 각 파일에 PW를 부여하는 방식으로 간단하지만 파일이 무수하게 많을경우 사용자가 모든 파일에 대한 pw를 기억해야 하고 접근권한 별로 서로 다른 pw를 부여해야 하기 때문에 비현실 적인 방법이다.
따라서 우리는 2.번 Access Matrix에 집중해 보도록 한다.
Access Matrix
Access Matrix 는 Domain과 Object 사이의 접근 권한을 표로 명시해 둔 것을 말한다.
여기서 도메인은 접근 권한을 가지는 그룹 으로 사용자 또는 프로세스라 생각하면 된다
오브젝트는 접근대상들로서 파일 , 디바이스 등으로 생각하면 된다.
위의 예시 이미지에서 보듯 도메인별로 오브젝트에 대한 접근 권한을 기록해 두는 방법으로 Access Matrix를 만들 수 있다.
Access Matrix의 구현
Access Matrix의 구현방법으로는
1. Global table
2. Access list
3. Capability list
4. Lock-key mechnism
이 있다.
1. Global Table
글로벌 테이블 기법은 시스템 전체 파일들에 대하 권한을 테이블로 유지하는 방법이다
간단하지만 모든 파일에 대한 권한을 table로 유지하기 때문에 불필요한 공간도 저장이 되어 테이블의 사이즈가 커진다는 단점이 있다.
이를 해결하기위해 Access list와 Capability list가 나온다.
2. Access List
우선 접근 리스트에대해 살펴보자 접근 리스트는 Access matrix의 열(column을 list로 표현한 것으로 각 오브젝트에 대한 접근 권한을 나열한것이다.
object 생성 시 각 domain에 대한 권한을 부여하여 접근 리스트에 기록하고 오브젝트 접근시 권한을 검사하여 허용하는 형식이다.
실제로 OS에서 많이 사용된다.
하지만 사용자가 다른 오브젝트에 접근하려면 또 엑세스 리스트를 확인하는 절차를 거쳐야 하는 overhead가 존재한다.
이러한 문제를 해결하기 위해 Capability list를 보도록 하자.
3. Capability List
Access matrix의 행(row)을 list로 표현한 것으로 각 domain에 대한 접근 권한 나열한 것이다.
이게 무슨말이냐하면 도메인이 오브젝트에 접근시 시스템이 권한에 대한 검증을 승인하여 바로 통과되는 형식이다.
따라서 접근 리스트에서 문제되었던 매번 접근시 리스트들을 봐야하는 부담을 줄일 수 있다.
하지만 이러한 Capability list는 이 자체를 보호하기 위해 kernel 안에 저장해야 하는 부담이 있다.
4. Lock-key Mechanism
항상 무언가 아쉬우면 두가지의 장점을 적절히 합치면된다. Lock-key Mechanism 은 Access list와 Capability list을 적절히 융합한 방법으로
오브젝트는 LOCK을 Domain은 오브젝트 접근시 이에대한 key를 가진다. lock 과 key는 unique한 bit patterns로 구성되어있어 Domain안의 프로세스가 object에 접근할때 자신의 key와 object의 짝이 맞으면 접근이 허용되는 방식이다.
하지만 이마저도 시스템이 key list를 관리해야 한다는 단점이 있다.
비교
Global Table Access list Capability list 간단하지만 테이블의 사이즈가 크다 Object별 권한 관리가 용이하나 매 접근마다 권한을 검사해야 하므로 Object를 많이 접근할 경우 속도가 저하된다. List내의 Objet들에 대한 접근이 유리하지만 Objet별 권한을 관리(권한취소)등의 어려움이 있다. 많은 OS가 Access list와 Capability list의 개념을 함께 사용한다.
Object에 대한 최초 접근시 access list를 탐색하여 접근 가능한 경우 Capability를 생성 이후 접근시 재검사를 하지 않고 마지막 접근이후 Capability를 삭제한다.
'OS > os 공부' 카테고리의 다른 글
12-1. 입출력 시스템 관리 (0) 2022.01.27 11-5. File System Implementation(디스크 할당,빈공간 관리) (0) 2022.01.27 11-3. Directory Structure (0) 2022.01.26 11-2. File System overview (0) 2022.01.25 11-1. File system_Disk systme(디스크는 어떻게 이루어져있나?) (0) 2022.01.25