IPSEC (Internet Protocol Security) 이란?
- 네트워크 계층에서의 IP 패킷을 암호화하기 위한 프로토콜이다. (인증 및 기밀성 제공)
- Tunnel mode, Transaport mode 2가지 운영 방식으로 동작한다.
- AH (Authentication Header) 와 ESP (Encapsulating Security Payload) 프로토콜로 보안성을 제공한다.
- IKE (Internet Key Exchange) 와 ISAKMP (Internet Security Association and Key Management Protocol) 프로토콜로 키 관리를 위한 기능 및 기반 구조를 정의한다.
IPSEC 운영 모드
1) Transport mode
IP 헤더를 제외한, Transport Layer Payload 만을 캡슐화하여 전송한다.

전송 계층으로부터 들어오는 패킷 앞뒤로 IPSec 헤더가 붙는 구조로, IP 헤더는 나중에 추가된다.

전송 모드는 일반적으로 호스트 간의 (end-to-end) 데이터 보호가 필요할 때 사용된다. 전송 호스트는 전송 계층에서 전송된 페이로드를 인증 및 암호화하기 위해 IPSec을 사용하며, 수신 호스트는 IPSec을 사용하여 인증을 확인하거나 IP 패킷을 복호화하여 전송 계층으로 전달한다.
2) Tunnel mode
Transport mode 와 달리, 전체 IP 패킷을 보호한다.

헤더를 포함한 IP 패킷을 가져와 전체 패킷에 대해 IPSec 보안 방법을 적용한 후, 원래 IP 헤더와는 다른 정보를 지닌 새 IP 헤더 (Carrier Protocol) 를 추가한다. Carrier protocol 은 외부 라우터 사이에 형성된 터널을 통해 패킷을 운반하는데 사용되며, 원래 IP 헤더 (Passenger Protocol) 는 내부 망에서 패킷을 전달하는데 사용되는 프로토콜이다.

라우터 간, 호스트와 라우터 간 또는 라우터와 호스트 간에 사용되어 전체 패킷이 가상의 터널을 통과하는 것처럼 발신자와 수신자 간의 침입으로부터 보호한다.
3) Tranport mode vs Tunnel mode
IPSec 의 두 가지 모드 차이점을 비교해보자.

- Transport mode : Tranport Layer Payload 만을 캡슐화, 전송 계층 - IPSec 계층 - 네트워크 계층
- Tunnel mode : 전체 IP 패킷을 캡슐화, 네트워크 계층 - IPSec 계층 - New 네트워크 계층
IPSEC 프로토콜
1) AH (Authentication Header)
발신자 호스트의 신원을 인증하고, IP 패킷에서 전달한 Payload의 무결성을 보장하기 위해 설계된 프로토콜이다. 단, 발신자 인증과 데이터 무결성은 제공하지만 기밀성 (Confidentiality) 은 제공하지 않는다.

1. AH 삽입 과정
- Authentication data 필드가 0으로 설정된 페이로드에 AH 가 추가된다.
- IP 헤더와 Payload 를 일부 결합하여 메시지 블록을 생성한다.
- 송신자의 비밀키를 사용하여 HMAC (Hash Message Authentication Code) 을 계산한다.
- 계산된 HMAC 값은 AH 헤더의 Authentication Data 필드에 삽입된다.
- 프로토콜 필드의 값을 51로 변경한 후 IP 헤더가 추가된다.
IP 데이터그램이 인증 헤더를 전송할 때, IP 헤더의 프로토콜 필드의 값은 51로 대체되며, 본래의 값은 인증 헤더 내부의 Next header 필드에 유지된다.
2. AH 작동 방식
- 송신자는 데이터를 전송하기 전에, AH 헤더를 추가하고 데이터를 포함한 메시지에 대한 해시 값을 계산한다.
- 해시 값은 송신자의 비밀 키를 사용하여 생성되며, 수신자는 해당 키와 알고리즘을 사용하여 해시 값을 검증한다.
- 수신자는 인증 헤더를 통해 송신자의 신원을 확인하고, 메시지가 전송 중에 변조되지는 않았는지 검사한다.
2) ESP(Encapsulating Security Payload)
AH에서 제공하지 못하는 기밀성을 보장하도록 제안된 프로토콜이다.

