Presentation is loading. Please wait.

Presentation is loading. Please wait.

Chapter 9 Simple Authentication Protocols

Similar presentations


Presentation on theme: "Chapter 9 Simple Authentication Protocols"— Presentation transcript:

1 Chapter 9 Simple Authentication Protocols

2 Chapter 9 Simple Authentication protocols
프로토콜들 Human protocols  사람들의 상호 관계에서 따라야 할 규칙들 예: 수업 중에 질문하기 Networking protocols  네트워크 시스템에서 따라야 할 규칙들 예: HTTP, FTP, 등등. Security protocols  보안 응용에서 따라야 할 (통신상의) 규칙들 예: SSL, IPSec, Kerberos, 등등. Chapter 9 Simple Authentication protocols

3 Chapter 9 Simple Authentication protocols
프로토콜 결함은 대단히 미묘한 문제이다. 몇 가지 잘 알려진 보안 프로토콜은 심각한 오류를 갖고 있다. 예: IPSec, GSM, WEP 자주, 구현을 하는데 에러가 발견된다. IE에서 SSL의 구현 프로토콜이 올바른지 판단하는 것도 힘들고 프로토콜을 올바르게 사용하는 것도 힘들다. Chapter 9 Simple Authentication protocols

4 Chapter 9 Simple Authentication protocols
이상적인 보안 프로토콜 보안 요구사항을 만족 요구사항이 분명해야 한다. 효율성 요구되는 계산을 최소화  특히 공개키 연산 지연과 대역 사용을 최소화 견고성 공격자가 공격을 하는 중에도 동작해야 한다. 환경이 변하더라도 동작해야 한다. 사용하기 용이, 구현 용이, 유연성, 등등. 이러한 모든 조건을 충족하기는 힘들다! Chapter 9 Simple Authentication protocols

5 Simple Security Protocols
Chapter 9 Simple Authentication protocols

6 NSA에 들어가는 절차 출입증을 판독기(reader)에 넣는다. PIN을 입력한다. PIN이 올바른가? Yes? 입장
No? 경비원이 사살

7 Chapter 9 Simple Authentication protocols
ATM 기계 프로토콜 ATM 카드를 넣는다. PIN을 입력한다. PIN이 올바른가? Yes? 거래를 수행한다. No? 기계가 카드를 삼켜버린다. Chapter 9 Simple Authentication protocols

8 Chapter 9 Simple Authentication protocols
아군과 적군을 구별하기 (IFF) 군대는 많은특별한 프로토콜을 필요로 한다. 많은 경우 적군을 아군으로 오인하거나 …. Russian MIG Angola 2. E(N,K) Namibia SAAF Impala 1. N Chapter 9 Simple Authentication protocols

9 Chapter 9 Simple Authentication protocols
MIG in the Middle Angola 3. N SAAF Impala 4. E(N,K) 2. N 5. E(N,K) Namibia 6. E(N,K) Russian MiG 1. N Chapter 9 Simple Authentication protocols

10 인증 프로토콜 Authentication Protocols
Chapter 9 Simple Authentication protocols

11 Chapter 9 Simple Authentication protocols
Alice는 Bob에게 자신을 증명해야 한다. Alice와 Bob은 사람일수도 혹은 기계일 수도 있다. Bob도 역시 자신의 존재를 증명해야 할지도 모른다. (상호 인증) 세션 키(session key)를 설정할 필요가 있을 수 있다. 다른 요구사항이 있을 수 있다. 오직 공개키 만을 사용한다. 오직 대칭키 만을 사용한다. 오직 해시 함수 만을 사용한다. 익명성, 합리적인 부인 등등. Chapter 9 Simple Authentication protocols

12 Chapter 9 Simple Authentication protocols
인증 독립(stand-alone) 컴퓨터에서의 인증은 비교적 쉽다. “안전한 경로”가 주요한 이슈 주요 관심사는 인증 소프트웨어에 대한 공격이다. 네트워크 상에서의 인증은 훨씬 복잡하다. 공격자는 메시지를 관찰할 수 있다. 공격자는 메시지를 재사용할 수 있다. 적극적인 공격을 할 수 있다. (삽입, 삭제, 내용 변경) Chapter 9 Simple Authentication protocols

13 Chapter 9 Simple Authentication protocols
단순한 인증 “I’m Alice” Prove it My password is “frank” Alice Bob 독립(standalone) 시스템에서는 문제가 없을지 모른다. 하지만 네트워크에서는 안전하지 않다. 재사용 공격(replay)을 받을 수 있다.(다음 2 slides) Bob은 Alice의 암호를 알아야 한다. Chapter 9 Simple Authentication protocols

14 Chapter 9 Simple Authentication protocols
인증 공격 “I’m Alice” Prove it My password is “frank” Alice Bob Trudy Chapter 9 Simple Authentication protocols

