chapter 8 네트워크 보안

65
Chapter 8 네네네네 네네 Computer Networking: A Top Down Approach , 5 th edition. Jim Kurose, Keith Ross Addison-Wesley, April 2009.

Upload: gefen

Post on 27-Jan-2016

150 views

Category:

Documents


8 download

DESCRIPTION

Chapter 8 네트워크 보안. Computer Networking: A Top Down Approach , 5 th edition. Jim Kurose, Keith Ross Addison-Wesley, April 2009. Chapter 8 목차. 8.1 네트워크 보안이란 무엇인가 ? 8.2 암호학의 원리 8.3 메시지 무결성 8.4 종단점 인증 8.5 전자 메일의 보안 8.6 TCP 연결의 보안 : SSL 8.7 네트워크 계층의 보안 : IPsec 8.8 무선 랜의 보안 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Chapter 8 네트워크 보안

Chapter 8네트워크 보안

Computer Networking: A Top Down Approach ,5th edition. Jim Kurose, Keith RossAddison-Wesley, April 2009.

Page 2: Chapter 8 네트워크 보안

Chapter 8 목차

8.1 네트워크 보안이란 무엇인가 ?8.2 암호학의 원리8.3 메시지 무결성8.4 종단점 인증8.5 전자 메일의 보안8.6 TCP 연결의 보안 : SSL8.7 네트워크 계층의 보안 : IPsec8.8 무선 랜의 보안8.9 운영상 보안 : 방화벽과 침입 방지 시스템

Page 3: Chapter 8 네트워크 보안

네트워크 보안의 목표

기밀성 (confidentiality): 오직 송신자와 정해진 수신자만이 메시지 내용을 “ 이해” 할 수 있다 . 암호화의 과제

인증 (authentication): 송신자와 수신자는 상호 존재를 확인할 수 있어야 한다 .

무결성 (integrity): 메시지가 전송 중 ( 혹은 후에 ) 변경되지 않은 것을 보장할 수 있도록 한다 .

접근 제어 (access control) 와 가용성 (availability) :사용자는 서비스를 원할 때는 언제든지 받을 수 있어야 한다 .

Page 4: Chapter 8 네트워크 보안

친구와 적들 : Alice, Bob, Trudy

Bob 과 Alice 는 안전하게 통신을 하고 싶다 . Trudy ( 공격자 ) 는 둘 사이의 메시지를 엿보거나

제거하거나 삭제하려고 한다 .

securesender

securereceiver

channel data, control messages

data data

Alice Bob

Trudy

Page 5: Chapter 8 네트워크 보안

누가 Bob, Alice 가 될 수 있는가 ? 실제 통신하는 사람들 전자 상거래를 하는 웹 브라우저와 서버 온라인 뱅킹을 하는 client/server DNS 서버 라우팅 정보를 교환하는 라우터들 등등

Page 6: Chapter 8 네트워크 보안

공격자가 하려는 것은 ? 엿듣기 : 메시지 가로채기 적극적으로 거짓 메시지를 추가한다 . 메시지 내용 변경 이전 메시지를 새로운 메시지로 다시 전송 (replay) 위장 : 패킷의 소스 주소를 가짜 주소로 한다 .(spoof) 하이재킹 : 자신이 송신자 혹은 수신자가 되어 통신을

한다 . 서비스 거부 (denial of service): 다른 사람의

서비스를 받지 못하도록 한다 . 서버의 자원이 고갈되도록 한다 . 소프트웨어의 약점을 이용한 웜 , 바이러스 공격

Page 7: Chapter 8 네트워크 보안

Chapter 8 목차

8.1 네트워크 보안이란 무엇인가 ?8.2 암호학의 원리8.3 메시지 무결성8.4 전자 메일의 보안8.5 TCP 연결의 보안 : SSL8.6 네트워크 계층의 보안 : IPsec8.7 무선 랜의 보안8.8 운영상 보안 : 방화벽과 침입 방지 시스템

Page 8: Chapter 8 네트워크 보안

8

암호학 관련 용어

m : 평문 메시지KA(m) : 키 KA 로 암호화된 암호문

m = KB(KA(m))

평문(plaintext)

평문 (plaintext)암호문 (ciphertext)

KA

encryptionalgorithm

decryption algorithm

Alice 의 암호화 키(encryption Key)

