Transcript 16-Network

네트워크 보안 3
오세종
1
목차
 네트워크 보안의 방법
–
–
–
–
–
암호화
접근제어
사용자/분산시스템 인증
통신 제어 (Traffic control)
데이터 무결성 (Data Integrity)
2
네트워크 보안의 방법
 개요
– 앞 시간을 통해 네트워크상에서의 보안 위협 요소들에 대해
살펴봄
– 이러한 보안 위협에 대해 어떤 방법으로 대처할 수 있는지를
살펴보는 것이 이번시간의 내용
– 가장 주요한 방법은 역시 암호화
– 기타의 방법
• 접근제어
• 사용자/분산시스템 인증
• 통신 제어 (traffic control)
• 데이터 무결성 제어
3
네트워크 보안의 방법
 암호화
– 암호화는 네트워크상에서 메시지의 기밀성을 보장하고 인증,
데이터 무결성을 제공할수 있는 가장 효과적인 수단
– 네트워크 응용(application)에서는 호스트와 호스트간에, 응
용 프로그램과 응용 프로그램 사이에 암호화를 적용할수 있
다.
– 살펴볼 내용
• 링크 암호화 (link encryption)
• 응용 프로그램간 암호화 (end-to-end encryption)
4
네트워크 보안의 방법
 암호화
– 링크 암호화
• 링크 암호화에서는 데이터가 물리적 통신라인으로 흘러가기 직
전에 암호화 된다.
• OSI 기준으로 Layer 1, 2 에서 암호화
Sender message
Intermediate
Host
5
Receiver
네트워크 보안의 방법
 암호화
– 링크 암호화
• 메시지는 호스트와 호스트간의 연결 구간에서는 보호될수 있지
만 호스트 내에서는 평문(plain text)의 형태로 존재함을 알수
있다.  어느정도 정보 누출의 위험
• 송신자 호스트와 수신자 호스트의 보안에 대해서는 신경을 쓰
기 때문에 안전하다고 볼수 있지만 중간에 거쳐가는 호스트는
안전을 보장할 수 없다.
• 중간에 거쳐가는 호스트에서 메시지 내용이 공개될수 있음
– 하위 레이어에서는 라우팅 정보를 알수 없음
• 만일 악의적 공격자가 중간 호스트의 제어권을 장악했다면 이
호스를 거쳐가는 모든 메시지는 유출될수 있다.
6
네트워크 보안의 방법
 암호화
– 링크 암호화
• 링크 암호화에서의 전형적인 메시지 형태
B
N
T
S
Message
E
Session header
Transport header
Network header
Data link header
7
Data link tailer
네트워크 보안의 방법
 암호화
– 링크 암호화
• 링크 암호화가 적절한 경우
– 서로 신뢰할 수 있는 커뮤니케이션 대상 호스트들이 신뢰
할수 없는 통신 매체를 통해 메시지를 주고 받을 때
• 링크 암호화는 낮은 레이어에서 이루어 지기 때문에 사용자는
신경을 쓸 필요가 없다. (H/W적 방법으로 암호화가 되는 경우
가 많다.)
• 단점은 송신자와 수신자 사이에 거쳐야 하는 호스트, 라우터등
장비에 암호화/복호화 기능이 있어야 하고 키를 사용한 암호화
시 키가 분배되어야 한다.
8
네트워크 보안의 방법

암호화
– 응용 프로그램간 암호화
•
•
•
암호화가 프로토콜의 상위 레이어에서 진행됨
낮은 레이어에서의 정보 유출시에도 안전함
키 분배의 문제가 존재함
message
Protocol
layer
9
네트워크 보안의 방법
 암호화
– 응용 프로그램간 암호화
• 응용 프로그램간 암호화에서의 전형적인 메시지 형태
B
N
T
S
Message
E
Session header
Transport header
Network header
Data link header
10
Data link tailer
네트워크 보안의 방법
 암호화
