핵심 인사이트 (3줄 요약)
- 본질: 접근 제어 행렬은 **행(Row)에 주체(프로세스/도메인)**을, **열(Column)에 객체(파일/프린터)**를 배치하고, 각 교차점에 **권한 집합(읽기/쓰기/실행)**을 표기하여 접근 권한을 수학적으로 표현하는 모델이다.
- 가치: 이 2차원 행렬 구조 덕분에, OS는 특정 프로세스가 특정 객체에 접근하려 할 때
(프로세스, 객체)좌표만 확인하면 되므로 $O(1)$ 시간에 접근 권한을 검증할 수 있다.- 한계: 실제 시스템에서 행렬의 99%이상이 비어있어(희소 행렬), 메모리 낭비가 심하다. 따라서 실제로는 ACL(행 기준 분할) 또는 **Capability(열 기준 분할)**로 구현한다.
Ⅰ. 개요 및 필요성
1.1 접근 제어 행렬의 정의
접근 제어 행렬(Access Matrix)은 다음과 같이 정의된다:
Matrix[i][j] = 도메인 i가 객체 j에 대해 보유한 권한 집합
1.2 놀이공원에서의 비유
놀이공원에서:
- 행(Row): 방문객 유형 (성인/어린이/직원)
- 열(Column): 놀이기구 (바이킹/회전목마/ 롤러코스터)
- 교차점: 해당 방문객이 해당 놀이기구를 탈 수 있는지 여부
1.3 수학적 표현
파일1 파일2 프린터
도메인A {Read} {} {}
도메인B {Read} {Write} {Print}
도메인C {} {} {Print}
- 📢 섹션 요약 비유: 복잡한 창고에서 필요한 물건을 찾기 위해 먼저 구역과 표지판을 세우는 것과 같다.
Ⅱ. 아키텍처 및 핵심 원리
2.1 희소 행렬(Sparse Matrix) 문제
실제 시스템에서는:
- 도메인(사용자) 수: 수만~수십만
- 객체(파일) 수: 수백만~수천만
- 행렬 칸 수: 수조~수천조
- 실제 권한이 있는 칸: 약 0.01%
따라서 통짜 행렬을 메모리에 저장하는 것은 비현실적이다.
2.2 권한의 전파: Copy와 Owner
| 권한 유형 | 설명 |
|---|---|
| Copy | 권한을 다른 주체에게 복사하여 부여 (* 표시) |
| Owner | 권한을 부여하거나 회수할 수 있는 관리 권한 |
권한 회수(Revocation)가 필요한 경우, 시스템은 행렬을 스캔하여 해당 권한을 찾아 제거해야 하므로 $O(N)$ 시간이 소요된다.
3.1 Global Table의 개념
희소 행렬 문제를 해결하기 위해, 권한이 존재하는 튜플만을 저장한다:
<도메인A, 파일1, {Read}>
<도메인B, 파일2, {Read, Write}>
<도메인B, 프린터, {Print}>
3.2 Global Table의 한계
-
선형 탐색: 권한 확인 시 리스트 전체를 탐색해야 하므로 $O(N)$ 시간
-
락 경합: 중앙 테이블에 동시 접근 시 동기화 문제 발생
-
📢 섹션 요약 비유: 공장 컨베이어벨트가 어떤 순서로 부품을 받아 가공하고 내보내는지 설계도를 펼쳐 보는 것과 같다.
Ⅲ. 비교 및 연결
접근 제어 행렬 (Access Matrix)은(는) 보호 도메인 (Protection Domain), 전역 테이블 (Global Table) 방식 구현 (행렬 희소성 문제)과 비교할 때 경계가 선명해진다. 같은 범주에 속하더라도 목표가 성능인지, 격리인지, 단순성인지에 따라 선택 기준이 달라진다. 따라서 이 개념은 독립적으로 외우기보다 앞뒤 개념과 함께 묶어 이해해야 시험과 실무에서 흔들리지 않는다.
| 비교 축 | 보호 도메인 (Protection Domain) | 접근 제어 행렬 (Access Matrix) | 전역 테이블 (Global Table) 방식 구현 (행렬 희소성 문제) |
|---|---|---|---|
| 초점 | 기반 조건 | 현재 판단 기준 | 확장/세분화 방향 |
| 운영 관점 | 준비 단계 | 핵심 제어 단계 | 후속 최적화 단계 |
- 📢 섹션 요약 비유: 비슷해 보이는 공구를 나란히 놓고 언제 망치를 쓰고 언제 드라이버를 써야 하는지 구분하는 것과 같다.
Ⅳ. 실무 적용 및 기술사 판단
-
이론적 완전성: 접근 제어 행렬은 보안 정책의 수학적 모델로서 완전한 표현력을 제공한다.
-
실제 한계: 희소 행렬 문제로 인해 실제 시스템에서는 ACL 또는 Capability 방식으로 분할 구현된다.
-
현대적 변형: 데이터베이스 인덱싱과 유사하게, 해시 맵 등을 활용하여 탐색 성능을 개선한다.
-
📢 섹션 요약 비유: 운전자가 도로 상황에 따라 기어와 브레이크를 다르게 선택하는 것처럼 조건별 판단이 중요하다.
Ⅴ. 기대효과 및 결론
접근 제어 행렬 (Access Matrix)은 운영체제 보호와 보안 메커니즘을 이해하는 연결 고리 역할을 한다. 이 개념을 익히면 시스템 동작을 더 예측 가능하게 설명할 수 있지만, 만능 해법은 아니므로 적용 전제와 한계를 함께 기억해야 한다. 앞으로는 전역 테이블 (Global Table) 방식 구현 (행렬 희소성 문제)처럼 더 세분화된 기술과 결합되며 자동화·최적화 방향으로 발전한다.
- 📢 섹션 요약 비유: 도구의 장점만 외우는 것이 아니라 어디까지 믿고 어디서 보완해야 하는지 기억하는 정리 노트와 같다.
📌 관련 개념 맵
| 개념 | 연결 포인트 |
|---|---|
| 보호 (Protection) vs 보안 (Security)의 개념 차이 | 현재 개념으로 들어오기 전에 함께 이해하면 경계가 선명해지는 기반 개념이다. |
| 보호 도메인 (Protection Domain) | 현재 개념이 등장하게 만든 직접적인 선행 흐름이다. |
| 전역 테이블 (Global Table) 방식 구현 (행렬 희소성 문제) | 현재 개념이 구현·세분화될 때 바로 연결되는 후속 개념이다. |
| 접근 제어 목록 (ACL, Access Control List) | 확장 학습이나 심화 비교로 이어지는 다음 단계의 키워드다. |
📈 관련 키워드 및 발전 흐름도
[보호 도메인 (Protection Domain)]
│
▼
[접근 제어 행렬 (Access Matrix)]
│
├──▶ [전역 테이블 (Global Table) 방식 구현 (행렬 희소성 문제)]
└──▶ [접근 제어 목록 (ACL, Access Control List)]
이 흐름도는 선행 개념에서 현재 개념으로 넘어온 뒤, 구현 세분화와 후속 확장으로 이어지는 학습 순서를 압축해 보여준다.
👶 어린이를 위한 3줄 비유 설명
-
접근 제어 행렬은 학교의 "학생-교실-출입 가능 여부" 표와 같다. 각 학생이 어떤 교실에 출입할 수 있는지 한눈에 볼 수 있다.
-
희소 행렬 문제는 100명의 학생과 1000개의 교실이 있으면 표가 10만칸이 되는데, 실제 출입 가능한 칸은 수십 개뿐이라 칸의 대부분이 비어있어 공간이 낭비되는 것과 같다.
-
구현 분할은 비어있는 칸을 생략하고, **"출입 가능한 경우만"**을名簿(명부)에 적어두는 것과 같다. 이렇게 하면 공간을 절약할 수 있지만, 특정 학생의 출입 가능 교실을 찾으려면名簿를 모두 확인해야 하는 문제가 있다.