본문 바로가기

About../Network

IPsec

IPsec

1. 개요

IPSec은 네트워크계층( IP 계층) 상에서 IP 패킷 단위로 인증 및 암호화를 하는 기술
을 말하며, 인터넷 경유 구간에 일종의 보안 통로인 터널링을 형성해 줄 수 있다.


2. IPSec 프로토콜 구조

IP 계층에서 안전하게 데이터를 보호하기 위하여 다음과 같이 복수의 프로토콜로 구성

ㅇ 보안 프로토콜
- AH (인증 헤더, Authentication Header) : 무결성 보장
- ESP (캡슐화된 보안 페이로드, Encapsulating Security Payload) : 기밀성 보장
ㅇ 키 관리 프로토콜
- ISAKMP (Internet Security Association and Key Management Protocol)
- IKE (Internet Key Exchange) : 키 생성,교환 프로토콜

한편, 위 두 부분을 함께 결합한 추상적 개념을 보안연합(Security Association)이라
고 한다.


3. AH 및 ESP 헤더 : 패킷 인증과 암호화 등을 위하여 2개의 헤더를 정의

ㅇ AH : IP 패킷이 정당하다는 인증에 사용되는 헤더
- 데이터 무결성(Integrity), 근원지 인증(Authentication) 제공
- 이를위해 MD5, SHA-1과 같은 해쉬 알고리즘 사용
- AH 헤더 형식
1 1 2 바이트
┌──────┬───────┬───────┐
│Next Header │Payload length│ 예약 │
├──────┴───────┴───────┤
│ Security Parameter index │
├──────────────────────┤
│ Sequence Number │
├──────────────────────┤
│ 인증 데이터 (가변길이) │
└──────────────────────┘

ㅇ ESP : IP 패킷의 암호화 목적의 헤더
- 위 AH에서 제공하는 보안서비스 외에 비밀성(Confidentiality) 추가 제공
- 비밀성을 위한 암호화 알고리즘으로 DES, 3DES, CAST, SEED 등 사용
- ESP 헤더
4 바이트
┌──────────────────────┐
│ Security Parameter index │
├──────────────────────┤
│ Sequence Number │
└──────────────────────┘


4. IPSec 운용 모드 : AH 및 ESP를 사용하여 2가지 모드 구현

ㅇ Tunnel 모드
- 패킷 전체를 암호화하고 새로운 IP 헤더를 추가하는 방식
- 게이트웨이-게이트웨이 간에 주로 사용. 즉, IPSec VPN
ㅇ Transport 모드
- 원래의 IP 헤더는 그대로 이용, 나머지 데이터 부분 만 암호화하는 방식
- 호스트-호스트 간에 주로 사용
※ 위 두가지 중 Tunnel 모드가 보다 안전하나 과부하를 주게된다.


5. 운영방식

ㅇ AH 수송모드 (AH Transport mode)
┌──────┬──────┬─────────────┐
│ IP 헤더 │ AH 헤더 │ TCP / UDP 등의 세그먼트
└──────┴──────┴─────────────┘
↑ │<--------------- 인증됨 --------------->│
프로토콜 ID 필드에 51로 표시하여 AH 헤더가 있음을 알림

ㅇ ESP 수송모드 (ESP Transport mode)
┌────┬─────┬────────────┬──────┬─────┐
│ IP 헤더│ ESP 헤더 │ TCP / UDP 등의 세그먼트│ESP Trailer │ ESP 인증│
└────┴─────┴────────────┴──────┴─────┘
↑ │ │<------------- 암호화됨 ------------->│
│ │<------------------- 인증됨 --------------------->│
※ 프로토콜 ID 필드에 50로 표시하여 ESP 헤더가 있음을 알림

ㅇ AH 터널모드 (AH Tunnel mode)
ㅇ ESP 터널모드 (ESP Tunnel mode)


6. IP 계층에서의 제공 가능한 보안 서비스 6가지

비연결형 무결성 (Connectionless Integrity)
ㅇ Partial Sequence Integrity
ㅇ 데이터 원천(근원지) 인증 (Data Origin Authentication)
ㅇ 비밀성 (Confidentiality)
ㅇ Limited Traffic Flow Confidentiality
접근제어 (Access Control )


7. 요구 수준

IPv4 : 선택적인 요구사항, IPv6 : 의무적인 요구사항

IPSec (Internet Protocol Security protocol)

   

IPSec은 네트워크나 네트워크 통신의 패킷 처리 계층에서의 보안을 위해, 지금도 발전되고 있는 표준이다. 이전의 보안 기법들에서는 보안이 통신 모델의 응용 계층에 삽입되었었다. IPSec은 가상 사설망과 사설망에 다이얼업 접속을 통한 원격 사용자 접속의 구현에 특히 유용할 것이다.

   

