29
8.5 인터넷 키교환 8. IP 보안 목포해양대 해양컴퓨터공학과 1

1장. 유닉스 시스템 프로그래밍 개요lily.mmu.ac.kr/lecture/17is/ch08-5.pdf · 키결정프로토콜(3) •Diffie-Hellmna 알고리즘의약점(계속) •중간자공격

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 1장. 유닉스 시스템 프로그래밍 개요lily.mmu.ac.kr/lecture/17is/ch08-5.pdf · 키결정프로토콜(3) •Diffie-Hellmna 알고리즘의약점(계속) •중간자공격

8.5 인터넷키교환8장. IP보안

목포해양대해양컴퓨터공학과

1

Page 2: 1장. 유닉스 시스템 프로그래밍 개요lily.mmu.ac.kr/lecture/17is/ch08-5.pdf · 키결정프로토콜(3) •Diffie-Hellmna 알고리즘의약점(계속) •중간자공격

개요

• IPSec의키관리(key management)

• 비밀키결정

• 비밀키분배

• 통신에는일반적으로 4개의키가필요

• 무결성에한쌍

• 기밀성에한쌍

• IPSec 구조에서지원하는키관리

• 수동(Manual) 관리

• 소규모, 고정적인환경

• 자동(Automated) 관리

• 대규모, 분산시스템

목포해양대해양컴퓨터공학과

2

Page 3: 1장. 유닉스 시스템 프로그래밍 개요lily.mmu.ac.kr/lecture/17is/ch08-5.pdf · 키결정프로토콜(3) •Diffie-Hellmna 알고리즘의약점(계속) •중간자공격

ISAKMP/Oakley (1)

• IPSec의디폴트자동화키관리프로토콜 :

• 구성요소

• Oakley 키결정프로토콜(Oakley Key Determination Protocol):

• Oakley 키교환프로토콜은 Diffie-Hellman 알고리즘기반으로추가

보안을제공하는프로토콜

• Oakley는특정형식을강요하지않고포괄적임

• 인터넷보안연관과키관리프로토콜(ISAKMP: Internet

Security Association and Key Management Protocol):

• ISAKMP는인터넷키관리에대한구조를지원

• 보안속성협상을위한특정프로토콜지원제공

목포해양대해양컴퓨터공학과

3

Page 4: 1장. 유닉스 시스템 프로그래밍 개요lily.mmu.ac.kr/lecture/17is/ch08-5.pdf · 키결정프로토콜(3) •Diffie-Hellmna 알고리즘의약점(계속) •중간자공격

ISAKMP/Oakley (2)

• ISAKMP

• 특정키교환알고리즘을강요하지않음

• 다양한키교환알고리즘사용가능하도록메시지유형의

집합으로구성

• Oakley

• 초기버전의 ISAKMP를강제적으로사용하도록한키교환

알고리즘

• IKEv2에서 Oakley와 ISAKMP라는용어는더이상사용하지

않지만기능은유지

목포해양대해양컴퓨터공학과

4

Page 5: 1장. 유닉스 시스템 프로그래밍 개요lily.mmu.ac.kr/lecture/17is/ch08-5.pdf · 키결정프로토콜(3) •Diffie-Hellmna 알고리즘의약점(계속) •중간자공격

키결정프로토콜 (1)

목포해양대해양컴퓨터공학과

5

Page 6: 1장. 유닉스 시스템 프로그래밍 개요lily.mmu.ac.kr/lecture/17is/ch08-5.pdf · 키결정프로토콜(3) •Diffie-Hellmna 알고리즘의약점(계속) •중간자공격

키결정프로토콜 (2)

• Diffie-Hellman 알고리즘의장점

• 비밀키는필요할때마다생성

• 오랫동안비밀키를보관해야할필요가없어서노출될위험성이작다

• 키교환을위해사전에전역변수에대한동의이외에기반구조를구성할필요없음

• Diffie-Hellmna 알고리즘의약점

• 상대방인증불가

• 상대방확인정보가전혀제공되지않음

• 중간자공격에취약

• 제3자 C가 A와통신을하는동안에는 B로위장하고 B와통신을하는동안에는 A로위장하는공격

목포해양대해양컴퓨터공학과

6

Page 7: 1장. 유닉스 시스템 프로그래밍 개요lily.mmu.ac.kr/lecture/17is/ch08-5.pdf · 키결정프로토콜(3) •Diffie-Hellmna 알고리즘의약점(계속) •중간자공격

키결정프로토콜 (3)

• Diffie-Hellmna 알고리즘의약점 (계속)

• 중간자공격

