Transcript 19-OS_Secu

운영체제 보안
(Protection in Operating System )
오세종
1
목차






개요
보호대상 객체와 보호 방법
메모리와 주소 보호
일반 객체 접근 보호
파일 보호
사용자 인증
2
개요
 컴퓨터 보안에 있어서 운영체제의 역할에 대해 배움
– 개인 PC OS 보다는 서버급의 OS에 대해 다룸
 운영체제는 멀티프로그래밍, 다수 사용자의 시스템 동시 이용을
지원하기 때문에 개별 사용자의 컴퓨팅 작업을 다른 사용자들로
부터 보호해야 한다.
 운영체제가 제공해야 할 보안 영역
–
–
–
–
메모리 보호
파일 보호
시스템 자원에 대한 접근제어
사용자 인증
 이 네가지 요소를 어떻게 지원할지에 대해 살펴봄
3
개요
 개요
– 운영체제
응용
프로그램
응용
프로그램
Operating System
CPU
MEMORY
Disk
4
I/O
device
보호대상 객체와 보호 방법
 간단한 역사
– 컴퓨터의 초기 : 운영체제가 없었음
• 사용자가 스위치를 통해 직접 binary 로 프로그램 입력
• 각 사용자가 독점적으로 컴퓨터를 이용
• 각 사용자는 자신의 작업이 끝나면 사용한 중요정보는 컴퓨터
에서 삭제  보안의 문제가 일어날 소지 없음
– 최초의 운영체제 (executive)
• 개별 프로그래머를 지원하고 새로운 사용자가 시스템을 쉽게
시작할 수 있도록 도와주는 간단한 유틸리티에 불과
• 링커(linker), 로더(loader)
5
보호대상 객체와 보호 방법
 간단한 역사
– 후기의 운영체제 (operating system)
• 멀티프로그래밍의 등장으로 운영체제의 역할, 이름이 완전히
바뀜 (Monitor 라고도 불리움)
• 두명 이상의 사용자가 시스템 자원을 공유하면서 작업을 하는
환경
• 초기 운영체제가 사용자의 요구가 있을 때에만 수동적으로 지
원했던 것에 비해 모니터는 능동적으로 사용자에게 자원을 할
당하고 작업 환경을 통제하는 역할
• 초기 운영체제에서 정보보호는 개별 사용자의 몫, 후기 운영체
제에서는 정보보호가 상당부분 운영체제의 몫이됨
• 각 사용자의 작업을 다른 사용자로 부터 어떻게 보호할 것인가
6
보호대상 객체와 보호 방법
 보호대상 객체
(protected object)
– 다중 사용자 환경의 도래로 다음과 같은 시스템 객체들에 대
한 보호의 필요성 대두
• 메모리 (memory)
• 디스크와 같은 공유 저장장치
• 프린터, 테이프 드라이버와 같은 직렬(serial) I/O 장치
• 공유 프로그램
• 공유 데이터
7
보호대상 객체와 보호 방법
 OS의 보호 방법
– 가장 기초적인 방법은 분리 (separation) : 한 사용자의 객체
를 다른 사용자들로 부터 분리시키는 것.
• 물리적 분리 : 각 프로세스들은 각각의 물리적인 시스템 자원들
을 이용 (예: 서로 다른 보안 등급을 가진 프로세스들은 서로 다
른 분리된 프린터 사용)
• 시간적 분리 : 서로 다른 보안 요구사항을 가진 프로세스들은
서로 다른 시간에 실행되도록 함
• 논리적 분리 : 각 사용자에게 오직 자신만이 컴퓨터를 사용하고
있는 것처럼 보이도록 다른 사용자의 작업을 감춤
• 기밀 분리 : 각 프로세스는 자신의 데이터, 커뮤니케이션 내용
을 다른 프로세스가 알 수 없도록 만듦.
8
보호대상 객체와 보호 방법
 OS의 보호 방법
–
–
–
–
OS 는 앞의 방법들 중 몇가지를 혼용할수도 있다.
이러한 방법들의 구현은 OS 의 복잡성을 증가 시킴
처음 두가지 방법은 시스템의 자원 이용률을 떨어뜨림
OS 는 서로 다른 보안 요구사항을 가진 프로세스들이 동시
적으로 수행될 수 있도록 지원해야 한다.
– 분리는 절반의 해결책
9
보호대상 객체와 보호 방법
 OS의 보호 방법