IPSec의 커다란 장점은 개별 사용자 컴퓨터의 변경 없이도 보안에 관한 준비가 처리될 수 있다는 것이다. 시스코는 IPSec를 표준으로 제안하는데 선두주자였으며, 자신들의 네트워크 라우터에 이 기능의 지원을 포함하였다.

   

IPSec은, 본질적으로 데이터 송신자의 인증을 허용하는 인증 헤더 (AH)와, 송신자의 인증 및 데이터 암호화를 함께 지원하는 ESP (Encapsulating Security Payload) 등, 두 종류의 보안 서비스를 제공한다. 이러한 각 서비스에 관련된 명확한 정보는 IP 패킷 헤더의 뒤를 잇는, 헤더 속의 패킷에 삽입된다. ISAKMP/Oakley 프로토콜과 같은 별개의 키 프로토콜들이 선택될 수 있다.

   

AH·ESP 프로토콜로 구성, 각각 패킷 인증·비밀 보호

   

네트워킹 산업이 어느정도의 관심 대상이 되느냐는 곧 보안과 사생활 보호의 관심사항과 직결된다. 따라서 담당기관인 IETF는 IP 보안 프로토콜인 IPSec을 끊임없이 발전시키기 위해 분주한 노력을 펼치고 있다. IPSec은 인터넷상에 있는 시스템과 네트워크간에 안전하고 사적인 대화를 가능하게 한다.

   

전용prorietary 시스템에도 이기종 시스템과 네트워크 사이에서 발생하는 문제를 해결하기 위한 노력이 꾸준히 보강되고는 있지만 그래도 한 업체 전용이라는 사실은 어쩔 수 없다.

   

IPSec을 채택하면 관련된 네트워크의 특수 사양에 관계없이 사적인 이해집단communiry of interest을 만들 수 있다. 여기서는 IPSec을 구성하는 기술을 각각 속속들이 살펴봄으로써 IPSec 기술에 대한 독자들의 이해를 돕고자 한다.

   

1. IPSec 프로토콜

   

IPSec은 인증 헤더(AH : Authentic-ation Header)와 캡슐 보안 페이로드(ESP : Encapsulating Security Pay-laod) 등 2개의 프로토콜로 구성돼 있다. AH 프로토콜은 무결성과 데이터 기원 인증 및 재생replay에 대항한 보호를 제공하는 봉함envelope을 만든다. 따라서 AH는 침입자의 공격에 대항한 다양한 방어책을 제공한다. 이 프로토콜은 모든 패킷을 인증하기 때문에 세션을 도용하는 프로그램은 비효율적으로 간주된다. 또한 이 프로토콜의 기본적인 재생 카운터는 가짜 혹은 파괴성 데이터가 포함되어 있을 수도 있는 재생 공격을 중지시킬 수 있다.

   

AH는 또한 가능한 한 다수의 IP 헤더에 대한 인증을 제공하는데, 심지어 IP 헤더가 AH 봉함 외부에 있을 때도 그렇다. AH 인증은 IP 헤터 패킷이 전송중일 때 그에 대한 조작을 불가능하게 만든다. 따라서 AH의 이러한 특성은 NAT (Network Address Translation) 종단간 환경에서의 사용을 부적절하게 만든다. IP 헤더를 조작하는 것이 NAT 기능에서는 필수적이기 때문이다.

   

ESP 프로토콜은 데이터의 비밀성privacy을 제공하는데, 암호화되어 있지만 인증되지 않은 데이터 스트림에 대한 공격을 막기 위해 AH의 모든 기능이 포함돼 있다. IPSec 사양은 AH 기능을 제외한 ESP를 허용하고 있지만, 하고 있는 일에 대해 정확히 이해하지 못한다면 이것을 사용하지 말 것을 권장한다. ESP는 또한 널null 암호화를 사용할 수 있다. 널 암호화란 IP 헤더 인증을 제외한 AH와 거의 흡사한데, IP 헤더에서의 주소가 변하기 때문에 NAT 전송을 허용할 수 있다.

   

ESP와 AH는 IANA(Internet Addr-ess Naming Authority)에 의해 프로토콜 50과 51로 각각 등록돼 있다. 사용자의 경계border 라우터에 기본적인 패킷 필터링 규칙이 구현돼 있다면 이들 프로토콜을 가용 목록에 추가할 필요가 있을 것이다. IP 헤더의 이러한 프로토콜 유형의 필드는 현재 IPSec 봉함의 필드이기도 하므로 원래의 전송 유형은 IPSec 헤더내에서 다음 프로토콜 필드로 이동된다.

   

