9-1. How IPSec Works
-
Five Steps of IPSec
IPSec의 목적은 필요한 보안 서비스와 함께 원하는 data를 보호하는데 있다. IPSec의 동작은 다음과 같이 5가지 주된 동작에 의해 이루어진다.
- Interesting traffic : Traffic은 보호될 필요가 있으며 보내지길 원하는 traffic이 VPN 장비에 의해 분간되어질 때 구분되어질 것이라고 생각한다.
- IKE Phase 1 : 보안 서비스의 기본 set은 negotiated(협상)과 peer사이의 협상이다. 이러한 보안 서비스는 peer사이의 모든 다음 통신을 보호하게 된다. IKE Phase 1은 peer상이의 통신 채널의 보안을 set up한다.
- IKE Phase 2 : IKE는 IPSec SA parameter를 negotiated(협상)하고 peer에 IPSec SAs를 matching하는 과정이다. 이러한 보안 parameter들은 data를 보안하고 endpoint사이에 메세지를 교환하는데 사용한다.
- Data transfer : data는 IPSec parameter들과 SA database에 저장되어 있는 key를 기반으로하는 IPSec peer사이에 전송한다.
- IPSec tunnel termination(끝내기) : IPSec SAs는 삭제나 시간제한으로 끝내게 된다.
-
Step 1 : Interesting Traffic
모든 inbound 그리고 outbound datagram을 위해 두가지 선택이 있다.: IPSec을 적용하거나 IPSec을 그냥 통과시키고 clear text에 datagram을 보내는 것이다. IPSec에의해 보호되어지는 모든 datagram을 위해 system 관리자는 반드시 datagram에 보안 service 적용을 지정하여야 한다. 보안 정책 database는 IPSec protocol, mode, 그리고 알고리즘을 traffic에 적용하는 것을 지정하여야 한다. 서비스는 그리고 나서 도달하게 될 각각의 IPSec peer에게 적용하여야 한다.
-
Step 2 : IKE Phase 1
IKE Phase 1의 기본 목적은 IKE policy set, peer들의 인증 그리고 peer사이의 보안 채널을 set up을 negotiate(협상)하는데 있다. IKE Phase 1은 두가지 mode가 있다: main mode그리고 aggressive(침략적인, 공격의)mode가 있다.
-
initiator그리고 receiver사이의 Main mode three two-way 교환
-First exchange: IKE 통신에 사용되는 알고리즘과 hashes는 peer사이의 negotiate(협상)과 동의하는데 사용된다.
-second exchange : 이 교환은 DH 교환을 공유된 secret key를 생성하는데 사용하고 당분간 통과하게 한다.random number는 다른 party에 보내지고 signed되고 이들의 동일함을 증명하고 되돌아온다. 공유 secret key는 모든 다른 암호화되고 인증key 생성에 사용되어 진다.
-Third exchange : 이 교환은 다른 쪽의 동일함을 검증한다. 이것은 remote peer를 인증하는데 사용된다.
위의 과정을 쉽게 설명하여 보자.
-첫 번째 교환 : IKE 통신에 사용되는 알고리즘과 hash를 peer사이에 협상하고 동의한다.(즉 정책들)
-두 번째 교환 : DH를 교환한다. 즉 암호 key를 교환한다.
-세 번째 교환 : 검증한다.
-
-
IKE Phase 1 Policy Sets
위의 Phase 1 과정중 policy set에 대해 알아보자.
host A와 host B 사이에 Internet을 통한 보안 연결을 만들려고 할때 IKE 보안 제안은 보안장비 A, B사이에서 교환된다. 이 제안은 IKE protocol 교환에 사용되어지는 crypto 속성을 확인할 때 사용되어 진다. originator는 제안안에(예를들어 DES에 MD5를 넣는다)알고리즘을 넣어주어야만 한다. 각각의 알고리즘을 개별적으로 negotiate(협상)하는 것보다는 IKE transform(변형) set이라고 불리는 알고리즘을 그룹화하는게 더 좋다. transform set은 암호화 알고리즘, 인증 알고리즘, mode, 그리고 key길이를 제안하여야 한다. 이러한 IKE 제안 그리고 transform set은 IKE main mode가 first exchange phase되는 동안에 교환된다. 만약 transform set이 매치 된다면 main mode는 유지되고 아니라면 shut down된다.
위 예제를 보면 보안 장비 A는 IKE transform set 10과 20을 보안장비 B에게 보낸다. 보안장비 B는 IKE set을 공유하고 보안장비 A로 부터 받은 transform set을 15로 만든다. 이러한 예제에서 보안 장비 A의 transform set 10은 보안장비 B transform set 15와 매치 된다.
point-to-point application에서 각각 end장비는 하나의 IKE policy만을 정의하면 되지만 hub-and spoke 환경에서는 central site는 multiple IKE policy가 필요하다.
-
DH Key Exchange
DH key는 공용 key 교환 방법이다. 이것은 두 peer가 공유 secure key를 불안전한 통신 path상에 사용할 때 제공한다. 다양한 DH 알고리즘또는 그룹을 DH group 1 - 7로 지정 가능하다. 그룹 넘버는 알고리즘을 지정하고 있고 특유의 값을 가지고 있다. 예를들어 group 1은 prime(가장 중요한) modular exponential(대표적인)(MODP) 알고리즘으로 768-bit prime number를 가진다. 그룹 2는 1024-bit prime number를 가진다. IKE Phase1 동안 그룹은 peer들 사이에서 negotiate 된다. Cisco VPN 장비는 group 1,2,5,7을 지원한다.
그룹 neotiation은 완성된 후 공유된 secret key는 계산된다. 공유된 secret key인 SKEYID는 3가지의 다른 key의 기원으로 사용된다. : SKEYID_a, SKEYID_d, SKEYID_e. 각각의 key는 구분된 목적을 가지고 있다. SKEYID_a는 keying 자원이 인증과정을 하는 동안 사용된다. SKEYID_d는 keying 자원이 non-ISAKMP SAs를 위해 key를 얻어내기 위해 사용된다. SKEYID_e는 암호화 과정에서 keying 자원을 사용하는 경우에 사용된다. 모든 4가지 key는 IKE Phase 1를 하는 과정에서 사용된다.
-
Authenticate Peer Identity
Internet을통한 사업을 설계할 때는 tunnel의 다른 끝쪽의 정보를 반드시 알아야 한다. VPN tunnel의 다른 끝쪽의 장비는 통신을 하기전에 보안을 위해 인증을 하여야만 한다. IKE Phase 1의 마지막 교환으로 remote peer간에 인증을 사용한다.
보안장비는 두 가지의 인증 방법을 제공한다.
- Pre-shared keys : 각각의 peer를 위해 암호 key 값을 수동으로 집어넣어 인증하는 방식이다.
- RSA Signature : 특정한 RSA Signature를 인증 방법처럼 사용한다.
- DSA Signature : 특정한 DSA Signature를 인증 방법처럼 사용한다.
-
Step 3 : IKE Phase 2
IKE Phase 2의 목적은 IPSec tunnel 보안에 사용되는 IPSec 보안 parameter를 협상하는데 있다. IKE Phase 2는 다음과 같이 동작한다.
- IPSec 보안 parameter와 IPSec transform set을 협상한다.
- IPSec SAs를 성립한다.
- 주기적으로 IPSec SAs를 협상한다.
- (Optional)추가적으로 DH 교환을 한다.
IKE Phase 2는 called quick mode라고 하는 한가지 mode만이 있다. quick mode는 IKE가 Phase 1에서 보안 tunnel을 성립한 후에 발생한다. 이 것은 공유된 IPSec transform을 협상하고 IPSec 보안 알고리즘을 위해 사용된 공유된 보안 key 자원을 뽑아내고 IPSec SAs를 성립한다. Quick mode는 임시적으로 생성한 새로운 공유된 보안 key 자원을 교환하고 생성된 가짜 SAs로 부터의 응답 공격을 막아주는데 사용된다.
Quick mode는 또한 IPSec SA lifetime이 만기 되었을 때 새로운 IPSec SA를 재협상하는데 사용된다.
-
IPSec Transform Set
IKE Phase 2의 궁극적인 목적은 endpoint 사이의 보안 IPSec 세션을 성립하는데 있다. 이러한 일들이 벌어지기 전에 각각의 endpoint의 한쌍은 보안 level을 협상하여야 한다. 각각 protocol을 개인적으로 협상하는 것 보다는 IPSec transform set이라 불리는 protocol group을 만드는게 더 좋다. IPSec transform set은 quick mode 동안에 peer사이에 교환한다. set 상이에 매치되는 것이 있다면 IPSec session-성립은 이어진다. 없다면 중지된다.
위 그림을 보면 보안장비 A는 IPSec transform set인 30, 40을 보안장비 B에게 보낸다. 보안장비 B는 이 set을 공유하고 set 55로 변환한다. 보안장비 A의 transform set 30은 보안장비 B의 55와 매치되는 것이다. 이러한 암호화와 인증 알고리즘은 SA로부터 알 수 있다.
-
SAs
보안 서비스가 peer들간에 협의될 때 각각의 VPN peer 장비들은 security policy database(SPD)안에 정보를 입력한다. 이 정보는 암호화한 것과 인증 알고리즘, 목적지 주소, transport mode, key lifetime 등등을 포함한다. 이 정보는 SA에게 보내진다. SA는 한 반향 논리 연결이고, 연결된 모든 traffic에 보안을 제공한다. 대부분의 traffic은 양방향이므로 두 개의 SA가 필요로 하다. 하나는 inbound traffic이고 다른 하나는 outbound traffic이다. VPN 장비는 SA를 number와 함께 index화 하고, security parameter index(SPI)도 index화 한다. 개개의 SA의 parameter들을 tunnel과 source gateway 또는 host를 지나 ESP header안에 SPI를 집어 넣는다. IPSec peer가 packet을 받을 때 이 peer는 목적지 IP 주소, IPSec Protocol 그리고 packet의 SA database(SAD)안에 있는 SPI를 보게되고 그리고 나서 packet을 SPD아래 있는 알고리즘 리스트에 따라 처리하게 된다.
IPSec SA는 SAD와 SPD를 따른다. SAD는 SA목적지 주소, IPSec protocol 그리고 SPI number를 확인하는데 사용된다. SPD는 SA, 암호화와 인증 알고리즘 그리고 mode와 key lifetime에 적용되는 보안 서비스를 정의한다. 예를들어 corporate-to-bank 연결을 생각해 보자. 보안정책은 3DES, SHA, tunnel mode, 그리고 key lifetime 28800을 사용하여 강력한 secure tunnel을 제공한다. SAD 값은 192.168.1.1, ESP 그리고 SPI-12이다. e-mail에 접근하는 원격 user를 위해서는 DES, MD5, tunnel mode, 그리고 key lifetime을 28800을 주어 덜 보안적인 정책을 사용한다. SAD값은 목적지 IP인 192.168.6.1, ESP, 그리고 SPI-39이다.
-
Step 4: IPSec Session
IKE Phase 2가 완성되고 quick mode가 IPSec SAs를 성립한 후에 traffic은 host A와 B사이에서 secure tunnel을 통해 교환된다. 지정한 traffic은 IPSec SA에 지정한 보안 service에 따라 암호화되고 암호화 풀이를 한다.
-
Step 5: Tunnel Termination