41
1 Chap 5. Chap 5. 인인인 인인인 인인 인인인 인인인 인인

Chap 5. 인증과 디지털 서명

  • Upload
    gavril

  • View
    40

  • Download
    0

Embed Size (px)

DESCRIPTION

Chap 5. 인증과 디지털 서명. 목 차. 1. 인증 요구 조건 2. 인증 함수 3. 암호학적 점검값 4. 해쉬 함수 5. 디지털 서명 6. 인증 프로토콜. 1. 인증 요구 조건. 네트워크를 이용한 통신하에서의 공격 형태 1. 노출 (disclosure) : 암호키 가지고 있지 않은 사람에게 메시지 내용이 노출 2. 트래픽 분석 (traffic analysis) : 통신 주체 사이의 어떤 트래픽 형태를 발견 3. 위장 (masquerade) - PowerPoint PPT Presentation

Citation preview

Page 1: Chap 5.  인증과 디지털 서명

1

Chap 5. Chap 5. 인증과 디지털 서명인증과 디지털 서명

Page 2: Chap 5.  인증과 디지털 서명

2

목 차목 차1. 1. 인증 요구 조건인증 요구 조건

2. 2. 인증 함수인증 함수

3. 3. 암호학적 점검값암호학적 점검값

4. 4. 해쉬 함수해쉬 함수

5. 5. 디지털 서명디지털 서명

6. 6. 인증 프로토콜인증 프로토콜

Page 3: Chap 5.  인증과 디지털 서명

3

1. 1. 인증 요구 조건인증 요구 조건 네트워크를 이용한 통신하에서의 공격 형태

1. 노출 (disclosure) : 암호키 가지고 있지 않은 사람에게 메시지 내용이 노출2. 트래픽 분석 (traffic analysis) : 통신 주체 사이의 어떤 트래픽 형태를 발견

3. 위장 (masquerade) : 부정한 출처로부터 네트워크에 메시지 삽입4. 내용 수정 (content modification) : 삽입 , 삭제 , 전치 , 수정을 포함한 메시지 내용의 변경5. 순서 수정 (sequence modification) : 통신 상대방간의 메시지들의 순서 수정6. 시간 수정 (timing modification) : 메시지의 지연과 재전송

7. 부인 (repudiation) : 메시지의 송신이나 수신 부인

메시

지 기

밀성

메시

지 인

증디

지털

Page 4: Chap 5.  인증과 디지털 서명

4

2. 2. 인증 함수인증 함수 메시지 인증 , 디지털 서명 메커니즘

기본적으로 두 개의 단계로 고찰

하위 단계 인증자 (authenticator) 생성 함수 필요 --- 하위 함수

상위 단계 하위 함수 : 수신자가 메시지의 확실 증명하기 위해 사용

하위 함수 메시지 암호화 (message encryption) 암호학적 점검값 (cryptographic checksum) 해쉬 함수 (hash function)

Page 5: Chap 5.  인증과 디지털 서명

5

메시지 암호화메시지 암호화 메시지 전체의 암호문이 인증자로 작용 메시지 암호화 자체에 의해 인증 수단 제공 가능

관용 암호 방식 공개키 암호 방식

관용 암호 방식

M E D M

K K

EK(M)

송신자 수신자

Page 6: Chap 5.  인증과 디지털 서명

6

관용 암호 방식 기밀성 및 인증 기능 제공

전송되는 메시지는 공유 비밀키 K 에 의해 암호화

비밀키 K 를 소유한 사람만이 복호화

∴ 기밀성 제공

수신자는 메시지 M 이 송신자에 의해 만들어졌음을 확인 K 에 의해서만 복구될 수 있으므로

문제점 복호문이 정당한 평문인지의 여부를 결정할 자동화된 방법이

필요 ==> 해결책 : FCS(Frame Check Sequence, 점검값 ) 코드

추가

Page 7: Chap 5.  인증과 디지털 서명

7

관용 암호 방식

M || M

F(M)

E D M

F(M)

F

F

K KEK [M || F(M)]

비교

(a) 내부 에러 제어

송신자 수신자

M E

F

||

F

D M

KK

비교

EK(M) EK(M)

F[EK(M)]

(b) 외부 에러 제어

Page 8: Chap 5.  인증과 디지털 서명

8

공개키 암호 방식 (1) 단순 공개키 암호 사용 : 기밀성만 제공

송신자는 암호화를 위해 수신자의 공개키를 사용