Bob 의 복호화 키 (decryption key)

KB

Page 9: Chapter 8 네트워크 보안

9

간단한 암호화 방법대치 암호 (substitution cipher):

단일 문자 대치 암호

평문 : abcdefghijklmnopqrstuvwxyz

암호문 : mnbvcxzasdfghjklpoiuytrewq

평문 : bob. i love you. alice암호문 : nkn. s gktc wky. mgsbc

예 :

Key: the mapping from the set of 26 letters to the set of 26 letters

Page 10: Chapter 8 네트워크 보안

암호화 키 (crypto key)

암호화할 때 보통 암호화 키 (key) 를 사용한다 : 암호화 알고리즘은 모든 사람에게 알려져 있다 . 오직 키 (key) 만 비밀로 유지된다 .

왜 암호화 알고리즘을 비밀로 하지 않고 키(key) 만 비밀로 할까 ?

10

Page 11: Chapter 8 네트워크 보안

11

암호 해독 공격 방법

암호문 만으로 해독 두 가지 접근 방법 :

모든 키에 대해 다 시도해 본다 .

통계 분석

알려진 평문 공격 : 공격자는 어떤 암호문에 대한 평문의 쌍을 알고 있다 .

선택 평문 공격 : 침입자는 평문 메시지를 선택할 수 있고 이에 대응하는 암호문 형태를 얻을 수 있다 .

Page 12: Chapter 8 네트워크 보안

12

암호화 방법

대칭키 (Symmetric key) 암호화 공개키 (Public key) 암호화

Page 13: Chapter 8 네트워크 보안

13

대칭키 암호화

대칭키 : Bob 과 Alice 는 공유키를 사용한다 : K

Q: Bob 과 Alice 는 어떻게 이 키를 서로 약속해서 사용할 수 있을까 ? - 키 배분의 문제

평문암호문

K S

encryptionalgorithm

decryption algorithm

S

K S

평문 메시지 m

K (m)S m = KS(KS(m))

Page 14: Chapter 8 네트워크 보안

14

대칭키 암호화의 두 유형

스트림 암호화 (stream cipher)한 번에 한 비트씩 암호화

블록 암호화 (block cipher)평문 메시지를 동일한 크기의 블록으로

구분하여 블록 단위로 암호화한다 .

Page 15: Chapter 8 네트워크 보안

15

스트림 암호화

키 스트림 (key stream) 의 각 비트를 평문의 각 비트와 결합하여 암호문의 비트를 생성한다 .

m(i) = 평문 메시지의 i 번째 비트 ks(i) = 키 스트림의 i 번째 비트 c(i) = 암호문의 i 번째 비트 c(i) = ks(i) m(i) ( = exclusive or) m(i) = ks(i) c(i)

keystreamgeneratorkey keystream

pseudo random

Page 16: Chapter 8 네트워크 보안

16

RC4 스트림 암호화

RC4 는 널리 알려진 스트림 암호화 방법이다 . 키는 1 바이트부터 256 바이트까지 사용 802.11 의 WEP 에서 사용 SSL 에서도 사용할 수 있다 .

Page 17: Chapter 8 네트워크 보안

17

블록 암호화

메시지는 k 비트의 블록으로 나누어서 암호화한다 . ( 예 , 64-bit 블록 ).

K 비트 길이의 평문 메시지 블록과 k 비트 길이의 암호문 블록과 1 대 1 로 매핑된다 .

예 (k=3):

input output000 110001 111010 101011 100

input output100 011101 010110 000111 001

평문 010110001111 의 암호문은 ?

Page 18: Chapter 8 네트워크 보안

18

블록 암호화

블록 크기가 작을 경우 : 예를 들면 k=3? How many 3-bit inputs? 3-bit 입력값에 대한 순열 (permutation) 의 수

는 ?• 2k! mappings• 답 : 40,320 ; 너무 적다 !

블록 크기가 너무 클 경우 , 예를 들면 k=64: 입력값에 대한 순열의 수는 264! 하지만 , 64 비트의 각 스트링에 대해서 264 개의

값이 테이블에 존재해야 한다 . 테이블이 너무 커진다 .

Page 19: Chapter 8 네트워크 보안

19

블록 암호화의 예64-bit input

S1

8bits

8 bits

S2

8bits

8 bits

S3

8bits

8 bits

S4

8bits

8 bits