– OS 가 제공하는 보호의 여러 레벨
• 아무 보호도 없음 (No protection): 민감한 프로세스들이 서로
다른 시간에 수행될 때
• 고립 (Isolation) : 동시 수행되는 각 프로세스는 자신의 고유한
주소공간, 파일, 기타 객체를 할당 받는다. 운영체제는 각 프로
세스가 다른 프로세스들에 대해 자신을 숨길 수 있도록 지원해
야 한다.
• 모두 공유 또는 모두 공유하지 않음 (Share all or share
nothing) : 어떤 객체에 대한 소유자(owner)는 그 객체가 공용
(public) 인지 자신만을 위한 것인지(private)를 선언. 공용 객체
는 모든 사용자가 접근할 수 있다.
10
보호대상 객체와 보호 방법
 OS의 보호 방법
– OS 가 제공하는 보호의 여러 레벨
(계속)
• 접근제한에 의한 공유 (Share via access limitation) : 사용자
는 자신에게 허가된 권한 범위 내에서 객체에 접근. 운영체제는
각각의 접근 요구에 대해 권한 검사 후 접근허가 또는 거절
• 능력에 의한 공유 (Share by capability) : 접근제한에 의한 공
유를 확장한 것으로, 객체에 대한 공유 권한이 정적인 방법이
아닌 동적인(dynamic) 방법으로 이루어진다. 공유의 정도는
객체의 소유자 혹은 주체(subject)가 처해 있는 컴퓨팅환경에
따라 결정된다.
11
보호대상 객체와 보호 방법
 OS의 보호 방법
– OS 가 제공하는 보호의 여러 레벨
(계속)
• 객체에 대한 제한된 이용 (Limit use of an object): 이 방법은
객체에 대한 접근을 제한한다는 것이 아니라 접근을 한후의 객
체에 대한 이용을 제한한다는 것이다.
– 예) 사용자는 기밀 문서를 볼 수는 있지만 본 다음에 복사
나 출력은 할 수 없게 함
– 예) 계산된 통계 데이터는 사용자가 볼 수 있지만 통계 대
상이 되는 원천 데이터는 볼 수 없게 함
• 이상의 방법들 역시 운영체제의 복잡성을 높이지만 보다 정밀
한 보안 제어를 가능하게 한다.
12
보호대상 객체와 보호 방법
 OS의 보호 방법
– 보호 대상 객체의 크기(granularity)도 보안의 관심 대상이다.
• 예) 파일 > 레코드 > 필드
– 개체의 크기가 크면 클수록 보호도 쉬워진다. (그러나 객체
의 활용성은 떨어진다.)
13
메모리와 주소 보호
 다중 프로그래밍 환경에서의 중요한 문제는 한 프로그램에서 사
용중인 (메인) 메모리를 다른 프로그램의 간섭으로 부터 보호하
는일
 다행히도 하드웨어적 방법에 의해 추가적인 비용 없이 메모리를
효과적으로 보호하는 방법이 존재함
 운영체제  일반 프로그램
 일반 프로그램  일반 프로그램
14
메모리와 주소 보호
 울타리 (Fence)
– 초기 컴퓨터 시스템에서 메모리에 적재된 운영체제를 사용
자 시스템에서 보호하려는 목적으로 생겨남
– 메모리는 하드웨어적으로 운영체제를 위한 주소 영역과 일
반 프로그램을 위한 주소영역으로 나누어짐
– 사용자는 운영체제 영역의 주소에 접근 할 수 없음
– 이러한 울타리를 고정 울타리(Fixed Fence)라고 한다.
– 문제점
• 운영체제가 필요한 메모리 < 운영체제 주소영역
• 운영체제가 필요한 메모리 > 운영체제 주소영역
15
메모리와 주소 보호
 울타리 (Fence)
– 고정 울타리 (Fixed Fence)
Address
0
n
n+1
Hardware
address
limitation
addressing
range
16
Memory
Operating
system
User Program
Space
메모리와 주소 보호
 울타리 (Fence)
– 고정 울타리의 한계를 극복하고자 도입된 것이 주소범위 레
지스터 (Address Limit Register)
– 울타리의 경계주소를 운영체제가 결정. 이를 주소범위 레지
스터에 저장 (가변 울타리)
– 사용자는 역시 운영체제의 주소 영역에 접근할 수 없다.
• 사용자 프로그램에서 주소범위 레지스터에 저장된 주소보다 작
은 주소를 접근하고자 하면 운영체제가 차단
– 남아 있는 문제
• 운영체제  일반 프로그램의 문제는 해결 되었지만
• 일반 프로그램들 사이에는 여전히 메모리 보호가 되지 않는다.
17
메모리와 주소 보호
 울타리 (Fence)