오직 수신자만이 개인키를 이용 복호화 가능

인증을 제공하지 못함

M E D

KUbKRb

EKUb(M)송신자 (a) 수신자 (b)

M

Page 9: Chap 5.  인증과 디지털 서명

9

공개키 암호 방식 (2)

인증 및 서명 기능 제공 방식

송신자의 개인키로 암호화

KRa 로 복호화 될 수 있는 암호문은 송신자만이 생성 가능

기밀성을 제공하지는 않음

즉 , 누구나 암호문을 복호화 할 수 있다 .

M E D

KRa KUa

EKRb(M)송신자 (a) 수신자 (b)

M

Page 10: Chap 5.  인증과 디지털 서명

10

공개키 암호 방식 (3)

기밀성 , 인증 및 서명

디지털 서명과 인증을 제공하기 위해 송신자의 개인키로 메시지 암호화

기밀성을 제공하기 위해 수신자의 공개키로 암호화

M E

KRa

E

KUb

D D M

KUaKRb

EKRa(M) EKUb

[EKRa(M)] EKRa

(M)

Page 11: Chap 5.  인증과 디지털 서명

11

3. 3. 암호학적 점검값암호학적 점검값 메시지에 추가 암호학적 점검값 또는 메시지 인증 코드 (MAC)

MAC(Message Authentication Codes), DAC(Data Authentication Codes)

key-dependent one-way hash function

MAC = CMAC = CKK(M)(M)

M : 가변 길이 메시지 K : 송신자와 수신자의 공유키 CK(M) : 고정 길이의 인증자

비밀키를 공유한 사람만이 메시지의 생성과 인증이 가능 MAC 자체는 메시지 기밀성이나 서명 기능을 제공하지 않음

Page 12: Chap 5.  인증과 디지털 서명

12

암호학적 점검값의 기본 사용 예암호학적 점검값의 기본 사용 예

M || E D M C

C

K1

K1

K2 K2

CK1(M)

EK2[M || CK1

(M)]

비교

Page 13: Chap 5.  인증과 디지털 서명

13

요구 조건 공격자가 CK (M’)=CK (M) 인 M’ 을 구성한다는 것이

계산적으로 어려움 즉 , 키를 알지 못하면서 MAC 과 일치하는 새로운 메시지를

만들 수 없어야 한다 .

CK(M) 은 일정하게 분산되어 있어야 한다 .

즉 , n 이 점검값에서 비트의 수 일때 CK(M)=CK(M’) 일 확률은 2-

n

메시지의 어떤 부분이나 특정 비트들에 관해서 특별히

취약해서는 안된다 .

그런 경우가 아니라면 , 공격자가 “취약지점”에서 M 의 변형을

시도 가능

Page 14: Chap 5.  인증과 디지털 서명

14

4. 4. 해쉬함수해쉬함수 (Hash function)(Hash function) 메시지 인증 코드에 대한 변형

메시지의 모든 비트들에 대한 함수 즉 , 쇄도 효과가 크다 .

정의

임의의 길이임의의 길이 (M)(M) 를 취해서 정해진 크기정해진 크기 (h)(h) 의 Message Digest 를

만드는 one-way function(H)one-way function(H)

디지털서명 , 인증 , 무결성 , 부인 봉쇄 등의 서비스 제공

h = H(M)h = H(M)MessageMessage Message DigestMessage Digest(Fixed Length)

Page 15: Chap 5.  인증과 디지털 서명

15

요구 조건

어떤 크기의 메시지 M 에도 적용 가능

H 는 고정된 크기의 hash code 를 만듦

H(M) 은 어떤 주어진 M 에 대해서도 계산하는 것이 쉽다 .

주어진 hash code h 에 대해 , H(M) = h 인 M 을 찾는 것이 계산적으로 실행불가능 (one-way)

H(M’) = H(M) 인 어떤 (M, M’) 쌍을 찾는 것이

계산적으로 실행 불가능 (collision-free)

Page 16: Chap 5.  인증과 디지털 서명

16

해쉬 함수의 사용

M

E D

개인키 (KRa)공개키 (KUa)

EKRa(H(M))

송신자 (a) 수신자 (b)

E’

EK[M || EKRa(H(M))]

M

EKRa(H(M))

D’

키 (K) 키 (K)

개방통신로

||

H

H

비교

Page 17: Chap 5.  인증과 디지털 서명

17