- Payload 에 ESP 트레일러가 추가된다.
- Payload 와 ESP 트레일러가 함께 암호화된다.
- ESP 헤더가 IP 헤더와 암호화된 Payload 사이에 삽입된다.
- ESP 헤더 + 페이로드+ ESP 트레일러를 통해 인증 데이터를 생성한다.
- 인증 데이터는 ESP 트레일러의 끝에 삽입된다.
- 프로토콜 필드의 값을 50으로 변경한 후 IP 헤더가 추가된다.
IP 데이터그램이 ESP 헤더와 트레일러를 전송할 때, IP 헤더의 프로토콜 필드 값은 50으로 대체되며, 본래의 값은 ESP 트레일러 내부의 Next header 필드에 유지된다.
IPSEC 키 인증
1) SA(Security Association)
IPSec을 이용한 통신을 수행하기 위해서는, 상기 그림과 같이 보안 관련 매개 변수를 서로 주고받아야 한다. 이때 SA (Security Association) 란, 보안 통신을 위해 필요한 여러 가지 알고리즘 및 정책의 집합을 의미한다.

이를 체계적으로 관리하기 위해 SAD (Security Association Database)를 두며, SA 식별을 위해 SPI (Security Parameter Index) 라는 변수를 이용한다. (Outbound SA 와 Inbound SA 식별)
호스트가 IPSec 헤더를 포함해야 하는 패킷을 보내야 하는 경우, 호스트는 패킷에 보안을 적용하기 위한 정보를 찾기 위해 아웃바운드 SAD에서 해당 항목을 찾아야한다. 마찬가지로 호스트가 IPSec 헤더를 포함하는 패킷을 수신할 때, 호스트는 패킷의 보안을 확인하기 위한 정보를 찾기 위해 인바운드 SAD에서 해당 항목을 찾아야 한다.
2) IKE(Internet Key Exchange)
인바운드 및 아웃바운드 보안 연결을 모두 성립하도록 설계된 프로토콜이다. Peer 가 IP 패킷을 보내야 할 때 SPD (Secure Policy Database) 와 논의하여 해당 유형의 트래픽에 대한 SA 가 있는지 확인한다. SA 가 없는 경우 IKE 를 호출하여 SA 를 설정한다.

IKE 는 상기 이미지와 같이 Oakley, SKEME, ISAKMP의 세 가지 다른 프로토콜을 기반으로 하는 프로토콜이다.
- Oakley 프로토콜 : 키 생성 프로토콜이다.
- SKEME : 키 교환을 위한 프로토콜이다. entity 인증을 위해 공개 키 암호화를 사용한다.
- ISAKMP (Internet Security Association and Key Management Protocol) : IKE에서 정의된 키 교환을 실제로 구현하는 국가보안국 (NSA)에서 설계한 프로토콜이다. 여러 패킷, 프로토콜 및 매개변수를 정의하여 SA를 생성한다.
공부하면서 정리한 내용을 글로 작성하였습니다.
혹시나 잘못된 내용이 있다면 댓글로 알려주시면 감사하겠습니다 :)
'Security > Network Security' 카테고리의 다른 글
[Linux / KALI] Switch Jamming 공격 (0) | 2025.03.04 |
---|---|
[Linux / KALI] DNS Spoofing 공격 (0) | 2025.03.04 |
[Linux / KALI] SSH 인증 키 로그인 방식 (1) | 2025.02.12 |
[Linux / Rocky] X11 Forwarding (0) | 2025.02.12 |
[Linux / Rocky] SSH Tunneling 터널링 (0) | 2025.02.12 |