2014년 1월 15일 수요일

IP Security(IPsec) 프로토콜

개요
원본 인터넷 프로토콜(IP)의 약점 중 하나는 데이터그램의 인증과 프라이버시 보호 기능을 제공하는 범용 방법이 없다는 것이다.
IP 데이터그램은 알려지지 않은 네트워크 사이에서 두 장비 간에 라우팅이 되어야 하기 때문에, 그 안에 있는 정보를 가로채고 수정하는 공격에 취약하다.
중요 애플리케이션이 인터넷을 점점 많이 사용하게 되면서, IP 보안의 개선을 위한 방법이 필요했다.
이를 위해 개발된 것이 IP Security 또는 IPsec라고 불리는 프로토콜 모음이다.
  • IPsec 서비스와 기능 개요
      • IPsec는 하나의 프로토콜이 아니라 IP 네트워크를 위한 완전한 보안 솔루션을 제공하는 서비스와 프로토콜 모음
    • 프라이버시 보호를 위한 사용자 데이터 암호화
    • 메시지의 무결성을 인증하여 중간에서 변조되지 않았음을 보장
    • 재생(replay) 공격과 같은 특정 종류의 보안 공격으로부터 보호
    • 장비가 자신의 보안 요구에 맞는 보안 알고리즘과 키를 협상할 수 있도록 함
    • 서로 다른 네트워크 요구를 만족시키기 위한 두 보안 모드
      • 터널(tunnel)과 전송(transport)
  • IPsec 표준
RFC번호 이름 설명
2401 Security Architecture for the Internet Protocol 주 IPsec 문서로 IPsec 기술의 구조와 일반 동작, 여러 구성 요소가 어떻게 쓰이는지를 보여준다.
2402 IP Suthentication Header 데이터 무결성과 원본 검증을 보장하는 데 쓰이는 IPsec 인증 세더(AH) 프로토콜을 정의한다.
2403 The Use of HMAC-MD5-96 within ESP and AH AH와 보안 페이로드 캡슐화(ESP) 프로토콜에서 사용하는 암호화 알고리즘인 Message Digest 5(MD5), HMAC 변종을 설명한다.
2404 The Use of HMAC-SHA-1-96 within ESP and AH AH와 ESP에서 사용하는 암호화 알고리즘인 Secure Hash Algorithm 1(SHA-1), HMAC 변종을 설명한다.
2406 IP Encapsulating Security Payload(ESP) 기밀성을 위해 데이터를 암호화하는 IPsec ESP 프로토콜을 설명한다.
2408 Internet Security Association and Key Management Protocol(ISAKMP) 키를 교환하고 보안 연관을 협상하는 방법을 정의한다.
2409 The Internet Key Exchange(IKE) 두 장비간 안전한 통신을 위해 보안 연관을 협상하고 키를 교환하는 데 쓰이는 IKE 프로토콜을 설명한다. IKE는 ISAKMP와 OAKLEY에 기반을 두고 있다.
2412 The OAKLEY Key Determination Protocol 키 교환을 위한 범용 프로토콜을 설명한다.


IPsec 일반 동작, 구성 요소, 프로토콜
  • IPsec는 TCP/IP 프로토콜과 애플리케이션이 사용할 수 있도록 IP 계층에서 보안 서비스를 제공한다.
    • 상대방이 이해할 수 있는 형태로 데이터를 보내는데 사용할 보안 프로토콜에 동의해야 한다.
    • 데이터를 인코딩할 때 사용할 구체적인 암호화 알고리즘을 결정해야 한다.
    • 암호로 인코딩된 데이터를 푸는 데 쓰이는 키를 교환해야 한다.
    • 이러한 배경 작업을 완료하면, 각 장비는 협상한 프로토콜, 방법, 키를 이용하여 데이터를 인코딩하고 네트워크로 송신할 수 있다.
  • IPsec 핵심 프로토콜
    • IPsec 인증 헤어(AH)
      • IPsec를 위한 인증 서비스를 제공한다.
      • 메시지의 송신자로 표현된 장비가 실제로 그 메시지를 송신했다는 것을 수신자가 검증할 수 있도록 한다.
      • 중간 경로에 있는 장비들이 데이터그램의 어떤 데이터도 변경하지 않았다는 것을 수신자가 검증할 수 있도록 한다.
      • 허가받지 않는 사용자가 메시지를 캡쳐한 뒤 나중에 재송신하는 재생 공격(replay attack)에 대한 보호 기능도 제공한다.
    • 보안 페이로드 캡슐화(ESP)
      • AH는 데이터그램 데이터의 무결성은 보장하지만 프라이버시는 보장하지 않음
      • 데이터그램의 정보를 "아는 사람만 볼 수 있도록" 하려면 ESP를 이용하여 암호화 해야 함