– 가변 울타리 (Variable Fence)
Address Limit
Register
n+1
Address
0
n
Memory
Operating
system
Address Limit
Register
Address
0
p+1
n+1
Memory
Operating
system
p
p+1
addressing
range
User Program
Space
addressing
range
18
User Program
Space
메모리와 주소 보호
 재배치(Relocation)
– 만일 사용자 프로그램에서 사용하는 메모리 주소가 고정적
이라고 한다면 OS 의 크기 증가에 따라 프로그램에서 사용
하던 주소를 더 이상 쓸 수 없는 상황이 벌어질 수 있다.
• 이 경우는 프로그램을 다시 작성해야 한다.
*a = 1001 // 1001 번지를 변수 a 에 할당
*b = 1002 // 1002 번지를 변수 b 에 할당
a = 20
b = a * 35
…
19
메모리와 주소 보호
 재배치(Relocation)
– 이런 문제를 해결하기 위해서 프로그램에서 사용하는 주소
와 실제 메모리에 매핑되는 주소를 다르게 함.
– 실제 메모리 주소 = 프로그램 사용 주소 + 기준값
– 보통 기준 값으로 주소범위 레지스터에 있는 값을 이용.
• 이렇게 하면 사용자는 절대로 운영체제 영역에 들어갈 수
없다.
*a = 1 // 논리주소 1 번지를 변수 a 에 할당
*b = 2 // 논리주소 2 번지를 변수 b 에 할당
a = 20
b = a * 35
…
20
실제 주소로
재배치
메모리와 주소 보호
 기초/한계 레지스터(Base/Bound Register)
– 주소범위 레지스터 (Address Limit Register) 와 같이 프로그램
이 사용할 수 있는 최저 주소 (시작주소)를 가리키는 레지스
터를 기초 레지스터라고 한다.
– 기초 레지스터는 주소의 하한선은 결정을 하지만 상한선은
말하지 않기 때문에 상한선을 제한하기 위해 한계 레지스터
를 이용
– 한 프로그램은 기초/한계 레지스터를 이용해서 다른 프로그
램으로 부터 자신의 메모리 영역을 제한할 수 있다.
21
메모리와 주소 보호
 기초/한계 레지스터(Base/Bound Register)
Base
Register
n+1
Bound
Register
Memory
Address
0
Operating
system
n
n+1
p
p
p+1
User A
Program
Space
User B
Program
Space
User C
Program
Space
22
메모리와 주소 보호
 기초/한계 레지스터(Base/Bound Register)
– 문제점
• 사용자 A 를 위해 할당된 메모리에는 프로그램 코드와 데
이터가 저장된다.
• 사용자는 실수로 데이터를 프로그램 코드 부분에 저장할
수 있다.
• 이 경우 프로그램은 정상적으로 작동하지 않게 된다.
• 이를 위해 두쌍의 기초/한계 레지스터가 이용된다.
• 이론상으로는 세쌍 이상의 레지스터를 구현할 수 있지만
실용성의 측면에서 두쌍이 적합한 것으로 알려져 있다.
23
메모리와 주소 보호
 기초/한계 레지스터(Base/Bound Register)
Memory
Program Base
Operating
system
Program Bound
User A Program Space
Data Base
User B Data Space
User A Data Space
Data Bound
User C Program Space
User C Data Space
User B Program Space
24
메모리와 주소 보호
 태그 구조
(Tagged Architecture)
– 사용자는 자신의 데이터를 전부 보호하기 보다는 일부만을
보호하고 나머지는 다른 프로그램과 공유하기를 원할 수 있
다.
– 기초/한계 레지스터가 제공할 수 있는 공유 방법은 ‘전부 아
니면 전무 (all or nothing)’
– 이를 극복하기 위한 하나의 제안으로 제시된 것이 태그 구조
의 메모리이다.
• 메모리의 각 저장 공간은 주소 외에 몇 bit 의 태그를 갖음
25
메모리와 주소 보호
 태그 구조
(Tagged Architecture)
Tag
Values
R
0001
RW
1249
R
1267
X
~~~
X
~~~
X
~~~
R
~~~
RW
~~~
R : read only
RW : Read/Write
X : Execute-only
26
메모리와 주소 보호
 태그 구조
