12
V V P P N N I I S S A A K K M M P P ( ( I I n n t t e er r n n e et t S S e ec c u u r r i i t t y y A A s ss so o c c i i a a t t i i o o n n a a n n d d K K e ey y M M a a n n a a g g e em m e en n t t P P r r o o t t o o c c o o l l ) ) 강권학 안철수연구소 연구원 Technical Report

VPN – ISAKMP(Internet Security Association and Key …image.ahnlab.com/file_upload/tech/VPN(4)_ISAKMP.pdf ·  · 2007-04-25지금까지 IPsec 프로토콜의 두 핵심 프로토콜인

  • Upload
    lephuc

  • View
    221

  • Download
    5

Embed Size (px)

Citation preview

Page 1: VPN – ISAKMP(Internet Security Association and Key …image.ahnlab.com/file_upload/tech/VPN(4)_ISAKMP.pdf ·  · 2007-04-25지금까지 IPsec 프로토콜의 두 핵심 프로토콜인

VVPPNN –– IISSAAKKMMPP((IInntteerrnneett SSeeccuurriittyy AAssssoocciiaattiioonn

aanndd KKeeyy MMaannaaggeemmeenntt PPrroottooccooll)) 프프로로토토콜콜

강권학

안철수연구소 연구원

Technical Report

Page 2: VPN – ISAKMP(Internet Security Association and Key …image.ahnlab.com/file_upload/tech/VPN(4)_ISAKMP.pdf ·  · 2007-04-25지금까지 IPsec 프로토콜의 두 핵심 프로토콜인

목 차

1. 들어가며

1.1. ISAKMP 요구 사항

1.2. 키 교환(Key Exchange) 속성

1.3. 용어 설명

2. 패이로드 구조

2.1. ISAKMP 헤더 구조

2.2. 범용 패이로드 헤더

2.3. 데이터 속성

2.4. SA 패이로드

3. 메시지 교환 형태

3.1. Base 메시지 교환

3.2. ID Protection 메시지 교환

3.3. Authentication-only 메시지 교환

3.4. Aggressive 메시지 교환

3.5. Informational 메시지 교환

4. 참고 문헌

Page 3: VPN – ISAKMP(Internet Security Association and Key …image.ahnlab.com/file_upload/tech/VPN(4)_ISAKMP.pdf ·  · 2007-04-25지금까지 IPsec 프로토콜의 두 핵심 프로토콜인

ISAKMP 프로토콜 3

Copyright ⓒ2002 by Ahnlab, Inc. All rights reserved.

1. 들어가며

지금까지 IPsec 프로토콜의 두 핵심 프로토콜인 AH 프로토콜과 ESP 프로토콜에 대해서 알아보았다.

다시 한번 짚어보자면, AH 프로토콜은 송신자와 수신자가 같은 키를 공유하고 이 키를 이용하여 해시

를 구해서 인증을 수행하며, ESP 프로토콜은 송신자와 수신자가 같은 키를 공유하고 대칭형 암복호화

알고리즘을 사용하여 패킷을 암호화 및 복호화하는 것이다.

여기서 송신자와 수신자가 같은 비밀키를 안전하게 나누어 가지는 방법이 문제가 될 수 있음을 알수

있다. 이러한 문제를 해결하기 위한 가장 원시적인 방법은 송신자와 수신자가 IPsec을 수행할 프로토

콜(즉, AH 프로토콜로 할 것인가? ESP 프로토콜로 할 것인가?), 알고리즘 (DES 알고리즘으로 암호화

할 것인가? AES 알고리즘으로 것인가? SHA -1으로 인증할 것인가? MD5 알고리즘으로 인증할 것인

가?), 키(암호화에 어떤 키를 사용할 것인가? 인증에는 어떤 키를 사용할 것인가?), 그리고 그 외의

속성들(현재의 암복호화/인증에 쓰이는 세션 키의 유효 기간, 키의 길이, 터널 모드/트랜스포트 모드

등)의 정보를 직접 입력하는 방법이 있을 수 있다.

위와 같이 IPsec 통신을 하기 위해서 정의하는 파라미터들(프로토콜, 알고리즘, 키, 그 외 속성들)을

SA(Security Association, 보안 연관이라고 직역할 수도 있지만, 아직 보편적으로 받아들여지지 않은

용어이므로 편의상 SA라고 표기하겠다.)라고 한다. 그리고 송신자와 수신자의 관리자가 직접 손으로

SA 정보를 입력하는 방식을 수동 키 입력방식(manual keying) 이라고 부른다.

그러나 암호화 프로토콜의 특성상 특정 세션을 암호화/복호화 하는 세션키는 오랫동안 사용되면 암호

분석학(crypto analysis)적 공격에 취약해 질 수 있으므로, 주기적으로 세션키를 교체하게 된다. 통상

적으로 세션키는 1~8 시간마다 또는 (2^32 ? 1)개의 패킷을 전송하기 전에 변경되어야 한다. 그런데

송신자와 수신자간에 주기적으로 이렇게 세션 키 및 SA 정보를 입력하는 것은 매우 불편한 일일 것

이다.

이에 자동으로 송신자와 수신자가 안전하게 SA 및 키를 나누어 가질 수 있는 프로토콜이 필요하게

되었다. 인터넷 환경에서 안전하게 SA 및 세션 키를 관리(생성, 협상, 삭제)할 수 있는 프로토콜을

ISAKMP(Internet Security Association and Key Management Protocol) 이라고 한다. (발음은 편의상

‘이사캠프’로 읽거나, 각각의 알파벳을 다 읽는다.)

ISAKMP 프로토콜은 SA를 생성, 수정, 삭제하기 위한 절차(procedure) 및 패킷 구조(packet format)

를 정의하고 있으며, 상당히 범용적인 프로토콜로서 설계되었다. 결국 IPsec 프로토콜만을 대상으로

정의한 것은 아니며, IPsec 프로토콜에 대해서는 다음에 다룰 IKE 프로토콜에서 IPsec을 위해 확장한

부분이 포함되어서 사용된다.

Page 4: VPN – ISAKMP(Internet Security Association and Key …image.ahnlab.com/file_upload/tech/VPN(4)_ISAKMP.pdf ·  · 2007-04-25지금까지 IPsec 프로토콜의 두 핵심 프로토콜인

ISAKMP 프로토콜 4

Copyright ⓒ2002 by Ahnlab, Inc. All rights reserved.

IPsec 프로토콜과 ISAKMP 프로토콜과의 관계를 그림으로 표현하면 다음과 같다.

위의 그림에서 Security Protocol에 해당하는 부분이 IPsec 프로토콜이며, API는 ISAKMP 프로토콜이

IPsec 프로토콜로부터 특정 메시지를 notify 받거나, SA 정보를 관리하기 위한 인터페이스를 정의한

것이다. DOI(Domain of Interpretation, 메시지 해석 도메인) Definition은 메시지를 해석할 도메인을 정

의한 것으로서 현재까지는 IPsec DOI만이 정의되어 있다.

1.1. ISAKMP 요구 사항

ISAKMP는 메시지 교환에 있어서 강한 인증 (strong authentication) 기능을 제공해야 한다. 강한 인증

이라는 것은 IP 주소 등 위조가 가능하지 않고 암호학적인 측면에서 보호되는 메커니즘을 포함한 인

증 기능을 말한다. ISAKMP 프로토콜은 디지털 서명 알고리즘을 지원해야 하지만, 특정한 알고리즘에

제약되어 있지는 않다.

다음의 소절에서 먼저 키 교환 프로토콜이 가져야 할 속성에 대해서 살펴보고 후에 ISAKMP 프로토콜

에서 사용하는 메시지 구조 및 키 교환 절차에 대해서 살펴보도록 한다.

1.2. 키 교환 (Key Exchange) 속성

1.2.1. 키 설정 (Key Establishment)

공개키 암호화 방식에 있어서 주요한 키 설정 방법은 키 생성(generation)과 키 전달 (transportation)

두 가지가 있다. 키 전달 방법은 송신자가 임의의 세션 키를 생성한 후 수신자의 공개키로 암호화하

여 상대방에게 전달하는 방법이다. 수신자는 자신의 비밀키로 복호화하여 현재 생성된 세션키를 알아

Page 5: VPN – ISAKMP(Internet Security Association and Key …image.ahnlab.com/file_upload/tech/VPN(4)_ISAKMP.pdf ·  · 2007-04-25지금까지 IPsec 프로토콜의 두 핵심 프로토콜인

ISAKMP 프로토콜 5

Copyright ⓒ2002 by Ahnlab, Inc. All rights reserved.

낼 수가 있다. 키 생성 방법 중 대표적인 것으로는 디피 헬만(Diffie-Hellman) 키 교환방법이 있다.

키 생성 방법을 이용하는 장점은 양쪽 모두가 세션 키를 생성하는데 참여하도록 하며, 개개의 키 교

환이 독립적이어서 PFS(Perfect Forward Secrecy) 서비스를 제공할 수 있다는 것이다.

1.2.2. 키 교환 인증 (Key Exchange Authentication)

키 교환은 교환 중 및 교환이 완료된 후에도 발신자를 인증할 있어야 한다. 키 교환 중의 인증은 키

교환 프로토콜이 완료되기 전에 전달되고 있는 비밀 세션 키를 가지고 있다는 것을 증명함으로써 이

루어진다. 대부분의 키 교환 프로토콜은 키 교환 중의 인증을 선호하는데, 이렇게 키 교환 중에 인증

하게 되면 인증 되지 않은 메시지에 대해서 불필요하게 컴퓨팅 파워 측면에서 비싼 암호화 연산을 수

행하지 않아도 되기 때문이다.

1.2.3. 키 교환 대칭성 (Key Exchange Symmetry)

키 교환에 참여하는 두 개체 중 임의의 개체가 키 교환을 시작할 수 있는 성질을 나타낸다. 이러한

성질은 둘 중 누가 키 교환을 시작했는지 기억할 필요가 없어서 좋기는 하지만, 키 교환 프로토콜에

있어서의 대칭성은 반향 공격(reflection attack)에 대한 취약성을 드러내기도 한다.

1.3. 용어 설명

1.3.1. 보안 프로토콜 (Security Protocol)

보안 프로토콜은 네트워크 스택 중에서 보안 서비스를 제공하는 특정 부분을 말한다. 예를 들면

IPsec AH 프로토콜과 IPsec ESP 프로토콜은 별도의 보안 프로토콜이다. TLS 등의 프로토콜도 별도의

보안 프로토콜이다. 그러나 특정 보안 프로토콜은 무결성 서비스나 비밀성 서비스 등 여러 가지 보안

서비스를 제공할 수 있다.

1.3.2. 보호 스위트 (Protection Suite)

보호 스위트는 여러 보안 프로토콜을 적용하여 얻어지는 일련의 보호 서비스들을 일컫는다. 예를 들

면 IPsec ESP 프로토콜 DES 알고리즘과 IPsec AH 프로토콜 MD5 알고리즘으로 하나의 보호 스위트

를 구성할 수 있다. 하나의 스위트에 포함되는 모든 서비스들은 하나의 개체로 다루어진다. 왜냐하면

다른 프로토콜 스위트에 있는 서비스들이 상호간에 영향을 미칠 수 있으며, 하나의 스위트는 전체적

으로 분석되고 검증되기 때문이다.

1.3.3. SA (Security Associat ion)

SA는 보안 프로토콜에 고유한 파라미터들의 집합이라고 정의된다. SA에 정의되는 것은 사용할 알고

리즘, 모드, 암복호화 및 인증용 키 등이다. 종종 SA는 ISAKMP SA, ESP SAl, TLS SA 등처럼 연관된

보안 프로토콜과 결합되어져서 이름이 붙는다.

Page 6: VPN – ISAKMP(Internet Security Association and Key …image.ahnlab.com/file_upload/tech/VPN(4)_ISAKMP.pdf ·  · 2007-04-25지금까지 IPsec 프로토콜의 두 핵심 프로토콜인

ISAKMP 프로토콜 6

Copyright ⓒ2002 by Ahnlab, Inc. All rights reserved.

1.3.4. ISAKMP SA

ISAKMP SA는 ISAKMP 서버들간의 메시지 자체를 보호하기 위해서 사용된다.

1.3.5. SPI (Security Parameter Index)

보안 프로토콜과 연관되어 있는 SA에 대한 식별자의 역할을 한다. 각 보안 프로토콜들은 SPI를 표시

할 영역을 가지고 있으며, SPI의 유일성은 구현 시스템의 특성에 따라 다르긴 하지만, (보안 프로토콜,

SPI)쌍은 특정 시스템 내에서의 유일한 SA를 결정하기에 충분하다. DOI의 종류에 따라서 SA를 식별

하기 위해서는 추가적인 정보가 필요할 수도 있다.

1.3.6. DOI (Domain of Interpretation)

DOI는 패이로드의 형식, 메시지 교환의 종류, 보안 관련된 정보들의 이름을 정하는 약정

(convention) 들을 정의한다.

1.3.7. Situation

Situation은 현재 협상하고 있는 세션을 보호하기위해서 필요한 보안 서비스를 결정하기 위해서 필요

한 보안에 관련된 모든 정보를 포함하고 있다. Situation에는 주소, 보안 등급, 운용 모드(보통 또는

긴급) 등의 정보가 포함될 수 있다.

1.3.8. 제안 (Proposal)

제안은 주어진 상황에서 제안자가 수신자에게 선택할 수 있도록 사용 가능한 보호 스위트들을 나열한

것이다. 앞에 나열된 것일수록 제안자가 더욱 선호한다는 것을 나타낸다.

1.3.9. 패이로드 (Payload)

일반적인 의미에서의 패이로드는 화물선 등에 실려가는 화물들을 의미한다. 프로토콜에서 패이로드는

실제 전달되는 의미 있는 구조화된 데이터를 말하며, ISAKMP 프로토콜은 DOI에서 정의한 영역 안에

서 여러 종류의 패이로드들을 정의하고 있다. ISAKMP에는 SA 데이터, 또는 키 교환을 위한 데이터들

을 전송하기 위해 정의되어 있다. ISAKMP에서는 DOI에서 정의된 대로 패이로드를 생성하고 해석한다.

패이로드의 구조에 대해서는 다음의 장에서 다룬다.

1.3.10. 메시지 교환 형태 (Exchange Type)

메시지 교환 형태는 ISAKMP 메시지 교환을 위해서 정의한 메시지의 수와 포함되는 패이로드들을 정

의한다. 각 메시지 교환 형태는 특정한 보안 서비스를 제공하기 위해서 설계되었으며, 익명성 서비스,

세션 키의 PFS 서비스, 상대방 인증 등의 서비스를 제공하기 위해 특정 메시지 교환 형태가 정의되

어 있다.

다음의 각 장에서 ISAKMP에서 정의하는 메시지 구조 및 메시지 교환 방법에 대해서 설명하겠다.

Page 7: VPN – ISAKMP(Internet Security Association and Key …image.ahnlab.com/file_upload/tech/VPN(4)_ISAKMP.pdf ·  · 2007-04-25지금까지 IPsec 프로토콜의 두 핵심 프로토콜인

ISAKMP 프로토콜 7

Copyright ⓒ2002 by Ahnlab, Inc. All rights reserved.

2. 패이로드 구조

2.1. ISAKMP 헤더 구조

각 ISAKMP 메시지는 다음의 그림과 같은 메시지 헤더에서 시작한다.

- Initiator Cookie (8 octets): ISAKMP SA를 시작한 개체 (initiator)가 붙인 식별자이다.

- Responder Cookie (8 octets): 수신자가 붙인 식별자이다.

- Next Payload (1 octet): 다음에 오는 패이로드의 종류를 나타낸다. ISAKMP에서 정의한 패이

로드 타입을 나타내는 식별자들은 다음과 같다.

Page 8: VPN – ISAKMP(Internet Security Association and Key …image.ahnlab.com/file_upload/tech/VPN(4)_ISAKMP.pdf ·  · 2007-04-25지금까지 IPsec 프로토콜의 두 핵심 프로토콜인

ISAKMP 프로토콜 8

Copyright ⓒ2002 by Ahnlab, Inc. All rights reserved.

- Major Version (4 bits): ISAKMP 표준에 맞게 구현한 경우 1, 그렇지 않은 경우 0이 표시된다.

- Minor Version (4 bits): ISAKMP 표준에 맞게 구현한 경우 0, 그렇지 않은 경우 1이 표시된다.

결국 표준에 맞게 구현된 경우 1.0, 그렇지 않은 경우에는 0.1로 표시하도록 되어있다.

- Exchange Type (1 octet): 메시지 교환 형태 식별자를 나타낸다. ISAKMP에서 정의한 식별자

들은 다음과 같다.

- Flags (1 octet): ISAKMP 메시지 교환 형태에 설정된 특정 옵션을 나타낸다.

- Message ID (4 octets): 2단계 메시지 교환을 위해서 사용되는 ID이다. 1단계 및 2단계 메시

지 교환에 대해서는 IKE 프로토콜에서 다룬다.

- Length (4 octets): 헤더를 포함한 전체 메시지의 길이를 octet 단위로 나타낸다.

2.2. 범용 패이로드 헤더

모든 패이로드들은 다음과 같은 범용 패이로드 헤더를 가지고 있다.

- Next Payload: 다음 패이로드의 종류

- RESERVED: 사용되지 않으며, 반드시 0으로 세팅되어 있어야 한다.

- Payload Length: 헤더를 포함한 패이로드의 길이를 나타낸다.

Page 9: VPN – ISAKMP(Internet Security Association and Key …image.ahnlab.com/file_upload/tech/VPN(4)_ISAKMP.pdf ·  · 2007-04-25지금까지 IPsec 프로토콜의 두 핵심 프로토콜인

ISAKMP 프로토콜 9

Copyright ⓒ2002 by Ahnlab, Inc. All rights reserved.

2.3. 데이터 속성

ISAKMP 패이로드 안에는 여러 가지 속성 값들을 기술할 필요가 있다. 이 경우에 속성 값들을 표현하

는 일반적인 구조는 다음과 같다.

- Attribute Type (2 octets): 표현하고자 하는 속성의 종류를 나타내며, DOI에서 정의되어 있다.

- Attribute Length (2 octets): AF가 0인 경우는 실제 데이터의 길이를, 1인 경우에는 데이터 값

을 나타낸다.

- Attribute Value (가변): AF가 0인 경우에, 표시된 길이만큼의 데이터 값을 가진다.

2.4. SA 패이로드

- DOI (4 octets): 현재 협상되고 있는 SA의 DOI를 나타낸다. 1단계 SA일 경우에는 0이 사용

되며, IPsec DOI에서 해석되어야 하는 경우에는 1의 값이 표시된다.

- Situation (가변): DOI에 따라서 필요한 정보를 기술한다.

이외에도 여러 가지 패이로드들이 정의되어 있어서, 특정 메시지 교환 형태에 따라서 적절히 패이로

드를 구성하여 협상을 하게 된다.

다음 소절에서는 ISAKMP 메시지 교환에 대하여 설명하도록 한다.

3. 메시지 교환 형태

ISAKMP에서는 기본적인 메시지 교환 형태에 대해서 정의하였다. ISAKMP는 기본적으로 2단계의 협상

형태로 이루어지게 되는데, 각 단계에서 협상되는 SA는 다음과 같다.

Page 10: VPN – ISAKMP(Internet Security Association and Key …image.ahnlab.com/file_upload/tech/VPN(4)_ISAKMP.pdf ·  · 2007-04-25지금까지 IPsec 프로토콜의 두 핵심 프로토콜인

ISAKMP 프로토콜 10

Copyright ⓒ2002 by Ahnlab, Inc. All rights reserved.

1단계 SA : ISAKMP 서버 간에 단 1개만이 설정되는 SA로서 이후 단계의 SA 메시지들

을 보호하기 위한 SA를 정의한다.

2단계 SA : 2단계에서 설정되는 SA는 IPsec과 같은 보안 프로토콜에서 사용할 SA를 협

상한다. 이 2단계 협상을 위한 메시지 자체는 1단계 SA에서 보호된다. 1단계 SA는

ISAKMP 서버 간에 단 한 개만 존재하지만, 2단계 SA는 IPsec 프로토콜의 필요에 따라

서 여러 SA들을 만들 수 있다.

ISAKMP에서 정의한 메시지 교환 형태는 Base, Identity Protection, Authentication-only, Aggressive,

Informational로 정의되어 있다.

3.1. Base 메시지 교환

- HDR: SA 헤더

- SA: SA 패이로드

- Nonce: Nonce 패이로드, 암호학적으로 건전한 연산을 수행할 수 있음을 입증하는데 사용되

며, 이 패이로드의 값은 키를 생성하는데 사용된다.

- KE: 키 교환 패이로드, 키 생성을 위한 값을 교환하기 위해서 쓰인다.

- ID: 자기 ID 정보를 가지고 있으며, IDi는 발신자의 ID 정보를 IDr은 수신자의 ID 정보를 담고

있다.

- Auth: 인증 패이로드, 메시지를 인증하고, 현재 SA에서 키가 적절히 공유되었는지 확인하기

위해서 사용된다.

Base 교환에서는 메시지 1과 2에서 SA 설정을 수행하고, 메시지 3과 4에서 세션 키를 생성하기 위

한 정보와 ID 정보를 전달한다.

Page 11: VPN – ISAKMP(Internet Security Association and Key …image.ahnlab.com/file_upload/tech/VPN(4)_ISAKMP.pdf ·  · 2007-04-25지금까지 IPsec 프로토콜의 두 핵심 프로토콜인

ISAKMP 프로토콜 11

Copyright ⓒ2002 by Ahnlab, Inc. All rights reserved.

3.2. ID Protection 메시지 교환

기본적으로 Base 메시지 교환과 전달되는 패이로드들은 같지만, 6개의 메시지로 구성된다. 메시지 3

과 4에서 현재 SA 및 2단계 SA 메시지 보호를 위한 키의 공유가 이루어져서 메시지 5와 6은 헤더를

제외한 나머지 정보들이 암호화되어서 교환된다. 결국 ID 정보를 유출하지 않고 안전하게 메시지 교

환을 수행할 수 있다.

3.3. Authentication-only 메시지 교환

키를 생성하지 않고 인증만을 위해서 사용하는 메시지 교환이다.

3.4. Aggressive 메시지 교환

세 메지만으로 상대방을 인증하고, SA의 보호를 위한 키까지 생성한다.

Page 12: VPN – ISAKMP(Internet Security Association and Key …image.ahnlab.com/file_upload/tech/VPN(4)_ISAKMP.pdf ·  · 2007-04-25지금까지 IPsec 프로토콜의 두 핵심 프로토콜인

ISAKMP 프로토콜 12

Copyright ⓒ2002 by Ahnlab, Inc. All rights reserved.

3.5. Informational 메시지 교환

일방적으로 메시지를 전달하며, 단순히 정보의 전달 (Notification) 또는 특정 SA를 지우라는 (Delete)

명령을 보내고 끝난다.

ISAKMP는 범용으로 SA의 협상 및 세션키의 생성을 위해서 사용될 수 있는 프로토콜이다. 이번회에

서는 범용 메시지의 구조 및 메시지 교환을 통해서 협상하는 기본적인 메시지 교환형태에 대해서 살

펴보았다. 다음회에서는 IPsec 도메인에서 ISAKMP를 적용하여 세션키 및 SA 협상을 수행하는 IKE

프로토콜에 대해서 살펴보도록 하겠다.

4. 참고문헌

(1) Carlton R. Davis, IPsec: Securing VPNs, Osborne/McGraw-Hill, 2001.

(2) Elizabeth Kaufman, Andrew Newman, Implementing IPsec: Making Security Work on VPNs,

Intranets, and Extranets, Wiley Computer Publishing, 1999.

(3) Richard E. Smith, Internet Cryptography, Addison-Wesley Longman, 1997.

(4) 한국정보보호진흥원, IP 계층과 응용계층에서의 VPN 보안기술 표준(안), 1999. 3.

(5) RFC 2411, IP Security Document Roadmap. (http://www.ietf.org/html.charters/ipsec-

charter.html )

(6) RFC 2401, Security Architecture for the Internet Protocol.

(7) RFC 2408, Internet Secuirty Association and Key Management Protocol (ISAKMP).