IPSec(Internet Protocol Security)
- IPSec은 하나의 Protocol이 아니라, 통신 세션의 각 IP패킷을 암호화하고 인증하는 안전한 인터넷 프로토콜(IP) 통신을 위한 인터넷 프로토콜 스위트다.
- Network Layer 상에서 IP Packet 단위로 인증, 암호화를 진행하는 기술을 말한다.
- IPsec은 host와 host 사이,보안 게이트웨이 사이(네트워크 <> 네트워크), 보안 게이트웨이와 호스트 사이(네트워크 <> 호스트)에 데이터 흐름을 보호하기 위해 사용된다
IPSec Mode
- 전송 모드와 터널 모드가 존재하며, 인증과 암호화를 위한 Header 종류로 AH와 ESP가 있다.
[전송 모드(Transport Mode)]
IP Header와 Payload 사이에 IPSec Header를 추가하여 상위 계층의 Protocol을 보호하지만, Original IP Header는 보호하지 못한다.
1) AH Header (Authentication Header)
Original IP Header (보호 X) | IPSec Header (AH Header) | Original IP Payload (보호) |
2) ESP Header (Encapsulation Security Payload Header)
- 전송 자료를 암호화하여 전송하고, 수신자가 받은 자료를 복호화하여 수신한다.
- AH와 달리 암호화를 제공한다. (대칭키, DES, 3-DES 등)
Original IP Header (보호 X) | IPSec Header (ESP Header) | Original IP Payload (보호) | ESP Trailer | ESP Auth |
[터널 모드(Tunnel Mode)]
Original Packet 전체를 보호한다. Original Packet 전체를 IPSec으로 캡슐화하기때문에 Original IP Header를 식별할 수 없어 새로운 IP Header를 추가한다.
1) AH Header (Authentication Header)
New IP Header | IPSec Header (AH Header) | Original IP Header (보호) | Original IP Payload (보호) |
2) ESP Header (Encapsulation Security Payload Header)
New IP Header | IPSec Header (ESP Header) | Original IP Header (보호) | Original IP Payload (보호) | ESP Trailer |
ESP Auth |
IPSec Header 구조
종류 | 설명 |
AH | - 데이터 무결성과 IP 패킷의 인증을 제공 (MAC 기반) - Replay Attack으로부터 보호 - 인증 시 MD5, SHA-1 인증 알고리즘 사용 - 수신자는 같은 키를 이용하여 인증 값 검증 |
ESP | - 전송 자료를 암호화하여 전송하고, 수신자가 받은 자료를 복호화하여 수신 - AH와 달리 암호화를 제공(대칭키, DES, 3DES 알고리즘) - TCP/UDP 등의 Transport Layer까지 암호화할 경우, Transport Mode - 전체 IP 패킷에 대해 암호화할 경우, Tunnel Mode |
SSL(Secure Socket Layer), TLS
- 보안 소켓 계층을 이르는 말로, 인터넷에서 데이터를 안전하게 전송하기 위한 인터넷 통신 규약 프로토콜이다.
- SSL V3.0을 공식적으로 표준화하여 이름을 붙인 것이 TLS 이다.
- 기존 통신이 TCP/IP Protocol을 이용하는 것이라면, SSL 통신은 SSL/TLS Protocol을 사용하여 실제 데이터를 암호화 하여 통신하는 것을 말한다.
- 대표적으로 HTTPS는 SSL 통신중 일부이며, 그 외 SSH, SFTP등 여러 종류의 SSL 통신이 존재한다.
SSL Handshaking
TCP 연결 후 웹 브라우저는 443 포트를 호출하여 3-way handshaking을 수행하며, 그 과정은 아래와 같다.
1) Client -> Server
- 'Client Hello' 메시지를 전송하는데, 웹 브라우저에서 지원하는 SSL 버전, 암호화 알고리즘 등의 정보가 포함됨
- 'Random'을 전송하는데, 이는 Replay Attack을 방지하기 위한 임의적인 숫자임
2) Server -> Client
- 서버가 지원할 수 있는 알고리즘과 함께 'Server Hello' 메시지를 전송
- 웹 서버도 'Random'을 전송
3) Client -> 공인 또는 사설 CA
- 전달받은 서버 인증서를 CA를 통해 신뢰할 수 있는 서버인지 확인
* 공인 CA 인증서: 인증서의 공개키로 복호화
* 사설 CA 인증서: 브라우저에 저장된 CA 리스트에 없기 때문에 https 경고 표시
4) Client -> Server
- 암호 통신에 사용할 Session Key 생성 후 서버의 공개키로 암호화해 Pre-master Key를 만들어 서버에 전송 (Change Cipher Spec)
- 서버에게 협의 종료를 전달 (Finished)
5) Server -> Client
- Client의 응답에 동의하고 협의된 알고리즘의 적용을 알림 (Change Cipher Spec)
- 클라이언트에게 협의 종료를 전달 (Finished)
SSL Offloading, ADC(Application Delivery Controller)
- 웹 사이트에 사용자가 몰리는 경우, 서버가 SSL 암/복호화까지 진행하면 과부하로 인해 마비될 수 있다.
- 이러한 SSL 처리 부하를 처리해주는 장비를 ADC라고 하며, Load Balancing 장치라고도 한다.
[웹방화벽과의 관계]
- 실무 시 웹 방화벽에서 탐지 기능이 제대로 동작하지 않는 경우를 종종 볼 수 있는데, 원인은 여러가지 이유가 있을 수 있지만 ADC에서의 설정값도 확인을 해야한다.
Cipher Suite
- TLS Handshake를 통해 클라이언트 <> 서버간 어떤 Protocol을 사용할지, 어떻게 암호화할지 등을 협의한다.
- 위의 협의된 알고리즘의 집합을 Cipher Suite라고 부르며, 보안 취약점 공개 등에 따라 권고사항을 확인 후 Customizing 하게 암호화 통신을 진행하도록 설정한다.
# 참고
위키백과, ko.wikipedia.org/wiki/IPsec
네이버 지식백과, terms.naver.com/entry.nhn?docId=1180906&cid=40942&categoryId=32851
개인 블로그(IPSec Mode), m.blog.naver.com/PostView.nhn?blogId=sdug12051205&logNo=221537706305&proxyReferer=https:%2F%2Fwww.google.com%2F
개인블로그(Cipher Suite), https://rsec.kr/?p=455
이기적 정보보안기사 필기 1권 이론서
'기초지식 > 네트워크(업무)' 카테고리의 다른 글
네트워크 - Load Balancer (0) | 2021.07.08 |
---|---|
네트워크 - LLCF, Failover (0) | 2020.10.01 |
네트워크 - VPN (0) | 2020.10.01 |
네트워크 - Tunneling (0) | 2020.09.27 |
네트워크 - NAT (0) | 2020.09.27 |