(Tagged Architecture)
– 각 메모리 주소에 대한 접근이 있을 때마다 태그 값을 보고
접근 허용 여부를 결정
– 이 기법이 실제 적용된 시스템은 많지 않음
• 이유 : 현재 잘 알려진 OS 들은 역사가 오래 된 것들. 새
로운 기법을 적용 하려면 많은 변경 필요. 태그 구조를 이
용하지 않는 다른 OS 와의 호환성 문제…
• Burroughs B6500-7500 (3 tag bits)
• IBM System/38
• Intel I960 extend architecture processor : 변형 태그 구
조 적용 (여러 메모리당 하나의 태그 bit 할당)
27
메모리와 주소 보호
 앞으로 소개할 두가지 기법은 대부분의 운영체제에서
채택하고 있는 일반적이고 중요한 기법 (1965~1975
년 사이에 제안됨)
 세그멘테이션 (Segmentation)
 페이징 (Paging)
28
메모리와 주소 보호
 세그멘테이션
– 메모리에 적재될 프로그램을 성격에 따라 여러 조각으로 나
눈다. 나누어진 각 조각을 세그먼트(Segment) 라고 불리움
– 각 세그먼트들은 메모리 상에서 서로 독립된 위치에 적재됨.
(cf. 이전의 방법에서는 프로그램 전체가 하나의 세그먼트)
– 각 세그먼트는 고유한 이름을 부여 받는다.
– 세그먼트의 길이는 가변적이다.
29
메모리와 주소 보호
Memory
Logical Arrangement
Of Program
SUB
MAIN
SEG_A
MAIN
SUB
SEG_A
DATA_SEG
DATA_SEG
30
메모리와 주소 보호
 세그멘테이션
– 세그먼트 내의 아이템에 대한 주소 지정 : <name, offset>
• name : 세그먼트 이름
• offset : 세그먼트 내에서의 상대 주소 ( 0 ~ ..)
– 운영체제는 세그먼트 이름을 실제 메모리 주소에 매핑하기
위한 테이블을 가지고 있음 (세그먼트 변환 테이블)
– 두개의 서로 다른 프로세스가 하나의 세그먼트를 공유할 수
도 있다.
31
메모리와 주소 보호
Memory
0
Logical Program
MAIN
SEG_A
FETCH <DATA_SEG, 20>
SUB
Segment translation
table
a
MAIN
c
b
SEG_A
e
c
SUB
a
d
DATA_SEG
f
e
DATA_SEG
f
g
h
i
32
메모리와 주소 보호
 세그멘테이션
– 사용자 프로그램은 자신이 이용하는 메모리의 실제 주소를
알 필요도 없고, 알 수도 없다.
– 세그멘테이션의 장점
• 운영체제는 세그먼트를 메모리상의 임의의 장소에 위치
시킬 수 있고, 프로그램의 실행중에도 세그먼트위 위치를
옮길 수 있다.
• 현재 사용중이지 않는 세그먼트는 임시 삭제하고(보조기
억 장치에 저장) 다른 세그먼트를 위해 할당할 수 있다.
• 메모리의 모든 주소는 운영체제를 거쳐 참조되기 때문에
보안체크를 할 기회가 주어진다.
33
메모리와 주소 보호
 세그멘테이션
– 세그멘테이션의 세번째 장점을 살리기 위해서 ‘세그먼트 변
환 테이블’은 일반 프로그램이 접근할 수 없다.
– 사용자는 프로그램 내의 세그먼트 들에 대해 서로 다른 보호
범주을 지정할 수 있다.
• 예) SEG_A : execute only, DATA_SEG : read only
– 보안의 관점에서 세그멘테이션의 장점
• 메모리에 대한 모든 참조를 체크할 수 있다.
• 데이터 아이템의 각 부분에 대해 서로 다른 보호 범주지정 가능
• 2인 이상의 사용자가 한 세그먼트를 공유할 때 서로 다른 접근
원한이 부여될 수도 있다.
• 사용자는 허가되지 않은 세그먼트를 만들거나 접근할 수 없다.
34
메모리와 주소 보호
 세그멘테이션