IPSec 프로토콜은 전송 모드나 터널 모드에서 모두 사용될 수 있다. 전송 모드에서 IPSec은 네트웍(IP)와 전송(TCP 혹은 UDP) 봉함간의 평범한 IP 패킷으로 진입한다. 전송 모드는 종단 시스템용으로 개발되었는데, 그 사용은 완전히 집단에 속한 모든 시스템에서의 전개용으로 서술되어 있기 때문에 대부분의 경우 애플리케이션의 재 프로그래밍이 필요할 것이다.

   

IPSec의 터널 모드는 게이트웨이에 의해 사용되도록 개발된 것이다. 터널 모드에서 일상적인 IP 패킷은 IPSec 봉함내에 놓여지며 그 IPSec은 다시 또다른 IP 봉함으로 들어간다. 이 모드에서 사용자는 네트웍의 페러미터에서 IPSec 터널 장비를 신속하게 전개할 수 있다. 구성이 비슷한 네트웍간에 트래픽의 안전을 보장하는 것은 간단하며, 특수한 최종사용자 소프트웨어나 새 애플리케이션을 전개할 필요가 없다. 터널 모드를 지원하는 소프트웨어는 게이트웨이나 종단 시스템상에서 동작할 수 있다.

   

종단 시스템상에서 터널 소프트웨어가 가장 흔하게 사용될 때는 원격 및 이동 사용자를 지원할 때이다. 게이트웨이가 터널을 통해 대부분의 종단 사용자 데이터를 전송함에도 불구하고 동료 게이트웨이간의 통신을 안전하게 보호하려면 전송 모드를 사용할 수도 있다. 이러한 방식은 라우터, ATM 스위치, 방화벽 및 기타 핵심적인 하부구조 컴포넌트를 원격에서 안전하게 관리하는 훌륭한 방편이 될 수 있다.

   

IPSec 연결은 SA(Security Associa-tion)에 의해 규정된다. SA는 미리 방향이 지정된 것이 아니므로 연결시 2개의 SA가 필요하다. SA는 IPSec 연결의 다양한 패러미터를 정의하는데, 예를 들어 암호화와 인증 알고리즘과 같이 통신 시스템과 암호화용의 세션 키 및 스스로의 기능을 제어하는 다양한 패러미터간에 사용되는 것을 들 수 있다.

   

2. IPSec 알고리즘

   

앞서 언급했듯이 IPSec은 그 내부에서 인증 및 암호화 알고리즘을 사용하는 프로토콜로 구성된 것이다. 2개의 인증 및 7개의 알고리즘은 날짜를 규정하는데 사용되고 있다. AH와 ESP에 의해 사용되는 인증 알고리즘은 HMAC-MD5와 HMAC-SHA1이다. 이들은 세션 참여자가 한 개의 비밀 키(MD용은 128비트로 RFC 1321인 Message Digest 5 버전, SHA1용은 160비트로, FIPS 180-1인 Secure Hash Algo-rithm 1 버전)를 공유하는 키 기반의 인증 알고리즘이다. HMAC 절차는 RFC 204(메시지 인증 코드를 위한 키 해싱Keyed-Hashing)에 정의되어 있다.

   

HMAC는 비밀 키 인증 알고리즘이다. HMAC와 마찬가지로 비밀 키 분배의 영역에 따라 데이터 무결성과 데이터 기원 인증이 결정된다. 소스와 목적지만 HMAC 키만 알고 있다면 두 개의 패리티간에 전송된 패킷을 위해 데이터 기원 인증과 데이터 무결성을 제공한다. HMAC용의 키들은 ISAKMP /Oakley에 의해 생성된 키 재료keying material로부터 생성된다.

   

분명한 IV(initialization vector)가 수반된 DES(Data Encryption Standard)는 ESP에서 사용되는 기본적인 암호화 알고리즘이다. IPSec 호환을 위해 이 알고리즘을 구현해야 한다. 이외에도 Triple DES, CAST-128, RC5, IDEA, Blowfish 및 ARCFour(Bruce Scheier가 저술한 암호관련서적을 토대하여 RC4를 공개적으로 구현한 것) 등 DES의 대안으로 제시된 다양한 사양들이 있다.

   

CAST(RFC 2144)는 64비트 형식에서는 최소한 DES만큼, 128비트 형식에서는 Triple DES만큼 강력하다고 많은 사람들에 의해 주장되는 양식으로, DES보다 빠르다. RC5(RFC 2040)는 많은 사람들이 키 길이Ley length만큼 강격하다고 주장하는 키 길이가 가변적인 스트림으로서, 256비트까지 가능하다.

   

IDEA는 오리지널 PGP 프로그램에서 사용되는 것으로 그 속도가 빠른 것으로 알려져 있으며, Triple DES와 맞먹는 사이퍼cypher이다. 블로피시는 Scheier에 의해 개발된 가변적 길이의 사이퍼로서 공격자를 쉬지 못하게 만들기 위해 고안된 것이다.

   

