여러곳에 VPN을 설정하고 나서 보니 Example데로 설정을 해서 개통을 하고 끝난것 같다. 얼마전에 VPN취약점이 나오면서 다시한번 VPN을 살펴보다가 약간의 자세한 내용파악이 필요한것 같아서 자료를 정리중…
(1). IPSec이 뭐여?
- IPSec은 IPv4 ,IPv6의 network layer 트래픽을 보호(protection)하기위한 IETF표준안.
- IPSec은 어디에서든지(anywhere)
end hosts, router나 firewall과 같은 intermediate systems
구현이 가능하고 누구나(anyone)의해서
Service provider, Enterprise
구현이 가능하기 때문에 여러벤더 환경에서 상호연동동작이 보장되어야 한다.
- IPSec은 network layer에서 동작하면서 IPSec devices(peers)들간의 IP packet을 보호(protoect)하고 인증(authenticate)한다.
(2). IPSec은 아래와 같은 문제점들을 해결할 수 있다.
- Many of today’s authentication problems
- IP identity spoofing
- A lot of denial-of-service attacks
- Data confidentiality problems
(3). IPSec의 일반적인 배치 시나리오
- Access VPNs
- Classic Site-to-Site managed VPNs
- Trusted MPLS VPNs
(4). IPSec Building Blocks
- IPSec은 2가지 주요한 protocol이 있다.
* AH(Authentication Header) : packet authentication and integrity(무결성)을 위하여 –> 데이터? 암호화는 하지않고 데이타의 신뢰성에만 제공하는 프로토콜
* ESP(Encapsulating Security Payload) : payload confidentiality(비밀성), authentication,
integrity를 위하여
- IKE(Internet Key Exchange)는 key관리를 위하여 사용된다.
(5). SA(Security Associations)
- 중심이되는 IPSec개념
- 2 peers/hosts간의 계약(contract) : 그들간에 특정 트래픽에 대하여 security service를 어떻게 사용하겠다는 계약
- SA는 그 peers/hosts간에 패킷을 안전하게 전송하기 위하여 필요로 하는 모든 security 파라미터들이 포함된다.
- SA설정은 어떠한 IPSec 서비스이던지 선결 필수조건이다.
- SA는 특정한 트래픽의 흐름에 대하여 peers들간에 사용되어지는 정책을 정의하는 것이다.
예를들면, host A와 host B사이의 트래픽에 대하여 payload encryption을 위하여 keys k1, k2, k3를 가지는 ESP 3DES를 사용하고 authentication위하여 key k4를 가지는 SHA를 사용한다.
(6). SA Contents
SA는 항상 아래의 security parameters를 포함한다.
- Authentication/encryption algorithm, key length, and other encryption parameters
- Keys for authentication and encryption
- Traffic to which the SA will be applied
- IPSec encapsulation protocol and mode
- peer마다 일반적으로 복수개의 SAs가 성립된다. 각 security protocol에 대한 각각의 방향(direction)마다 하나씩.
- SAs는 단방향(unidirectional). security policies는 전체적으로 비대칭이 될수 있다.
- SAs는 VPN장비의 SA database(SADB)에 저장된다.
(7). Security Parameters
- 설정되는 각각의 SA에 32-bit숫자의 SPI가 할당된다.
- SPI는 SADB에서 유일하게 특정한 SA를 가리킨다.
- SPI는 받는 시스템에 적절한 SA위치를 알려주기 위하여 IPSec packet안에 들어간다.
(8). SA Creation/Deletion/Lifetime
- SA는 어떻게 IPSec이 트래픽을 보호해야 하는지에 대한 현재 지시이다.
- IPSec이 트래픽을 보호하기 위하여 SA는 SADB에 반드시 설정이 되어야한다.
- SA는 암호 세션 키(Cryptographic session keys)를 포함한다.
- SA는 rekeying이 필요할때만 삭제되거나 refreshed된다.
(9). Authentication Header
- RFC 2402에서 정의
- 패킷의 신뢰성(authenticity), 무결성(integrity)을 보장하고 replay protection제공하기 위하여 고안되었다.
- AH와 같은 추가적인 header는 현재 IP datagram에 추가된다.
- AH는 IP protocol 51번이다.
(10). AH Security Service
- HMAC기능을 사용함으로써 AH는 다음을 제공한다.
* Packet sender authentication
* Packet integirty assurance
* Replay detection/protection(via sequence numbers)
- encryption은 없기때문에 기밀성(confidentiality)은 제공하지 않는다.
(11). AH Algorithms and Keys
- HMAC의 hashing알고리즘
* SHA-1 hashing(rfc2404)
* MD5 hashing(rfc2403)
- HMAC기능은 SA일부분을 구성한,shared secret key를 필요로 하는데
* SHA-1 : 160-bit
* MD5 : 128-bit
(12). AH Header구조
- SPI는 이 packet을 위하여 사용되는 SA를 보여줌
- 64-bit의 Sequence Number는 packet replay를 방지한다.
- Authentication Data는 이 packet의 HMAC부분이다.
(13). AH Mode
AH는 두가지 동작(operation)방식이 있다.
* Transport mode : end host가 자신 소유의 데이터를 AH encapsulation한다.
- application endpoints또한 IPSec encapsulate할때만 사용된다.
- packet안의 IP addressing이 변경이 없다.
- Header fields의 TTL, source route등과 같은 것들이 변경된다.
- 각각의 packet에 24bytes가 추가된다.
* Tunnel mode : IPSec gateway가 peer-to-peer tunnels에서 다른 hosts들에게 AH서비스를 제공한다.
- IPSec gateways가 AH service를 한다.
- gateways들 사이의 tunnel에서 전체 IP datagrams이 encapsulated된다.
- AH는 tunnel packet에 적용된다.
- payloads나 traffic patterns을 숨기지 않는다.
- tunnel ip와 AH header를 포함하여 44bytes가 포함된다.
(14). ESP(Encapsulation Security Payload)
- RFC2406에서 정의
- 패킷의 기밀성(confidentiality)을 보장하기 위하여 고안됨
- 현재의 RFC에 packet authentication, integrity, replay protection이 추가됨
- ESP는 IP protocol 50번임.
(15). ESP Security Services
- ESP는 대칭형 암호화 알고리즘을 통하여 packet payload를 암호화 함으로써 기밀성을 설정한다.
- 선택적으로 payload(HMAC functions)를 위한 authentication과 integrity를 추가한다.
- 암호화는 선택적으로 null encryption algorithm(rfc2410)을 사용하여 할 수 있다.
(16). ESP Algorithms and Keys
- Encryption은 DES와 3DES로 이루어진다
- 선택적으로 authentication과 integrity가 HMACs(keyed SHA-1, keyed MD5)로 제공된다.
- SA에는 두가지 다른 key가 있다.
* Encryption session key(s)
* HMAC session keys
(17). ESP mode
ESP도 동작에는 두가지 방식이 있다.
* Transport mode
- end host가 자신의 data를 ESP encapsulation한다
- application endpoints또한 IPSec encapsulate할때만 사용된다.
- packet안의 IP addressing이 변경되지 않는다.
- IP Packet(TCP,UDP, ICMP..)의 payload만 보호된다.
- traffic patterns이 감추어지지 않는다. (clear text network headers)
* Tunnel mode
- IPSec gateways가 ESP서비스를 제공한다.
- gateways들 사이의 tunnel에서 전체 IP datagrams이 암호화된다.
- ESP는 tunnel packet에 적용된다.
- payloads와 trafffic patterns(address-based)을 감출것이다.
(18). IKE(Internet Key Exchange)
- Internet Key Exchange(rfc2409)
- IKE프로토콜은 IPSec networks에서 key관리를 위하여 사용된다.
- IPSec peers들간에 IPSec SAs의 자동적인 협상(negotiation)과 생성(creation)을 한다.
(19). IKE History
IKE는 아래의 것들에 근거하는 hybrid protocol이다.
- ISAKMP(rfc2408) : the protocol for negotiated establishment of security associations
* Internet Security Association과 Key관리 프로토콜
* IPSec peers들간에 안전한 관리세션을 성립
* IPSec peers들간에 SAs를 협상한다.
- Oakley(rfc2412) : a key agreement/exchange protocol
* IKE session상에서 key교환을 위한 기법을 정의
* 자동적으로 각각의 IPSec SA에 대한 AH/ESP keying 구성요소를 결정한다.
* key교환을 위하여 기본적으로 인증된 Diffie-Hellman알고리즘을 사용한다.
- SKEME : another key-exchange protocol
(20). IPSec과 IKE의 관계가 뭐여?
- IPSec은 트래픽을 보호하기 위하여 SA가 필요하다.
- 만약에 적절한 SA가 없다면, IPSec은 IPSec SAs를 제공하기 위하여 IKE를 요청할 것이다.
- IKE는 관련된 peer와 관리세션을 open하고 IPSec을 위한 모든 SAs와 keying구성요소를 협상한다.
- IPSec이 트래픽 보호를 시작한다.
(21). IKE Protocol
- 양쪽 peers들의 두개의 IKE processes가 secure session(ISAKMP)을 연결하면 그 위에서 그들이 보호정책(protection policy)을 협상하고 구체화 할것이다.
- policy(SAs)가 설정이 완료되면 모든 SAs를 위하여 keying구성요소가 결정된다.
- IKE session은 UDP로 실행되는데 src/dst port가 다 500이다.
- IKE session성립의 결과는 IKE SAs의 생성이다.
- 그리고 IKE는 요청되는 모든 IPSec SAs와 연결한다.
(22). IKE Peer Identity
각각의 Peer는 다른 peers에게 자신을 소개하기 위하여 사용되어지는 IKE identity를 가진다. 일반적으로…
- IP address
- Fully qualified domain name(FQDN)
- X.500 name
- E-mail address
등을 사용한다.
- IKE peer인증을 교려하였을 경우에 Peer identity는 특별히 중요하다.
- peer를 인증하기 위하여 peer identity(IP address)를 특별한 보증서집합(public key)에 bind한다.
(23). IKE Phases and Modes
IKE는 2가지 phases를 가진다.
- IKE Phase 1
* Uses main or aggressive mode exchange
* Negotiates IKE SA
- IKE Phase 2
* Uses quick mode exchange
* Negotiates IPSec SAs
(24). IPSec이 어떻게 동작하느냐?
IPSec의 동작은 크게 5단계로 구분한다고 한다.
Step1. Interesting Traffic : VPN장비가 보호할 traffic을 인식한다.
Step2. IKE Phase 1 : VPN장비들간에 IKE security policy를 협상하고 secure channel을 설정한다.
IKE Phase 1단계에는 main mode와 aggressive mode 2가지 있다. main mode는 그림처럼 3가지 two-way exchanges가 발생한다.
*First exchange: IKE통신을 암호화하기 위하여 사용되어지는 알고리즘과 hashes를 협상한다.
*Second exchange: shared secret keys를 생성하기 위하여 DH교환을 사용한다.
*Third exchage: peer identity를 확인한다. 원격 peer를 인증하기 위하여 사용되어지는 exchange로 peer authentication method에는 아래와 같은 것들이 있다.
- Pre-shared keys: peer를 인증하기 위하여 사용하는 secret key를 각각의 peer마다 수작업으로 입력한다.
- RSA signature: peer를 인증하기 위하여 디지털인증서 교환을 사용한다.
- RSA encrypted nonces: Nonces(각각의 peer마다 임의로 생성되는 숫자)가 암호화되고 peer간에 교환된다.
aggressive mode는 적은 exchange를 사용한다.
Step3. IKE Phase 2 : VPN장비들간에 IPSec data를 보호하기 위하여 사용되어지는 IPSec security policy를 협상한다.
IPSec IKE Phase 2의 목적은 IPSec tunnel을 암호화하기 위하여 사용되어지는 security parameters를 협상하는 것이다. IKE Phase2는 다음과 같은 기능을 수행한다.
- Negotiates IPSec security parameters, IPSec transform sets
- Establishes IPSec SAs
- Periodically renegotiates IPSec SAs to ensure security
- Optionally performs an additional DH exchange
Step4. Data transfer : VPN장비가 트래픽에 security service를 적용하고 그 트래픽을 전송한다.
Interesting traffic이 IPSec SA에 지정된 security service에 따라서 암호화 복호화되어진다.
5. Tunnel terminated : tunnel을 종료한다.