– 두 암호화 방법의 비교
응용프로그램간 암호화
링크 암호화
송신 호스트 내에서 메시지 유출 위험
중간 노드에서 메시지 유출 위험
송신 호스트 내에서 메시지 암호화 보호
중간 노드에서 메시지 암호화 보호
사용자에게 감추어짐
호스트가 암호화
하드웨어에 의한 암호화
모든 메시지가 암호화 혹은 비암호화
암호화 속도가 빠르다
사용자가 암호화 적용
사용자가 암호 알고리즘 선택
소프트웨어에 의한 암호화
사용자가 메시지를 선택적으로 암호화
암호화 속도가 느리다
송수신 호스트당 1개의 키 필요
노드 인증 제공
송수신 사용자당 1개의 키 필요
사용자 인증 제공
11
네트워크 보안의 방법
 접근제어
– 암호화는 네트워크 상에서 데이터에 대한 좋은 보안 방법
– 네트워크에서는 데이터, 프로그램, 시스템 자원에 대한 접근
(access)도 중요한 보안 이슈.
– 단일 시스템 환경에서는 사용자에 대한 접근제어가 쉽다.
– 그러나 이 단일 시스템이 네트워크를 통해 외부와 연결 될
때는 접근하는 사용자를 신뢰하기 어렵다,
– 네트워크 환경에서의 접근제어 : 단일 시스템 보안 + 외부의
권한 없는 사용자가 네트워크를 통해 접근하는 것을 막아야.
12
네트워크 보안의 방법
 접근제어
– 포트 보호 (port protection)
• 네트워크 시스템의 중대한 취약점중의 하나는 다이얼업 포트
(dial-up port)를 통한 접근
• 사용자를 인증하는 문제는 단일 컴퓨팅 시스템 환경에서도 여
려운 문제이지만, 전화선을 통해 전세계 어디서나 접근할 수 있
는 다이얼업 포트 환경에서는 더 어렵다.
• 따라서 다이얼업 포트의 보호가 필요한데 H/W 적인 기법과 관
리적인 기법이 적용될 수 있다.
내가
홍길동 이다
홍길동
13
네트워크 보안의 방법
 접근제어
– 자동 콜백 (automatic call-back)
• 포트 보호의 한 방법
• 다이얼업 모뎀으로 사용자가 접속하면 시스템에서 사용자 확인
(ID, Password)
• 사용자가 확인되면 시스템은 현재의 접속을 끊고 시스템에 등록
된 그 사용자의 전화번호로 시스템이 전화를 건다 (call-back)
• 만일 사용자가 여러 개의 전화번호를 가지고 있고, 장소를 옮겨
다니면서 시스템에 접속하는 사람이라면?
– 최초 시스템 접속시 어디로 전화를 해달라고 시스템에 요청
– 시스템은 자신이 가지고 있는 사용자 정보를 확인하여 사
용자가 요청한 번호가 리스트에 있는지 확인
14
네트워크 보안의 방법
 접근제어
– 차별화된 접근권한 (Differentiated Access Right)
• 데이터에 대한 접근 권한을 어느 장소(위치)에서 접근하는가에
따라 접근 권한을 달리하는 방법
• 외부 사용자에 의한 불법적 접근을 상당부분 차단할 수 있다.
외부 네트워크,
다이얼업 접속
일반문서
2급 기밀
회사 안
사무실 안
1급 기밀
15
네트워크 보안의 방법
 접근제어
– 신중한 모뎀 (Silent modem)
• 다이얼업 모뎀으로 시스템 연결시 시스템 모뎀은 상대방
의 확인 없이 연결정보를 모뎀에게 보낸다.
• 이것을 이용해 조직적인 방법으로 전화를 걸어 시스템에
침입할 수 있는 기술이 알려져 있다.
• 이를 방지하기 위해 시스템 모뎀은 자신의 정보를 먼저
보내지 않고, 기다렸다가 사용자 모뎀이 자신의 정보를
보내면 그때 확인 후 정보를 보낸다
16
네트워크 보안의 방법
 사용자/분산시스템 인증