단순 해쉬 함수

모든 블록의 비트 단위 배타적 -OR(XOR)

가장 단순한 해쉬 함수들 중의 하나

Ci=bi1bi2 . . . bim

여기서 ,

Ci = 해쉬 코드의 i 번째 비트

m = 입력에서 n- 비트 블록 수

bij = j 번째 블록의 i 번째 비트

= XOR 동장

Page 18: Chap 5.  인증과 디지털 서명

18

Snefru 목적 : 32 비트 프로세서에서 구현을 용이하게 하자 .

출력 : 128 비트 또는 256 비트 해쉬 입력 : 512 비트 메시지 블럭 패딩 : 패딩은 (512 의 배수 ) 가 될 때까지 한다 .

블럭 : 출력이 128 비트일 경우 : 384 비트씩 블럭을 나눔

(128+384=512)

출력이 256 비트일 경우 : 256 비트씩 블럭을 나눔

(256+256=512)

구성 : 2pass 로 구성되어 있음

Page 19: Chap 5.  인증과 디지털 서명

19

Snefru Snefru

512bit Function H

Function E512 (S-box)

qn(128bit or 256bit)

mn(message)(384bit or 256bit)

+

qn-1(128bit or 256bit)

Page 20: Chap 5.  인증과 디지털 서명

20

5. 5. 디지털 서명디지털 서명 배경

1) 종이 문서 사회에서 정보화 사회로의 진전으로 다양한

서비스 요구

2) 데이타 무결성 및 사용자 인증 서비스가 필수적

정의 개인의 고유성을 주장하고 인정 받기 위해서 전자적 문서에

서명하는 방법

목적 신뢰성 확보 ( 내용의 위 · 변조 및 신분 확인에 사용 )

Page 21: Chap 5.  인증과 디지털 서명

21

적용 예 전자식 자금 전달의 경우

수신자 : 1. 전달된 자금의 양을 증가

2. 송신자로부터 해당 금액이 왔다고 주장

주식 매매 요청의 경우 송신자 : 1. 단말기를 통해 주식 매매 요청

2. 주식 값이 하락

3. 자신이 요청을 한 적이 없다고 주장

송신자와 수신자의 완벽한 신뢰가 없는 상황에서 인증 이상의 어떤 것이 필요

송신자와 수신자의 완벽한 신뢰가 없는 상황에서 인증 이상의 어떤 것이 필요 디지털 서명디지털 서명

Page 22: Chap 5.  인증과 디지털 서명

위조불가 (Unforgeable)

: 서명자만이 서명문을 생성 가능

서명자 인증 (Authentic)

: 서명문의 서명자를 확인 가능

재사용 불가 (Not Reusable) : 서명문의 서명은 다른 문서의 서명으로 사용 불가능

변경 불가 (Unalterable) : 서명된 문서의 내용 변경 불가능

부인 불가 (Nonrepudiation)

: 서명자는 후에 서명한 사실을 부인 불가능

전자서명 특징

Page 23: Chap 5.  인증과 디지털 서명

23

서명은 메시지에 의존하는 비트 형태이어야 한다 .

위조와 부인 방지 위해 , 송신자의 유일한 정보 비트를 이용해야 함

서명문을 만들기가 쉬워야 한다 .

서명문을 인식 , 확인 하기가 쉬워야 한다 .

서명문을 위조하는 것이 계산적으로 실행 불가능

기억장소에 서명문의 복사본을 유지하는 것이 실용적이어야 한다 .

전자서명 요구 조건전자서명 요구 조건

Page 24: Chap 5.  인증과 디지털 서명

24

직접적 디지털 서명직접적 디지털 서명 오직 통신하는 상대방 ( 출신 , 목적지 ) 만을 포함

직접적 디지털 서명 방식 송신자의 개인키를 가지고 전체 메시지를 암호화 송신자의 개인키를 가지고 메시지의 해쉬 코드를 암호화

기밀성을 위해 수신자의 공개키 또는 공유 비밀키를 가지고 서명된 메시지를 암호화

단점 구조의 정당성은 송신자의 개인키에 달려 있음 송신자가 개인키를 분실 , 도난 당했다고 주장이 가능

Page 25: Chap 5.  인증과 디지털 서명

25

중재된 디지털 서명 기법중재된 디지털 서명 기법 관용 암호 방식 (1)

중재자에게 메시지 노출 Alice 와 Carol 간에 비밀키 공유 : KCA