15 Chapter 9 Simple Authentication protocols
인증 공격 “I’m Alice” Prove it My password is “frank” Trudy Bob 재사용(replay) 공격 어떻게 재사용 공격을 막을 수 있는가? Chapter 9 Simple Authentication protocols

16 Chapter 9 Simple Authentication protocols
단순 인증 I’m Alice, My password is “frank” Alice Bob 훨씬 효율적이다… 그러나 앞의 경우와 같은 문제가 생긴다. 재사용 공격 Chapter 9 Simple Authentication protocols

17 Chapter 9 Simple Authentication protocols
더 나은 인증 “I’m Alice” Prove it h(Alice’s password) Alice Bob Alice의 암호를 숨길 수 있으므로 더 좋다. 그러나 여전히 재사용 공격이 가능하다. Chapter 9 Simple Authentication protocols

18 질문-응답(Challenge-Response)
재사용을 막기 위해, 질문-응답을 사용한다. Bob이 Alice를 인증하려고 한다. Bob은 Alice에게 질문을 한다. 오직 Alice 만이 올바른 답을 할 수 있다. 질문은 재사용이 불가능하도록 해야 한다. 어떻게 그것을 할 수 있는가? 암호는 Alice 만이 알고 있는 것이다. 일회성을 보증하기 위해서 “nonce (number used once)”를 사용한다. Chapter 9 Simple Authentication protocols

19 질문-응답 “I’m Alice” Nonce h(Alice’s password, Nonce) Alice Bob
Nonce가 challenge hash가 response Nonce는 재사용을 막아준다. 오직 일회 사용을 보장한다. Password는 Alice가 알고 있는 것 Bob은 Alice의 암호를 알고 있어야 한다.

20 Chapter 9 Simple Authentication protocols
질문-응답 “I’m Alice” Nonce Something that could only be Alice from Alice (and Bob can verify) Bob 이것을 위해 무엇을 사용해야 하는가? 암호의 Hash는 OK, 암호화는 더 좋다. Symmetric key, Public key, 등에서 더 논의할 것이다. Chapter 9 Simple Authentication protocols

21 Chapter 9 Simple Authentication protocols
대칭키 표기법 평문 P를 키 K로 암호화 C = E(P,K) 암호문 C를 K로 복호화 P = D(C,K) 여기서 우리가 관심을 갖는 것은 프로토콜에 대한 공격이지 암호화 알고리즘에 대한 것은 아니다. 암호화 알고리즘은 안전하다고 가정한다. Chapter 9 Simple Authentication protocols

22 Chapter 9 Simple Authentication protocols
대칭키를 사용한 인증 Alice와 Bob은 대칭키 KAB 를 공유한다. 키 KAB 는 오직 Alice와 Bob만 알고 있다. 대칭키를 알고 있다는 것으로 인증을 한다. 어떻게 이것을 할 수 있나? 키를 남이 알게 해서는 안 된다. 재사용 공격을 허용해서는 안 된다. Chapter 9 Simple Authentication protocols

23 Chapter 9 Simple Authentication protocols
대칭키를 사용한 인증 “I’m Alice” R E(R,KAB) Bob, KAB Alice, KAB Bob이 Alice를 인증하는 안전한 방법 Alice는 Bob을 인증하고 있지는 않다. 상호 인증을 할 수 있을까? Chapter 9 Simple Authentication protocols

24 Chapter 9 Simple Authentication protocols
상호 인증? “I’m Alice”, R E(R,KAB) E(R,KAB) Alice Bob 무엇이 잘못되었는가? “Alice” 는 Trudy일 수 있다(혹은 다른 누구)! Chapter 9 Simple Authentication protocols

25 Chapter 9 Simple Authentication protocols
상호 인증 안전한 단방향(one-way) 인증 프로토콜을 갖고 있으므로… 분명한 것은 프로토콜을 두 번 사용하는 것이다. 한번은 Bob이 Alice를 인증하기 위해서 한번은 Alice가 Bob을 인증하기 위해서 이것은 성공해야 하는데… Chapter 9 Simple Authentication protocols

26 Chapter 9 Simple Authentication protocols
상호 인증 “I’m Alice”, RA RB, E(RA,KAB) E(RB,KAB) Alice Bob 상호 인증이 가능하다. 이것은 안전한가? Chapter 9 Simple Authentication protocols

27 Chapter 9 Simple Authentication protocols
상호 인증 공격 1. “I’m Alice”, RA 2. RB, E(RA,KAB) 5. E(RB,KAB) Bob Trudy 3. “I’m Alice”, RB 4. RC, E(RB,KAB) Trudy Bob Chapter 9 Simple Authentication protocols