DES 이외의 알고리즘을 선택하는 것이 구현자에 달렸다. 암호화 알고리즘을 선택하게 되면 여러 가지 이점이 있다. 잠재적인 공격자는 단순히 사이퍼를 공격하면 되는 것이 아니라 어떤 사이퍼를 깨뜨리고자 할 것인지도 결정해야 한다. 이는 사이퍼 키의 전환rotation로 함께 단순히 한물 간 데이터를 해독할 수 있다는 희망 이외에는 공격자들이 건질 것이 없게 만든다.

IPsec 작동 방식

두 대의 컴퓨터(피어)들이 IPsec을 이용하여 통신할 때, 이들은 두 종류의 보안 관계를 가집니다. 첫 번째는 main mode(주 모드) 또는 phase one(단계 1)이라고 하며, 피어 컴퓨터들이 서로를 상호 인증하여 그들 간의 트러스트를 구축하는 것입니다. 두 번째는 quick mode(빠른 모드) 또는 phase two(단계 2)라고 하며, 피어 컴퓨터들이 서로 간의 디지털 서명 방식과 트래픽 암호화 방식을 비롯하여 보안 연결을 협의하는 것입니다. 패킷 서명은 데이터가 이동 중에 변경되지 못하도록 해주며, 패킷 암호화는 데이터가 이를 도청하려는 공격자에게 노출되지 않도록 해줍니다.

컴퓨터는 한번에 하나의 IPsec 정책만을 할당 받을 수 있습니다. 정책은 여러 가지 규칙을 가질 수 있으며, 각 규칙은 필터 목록과 필터 작업을 가집니다. 필터 목록에는 규칙이 처리해야 하는 트래픽의 특성을 지정하는 하나 이상의 필터들이 들어있습니다: 원본과 대상 주소, 원본과 대상 포트 번호 및 프로토콜 유형. 필터 작업은 규칙의 동작을 지정합니다: 트래픽을 허용하고 트래픽을 차단하며 IPsec 보안 연결을 협의할 것인지 여부. 보안 협의를 지정하는 작업에는 암호화 기능, 패킷 단위 인증 방식, 새로운 키 생성 빈도, 수신되는 비보안 요청에 대한 응답 방식 및 IPsec을 지원하지 않는 컴퓨터와의 통신 여부를 비롯한 많은 옵션들이 있습니다.

IPsec 정책의 각 규칙은 하나의 필터 목록에 하나의 필터 작업을 결부시킵니다. 특정 필터 목록과 일치하는 트래픽은 연계된 필터 작업의 설정에 따라 처리됩니다. 규칙 역시 보안 연결의 모드(전송 또는 터널, 뒷부분에 설명되어 있음)와 세 개의 단계 1 인증 방식 중 한가지를 나타냅니다.

  • 사전 공유 키. 오로지 RFC 규칙을 위한 것으로, 사전 공유 키는 IPsec 정책을 테스트할 경우에만 사용하는 것이 좋습니다. 동일한 보안 정책에 참여한 모든 피어는 동일한 사전 공유 키가 필요할 것입니다. 공유된 기밀은 그다지 기밀성이 오래 유지되지 못합니다. 게다가, 이들은 레지스트리에 저장되고 컴퓨터에 대한 관리 권한이 있는 모든 사람들이 이를 볼 수 있습니다.
  • 디지털 인증서. 각 피어가 다른 피어가 신뢰하는 인증 기관에 의해 서명된 IPsec이나 컴퓨터 인증서를 처리하는 한, 피어들은 서로를 인증하게 될 것입니다. 신뢰 기관이 누구인지(인증서의 서명자)를 기억해야 합니다. 이 경우, 인증서 상의 실제 이름은 그다지 중요하지 않습니다. 각 피어는 고유한 인증서를 가지고 있으며, 다단계 인증서 계층으로 인해 보다 세밀한 IPsec 정책을 생성할 수 있으므로 디지털 인증서는 사전 공유 키를 더 선호합니다. 예를 들어, 매우 보안성이 우수한 시스템 A는 수준 높은 인증 기관 X가 서명한 인증서만을 수용하고, 보안성이 보통 수준인 시스템 B는 수준 높은 인증 기관X 또는 중급 수준의 인증 기관 Y가 서명한 인증서를 모두 수용할 것입니다.
  • Kerberos 버전5 프로토콜. 두 피어가 모두 동일한 Active Directory 포리스트에 있을 경우엔, Windows Server 2003 운영 체제를 실행하는 컴퓨터 상의 IPsec도 컴퓨터들 사이의 최초 인증을 위해 Kerberos 프로토콜을 이용할 수 있습니다. Kerberos는 공용 키 인프라(PKI)가 없거나 포리스트 외부에 있는 컴퓨터들 간에 IPsec 보안 연결을 구축할 필요가 없을 경우 적합합니다.

