본문 바로가기
정보보안 지망이!/Windows 심화

Windows2_ IPSec와 SSL (협상과정 공부하기)

by Edes Kim 2020. 7. 6.

https://jw3461.tistory.com/7

 

VPN 이란 - 개념과 종류

vpn이란? 분산된 사설망들을 공중망을 이용하여 사설망처럼 사용하는 것이다. 사설망은 보안성이 높지만 거리에 따른 설치와 관리 비용이 크기때문에 해결책으로 vpn이 등장하였다. 공중망을 이

jw3461.tistory.com


# SSL

(Secure Socket Layer)

: SSL 은 Netscape사에서 웹 서버 - 웹 브라우저간의 보안을 위해 만들어진 보안 프로토콜이다.

4~7계층, 443 포트 사용 https://

공개키 / 개인키 대칭키 기반으로 사용한다.

 

  1. [웹브라우저] SSL로 암호화된 페이지를 요청하게 된다. (일반적으로 https://가 사용된다)

  2. [웹서버] Public Key를 인증서와 함께 전송한다.

  3. [웹브라우저] 인증서가 자신이 신용있다고 판단한 CA(일반적으로 trusted root CA라고 불림)로부터 서명된 것인지 확인한다. (역주:Internet Explorer나 Netscape와 같은 웹브라우저에는 이미 Verisign, Thawte와 같은 널리 알려진 root CA의 인증서가 설치되어 있다) 또한 날짜가 유효한지, 그리고 인증서가 접속하려는 사이트와 관련되어 있는지 확인한다.

  4. [웹브라우저] Public Key를 사용해서 랜덤 대칭 암호화키(Random symmetric encryption key)를 비릇한 URL, http 데이터들을 암호화해서 전송한다.

  5. [웹서버] Private Key를 이용해서 랜덤 대칭 암호화키와 URL, http 데이터를 복호화한다.

  6. [웹서버] 요청받은 URL에 대한 응답을 웹브라우저로부터 받은 랜덤 대칭 암호화키를 이용하여 암호화해서 브라우저로 전송한다.

  7. [웹브라우저] 대칭 키를 이용해서 http 데이터와 html문서를 복호화하고, 화면에 정보를 뿌려준다.


# IPsec 

(IP Security)

: 3 계층

IP 약점

: 전송되는 데이터가 암호화되지 않아 보호되지 않는다는 점

 

- 원래 IPv4의 주소 고갈 문제를 해결하기 위해 계발된 IPv6에 + IPv4의 단점인 보안문제를 추가하여 개발 ->현재의 IPv4에도 적용됨

( 하나의 프로토콜 (x) , IP네트워크를 위한 보안 솔루션 서비스 + 프로토콜의 모음 )

- IPSec은 IP 계층에서 동작 => 자체 보안기능이 없는 상위 계층 (TCP/IP Application 이나 Protocol )도 보호할 수 있다. 

주로 VPN을 구현하는데 사용된다.

 

IPSec 서비스의 종류

- 사용자 데이터 암호화

- 메시지 무결성을 인증/보장

특정 종류의 공격 (ex. Replay(재생) 공격)으로부터 보호

- 장비가 자신의 보안요구에 맞는 보안 알고리즘과 Key를 협상할 수 있도록 함

- 서로 다른 네트워크 요구를 만족시키기 위한 두 보안 모드

 

IPSec에서 사용하는 알고리즘

1. 암호화 알고리즘 : 56bit DES, 168bit 3DES ( AEC가 나오면서 이것도 사용 안하게됨)

2. 무결성 알고리즘 : HMAC-SHA1, HMAC-MD5(이건 뚫렸다)

3. 보안 파라미터 협상 프로토콜 : IKE (Internet Key Exchange)

4. 공유 비밀 키 분배 프로토콜 : Diffie-Helman

 


 IPSec의 데이터 전달 방식

: AH / ESP 프로토콜

Ethernet헤더 + IP헤더 + (여기에 AH/ESP)+ TCP/UDP + Data

* [TCP/UDP + Data] 이 부분 까지가 '세그먼트'

* Ethernet HDR에 = Mac Address

* IP HDR = 출발지 / 목적지 IP주소

* TCP/UDP HDR =  렌덤한(?) Source Port와 TCP/UDP 번호(80번)

* IP 6번 = TCP

 

- AH ( Authentication Header ) : IP 50 번

인증, 무결성은 보장 되지만 암호화가 불가능하여 단독으로 사용되는 경우는 거의 없다.

데이터와 순서번호를 보유. 송신자 확인(추적)하고 송신

기밀성 제공

암호화는 가능x

 

전송모드 : IP 패킷 전체에 인증

터널 모드 : 새로운 IP헤더 + IP원본 패킷 전체 인증

 

- ESP ( Encapsulation Security Payload ) : IP 51번

IP 패이로드를 대칭 암호화하여 기밀성을 제공

 인증, 무결성, 암호화 지원 

재전송 공격 방지

 

전송모드 : 전송 계층 세그먼트와 ESP트레일러를 암호화하고 ESP헤더 + 암호문 전체 인증

터널모드 : IP원본 패킷 전체와 ESP트레일러를 암호화하고 ESP헤더 + 암호문 전체 인증

 

- AH + ESP

: ESP 패킷에 대해 ( IP 헤더 부분을 포함한 영역에 대한 해쉬 값이 포함된 ) AH 헤더를 추가함으로서 IP 헤더에 대한 무결성 보장


IPSec 모드

- 전송 모드 (Transport Mode) 

: Endhost 간

 IPSec 기능을 가진 종단 단말들 간에 IP 패킷을 전송할 때 사용

정보의 원래 [IP Header] 와 [TCP/UDP + Data] 영역 사이에! AH 또는 ESP 영역을 추가

 

AH : IP 패킷 전체에 인증

ESP : 전송 계층 세그먼트와 ESP트레일러를 암호화하고 ESP헤더 + 암호문 전체 인증

 

- 터널 모드 (Tunnel Mode)

: Gateway 간

IP 패킷을 모두 암호화하여 전송. 터널의 종단점과 1번째 라우터 사이는 평문으로 전송하고 라우터 - 라우터 사이만 암호화 되기에 주로 망간의 연결에 사용

 

IPSec 전용 router 간에 생성된 IP 터널을 이용

IPSec router 는 단말로부터 전달된 일반 IP패킷에 AH나 ESP헤더를 추가한 IPSec 패킷으로 변환 후,

IP망으로 전송을 위해 터널용 IP Header를 추가

Tunnel Mode일때는 앞에 새로운 헤더가 하나 더 붙는다.

AH : 새로운 IP헤더 + IP원본 패킷 전체 인증

ESP : IP원본 패킷 전체와 ESP트레일러를 암호화하고 ESP헤더 + 암호문 전체 인증.


IPSec Protocol - 7 Layer

 


IPSec 협상과정

IPSec Protocol - 협상 과정

1단계 ( Main mode )

: IPSec 관련 값을 안전하게 전달하기 위한 과정

Main mode / Aggressive mode 2가지 모드가 있다.

 

1. Main mode는 6번의 양방향 메시지로...

vpn 서버 사이에서 최초로 주고받는 6번의 양방향 메시지(Main mode)를 통해서 상호간에 합의,협상 하는 과정 이다.

즉, 보안키로서 IKE lsakmp sa 성하여 상호간의 보안 키 교환이 일어나고 협상을 통해 인증, 무결성, 암호화의 방식을 정한다.

* 실제 데이터를 암호화하는 것은 아니다. 암호화는 과정에서 만들어진 보안키 값을 가지고 IPSec Sa를 만들때 일어난다. 

 

[협상] : 상호간의 인증으로 어떤걸 할건지 (preshared, 인증서 등등), 해시 알고리즘은 어떤걸 쓸건지, 암호화는 어떤 방식을 쓸건지(DES, AES 등등), 디피헬만은 몇 버전으로 할지... UDP 500번을 이용.

 

2. Agrresive mode는 3번의 양방향 메시지로...

Ephemeral Diffie-Hellman 키 분배 방식에서 사용될 마스터 키를 설정

상호인증 수행 (상호인증을 위해 PSK,RSA, kerberos, 디지털 서명이 사용된다.)

https://www.youtube.com/watch?v=AehIhudU7yk

3. Interest Traffic 

각각이 만든 교환된 키로 쉐어드 키가 만들어지고 그 다음 메시지가 오갈때 지금까지 정한 방식으로 암호화를 처리한다.

상호간의 인증 데이터를 보내면서 실제 그 만든 키를 사용한다.

2단계 ( Quick mode )

: 두 시스템 간에 공유하는 세션키 설정

IKE SA용 마스터 키보다 짧은 시간마다 변경

이때 협상된 세션키와 동작모드에 따라 IPSec 동작


* Windows Server 에서의 인증방식

- Kerberos [AD환경에서 제공하는 인증 서비스 시스템]

- CA  [서버의 인증기관]

- PSK [공유키]


[실습1] : IPSec 통신 설정하기

인증방식 = Kerberos

mem92에서 작업할때도 이 끝점의 순서가 110,130로 같아도 된다. 작업은 똑같기 때문.

*** 단. Ternal로 할때는 순서같으면 안된다. 각측에서 설정할때, 자신을 기준으로 '끝점1'은 자신, '끝점2'는 상대를 지칭하게 한다.

만약 여기서 '인바운드 및 아웃바운드 연결에 대한 인증 필요'를 선택할시 IPSec이 설정되어있지 않은 Client와는 통신을 하지 못하게 막는다.
Kerberos는 도메인 내에서만 사용할수 있는 인증 방법으로서 인증키 없이 사용할 수 있는 방법중 하나이다.

즉, 이 인증 방식을 사용하려면 SRV92와 MEM92가 도메인으로 Trust관계여야 한다. 그리고 이 설정들은 각 서버의 amdministrator 사용자에서 진행.

***중요!

설정 후, 재부팅해야 설정이 적용이된다

mem에도 동일한 작업 진행.

확인
SRV92 와 MEM92가 서로 통신할때 ping 이 왔다갔다 하지 않는다. (ICMP 가 없고 ESP만이 통신할때 사용된다)

ISAKMP : Internet Key Exchange 키교환하는 애


[실습2] : '인바운드 및 아웃바운드 연결에 대한 인증 필요'

 

끝점1 : 자신의 IP

끝점2 : 10.0.0.0/16

모두 암호화된 통신이 가능하도록 설정

인증 방식 : 미리 공유된 키(dd)

 

인증 방식 암호화 확인, 통신확인

 


[실습3] : 터널 IPSec 설정

* PSK 인증방식 사용 (양쪽의 인증키가 동일하기만 하면 통신 가능 (?) 맞는지 확인)

 

Client 네트워크를 NAT로 설정

SRV92 : 172.16.0.91 - MEM91                     > Host-only로 연결 (10.0.91.110)

SRV92(London) : 172.16.0.92 - Clil91            > NAT로 연결        (10.0.92.110)