28 Chapter 9 Simple Authentication protocols
상호 인증 지금의 단방향 인증 프로토콜은 상호 인증에는 안전하지 않다. 프로토콜은 미묘하다! “명백한” 것은 안전하지 않을 수 있다. 또한, 가정이나 환경이 바뀌면 프로토콜은 성공하지 않을 수 있다. 이것이 프로토콜이 실패하는 공통된 원인이다. Chapter 9 Simple Authentication protocols

29 Chapter 9 Simple Authentication protocols
대칭키를 사용한 상호 인증 “I’m Alice”, RA RB, E(“Bob”,RA,KAB) E(“Alice”,RB,KAB) Alice Bob 이와같은 “사소한” 추가가 도움이 될까? Yes! Chapter 9 Simple Authentication protocols

30 Chapter 9 Simple Authentication protocols
공개키 표기법 Alice의 공개키로 M을 암호화: {M}Alice Alice의 개인키로 M을 서명(복호화) : [M]Alice 그러면 [{M}Alice ]Alice = M {[M]Alice }Alice = M 누구도 공개키 연산을 할 수 있다. 오직 Alice만이 자신의 개인키를 사용할 수 있다. (sign) Chapter 9 Simple Authentication protocols

31 공개키를 사용한 인증 이것은 안전한가? Trudy는 Alice가 어떤 것이건 복호화하게 만들 수 있다! “I’m Alice”
{R}Alice R Alice Bob 이것은 안전한가? Trudy는 Alice가 어떤 것이건 복호화하게 만들 수 있다! 암호화를 위해서 키를 사용해서는 안된다. 두 키 쌍을 사용해야 한다.

32 공개키를 사용한 인증 이것은 안전한가? Trudy는 Alice가 어떤 것이건 암호화하게 만들 수 있다! “I’m Alice”
[R]Alice Alice Bob 이것은 안전한가? Trudy는 Alice가 어떤 것이건 암호화하게 만들 수 있다! 암호화를 위해서 키를 사용해서는 안된다. 두 키 쌍을 사용해야 한다.

33 Chapter 9 Simple Authentication protocols
공개키 암호화와 서명을 하는데 같은 키를 사용해서는 안 된다. 암호화/복호화를 위해서 하나의 키 쌍을 사용하고 또 다른 키 쌍은 서명과 증명을 위해서 사용한다. Chapter 9 Simple Authentication protocols

34 Chapter 9 Simple Authentication protocols
세션 키(Session Key) 세션 키: 일정 시간 동안 사용하는 임시적인 키 세션 키를 필요로 하는 이유. 특정 세션을 위한 대칭키로 사용을 제한한다. 세션키가 손상되더라도 피해를 줄일 수 있다. 어떤 경우에는 완전 순방향 비밀성(perfect forward secrecy (PFS))을 요구할 수도 있다. Chapter 9 Simple Authentication protocols

35 Chapter 9 Simple Authentication protocols
공개키 인증과 세션 키 Alice와 Bob의 암호화를 사용 “I’m Alice”, R Bob Alice {R,K}Alice {R +1,K}Bob 이것은 안전한가? 키에 대해서는 OK, 하지만 상호 인증은 아님 K는 Bob의 nonce와 같은 역할 Alice는 Bob을 인증할 수 없다. Chapter 9 Simple Authentication protocols

36 Chapter 9 Simple Authentication protocols
공개키 인증과 세션 키 Alice와 Bob의 서명을 사용 Alice Bob “I’m Alice”, R [R,K]Bob [R +1,K]Alice 이것은 안전한가? 상호 인증은 되나 키는 안전하지 않다! Chapter 9 Simple Authentication protocols

37 Chapter 9 Simple Authentication protocols
공개키 인증과 세션 키 먼저 서명 그리고 암호화 Alice Bob “I’m Alice”, R {[R,K]Bob}Alice {[R +1,K]Alice}Bob 이것은 안전한가? OK처럼 보인다. 상호 인증과 세션 키는 안전! Chapter 9 Simple Authentication protocols

38 Chapter 9 Simple Authentication protocols
공개키 인증과 세션 키 먼저 암호화하고 서명 Alice Bob “I’m Alice”, R [{R,K}Alice]Bob [{R +1,K}Bob]Alice 이것은 안전한가? OK 처럼 보인다. 모두 {R,K}Alice와 {R +1,K}Bob을 볼 수 있지만 Chapter 9 Simple Authentication protocols

39 완전 순방향 비밀성(Forward Secrecy)
걱정 거리… Alice는 공유키 KAB 로 암호화하고 암호문을 Bob에게 보낸다. Trudy는 암호문을 보관하고 있다가 나중에 Alice의 컴퓨터를 공격해서 키 KAB 를 찾아낸다. 그리고 Trudy는 보관했던 암호문을 해독한다. 완전 순방향 비밀성 (PFS): 비록 Trudy가 키를 알아냈다 하더라도 Trudy는 나중에 암호문을 복호화할 수 없도록 하는 것이다. PFS는 가능할까? Chapter 9 Simple Authentication protocols

