네트워크 / 보안

‘데이터 흐름을 보호하는 프로토콜’ IPsec 이해하기

Josh Fruhlinger | CSO 2022.01.04
IPsec(Internet Protocol Security)은 인터넷 통신을 보호하는 프로토콜 묶음이다. 1990년대에 처음 명문화되었고, 인터넷 트래픽을 보호해야 한다는 인식과 함께 확산했다. IPsec의 용도와 작용 방식, 구성 요소를 자세하게 살펴보자.
 
ⓒ Getty Images Bank


IPsec의 용도

초기의 인터넷은 대부분 안전한 정부 및 대학교 건물과 연결되어 있었고, IP(Internet Protocol)는 보호받지 않고 암호화되지 않은 채 정보를 전송했다. IPsec은 보편적인 인터넷 보안 표준을 생성하기 위해 고안됐고, 진정한 의미의 ‘안전한 인터넷 연결’을 처음으로 실현했다. 비록 IPsec이 오늘날 가장 보편적으로 사용되는 인터넷 보안 프로토콜은 아니지만, 인터넷 통신 보안에 있어 여전히 핵심적인 역할을 한다.

오늘날 IPsec은 VPN(Virtual Private Network) 맥락에서 사용한다. VPN은 공개 인터넷으로 두 기기 간 네트워크 연결을 생성하지만, 이름에서 알 수 있듯이 사설 내부 네트워크로 연결하는 것만큼이나 안전하다. 원격 근무 직원이 사무실에서 일하는 것처럼 기업의 방화벽 보호를 받는 보안된 파일에 접근하도록 허용하는 것이 VPN의 대표적인 사용례다.

IPsec 스위트의 프로토콜은 이른바 IPsec VPN이라고 불리는 대표적인 VPN 유형을 보호하는 기술이다. 따라서 이 글에서 VPN이라는 표현은 IPsec VPN을 의미한다. 참고로 말하자면, 방화벽에서 IPsec VPN 연결을 허용하려면 UDP 포트 500, IP 포트 50 및 51을 열어 두어야 한다. 


IPsec 계층에 대한 이해

IPsec VPN 작용 방식의 핵심적인 부분을 살펴보기 전에, IPsec VPN이 네트워크에서 특별한 위치를 차지하는 이유를 이해해야 한다. 이를 위해서는 OSI(Open System Interconnection) 네트워킹 모델을 먼저 살펴봐야 한다. OSI 모델은 7개의 추상적인 계층으로 정의된다. 네트워크 통신은 각 계층 위에서 발생한다. OSI 모형의 최상단인 응용 계층(7계층)에서 웹 브라우저가 작동하며, 최하단인 물리 계층(1계층)에서는 전기 펄스가 유선으로 이동한다. 

OSI 모델의 중심에는 전송 계층(4계층)과 네트워크 계층(3계층)이 있다. 전송 계층 관리에 사용한 코드는 개별 컴퓨터상에서 실행되고 단말 시스템과 호스트 간 데이터 전송을 조정한다. 즉, 얼마나 많은 데이터를 어느 정도의 속도로, 어디로 전송할 것인지를 조정하는 계층이다. 전송 계층에서 이런 요소가 정해지면 데이터는 네트워크 계층으로 넘어간다. 네트워크 계층은 일반적으로 라우터 및 여타 네트워크 구성 컴포넌트에서 실행되는 코드로 제어된다. 개별 네트워크 패킷이 목적지로 이동하는 경로는 라우터에서 결정되므로 전송 계층은 목적지에 대한 상세 정보를 알 필요가 없다. 

TCP/IP 프로토콜 스위트는 인터넷의 중심인 전송 계층과 네트워크 계층에 걸쳐 있다. 즉, 전송 제어 프로토콜인 TCP는 전송을 위한 것이고, IP는 네트워킹을 위한 것이다. IPsec은 IP에 자체적인 보안 기능이 없기 때문에 개발됐다. IPsec의 뒤를 바짝 따라오는 것이 SSL/TLS다. TLS(Transport Layer Security)는 문자 그대로 전송 계층에서 통신을 암호화하는 프로토콜이다.
 
오늘날 TLS는 모든 브라우저와 인터넷에 연결된 애플리케이션에 탑재되어 있으며 일상적인 인터넷 사용 환경을 보호하기에 충분하다. 그러나 TLS가 완벽한 보호 방법은 아니다. 공격자가 TLS 암호화를 깨뜨리거나 우회해 인터넷으로 전송되는 네트워크 패킷 내의 데이터에 접근할 수 있기 때문이다. 이런 상황에서 IPsec VPN은 또 하나의 보호 계층을 제공한다. 즉, IPsec VPN은 네트워크 패킷 자체를 보호한다. 


IPsec의 동작 과정

IPsec VPN 연결은 2개의 통신 컴퓨터 또는 호스트 간 SA(Security Association)를 확립하는 것에서 시작한다. 일반적으로 통신 당사자들이 통신을 암호화하고 복호화하는 암호 키를 교환하면서 SA가 확립된다. 통신에 사용할 암호화 유형은 이른바 ‘정보보호의 3요소(CIA Triad)’ 내의 보안 목표에 따라 두 호스트가 자동으로 협상해 결정한다. 예를 들면 메시지의 기밀성이 아닌 무결성, 즉 데이터 변경이 없는 것을 목적으로 메시지를 암호화하는 경우도 있다. 다만 대부분의 경우에는 데이터를 기밀로 유지하는 것이 목표에 포함된다.

