[네트워크] 8-6. IPsec

kkado·2023년 6월 13일
0

네트워크

목록 보기
48/49

⚠️ 들어가기 앞서
경북대학교 컴퓨터학부 COMP0414-001 컴퓨터망 과목을 공부하며 정리한 글입니다.


IPsec ?

IPsec은 통신 세션의 각 IP패킷을 암호화하고 인증하는 안전한 인터넷 프로토콜 통신을 위한 인터넷 프로토콜 스위트이다. 이 보안은 통신 세션의 개별 IP 패킷을 인증하고 암호화함으로써 처리된다. (위키백과)

IPsec은 IP security의 약자이다.

IPsec에는 두 가지 모드가 있다.

  • transport mode : datagram의 payload 부분만을 암호화 및 인증한다.
  • tunnel mode : 전체 datagram을 암호화 및 인증한다. 암호화된 datagram은 다른 새로운 IP datagram으로 캡슐화되어 목적지로 tunneling 된다.

⬆️ transport mode
⬇️ tunnel mode


IPsec protocol에는 두 가지 종류가 있다.

  • Authentication Header (AH) : 인증과 무결성을 제공하지만 기밀성은 제공하지 않음
  • Encapsulation Security Protocol (ESP) : 인증, 무결성, 기밀성을 모두 제공. AH보다 널리 사용된다.

Security association (SA)

데이터를 보내기 전에, 송신자에서 수신자로 보안 연결이 수립된다.
IP는 connectionless 이지만 IPsec은 connection-oriented 이다.

라우터 R1은 SA를 위해 다음과 같은 정보를 저장한다.

  • 32비트의 식별자 (SPI, Security Parameter Index)
  • SA 인터페이스의 origin (200.168.1.100)
  • SA 인터페이스의 목적지 (193.68.2.23)
  • 암호화 키
  • 인증 키
  • 무결성 체크가 사용되는지 여부
  • 암호화가 사용되는지 여부

IPsec datagram

  • ESP trailer에는 block cipher를 위한 padding이 들어 있음
  • ESP header에는 replay attack을 막기 위한 seq #가 들어 있고 SPI가 들어 있음

ESP tunnel mode

  • original datagram에 ESP trailer를 붙인다.
  • SA에 의해 정의된 알고리즘과 키를 이용해 암호화한다.
  • 암호화된 quantity 앞에 ESP header를 붙인다.
  • SA에 의해 정의된 알고리즘과 키를 이용해 authentication MAC을 만든다.
  • MAC을 붙여 payload를 만든다.
  • 새로운 IP header를 만들고 tunnel endpoint로 주소를 지정한다.

IPsec Security Database

Security Policy Database (SPD)

  • 주어진 datagram에 대해, 송신자는 이 datagram이 IPsec을 사용해야 하는지를 알아야 한다.
  • 또한 어떤 SA를 사용할 것인지 알아야 한다.
  • 이러한 정책들은 security policy database에 저장된다.

SPD : "what" to do

Security Association Database (SAD)

  • endpoint는 Security association database 안에 SA state를 저장한다.
  • IPsec datagram을 보낼 때, R1은 SAD에 접속하여 어떻게 datagram을 처리할지 결정한다.
  • IPsec datagram이 R2에 도착했을 때, R2는 IPsec datagram 내의 SPI를 살펴 SAD와 인덱싱하여 찾는다.

SAD : "how" to do


IKE

인터넷 키 교환(Internet Key Exchange)은 IPsec 프로토콜 제품군에서 보안 연결을 설정하는 데 사용되는 프로토콜입니다. (위키백과)

PSK

pre-shared key

PKI

public/private key

TLS handshaking과 유사한 과정을 거친다.
certificate를 주고 받는...

profile
베이비 게임 개발자

0개의 댓글