40 Chapter 9 Simple Authentication protocols
완전 순방향 비밀성 PFS를 위해서, Alice와 Bob은 KAB을 사용하여 암호화해서는 안된다. 대신 그들은 세션키 KS를 사용하고 사용한 후에는 세션키를 없애야 한다 문제: 어떻게 Alice와 Bob은 세션키 KS를 합의하고 PFS를 보장할 수 있을까? Chapter 9 Simple Authentication protocols

41 Chapter 9 Simple Authentication protocols
순진한 세션키 프로토콜 E(KS, KAB) E(messages, KS) Alice, KAB Bob, KAB Trudy는 E(KS,KAB)를 보관할 수 있다. 만약 나중에Trudy가 KAB을 찾아내면, 그는 KS도 일 수 있다. Chapter 9 Simple Authentication protocols

42 완전 순방향 비밀성 Diffie-Hellman을 사용한다. Diffie-Hellman: g와 p는 공개됨
ga mod p gb mod p Alice, a Bob, b 하지만 Diffie-Hellman은 MiM 공격을 받을 수 있다. 어떻게 MiM을 막으면서 PFS을 이룰 수 있나?

43 Chapter 9 Simple Authentication protocols
완전 순방향 비밀성 E(ga mod p, KAB) E(gb mod p, KAB) Alice, a Bob, b 세션 키 KS = gab mod p를 구하고 Alice는 a를, Bob은 b를 잊어버린다. 일회성(ephemeral) Diffie-Hellman Alice와 Bob 조차도 KS 를 복구할 수 없다. 다른 방법은? Chapter 9 Simple Authentication protocols

44 Chapter 9 Simple Authentication protocols
상호 인증, 세션키와 PFS “I’m Alice”, RA RB, [{RA, gb mod p}Alice]Bob [{RB, ga mod p}Bob]Alice Alice Bob 세션키는 K = gab mod p Alice는 a를, Bob은 b을 잊어버린다. 만약 Trudy가 나중에 Bob과 Alice의 비밀을 알아내더라도, 세션키 K를 복구할 수 없다. Chapter 9 Simple Authentication protocols

45 Chapter 9 Simple Authentication protocols
타임스탬프(Timestamps) 타임스탬프 T는 현재 시간 타임스탬프는 많은 프로토콜에서 사용된다. (Kerberos) 타임스탬프는 교환하는 메시지의 수를 줄일 수 있다. 마치 둘이 미리 알고 있는 nonce와 같다. 그러나 타임스탬프틀 사용할 때 시간은 보안에 중요한 파라메터라는 것을 기억해야 한다. 시간을 결코 같을 수 없다, 항상 시간 오차가 존재한다. – 재사용 공격의 위험이 있다. 어느 정도 까지 시간 오차를 허용할 수 있을까? Chapter 9 Simple Authentication protocols

46 Chapter 9 Simple Authentication protocols
“I’m Alice”, {[T,K]Alice}Bob {[T +1,K]Bob}Alice Alice Bob 이것은 안전한가? 괜찮아 보인다. Chapter 9 Simple Authentication protocols

47 Chapter 9 Simple Authentication protocols
“I’m Alice”, [{T,K}Bob]Alice [{T +1,K}Alice]Bob Alice Bob 이것은 안전한가? Trudy는 {T,K}Bob 을 알기 위해서 Alice의 공개키를 사용할 수 있다.(다음 slide) Chapter 9 Simple Authentication protocols

48 Chapter 9 Simple Authentication protocols
“I’m Trudy”, [{T,K}Bob]Trudy [{T +1,K}Trudy]Bob Trudy Bob Trudy는 Alice-Bob의 세션키 K를 알 수 있다. 주의: Trudy는 반드시 시간 오차 안에 행동해야 한다. Chapter 9 Simple Authentication protocols

49 Chapter 9 Simple Authentication protocols
“I’m Alice”, [{T,K}Bob]Alice [{T +1}Alice]Bob Bob Alice 이러한 “암호화와 서명”은 안전한가? Yes, 괜찮아 보인다. “서명하고 암호화”도 괜찮은가? Chapter 9 Simple Authentication protocols

50 Chapter 9 Simple Authentication protocols
공개키 인증 Nonce와 함께 서명하고 암호화… 안전 Nonce와 함께 암호화하고 서명… 타임스탬프와 함께 서명하고 암호화… 타임스탬프와 함께 암호화하고 서명… 안전하지 않음 프로토콜은 미묘하다! Subtle: 민감한 Chapter 9 Simple Authentication protocols


Download ppt "Chapter 9 Simple Authentication Protocols"

Similar presentations


Ads by Google