1. B는자신의공개키 𝑌𝐵를메시지에넣어 A의주소로 A에게전송

2. 공격자 E는이메시지를가로챈다.

• E는 B의공개키를저장하고 B의사용자 ID를포함하고 E의공개키 𝑌𝐸를포함하는

메시지를 A에게전송

• 이메시지를 E가보낼때는이것이 B의호스트시스템에서발송된것처럼위장

• A는 E의메시지를수신하고 B의사용자 ID를갖는 E의공개키를저장

• 비슷하게 E는 A가보낸것처럼위장을해서자신의공개키를 B에게전송

3. B는자신의개인키와 𝑌𝐸를사용해서비밀키 𝐾1을생성

• A는자신의개인키와 𝑌𝐸를사용해서비밀키 𝐾2를생성

• E는자신의비밀키 𝑋𝐸와 𝑌𝐵를이용해서비밀키 𝐾1을계산하고자신의

비밀키 𝑋𝐸 와 𝑌𝐴를이용해서비밀키 𝐾2를계산

4. 이제부터 E는 A에서 B로그리고 B에서 A로메시지를중개할수있음

• 이때 E는중개할메시지의암호를적절하게바꾸어서 A나 B가이통신에

E가개입되어있다는것을눈치채지못하게하는방법을사용해야함

목포해양대해양컴퓨터공학과

7

Page 8: 1장. 유닉스 시스템 프로그래밍 개요lily.mmu.ac.kr/lecture/17is/ch08-5.pdf · 키결정프로토콜(3) •Diffie-Hellmna 알고리즘의약점(계속) •중간자공격

키결정프로토콜 (4)

• Diffie-Hellman 알고리즘의약점 (계속)

• 클로깅(clogging) 공격에취약

• 공격자가매우큰수로이뤄진키를상대방에게요청해서수신자는해야할일을못하고쓸데없는모듈로지수를계산하는데아주많은시간을할애하게하는공격

• IKE 키결정알고리즘은 Diffie-Hellman의장점은살리고, 취약점을보완하는방향으로설계

목포해양대해양컴퓨터공학과

8

Page 9: 1장. 유닉스 시스템 프로그래밍 개요lily.mmu.ac.kr/lecture/17is/ch08-5.pdf · 키결정프로토콜(3) •Diffie-Hellmna 알고리즘의약점(계속) •중간자공격

IKE 키결정기능 (1)

• IKE 키결정알고리즘 5가지특징

1. 클로깅공격을막는쿠키(cookies)라고알려진메커니즘을사용

2. 양쪽이하나의군(group)협상가능

• 이것을이용해서근본적으로 Diffie-Hellman 키교환에필요한전역변수를결정

3. 재전송공격을막기위해비표(nonces)를사용

4. Diffie-Hellman 공개키값교환가능

5. Diffie-Hellman 교환에인증을사용하여중간자공격을차단가능

목포해양대해양컴퓨터공학과

9

Page 10: 1장. 유닉스 시스템 프로그래밍 개요lily.mmu.ac.kr/lecture/17is/ch08-5.pdf · 키결정프로토콜(3) •Diffie-Hellmna 알고리즘의약점(계속) •중간자공격

IKE 키결정기능 (2)

• 쿠키교환(cookie exchange)

• 쿠키교환을하려면양쪽은각각상대방이확인할수있는의사랜덤넘버인쿠키를초기메시지안에넣어전송

• 이확인단계는 Diffie-Hellman 키교환의첫번째메시지에서반복

• 만일발신지주소가위장되었다면공격자는어떤확인응답도받지못함

목포해양대해양컴퓨터공학과

10

Page 11: 1장. 유닉스 시스템 프로그래밍 개요lily.mmu.ac.kr/lecture/17is/ch08-5.pdf · 키결정프로토콜(3) •Diffie-Hellmna 알고리즘의약점(계속) •중간자공격

IKE 키결정기능 (3)

• 쿠키생성시만족해야하는 3가지조건(ISAKMP에서규정)

1. 쿠키는반드시특정발급자에종속되게만들어져야한다

2. 쿠키를발급하는자신을제외한어느누구도자신에의해

허용될쿠키를생성하는것이불가능해야한다

3. 쿠키생성과확인방법은프로세서자원을못쓰게하려는

의도를가진공격을막기위해서짧은시간내에빨리할수

있어야한다

• 추천하는쿠키생성방법

• IP 발신지와목적지의주소, UDP 발신지와목적지포트,

자신이생성한비밀값에처리속도가빠른해시수행

목포해양대해양컴퓨터공학과

11