IPsec 터널

   

"IPsec 터널"만한 것도 없습니다. 다시 한번 말해, "IPsec 터널"만큼 우수한 기능은 없습니다. 이는 널리 알려진 사항이며 이 문장이 의미하는 바를 누구나 알고 있지만, 구체적으로 설명할 수가 없기 때문에 실제로는 아무런 의미도 없는 셈입니다. 두 개의 단계 1 보안 연결 모드를 사용할 수 있습니다.

  • 전송 모드. 이는 두 가지 모드 중 더 널리 사용되며 사람들이 "IPsec 터널"을 생각할 때 떠올리게 되는 모드입니다. 전송 모드의 경우, 두 피어가 서로를 인증하고(단계 1) 트래픽 서명과 암호화 매개변수(단계 2)를 구축합니다. 필터 목록에 지정된 특성과 일치하는 컴퓨터들 간의 모든 트래픽은 연계된 필터 작업의 세부 사항에 따라 서명 또는 암호화될 것입니다. 전송 모드는 두 컴퓨터 간의 통신이 변경되지 않도록 해주고 개인 정보를 보호해줍니다. 전송 모드는 새로운 패킷을 생성하지 않으며 기존 패킷을 보호해줍니다. 재미있는 사실은, L2TP+IPsec VPNs의 경우, 터널 모드가 아닌 전송 모드이며, 이는 클라이언트와 VPN 서버 간의 L2TP 트래픽을 보호해줍니다.
  • 터널 모드. 터널 모드는 신뢰되지 않은 네트워크를 통한 사이트간 통신을 보호하기 위한 것입니다. 각 사이트는 다른 사이트로 트래픽을 전송하도록 구성된 IPsec 게이트웨이를 가지고 있습니다. 한 사이트의 컴퓨터가 다른 사이트의 컴퓨터와 통신해야 할 경우, 트래픽은 IPsec 게이트웨이를 통해 전달됩니다(그리고 로컬 게이트웨이에 도달하기 전에 각 사이트의 중계 라우터를 통해 전송될 수도 있습니다). 게이트웨이에서 아웃바운드 트래픽은 또 다른 완전한 패킷 내에서 암호화되고 규칙의 필터 작업 세부 사항에 따라 보호됩니다. 물론, 게이트웨이는 이미 자신의 단계 1 인증을 실시하였고 단계 2 보안 연결 서명 및 암호화도 구축한 상태입니다. Windows Server 2003용 IPsec의 경우, 터널 모드는 Routing and Remote Access Service (RRAS) 게이트웨이 상의 사이트간 VPN용으로만 지원되며, 클라이언트 간 또는 클라이언트-서버 간 통신에는 지원되지 않습니다.

필터 작업은 다음과 같은 세 가지 동작 중 한가지를 지정할 수 있습니다: 트래픽 허용, 트래픽 차단 또는 보안 협의. 첫 번째 두 가지 동작은 특별한 보안 처리 작업을 하지 않습니다: 트래픽이 "허용" 필터 작업에 연계된 필터 목록에 일치하면 트래픽 전송을 허용하고, 트래픽이 "차단" 필터 작업에 연계된 필터 목록에 일치하면 트래픽을 차단합니다. 보안을 협의하는 필터 작업은 각기 다른 두 개의 단계 2 보안 방식 중 한가지 또는 두 가지를 모두 선택할 수 있습니다.

  • AH (인증 헤더). AH 보안 연결은 기밀성보다는 무결성이 요구되는 경우에 매우 유용합니다. AH는 전체 패킷(원본 및 대상 주소가 들어있는 IP 헤더를 포함한)에 대한 SHA1이나 MD5 디지털 서명을 확인하고 이 서명을 패킷에 추가합니다. 수신측은 고유한 버전의 서명을 계산하고 이를 헤더에 저장되어 있는 서명과 대조합니다. 일치할 경우, 패킷은 변경되지 않은 것입니다.
  • ESP (encapsulated security payload). 기밀성이 요구되는 경우엔 ESP 보안 연결을 사용합니다. ESP는 피어들 간에 교환되고 이들 간의 트래픽을 암호화하는데 사용되는 DES 또는 3DES 세션 키를 협의합니다. 그리고 ESP에 SHA1이나 MD5 디지털 서명을 지정할 수도 있습니다. ESP 암호화와 서명 계산은 디지털 서명이 전체 패킷에 적용되는 AH와는 달리 IP 헤더가 아닌 각 패킷의 TCP/UDP 헤더 부분과 페이로드를 포함한다는 점을 기억하십시오.

모드와 방식 간에는 종속성이 없습니다. 전송 모드와 터널 모드 보안 연결은 AH, ESP 또는 AH와 ESP를 함께 사용할 수 있습니다.

IKE

   

