VPN 작동원리 #2

SuweonPark·2024년 4월 23일
0

VPN 작동원리 #1 에서 AH 헤더와 ESP 헤더 그리고 SA의 정의에 대해 살펴보았으니 이제 SA를 생성 혹은 협의하는 과정, 다시 말해 터널을 생성하고 데이터를 암호화할 키를 교환하는 과정을 보고자 합니다. 바로 Internet Key Exchange입니다.

1. Internet Key Exchange(IKE)

Internet Key Exchange(키 교환 복합 프로토콜, 이하 IKE)는 IPSec의 SA 생성을 위한 복합 프로토콜입니다. '복합 프로토콜'이라 부른 이유는 IKE가 새롭게 설계한 프로토콜이 아닌 ISAKMP(Internet Security Association and Key Management Protocol)라는 키 교환 프로토콜의 구조와 설계, 메시지 포멧을 명시한 프로토콜을 기반으로 OKALEY, SKEME와 같은 키 교환 프로토콜을 결합하여 만들 프로토콜이기 때문입니다.
IKE는 두 개의 과정으로 나뉩니다. IKE Phase 1(ISAKMP SA)와 IKE Phase 2(IPSec SA)로 말이죠

2. IKE Phase 1

IKE Phase 1 에서는

  • 피어(데이터를 공유하는 방식)는 인증서나 사전 공유 비밀을 통해 인증합니다. (피어 중 하나가 원격 액세스 클라이언트인 경우 더 많은 인증 방법을 사용할 수 있습니다.)
  • Diffie-Hellman 키가 생성됩니다. Diffie-Hellman 프로토콜의 특성은 양측이 피어에게만 알려진 키인 공유 비밀을 독립적으로 생성할 수 있음을 의미합니다
  • key material(임의 비트 및 기타 수학적 데이터)와 IKE 2단계 방법에 대한 합의가 피어 간에 교환됩니다.

성능면에서 Diffie-Hellman Key의 생성은 느리고 무겁습니다. 이 단계의 결과는 IKE 2단계의 키와 방법에 대한 합의인 IKE SA입니다. 아래 그림은 IKE 1단계에서 발생하는 프로세스를 보여줍니다.

  1. 피어는 암호화 방법/알고리즘에 대한 정보를 교환합니다.
  2. 무작위 비트 풀에서 각 측은 DH 개인 키를 생성합니다.
  3. 각 피어는 개인 키에서 DH 공개 키를 계산합니다
  4. 공개 키가 교환 됩니다.
  5. 양측은 각자의 개인 키와 상대방의 공개 키를 사용하여 공유 비밀 키를 생성합니다.
  6. 공유 비밀 키는 Diffi-Hellman 키입니다.(DH key)
  7. Peer간 신원 및 인증서 교환(암호화된 데이터)

3. 디피-헬먼, DH-key, Diffie-Hellman protocol이란?

Diifi-Hellman protocol, DH protocol은 공개 키를 분배하는 방안이다.

데이터를 동일한 키로 암호화, 복호화한다는 상황을 가정해보자. 사용하는 키를 통신을 주고 받는 쪽과 주고 받아야하는데 이 키는 어떻게 안정하게 주고 받을 수 있을까?

1976년 11월에 스탠퍼드에서 Whitfield Diffie와 Martin Hellman이 발표한 논문에서 공개 키를 분배하는 방법을 발표하였고, 이 방식은 아직도 대부분 통신방식에서 이용하게 된다. https에서도 이 DH키를 통해서 데이터를 암호화, 복호화하여 주고 받게 된다.

  1. Alice와 Bob은 공개 매개변수에 동의합니다.
  2. Alice는 자신의 비밀 키(a)를 매개변수와 결합하고 결과 공개 키(A)를 Bob에게 보냅니다.
  3. Bob은 자신의 비밀 키(b)를 매개변수와 결합하고 결과 공개 키(B)를 Alice에게 보냅니다.
  4. Alice는(B)를 자신의 비밀 키(a)와 결합합니다.
  5. Bob은(A)를 자신의 비밀 키(b)와 결합합니다.
  6. Alice는와 Bob은 공유된 비밀 키를 가지고 있습니다

참고
https://sc1.checkpoint.com/documents/R81/WebAdminGuides/EN/CP_R81_SitetoSiteVPN_AdminGuide/Topics-VPNSG/IPsec-and-IKE.htm
https://aws-hyoh.tistory.com/163
https://velog.io/@jungbumwoo/%EB%94%94%ED%94%BC-%ED%97%AC%EB%A8%BC-DH-key-Diffie-Hellman-protocol-%EC%9D%B4%EB%9E%80
https://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange

profile
프론트엔드 개발자

0개의 댓글