IPsec 프로토콜과 구성 요소 개요


  • IPsec 보조 구성 요소
    • 암호화/해싱 알고리즘
      • IPsec에서 널리 쓰이는 알고리즘이 Message Digest 5(MD5)와 Secure Hash Algorithm 1(SHA-1)이다.
    • 보안 정책, 보안 연과, 관리 방법
    • 키 교환 프레임워크와 방법
      • 두 장비가 암호화된 정보를 교환하기 위한 방법으로 인터넷 키 교환(IKE, Internet Key Exchange)을 제공

IPsec 구조와 구현 방법
    • 설계상 고려 사항
      • 종단 호스트 구현
      • 라우터 구현
  • 통합 구조
    • IPsec의 프로토콜과 기능을 IP 자체에 직접 통합하고 싶을 것
    • IPv6는 IPsec를 지원하도록 설계됨
    • IPv4는 현실적으로 실용적이지 않음
  • 스택 삽입(BITS, bump in the stack) 구조
    • IPsec는 IP와 데이터 링크 계층 사이에서의 별도 구조 계층으로 존재
    • 장점 : 어떤 IP 장비에서도 IPsec를 적용할 수 있다.
    • 단점 : 통합구조에 비해 TCP/IP 스택에서 해야 할 일이 늘어남
    • 일반적으로 IPv4 호스트에서 쓰임
  • 라인 삽입(BITW, bump in the wire) 구조
    • 기존의 라우터와 라우터 사이에 IPsec 장비를 끼워 넣어 구성

IPsec 모드: 전송과 터널
  • 전송 모드
    • 전송 계층에서 IP로 내려온 메시지를 보호함
    • AH, 혹은 AH와 ESP의 조합에 의해 처리되며 적절한 헤더가 전송(UDP 또는 TCP)헤더 앞에 붙는다. 그리고 그 앞에 IP 헤더가 붙는다.
  • 터널 모드
    • IP 헤더가 이미 추가된 완전히 캡슐화된 IP 데이터그램을 보호하는 데 쓰임
    • IPsec 헤더는 원본 IP 헤더의 앞에 붙으며 새로운 IP 헤더가 다시 이 IPsec 헤더 앞에 붙음
  • 전송 모드와 터널 모드 비교
    • 전송 모드
      • IP 헤더, IPsec 헤더(AH, 혹은 AH와 ESP의 조합), IP 페이로드(전송계층 헤더 포함)
    • 터널 모드
      • 새 IP 헤더, IPsec 헤더(AH, 혹은 AH와 ESP 조합), 기존 IP 헤더, IP 페이로드
IPsec 전송모드와 터널모드 비교

IPsec 보안 구성 요소

  • 보안 정책, 보안 연관, 관련 데이터베이스
    • 보안 정책, 보안 정책 데이터베이스
      • 보안 정책은 IPsec 구현에 내장된 규칙이다.
      • 보안 정책은 장비가 수신하는 서로 다른 데이터그램을 어떻게 처리할 지 지시한다.
      • 보안 정책은 보안을 어떻게 제공할지에 대한 전반적인 지침을 기술하며 필요할 경우 구체적인 지침까지도 제시한다.
      • 장비의 보안 정책은 장비의 보안 정책 데이터베이스(SPD, security policy database)에 저장되어 있다.
    • 보안 연관과 보안 연관 데이터베이스
      • 보안 연관(SA, security association)은 한 장비와 다른 장비 사이에 맺은 특정한 종류의 보안 연결을 설명하는 보안 정보다.
      • 장비의 보안 연관은 보안 연관 데이터베이스(SAD, security association database)에 포함된다.
  • 선택자
    • 장비가 특정 데이터그램에 어떤 보안 정책이나 SA를 사용할지를 결정하는 방법
    • SA가 자신이 적용될 데이터그램을 선택하기 위한 규칙 모음
  • 보안 연관 트리플과 보안 인자 색인
    • 보안 인자 색인
      • 서로 연결된 장비의 특정 SA를 유일하게 식별하기 위해 선택된 32비트 숫자
      • SPI는 AH 또는 ESP 데이터그램에 내장되며 각 보안 데이터그램을 SA와 연결시킨다
      • SPI는 메시지 수신자가 데이터그램에 어떤 SA가 적용되는지 파악하는데 쓰인다
    • IP 목적지 주소
      • SA가 수립된 장비의 주소
    • 보안 프로토콜 식별자
      • 이 연관이 AH를 위한 것인지, ESP를 위한 것인지를 지정한다.
      • 만약 장비에서 AH와 ESP 둘 다 사용하고 있다면, 각각 별도의 SA를 이용해야 한다.