S7

8bits

8 bits

S6

8bits

8 bits

S5

8bits

8 bits

S8

8bits

8 bits

64-bit 뒤섞음

64-bit output

n 번 순환

8-bit to8-bitmapping

From Kaufmanet al

S-box

Page 20: Chapter 8 네트워크 보안

20

앞의 예에서 왜 n 번 반복하는가 ? 한번만한다면 입력된 1 비트는 출력문의

최대 8 비트에 영향을 준다 . 두번째 반복하면 이 8 비트는 다시 흩어져서

여러 개의 S-box 의 입력으로 들어가게 된다 . 얼마나 반복해야 하나 ?

카드를 반복해서 섞는 것과 유사한다 . n 이 증가하면 섞는 효과는 감소된다 .

Page 21: Chapter 8 네트워크 보안

One Round of DES

L

expandL

R

S-boxes(8)

P Box

L R

key

R

Compress

key

48

32 32

32

48

32

32

32

48

28

2828

28

28 28

Page 22: Chapter 8 네트워크 보안

22

큰 메시지를 암호화할 때

각 블록 마다 독립해서 암호화를 한다면 , 만약 모든 블록에 동일한 키를 사용하면 문제 :

왜냐하면 같은 내용의 블록이 다시 나온다면 암호문도 같아진다 . 그렇다면 공격자가 예측할 수 있는 정보를 제공해 준다 .

만약 각 블록마다 다른 키를 사용한다면 : 매 블록 m(i) 마다 64-bit 의 r(i) 를 랜덤하게 발생 c(i) = KS( m(i) r(i) ) 를 계산 전송 : c(i), r(i), i=1,2,… 수신자는 해독 : m(i) = KS(c(i)) r(i) 문제는 매번 암호문 ( 블록 ) 을 보낼 때 마다 다른

키를 같이 보내야 한다 : c(i) 와 r(i)

Page 23: Chapter 8 네트워크 보안

만약 모든 블록을 동일한 키를 사용하면

어떻게 이렇게 되었는가 ? 동일한 평문의 블록 동일한 암호문 !

Alice 의 압축된 파일을 암호화하여 표시할 때

Page 24: Chapter 8 네트워크 보안

24

암호 블록 연결 (CBC)

현재의 블록을 암호화할 때 이전 블록의 결과를 사용한다 . c(i) = KS( m(i) c(i-1) )

m(i) = KS( c(i)) c(i-1)

그러면 첫번째 블록을 어떻게 암호화할 것인가 ? 초기 벡터 (IV): 랜덤하게 생성된 블록 = c(0) IV 는 비밀값일 필요는 없다 .

각 메시지 마다 ( 혹은 세션마다 ) IV 값을 변경한다 . 동일한 메시지를 반복해서 전송하더라도 암호문은 매번

변경되도록 한다 .

Page 25: Chapter 8 네트워크 보안

Cipher Block Chaining(CBC) 만약 입력 블록이

동일하다면 동일한 암호문이 만들어 진다 .

t=1m(1) = “HTTP/1.1” block

cipherc(1) = “k329aM02”

cipher block chaining: i번째 입력 블록과 이전 암호문의 블록을 XOR

+

m(i)

c(i)

t=17m(17) = “HTTP/1.1”block

cipherc(17) = “k329aM02”

blockcipher

c(i-1)

Page 26: Chapter 8 네트워크 보안

CBC 모드로 암호화

Alice’ 의 압축되지 않은 이미지를 CBC (TEA) 를 사용하여 암호화하였다 .

왜 이렇게 되었는가 ? 동일한 평문일지라도 다른 암호문을 만들어낸

다 !

Page 27: Chapter 8 네트워크 보안

27

대표적 대칭키 암호화 방법 : DES

DES: Data Encryption Standard US 암호 알고리즘 표준 [NIST 1993] 56-bit 대칭키 사용 , 64-bit 크기의 블록 암호문 블록 연결 (cipher block chaining) DES 는 얼마나 안전한가 ?

무차별 공격 (brute force) 으로 하루 안에 암호를 풀 수 있다 .

안전의 문제는 키의 길이와 메시지의 암호를 푸는 컴퓨터의 계산 능력에 달려 있다 .

3DES 키의 길이를 DES 의 3배로 하여 암호화한다 .

Page 28: Chapter 8 네트워크 보안