SA에 대한 정보는 각 통신 호스트에서 실행 중인 IPsec 모듈로 전달되며, 각 호스트의 IPsec 모듈은 이 정보를 이용해 상대 호스트로 전송하는 모든 IP 패킷을 변경하고, 유사하게 변경된 수신 패킷을 처리한다. 이런 변경은 패킷의 시작 부분에 있는 메타데이터인 ‘헤더’와 실제 전송되는 데이터인 ‘페이로드’에 영향을 미친다. 헤더에는 패킷의 목적지와 출발점에 대한 정보가 있으며, 패킷의 전송 경로도 포함되어 있다. 


IPsec 구성 요소 

IPsec이 IP 패킷을 변경하는 방식은 IPsec 프로토콜 종류에 따라 결정된다. 대표적인 IPsec 프로토콜 3가지를 살펴보자.
 
  • IKE(Internet Key Exchange) : 통신 중인 호스트 간 SA를 확립하고, 통신 세션 과정에 사용할 암호 키와 알고리즘을 협상한다. 
  • AH(Authentication Header) : AH는 전송하는 패킷에 헤더 필드를 추가한다. 헤더 필드에는 패킷 내용이 암호화된 해시가 포함되어 있다. 패킷을 수신하는 호스트는 해당 해시를 이용해 페이로드가 전송 도중에 변경되지 않았음을 확인할 수 있다. 
  • ESP(Encapsulating Security Payload) : 페이로드를 암호화하고 패킷 헤더에 순차적으로 번호를 부여한다. 수신 호스트는 패킷 헤더에 부여된 번호로 중복 패킷이 아님을 확인할 수 있다. 

AH와 ESP 프로토콜은 동시에 이용할 수 있으며, 최신 ESP 버전은 AH의 기능을 다수 포함하고 있다. AH와 ESP 프로토콜은 모두 어떤 방식으로든 IP 구현에 포함된다.


IPsec 암호화 

IPsec VPN으로 기대하는 대부분 작업은 IKE와 ESP로 확립된 암호화로 이뤄진다. 이 글에서는 암호화의 적용 방식을 간단하게만 설명했는데, IKE와 IPsec이 허용하는 암호화 스위트 및 기술이 매우 광범위하기 때문이다. IPsec이 수십 년 간의 기술 발전 속에서도 살아남은 이유이기도 하다. IPsec VPN은 PKI(Public Key Infrastructure)를 이용해 암호화는 것이 일반적이지만, 절대적인 방법은 아니다.


IPsec 터널 모드 vs. IPsec 전송 모드

IPsec은 터널 모드(Tunnel Mode)나 전송 모드(Transport Mode)로 작동한다. 2가지 모드 간 차이는 IPsec이 헤더를 취급하는 방식에 있다. 전송 모드에서 IPsec은 패킷의 페이로드만 암호화하고(AH만 사용하는 경우 페이로드만 인증하고) 패킷 헤더는 거의 그대로 남겨둔다. 터널 모드에서 IPsec은 새 헤더를 보유한 완전히 새로운 패킷을 생성하고, 원본 패킷 전체를 새로 생성한 헤더와 함께 암호화(또는 인증)한다. 변경된 원본 패킷은 새로운 패킷의 페이로드로 사용한다. 

각 모드는 언제 사용될까? 네트워크 패킷이 사설 네트워크 상에서 호스트로 송신되거나 수신될 때, 해커는 패킷의 헤더에 포함된 라우팅 데이터를 분석해 악의적인 목적으로 사용할 수 있다. 이런 데이터를 보호하는 터널 모드는 일반적으로 기업의 사설 네트워크 외부 경계에 있는 게이트웨이 간 연결에 사용한다. 패킷은 네트워크를 떠날 때 암호화되며, 표적 네트워크의 게이트웨이를 목적지로 하는 새로운 패킷에 담긴다. 게이트웨이에 도착한 패킷은 복호화된 후 압축 패킷에서 제거되고, 내부 네트워크의 대상 호스트로 전송된다. 따라서 사설 네트워크의 구조에 대한 헤더 데이터는 패킷이 공개 인터넷을 이동하는 동안에도 전혀 노출되지 않는다. 

반면 전송 모드는 워크스테이션과 게이트웨이 간 연결이나 직접적인 호스트 간 연결에 사용하는 것이 일반적이다. 예컨대 컴퓨터 업체 직원이 사용자 컴퓨터의 문제를 진단할 때 사용하는 윈도우 원격 데스크톱(Windows Remote Desktop) 프로토콜은 전송 모드로 연결된다.


IPsec VPN vs. SSL VPN

앞서 설명한 것처럼 IPsec VPN이 IP를 보호하는 유일한 기술이 아니다. SSL VPN은 IPsec이 아닌 TLS 프로토콜로 IP를 보호한다. SSL VPN은 웹 브라우저를 통해 작동하기 때문에 일반적으로 방화벽이 있는 인트라넷 웹사이트 접근에 사용된다. 이런 방식은 사용자가 친숙하게 여기는 소프트웨어에 내장되어 있기 때문에 훨씬 사용하기 쉽다. 반면 IPsec VPN은 전용 소프트웨어를 설치하고 구성해야 하는 경우가 많다. 또한 SSL VPN은 사설 네트워크에 대한 보다 세분화된 접근 방식을 제공한다는 특징이 있다.

TLS를 이용하는 SSLP VPN은 네트워크 계층이 아니라 전송 계층에서 IP를 보호한다. 따라서 SSL VPN은 네트워크 연결에 대한 보안 성능 파악에 영향을 미칠 수 있다. editor@itworld.co.kr
 Tags IPsec IPsecVPN
Sponsored

회사명 : 한국IDG | 제호: ITWorld | 주소 : 서울시 중구 세종대로 23, 4층 우)04512
| 등록번호 : 서울 아00743 등록발행일자 : 2009년 01월 19일

발행인 : 박형미 | 편집인 : 박재곤 | 청소년보호책임자 : 한정규
| 사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2024 International Data Group. All rights reserved.