Page 12: 1장. 유닉스 시스템 프로그래밍 개요lily.mmu.ac.kr/lecture/17is/ch08-5.pdf · 키결정프로토콜(3) •Diffie-Hellmna 알고리즘의약점(계속) •중간자공격

IKE 키결정기능 (4)

• IKE 키결정에서는 Diffie-Hellman 키교환에다른

군(group)을사용가능

• 각군은두개의전역매개변수와알고리즘식별자의정의를

포함

• 현재명세에포함된군

• 768-비트를모듈로로하는모듈로지수(modular

exponentiation)

𝑞 = 2768 - 2704 -1 + 264 ×( ⌊2638 × π⌋ + 149686)

α = 2

• 1024-비트를모듈로로하는모듈로지수

𝑞 = 21024 − 2960 − 1 + 264 × (⌊2894 × π⌋ + 129093)

α = 2

목포해양대해양컴퓨터공학과

12

Page 13: 1장. 유닉스 시스템 프로그래밍 개요lily.mmu.ac.kr/lecture/17is/ch08-5.pdf · 키결정프로토콜(3) •Diffie-Hellmna 알고리즘의약점(계속) •중간자공격

IKE 키결정기능 (5)

• 현재명세에포함된군 (계속)

• 1536-비트를모듈로로하는모듈로지수

• 매개변수는나중에결정.

• 2155위의타원곡선군

• 생성자(16진법): X = 7B, Y = 1C8

• 타원곡선매개변수(16진법): A = 0, Y = 7338F

• 2185위의타원곡선군

• 생성자(16진법): X = 18, Y = D

• 타원곡선매개변수(16진법): A = 0, Y = 1EE9

목포해양대해양컴퓨터공학과

13

Page 14: 1장. 유닉스 시스템 프로그래밍 개요lily.mmu.ac.kr/lecture/17is/ch08-5.pdf · 키결정프로토콜(3) •Diffie-Hellmna 알고리즘의약점(계속) •중간자공격

IKE 키결정기능 (6)

• 재전송공격을막기위해비표(nonce) 사용

• 비표: 지역적으로생성한의사랜덤넘버

• 응답할때사용되고, 안전한사용을위해교환이

이루어지는일정부분동안암호화

목포해양대해양컴퓨터공학과

14

Page 15: 1장. 유닉스 시스템 프로그래밍 개요lily.mmu.ac.kr/lecture/17is/ch08-5.pdf · 키결정프로토콜(3) •Diffie-Hellmna 알고리즘의약점(계속) •중간자공격

IKE 키결정기능 (7)

• IKE 키결정 3가지인증방법

• 디지털서명(Digital signature):

• 교환은쌍방이가진해시를이용해서인증

• 각개체는자신의개인키로해시를암호화

• 해시는사용자 ID, 비표등의매개변수에적용

• 공개키암호화(Public-key encryption):

• 교환은 ID와비표같은암호화매개변수에의해송신자의

개인키로인증

• 대칭키암호화(Symmetric-key encryption):

• 종류가다른메커니즘으로생성된키를이용해서교환

매개변수의대칭암호화에의한교환을인증

목포해양대해양컴퓨터공학과

15

Page 16: 1장. 유닉스 시스템 프로그래밍 개요lily.mmu.ac.kr/lecture/17is/ch08-5.pdf · 키결정프로토콜(3) •Diffie-Hellmna 알고리즘의약점(계속) •중간자공격

IKEv2 교환 (1)

목포해양대해양컴퓨터공학과

16

Page 17: 1장. 유닉스 시스템 프로그래밍 개요lily.mmu.ac.kr/lecture/17is/ch08-5.pdf · 키결정프로토콜(3) •Diffie-Hellmna 알고리즘의약점(계속) •중간자공격

IKEv2 교환 (2)

• 쌍으로메시지를교환

• 초기교환(initial exchange)

• 암호알고리즘에대한정보와 Diffie-Hellman 값,비표와함께사용할보안파라미터정보를교환

• 결과로 IKE SA라고하는특별한 SA를세팅• 이 SA는대등간의안전한채널을위한파라미터를정의

• 이채널을이용해서지속적인메시지교환

• 모든 IKE 메시지교환은암호와메시지인증에의해보호

• 두번째교환

• 상호간에인증을하고첫번째 IPsec SA를 SADB에위치하도록하고이를이용해서대등사이의일반(즉, 비-IKE) 통신을보호

• 일반용첫번째 SA를설립에네개의메시지가필요

• CREATE_CHILD_SA 교환을통해추가적인 SA 설정

• 정보교환을이용하여관리정보, IKEv2 오류메시지, 기타주의사항교환