28

AES: Advanced Encryption Standard

미국의 새로운 암호 알고리즘 표준 [2001]: DES 를 대체

블록 크기 : 128 bit 키의 길이 : 128, 192, or 256 bits 무차별 공격 (brute force) 으로 동일한

암호문을 풀 경우 , DES 의 경우 1초가 걸린다면 AES 는 149 trillion years 가 걸린다 .

Page 29: Chapter 8 네트워크 보안

29

공개키 암호화

대칭키 암호화는 송수신자 만이 공유하는 비밀키를 가져야 한다 .

Q: 어떻게 둘 만의 비밀키를 가질 수 있는가 ( 특히 둘이 서로 직접 만날 수 없다면 )?

공개키 암호화 완전히 다른 접근 방법

[Diffie-Hellman76, RSA78]

송신자와 수신자는 비밀키를 공유하지 않는다 .

공개키는 모두에게 공개된다 .

개인키는 오직 각 개인들만 갖고 있다 .

Page 30: Chapter 8 네트워크 보안

30

공개키 암호화

plaintextmessage, m

ciphertextencryptionalgorithm

decryption algorithm

Bob 의 공개키

plaintextmessageK (m)

B+

K B+

Bob 의 개인키 K B-

m = K (K (m))B+

B-

Page 31: Chapter 8 네트워크 보안

31

공개키 암호화 알고리즘

K 와 K 필요B B

공개키 K 에서 개인키 K 를 찾아낼 수 없다 .

BB

요구사항 :

1

2

RSA: Rivest, Shamir, Adelson algorithm

+ -

K (K (m)) = m BB

- +

+ -

Page 32: Chapter 8 네트워크 보안

32

간단한 modular arithmetic

x mod n = x 를 n 으로 나누었을 때 나머지(remainder)

법칙 :[(a mod n) + (b mod n)] mod n = (a+b) mod n[(a mod n) - (b mod n)] mod n = (a-b) mod n[(a mod n) * (b mod n)] mod n = (a*b) mod n

따라서 (a mod n)d mod n = ad mod n 예 : x=14, n=10, d=2:

(x mod n)d mod n = 42 mod 10 = 6xd = 142 = 196 xd mod 10 = 6

Page 33: Chapter 8 네트워크 보안

33

RSA: 공개키와 개인키 생성

1. 두 개의 큰 소수 p, q 를 선택한다 .

2. n 과 z 를 계산 : n = pq, z = (p-1)(q-1)

3. e (with e<n) 를 선택한다 . e 와 z 는 “서로 소” ( 공약수가 없다 ).

4. d 를 선택한다 . ed-1 는 z 로 나누어진다 . (ed mod z = 1 ).

5. 공개키 : (n,e). 개인키 : (n,d).

K B+ K B

-

Page 34: Chapter 8 네트워크 보안

34

RSA: 암호화와 복호화

0. (n,e) 과 (n,d) 를 앞에서와 같이 계산

1. m(<n) 을 다음과 같이 암호화

c = m mod n

e

2. c 를 복호화

m = c mod n

d

m = (m mod n)

e mod n

dMagichappens!

c

Page 35: Chapter 8 네트워크 보안

35

c = me mod n, cd mod n = m

for any x and y: xy mod n = x(y mod z) mod n where n= pq and z = (p-1)(q-1)

따라서 , cd mod n = (me mod n)d mod n

= med mod n = m(ed mod z) mod n = m1 mod n = m

Page 36: Chapter 8 네트워크 보안

36

RSA 예 :

p=5, q=7. Then n=35, z=24.e=5 (따라서 e 와 z 는 서로 소 ).d=29 (따라서 ed-1 는 z 로 나누어진다 ).

bit pattern m me c = m mod ne

0000l000 12 24832 17

c m = c mod nd

17 481968572106750915091411825223071697 12

cd

encrypt:

decrypt:

Page 37: Chapter 8 네트워크 보안

37

RSA: 또 다른 중요한 성질

K (K (m)) = m BB

- +K (K (m))

BB+ -

=

먼저 공개키를 적용 , 다음에

개인키를 적용

개인키를 먼저 적용 , 다음에

공개키를 적용

결과는 동일하다 !

Page 38: Chapter 8 네트워크 보안

38

다음과 같은 modular 연산에 의해서 성립 :