Carol 과 Bob 간에 비밀키 공유 : KCB

1. M || EKCA[IDA || H(M)]

2. Verification

3.EKCB[IDA || M || EKCA

[IDA || H(M) || T]

Alice Bob

Carol

Page 26: Chap 5.  인증과 디지털 서명

26

관용 암호 방식 (1)

Bob 은 Alice 의 서명을 직접 검사할 수 없다 .

서명은 분쟁 해결을 위해 존재

Alice 와 Bob 은 Carol 에게 높은 신뢰를 가지고 있어야 한다 .

Carol 이 KCA 를 노출 시키지 않는다 .

EKCA[IDA || H(M)] 형태의 거짓 서명을 만들지 않는다 .

Bob 은 서명이 A 에 의해서만 만들어졌을 때만 ,

EKCB[IDA || M || EKCA

[IDA || H(M) || T] 를 보낸다는 것을 신뢰

Page 27: Chap 5.  인증과 디지털 서명

27

중재된 디지털 서명 기법중재된 디지털 서명 기법 관용 암호 방식 (2)

메시지 비밀 유지 Alice 와 Bob 이 비밀키를 공유 : KAB

1. IDA || EKAB[M] || EKAC

[IDA || H(EKAB[M])]

2. Verification

3.EKCB[IDA || EKAB

[M] || EKAC[IDA || H(EKAB

[M]), T]

Alice Bob

Carol

Page 28: Chap 5.  인증과 디지털 서명

28

관용 암호 방식 (2)

장점

Carol 은 메시지 내용을 읽을 수 없다 .

Carol 은 Alice 와 Bob 의 부정을 막을 수 있다 .

단점

Carol 은 Alice 와 함께 서명된 메시지를 부인할 수 있다 .

Carol 은 Bob 과 함께 Alice 의 서명을 위조할 수 있다 .

Page 29: Chap 5.  인증과 디지털 서명

29

중재된 디지털 서명 기법중재된 디지털 서명 기법 공개키 암호 방식

메시지 비밀 유지 관용 암호 방식에서 발생할 수 있는 문제점 해결 가능

1. IDA || EKRA[ IDA || EKUB

(EKRA[M])]

2. Verification

3.EKRC[IDA || EKUB

(EKRA[M])], T]

Alice Bob

Carol

Page 30: Chap 5.  인증과 디지털 서명

30

공개키 암호 방식 장점

통신 전에 통신의 상대자간에 공유해야 할 정보가 없다 .

KRx가 노출되었다고 할지라도 KRC

가 노출되지 않았으면 부정확한

날짜가 매겨진 메시지가 보내질 수 없다 .

Alice 로부터 Bob 에게 온 메시지의 내용은 Carol 과 다른 모든

사람들에게 있어서 비밀이다 .

Page 31: Chap 5.  인증과 디지털 서명

31

6. 6. 인증 프로토콜인증 프로토콜 상호 인증 프로토콜

통신 상대방들간의 신분확인

세션키 교환

인증된 키 교환 문제의 두 가지 문제점

기밀성 (confidentiality)

적시성 (timeliness)

초점 : 키 분배초점 : 키 분배

Page 32: Chap 5.  인증과 디지털 서명

32

인증된 키 교환 문제의 두 가지 문제점 기밀성 (confidentiality)

신분 위장 방지 : 신원 증명이 필요 세션키의 손상 방지 : 암호화 형태로 통신되어야 함

적시성 (timeliness) 메시지 재전송의 위협 방지

메시지 재전송

공격자가 세션키를 손상

다른 상대방을 흉내

Page 33: Chap 5.  인증과 디지털 서명

33

재전송 공격의 예

단순 재전송 메시지를 복사 , 후에 재전송

시간 범위 내에서 재전송 유효한 시간 윈도우내에서 타임 스탬프가 있는 메시지

재전송

발견될 수 없는 재전송 원본 메시지의 사용의 정지 , 오직 재전송 메시지만 도착

수정없이 역방향 재전송 메시지 송신자에 대한 재전송 반환 관용 암호 방식이 사용되고 송신자가 보낸 메시지들과 받은

메시지들의 내용적 차이를 알 수 없을 때 가능

Page 34: Chap 5.  인증과 디지털 서명

34

재전송 공격에 대항하기 위한 접근 방법 각 메시지에 대한 일련 번호 부여 일련 번호가 적절한 일련 번호일 경우에만 수신 단점

마지막 메시지의 일련 번호 유지 요구

일반적인 접근 방법 타임 스탬프 (Timestamp)

다양한 참가자들 사이에 동기화된 시계를 요구

신청 / 응답 (Challenge/Response) Alice 는 Bob 에게 challenge 값을 전송 Bob 이 보낸 메시지에 challenge 값이 포함되어 있는지 검사

∴ 인증과 키 교환에 일반적으로 사용하지 않음∴ 인증과 키 교환에 일반적으로 사용하지 않음

Page 35: Chap 5.  인증과 디지털 서명

35

관용 암호 방식관용 암호 방식 분산환경에서 통신을 위한 기밀성 제공을 위해 사용

신뢰되는 키 분배 센터 (Key Distribution Center) 이용

각 통신 주체는 마스터키로 불리는 비밀키를 KDC 와 공유

KDC 는 일정한 세션 동안에 사용되는 세션키를 생성

키 전달

마스터 키를 이용하여 세션키를 할당

Page 36: Chap 5.  인증과 디지털 서명

36

관용 암호 방식 예관용 암호 방식 예 Needham - Schnoeder 방식

1. IDA || IDB || N1

Alice Bob

KDC

2. EKA[KS || IDB || N1 || EKB

[KS || IDA]]

3. EKB[KS || IDA]

4. EKS[N2]

5. EKS[f(N2)]

• 재전송 공격에 대해 여전히 취약

Denning 방식 제안 Denning 방식 제안

Page 37: Chap 5.  인증과 디지털 서명

37

관용 암호 방식 예관용 암호 방식 예 Denning 은 단계 2 와 3 에 timestamp 를 추가 가정

마스터 키 KA 와 KB 가 안전하다 .

1. IDA || IDB

Alice Bob

KDC

2. EKA[KS || IDB || T || EKB

[KS || IDA || T]]

3. EKB[KS || IDA || T]

4. EKS[N1]

5. EKS[f(N1)]

Page 38: Chap 5.  인증과 디지털 서명

38

공개키 암호 방식 공개키 암호 방식 세션키 분배의 목적 (4 장 참조 --- 공개키 암호화의 이용을 위한 연구

방법 )

가정 통신 상대방이 각각의 상대의 공개키를 가지고 있다 .

타임 스템프를 사용하는 방식 --- 동기화를 요구

1. IDA || IDB

Alice Bob

AS

2. EKRAS[IDA || KUA || T] || EKRAS

[IDB || KUB || T]

EKRAS[IDA || KUA || T] || EKRAS

[IDB || KUB || T]

|| EKUB[EKRA

[KS || T]]

Page 39: Chap 5.  인증과 디지털 서명

39

공개키 암호 방식 예공개키 암호 방식 예 Nonce 를 이용하는 방법

1. IDA || IDB

Alice Bob

KDC

2. EKRAuth[IDB || KUB]

3. KUB[NA || IDA]

4. IDA || IDB || EKUAuth[NA]

5. EKRAuth[IDA || KUA] ||

EKUB[NA || KS || IDA || IDB]]

6. EKUA[EKRAuth

[NA || KS || IDA || IDB] || NB ]

7. EKS[NB]

Page 40: Chap 5.  인증과 디지털 서명

40

수신자는 메시지가 합법적 송신자로부터 왔다는 보장을 요구 관용 암호 방식

Alice Bob

KDC

1. IDA || IDB || N1

2. EKA[KS || IDB || N1 || EKB

[KS || IDA]]

3. EKB[KS, IDA] || EKS

(M)

• 메시지의 의도된 수신자만이 해당 메시지를 읽을 수 있다는 것을 보증• 메시지 재전송 공격에 취약

일방향 인증

Page 41: Chap 5.  인증과 디지털 서명

41

공개키 암호 방식 기밀성 , 인증 그리고 기밀성과 인증을 위한 공개키 암호화

방법 제시 (TP page 7~9) 개선 방안

기밀성

인증

A B : EKUB(KS) || EKS

(M)A B : EKUB(KS) || EKS

(M)

A B : M || EKRA(H(M))A B : M || EKRA

(H(M))

A B : EKUB(M || EKRA

(H(M)))A B : EKUB(M || EKRA

(H(M)))

A B : M || EKRA[H(M)] || EKRAS

(T || IDA || KUB)A B : M || EKRA[H(M)] || EKRAS

(T || IDA || KUB)