목포해양대해양컴퓨터공학과

17

Page 18: 1장. 유닉스 시스템 프로그래밍 개요lily.mmu.ac.kr/lecture/17is/ch08-5.pdf · 키결정프로토콜(3) •Diffie-Hellmna 알고리즘의약점(계속) •중간자공격

헤더와페이로드형식 (1)

• IKE는보안연관을설립, 협상, 수정, 제거하기위한절차와패킷형식을정의

• SA 설립의일부로서, IKE는키생성과인증데이터교환을위한페이로드를정의• 이페이로드형식은특정키교환프로토콜, 암호알고리즘, 또는인증메커니즘과무관한일정한프레임워크를제공

• IKE 헤더형식• IKE 메시지구성

• IKE 헤더

• 하나이상의페이로드

• 모든구성이전송프로토콜안에서수행

• 명세에는구현시반드시전송프로토콜의 UDP사용하도록명시

목포해양대해양컴퓨터공학과

18

Page 19: 1장. 유닉스 시스템 프로그래밍 개요lily.mmu.ac.kr/lecture/17is/ch08-5.pdf · 키결정프로토콜(3) •Diffie-Hellmna 알고리즘의약점(계속) •중간자공격

헤더와페이로드형식 (2)

• IKE 헤더형식 (계속)

목포해양대해양컴퓨터공학과

19

Page 20: 1장. 유닉스 시스템 프로그래밍 개요lily.mmu.ac.kr/lecture/17is/ch08-5.pdf · 키결정프로토콜(3) •Diffie-Hellmna 알고리즘의약점(계속) •중간자공격

헤더와페이로드형식 (3)

• IKE 메시지헤더형식필드

• 개시자쿠키(Initiator SPI)(64 비트):

• 응답자쿠키(Responder SPI)(64 비트):

• 다음페이로드(Next Payload)(8 비트):

• 주버전(Major Version)(4 비트):

• 부버전(Minor Version)(4 비트):

• 교환유형(Exchange Type)(8 비트):

• 플래그(Flags)(8 비트):

• 메시지 ID(Message ID)(32 비트):

• 길이(Length)(32 비트): 목포해양대해양컴퓨터공학과

20

Page 21: 1장. 유닉스 시스템 프로그래밍 개요lily.mmu.ac.kr/lecture/17is/ch08-5.pdf · 키결정프로토콜(3) •Diffie-Hellmna 알고리즘의약점(계속) •중간자공격

헤더와페이로드형식 (4)

• IKE 페이로드유형

목포해양대해양컴퓨터공학과

21

Page 22: 1장. 유닉스 시스템 프로그래밍 개요lily.mmu.ac.kr/lecture/17is/ch08-5.pdf · 키결정프로토콜(3) •Diffie-Hellmna 알고리즘의약점(계속) •중간자공격

헤더와페이로드형식 (5)

• 페이로드유형 (계속)

• SA 페이로드(SA payload)를이용해서 SA 설정시작

• 페이로드는계층구조

• 페이로드로제안가능

• 각제안에다수의프로토콜포함가능

• 각프로토콜에는다수의전송포함

• 각전송은다수의속성

• 제안(Proposal):

• 이구조에서는제안이개수, 프로토콜 ID(AH, ESP, 또는 IKE), 전송

갯수지시자, 전송서브구조를나타낸다

• 한개이상의프로토콜을가지고있다면, 그안에는제안수와

동일한개수에따른제안서브구조가존재

목포해양대해양컴퓨터공학과

22

Page 23: 1장. 유닉스 시스템 프로그래밍 개요lily.mmu.ac.kr/lecture/17is/ch08-5.pdf · 키결정프로토콜(3) •Diffie-Hellmna 알고리즘의약점(계속) •중간자공격

헤더와페이로드형식 (6)

• 페이로드유형 (계속)

• 전송(Transform):

• 프로토콜이다르면각각다른전송유형을지원

• 전송을사용하는목적은주로특정프로토콜과함께사용되는암호알고리즘을정의하기위함

• 속성(Attribute):

• 각각의전송에는속성을가지고있는데이는전송규약을수정하거나완성하는데사용

• 속성의예: 키길이

목포해양대해양컴퓨터공학과

23

Page 24: 1장. 유닉스 시스템 프로그래밍 개요lily.mmu.ac.kr/lecture/17is/ch08-5.pdf · 키결정프로토콜(3) •Diffie-Hellmna 알고리즘의약점(계속) •중간자공격

헤더와페이로드형식 (7)

• 페이로드유형 (계속)

• 키교환페이로드 (Key Exchange payload)