– 분산 시스템 환경에서는 하나의 응용 프로그램 또는 사용자
가 여러 호스트의 자원을 이용할 수 있다
– 분산 환경에서의 인증 문제
• 한 호스트의 입장에서 볼 때 원거리 호스트의 신뢰성에
대해 어떻게 확신할 수 있는가?
• 한 호스트는 원격 사용자의 신뢰성에 대해 어떻게 확신할
수 있는가. 반대로 사용자는 원격 호스트의 신뢰성을 어
떻게 확신할 수 있는가
17
네트워크 보안의 방법
 사용자/분산시스템 인증
– DEC (Digital Equipment Corp.)의 제안
• 관리자(사람)이 개입되지 않은 호스트간 인증의 필요성 인식
• 이를 위해 호스트간 인증 체계 제안 (공개키 암호화 응용)
• 각 호스트는 개인키(Private key)를 하나씩 가지고 있고, 공개키
(Public key) 를 일정한 장소에 공개
• 다른 호스트와 커뮤니케이션을 위해서는 먼저 상호 인증이 필
요. (A 와 B 서버 가정)
– A는 인증 요구 메시지를 B 의 공개키를 가지고 메시지를
암호화한 후 전송. B 는 자신의 개인키로 메시지 해독한 후
응답 메시지를 A 의 공개키로 암호화 하여 발송. A 는 자신
의 개인키로 응답내용 확인
18
네트워크 보안의 방법
 사용자/분산시스템 인증
– Kerberos
• 분산 네트워크상에서 인증과 암호화를 통해 보안을 제공하려는
알고리즘
• 미국 MIT 에서 개발
• Kerberos 는 프로세스간 인증, 혹은 호스트간의 인증에 사용됨
• Kerberos 의 구성요소
– Kerberos 데이터베이스 : 사용자의 비밀키, 패스워드 보관
– 키 분배센터(KDC) : 사용자 인증 티켓(토큰)을 발행하는
중앙 서버 (티켓의 특성 : 위조불가, 재사용불가)
– 티켓 발행 서버(TGS: ticket granting server) : 네트워크
서비스 이용을 위한 사용 티켓 발행
19
네트워크 보안의 방법
 사용자/분산시스템 인증
– Kerberos
• STEP 1 : Initialize Kerberos Session
User
TGS
 세션키 SG

사용자
정보

티켓 TG
세션키 SG
KDC

사용자 확인
20
DB
네트워크 보안의 방법
 사용자/분산시스템 인증
– Kerberos
• STEP 2 : 네트워크 서비스를 위한 티켓 획득
– 파일 서버의 파일 F 를 읽고 싶다고 가정
SG 로 암호화

Request to
Access file F
User
TGS

파일서버

Ticket to file server
To access file F + SF
암호화
21
네트워크 보안의 방법
 사용자/분산시스템 인증
– Kerberos
• STEP 3 : 사용자는 자신이 받은 파일서버 티켓을 가지고 파일
서버에 파일 F에 대한 읽기 요구. 파일서버는 자신이 가지고 있
느 티켓과 비교하여 허용 여부 결정
• 서비스 사용 티켓 내용 (사용자는 내용을 볼 수 없다)
– 사용자 인증 정보
– 사용자 요구 객체 (파일 F)
– 사용자의 접근 권한
– 세션키 SF
– 유효기간 (만료일자)
22
네트워크 보안의 방법
 사용자/분산시스템 인증
– Kerberos
• Kerberos 의 장점
– 사용자 인증을 위해 KDC 에 로그인하는 경우를 제외하고
패스워드가 네트워크 상에서 흘러다닐 필요가 없다.
– 암호화에 의한 커뮤니케이션으로 커뮤니케이션 내용을 도
청으로 부터 보호
– 티켓은 갖는 제한된 사용시간을 갖으며, 티켓이 한번 사용
되면 다시 쓸 수 없도록 함으로써 티켓의 안전성 제공.
– 서비스를 이용하는 사용자도 이용하는 서버에 대한 신뢰
를 가질 수 있게 함
23
네트워크 보안의 방법
 사용자/분산시스템 인증