– 세그멘테이션에서의 문제
• <name, offset> 에서 세그먼트를 벗어나는 offset 이 의
도적, 비의도적으로 사용될 수 있다. (컴파일시 체크 안됨)
– 세그먼트의 사이즈 정보를 관리. 실행시 체크
• 세그먼트 이름의 실제 주소 매핑을 위해 세그먼트 변환
테이블에서 찾을 때 시간이 많이 걸림
– 컴파일시 이름 주소를 숫자 주소로 변환
• 조각화 (fragmentation) 발생 세그먼트의 크기가 서로 다
르기 때문에 메모리의 주기적인 조각 모으기
(compaction) 실행 필요
35
메모리와 주소 보호
 페이징
– 세그멘테이션의 한 종류로 볼 수 있다.
– 세그먼트가 가변적 크기를 갖는데 비해 페이지는 고정 사이
즈를 갖는다. (보통 512 ~4096 bytes)
– 주소화 기법 : <page, offset>
– 메모리의 조각화, 페이지를 넘어서는 offset 의 지정 문제가
발생하지 않는다.
– 페이지의 사이즈를 어느 정도로 하는 것이 좋은가 하는 것이
이슈임
36
메모리와 주소 보호
Memory
0
Logical Program
page translation
table
PAGE 0
0
c
PAGE 1
1
e
PAGE 2
2
a
3
f
PAGE 3
a
b
c
d
e
f
g
h
i
j
37
메모리와 주소 보호
 세그멘테이션과 페이징의 결합
– 페이징의 문제점은 프로그램에서 유사 성격을 가지고 있어
서 동일 보호범주가 적용 되어야 할 부분이 여러 페이지로
나누어 질 수 있다는 것.
– 세그멘테이션과 페이징 기법의 장점을 취하여 만듦
38
메모리와 주소 보호
Memory
0
Logical Program
MAIN
SEG_A
FETCH <DATA_SEG, 20>
SUB
Segment translation
table
MAIN
c
SEG_A
e
SUB
a
DATA_SEG
f
page translation
table
0
c
1
e
2
a
3
f
page translation
table
0
ㅎ
1
E
ㅗ
2
a
3
k
ㅏ
page translation
table
0
c
1
e
2
a
3
f
DATA_SEG
39
a
b
c
d
e
f
g
h
i
j
일반 객체 접근 보호
 앞에서 살펴본 메모리 보호는 컴퓨터 시스템에 존재하는 객체들
에 대한 보호 문제의 한 부분을 보여줌
 보호가 필요한 시스템 객체들
–
–
–
–
–
–
–
–
메모리
보조 기억장치의 파일
파일 디렉토리
메모리에서 실행 중인 프로그램
하드웨어 장치
운영체제가 관리하는 각종 테이블
사용자 패스워드
보호 메커니즘 자체도 보호 대상
40
일반 객체 접근 보호
 이러한 일반 객체에 대해서는 합법적인 권한을 가진 주체 (사용
자, 프로그램)만이 접근할 수 있도록 해야 한다.
 따라서 운영체제는 보호가 필요한 객체에 대한 권한 정보를 관
리해야 한다.
 이러한 방법의 하나로서 이전 시간에 배운
– 접근제어 리스트 (Access Control List)
– 접근제어 행렬 (Access Control matrix)
가 많이 사용됨
41
파일 보호
 기본적인 보호 방법
– 전부/전무(all-none) 보호
• 초기의 IBM 운영체제에서 파일은 기본적으로 공유 자원.
사용자들은 다른 사용자들이 만든 파일을 읽고 쓸 수 있
었다. (사용자들을 신뢰)
• 시스템에서 중요한 파일은 일반 사용자가 접근할 수 없도
록 시스템 관리자에 의해 보호 (패스워드)
• 패스워드를 파일에 이용하려면 시스템 관리자의 개입이
필요.
42
파일 보호
 기본적인 보호 방법
– 전부/전무(all-none) 보호의 문제점
• 사용자 수가 몇 안되는 시스템에서는 사용자들끼리 잘 알고 신
뢰 할 수 있지만, 많은 수의 사용자 시스템에서는 모든 사용자
를 신뢰할 수 없다.
• 사용자가 자신이 신뢰할 수 있는 다른 사용자를 안다 하더라도
그들만이 자신의 파일에 접근할 수 있도록 하는 방법이 없다.
• 이 방법은 일괄작업(batch processing) 환경에서는 적합할 수
있다. (사용자간에 상호 개입할 일이 적다.) 그러나 시간 분할
(time sharing)의한 동시 사용자 작업수행 환경에서는 사용자간
상호 간섭의 가능성이 증가.
• 파일 보호에 시스템 관리자의 개입이 필요하므로 편리성 저하
• 사용자는 파일 리스트 명령어를 통해 보호 파일의 존재도 확인
43
파일 보호
 기본적인 보호 방법