IPsec 인증 헤더(AH)


    • AH 헤더는 메시지의 무결성을 보장하지만 메시지를 암호화하지는 않는다.
    • AH는 인증은 제공하지만 프라이버시는 제공하지 않는다. 이것은 ESP의 몫이다.
  • AH 데이터그램 위치와 연결
    • IPv6 AH위치와 연결
      • IPv6에서, AH는 확장 헤더로 IP 데이터그램에 삽입됨
      • IPv6의 일반적인 확장 헤더 연결 규칙을 그대로 따름
      • 전송모드에서, AH는 주 IP 헤더 안에 위치하며 최종 목적지에 대한 옵션을 포함하는 목적지 옵션 헤더 앞에, ESP 헤더가 있을 경우 그 앞에 나타남
      • 터널모드에서, AH는 터널링되는 원본 데이터그램을 캡슐화하는 새 IP 데이터그램의 확장 헤더로 나타남
    • IPv4 AH 위치와 연결
      • IPv4 데이터그램에서 프로토콜 필드는 데이터그램이 운반하는 상위 계층 프로토콜(보통 TCP 또는 UDP)을 지정
      • 그래서 이 필드는 다음 헤더(IP 페이로드의 맨 앞)를 가리킴
      • AH는 이 값을 가져와 다음 헤더 필드에 넣고, IP 프로토콜 필드에 AH 자체에 대한 프로토콜값(10진수로 51)을 넣음
      • 이렇게 하면 IP 헤더는 AH를, AH는 IP 데이터그램이 예전에 가리키던 것을 가리킴
  • AH 포맷
필드 이름 크기
(바이트)
설명
다음 헤더 1 AH 다음에 오는 헤더의 프로토콜 번호를 담고 있다. 헤더를 서로 연결하는 데 쓰인다.
페이로드 길이 1 이름과는 달리 이 필드는 페이로드가 아니라 인증 헤더 자체의 길이를 측정한다. 이 길이는 32비트 단위로 측정되며 IPv6에서 헤더 길이를 계산하는 일반적인 방법과 유사하게, 2를 뺀 값으로 표현된다.
예약됨 2 쓰이지 않는다. 0으로 설정된다.
SPI 4 32비트 값으로 목적지 주소와 보안 프로토콜 유형(물론 여기서는 AH)과 함께 이 데이터그램에 쓰이는 보안 연관(SA)을 식별한다.
순서 번호 4 두 장비간 SA가 구성될 때 0으로 초기화되는 카운터 필드이다. 이 필드는 그 SA를 사용하여 데이터그램이 송신될 때마다 증가한다. 이 필드는 특정 SA 내에서의 각 데이터그램을 유일하게 식별하며 캡쳐한 데이터그램을 재전송하는 것을 방지함으로써 재생 공격으로부터 IPsec를 방어하는 데 쓰인다.
인증 데이터 가변적 AH 프로토콜이 수행하는 해싱 알고리즘의 계산 결과인 무결성 검사값(ICV)을 포함한다.

IPsec AH를 포함하는 IPv4 데이터그램 포맷 IPsec 인증 헤더(AH) 포맷

    • 인증 데이터 필드의 크기는 서로 다른 데이터그램 길이와 해싱 알고리즘을 지원하기 위해 가변적으로 설정되어 있음
    • 인증 데이터 필드의 길이는 32비트의 배수가 되어야 하고 전체 헤더도 32비트의 배수(IPv4의 경우) 또는 64비트의 배수(IPv6의 경우)여야 하기 때문에 필드에 패딩이 추가될 수 있음

IPsec 보안 페이로드 캡슐화(ESP)
    • Encapsulating Security Payload 프로토콜
    • IP 데이터그램을 암호화하여 프라이버시를 보장
  • ESP 필드
    • ESP 헤더
      • SPI와 순서 번호(Sequence Number)라는 두 필드를 포함하며 암호화된 데이터 앞에 온다
    • ESP 트레일러
      • 암호화된 데이터 뒤에 위치
      • 패딩과 패딩 길이 필드를 이용해 암호화된 데이터를 32비트 경계에 맞춘다
      • ESP의 다음 헤더 필드도 포함
    • ESP 인증 데이터
      • AH 프로토콜과 유사한 방식으로 계산되는 ICV를 포함
      • ESP의 선택적인 인증 기능이 적용될 때 쓰임
  • ESP 동작과 필드 사용
    1. 헤더 계산과 위치
      • IPv6
        • ESP 헤더 필드는 확장 헤더로 IP 데이터그램에 삽입됨
        • IPv6의 일반적인 확장헤더 연결 규칙을 그대로 따름
        • 전송모드에서, 최종 목적지에 대한 옵션을 포함하는 목적지 옵션 헤더 전에, 그 밖의 모든 확장 헤더 뒤에
        • 터널모드에서, 터널링되는 원본 데이터그램을 캡슐화하는 새 IP 데이터그램의 확장 헤더로 나타남
      • IPv4
        • ESP 헤더는 일반 IPv4 헤더 뒤에 위치
        • 전송모드에서, 원본 데이터그램의 IP 헤더 뒤
        • 터널모드에서, 원본 데이터그램을 캡슐화하는 새 IP 데이터그램의IP 헤더 뒤
    2. 트레일러 계산과 위치
      • ESP 트레일러 필드가 암호화될 데이터 뒤에 붙으면 ESP는 암호화를 수행
    3. ESP 인증 필드 계산과 위치
      • 선택적인 ESP 인증 기능이 쓰일 경우에는 전체 ESP 데이터그램에 대한 계산이 이루어진다
  • ESP 인증 필드 계산과 위치