– Kerberos
• Kerberos 의 단점
– 티켓 발행 서버(TGS: ticket granting server) 의 장애 발생
시 모든 네트워크 서비스가 중지
– 네트워크 서비스를 한번 이용할 때 마다 매번 티켓을 받아
야 하는 번거로움
– KDC 로그인시 패스워드 추론에 의한 위장 공격이 가능
– 많은 네트워크 서버의 추가시에도 Kerberos 시스템의 확장
이 어려움
24
네트워크 보안의 방법
 사용자/분산시스템 인증
– DCE
• OSF(Open Software Foundation) 의 프로젝트
• DEC, HP, IBM 을 비롯한 200 여 업체 참여
• DCE 는 이질적인 분산 컴퓨팅 환경에서의 응용 S/W를 개발하
고 운영하는 것을 지원하는 S/W 도구들의 집합
• DCE 는 보안적인 측면에서는 Kerberos 기술을 채택
• 다른점 :
– KDC 와 TGS 를 하나의 서버로 통일
– 티켓의 내용에 권한 속성 증서(privilege attribute
certificate)를 추가적으로 포함  사용자의 권한 리스트
25
네트워크 보안의 방법
 사용자/분산시스템 인증
– SESAME
• 유럽지역의 연구 개발 프로젝트 (EC 의 지원)
• Bull, ICL, Siemens 등의 기업이 주도적으로 참여
• SESAME 는 제공하는 서비스와 사용하는 기술에 있어서
DCE 와 비슷
• 가장 큰 차이는 인증을 위해 공개키 기법을 사용한다는
것
• 최초의 사용자 인증서가 사용자의 공개키에 의해 암호화
• 키 분배가 필요 없는 구조
26
네트워크 보안의 방법
 사용자/분산시스템 인증
– CORBA
•
•
•
•
CORBA : Common Object Request Broker Architecture
분산 객체 환경에서의 응용프로그램 개발 표준
이질적인 시스템, 이질적인 OS 상에서도 작동하도록 설계
클라이언트의 요구는 ORB(Object Request Broker)에 의해 처
리됨
• 보안의 측면에서 보면 ORB 는 인증, 접근제어, 감사기록, 메시
지 보호의 기능을 갖는다.
• CORBA 객체가 보안에 신경을 쓰지 않아도 ORB 에 의해 자동
적으로 보안 기능 접목
27
네트워크 보안의 방법
 통신 제어 (Traffic control)
– 네트워크 공격자는 네트워크상에서 흘러가는 모든 메시지를
도청할 수 있다.
– 공격자는 관심 대상이 되는 호스트들 사이에 메시지의 흐름
동향을 분석 및 공격
• 인사부서와 기획실 간의 메시지 증가 : 새로운 인사이동
이나 조직개편?
• 전쟁시 사령부와 일선 부대간의 중요 네트워크 경로에 대
량의 메시지를 유통시켜 커뮤니케이션을 지연
• 내부 스파이와 비밀 채널을 형성 정보를 접수
– 특정 노드에 메시지를 보내면 1, 보내지 않으면 0
28
네트워크 보안의 방법
 통신 제어 (Traffic control)
– 부가 메시지 첨가 (pad traffic)
• 보안이 요구되는 호스트간의 메시지 흐름에 더미(dummy) 메
시지를 대량으로 흘려보내고 그 사이에 실제 메시지를 섞어 보
냄
– 공격자로 하여금 메시지를 분석하려는 의욕을 상실케함
• 또 한가지 방법 : 랜덤한 빈도를 가지고 랜덤한 더미 메시지를
램덤한 호스트에 보냄으로써 비밀 채널을 방해
• 이러한 방법은 전체 네트워크에 교통량을 증가시켜 다른 일반
사용자들에게도 영향을 미친다.
29
네트워크 보안의 방법
 통신 제어 (Traffic control)
– 경로제어 (Routing Control)
• 비밀 채널을 방해하는 방법
• A  B : 0, A  C : 1 로 비밀채널 형성 가정 (A: 내부 스파이)
 네트워크 관리자는 주기적으로 메시지의 배달 경로를 조정
– 예) A  C 를 A  B  C 로 바꾸면 1 이 소멸
 네트워크 관리자는 랜덤하게 메시지를 지연