(me mod n)d mod n = med mod n = mde mod n = (md mod n)e mod n

K (K (m)) = m BB

- +K (K (m))

BB+ -

=왜 ?

Page 39: Chapter 8 네트워크 보안

39

왜 RSA 는 안전한가 ? Bob (n,e) 의 공개키를 알고 있을 때 , d 를 찾는

것이 얼마나 어려운가 ? 이것은 n 을 인수분해하여 두 개의 소수 p 와 q 를 얼마나 빨리 찾을 수 있느냐에 달려있다 .

커다란 수의 두 소수 p,q 를 찾는 것은 어렵다 .

RSA 키 생성 두 개의 커다란 소수 p 와 q 를 찾아야 한다 .

Page 40: Chapter 8 네트워크 보안

40

공개키의 응용

공개키 사용의 문제점 지수 연산은 계산 시간이 많이 요구된다 . DES 는 적어도 RSA 보다 100 배 빠르다 .

따라서 공개키를 긴 메시지 전체를 암호화하는데는 사용하지 않는다 .

공개키의 응용 공개키를 사용하여 대칭키를 암호화하여 전송하고

메시지의 암호화는 대칭키를 사용한다 .디지털 서명 인증

Page 41: Chapter 8 네트워크 보안

Chapter 8 목차

8.1 네트워크 보안이란 무엇인가 ?8.2 암호학의 원리8.3 메시지 무결성8.4 전자 메일의 보안8.5 TCP 연결의 보안 : SSL8.6 네트워크 계층의 보안 : IPsec8.7 무선 랜의 보안8.8 운영상 보안 : 방화벽과 침입 방지 시스템

Page 42: Chapter 8 네트워크 보안

42

메시지 무결성 (integrity) 통신 개체들이 수신한 메시지가 진짜인 것을

증명 메지지의 내용이 변경되지 않았다 . 메시지의 생성자가 내가 그런 것으로 알고 있는

개체이다 . 이전 메시지가 다시 전송되지 않았다 . 전송되는 메시지의 순서가 유지되었다 .

접근 방법 메시지 다이제스트 (message digest)

Page 43: Chapter 8 네트워크 보안

43

해쉬 함수와 메시지 다이제스트

함수 H( ) 는 임의의 길이의 메시지를 입력으로 받아서 고정된 길이의 메시지 스트링을 만들어낸다 .

H( ) : many-to-1 함수 H( ) 는 “ 해쉬 함수 (hash

function)” 라고 불리운다 .

요구되는 특성 : 계산이 용이 단방향 : H(m) 에서 m 을 찾을 수 없다 .

충돌 방지 : H(m) = H(m’)인 m 과 m’ 을 계산하는 것은 어려워야 한다 .

출력값은 랜덤해야 한다 .

large message

m

H: HashFunction

H(m)

Page 44: Chapter 8 네트워크 보안

44

checksum: 불완전한 해쉬 함수

에러 코드로 사용하는 checksum 은 해쉬 함수의 특성을 갖고 있다 : 고정된 길이의 메시지 다이제스트 (16-bit sum) 를 생성한다 . many-to-one

하지만 어떤 해쉬값을 갖는메시지가 있을 때 동일한 해쉬값을 갖는 또 다른 메시지를 쉽게 찾을 수 있다 .

예 : 단순한 체크섬 :

I O U 10 0 . 99 B O B

49 4F 55 3130 30 2E 3939 42 D2 42

message ASCII format

B2 C1 D2 AC

I O U 90 0 . 19 B O B

49 4F 55 3930 30 2E 3139 42 D2 42

message ASCII format

B2 C1 D2 AC다른 메시지하지만 동일한 checksum!

Page 45: Chapter 8 네트워크 보안

45

해쉬 함수 (hash function) 알고리즘 MD5 (RFC 1321)

널리 사용되고 있다 . 4단계의 계산으로 128-bit 메시지 다이제스트를

생성한다 . SHA-1

US 표준 [NIST, FIPS PUB 180-1]

160-bit 메시지 다이제스트

Page 46: Chapter 8 네트워크 보안

46

메시지 인증 코드 (MAC)m

ess

ag

e

H( )

s

mess

ag

e

mess

ag

e

s

H( )

compare

s = shared secret

송신자를 인증한다 (authenticate) 메시지 무결성을 증명 암호화는 없음 ! “keyed hash” 라고도 불리움 MDm = H(s||m) ; 전송 m||MDm