• Oakley, Diffie-Hellman, PGP에서사용하는 RSA-기반키교환을

포함하는다양한키교환기술에사용

• 키교환데이터필드는세션키를생성하는데필요한데이터를

가지고있고사용하는키교환알고리즘에따라달라짐

• 식별페이로드 (Identification payload)

• 통신상대방의신원을결정하는데사용

• 정보인증여부를결정하는데사용

• 보통 ID 데이터필드는 IPv4나 IPv6 주소를포함 목포해양대해양컴퓨터공학과

24

Page 25: 1장. 유닉스 시스템 프로그래밍 개요lily.mmu.ac.kr/lecture/17is/ch08-5.pdf · 키결정프로토콜(3) •Diffie-Hellmna 알고리즘의약점(계속) •중간자공격

헤더와페이로드형식 (8)

• 페이로드유형 (계속)

• 인증서페이로드 (Certificate payload)

• 공개키인증서를전송

• 인증서인코딩필드는인증서유형이나인증서관련정보를나타냄

• 여기에포함되는정보

• PKCS#7로포장된 X.509 인증서(PKCS#7 wrapped X.509 certificate)

• PGP 인증서(PGP certificate)

• DNS 서명키(DNS signed key)

• X.509 인증서-서명(X.509 certificate-signature)

• X.509 인증서-키교환(X.509 certificate-key exchange)

• Kerberos 토큰(Kerberos tokens)

• 인증서취소목록(CRL: Certificate Revocation List)

• 기관취소목록(ARL: Authority Revocation List)

• SPKI 인증서(SPKI certificate)

목포해양대해양컴퓨터공학과

25

Page 26: 1장. 유닉스 시스템 프로그래밍 개요lily.mmu.ac.kr/lecture/17is/ch08-5.pdf · 키결정프로토콜(3) •Diffie-Hellmna 알고리즘의약점(계속) •중간자공격

헤더와페이로드형식 (9)

• 페이로드유형 (계속)

• 인증(Authentication) 페이로드

• 메시지를인증하기위해필요한데이터를포함

• 지금까지정의된인증방법유형

• RSA 디지털서명

• 공유키메시지무결성코드

• DSS 디지털서명

• 비표(Nonce payload) 페이로드

• 교환하는과정이실시간에수행되고재전송공격에대한방어를보장하는데사용하는랜덤데이터를갖고있다

목포해양대해양컴퓨터공학과

26

Page 27: 1장. 유닉스 시스템 프로그래밍 개요lily.mmu.ac.kr/lecture/17is/ch08-5.pdf · 키결정프로토콜(3) •Diffie-Hellmna 알고리즘의약점(계속) •중간자공격

헤더와페이로드형식 (10)

• 페이로드유형 (계속)

• 통지(Notify) 페이로드

• SA나이 SA 협상과관련된오류나상태정보를가짐

• 제거(Delete) 페이로드

• 송신자가자신의데이터베이스에서제거해서더이상유효하지않은한개또는여러개의 SA를나타냄

• 벤더 ID(Vendor ID) 페이로드

• 벤더가정의한상수

• 벤더는이상수를이용하여이를구현하는원격인스턴스를인식하고구별

• 이메커니즘을가지고벤더는백그라운드호환성을유지하면서새로운기능실험

목포해양대해양컴퓨터공학과

27

Page 28: 1장. 유닉스 시스템 프로그래밍 개요lily.mmu.ac.kr/lecture/17is/ch08-5.pdf · 키결정프로토콜(3) •Diffie-Hellmna 알고리즘의약점(계속) •중간자공격

헤더와페이로드형식 (11)

• 페이로드유형 (계속)

• 트래픽선택자(Traffic Selector) 페이로드

• IPsec 서비스처리를위한패킷흐름을식별

• 암호화된(Encrypted) 페이로드

• 암호화된형태의다른페이로드가들어감

• 암호화된페이로드형식은 ESP의암호화된페이로드와유사

• 암호알고리즘에서초기벡터필요시초기벡터포함, 인증이선택되면 ICV를포함

• 구성(Configuration) 페이로드

• IKE 대등사이에구성정보를교환

• 확장인증프로토콜(EAP: Extensible Authentication Protocol) 페이로드

• EAP를이용해서 IKE SA를인증

목포해양대해양컴퓨터공학과

28

Page 29: 1장. 유닉스 시스템 프로그래밍 개요lily.mmu.ac.kr/lecture/17is/ch08-5.pdf · 키결정프로토콜(3) •Diffie-Hellmna 알고리즘의약점(계속) •중간자공격

오류메시지와상태메시지

목포해양대해양컴퓨터공학과

29