반응형
ி 개요
IP(Internet Protocol)
는 통신 데이터가 노출되는 단점이 있다.이를 보완하기 위해 안전한 통신을 보장하는
IPsec
이 개발되었다. IPsec
은 인터넷 프로토콜 스위트라고 불리우며 각 IP 패킷을 암호화하고 인증하는 기능을 제공한다. VPN
을 구현하는 데 사용되고, 통신 규약을 탑재한 단말은 서로 안전하게 데이터를 주고받을 수 있다.IPv6에선 IPsec을 기본 사용하지만, IPv4에선 선택적으로 사용할 수 있다.
ி 프로토콜 구조
IPsec
은 데이터 보호를 위한 보안 프로토콜을 제공하며이를 통해 제공되는
보안 서비스
는 다음과 같다. ①
통신 상대방 인증 ②
출발지 인증 ③
기밀성 ④
무결성 ⑤
접근제어 ⑥
재생 공격 방지보안 프로토콜에는 헤더 프로토콜이 있는데
두 가지 중 하나를 사용한다.
헤더 프로토콜
무결성 및 데이터 인증
을 제공하는 프로토콜로써IP 헤더에서 전송 헤더까지 패킷을 보호한다.
➽ ESP(Encapsulating Security Payload)
IP 페이로드를 암호화하여
데이터 기밀성
을 제공하는 프로토콜로써데이터그램에서 ESP 시작 이후의 패킷을 보호한다.
키 관리 프로토콜
사전에 사용할 암호화 방식을 공유
하고, 공유할 비밀키를 서로 분배
하는 과정을 거쳐야 한다.이 과정을
보안 협상(Security Association)
이라고 부른다. 보안 협상 설정 방법
은 수작업
으로 하는 방법도 있지만키 관리의 편의성을 위해서
자동화된 프로토콜
을 이용한다.➽ IKE (Internet Key Exchange)
자동화된 협상
및 키 생성/키 분배/키 갱신 등을 관리하는 프로토콜이다.➽ ISAKMP(Internet Security Association and Key Management Protocol)
ISAKMP는 IKE 키 교환을 위한 메시지 형식 및 전달 방법을 정하기 위해 설계된 프로토콜이다.
(SA를 설정하는 각 과정과 패킷 구조를 정의하는 프로토콜)
키 결정 방식
은 두 가지로 나뉜다. OAKLEY
- 일련의 키 교환 메커니즘들을 기술한다.(DaffieDiffie-Hellman의 약점을 보완한 프로토콜)
SKEME
- OAKLEY와는 또 다른 키 교환 프로토콜 IKE
는 위에 나온 ISAKMP/OAKLEY/SKEME 프로토콜을 참조하여 만들어진 복합 프로토콜
이다.IKE 동작 과정은 다음과 같다.
IKE 1단계(Phase1) - Main Mode
주로 사용되는
안전하게 메시지를 전달할
인증/검사 방식 : 사전 공유키, RSA 공개키 교환 방식
IKE 2단계(Phase2) - Quick Mode
통신 메시지를 암호화/인증방식 등 어떤 형식으로 보호할 것인지에 대해서 협상한다.
2단계가 끝나면 연결을 맺어서 통신을 진행한다.
원래의 IP 헤더는 그대로 이용하고 나머지 데이터 부분만 보호하는 방식이다.
↑ 보호 영역 ↑
주로
IP 패킷 전체를 보호하고 앞에 새로운 IP 헤더를 추가하는 방식이다.
↑ 보호 영역 ↑
AH/ESP 앞에 새로운 IP 헤더가 추가되는 이유는
원본 IP 헤더를 볼 수 없어서 라우팅이 안 되기 때문이다.
다음 사진은 터널을 통해 패킷이 전송되는 모습이다.
여러 호스트에서 생성된 IP 패킷을 한꺼번에 묶어서 처리하고
IPsec 응용 소프트웨어의 설치/변경이 필요 없기 때문에 기존
두 라우터 간, 호스트와 라우터 간, 두 게이트웨이 간에 주로 사용한다.
현재는 IKE 보안 채널을 설정할 때 Diffie-Hellman의 장점을 유지하며,
취약성을 개선한 오클리(OAKLEY) 프로토콜을 사용한다.
해당 프로토콜이 어떤 방식으로 취약한 부분을 방어하는지 알아보자.
➽ 방해 공격(Clogging Attack)
DH 기법으로 계산이 복잡한 많은 수의 비밀 세션 키를 만들도록 무한정 시도한다.
해당 공격은
여기서 쿠키는 CSMA/CD의 토큰과 비슷한 개념이고,
생성자의 랜덤 번호와 타임 스탬프를 해시함수로 해싱한 값으로 씌워진다.
대응 절차는 다음과 같다.
즉 쿠키를 수신한 사용자만 서로 세션 키를 생성할 수 있게 하는 방법으로 방어한다.
➽ 중간자 공격(Middle Attack)
공격자가 공개키인
제공하는 공격이다.
대응 방법은 다음과 같다.
메시지 송신자(자신하고 비밀키를 공유하는 상대)를 인증함으로써
무결성을 보장한다.
넌스 값을 복호화한 후, 넌스 값이 포함된
IKE 메시지의 해시 함수 결괏값을
IKE 메시지와 함께
수신된 IKE 메시지에 대한 해시함수 결괏값을 생성하여
수신된 해시 함수 결괏값과 비교한다.
➽ 재생 공격(Replay Attack)
키 정보를 가로챈 제 3자가
대응 방법은 반키(Half-Key) 교환 시 임의의 임시 번호인
➽ 보안 매개변수 색인 (SPI, Security Parameter Index)
동일한 출발지의 호스트가
동일한 프로토콜을 써서 여러 개의 SA를 만들 수 있기 때문에
보안 협상을 식별할 수 있는 ID인
SPI는 SA에 4byte로 할당된다.
➽ 보안 프로토콜 식별자 (SPI, Security Protocol Identifier)
AH 헤더 또는 ESP 헤더를 구분하기 위한 식별자다.
김대리는
전용선을 직접 만들면 비용이 많이 들기 때문에,
인터넷이라는 기존의 네트워크선을 이용해서 통신하려고 한다.
이때
먼저 시스코 라우터에 GRE 터널링을 통해
즉 GRE의 취약점인 보안 부분에
안전한
우선
A와 B에 설치해서 암호화 통신을 한다.
서울에서 부산이 연결될 때 서울 사람이 대전으로 출장을 가면
부산과 암호화 통신을 못 하므로 보통 SSL-VPN을 사용하곤 하는데,
여기서 SSL은 논외이므로 패킷 트레이서에서 IPsec VPN 구축 실습을 진행해본다.
Pahse1 설정 - 마스터 키 생성
➽ 해설
낮은 번호 우선 적용된다.
Pahse2 설정 - 세션 키 생성
➽ 해설
IKE - 키 관리 프로토콜 사용
➽ Seoul Router
➽ Busan Router
키 수동 등록
➽ Seoul Router
➽ Busan Router
IKE 1단계(Phase1) - Main Mode
모드
는 Main Mode
, Aggressive Mode
로 구성되며주로 사용되는
Main Mode
로 설명한다. ①
보안 협상 메시지는 중요한 내용을 담고 있어서, 협상하기 전에안전하게 메시지를 전달할
보안 채널(암호화 구간)
을 만든다. ②
상호 동작 가능한 장비/시스템
인지 검증
한다.인증/검사 방식 : 사전 공유키, RSA 공개키 교환 방식
IKE 2단계(Phase2) - Quick Mode
통신 메시지를 암호화/인증방식 등 어떤 형식으로 보호할 것인지에 대해서 협상한다.
2단계가 끝나면 연결을 맺어서 통신을 진행한다.
ி 운용 모드
Transport 모드
IP
- AH/ESP
- TCP/UDP - DATA
↑ 보호 영역 ↑
주로
호스트-호스트(종단대종간)
에, 상위 계층 프로토콜을 보호하기 위해 사용한다. Tunnel 모드
IP
- AH/ESP
- IP - TCP/UDP - DATA
↑ 보호 영역 ↑
AH/ESP 앞에 새로운 IP 헤더가 추가되는 이유는
원본 IP까지 암호화
되므로 ISP 업체 장비가 패킷 수신 시원본 IP 헤더를 볼 수 없어서 라우팅이 안 되기 때문이다.
다음 사진은 터널을 통해 패킷이 전송되는 모습이다.
IP 터널
의 패킷 처리 방식은 호스트 단위가 아닌여러 호스트에서 생성된 IP 패킷을 한꺼번에 묶어서 처리하고
터널의 시작점
에서 새 IP 헤더로 기존 IP 데이터 그램을 캡슐화
하여 전송한다. 터널 모드
운영 시 터널의 시작점
과 종점
에 IPsec Gateway
설치가 필요함에 따라서IPsec 응용 소프트웨어의 설치/변경이 필요 없기 때문에 기존
호스트
에게 투명한 보안 서비스
를 제공한다.두 라우터 간, 호스트와 라우터 간, 두 게이트웨이 간에 주로 사용한다.
ி 상세
오클리(OAKLEY) 프로토콜
취약성을 개선한 오클리(OAKLEY) 프로토콜을 사용한다.
해당 프로토콜이 어떤 방식으로 취약한 부분을 방어하는지 알아보자.
➽ 방해 공격(Clogging Attack)
공격자가 IP 주소를 위조
하여 특정 통신 장치에 대해DH 기법으로 계산이 복잡한 많은 수의 비밀 세션 키를 만들도록 무한정 시도한다.
대량의 키 생산 요청
때문에 어마무시한 지수 연산을 감행하게 하는 DOS
공격이다.해당 공격은
쿠키 기법
을 통해서 방어한다.여기서 쿠키는 CSMA/CD의 토큰과 비슷한 개념이고,
생성자의 랜덤 번호와 타임 스탬프를 해시함수로 해싱한 값으로 씌워진다.
대응 절차는 다음과 같다.
①
syn에 대한 쿠키를 받은 클라이언트만 ack를 보낼 수 있도록 정한다. ②
서버 측에서 쿠키를 보냈을 때 그 쿠키를 받지 못한 클라이언트는 통신이 안된다. ③
공격자는 DOS
를 위해 가공 IP 주소
를 사용했기 때문에 쿠키를 받지 못한다. ④
쿠키를 추론할 수 없어서 서버에 ack를 보내지 못한다. < 통신 불가 >
즉 쿠키를 수신한 사용자만 서로 세션 키를 생성할 수 있게 하는 방법으로 방어한다.
➽ 중간자 공격(Middle Attack)
공격자가 공개키인
반키(Half-key)
를 가로채고 자신의 반키(Half-key)를제공하는 공격이다.
대응 방법은 다음과 같다.
①
비밀키 사전 공유 기법메시지 송신자(자신하고 비밀키를 공유하는 상대)를 인증함으로써
무결성을 보장한다.
②
공개키 암호화 기법(주로 사용) ipsec 장치 A
가 먼저 임의의 넌스값을 ipsec 장치 B
의 공개키로 암호화하여 전송한다. ipsec 장치 B
는 자신의 개인 키로 A
로부터 수신한넌스 값을 복호화한 후, 넌스 값이 포함된
IKE 메시지의 해시 함수 결괏값을
IKE 메시지와 함께
IPsec 장치 A
에게 전송한다. ipsec 장치 A
는 자신이 전송한 원래 넌스 값을 포함해서수신된 IKE 메시지에 대한 해시함수 결괏값을 생성하여
수신된 해시 함수 결괏값과 비교한다.
➽ 재생 공격(Replay Attack)
키 정보를 가로챈 제 3자가
재사용
하여 합법적인 사용자인 것처럼 비밀키 생성 시도하는 것을 말한다.대응 방법은 반키(Half-Key) 교환 시 임의의 임시 번호인
넌스
를 포함하여 전달한다. SA 식별자
➽ 보안 매개변수 색인 (SPI, Security Parameter Index)
동일한 출발지의 호스트가
동일한 프로토콜을 써서 여러 개의 SA를 만들 수 있기 때문에
보안 협상을 식별할 수 있는 ID인
SPI(Security Parameter Index)
가 존재한다.SPI는 SA에 4byte로 할당된다.
➽ 보안 프로토콜 식별자 (SPI, Security Protocol Identifier)
AH 헤더 또는 ESP 헤더를 구분하기 위한 식별자다.
ி 실습
김대리는
부산에 위치한 지사
에서 서울에 있는 본사 PC
에 접속하여 중요한 업무를 보려고 한다. 전용선을 직접 만들면 비용이 많이 들기 때문에,
인터넷이라는 기존의 네트워크선을 이용해서 통신하려고 한다.
이때
터널링
을 사용한다.먼저 시스코 라우터에 GRE 터널링을 통해
통신할 터널
을 뚫자.GRE 터널링
은 암호화가 안돼서 데이터가 그대로 노출되므로IPsec
을 이용하여 안전하게 암호화시킨다.즉 GRE의 취약점인 보안 부분에
IPsec VPN
기술을 적용하여서안전한
Secure GRE VPN
을 설정하는 것이다.VPN
구축 방법은 두 가지가 있다. ①
Site-to-Site(공용 네트워크를 통해 내부 네트워크 간 연결) ②
Site-to-Client(VPN SW를 통해 접속)우선
IPsec
을 사용하려면 VPN 장비
가 2대 필요한데, A와 B에 설치해서 암호화 통신을 한다.
서울에서 부산이 연결될 때 서울 사람이 대전으로 출장을 가면
부산과 암호화 통신을 못 하므로 보통 SSL-VPN을 사용하곤 하는데,
여기서 SSL은 논외이므로 패킷 트레이서에서 IPsec VPN 구축 실습을 진행해본다.
ISAKMP 등록 명령어
Pahse1 설정 - 마스터 키 생성
①
(config)# crypto isakmp policy [정책 식별 번호] ②
(config-isakmp)# authentication [인증 방식] ③
(config-isakmp)# encryption [대칭키 알고리즘] [키 사이즈] ④
(config-isakmp)# hash [hash 알고리즘] ⑤
(config-isakmp)# group [DH그룹 번호] ⑥
(config-isakmp)# lifetime [VPN 지속시간] ⑦
(config)# crypto isakmp key [비밀번호] address [상대 장비 IP] [서브넷 마스크]➽ 해설
①
ISAKMP 보안 정책을 만든다. 정책 번호는 1~10000까지 사용가능하며, 낮은 번호 우선 적용된다.
③
데이터 무결성을 체크한다. ⑤
번호가 높을 수록 강력한 암호화를 제공한다. ⑥
시간 범위는 60~86400초이며, 양측 수명이 다르면 짧은 것을 적용한다.Pahse2 설정 - 세션 키 생성
①
(config)# crypto ipsec transform-set [정책 식별 이름] [IPsec 암호화 알고리즘] [인증 알고리즘] ②
(config-crypto-trans)# mode [IPsec 연결 모드] ③
(config)# crypto map [정책 식별 이름] [정책 식별 번호] ipsec-isakmp ④
(config-crypto-map)# match address [IPsec 통신데이터 - ACL] ⑤
(config-crypto-map)# set peer [상대 장비 주소] ⑥
(config-crypto-map)# set transform-set [암호화 적용할 IPsec 정책 이름] ⑦
(config-if)# crypto map [정책 식별 이름] ➽ 해설
①
암호화 방법 및 Hash를 정의한다. ②
mode의 기본 설정 값은 tunnle이다. ③-⑥
적용할 정책을 구성한다. ⑦
crypto map을 인터페이스에 적용한다. 장비 설정
IKE - 키 관리 프로토콜 사용
➽ Seoul Router
Seoul(Config)#
crypto isakmp policy 1 Seoul(Config-isakmp)#
authentication pre-share Seoul(Config-isakmp)#
hash sha Seoul(Config-isakmp)#
encryption aes 128 Seoul(Config-isakmp)#
group 2 Seoul(Config-isakmp)#
lifetime 43000 Seoul(Config-isakmp)#
exit Seoul(Config)#
crypto isakmp key 5 address 10.10.20.10 Seoul(Config)#
access-list 110 permit ip 172.168.10.0 0.0.0.255 192.168.0.0 0.0.0.255 Seoul(Config)#
crypto ipsec transform-set IPSEC-VPN esp-aes 128 esp-md5-hmac Seoul(Config)#
crypto map ToBranch 10 ipsec-isakmp Seoul(Config-crypto-map)#
match address 110 Seoul(Config-crypto-map)#
set peer 10.10.20.10 Seoul(Config-crypto-map)#
set transform-set IPSEC-VPN Seoul(Config)#
interface fastethernet 0/0 Seoul(Config-if)#
crypto map ToBranch➽ Busan Router
Seoul(Config)#
crypto isakmp policy 1 Seoul(Config-isakmp)#
authentication pre-share Seoul(Config-isakmp)#
hash sha Seoul(Config-isakmp)#
encryption aes 128 Seoul(Config-isakmp)#
group 2 Seoul(Config-isakmp)#
lifetime 43000 Seoul(Config-isakmp)#
exit Seoul(Config)#
crypto isakmp key 5 address 10.10.10.10 Seoul(Config)#
access-list 120 permit ip 192.168.0.0 0.0.0.255 172.168.10.0 0.0.0.255 Seoul(Config)#
crypto ipsec transform-set IPSEC-VPN esp-aes 128 esp-md5-hmac Seoul(Config)#
crypto map ToHead 10 ipsec-isakmp Seoul(Config-crypto-map)#
match address 120 Seoul(Config-crypto-map)#
set peer 10.10.10.10 Seoul(Config-crypto-map)#
set transform-set IPSEC-VPN Seoul(Config)#
interface fastethernet 0/0 Seoul(Config-if)#
crypto map ToHead키 수동 등록
➽ Seoul Router
Seoul(config)#
access-list 110 permit ip 172.168.10.0 0.0.0.255 192.168.0.0 0.0.0.255 Seoul(config)#
crypto ipsec transform-set CISCO esp-des esp-md5-hmac Seoul(Config)#
crypto map IPSEC 10 ipsec-manual Seoul(Config-crypto-..)#
set peer 10.10.20.10 Seoul(Config-crypto-..)#
set transform-set CISCO Seoul(Config-crypto-..)#
set session-key outbound esp 1000 cipher abcd1234 authenticator 1234 Seoul(Config-crypto-..)#
set session-key inbound esp 2000 cipher qwer1234 authenticator 1234 Seoul(Config-crypto-..)#
match address 110 Seoul(Config)#
interface serial0/0 Seoul(Config-if)#
crypto map IPSEC➽ Busan Router
Busan(config)#
access-list 120 permit ip 192.168.0.0 0.0.0.255 172.168.10.0 0.0.0.255 Busan(config)#
crypto ipsec transform-set CISCO esp-des esp-md5-hmac Busan(config)#
crypto map IPSEC 10 ipsec-manual Seoul(Config-crypto-..)#
set peer 10.10.10.10 Seoul(Config-crypto-..)#
set transform-set CISCO Seoul(Config-crypto-..)#
set session-key outbound esp 2000 cipher qwer1234 authenticator 1234 Seoul(Config-crypto-..)#
set session-key inbound esp 1000 cipher abcd1234 authenticator 1234 Seoul(Config-crypto-..)#
match address 120 Seoul(Config)#
interface serial0/1 Seoul(Config-if)#
crypto map IPSEC※ 키를 수동으로 등록할 때는 다음 사항을 고려한다.
--------------------------------------------------------------------------------------
session-key
명령에서 cipher 값은 16진수이며 짝수
가 되어야 한다.또한 외부로 데이터를 보낼 때
암호화 및 인증
, 수신 시 복호화 및 검증
등의 과정이 있기 때문에,두 라우터 간의
session-key inbound,outbound 규칙
을 거꾸로 설정해야한다.
즉
그러면 정상적으로 암복호화 과정이 이루어 질 것이다.
--------------------------------------------------------------------------------------
본사의 IP(10.10.10.10)를
목적지를
ESP 헤더 뒤는 모두 암호화되서 내부 IP 및 데이터는 볼 수 없기 때문에 안전한 통신이 이루어진다.
설정한 정보들을 조회하고 암호화 통신이 원활한지 확인하는 명령은 다음과 같다.
➽ 정책 확인
show crypto isakmp policy
➽ sa 상태 확인
show crypto sa
➽ 세션 출력
show crypto session
➽ 암복호화 상태 출력
show crypto engine connections active
즉
Seoul 라우터
의 session-key outbound
규칙을 Busan 라우터
에 inbound
로, Seoul
에 inbound
를 outbound
로 한다.그러면 정상적으로 암복호화 과정이 이루어 질 것이다.
--------------------------------------------------------------------------------------
Crypto map
이 적용된 인터페이스는본사의 IP(10.10.10.10)를
터널 출발지의 IP 헤더
로 사용하고목적지를
set peer
에 입력된 지사쪽 IP(10.10.20.10)로 사용한다.ESP 헤더 뒤는 모두 암호화되서 내부 IP 및 데이터는 볼 수 없기 때문에 안전한 통신이 이루어진다.
조회 명령어
➽ 정책 확인
show crypto isakmp policy
➽ sa 상태 확인
show crypto
➽ 세션 출력
show crypto session
➽ 암복호화 상태 출력
show crypto engine connections active
자료 참고
https://m.blog.naver.com/PostView.nhn?blogId=jogilsang&logNo=220903760933&proxyReferer=https%3A%2F%2Fwww.google.com%2F
https://run-it.tistory.com/37
http://www.ktword.co.kr/word/abbr_view.php?m_temp1=2029
https://run-it.tistory.com/37
http://www.ktword.co.kr/word/abbr_view.php?m_temp1=2029
반응형
'네트워크' 카테고리의 다른 글
네트워크 접근 제어 NAC(Network Access Control) (2) | 2019.10.10 |
---|---|
침입 탐지/차단 시스템(IDS/IPS) (0) | 2019.10.09 |
네트워크 방화벽(Firewall) (0) | 2019.09.25 |
패킷 트레이서 ACL(Access Control List) (0) | 2019.09.21 |
윈도우에 snort 설치 및 룰 추가 (3) | 2019.09.19 |