IPsec ESP를 사용하는 IPv6 데이터그램 포맷

IPsec ESP를 사용하는 IPv4 데이터그램 포맷


  • ESP 포맷
구간 필드 이름 크기
(바이트)
설명
ESP 헤더 SPI 4 32비트값으로, 목적지 주소와 보안 프로토콜 유형과 함께 이 데이터그램에 쓰이는 보안 연관(SA)을 식별한다.
순서 번호 4 두 장비간 SA가 구성될 때 0으로 초기화되는 카운터 필드이다. 이 필드는 그 SA를 사용하여 데이터그램이 송신될 때마다 증가한다. 이 필드는 재생 공격으로부터 IPsec를 방어하는 데 쓰인다.
페이로드 페이로드 가변적 암호화된 페이로드 데이터로 상위 계층 데이터 메시지 또는 캡슐화된 IP 데이터그램으로 구성된다. 이 필드는 일부 암호화 방법에서 필요로 하는 초기화 벡터 같은 지원 정보를 포함할 수도 있다.
ESP트레일러 패딩 가변적
(0에서 255)
암호화 또는 정렬을 위해 추가적인 패딩 바이트가 포함된다.
패딩 길이 1 위 패딩 필드의 파이트 수
다음 헤더 1 데이터그램에서 다음 헤더의 프로토콜 번호를 포함한다. 헤더를 연결하는 데 쓰인다.
ESP인증 데이터 가변적 선택적인 ESP 인증 알고리즘을 적용하여 계산한 ICV를 포함한다.
IPsec 보안 페이로드 캡슐화(ESP) 포맷

IPsec ESP 포맷

IPsec 인터넷 키 교환(IKE)

  • IKE 개요
      • IKE의 목적은 장비가 안전한 통신을 위해 필요로 하는 정보를 교환하도록 하는 것
      • IKE는 3개의 다른 프로토콜 기능을 결합하고 보완하기 때문에 혼성 프로토콜로 간주됨
    • ISAKMP(Internet Security Association and Key Management Protocol)
        • 암호화 키와 보안 연관 정보를 교환하기 위한 구조를 제공
      • OAKLEY
        • 다양한 키 교호나 모드를 정의하여, 키 교환을 위한 구체적인 방법을 설명
        • IKE 키교환 절차 대부분은 OAKLEY에 기반을 두고 있음
      • SKEME
        • OAKLEY와는 다른 키 교환 방법을 설명
        • IKE는 SKEME의 일부 기능(공개 키 암호화와 만료된 SA의 고속 재수립 포함)을 이용
  • IKE 동작
      • IKE는 OAKLEY나 SKEME를 엄격히 구현한 것이 아니라 양 쪽에서 일부 기능을 가져와 ISAKMP라는 고유한 방법을 만듦
    • ISAKMP 단계 1
      • 1단계는 두 장비가 이후에 정보를 어덯게 안전하게 교환할지에 동의하는 준비 단계다
      • 두 장비는 협상을 통해 ISAKMP 자체를 위한 SA인 ISAKMP SA를 생성한다
    • ISAKMP 단계 2
      • 1단계에서 수립한 ISAKMP SA를 이용하여 기타 보안 프로토콜을 위한 SA를 생성
      • 보통, 여기에서 AH와 ESP 프로토콜을 위한 "진짜" SA의 인자를 협상한다.
    • 1단계에서 협상한 ISAKMP SA는 이후 협상에 쓰이는 다음과 같은 속성을 포함한다.
      • DES(Data Encryption Standard) 같은 암호화 알고리즘
      • 해시 알고리즘(AH나 ESP에서 사용하는 MD5 또는 SHA)
      • 인증 방법(미리 공유한 키를 통한 인증 등)
      • 디피-헬만(Diffie-Hellman) 그룹

댓글 1개:

  1. 감사합니다 도움이 됬슴다 한번알아볼라했는데 잘정리되있내요

    답글삭제