Page 47: Chapter 8 네트워크 보안

47

HMAC (RFC 2104)

널리 사용되고 있는 MAC 표준 MD5 나 SHA-1 해쉬 함수와 함께 사용될 수

있다 . 응용 예 : OSPF

공걱• 메시지 삽입• 메시지 제거• 메시지 수정

어떻게 라우터는 전송받은 메시지가 진짜인지 알 수 있는가 ?

Page 48: Chapter 8 네트워크 보안

종단 개체 인증(End-point authentication) Bob 이 Alice 로부터 메시지 (m) 와 함께

MAC 을 받았다 . Bob 은 이 메시지가 중간에 변경되지

않았다는 것을 확신할 수 있는가 ? Bob 은 이 메시지를 Alice 가 만들었다는

것을 확신할 수 있는가 ? Bob 은 이 메시지를 Alice 가 보냈다는 것을

확신할 수 있는가 ?

48

Page 49: Chapter 8 네트워크 보안

MACTransfer $1Mfrom Bill to Trudy

MACTransfer $1M fromBill to Trudy

메시지 재사용 (playback) 공격

MAC =f(msg,s)

Page 50: Chapter 8 네트워크 보안

“I am Alice”

R

MACTransfer $1M from Bill to Susan

MAC =f(msg,s,R)

메시지 재사용 공격에 대한 방어 : nonce

Page 51: Chapter 8 네트워크 보안

51

디지탈 서명 (digital signature)

손으로 하는 서명과 유사한 방법 . 송신자 (Bob) 는 자신이 무선의 소유자 /작성자임을

증명하는 서명을 한다 . 목표는 MAC 과 유사 , 하지만 공개키 암호화를

사용한다 . 위조 불가능 : 수신자 (Alice) 는 오직 Bob 만이 이

문서에 서명했다는 것을 증명할 수 있다 .

Page 52: Chapter 8 네트워크 보안

52

디지털 서명

메시지 m 에 대한 간단한 서명 : Bob 은 자신의 개인키로 암호화된 문서를

생성한다 .

Dear Alice

Oh, how I have missed you. I think of you all the time! …(blah blah blah)

Bob

Bob’s message, m

Public keyencryptionalgorithm

Bob’s privatekey

K B-

Bob’s message, m, signed

(encrypted) with his private key

K B-(m)

Page 53: Chapter 8 네트워크 보안

53

large message

mH: Hashfunction H(m)

digitalsignature(encrypt)

Bob’s private

key K B-

+

Bob 은 디지털 서명한 메시지를 전송한다 .

Alice 는 디지털 서명의 진위를 증명한다 .

KB(H(m))-

encrypted msg digest

KB(H(m))-

encrypted msg digest

large message

m

H: Hashfunction

H(m)

digitalsignature(decrypt)

H(m)

Bob’s public

key K B+

equal ?

메시지 다이제스트를 이용한 디지털 서명

Page 54: Chapter 8 네트워크 보안

54

디지탈 서명 Alice 는 메시지 m 과 디지털 서명 KB(m) 을 받았다고 하자 .

Alice 는 Bob 의 공개키 (KB ) 로 KB(m) 을 복호화한다 :

KB(KB(m) ) = m.

만약에 KB(KB(m) ) = m 이면 Bob 이 서명한 것을 증명할 수 있다 .

+

+

-

-

-

-

+

Alice 는 다음을 증명 : 오직 Bob 만이 m 을 서명 , 따라서 확실히 Bob 이 m

을 보냈다 . 메시지의 무결성은 ?

부인 봉쇄 (Non-repudiation): Alice 는 Bob 이 m 을 사인한 것을 부인한다면 그것이

거짓임을 증명할 수 있다 . -

Page 55: Chapter 8 네트워크 보안

부인 봉쇄 (non-repudiation)

Alice 는 Bob 으로부터 주식 100 주를 주문했다 .

Alice 는 대칭키로 MAC 을 계산했다 . 그런데 주식값이 떨어지자 , Alice 는 자신이

주문한 것을 부인했다 . Bob 은 Alice 가 주문한 것을 증명할 수 있을까 ?No! Bob역시 대칭키를 알고 있기 때문에

주문을 조작할 수 있다 . 문제 : Bob 은 Alice 가 주문한 것을 알고 있다 .

