2026. 4. 13. 12:54ㆍ운영체제(OS)
보호와 보안 — 자원보호, 접근 제어, 암호화까지
OS에서 보호(Protection)와 보안(Security)이 어떻게 구분되는지, 자원을 어떻게 지키는지, 그리고 실제 보안 기법까지 정리한다.
1. 보호(Protection) — 자원보호와 정보보호
많은 프로세스가 동시에 실행되는 환경에서 각 프로세스는 자신에게 허락된 자원만 써야 한다. 이걸 강제하는 것이 보호(Protection)다. 파일, 기억장치, CPU, 디스크, 프린터 같은 하드웨어 객체와 프로그램·세마포1 같은 소프트웨어 객체가 모두 보호 대상이다.
정보 시스템에서 보호 대상이 되는 속성은 세 가지로 정리된다.
기밀성은 허가받지 않은 대상에게 정보가 노출되지 않아야 한다는 것이다. 무결성은 정보가 허가 없이 수정되지 않도록 정확성을 보장하는 것이다. 가용성은 허락된 경우에만 접근 가능해야 한다는 것으로, 이를 공격하는 대표적인 수단이 DoS(Denial of Service)2다.
자원 보호에서 주체(Subject)는 자원에 접근하는 사용자나 프로세스이고, 접근 권한은 읽기·쓰기·실행처럼 어떤 방식으로 접근할 수 있는지를 정의한다. 권한부여(Authorization)는 어떤 사용자가 어떤 객체에 어떤 목적으로 접근할 수 있는지 인정하는 것이고, 접근제어정책(Access Control Policy)은 시스템 전반의 권한부여 방침이다.
2. 자원 보호 기법 — 접근 제어의 네 가지 방식
접근 제어 행렬(Access Control Matrix)
가장 일반적인 기법이다. 행(Row)은 영역(Domain), 즉 사용자나 프로세스를 나타내고, 열(Column)은 객체(CPU·파일·디스크 등)를 나타낸다. 각 셀에 해당 영역이 해당 객체에 대해 가진 권한을 적어둔다.
| 영역 \ 객체 | 파일1 | 파일2 | 디스크 | 프린터 |
|---|---|---|---|---|
| D1 | 읽기 | 읽기 | - | - |
| D2 | 실행 | - | 읽기 | 인쇄 |
| D3 | - | 쓰기 | - | - |
| D4 | 읽기 | 읽기/쓰기 | - | - |
이 구조는 직관적이지만 객체와 영역이 많아지면 행렬 자체가 거대해지는 문제가 있다. 이를 해결하기 위해 행렬을 어떤 축을 기준으로 잘라내냐에 따라 ACL과 CL이 나뉜다.
전역 테이블(Global Table)
가장 단순한 구조다. 권한 부여를 〈영역, 객체, 접근 권한 집합〉의 3-튜플로 나열한다. 특정 영역에서 객체에 접근할 때마다 전역 테이블 전체를 순회해 일치하는 항목을 찾는다. 검색되면 실행을 허용하고, 없으면 오류다. 테이블 자체가 커서 보조기억장치를 써야 하고, 추가적인 I/O가 발생한다는 단점이 있다.
접근 제어 리스트(ACL: Access Control List)
접근 제어 행렬을 열(객체) 기준으로 분리한 것이다. 각 객체가 자신에게 접근 가능한 〈영역, 접근 권한〉 쌍의 목록을 갖는다. 접근 권한이 없는 영역은 생략한다.
현재 대부분의 파일 시스템이 ACL 방식을 쓴다. 특정 파일에 어떤 사용자가 접근 가능한지 한눈에 확인할 수 있다는 게 장점이다. Unity 프로젝트에서 에셋 접근 권한 관리나 서버 측 리소스 접근 제어와 개념적으로 같은 맥락이다.
권한 리스트(CL: Capability List)
접근 제어 행렬을 행(영역) 기준으로 분리한 것이다. ACL이 객체 중심이라면, CL은 영역(사용자·프로세스) 중심이다. 각 영역이 자신에게 허용된 〈객체, 조작 권한〉 목록을 갖는다. 권한 리스트는 운영체제가 관리하며, 보호 객체이기 때문에 해당 영역의 프로세스가 직접 접근할 수는 없다.
록-키(Lock-Key)
ACL과 CL을 절충한 기법이다. 각 객체는 록(Lock)이라는 고유한 비트 패턴 리스트를 갖고, 각 영역은 키(Key)라는 고유한 비트 패턴 리스트를 갖는다. 수행 중인 프로세스는 해당 영역의 키와 객체의 록이 일치할 때만 접근 권한을 얻는다. 키 리스트와 록 리스트 모두 운영체제가 관리하므로 사용자가 직접 수정할 수 없다.
3. 보안(Security) — 외부까지 포함한 더 넓은 개념
보호가 시스템 내부 자원에 대한 프로세스·사용자의 접근을 제어하는 내부적 개념이라면, 보안(Security)은 시스템이 동작하는 외부 환경까지 고려한다. 보호는 보안의 부분집합이다.
보안은 크게 세 가지로 분류된다. 내부 보안(Internal Security)은 OS 내장 접근 제어 코드를 통해 불법 침입으로부터 시스템 신뢰성을 유지한다. 외부 보안(External Security)은 화재·홍수·지진 같은 천재지변과 외부 침입자로부터 시스템을 보호하는 것으로, 시설 보안과 운용 보안으로 나뉜다. 사용자 인터페이스 보안(User Interface Security)은 로그인 시점부터 사용자 신원을 확인해 허락된 사용자에게만 접근을 허용하는 것이다.
보안 위협의 네 가지 유형
시스템 일부가 파괴되거나 사용 불가 상태로 만드는 공격
허락되지 않은 자가 시스템에 접근해 정보를 탈취
허락되지 않은 자가 자원이나 내용을 변경
허락되지 않은 자가 위조물을 삽입
인증(Authentication)과 부인봉쇄(Non-repudiation)
인증(Authentication)은 접근하려는 대상이 자신이 주장하는 신분임을 증명하는 것으로, 가장 보편적인 예가 ID/패스워드 로그인이다. 현대에는 MFA(다중 인증)·FIDO2·패스키 등이 추가로 사용된다.
부인봉쇄(Non-repudiation)는 메시지를 보낸 사람이 나중에 "나는 그런 메시지를 보내지 않았다"고 부인할 수 없도록 하는 것이다. 디지털 서명이 대표적인 구현 수단이다.
4. 보안 기법 — 암호화와 접근 제어
보안 기법은 위협을 탐지·예방·복구하기 위한 종합적 기능을 가리킨다. 가장 핵심적인 것이 암호화(Encryption)다. 암호화는 정해진 알고리즘(암호키)을 사용해 원문을 알아볼 수 없는 암호문으로 변환하는 것이고, 이를 다시 원래 상태로 되돌리는 것이 복호화(Decryption)다.
- 암호화·복호화에 동일한 키 사용
- 대표 알고리즘: DES → 현재는 AES-256
- 알고리즘이 단순하고 속도가 빠름
- 사용자가 늘수록 키 관리·배포가 어려워짐
- 암호화(공개키)·복호화(개인키) 키가 다름
- 대표 알고리즘: RSA, Merkle-Hellman
- 알고리즘이 복잡하고 속도가 느림
- 키 배포가 쉽고, 관리할 키 수가 적음
교재에서는 DES를 대표 알고리즘으로 다루지만, DES는 56비트 키 길이의 짧음으로 인해 현재 사실상 폐기됐고 AES-256이 표준으로 쓰인다.
디지털 서명 기법(Digital Signature Mechanism)
공개키 암호화 방식(비대칭키 체계)을 활용한 전자서명의 한 종류다. 송신자가 작성한 전자문서 자체를 암호화하는 게 아니라, 문서를 열람하는 데는 아무런 장애가 없다. 핵심은 전자서명을 작성자만 생성할 수 있고(비밀키 보유), 제3자는 열람만 가능하다는 점이다. 이 구조 덕분에 송신 내용이 위·변조되지 않았음을 증명하고, 부인봉쇄 기능을 제공한다.
그 외 보안 기법들
여분 정보 삽입 기법(Traffic Padding)은 정상 데이터 흐름 사이에 거짓 비트(가짓 데이터)를 삽입해 분석을 어렵게 한다. 인증 교환 기법(Authentication Exchange)은 메시지가 정당한 상대로부터 전달됐음을 확인하는 기법으로, 전송 중 변경 여부도 검증한다. 접근 제어 기법(Access Control)은 인가받은 접근만 허용하는 하드웨어·소프트웨어 특성이나 관리 개념으로, MAC·DAC·RBAC·MLS 등의 방식이 있다.
📎 용어 설명
- 세마포(Semaphore) — 운영체제 또는 프로그램 내에서 공유 자원에 대한 접속을 제어하기 위해 사용되는 신호. 병행으로 동작하는 둘 이상의 프로세스 사이에서 공유 자원을 동시에 사용할 수 없게 하는 동기화 도구
- DoS(Denial of Service) — 서비스 거부 공격. 시스템에 과도한 요청을 보내 정상 사용자가 서비스를 이용하지 못하도록 가용성을 파괴하는 공격 기법
'운영체제(OS)' 카테고리의 다른 글
| [OS] 분산 처리 시스템과 클라우드 컴퓨팅 - 20 (1) | 2026.04.23 |
|---|---|
| [OS] 다중 처리 시스템과 플린(Flynn) 분류 - 19 (0) | 2026.04.20 |
| [OS] 디스크 사용 가능한 공간 관리와 디스크 공간 할당 방법 - 17 (0) | 2026.04.11 |
| [OS] 파일 시스템(File System) - 16 (0) | 2026.04.10 |
| [OS] 하드디스크 구조와 디스크 스케줄링 알고리즘 - 15 (0) | 2026.04.07 |