IPSec 터널 생성과정에 해당하는 IKE(Internet Key Exchange)의 터널 생성 과정
*IKE : IPSec의 보안연관 생성을 위한 복합 프로토콜. SA(Security Association)를 생성 유지
**SA : 데이터의 안전한 전달을 위해 통신의 쌍방(양방향) 간 약속되어지는 사항들(암호 알고리즘, 키 교환 방법, 주기)
IKE phase 1(ISAKMP 1) : VPN간 안전한 phase 2 SA 교환을 위한 phase 1 터널 생성과 상대방 인증
IKE phase 2(IPSec SA) : 패킷의 암호화 알고리즘 결정과 암호화 키 교환
IKE phase 1을 통해 상대방(peer VPN)을 인증하고 Phase 2의 협의사항(IPSec SA)을 암호화 해 전달하기 위한 암호 알고리즘을 결정, 암호화 키 교환한다.
--> IKE phase 2를 실시할 환경인 IKE phase 1 터널을 만드는 것
IKE phase 2를 통해 패킷(데이터)을 암호화할 알고리즘과 암호화 키를 교환하고 패킷의 무결성을 검증할 방법을 협의한다.
--> 사용자가 교환할 패킷을 어떻게 교환할지 협의하는 단계
AH헤더, ESP헤더를 선택한다.
IKE phase 1
목표 : ISAKMP SA를 협상해 안전한 터널을 생성하고 상대방을 인증하는 것
*안전한 터널 : 패킷의 암호화된 교환에 직접적인 영향을 미치는 수단(IKE phase 2 SA)을 암호화하여 전달할 수 있는 터널
[목표를 이루기 위한 방법]
1. ISAKMP SA 제안 및 협의사항
[ SA ]
Hash : 인증 정보 교환 시 인증 정보가 변질되지 않았음을 증명하기 위한 해쉬 코드 첨부에 사용되는 해쉬 알고리즘(SHA, MD5)
Authentication : 상대방 VPN을 인증하기 위한 방법 (Pre-share;Key, RSA Encryption, RSA signature)
DH Group : 인증 정보를 암호화 할 키를 생성하는 대칭키 교환 알고리즘으로 phase 2에서 사용(DH Group1, 2, 5)
Lifetime : Phase 1 Tunnel이 유지되는 시간, 새로운 키를 생성하는 주기
Encryption : 키 교환 알고리즘과 함께 인증 정보를 암호화할 암호화 알고리즘(AES, DES, 3DES)
[SA 교환 과정]
(1) VPN 간 사용 가능한 SA 협의. 한쪽 VPN이 먼저 ISAKMP(5개의 SA)를 제안 시 상대방 VPN이 확인 후 자신이 사용 가능한 ISAKMP 세트 중 일치하는 것을 확인 후 답변
(2) 1에서 결정된 DH 키 교환 알고리즘 사용, 키 재료(Key Materials)를 교환하여 VPN간 공통적인 대칭키를 생성
--> 인증 정보 암호화 및 phase 2의 대칭키 생성에 사용
* 2023.10.10 - [네트워크] - 디피 헬만 알고리즘
(3) 1에서 결정한 해쉬 알고리즘 및 암호화 알고리즘, 2에서 생성한 대칭키를 이용하여 인증 정보를 암호화하여 서로에게 전송함으로 인증을 마치고 서로를 인증하며 터널 생성
2. 인증 정보 교환을 통한 상대방 VPN 인증
3. 인증 정보 암호화 및 phase 2에 사용할 암호화 키 생성
IKE phase 2
목표 : 패킷을 암호화하여 전송할 터널을 생성
1. IPSec SA 제안 및 협의
2. 패킷을 암호화 할 암호화 키 생성 및 인증
IPSec 협의사항
IPSec Protocol : 패킷 인증 / 암호화를 위한 프로토콜 헤더 선택(AH, ESP)
Encapsulation Mode : IPSec 터널의 운용 모드 선택(Transport, Tunnel)
Encryption : 패킷을 암호화 할 암호화 알고리즘 선택(AES, DES, 3DES)
Authentication : 패킷을 인증할 해쉬 알고리즘 선택(MD5, SHA)
Lifetime: phase 2 Tunnel이 유지되는 시간 phase 1의 대칭키 기반으로 키를 재생성하는 주기(phase 1보다 낮게 책정)
PFS(Perfect Forward Security) : 키를 주기적으로 교환하도록 강제하는 기능 설정, 옵션 사항
교환과정
1. 한쪽 VPN이 먼저 IPSEC 세트(IPSec 협의사항)를 제안 시 상대방이 확인 후 자신이 사용 가능한 IPSec 세트 중 일치하는 것을 확인해 답변
2. 패킷에 실질적인 영향을 주는 AH/ESP, Transport Mode, Tunnel Mode, 암호화 알고리즘, 해쉬 알고리즘, PFS등 포함
--> IPSec VPN의 사용 의의에 해당하는 SA를 협의 하는 과정
3. phase 1에서 생성한 대칭키를 기반으로 phase 2에서 추가적인 키 재료(Key Materials)를 서로에게 보내 새로운 대칭키를 생성
--> 랜덤 난수 값인 Nonce를 교환 (재전송 공격 방지)
---> Nonce는 일회성이므로 해커가 Nonce가 포함된 암호화 패킷을 훔쳐 전송 시, 한번만 사용해야 될 패킷이 또 사용됐으므로 VPN에서 감지 후 거부
* 재전송 공격 : 해커가 암호화된 패킷을 가로챈 후 가공하지 않고 재전송해 마치 송신자인 척 하는 공격
4. 반대쪽 VPN이 마찬가지로 Nonce를 상대방 VPN에게 전송 시 새로운 대칭키가 탄생 (패킷을 암호화하는데 사용)