A 가 B 에게 메시지를 보낸 후 C에게 메시지를 보냈는데, B
로 보낸 메시지가 지연되어 C, B 의 순서로 배달된다면?
30
네트워크 보안의 방법
 데이터 무결성 (Data Integrity)
– 무결성의 관점에서 보면 네트워크상에서 흘러다니는 데이터
는 단일 시스템 환경에 비해 취약성에 많이 노출
– 네트워크 환경에서 데이터의 무결성을 보장하려면
• 데이터가 올바르게 생성되어야 하며 (올바르다고 가정)
• 생성된 데이터가 올바르게 전송, 저장 되어야 한다.
– 이를 보장하기 위한 방법들
• 프로토콜 (protocol)
• 체크섬 (check sum)
• 전자서명 (digital signature)
31
네트워크 보안의 방법
 데이터 무결성 (Data Integrity)
– 프로토콜(protocol)
• 네트워크상에서 데이터의 흐름은 프로토콜에 의존
• 네트워크 프로토콜은 메시지가 중복되거나(duplicate), 삭제된
부분이 있거나(deleted piece), 메시지 패킷의 순서가 바뀌었거
나(out of order), 메시지가 변형된 것 (modified) 을 탐지할 수
있어야 한다.
• 대부분의 프로토콜은 패킷의 순서화를 위해 일련번호 부여. 그
러나 이러한 번호는 네트워크 상에서 변조 가능
– 이를 극복하기 위해 낮은 레이어에서 번호부여 + 부정조작
방지(tamperproof copy) 추가. 상위 레이어에서 패킷 번호
를 암호화
32
네트워크 보안의 방법
 데이터 무결성 (Data Integrity)
– 체크 섬(check sum)
• 네트워크상에서 오가는 신호에는 잡음이 섞일 수 있다.
– 이 경우 데이터의 내용이 변경 가능
• 이를 탐지하기 위해 많은 프로토콜에서 데이터에 추가적 정보
를 붙여 보낸다. 이 정보는 에러 검출, 에러의 수정에 사용
• 가장 단순한 방법 : 패리티 비트 (parity nit)
01101100 1
data
Parity bit
데이터 합계가 짝수이면 1
데이터 합계가 홀수이면 0
33
네트워크 보안의 방법
 데이터 무결성 (Data Integrity)
– 체크 섬(check sum)
• 에러가 난 데이터 블록의 예
11011001 1
– 어느 비트에서 에러가 났는지 알 수 없다 (패리티 비트가
에러일수도 있다)
– 다음과 같이 두 비트가 동시에 잘못되면 에러가 검출되지
않는다.
01101100 1
10101100 1
34
네트워크 보안의 방법
 데이터 무결성 (Data Integrity)
– 체크 섬(check sum)
• 에러 수정이 가능한 이중 패리티
0
1
1
0
1
1
0
0
1
1
1
0
1
1
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
에러 비트
35
좀 더 복잡한 에러
검출 및 수정 알고
리즘이 있지만 보다
많은 부가 정보를
필요로 한다.
(예: 해쉬 함수)
네트워크 보안의 방법
 데이터 무결성 (Data Integrity)
– 전자 서명 (Digital signature)
• 보내는 데이터가 올바르다는 것을 송신자가 보증하는 방법
– 송신자가 보낸 메시지 다이제스트 내용과 수신자가 메시지
를 다이제스트 했을 때 결과가 다르다면 메시지가 도중에
변형 되었다고 간주할 수 있음
36
정리
 네트워크는 그 특성상 많은 취약점을 가지고 있으며 공격자들의
주요 공격 목표가 된다.
 이를 방어 하기 위해서는 어느 한가지 방법만으로는 안되고 여
러 보안 기법들이 종합적으로 고려 되어야 한다.
 네트워크 보안과 관련된 추가적인 이슈들
– 방화벽 (firewall)
– 침입탐지(intrusion detection)
– 보안 이 메일 (secure e-mail)
37
참고문헌
 P.Pfleeger, Security in Computing, second edition,
Prentice-Hall International Inc.,1997. (Chapter 9)
38