Internet Key Exchange (IKE) 프로토콜은 IPsec 보안 연결이 자신의 보호 기능을 협의하고 서명 또는 암호화 키를 교환하는 방식입니다. IKE는 피어들이 정책 정보를 통신하는 방법과 인증 메시지가 구성되고 교환되는 방식을 정의합니다. 세 가지 프로토콜(ISAKMP, Oakley 및 SKEME)을 혼합하여 사용하는 IKE는 IPsec의 요구 사항에 이상적입니다. IKE는 매우 복잡하여 정확히 이해하기가 어렵기 때문에, 수학과 암호 해독법에 어느 정도 지식을 가지고 있고 여러 가지 자료들을 참조할 수 있는 충분한 시간이 있다면 도움이 될 것입니다.

   

NAT을 통한 IPsec

   

IPsec 배포를 주저하게 만드는 주요 원인은 NAT(Network Address Translator)입니다. IPsec은 컴퓨터들을 인증하고 NAT은 이들을 감춥니다. 그러므로, 이들에 대해 고려할 때, IPsec과 NAT의 목적이 상충되곤 합니다. 하지만, 대부분의 IPv4 네트워크에서는 NAT에 대한 의존도가 크기 때문에 NAT 장치를 통해서도 IPsec가 제대로 작동될 수 있기를 바라는 요구가 매우 커졌습니다. 그리고, 이들 두 기능이 함께 작동될 경우 IPsec의 수용이 가속화될 것입니다.

   

