ch09_단순 인증 프로토콜

Download Report

Transcript ch09_단순 인증 프로토콜

III부
프로토콜-
ㅎㅎ
9장. 단순 인증
프로토콜
• 정보보안의 개념을 실질적으로 구현하는
기법인 트로토콜을 다룬다. 암호 기법을 사
용해 다양한 목적의 프로토콜을 구성하는
방법을 제시하며, 각종 프로토콜을 공격하
는 구체적인 사례를 소개한다. 특히 실제로
적용되고 있는 현대 프로토콜 4가지를 깊
이있게 설명한다.
한빛미디어(주)
9장. 단순 인증 프로토콜
학습목표
 인증 및 세션키를 구현하기 위한 다양한 프로토콜을 대칭키, 공개키,
해시함수 등을 사용해 구현한다.
 PFS를 구현하는 방법과 타임스탬프 사용의 장점을 알아보고 보안
프로토콜과 관련해 발생할 수 있는 민감한 문제도 다룬다.
2
Section 01 개요
프로토콜
인간 프로토콜  인간 상호간에 적용되는 규칙
• 예: 강의 시간에 질문하는 방법
네트워킹 프로토콜  네트워크 연결된 통신체계에 적용되는 규칙
• 예: HTTP, FTP, 등
보안 프로토콜  보안 응용에 적용되는 (통신)규칙
• 예: SSL, IPSec, 커베로스 등
프로토콜 결함은 매우 민감할 수 있음.
알려진 보안 프로토콜에도 결함이 있음.
• IPSec, GSM, WEP을 포함
구현과정에 오류는 일반적 현상임.
• SSL에 구현된 IE가 하나의 예
제대로 된 프로토콜을 설계하기는 어려움.
3
Section 01 개요
이성적인 보안 프로토콜
보안 측면 요구사항 충족
• 새부적 요구사항이 제시되어야 함
효율성
• 계산 요구 최소화  특히 비용이 비싼 공개키 연산
• 시간 지연 및 대역폭 최소화
견고성
• 공격자의 손상 시도에 저항력이 있어야 함
• 변화된 환경에서도 작동
사용 및 구현 용이성, 융통성 등
모든 요구를 충족시키기 매우 어려움.
4
Section 02 단순 보안 프로토콜-NSA 보안 입장 절차
출입증을 판독기에 넣는다.
PIN을 입력한다.
PIN이 유효한가?
예? 유유히 입장
아니오? 경비원의
총에 맞아 사망
5
현금인출기 프로토콜
현금카드를 판독기에 넣는다.
PIN을 입력한다.
PIN이 유효한가?
예? 현금 인출
아니오? 현금인출기가
카드 압수
6
피아식별(IFF)
러시아
미그기
앙골라
2. E(N,K)
남아프리카 공화국
임팔라기
1. N
7
중간 미그기
3. N
남아프리카 공화국
임팔라기
4. E(N,K)
앙골라
2. N
5. E(N,K)
러시아
미그기
6. E(N,K)
1. N
나미비아
8
Section 03 인증 프로토콜-인증
앨리스는 밥에게 자신을 인증할 필요성
앨리스와 밥은 인간 또는 컴퓨터일 수 있음.
밥 역시 자신을 인증할 필요성(상호인증)
세션키가 필요할 수도 있음.
아래 요구사항이 있을 수도 있음.
공개키를 사용하라.
대칭키를 사용하라.
해시함수를 사용하라.
익명성, 그럴듯한 부인권 등을 제공하라.
9
인증
독립 컴퓨터에서 인증은 상대적으로 용이
“안전한 경로”가 주요 관건
인증 소프트웨어에 대한 공격이 주요 관심
(소트트웨어 공격은 추후 논의)
네트워크상 인증은 훨씬 복잡
공격자는 메시지를 수동적으로 관찰 가능
공격자는 메시지 재연(재연) 가능
능동적인 공격도 가능할 수 있음.
(삽입, 삭제, 내용 변경 등)
10
단순 인증
“나는 앨리스입니다”
증명하시오
내 패스워드는 “frank”입니다
앨리스
밥
단순하며 독립 컴퓨터에는 사용 가능
네트워크 시스템에는 안전하지 않음.
재연공격에 취약 (다음 2 슬라이드 참조)
밥이 앨리스의 패스워드를 반드시 알아야 함.
11
인증 공격
“나는 앨리스입니다”
증명하시오
내 패스워드는 “frank”입니다
밥
앨리스
트루디
12
질문-응답
재연을 방지하기 위하여 질문-응답 사용
밥이 앨리스를 인증하려 한다고 가정할 때,
밥은 앨리스에게 질문을 전송한다.
오직 앨리스만이 정확한 응답을 제공 가능하다.
질문은 재연이 곤란해야 한다.
위를 구현하는 방법은?
패스워드는 앨리스만 알 수 있어야 한다.
신선도를 위하여, 난스(일회 사용 숫자, number used once)를 사용
13
질문-응답
“나는 앨리스입니다”
난스
앨리스
앨리스만 보낼 수 있는 그 무엇
(또한, 밥이 확인 가능)
밥
이를 구현하는 방법은?
암호를 해시하는 방법이 사용 가능하며, 암호화를 사용하는
것이 보다 나은 방법
14
대칭키 표현 방법
평문 P를 키 K로 암호화
C = E(P,K) 또는 C = EK(P)
암호문 C를 키 K로 복호화
P = D(C,K) 또는 P = DK(C)
여기서, 암호에 대한 공격이 아니라 프로토콜에 대한 공격
이 주요 관심
암호화 알고리즘은 안전하다고 가정
15
대칭키 인증
앨리스와 밥은 대칭키 KAB를 공유
키 KAB는 앨리스와 밥만이 알고 있음.
공유하고 있는 키를 알고 있는가를 확인하여 인증 가능
이를 구현하는 방법은?
키를 노출시키지 않음.
16
대칭키를 이용한 인증
“나는 앨리스입니다”
R
앨리스, KAB
E(R,KAB)
밥, KAB
밥이 앨리스를 인증하는 안전한 방법
앨리스는 밥을 인증하지 않음.
상호인증을 구현하는 방법은?
17
상호인증?
“나는 앨리스입니다”, R
E(R,KAB)
앨리스
E(R,KAB)
밥
위 그림에서 잘못된 점은?
“앨리스”는 트루디(또는 아무나)일 수도 있음!
18
상호인증
“나는 앨리스입니다”, RA
RB, E(RA,KAB)
E(RB,KAB)
앨리스
밥
상호인증을 제공하는 것은 확실함.
안전성은? (다음 슬라이드를 보라)
19
상호인증 공격
1. “나는 앨리스입니다”, RA
2. RB, E(RA,KAB)
밥
트루디
3. “나는 앨리스입니다”, RB
4. RC, E(RB,KAB)
트루디
밥
20
상호인증
단방향 인증 프로토콜은 상호인증에서는 안정성이 보장되
지 않음.
비로 이점이 프로토콜의 미묘한 특성!
명백한 것과 안정성은 다른 문제
또한, 가정이나 환경이 바뀌면 프로토콜이 작동하지 않는
경우가 많음.
비로 이점이 보안상 결함을 만들어내는 일반적인 이유가 됨.
예를들어, IP가 이에 해당
21
대칭키 상호인증
“나는 앨리스입니다”, RA
RB, E(“밥”,RA,KAB)
E(“앨리스”,RB,KAB)
앨리스
밥
위 그림에서 보는 “아주 작은 변화”가 도움이 될까?
그렇다!
22
공개키 표현 방법
앨리스의 공개키로 M을 암호화: {M}앨리스
앨리스의 개인키로 M을 서명: [M]앨리스
그렇다면, 다음이 성립함.
[{M}앨리스 ]앨리스 = M
{[M]앨리스 }앨리스 = M
공개키 연산은 아무나,
오직 앨리스만이 자신의 개인키를 사용할 수 있음(서명).
23
공개키 인증
“나는 앨리스입니다”
{R}앨리스
R
앨리스
밥
위 그림은 안전한가?
트루디는 앨리스의 공개키로 아무거나 복호화할 수 있음!
반드시 두 개의 키쌍을 가져야 함.
24
대칭키 인증
“나는 앨리스입니다”
R
[R]앨리스
앨리스
밥
위 그림은 안전한가?
트루디는 앨리스 공개키로 아무거나 서명할 수 있음!
반드시 두 개의 키쌍을 가져야 함.
25
공개키
암호화 및 서명에 같은 키 쌍을 사용해서는 안됨.
암호화/복호화를 위한 키쌍
서명 및 확인을 위한 다른 키쌍
26
세션키
통상, 세션키가 요구됨.
특정 세션을 위한 대칭키
인증하고 나서 공유 대칭키를 실현할 수 있는가?
비밀성을 위해 사용될 수 있는 키
무결성을 위해 사용될 수 있는 키
어떤 경우에는, 완전순방향비밀성(PFS)이 요구됨.
추후 논의…
27
인증 & 세션키
“나는 앨리스입니다”, R
{R,K}앨리스
{R +1,K}밥
앨리스
밥
위 그림은 안전한가?
키에 대하여는 안전하나, 상호인증에 대해서는 아님
K가 밥의 난스 역할을 하고 있음에 주목
28
공개키 인증 및 세션키
“나는 앨리스입니다”, R
[R,K]밥
[R +1,K]앨리스
앨리스
밥
위 그림은 안전한가?
상호인증에 대해서는 안전하나 키는 비밀이 아님!
29
공개키 인증 및 세션키
“나는 앨리스입니다”, R
{[R,K]밥}앨리스
{[R +1,K]앨리스}밥
앨리스
밥
위 그림은 안전한가?
안전한 것으로 판단됨.
상호인증 및 세션키 구현!
30
공개키 인증 및 세션키
“나는 앨리스입니다”, R
[{R,K}앨리스]밥
[{R +1,K}밥]앨리스
앨리스
밥
위 그림은 안전한가?
안전한 것으로 판단됨.
단, 누구든지 {R,K}앨리스 {R +1,K}밥을 관찰할 수 있음.
31
간단한 세션키 프로토콜
E(KS, KAB)
E(메시지, KS)
앨리스, KAB
밥, KAB
트루디는 E(,)를 기록해둘 수 있음.
트루디가 KAB를 확보할 수 있다면, 마찬가지로 KS도 확보할
수 있음.
32
타임스탬프
타임스탬프 T는 현재 시간을 의미
타임스탬프는 많은 보안 프로토콜에서 사용되고 있음. (예:
커베로스)
타임스탬프는 메시지 갯수를 줄여주는 효과
난스의 경우에는 양쪽 모두 사전에 알고 있어야 함.
그러나, 타임스탬프 사용은 “시간”이 보안의 주요 요소가 된
다는 것을 의미
모든 시계가 똑같지 않으므로 시간오차(clock skew) 허용 불
가피 – 재연공격 가능성 제공
어느정도의 시간오차가 적절한가?
33
타임스탬프로 공개키 인증
“나는 앨리스입니다”, {[T,K]앨리스}밥
{[T +1,K]밥}앨리스
앨리스
밥
위 그림은 안전한가?
안전한 것으로 판단됨.
34
타임스탬프로 공개키 인증
“나는 앨리스입니다”, [{T,K}밥]앨리스
[{T +1,K}앨리스]밥
앨리스
밥
위 그림은 안전한가?
트루디는 {T,K}밥을 찾아내기 위하여 앨리스의 공개키를 이
용할 수 있음. 그 이후에는?
35
타임스탬프로 공개키 인증
“나는 트루디입니다”, [{T,K}밥]트루디
[{T +1,K}트루디]밥
트루디
밥
트루디는 앨리스-밥 세션키 K를 획득
트루디는 허용된 시간오차이내에 작업을 수행해야 함.
36
공개키 인증
선서명 이후 난스로 암호화
안전함.
선암호화 이후 난스로 서명
안전함.
선서명 이후 타임스탬프로 암호화
안전함.
선암호화 이후 타임스탬프로 서명
안전하지 않음!
바로 이점이 프로토콜의 미묘한 특성!
37
타임스탬프로 공개키 인증
“나는 앨리스입니다”, [{T,K}밥]앨리스
[{T +1}앨리스]밥
앨리스
밥
“선암호화 후서명”은 안전한가?
그렇다, 안전한 것으로 판단됨.
“선서명 후암호화” 역시 안전한가?
38
TCP 인증 공격
Random SEQ 번호
맥 OS X에서 최초 SEQ 번호
최초 SEQ 번호가 난수가 아니라면…
…최초 SEQ 번호를 추측해낼 가능…
…그러면, 앞의 공격이 성공할 수 있음
39
Thank you