1. ISAKMP (Internet Security Association and Key Management Protocol)
IPSec 의 AH, ESP 프로토콜
- AH : 송신자와 수신자가 같은 키를 공유하고 이 키를 이용하여 해시를 구해서 인증을 수행
- ESP : 송신자와 수신자가 같은 키를 공유하고 대칭형 암복호화 알고리즘을 사용하여 패킷을 암호화 및 복호화
따라서 송신자와 수신자가 IPSec을 수행할 프로토콜(AH/ESP), 알고리즘(DES/AES/SHA-1/MD5), 그리고 그 외의 속성들(현재의 암복호화/인증에 쓰이는 세션 키의 유효 기간, 키의 길이, 터널 모드/트랜스포트 모드 등)의 정보를 직접 입력하는 방법이 있을 수 있다.
위와 같이 IPSec 통신을 하기 위해서 정의하는 파라미터들(프로토콜, 알고리즘, 키, 그 외의 속성들)을 SA(Security Association)라고 한다. 그리고 송신자와 수신자의 관리자가 직접 손으로 SA 정보를 입력하는 방식을 수동 키 입력방식(manual keying) 이라고 부른다.
그러나 암호화 프로토콜의 특성상 특정 세션을 암호화/복호화 하는 세션 키는 오랫동안 사용되면 암호 분석학(crypto analysis) 적 공격에 취약해질 수 있으므로, 주기적으로 세션 키를 교체하게 된다.
그런데 송신자와 수신자 간에 주기적으로 이렇게 세션 키 및 SA 정보를 입력하는 것은 매우 불편한 일일 것이다.
이에 자동으로 송신자와 수신자가 안전하게 SA 및 키를 나누어 가질 수 있는 프로토콜이 필요하게 되었다. 인터넷 환경에서 안전하게 SA 및 세션 키를 관리(생성, 협상, 삭제) 할 수 있는 프로토콜을 ISAKMP (Internet Security Association and Key Management Protocol)이라고 한다.
ISAKMP 프로토콜은 SA를 생성, 수정, 삭제하기 위한 절차 및 패킷 구조를 정의하고 있으며, 상당히 범용적인 프로토콜로서 설계되었다. 결국 IPSec 프로토콜만을 대상으로 정의한 것은 아니며, IPSec 프로토콜에 대해서는 IKE 프로토콜에서 IPSec을 위해 확장한 부분이 포함되어서 사용된다.
IPSec 프로토콜과 ISAKMP 프로토콜과의 관계를 그림으로 표현하면 다음과 같다.
위의 그림에서 Security Protocol 에 해당하는 부분이 IPsec 프로토콜이며, API는 ISAKMP 프로토콜이 IPsec 프로토콜로부터 특정 메시지를 통보받거나, SA 정보를 관리하기 위한 인터페이스를 정의한 것이다. DOI(Domain of Interpretation, 메시지 해석 도메인) Definition 은 메시지를 해석할 도메인을 정의한 것으로서 현재까지는 IPsec DOI 만이 정의되어 있다.
2. ISAKMP 요구 사항
ISAKMP는 메시지 교환에 있어서 강한 인증(strong authentication) 기능을 제공해야 한다. 강한 인증이라는 것은 IP 주소 등 위조가 가능하지 않고 암호학적인 측면에서 보호되는 메커니즘을 포함한 인증 기능을 말한다. ISAKMP 프로토콜은 디지털 서명 알고리즘을 지원해야 하지만, 특정한 알고리즘에 제약되어 있지는 않다.
3. ISAKMP 헤더 구조
각 ISAKMP 메시지는 다음의 그림과 같은 메시지 헤더로 시작한다.
- Initiator Cookie (8 octets) : ISAKMP SA 를 시작한 개체(initiator)가 붙인 식별자이다.
- Responder Cookie (8 octets) : 수신자가 붙인 식별자이다.
- Next Payload (1 octet) : 다음에 오는 페이로드의 종류를 나타낸다. ISAKMP 에서 정의한 페이로드 타입을 나타내는 식별자들은 다음과 같다.
- 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 단위로 나타낸다.
4. 범용 페이로드 헤더 구조
모든 페이로드들은 다음과 같은 범용 페이로드 헤더를 가지고 있다.
- Next Payload : 다음 페이로드의 종류
- RESERVED : 사용되지 않으며, 반드시 0으로 세팅되어 있어야 한다.
- Payload Length : 헤더를 포함한 페이로드의 길이를 나타낸다.
5. 데이터 속성 구조
ISAKMP 페이로드 안에는 여러 가지 속성 값들을 기술할 필요가 있다. 이 경우에 속성 값들을 표현하는 일반적인 구조는 다음과 같다.
- Attribute Type (2 octets) : 표현하고자 하는 속성의 종류를 나타내며, DOI 에서 정의되어 있다.
- Attribute Length (2 octets) : AF 가 0인 경우는 실제 데이터의 길이를, 1인 경우에는 데이터 값을 나타낸다.
- Attribute Value (가변) : AF가 0인 경우에, 표시된 길이만큼의 데이터 값을 가진다.
6. SA 페이로드 구조
- DOI (4 octets) : 현재 협상되고 있는 SA 의 DOI 를 나타낸다. 1단계 SA 일 경우에는 0이 사용되며, IPsec DOI 에서 해석되어야 하는 경우에는 1의 값이 표시된다.
- Situation (가변) : DOI에 따라서 필요한 정보를 기술한다.
이외에도 여러 가지 페이로드들이 정의되어 있어서, 특정 메시지 교환 형태에 따라서 적절히 페이로드를 구성하여 협상을 하게 된다.
7. 메시지 교환 형태
ISAKMP 에서는 기본적인 메시지 교환 형태에 대해서 정의하였다. ISAKMP 는 기본적으로 2단계의 협상 형태로 이루어지게 되는데, 각 단계에서 협상되는 SA는 다음과 같다.
- 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 로 정의되어 있다.
① Base 메시지 교환
Base 교환에서는 메시지 1과 2에서 SA 설정을 수행하고, 메시지 3과 4에서 세션 키를 생성하기 위한 정보와 ID 정보를 전달한다.
- HDR : SA 헤더
- SA : SA 페이로드
- Nonce : Nonce 페이로드. 암호학적으로 건전한 연산을 수행할 수 있음을 입증하는데 사용되며, 이 페이로드의 값은 키를 생성하는데 사용된다.
- KE : 키 교환 페이로드. 키 생성을 위한 값을 교환하기 위해서 쓰인다.
- ID 자기 ID 정보를 가지고 있으며, IDi는 발신자의 ID 정보를 IDr은 수신자의 ID 정보를 담고 있다.
- Auth : 인증 페이로드. 메시지를 인증하고, 현재 SA에서 키가 적절히 공유되었는지 확인하기 위해서 사용된다.
② Identity Protection 메시지 교환
기본적으로 Base 메시지 교환과 전달되는 페이로드들은 같지만, 6개의 메시지로 구성된다. 메시지 3과 4에서 현재 SA 및 2단계 SA 메시지 보호를 위한 키의 공유가 이루어져서 메시지 5와 6은 헤더를 제외한 나머지 정보들이 암호화되어서 교환된다. 결국 ID 정보를 유출하지 않고 안전하게 메시지 교환을 수행할 수 있다.
③ Authentication-only 메시지 교환
키를 생성하지 않고 인증만을 위해서 사용하는 메시지 교환이다.
④ Aggressive 메시지 교환
3 메세지만으로 상대방을 인증하고, SA 의 보호를 위한 키까지 생성한다.
⑤ Informational 메시지 교환
일방적으로 메시지를 전달하며, 단순히 정보의 전달 (Notification) 또는 특정 SA 를 지우라는 (Delete) 명령을 보내고 끝난다.
'Network' 카테고리의 다른 글
[Network] Routing Priority (0) | 2020.12.08 |
---|---|
[Network] network design (0) | 2020.12.01 |
[Network] IKE Keep-alive와 Dead Peer Detection의 차이 (0) | 2020.11.26 |
[Network] VPN(Virtual Private Network) (0) | 2020.11.22 |
[Network] DHCP protocol 기본 원리 (0) | 2020.11.18 |