하지만 그것을 증명할 수 없다 .55

Page 56: Chapter 8 네트워크 보안

부인 봉쇄 (Non-repudiation)

Alice 는 Bob 으로부터 주식 100 주를 주문했다 .

Alice 는 자신의 개인키로 주문에 서명을 했다 . 그런데 주식값이 떨어지자 , Alice 는 자신이

주문한 것을 부인했다 . Bob 은 Alice 가 주문한 것을 증명할 수 있을까 ?Yes! Alice 의 개인키를 갖고 있는 사람 만이

주문에 서명을 할 수 있다 .물론 Alice 의 개인키가 도난당하지 않았다는

가정을 해야 한다 .( 키 폐기 문제 )56

Page 57: Chapter 8 네트워크 보안

57

공개키 인증

동기 : Bob 의 공개키라고 하는데 진짜 Bob의 공개키인지 어떻게 믿을 수 있는가 ? Trudy 는 Bob 의 이름으로 피자를 주문 : Trudy 는 자신의 개인키로 주문서를 서명한다 . Trudy 는 피자 가게에 주문서를 전달한다 . Trudy 는 피자 가게에 자신의 공개키를 주면서

Bob 의 공개키라고 알려준다 . 피자 가게는 서명을 증명하고 피자는 Bob 이

주문한 것으로 믿는다 .

Page 58: Chapter 8 네트워크 보안

58

인증 기관 (Certification Authoritie) 인증 기관 (CA): 특정 개체의 공개키가 사실인 것을

증명한다 . E (person, router) 는 CA 에 자신의 공개키를

등록한다 . E 는 CA 에 자신을 증명한다 . CA 는 E 와 E 의 공개키를 결합하는 인증서를 만든다 . 인증서는 CA 의 개인키로 암호화한다 . 만약 CA 를 신뢰할 수 있다면 E 의 공개키를 믿을 수 있다 .

Bob’s public

key K B+

Bob’s identifying informatio

n

digitalsignature(encrypt)

CA private

key K CA-

K B+

certificate for Bob’s public

key, signed by CA

Page 59: Chapter 8 네트워크 보안

59

인증 기관 Alice 가 Bob 의 공개키를 원하다면 :

Bob 의 인증서를 구한다 . Bob 의 인증서에 CA 의 공개키로 복호화하여

Bob 의 공개키를 구한다 .

Bob’s public

key K B+

digitalsignature(decrypt)

CA public

key K CA+

K B+

Page 60: Chapter 8 네트워크 보안

60

인증서

표준 : X.509 (RFC 2459) 인증서는 다음을 포함한다 .

발행자 이름 개체 이름 , 주소 , 도메인 이름 등 . 개체의 공개키 전자 서명 ( 발행자의 개인키로 서명 )

공개키 구조 (PKI) 인증서와 인증 기관의 구조를 보여 준다 .

Page 61: Chapter 8 네트워크 보안

X.509 인증서 예 (1)

다음 그림은 www.freesoft.org 의 공개키를 인증하는 인증서이다 .

인증 기관은 Thwate Thwate 는 인증서를 인증하기 위해서

인증서의 마지막 부분에 자신의 개인키로 sign 을 하였다 (signature).

이 인증서를 받는 사람은 Thwate 의 공개키로 인증서의 마지막 부분의 signature를 확인할 수 있다 .

Page 62: Chapter 8 네트워크 보안
Page 63: Chapter 8 네트워크 보안

X.509 인증서 예 (2)

그러면 , 사용자는 Thwate 의 공개키를 어떻게 알 수 있는가 ?

Thwate 는 자신의 공개키를 자신의 개인키로 서명한 인증서를 통해서 사용자에게 알려준다 .

다음 그림은 Thwate 가 자신의 공개키를 알려주는 인증서이다 .

Page 64: Chapter 8 네트워크 보안
Page 65: Chapter 8 네트워크 보안

X.509 인증서 예 (3)

그러면 이 인증서를 받은 사용자는 Thwate가 신뢰할 수 있는 인증 기관인지 어떻게 확신할 수 있는가 ?

신뢰할 수 있는 기관의 Root certificate 는 브라우저에 사전에 설치되어 있다 . 이러한 인증 기관들은 브라우저에 사전에 설치될

수 있는 특권을 사게 된다 .