1 / 41

Chap 5. 인증과 디지털 서명

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

gavril
Télécharger la présentation

Chap 5. 인증과 디지털 서명

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. 목 차 1. 인증 요구 조건 2. 인증 함수 3. 암호학적 점검값 4. 해쉬 함수 5. 디지털 서명 6. 인증 프로토콜

  3. 1. 인증 요구 조건 • 네트워크를 이용한 통신하에서의 공격 형태 1. 노출(disclosure) : 암호키 가지고 있지 않은 사람에게 메시지 내용이 노출 2. 트래픽 분석(traffic analysis) : 통신 주체 사이의 어떤 트래픽 형태를 발견 3. 위장(masquerade) : 부정한 출처로부터 네트워크에 메시지 삽입 4. 내용 수정(content modification) : 삽입, 삭제, 전치, 수정을 포함한 메시지 내용의 변경 5. 순서 수정(sequence modification) : 통신 상대방간의 메시지들의 순서 수정 6. 시간 수정(timing modification) : 메시지의 지연과 재전송 7. 부인(repudiation) : 메시지의 송신이나 수신 부인 메시지 기밀성 메시지 인증 디지털 서명

  4. 2. 인증 함수 • 메시지 인증, 디지털 서명 메커니즘 • 기본적으로 두 개의 단계로 고찰 • 하위 단계 • 인증자(authenticator) 생성 함수 필요 --- 하위 함수 • 상위 단계 • 하위 함수 : 수신자가 메시지의 확실 증명하기 위해 사용 • 하위 함수 • 메시지 암호화(message encryption) • 암호학적 점검값(cryptographic checksum) • 해쉬 함수(hash function)

  5. 메시지 암호화 • 메시지 전체의 암호문이 인증자로 작용 • 메시지 암호화 자체에 의해 인증 수단 제공 가능 • 관용 암호 방식 • 공개키 암호 방식 • 관용 암호 방식 K K M E D M EK(M) 송신자 수신자

  6. 관용 암호 방식 • 기밀성 및 인증 기능 제공 • 전송되는 메시지는 공유 비밀키 K에 의해 암호화 • 비밀키 K를 소유한 사람만이 복호화 ∴ 기밀성 제공 • 수신자는 메시지 M이 송신자에 의해 만들어졌음을 확인 • K에 의해서만 복구될 수 있으므로 • 문제점 • 복호문이 정당한 평문인지의 여부를 결정할 자동화된 방법이 필요 ==> 해결책 : FCS(Frame Check Sequence, 점검값) 코드 추가

  7. 관용 암호 방식 송신자 수신자 M || M M F E D F(M) F(M) EK [M || F(M)] F K K 비교 (a) 내부 에러 제어 K K EK(M) EK(M) M M D || E F 비교 F F[EK(M)] (b) 외부 에러 제어

  8. 공개키 암호 방식(1) • 단순 공개키 암호 사용 : 기밀성만 제공 • 송신자는 암호화를 위해 수신자의 공개키를 사용 • 오직 수신자만이 개인키를 이용 복호화 가능 • 인증을 제공하지 못함 KRb KUb E D M M 송신자(a) EKUb(M) 수신자(b)

  9. 공개키 암호 방식(2) • 인증 및 서명 기능 제공 방식 • 송신자의 개인키로 암호화 • KRa로 복호화 될 수 있는 암호문은 송신자만이 생성 가능 • 기밀성을 제공하지는 않음 • 즉, 누구나 암호문을 복호화 할 수 있다. KRa KUa E D M M 송신자(a) EKRb(M) 수신자(b)

  10. 공개키 암호 방식(3) • 기밀성, 인증 및 서명 • 디지털 서명과 인증을 제공하기 위해 • 송신자의 개인키로 메시지 암호화 • 기밀성을 제공하기 위해 • 수신자의 공개키로 암호화 KRa KUb KRb KUa M M E E D D EKRa(M) EKUb[EKRa(M)] EKRa(M)

  11. 3. 암호학적 점검값 • 메시지에 추가 • 암호학적 점검값 또는 메시지 인증 코드(MAC) • MAC(Message Authentication Codes), DAC(Data Authentication Codes) • key-dependent one-way hash function MAC = CK(M) • M : 가변 길이 메시지 • K : 송신자와 수신자의 공유키 • CK(M) : 고정 길이의 인증자 • 비밀키를 공유한 사람만이 메시지의 생성과 인증이 가능 • MAC 자체는 메시지 기밀성이나 서명 기능을 제공하지 않음

  12. 암호학적 점검값의 기본 사용 예 K1 EK2[M || CK1(M)] M M C || E D 비교 C K2 K2 CK1(M) K1

  13. 요구 조건 • 공격자가 CK (M’)=CK (M)인 M’을 구성한다는 것이 계산적으로 어려움 • 즉, 키를 알지 못하면서 MAC과 일치하는 새로운 메시지를 만들 수 없어야 한다. • CK(M)은 일정하게 분산되어 있어야 한다. • 즉, n이 점검값에서 비트의 수 일때 CK(M)=CK(M’)일 확률은 2-n • 메시지의 어떤 부분이나 특정 비트들에 관해서 특별히 취약해서는 안된다. • 그런 경우가 아니라면, 공격자가 “취약지점”에서 M의 변형을 시도 가능

  14. Message • h = H(M) Message Digest (Fixed Length) 4. 해쉬함수(Hash function) • 메시지 인증 코드에 대한 변형 • 메시지의 모든 비트들에 대한 함수 • 즉, 쇄도 효과가 크다. • 정의 • 임의의 길이(M)를 취해서 정해진 크기(h)의 Message Digest를 만드는 one-way function(H) • 디지털서명, 인증, 무결성, 부인 봉쇄 등의 서비스 제공

  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)

  16. 해쉬 함수의 사용 개방통신로 키(K) 키(K) EKRa(H(M)) M H M || E’ D’ EK[M || EKRa(H(M))] 비교 H E D EKRa(H(M)) 공개키(KUa) 개인키(KRa) 송신자(a) 수신자(b)

  17. 단순 해쉬 함수 • 모든 블록의 비트 단위 배타적-OR(XOR) • 가장 단순한 해쉬 함수들 중의 하나 Ci=bi1bi2  . . . bim • 여기서, • Ci = 해쉬 코드의 i 번째 비트 • m = 입력에서 n-비트 블록 수 • bij = j 번째 블록의 i 번째 비트 •  = XOR 동장

  18. Snefru • 목적 : 32비트 프로세서에서 구현을 용이하게 하자. • 출력 : 128비트 또는 256비트 해쉬 • 입력 : 512비트 메시지 블럭 • 패딩 : 패딩은 (512의 배수)가 될 때까지 한다. • 블럭 : 출력이 128비트일 경우 : 384비트씩 블럭을 나눔 (128+384=512) 출력이 256비트일 경우 : 256비트씩 블럭을 나눔 (256+256=512) • 구성 : 2pass로 구성되어 있음

  19. qn-1(128bit or 256bit) mn(message) (384bit or 256bit) + 512bit Function H Function E512 (S-box) qn(128bit or 256bit) Snefru

  20. 5. 디지털 서명 • 배경 1) 종이 문서 사회에서 정보화 사회로의 진전으로 다양한 서비스 요구 2) 데이타 무결성 및 사용자 인증 서비스가 필수적 • 정의 • 개인의 고유성을 주장하고 인정 받기 위해서 전자적 문서에 서명하는 방법 • 목적 • 신뢰성 확보 ( 내용의 위·변조 및 신분 확인에 사용)

  21. 적용 예 • 전자식 자금 전달의 경우 • 수신자 : 1. 전달된 자금의 양을 증가 2. 송신자로부터 해당 금액이 왔다고 주장 • 주식 매매 요청의 경우 • 송신자 : 1. 단말기를 통해 주식 매매 요청 2. 주식 값이 하락 3. 자신이 요청을 한 적이 없다고 주장 송신자와 수신자의 완벽한 신뢰가 없는 상황에서 인증 이상의 어떤 것이 필요 디지털 서명

  22. 전자서명 특징 • 위조불가(Unforgeable) • : 서명자만이 서명문을 생성 가능 • 서명자 인증(Authentic) • : 서명문의 서명자를 확인 가능 • 재사용 불가(Not Reusable) • : 서명문의 서명은 다른 문서의 서명으로 사용 불가능 • 변경 불가(Unalterable) • : 서명된 문서의 내용 변경 불가능 • 부인 불가(Nonrepudiation) • : 서명자는 후에 서명한 사실을 부인 불가능

  23. 전자서명 요구 조건 • 서명은 메시지에 의존하는 비트 형태이어야 한다. • 위조와 부인 방지 위해, 송신자의 유일한 정보 비트를 이용해야 함 • 서명문을 만들기가 쉬워야 한다. • 서명문을 인식, 확인 하기가 쉬워야 한다. • 서명문을 위조하는 것이 계산적으로 실행 불가능 • 기억장소에 서명문의 복사본을 유지하는 것이 실용적이어야 한다.

  24. 직접적 디지털 서명 • 오직 통신하는 상대방(출신, 목적지)만을 포함 • 직접적 디지털 서명 방식 • 송신자의 개인키를 가지고 전체 메시지를 암호화 • 송신자의 개인키를 가지고 메시지의 해쉬 코드를 암호화 • 기밀성을 위해 • 수신자의 공개키 또는 공유 비밀키를 가지고 서명된 메시지를 암호화 • 단점 • 구조의 정당성은 송신자의 개인키에 달려 있음 • 송신자가 개인키를 분실, 도난 당했다고 주장이 가능

  25. 중재된 디지털 서명 기법 • 관용 암호 방식(1) • 중재자에게 메시지 노출 • Alice와 Carol 간에 비밀키 공유 : KCA • Carol과 Bob 간에 비밀키 공유 : KCB 2. Verification Carol 1. M || EKCA[IDA || H(M)] 3.EKCB[IDA || M || EKCA[IDA || H(M) || T] Bob Alice

  26. 관용 암호 방식(1) • Bob은 Alice의 서명을 직접 검사할 수 없다. • 서명은 분쟁 해결을 위해 존재 • Alice와 Bob은 Carol에게 높은 신뢰를 가지고 있어야 한다. • Carol이 KCA를 노출 시키지 않는다. • EKCA[IDA || H(M)] 형태의 거짓 서명을 만들지 않는다. • Bob은 서명이 A에 의해서만 만들어졌을 때만, • EKCB[IDA || M || EKCA[IDA || H(M) || T]를 보낸다는 것을 신뢰

  27. 중재된 디지털 서명 기법 • 관용 암호 방식(2) • 메시지 비밀 유지 • Alice와 Bob이 비밀키를 공유 : KAB 2. Verification Carol 1. IDA || EKAB[M] || EKAC[IDA || H(EKAB[M])] 3.EKCB[IDA || EKAB[M] || EKAC[IDA || H(EKAB[M]), T] Bob Alice

  28. 관용 암호 방식(2) • 장점 • Carol은 메시지 내용을 읽을 수 없다. • Carol은 Alice와 Bob의 부정을 막을 수 있다. • 단점 • Carol은 Alice와 함께 서명된 메시지를 부인할 수 있다. • Carol은 Bob과 함께 Alice의 서명을 위조할 수 있다.

  29. 중재된 디지털 서명 기법 • 공개키 암호 방식 • 메시지 비밀 유지 • 관용 암호 방식에서 발생할 수 있는 문제점 해결 가능 2. Verification Carol 1. IDA || EKRA[ IDA || EKUB(EKRA[M])] 3.EKRC[IDA || EKUB(EKRA[M])], T] Bob Alice

  30. 공개키 암호 방식 • 장점 • 통신 전에 통신의 상대자간에 공유해야 할 정보가 없다. • KRx가 노출되었다고 할지라도 KRC가 노출되지 않았으면 부정확한 날짜가 매겨진 메시지가 보내질 수 없다. • Alice로부터 Bob에게 온 메시지의 내용은 Carol과 다른 모든 사람들에게 있어서 비밀이다.

  31. 6. 인증 프로토콜 • 상호 인증 프로토콜 • 통신 상대방들간의 신분확인 • 세션키 교환 • 인증된 키 교환 문제의 두 가지 문제점 • 기밀성(confidentiality) • 적시성(timeliness) 초점 : 키 분배

  32. 인증된 키 교환 문제의 두 가지 문제점 • 기밀성(confidentiality) • 신분 위장 방지 : 신원 증명이 필요 • 세션키의 손상 방지 : 암호화 형태로 통신되어야 함 • 적시성(timeliness) • 메시지 재전송의 위협 방지 • 메시지 재전송 • 공격자가 세션키를 손상 • 다른 상대방을 흉내

  33. 재전송 공격의 예 • 단순 재전송 • 메시지를 복사, 후에 재전송 • 시간 범위 내에서 재전송 • 유효한 시간 윈도우내에서 타임 스탬프가 있는 메시지 재전송 • 발견될 수 없는 재전송 • 원본 메시지의 사용의 정지, 오직 재전송 메시지만 도착 • 수정없이 역방향 재전송 • 메시지 송신자에 대한 재전송 반환 • 관용 암호 방식이 사용되고 송신자가 보낸 메시지들과 받은 메시지들의 내용적 차이를 알 수 없을 때 가능

  34. 재전송 공격에 대항하기 위한 접근 방법 • 각 메시지에 대한 일련 번호 부여 • 일련 번호가 적절한 일련 번호일 경우에만 수신 • 단점 • 마지막 메시지의 일련 번호 유지 요구 • 일반적인 접근 방법 • 타임 스탬프(Timestamp) • 다양한 참가자들 사이에 동기화된 시계를 요구 • 신청/응답(Challenge/Response) • Alice는 Bob에게 challenge값을 전송 • Bob이 보낸 메시지에 challenge값이 포함되어 있는지 검사 ∴인증과 키 교환에 일반적으로 사용하지 않음

  35. 관용 암호 방식 • 분산환경에서 통신을 위한 기밀성 제공을 위해 사용 • 신뢰되는 키 분배 센터(Key Distribution Center) 이용 • 각 통신 주체는 마스터키로 불리는 비밀키를 KDC와 공유 • KDC는 일정한 세션 동안에 사용되는 세션키를 생성 • 키 전달 • 마스터 키를 이용하여 세션키를 할당

  36. 관용 암호 방식 예 • Needham - Schnoeder 방식 1. IDA || IDB || N1 KDC 2. EKA[KS || IDB || N1 || EKB[KS || IDA]] 3. EKB[KS || IDA] 4. EKS[N2] 5. EKS[f(N2)] Alice Bob • 재전송 공격에 대해 여전히 취약 Denning 방식 제안

  37. 관용 암호 방식 예 • Denning은 단계 2와 3에 timestamp를 추가 • 가정 • 마스터 키 KA와 KB가 안전하다. 1. IDA || IDB KDC 2. EKA[KS || IDB || T || EKB[KS || IDA || T]] 3. EKB[KS || IDA || T] 4. EKS[N1] 5. EKS[f(N1)] Alice Bob

  38. 공개키 암호 방식 • 세션키 분배의 목적(4장 참조 --- 공개키 암호화의 이용을 위한 연구 방법) • 가정 • 통신 상대방이 각각의 상대의 공개키를 가지고 있다. • 타임 스템프를 사용하는 방식 --- 동기화를 요구 1. IDA || IDB AS 2. EKRAS[IDA || KUA || T] || EKRAS[IDB || KUB || T] EKRAS[IDA || KUA || T] || EKRAS[IDB || KUB || T] || EKUB[EKRA[KS || T]] Bob Alice

  39. 공개키 암호 방식 예 • Nonce를 이용하는 방법 5. EKRAuth[IDA || KUA] || EKUB[NA || KS || IDA || IDB]] 1. IDA || IDB KDC 2. EKRAuth[IDB || KUB] 4. IDA || IDB || EKUAuth[NA] 3. KUB[NA || IDA] 6. EKUA[EKRAuth[NA || KS || IDA || IDB] || NB ] 7. EKS[NB] Alice Bob

  40. 일방향 인증 • 수신자는 메시지가 합법적 송신자로부터 왔다는 보장을 요구 • 관용 암호 방식 1. IDA || IDB || N1 KDC 2. EKA[KS || IDB || N1 || EKB[KS || IDA]] 3. EKB[KS, IDA] || EKS(M) Bob Alice • 메시지의 의도된 수신자만이 해당 메시지를 읽을 수 있다는 것을 보증 • 메시지 재전송 공격에 취약

  41. 공개키 암호 방식 • 기밀성, 인증 그리고 기밀성과 인증을 위한 공개키 암호화 방법 제시(TP page 7~9) • 개선 방안 • 기밀성 • 인증 A B : EKUB(KS) || EKS(M) A B : M || EKRA(H(M)) A B : EKUB(M || EKRA(H(M))) A B : M || EKRA[H(M)] || EKRAS(T || IDA || KUB)

More Related