IPsec가 NAT을 통과하도록 하는 것은 생각보다 어렵습니다. 그리고 IPsec과 NAT을 함께 이용할 경우 다음과 같은 세가지 문제가 야기됩니다.

  • AH 무결성 손상. AH는 패킷이 이를 전송하는 피어를 떠나기 전에 패킷의 디지털 서명을 계산합니다. 그런 다음, 이 패킷이 NAT(로컬 또는 원격)를 통해 전달될 경우, 패킷의 IP 헤더가 변경됩니다. 고유한 버전의 패킷 서명을 계산할 때 패킷을 수신하는 피어는 다른 결과를 산출하게 되는데 이는 NAT이 원본 주소를 변경하였기 때문입니다. 그러므로 패킷을 수신하는 피어는 패킷을 차단할 것입니다.
  • IPsec 도우미. 많은 소규모/홈 오피스 NAT 게이트웨이에는 "IPsec 도우미"(또는 "IPsec Passthrough)라는 기능이 포함되어 있습니다. 본래 터널 모드용으로 고안된 이 기능은 전송 모드에서도 작동됩니다. 게이트웨이 너머의 여러 컴퓨터들이 게이트웨이 외부의 대상에 대한 IPsec 보안 연결을 생성할 경우, 게이트웨이는 수신되는 모든 IPsec 트래픽을 보안 연결을 생성했던 첫 번째 컴퓨터에 전달할 것입니다. 도우미 기능은 내부의 어떤 컴퓨터가 IPsec 통신을 시작하였는지를 기억한 후 수신되는 모든 트래픽을 변경하지 않고 그곳으로 전달해줍니다.
  • IKE 조각화. 디지털 인증서의 페이로드는 대개 IP 프레임의 크기를 초과할 것입니다. 어플리케이션이 IP 프레임보다 용량이 큰 데이터 패킷을 생성할 때마다, IP는 패킷을 조각화하여 각 조각이 하나의 프레임에 맞도록 합니다. 이는 로컬 네트워크 내에서는 적합하지만, 네트워크 경계 장치들(NAT 포함)은 이러한 조각들을 차단하는데 이는 정교하게 만들어진 악성 조각들이 방화벽을 뚫는데 주로 사용되기 때문입니다. 조각들을 차단한 NATs는 IKE가 제대로 작동되지 못하게 할 것입니다.

하지만, UDP 내에 ESP를 캠슐화하는 메커니즘을 정의함으로써, 거부되는 일 없이 NAT을 통해 IPsec 트래픽을 전달할 수 있습니다. 양측은 로컬 NAT이 존재하고 양측 모두 NAT 순회(NAT-T)를 실행할 수 있는지 확인하기 위해 상대측에 검색 패킷을 전송합니다. 한쪽 또는 양쪽 모두 NAT 너머에 있고 이들 모두 NAT-T를 실행할 수 있을 경우, IPsec은 먼저 IKE exchange를 UDP 포트 4500으로 이동시킨 다음(IPsec 도우미 충돌을 방지하기 위해), 전체 IPsec 보안 연결을 동일한 UDP 통신에 캡슐화합니다. NAT에게 있어서는 트래픽이 일반 UDP 트래픽처럼 보이므로, NAT은 이를 정상적으로 처리합니다. 각 측은 상대측과 NAT 세부 정보도 교환하므로 수신된 트래픽의 IP 헤더를 올바르게 다시 조합합니다.

   

NAT은 헤더를 변경시키므로 수신자는 트래픽을 해독하고 서명을 확인하기 전에 본래의 헤더를 "다시 제작"해야 할 것이라는 점을 기억하십시오. NAT-T 설치 프로세스는 양측에 이러한 작업을 수행하는데 필요한 정보를 제공해줍니다. UDP-ESP는 하나의 NAT 장치 너머에 있는 여러 개의 IPsec 보안 연결을 처리하는 방법을 알고 있습니다. 여러 대의 컴퓨터들이 동일한 프로토콜을 이용하여 나가는 연결을 구축할 때, NAT 장치들은 각 컴퓨터마다 고유한 원본 포트 번호를 사용할 것입니다. 이로써 NAT은 수신되는 반환 트래픽을 전달할 위치를 아는 것입니다. 각 클라이언트에서 NAT-T는 원본 포트-보안 연결 조합표를 유지 관리하며 트래픽이 들어오고 나갈 때 적절하게 트래픽을 매치시킵니다. 본 문서를 작성할 당시, NAT-T는 여전히 인터넷 게시를 위한 것이었으며, 작가는 성능과 상호 운용성을 개선시키기 위해 조금씩 내용을 변경하고 있습니다. NAT-T는 AH 무결성 손상 문제와 관련하여 효과적으로 작동되지 않기 때문에 AH를 위한 것이 아닙니다. 그리고 IETF는 세 번째 문제(IKE 조각화)는 언급하지 않기로 결정했습니다. 한 쪽이 조각을 차단할 경우, 해당 측의 관리자는 NAT 프로그래밍을 변경해야 하며 그렇지 않을 경우, NAT-T에 참여할 수 없게 될 것입니다.

   

마이크로소프트의 NAT-T 구현에는 양쪽이 모두 지원할 경우에만 사용되는 사전 조각화 문제 해결 기능이 포함되어 있습니다. IKE는 데이터를 IP 계층에 전송하기 전에 키를 더 작게 조각화할 것입니다; 조각화된 각 부분은 완전한 상태의 IP 패킷에 포함되어 전송됩니다. 수신지는 이를 기다리고 있다가 이 조각화된 부분들을 완전한 키로 다시 조합할 것입니다. NAT 검색 단계는 IKE 조각화 지원 여부를 확인하고 양측의 장치들이 이를 지원할 경우에만 조각화 기능을 사용할 것입니다.

   

   

   

LAB

[ISCW] Site-to-Site IPSec VPN

|

  

----------------------------------------

Dynamips Network File Configruration

----------------------------------------

[localhost]

   

[[3640]]

image = d:\ios\c3640-jk9s-m.124-8.bin

ram = 96

slot0 = NM-4E

slot1 = NM-4T

idlepc = 0x604248b0

   

[[router HQ]]

model = 3640

console = 2001

e0/0 = NIO_gen_eth:\Device\NPF_{15D63E74-FBE6-47F6-9824-DE508CE1CC9B}

e0/1 = ISP e0/0

   

[[router ISP]]

model = 3640

console = 2002

s1/0 = BR s1/0

   

[[router BR]]

model = 3640

console = 2003

   

   

! -- Headquarters Router Configuration

!

hostname HQ

!

no logging buffered

!

crypto isakmp policy 1

 authentication pre-share

 hash sha

 encryption aes 128

 group 2

 lifetime 84600

!

crypto isakmp key 0 P@ssw0rd address 100.10.2.2 255.255.255.255

!

crypto ipsec transform-set aes_sha esp-aes 128 esp-sha-hmac

!

crypto map VPN_To_BR 10 ipsec-isakmp

 set peer 100.10.2.2

 set transform-set aes_sha

 match address 101

!

!

interface ethernet0/0

 ip address 172.16.1.1 255.255.255.0

 no shutdown

!

interface ethernet 0/1

 ip address 100.10.1.2 255.255.255.0

 crypto map VPN_To_BR

 no shutdown

!

ip route 0.0.0.0 0.0.0.0 100.10.1.1

ip route 172.16.2.0 255.255.255.0 100.10.2.2

!

access-list 101 permit ip 172.16.1.0 0.0.0.255 172.16.2.0 0.0.0.255

!

line con 0

 logging synchronous

 exec-timeout 0

line vty 0 4

 no login

!

end

   

   

! ISP Router Basic IP configuration

hostname ISP

!

enable password cisco

!

ip subnet-zero

no ip domain-lookup

!

interface ethernet 0/0

 ip address 100.10.1.1 255.255.255.0

 no shutdown

!

interface serial 1/0

 ip address 100.10.2.1 255.255.255.0

 encapsulation ppp

 bandwidth 2048

 no shutdown

!

ip classless

!

line con 0

 exec-timeout 0 0

 logging synchronous

line vty 0 4

 no login

!

end

   

   

! -- Branch Router Configuration

!

hostname BR

!

no logging buffered

!

crypto isakmp policy 1

 authentication pre-share

 hash sha

 encryption aes 128

 group 2

 lifetime 84600

!

crypto isakmp key 0 P@ssw0rd address 100.10.1.2 255.255.255.255

!

crypto ipsec transform-set aes_sha esp-aes 128 esp-sha-hmac

!

crypto map VPN_To_HQ 10 ipsec-isakmp

 set peer 100.10.1.2

 set transform-set aes_sha

 match address 101

!

!

interface serial 1/0

 ip address 100.10.2.2 255.255.255.0

 encapsulation ppp

 bandwidth 2048

 crypto map VPN_To_HQ

 no shutdown

!

interface loopback 0

 ip address 172.16.2.1 255.255.255.0

!

ip route 0.0.0.0 0.0.0.0 100.10.2.1

ip route 172.16.1.0 255.255.255.0 100.10.1.2

!

access-list 101 permit ip 172.16.2.0 0.0.0.255 172.16.1.0 0.0.0.255

!

line con 0

 logging synchronous

 exec-timeout 0

line vty 0 4

 no login

!

end

   

   

! -- HQ 라우터와 BR 라우터에 SDM-config  

   

!  The default startup configuration file for Cisco Router and Security Device Manager (SDM)

!  DO NOT modify this file; it is required by SDM as is for factory defaults

!  Version 1.0

!

logging buffered 51200 warnings

!

username cisco privilege 15 secret 0 cisco

!

ip domain-name hackers.kr

!

ip http server

ip http secure-server

ip http authentication local

ip http timeout-policy idle 60 life 86400 requests 10000

!

banner login ^

-----------------------------------------------------------------------

Cisco Router and Security Device Manager (SDM) is installed on this device.

This feature requires the one-time use of the username "cisco"

with the password "cisco". The default username and password have a privilege level of 15.

Please change these publicly known initial credentials using SDM or the IOS CLI.

Here are the Cisco IOS commands.

username <myuser>  privilege 15 secret 0 <mypassword>

no username cisco

Replace <myuser> and <mypassword> with the username and password you want to use.

For more information about SDM please follow the instructions in the QUICK START

GUIDE for your router or go to http://www.cisco.com/go/sdm

-----------------------------------------------------------------------

^

!

line con 0

 login local

line vty 0 4

 privilege level 15

 login local

 transport input telnet

 transport input telnet ssh

line vty 5 15

 privilege level 15

 login local

 transport input telnet

 transport input telnet ssh

!

!  End of SDM default config file

end

   

   

   

******

Verify

******

! 설정한 Key 정보 확인하기

BR#sh crypto isakmp key

Keyring               Hostname/Address                   Preshared Key

default               100.10.1.2                              P@ssw0rd

   

! IPSec VPN map 확인하기

BR#sh crypto map

Crypto Map "VPN_To_HQ" 10 ipsec-isakmp

        Peer = 100.10.1.2

        Extended IP access list 101

            access-list 101 permit ip 172.16.2.0 0.0.0.255 172.16.1.0 0.0.0.255

        Current peer: 100.10.1.2

        Security association lifetime: 4608000 kilobytes/3600 seconds

        PFS (Y/N): N

        Transform sets={

                aes_sha,

        }

        Interfaces using crypto map VPN_To_HQ:

                Serial1/0

   

! 현재 라우터에 IPSec VPN Session 상태를 확인한다.

! -- 세션이 활성화 되기전 상황

BR#sh crypto session

Crypto session current status

Interface: Serial1/0

Session status: DOWN

Peer: 100.10.1.2 port 500

  IPSEC FLOW: permit ip 172.16.2.0/255.255.255.0 172.16.1.0/255.255.255.0

        Active SAs: 0, origin: crypto map

   

! -- 세션이 활성화

BR#sh crypto session

Crypto session current status

Interface: Serial1/0

Session status: UP-ACTIVE    

Peer: 100.10.1.2 port 500

  IKE SA: local 100.10.2.2/500 remote 100.10.1.2/500 Active

  IPSEC FLOW: permit ip 172.16.2.0/255.255.255.0 172.16.1.0/255.255.255.0

        Active SAs: 2, origin: crypto map

BR#

   

! 활성화된 IKE Session 목록 확인하기

BR#sh crypto isakmp sa

dst                 src                state         conn-id    slot    status

100.10.2.2      100.10.1.2      QM_IDLE              1       0    ACTIVE

   

! IPSec VPN -- ESP Header 보기

   

Microsoft Office OneNote 2007을 사용하여 작성했습니다.
모든 노트 및 정보를 한 곳에서 볼 수 있습니다.