Network Security

ISAKMP payload

행복한하루 2010. 12. 17. 01:53
이전 글 (ISAKMP)에서는 ISAKMP 의 기본 구조와 phase 들에 대하여 알아보았고, ISAKMP 에서 제공되는 payload 들에 대해서 알아 봤습니다.

이번 글에서는 나머지 payload 들에 대해서 설명 드리도록 하겠습니다.

(먼저 글에서 Key Exchange payload 까지 설명 드려서 여기서는 Identification Payload 부터 설명 드리도록 하겠습니다.)

- Identification Payload


Identification Payload는 identification 정보를 교환하기 위하여 사용될 data을 포함하고 있는데, 이 정보는 통신하는 상대방의 신원 확인과 정보의 인증을 위해 이용됩니다. ID type에는 주로 IP Address type이 들어가는데, 예를 들어 IPv4 address 또는 IPv6 address 또는 subnet, range 등등이 들어 갈수 있습니다. DOI Specific ID data에는 1octet은 Protocol ID필드로 이용하는데 UDP/TCP등이 들어가고, 만약 0 이면 이 필드는 무시됩니다. 그리고 나머지 2octet에는 Port값이 들어가는데 여기도 마찬가지로 0 이면 이 필드는 무시됩니다. 마지막으로 Identification Data에는 ID type에 정의된 것에 따라 그에 해당하는 값이 들어가게 됩니다.

- Certificate Payload


Certificate Payload는  인증서를 보내거나 인증과 관련된 Data을 전송할 때 이용됩니다. Cert Encoding필드에는 Certificate type에 대한 정보를 담고 있고, Certificate Data에는 실제 인증에 필요한 Data가 들어갑니다.

Certificate Type
   Value
NONE
   0
PKCS #7 wrapped X.509 certificate
   1
PGP Certificate
   2
DNS Signed Key
   3
X.509 Certificate - Signature
   4
X.509 Certificate - Key Exchange
   5
Kerberos Tokens
   6
Certificate Revocation List (CRL)
   7
Authority Revocation List (ARL)
   8
SPKI Certificate
   9
X.509 Certificate - Attribute
   10
RESERVED
   11 ~ 255

- Certificate Request Payload


Certificate Request Payload는 ISAKMP을 통하여 인증서를 요구할 때 사용됩니다. 이 payload을 받은 수신 측은 자신의 인증 데이터를 보내주게 됩니다. Cert type에는 앞서 설명한 Certificate Payload의 cert type과 같고, Certificate Authority에는 거기에 해당하는 데이터가 들어갑니다.

- Hash Payload


Hash Payload는 Hash 함수에 의해 생긴 값을 담는 역할을 합니다. 이 Hash Data는 상대방과 협상을 진행중에 ISAKMP의 다른 메시지들의 무결성을 보장하기 위하여 이용됩니다. 즉 보내온 Data의 Hash Data값이 Hash Payload에 실린 Hash Data값과 틀리면 무결성이 깨졌다고 보고 패킷을 버리게 됩니다.

- Signature Payload



Signature Payload는 Digital Signature 함수에 의하여 생성된 값을 가지고 있습니다. 이 Signature Data는 부인 방지 서비스를 위하여 이용되고, Data의 무결성을 증명하기 위하여 이용됩니다.

- Nonce Payload


Nonce Payload는 random Data을 포함하고 있는데, 이것은 replay attack을 방지하기 위하여 이용됩니다. random data 는 Nonce data 필드에 들어갑니다.

- Notification Payload



Notification Payload는 에러 상태와 같은 정보들을 ISAKMP Peer에게 알려주기 위하여 이용되는 Payload입니다. 보통 ISAKMP협상중에 Proposal이 reject된 경우 그 이유를 Notification Payload을 이용하여 보내줍니다. DOI필드에는 앞서 언급되었던 것과 같은 의미로 ISAKMP에서는 0이고 IPSec DOI에서는 1입니다. Proto ID에는 현재 협상중인 프로토콜을 의미하는데, ISAKMP, IPSec ESP, IPSec AH등과 같은 정보가 들어가고, SPI Size는 SPI의 크기, Notify Message type에는 정의된 type 값이 들어가며, SPI는 index 값, 마지막으로 Notification Data에는 Notify Message type에 해당하는 정의된 값이 들어갑니다.

다음은 Notify Message type에 들어가는 값들입니다.

Errors
   Value
INVALID-PAYLOAD-TYPE
   1
DOI-NOT-SUPPORTED
   2
SITUATION-NOT-SUPPORTED
   3
INVALID-COOKIE
   4
INVALID-MAJOR-VERSION
   5
INVALID-MINOR-VERSION
   6
INVALID-EXCHANGE-TYPE
   7
INVALID-FLAGS
   8
INVALID-MESSAGE-ID
   9
INVALID-PROTOCOL-ID
   10
INVALID-SPI
   11
INVALID-TRANSFORM-ID
   12
ATTRIBUTES-NOT-SUPPORTED
   13
NO-PROPOSAL-CHOSEN
   14
BAD-PROPOSAL-SYNTAX
   15
PAYLOAD-MALFORMED
   16
INVALID-KEY-INFORMATION
   17
INVALID-ID-INFORMATION
   18
INVALID-CERT-ENCODING
   19
INVALID-CERTIFICATE
   20
CERT-TYPE-UNSUPPORTED
   21
INVALID-CERT-AUTHORITY
   22
INVALID-HASH-INFORMATION
   23
AUTHENTICATION-FAILED
   24
INVALID-SIGNATURE
   25
ADDRESS-NOTIFICATION
   26
NOTIFY-SA-LIFETIME
   27
CERTIFICATE-UNAVAILABLE
   28
UNSUPPORTED-EXCHANGE-TYPE
   29
UNEQUAL-PAYLOAD-LENGTHS
   30
RESERVED (Future Use)
   31 ~ 8191
Private Use
   8192 ~ 16383


Status
   Value
CONNECTED
   16384
RESERVED (Future Use)
   16385 ~ 24575
DOI-specific codes
   24576 ~ 32767
Private Use
   32768 ~ 40959
RESERVED (Future Use)
   40960 ~ 65535

- Delete Payload


Delete Payload는 SA을 지울 때 사용되며 각각의 필드에 대한 설명은 앞서 설명한 것과 동일합니다. 그리고 SA DB에서 SA을 찾을 때 이용하기 위하여 SPI값을 넣어줍니다. 이것은 송신자가 수신자에게 request 하는 것이 아니라 알려주기 위하여 사용하는 것이기 때문에 수신자가 이 메시지를 무시할 수도 있습니다. 그 경우에는 다음 번 통신 시에 실패를 하게 되고 다시 SA개설 절차를 진행합니다.

- Vendor ID Payload
 

Vendor ID Payload에는 Vendor가 정의해 놓은 값이 들어가게 되는데, 일반적인 ISAKMP기능은 아니고, Vendor입장에서 새로운 기능을 입력하여 실험할 때 이를 예전 버젼과 구분하기 위하여 보통 이용됩니다.

이렇게 해서 ISAKMP 프로토콜에 대하여 알아봤습니다.


'Network Security' 카테고리의 다른 글

IPsec Action Type  (0) 2011.01.11
ISAKMP Exchange Type  (0) 2010.12.29
ISAKMP  (0) 2010.12.16
Public Key cryptography (공개키 암호화)  (0) 2010.11.04
Security Services  (0) 2010.10.31