– 그룹 보호
• 앞에서 지적한 이유로 해서 많은 운영체제에서는 그룹의 개념
지원
• 연관성이 있는 사용자들을 하나의 그룹으로 묶어서 생각.
• 그룹으로 묶는 기준 : need to share
• 사용자는 오직 하나의 그룹에만 속할 수 있다.
• 사용자는 파일을 생성할 때 자신의 그룹 안의 사용자를 위한 접
근 권한과 기타 사용자를 위한 접근권한 지정
– 예) 자신: 모든 권한 소유,그룹 사용자 : 읽기,쓰기, 외부 사
용자 : 읽기
• DEC-10, Unix system, VAX VMS system 등에서 구현
44
파일 보호
 기본적인 보호 방법
– 그룹 보호의 문제
• 한 사용자는 동시에 두 그룹에 들어갈 수 없다.
– 동시에 두 그룹에 들어가는 것을 허용하면 모호성 문제 발생
• 한 사용자가 동시에 두 그룹에 들어가지 못하는 단점을 극복하
기 위해 한 사용자에게 두개의 사용자 계정을 만들 수 있다. 그
러나 이 경우도 사용자는 한번에 한 계정만을 이용 가능하다.
(두 계정을 동시에 open 할 수 없다)  불필요한 계정의 증가
• 사용자는 그룹의 모든 사용자가 아닌 한 사람의 사용자와만 어
떤 파일을 공유하기 원할 수 있다.
45
파일 보호
 Single permission
– 그룹 보호보다 세밀한 보안관리 제공
– 패스워드 /토큰 방식
• 사용자는 자신이 만든 파일에 패스워드를 부여 한다. 파
일에 접근하는 다른 사용자는 올바른 패스워드를 제시 해
야만 파일을 열어볼 수 있다.
• 파일을 생성한 사용자는 자신이 원하는 다른 사용자에게
만 패스워드를 알려줌으로써 자신만의 ‘그룹’을 만들수
있다.
• 문제점 (사용자 인증에서의 패스워드와 비슷)
– 패스워드의 분실
– 패스워드가 권한이 없는 다른 사람에게 알려짐
– 권한의 회수, 변경시 : 패스워드를 바꾸어야 한다.
46
파일 보호
 Single permission
– 임시적 권한 (temporary acquired permission)
• Unix 운영체제에서 제안
• 기본 구조 : user(owner) – group – world
• 추가적인 권한 : set userid (suid)
– suid 가 어떤 파일의 실행을 위해 설정되면 그 프로그램을
실행하는 사용자는 자신의 권한을 가지고 프로그램을 실행
하는 것이 아니라 소유자의 권한을 가지고 실행
• 예)
pgm1
suid
file1
(owner : Tom)
John
47
파일 보호
 Single permission
– 임시적 권한 (temporary acquired permission)
• Suid 를 이용하면 다른 사용자가 직접적인 방법으로는 데이터
에 접근할 수 없도록 막으면서, 자신이 정한 통로 (프로그램) 를
통해서만 접근하도록 강제할 수 있다.
• 또 다른 예
– 패스워드 파일에 대한 접근권한 부여
» Owner : System
» 사용자는 자신의 패스워드를 언제든지 바꿀 수 있어야
한다.
» 만일 패스워드 파일에 대한 직접적 접근권한을 사용
자들에게 부여한다면?
48
사용자 인증
 시스템에 접근하는 사용자가 권한이 있는 사용자 인
지를 식별하는 일은 보안상 매우 중요
– 이를 위해 가장 보편적인 방법이 ID, 패스워드를 제시하게 하여 확
인하는 방법
– 이에 대해서는 이미 다루었음
49
정리
 컴퓨터 시스템이 발전하면서 보안적인 측면을 보완하기 위한 노
력이 계속되었으며 그 결과로서 여려 가지 기법들이 제시 되었
다.
 이번 시간에 다룬 여러 가지 보호 기법들은 우리가 어떤 보안 시
스템을 설계할 때 좋은 참고 자료가 될 수 있다.
 사용자 편리성을 저하시키지 않으면서 필요한 정보를 보호할 수
있는 방법들이 계속 연구될 필요가 있다.
50
참고문헌
 P.Pfleeger, Security in Computing, second edition,
Prentice-Hall International Inc.,1997. (chapter 6)
51