600 likes | 940 Views
Chapter 9 Simple Authentication Protocols. 프로토콜들. Human protocols 사람들의 상호 관계에서 따라야 할 규칙들 예 : 수업 중에 질문하기 Networking protocols 네트워크 시스템에서 따라야 할 규칙들 예 : HTTP, FTP, 등등 . Security protocols 보안 응용에서 따라야 할 ( 통신상의 ) 규칙들 예 : SSL, IPSec, Kerberos, 등등. Protocols.
E N D
Chapter 9Simple Authentication Protocols Chapter 9 Simple Authentication protocols
프로토콜들 • Human protocols 사람들의 상호 관계에서 따라야 할 규칙들 • 예: 수업 중에 질문하기 • Networking protocols 네트워크 시스템에서 따라야 할 규칙들 • 예: HTTP, FTP, 등등. • Security protocols 보안 응용에서 따라야 할 (통신상의) 규칙들 • 예: SSL, IPSec, Kerberos, 등등. Chapter 9 Simple Authentication protocols
Protocols • 프로토콜 결함은 대단히 미묘한 문제이다. • 몇 가지 잘 알려진 보안 프로토콜은 심각한 오류를 갖고 있다. • 예: IPSec, GSM, WEP • 자주, 구현을 할 때 에러가 발생된다. • IE에서 SSL의 구현 • 프로토콜이 올바른지 판단하는 것도 힘들고 프로토콜을 올바르게 사용하는 것도 힘들다. Chapter 9 Simple Authentication protocols
이상적인 보안 프로토콜 • 보안 요구사항을 만족 • 요구사항이 분명해야 한다. • 효율성 • 요구되는 계산을 최소화 특히 공개키 연산 • 지연과 대역 사용을 최소화 • 견고성 • 공격자가 공격을 하는 중에도 동작해야 한다. • 환경이 변하더라도 동작해야 한다. • 사용하기 용이, 구현 용이, 유연성, 등등. • 이러한 모든 조건을 충족하기는 힘들다! Chapter 9 Simple Authentication protocols
Simple Security Protocols Chapter 9 Simple Authentication protocols
NSA에 들어가는 절차 • 출입증을 판독기(reader)에 넣는다. • PIN을 입력한다. • PIN이 올바른가? Yes?입장 No?경비원이 사살
ATM 기계 프로토콜 • ATM 카드를 넣는다. • PIN을 입력한다. • PIN이 올바른가? Yes?거래를 수행한다. No?기계가 카드를 삼켜버린다. Chapter 9 Simple Authentication protocols
아군과 적군을 구별하기 (IFF) • 군대는 많은특별한 프로토콜을 필요로 한다. • 많은 경우 적군을 아군으로 오인하거나 …. Russian MIG Angola 2. E(N,K) Namibia SAAF Impala 1. N 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
인증 프로토콜Authentication Protocols Chapter 9 Simple Authentication protocols
인증(Authentication) • Alice는 Bob에게 자신을 증명해야 한다. • Alice와 Bob은 사람일수도 혹은 기계일 수도 있다. • Bob도 역시 자신의 존재를 증명해야 할지도 모른다. (상호 인증) • 세션 키(session key)를 설정할 필요가 있을 수 있다. • 다른 요구사항이 있을 수 있다. • 오직 공개키 만을 사용한다. • 오직 대칭키 만을 사용한다. • 오직 해시 함수 만을 사용한다. • 익명성, 합리적인 부인 등등. Chapter 9 Simple Authentication protocols
인증 • 독립(stand-alone) 컴퓨터에서의 인증은 비교적 쉽다. • “안전한 경로”가 주요한 이슈 • 주요 관심사는 인증 소프트웨어에 대한 공격이다. • 네트워크 상에서의 인증은 훨씬 복잡하다. • 공격자는 메시지를 관찰할 수 있다. • 공격자는 메시지를 재사용할 수 있다. • 적극적인 공격을 할 수 있다. (삽입, 삭제, 내용 변경) Chapter 9 Simple Authentication protocols
단순한 인증 • 독립(standalone) 시스템에서는문제가 없을지 모른다. • 하지만 네트워크에서는 안전하지 않다. • 재사용 공격(replay)을 받을 수 있다.(다음 2 slides) • Bob은 Alice의 암호를 알아야 한다. “I’m Alice” Prove it My password is “frank” Bob Alice Chapter 9 Simple Authentication protocols
인증 공격 “I’m Alice” Prove it My password is “frank” Bob Alice Trudy Chapter 9 Simple Authentication protocols
인증 공격 • 재사용(replay)공격 • 어떻게 재사용 공격을 막을 수 있는가? “I’m Alice” Prove it My password is “frank” Trudy Bob Chapter 9 Simple Authentication protocols
단순 인증 • 훨씬 효율적이다… • 그러나 앞의 경우와 같은 문제가 생긴다. • 재사용 공격 I’m Alice, My password is “frank” Bob Alice Chapter 9 Simple Authentication protocols
더 나은 인증 • Alice의 암호를 숨길 수 있으므로 더 좋다. • 그러나 여전히 재사용 공격이 가능하다. “I’m Alice” Prove it h(Alice’s password) Bob Alice Chapter 9 Simple Authentication protocols
질문-응답(Challenge-Response) • 재사용을 막기 위해, 질문-응답을 사용한다. • Bob이 Alice를 인증하려고 한다. • Bob은 Alice에게 질문을 한다. • 오직 Alice 만이 올바른 답을 할 수 있다. • 질문은 재사용이 불가능하도록 해야 한다. • 어떻게 그것을 할 수 있는가? • 암호는 Alice 만이 알고 있는 것이다. • 일회성을 보증하기 위해서 “nonce (number used once)”를 사용한다. Chapter 9 Simple Authentication protocols
질문-응답 “I’m Alice” Nonce h(Alice’s password, Nonce) Bob Alice • Nonce가 challenge • hash가response • Nonce는 재사용을 막아준다. 오직 단 한번만 사용된다. • Password는 Alice가 알고 있는 것이다. • Bob은 Alice의 암호를 알고 있어야 한다(검증 가능).
질문-응답 • 이것을 위해 무엇을 사용해야 하는가? • 암호의 Hash는 OK, 암호화는 더 좋다. • Symmetric key, Public key, 등에서 더 논의할 것이다. “I’m Alice” Nonce 오직 Alice만이 갖고 있는 것 Bob (그리고 Bob이 검증할 수 있는 것) Alice Chapter 9 Simple Authentication protocols
대칭키 표기법 • 평문 P를 키 K로 암호화 C = E(P,K) • 암호문 C를K로 복호화 P = D(C,K) • 여기서 우리가 관심을 갖는 것은 프로토콜에 대한 공격이지 암호화 알고리즘에 대한 것은 아니다. • 암호화 알고리즘은 안전하다고 가정한다. Chapter 9 Simple Authentication protocols
대칭키를 사용한 인증 • Alice와 Bob은 대칭키 KAB 를 공유한다. • 키 KAB는 오직 Alice와 Bob만 알고 있다. • 대칭키를 알고 있다는 것으로 인증을 한다. • 어떻게 이것을 할 수 있나? • 키를 남이 알게 해서는 안 된다. • 재사용 공격을 허용해서는 안 된다. 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
상호 인증? • 무엇이 잘못되었는가? • 재사용 공격 • “Alice” 는 Trudy일 수 있다(혹은 다른 누구)! “I’m Alice”, R E(R,KAB) E(R,KAB) Alice Bob Chapter 9 Simple Authentication protocols
상호 인증 • 안전한 단방향(one-way) 인증 프로토콜을 갖고 있으므로… • 단방향 프로토콜을 두 번 사용하는 것이다. • 한번은 Bob이 Alice를 인증하기 위해서 • 한번은 Alice가 Bob을 인증하기 위해서 • 이것은 성공할 수 있는가? Chapter 9 Simple Authentication protocols
상호 인증 • 상호 인증이 가능하다. • 이것은 안전한가? “I’m Alice”, RA RB, E(RA,KAB) E(RB,KAB) Bob Alice 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) Bob Trudy Chapter 9 Simple Authentication protocols
상호 인증 • 지금의 단방향 인증 프로토콜은 상호 인증에는 안전하지 않다. • 프로토콜은 미묘하다! • “명백하다”고 안전한 것은 아니다. • 또한, 가정이나 환경이 바뀌면 프로토콜은 성공하지 않을 수 있다. • 이것이 프로토콜이 실패하는 공통된 원인이다. Chapter 9 Simple Authentication protocols
대칭키를 사용한 상호 인증 • 이와같은 “사소한” 추가가 도움이 될까? • Yes! “I’m Alice”, RA RB, E(“Bob”,RA,KAB) E(“Alice”,RB,KAB) Bob Alice 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
공개키를 사용한 인증 • 이것은 안전한가? • Trudy는 Alice가 어떤 것이건 복호화하게 만들 수 있다! • 암호화를 위해서 키를 사용해서는 안된다. • 두 개의 키 쌍을 사용해야 한다. “I’m Alice” {R}Alice R Bob Alice
공개키를 사용한 인증 • 이것은 안전한가? • Trudy는 Alice가 어떤 것이건 암호화하게 만들 수 있다! • 암호화를 위해서 키를 사용해서는 안된다. • 두 개의 키 쌍을 사용해야 한다. “I’m Alice” R [R]Alice Bob Alice
공개키 • 암호화와 서명을 하는데 같은 키를 사용해서는 안 된다. • 암호화/복호화를 위해서 하나의 키 쌍을 사용하고 • 또 다른 키 쌍은 서명과 증명을 위해서 사용한다. Chapter 9 Simple Authentication protocols
세션 키(Session Key) • 세션 키: 일정 시간 동안 사용하는 임시적인 키 • 세션 키를 필요로 하는 이유. • 특정 세션을 위한 대칭키로 사용을 제한한다. • 세션키가 손상되더라도 피해를 줄일 수 있다. • 어떤 경우에는 완전 순방향 비밀성(perfect forward secrecy (PFS))을 요구할 수도 있다. Chapter 9 Simple Authentication protocols
공개키 인증과 세션 키 • Alice와 Bob의 암호화를 사용 • 이것은 안전한가? • 키에 대해서는 OK, 하지만 상호 인증은 아님 • K는 Bob의 nonce와 같은 역할 • Alice는 Bob을 인증할 수 없다. “I’m Alice”, R {R,K}Alice {R +1,K}Bob Alice Bob Chapter 9 Simple Authentication protocols
공개키 인증과 세션 키 • Alice와 Bob의 서명을 사용 • 이것은 안전한가? • 상호 인증은 되나 키는 안전하지 않다! “I’m Alice”, R [R,K]Bob [R +1,K]Alice Bob Alice Chapter 9 Simple Authentication protocols
공개키 인증과 세션 키 • 먼저 서명 그리고 암호화 • 이것은 안전한가? • 안전한 것처럼 보인다. • 상호 인증과 세션 키는 안전! “I’m Alice”, R {[R,K]Bob}Alice {[R +1,K]Alice}Bob Bob Alice Chapter 9 Simple Authentication protocols
공개키 인증과 세션 키 • 먼저 암호화하고 서명 • 이것은 안전한가? • 안전한 것처럼 보인다. • 모두 {R,K}Alice와 {R +1,K}Bob을 볼 수 있지만 “I’m Alice”, R [{R,K}Alice]Bob [{R +1,K}Bob]Alice Bob Alice Chapter 9 Simple Authentication protocols
완전 순방향 비밀성(Forward Secrecy) • 걱정 거리… • Alice는 공유키 KAB 로 암호화하고 암호문을 Bob에게 보낸다. • Trudy는 암호문을 보관하고 있다가 나중에 Alice의 컴퓨터를 공격해서 키 KAB 를 찾아낸다. • 그리고 Trudy는 보관했던 암호문을 해독한다. • 완전 순방향 비밀성 (PFS): • 비록 Trudy가 키를 알아냈다 하더라도 Trudy는 나중에 암호문을 복호화할 수 없도록 하는 것이다. • PFS는 가능할까? Chapter 9 Simple Authentication protocols
완전 순방향 비밀성 • PFS를 위해서, Alice와 Bob은 KAB을 사용하여 암호화해서는 안된다. • 대신 그들은 세션키 KS를 사용하고 사용한 후에는 세션키를 없애야 한다 • 문제: 어떻게 Alice와 Bob은세션키 KS를 합의하고 PFS를 보장할 수 있을까? Chapter 9 Simple Authentication protocols
순진한 세션키 프로토콜 • Trudy는 E(KS,KAB)를 보관할 수 있다. • 만약 나중에Trudy가 KAB을 찾아내면, 그는 KS도 일 수 있다. E(KS, KAB) E(messages, KS) Bob, KAB Alice, KAB Chapter 9 Simple Authentication protocols
완전 순방향 비밀성 • Diffie-Hellman을 사용한다. • Diffie-Hellman: g와 p는 공개됨 ga mod p gb mod p Alice, a Bob, b • 하지만 Diffie-Hellman은 MiM 공격을 받을 수 있다. • 어떻게 MiM을 막으면서 PFS을 이룰 수 있나?
완전 순방향 비밀성 • 세션 키 KS = gab mod p를 구하고 • Alice는 a를, Bob은 b를 잊어버린다. • 일회성(ephemeral)Diffie-Hellman • Alice와 Bob 조차도 KS 를 복구할 수 없다. • 다른 방법은? E(ga mod p, KAB) E(gb mod p, KAB) Alice, a Bob, b 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
타임스탬프(Timestamps) • 타임스탬프 T는 현재 시간 • 타임스탬프는 많은 프로토콜에서 사용된다. (Kerberos) • 타임스탬프는 교환하는 메시지의 수를 줄일 수 있다. • 마치 둘이 미리 알고 있는 nonce와 같다. • 그러나 타임스탬프틀 사용할 때 시간은 보안에 중요한 파라메터라는 것을 기억해야 한다. • 시간은 결코 같을 수 없다, 항상 시간 오차가 존재한다. – 재사용 공격의 위험이 있다. • 어느 정도 까지 시간 오차를 허용할 수 있을까? Chapter 9 Simple Authentication protocols
타임스탬프(T)로 공개키 인증 “I’m Alice”, {[T,K]Alice}Bob {[T +1,K]Bob}Alice Bob Alice • 이것은(서명-암호화) 안전한가? • 괜찮아 보인다. Chapter 9 Simple Authentication protocols
타임스탬프(T)로 공개키 인증 “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
타임스탬프(T)로 공개키 인증 “I’m Trudy”, [{T,K}Bob]Trudy [{T +1,K}Trudy]Bob Bob Trudy • Trudy는 {T,K}Bob을 알 수 있다. • Trudy는 Alice-Bob의 세션키 K를 알 수 있다. • 주의:Trudy는 반드시 시간 오차 안에 행동해야 한다. Chapter 9 Simple Authentication protocols
타임스탬프(T)로 공개키 인증 “I’m Alice”, [{T,K}Bob]Alice [{T +1}Alice]Bob Bob Alice • 앞의 프로토콜에서 Alice는 굳이 세션키(K)를 다시 보낼 필요가 없다. • 이렇게 간단히 수정을 한다면 안전한가? • Yes, 괜찮아 보인다. • “서명하고 암호화”도 괜찮은가? Chapter 9 Simple Authentication protocols
공개키 인증 • Nonce와 함께 서명하고 암호화… • 안전 • Nonce와 함께 암호화하고 서명… • 안전 • 타임스탬프와 함께 서명하고 암호화… • 안전 • 타임스탬프와 함께 암호화하고 서명… • 안전하지 않음 • 프로토콜은 미묘하다! Chapter 9 Simple Authentication protocols