IP 보안 IPSec
목 차 IPsec 개요 IPsec 구조 인증헤더(AH) 캡슐화 보안 페이로드 (ESP) 보안 연관의 결합 키 관리 VPN
Ipsec 의 개요 프로토콜 계층구조와 관련된 보안 TCP/IP 계층구조는 응용, 전환, 네트워크, 물리계층으로 나뉜다. IP계층에서 보안 보안설비 유무 상관없이 보안기능 제공 IP계층보안 3 기능 영역 인증(Authentication), 기밀성(Confidentiality), 키 관리 (Key Management) 인증: 발신처 인증, 패킷의 무결성 기밀성: 통신 노드간에 메시지 암호화(도청방지) 키관리: 키의 안전한 교환
Ipsec 의 개요 1994년: IAB(Internet Architecture Board)는“Security in the Internet Architecture” 발간(RFC1636) 인터넷은 강력하고 우수한 보안 기능 필요 지적 보안 메커니즘을 위한 키 관리, 인증 및 암호 메커니즘을 이용한 최종 사용자간의 트래픽 안전성 제공 필요 1997년: CERT 150,000사이트, 2500건 보안사고 IP Spoofing 위장된 IP 주소의 사용. 인증에 악용 Packet Sniffing 로그온 정보 또는 DB내용을 포함하는 전송된 정보를 읽는 것. IAB는 IP에 IPv6 차세대 보안기능 추가 인증 암호화
IPSec 응용 LAN, WAN, 인터넷에서 안전한 통신기능 제공 인터넷을 통한 지사 사무실의 안전한 접속 VPN에 의해 사설망 경비 절약 인터넷을 통한 안전한 원격 접속 ISP로 접속하여 원격지 이동 비용 절약 협력 업체간의 인트라넷과 익스트라넷 연결 인증, 기밀성, 키 교환을 이용한 조직간 안전한 통신 전자상거래 보안의 강화 웹이나 전자상거래 응용의 보안 프로토콜에 대한 강화 효과
IP보안 시나리오 예
IPSec의 이점 방화벽 및 라우터에서 모든 트래픽에 대한 보안 제공 내부의 발생 트래픽은 보안 처리 부담에서 해방 방화벽의 IPSec은 모든 트래픽의 IP 통과를 제어 방화벽이 인터넷에서 내부로 들어가는 유일한 관문 전송계층 아래의 IPSec은 응용프로그램에 투명 사용자나 서버 시스템의 소프트웨어 변경 불필요 IPSec은 최종 사용자에게 투명 사용자는 보안 메커니즘, 키 발행 및 폐기로부터 자유 IPSec은 필요한 개별 사용자에게 보안 제공 가능 한 기관의 응용프로그램에서 가상 서브네트워크 구성 가능
라우팅 응용 프로그램 IPSec은 다음을 보장 Router advertisement: 새로운 라우터의 존재 알림 인증된 라우터로부터 나옴 Neighbor advertisement: 다른 영역의 라우터와 연결 유지 Redirect message 초기 패킷을 보낸 라우터에서 나옴 Routing update 라우팅 갱신 정보의 위조 불가
IPsec 구조 IPSec 문서 1985년 8월: IETF는 5건의 보안 관련 표준제안 RFC1825 : 보안 구조의 개요 RFC1826 : IP의 확장된 패킷 인증에 대한 설명 RFC1828 : 특정 인증 메커니즘 RFC1827 : IP의 확장된 패킷 암호화에 대한 설명 RFC1829 : 특정 암호화 메커니즘 IPv6는 필수기능, IPv4는 선택사항 메인 IP헤더 다음에 오는 확장 헤더로써 보안 기능을 구현 인증기능: Authentication Header(AH) 암호기능: Encapsulating Security Payload(ESP) 초기 문서 이후 7개 그룹의 IP 보안 프로토콜 작업
IPSec 문서의 개요(1)
IPSec 문서의 개요(2) 구조(Architecture) : IPSec 정의와 개념, 보안 요구사항, 메커니즘 등 설명 ESP(Encapsulating Security Payload) 패킷 형식과 암호화를 위한 ESP의 사용 관련(선택사항으로 인증 설명) AH(Authentication Header) 패킷 형식과 패킷 인증을 위한 AH 사용 관련 암호화 알고리즘(Encryption Algorithm) ESP에 사용되는 여러 가지 암호화 알고리즘을 설명한 문서 인증 알고리즘(Authentication Algorithm) AH와 ESP 인증 옵션에 사용되는 여러 인증 알고리즘을 설명문서 키관리(Key Management) 키관리 구조를 설명한 문서 Domain of Interpretation(DOI) 키의 사용기간, 암호화와 인증알고리즘을 구분하는 식별자 등을 포함
네트워크계층에 보안 서비스를 제공해주는 메커니즘 IP 계층과 그 이상의 계층에 대한 보안서비스 제공 IPSec 서비스 네트워크계층에 보안 서비스를 제공해주는 메커니즘 IP 계층과 그 이상의 계층에 대한 보안서비스 제공 IPv4 표준과 IPv6 모두에 보안 서비스를 제공할 수 있도록 설계 보안 서비스 제공됨 접근통제 : 사전에 설정 정보를 아는 사람에게만 접근 허용 비연결형 무결성 : MAC (message authentication code) 데이터 발신처 인증 : 사전에 부여된 공유키 정보 재전송 공격 방지 : 순서 번호 기밀성(암호화) : 공유키로 암호화, 대칭키 암호화 알고리즘 제한된 트래픽 흐름의 기밀성 IPSec은 AH와 ESP의 두 가지 프로토콜 사용
IPSec 서비스 필요한 프로토콜, 알고리즘, 암호화 키를 선택하여 보안 서비스 제공
보안 연관 SA(Security Association) 전송되는 트래픽에 대해 보안 서비스를 제공하는 송신자와 수신자간의 일방향 관계 양방향 안전한 서비스를 위해 2개의 SA 필요 3개의 변수로 구분 보안 매개변수 색인(SPI: Security Parameter Index) SA에 할당된 비트 문자열(로컬에서만 의미) SPI는 AH와 ESP 헤더를 통하여 전송 IP 목적지 주소 (IP Destination Address) 현재는 유니캐스트 주소만 허용 SA의 사용자 시스템, 방화벽, 라우터 등 최종 목적지 주소 보안프로토콜 식별자 (Security Protocol Identifier) 보안 연관이 AH 인지 아니면 ESP 인지를 표시
SA 매개변수 SA DB: SA와 연관된 매개 변수 정의 Sequence Number Counter: AH 또는 ESP 헤더에 순서 번호 필드 생성을 위해 사용 (32비트 값) Sequence Counter Overflow: SN카운터 Overflow 유무 플래그 Anti-Replay Window: AH 또는 ESP 수신 패킷이 재전송 판별 AH Information: AH의 인증알고리즘, 키, 키 사용주기, 기타 변수 ESP Information: ESP에 사용되는 암호화와 인증 알고리즘, 키, 초기 값, 키 사용주기, 기타 변수 Lifetime of this SA: SA교체 또는 종료 시간간격이나 바이트 값 IPSec Protocol Mode: 터널, 전송 또는 와일드카드 Path MTU: 경로의 최대 전송단위와 연령 변수
SA 선택자 SPD(Security Policy Database) IP 트래픽을 특정 SA에 연관시키는 방법 Selector : 각 SPD 엔트리 IP와 상위 계층의 프로토콜 필드 값 특정 SA에 대응 시키기 위해 outgoing traffic을 필터링 하는데 사용 Outbound processing 1. 패킷의 선택자 필드 값을 대응되는 SPD 엔트리와 비교 2. 이와 관련된 SPI가 있다면 SA를 결정 3. 필요한 IPSec 절차를 진행(AH 또는 ESP 처리 절차)
SPD 엔트리를 결정하는 선택자 Destination IP 주소: 단일 IP주소, 목록주소, 일정 범위의 주소, 와일드카드 주소 Source IP 주소: 단일 IP주소, 목록주소, 일정 범위의 주소, 와일드카드 주소 User ID: 운영 체제의 사용자 식별자 Data Sensitivity Level: 시스템이 정보 흐름 보안을 제공하는데 사용 Transport Layer Protocol: IPv4 프로토콜 or IPv6 다음-헤더 필드에서 획득 IPsec Protocol (AH, ESP or AH/ESP): IPv4, IPv6의 다음-헤더 필드에서 획득 Source and Destination Ports: 개별 TCP/UDP 포트 값, 포트목록,와일드카드 포트 IPv6 Class: IPv6 헤더로부터 획득(특정한 IPv6 클래스 값이나 와일드카드 값) IPv6 Flow Label: IPv6 헤더로부터 획득(특정한 IPv6 흐름 클래스 값이거나 와일드카드 값) TOS: IPv4 Type of Service): IPv4 헤더로부터 획득(특정 IPv4 TOS 값이거나 와일드카드 값)
터널모드와 전송모드의 기능
TCP/IP Application data data data data data data message transport layer TCP header data TCP header data TCP header data segment network layer IP header TCP header data packet data link layer Ethernet header IP header TCP header data Ethernet trailer frame
IPv4 Header
IPv6 Header
RFC 2402 발표목차 1. AH 개요 2. AH 헤더 형식(AH 구조) 2.1 다음-헤더(Next Header) 2.2 페이로드 길이 (Payload Length) 2.3 예약 필드 (Reserved) 2.4 보안 파라메터 인덱스 (SPI) 2.5 순서 번호 (Sequence Number) 2.6 인증 데이터 (Authentication Data) 3. AH 적용 모드 4. 인증 알고리즘 (Authentication Algorithms) 5. 출발패킷처리(Outbound Packet Processing) 6. 도착패킷처리(Inbound Packet Processing) 7. 감사(Auditing)
인증 헤더 개요 AH 헤더 비연결형 무결성, 데이터 발신처 인증, 재전송 공격 보호, address spoofing 공격 보호 기능 제공 MAC(message authentication code) 사용 기반 인증 제공 통신 주체간 비밀키 공유 필요 단독으로 사용 또는 ESP와 결합되어 사용 가능 호스트의 쌍, 보안 게이트웨이의 쌍, 호스트와 게이트웨이 간에 보안 서비스 제공 ESP와 AH가 제공하는 서비스들 간의 가장 중요한 차이점은 보호 서비스의 적용범위 IP헤더 필드들이 터널 모드 ESP에 의해서 캡슐화되는 경우가 아니면, ESP는 어떠한 IP 헤더 필드들도 보호하지 못한다.
Authentication Data (variable length) Security Parameter Index (SPI) AH 헤더 형식 AH 헤더의 바로 앞에 오는 프로토콜 헤더는 그 프로토콜 필드 내에, 또는 다음-헤더(Next Header) 필드에 값 51을 포함 Authentication Data (variable length) Sequence Number Field Security Parameter Index (SPI) Next Header Payload Length Reserved 31 15 7
다음-헤더(Next Header) AH 헤더 뒤에 오는 페이로드 타입의 식별에 사용 8-비트 길이 필드값은 IANA가 만든 “Assigned Number“로 RFC에 정의된 IP 프로토콜 숫자들의 집합에서 선택 ex) IPv6에서의 확장헤더, 상위 레벨 프로토콜에 대한 식별자 등등 반드시 구현
페이로드 길이 (Payload Length) 페이로드 길이를 정의하는 8-비트 필드 AH 길이를 32비트 워드 단위로 표시, 전체 값에서 "2"를 뺀 값 96-비트인 인증 값 + 고정된 부분인 3개의 32-비트 워드 길이가 더해진 "standard"한 경우 페이로드 길이 값은 "4"가 됨 디버깅 목적으로 "null" 인증 알고리즘이 사용되어 해당되는 인증 데이터 필드가 없는 경우 IPv4의 경우 페이로드 길이 필드에 "1" 값 IPv6인 경우에는 페이로드 길이 필드에 "2" 값
예약 필드 (Reserved) 장래 사용을 위해 예약 16-비트 필드 인증 데이터 계산 시에 "0"으로 설정되어야 함(MUST) 인증 데이터 계산 시에 포함됨.
보안 파라메터 인덱스 (SPI) 목적지 IP 주소와 보안 프로토콜(AH)과 함께 데이터그램에 대한 SA를 식별하기 위해서 사용 임의의 32-비트 값 1에서 255까지의 범위를 갖는 SPI 값들은 IANA에 의해 예약 0 값은 지역적 사용을 위해 존재, 전송안함. 키 관리 요소가 새로운 SA를 설정하도록 요청 받았는데 SA가 아직 설정되지 않았을 경우, zero의 값을 가지는 SPI 값을 "No Security Association Exists"(SA가 존재하지 않음)을 나타내는 용도로서 사용가능
순서 번호 (Sequence Number) 부호 없는 32-비트 필드, 점차적으로 증가하는 카운터 값 재전송 공격 방지 서비스에 사용 반드시 요구되는 사항 순서번호 처리는 수신측의 결정에 따름. 송신측(필수전송) 송신측의 카운터는 SA가 설정될 때 0으로 초기화 주어진 SA내에서 처음으로 보내어지는 패킷은 순서번호 1 할당 전송되는 순서번호가 순환되어서는 안됨. 송신측의 카운터와 수신측의 카운터는 그 SA내에서 2^32 번째 패킷의 전송에 앞서 (새로운 SA와 새로운 키의 수립에 의해) 0으로 재설정되어야 함(MUST).
인증 데이터 (Authentication Data) 패킷에 대한 무결성 검사 값(ICV: Integrity Check Value)을 포함하는 가변길이 필드 필드의 길이는 반드시 32 비트의 정수배 명시적인 패딩 포함 가능 패딩은 AH 헤더의 길이가 IPv4의 경우에는 32비트 정수배가 되도록, IPv6의 경우에는 64비트 정수배가 되도록 한다. 모든 구현은 반드시 패딩을 지원해야 한다(MUST).
재전송-방어 서비스 재전송 공격: 공격자가 인증된 패킷의 복사본을 확보하여 의도하는 목적지로 재전송하는 공격 순서번호를 이용한 공격 방어 새로운 SA가 확립되면 송신자는 순서번호 0으로 초기화 패킷을 본 SA로 전송할 때마다 순서번호를 1씩 증가 SN이 상한값 (232-1)이 되면 새로운 SA 설정 필요 IP는 비연결형 이므로 모든 패킷의 전달 보장 불가 수신자가 윈도우 크기(기본 값 W=64)구현 필요 N: 유효 패킷의 가장 높은 순서번호 (N-W+1)부터 N 사이의 순서번호 패킷은 인증된 유효 패킷
재전송-방어 메커니즘
재전송-방어 처리 절차 수신된 패킷이 윈도우 범위 내에 있고 새로운 것이면 MAC를 점검한다. 패킷이 인증되면 윈도우 안의 해당 슬롯을 표시한다. 2. 수신된 패킷이 윈도우의 오른쪽에 해당하고, 새로운 것이면 MAC를 점검한다. 패킷이 인증되면, 이 순서 번호가 윈도우의 오른쪽 끝에 오도록 윈도우를 이동시키고 윈도우 안의 해당 슬롯을 표시한다. 3. 수신된 패킷이 윈도우의 왼쪽에 해당하거나 또는 인증이 안되면 패킷을 폐기(감사 이벤트)
무결성 점검값(ICV) 1/2 인증 데이터 필드: 무결성 검사 값 포함 메시지 인증 코드(MAC), 또는 코드의 잘려진 일부 HMAC-MD5-96, HMAC-SHA-1-96 해쉬 코드 사용 전체 HMAC 값에서 처음 96비트를 사용 MAC 계산 대상 전송 중에 변경되지 않거나 도착시 예측 가능한 IP헤더 필드 인증 데이터 필드 이외의 AH 헤더 전송 중에 변하지 않을 것으로 가정되는 전체 상위 계층 프로토콜
무결성 점검값(ICV) 2/2 IPv4 변하지 않는 필드: 헤더 길이와 발신지 주소 변할 수 있지만 예측 가능한 필드: 목적지 주소 변할 수 있는 필드: Time to Live, Header Checksum field Address spoofing 방어위한 보호 필드: 발신지/목적지 주소 IPv6 변하지 않는 필드: 기본 헤더의 버전 변할 수 있지만 예측가능: 목적지 주소 변할 수 있는 필드: 흐름 레이블(0으로 설정 필요)
종단과 중계 시스템간의 인증
AH 적용 모드 (1/3) AH 적용 전
AH 적용 모드 (2/3) 트랜스포트 모드 호스트 구현에서만 적용 가능 상위계층 프로토콜에 대한 보호 제공, IP 헤더보호 제공 AH는 IP 헤더의 뒤, 그리고 TCP, UDP, ICMP 등과 같은 상위계층 프로토콜의 앞
AH 적용 모드 (3/3) 터널 모드 AH가 보안 게이트웨이나 방화벽에서 터널 모드를 사용 안쪽 IP 헤더가 최후의 source와 destination 주소를 가지고, 바깥 IP 헤더가 다른 IP 주소, 즉, 보안 게이트웨이의 주소를 가짐. 안쪽 IP 헤더 전체를 포함하는 IP 패킷 전체를 보호
RFC 2406 발표목차 1. ESP 개요 2. ESP 패킷 형식 3. ESP 적용 모드 4. 암호화 알고리즘 2.1 보안 파라메터 인덱스(SPI) 2.2 순서번호(Sequence Number) 2.3 페이로드 데이터(Payload Data) 2.4 패딩(Padding) 2.5 패드 길이(Pad Length) 2.6 다음-헤더(Next Header) 2.7 IANA Assign Number 2.8 인증 데이터(Authentication Data) 3. ESP 적용 모드 4. 암호화 알고리즘 5. 인증 알고리즘 6. 출발패킷처리(Outbound Packet Processing) 7. 도착패킷처리(Inbound Packet Processing ) 8. 감사(Auditing)
ESP 개요 ESP: 기밀성 제공을 위해 설계 메시지 내용 기밀성 트래픽 흐름 기밀성 ESP는 단독 혹은 AH와 함께 사용가능 Host-Host GW-GW GW-Host
ESP 개요 ESP 헤더는 IPv4와 IPv6에서 여러 가지 보안 서비스를 제공하기 위해 설계 단독, AH와 함께 쓰이거나 중첩된 형태로 사용 호스트-호스트, GW-GW, GW-호스트간의 보안 서비스 제공 ESP 제공 서비스 비밀성 : 공유 정보를 이용하여 패킷 일부 암호화 비밀성과 인증 모두 선택적이지만 둘 중 하나는 반드시 구현 데이터 발신처 인증 : 공유된 키 값 소유 비연결형 무결성 : MAC 재전송 방지 서비스 : 부분적 순서 무결성의 형태, 순서번호 제한된 트래픽 흐름 비밀성 : 터널모드에서 제공
ESP 패킷 형식
ESP 패킷 형식 보안매개변수 색인(Security Parameters Index)-32 bit SA를 구분한다 순서번호( Sequence Number)-32 bits 카운터 값 페이로드 데이터(Payload Data (variable)- 가변길이 암호화로 보호되는 전송레벨 세그먼트(전송모드) 또는 IP 패킷(터널모드) 패딩(Padding)-0–255 bytes 패드 길이(Pad Length)-8 bits 다음 헤더(Next Header)-8 bits 페이로드 데이터의 유형 구분 인증 데이터 (Authentication Data) –가변길이 인증 데이터 외 부분으로 계산한 인증자의 값
보안 파라메터 인덱스(SPI) 목적지 IP 주소와 ESP와 같은 보안 프로토콜과 함께 이 데이터그램에 대한 SA를 식별 임의의 32-비트 값 SPI 필드는 반드시 구현 1에서 255까지의 SPI 값의 집합은 Internet Assigned Numbers Authority(IANA)에 의해 예약 zero의 SPI 값은 “로컬”한 사용을 위해 예약, 전송을 안함 키 관리 요소가 새로운 SA를 설정하도록 요청 받았는데 SA가 아직 설정되지 않았을 경우, zero의 값을 가지는 SPI 값을 "No Security Association Exists"(SA가 존재하지 않음)을 나타냄
순서 번호 (Sequence Number) 부호 없는 32-비트 필드, 점차적으로 증가하는 카운터 값 재전송 공격 방지 서비스에 사용 반드시 구현 요구되는 사항 순서번호 필드의 처리여부는 수신측의 결정에 따름. 송신측(필수 전송) 송신측의 카운터는 SA가 설정될 때 0으로 초기화 주어진 SA내에서 처음으로 보내어지는 패킷은 순서번호 1 할당 전송되는 순서번호가 순환되어서는 안됨. 송신측의 카운터와 수신측의 카운터는 그 SA내에서 232번째 패킷의 전송에 앞서 (새로운 SA와 새로운 키의 수립에 의해) 0으로 재설정되어야 함(MUST).
페이로드 데이터(Payload Data) 다음-헤더(Next Header) 필드에 의해 기술되는 데이터를 포함하는 가변길이 필드 전송 레벨 세그먼트(트랜스포트 모드) 또는 암호화로 보호되는 IP패킷(터널 모드) 반드시 구현, 길이는 바이트들의 정수 배 페이로드를 암호화하는 초기화 벡터가 요구될때 페이로드 필드에 명시적으로 포함되어 전달가능(MAY).
패딩(Padding) 패딩 필드의 사용이 필요한 이유 사용되는 암호화 알고리즘에서 정수 배의 평문 길이 요구 평문이 알고리즘에 의해서 요구되는 길이가 되도록 채움 평문 : 패딩, 페이로드 데이터, 패드 길이(Pad Length), Next Header 필드 포함 암호화 결과로 나오는 암호문이 4-바이트 경계로 끝나도록 요구 인증 데이터 필드가 4-바이트 경계에서 배치되도록 하기 위함 패드 길이와 Next Header 필드는 4바이트 워드 내에서 오른쪽으로 정렬되어야 함. (ESP 패팃 형식 그림 참조) 트래픽 플로우 비밀성을 지원, 페이로드의 실제 길이를 숨기는 데에 사용, 대역폭 고려 사용
패딩(Padding) 패딩시 주의사항 패드 바이트들의 길이를 지정 유효한 값의 범위는 0에서 255 블록 크기의 정수 배가 되기 위한 패딩계산은 초기화 벡터, 패드 길이, Next Header 필드들에 소요되는 길이를 제외 인증 데이터가 4-바이트 단위가 되기 위한 패딩계산은 초기화 벡터, 패드 길이, Next Header 필드를 포함하여 계산 평문에 부가되는 처음의 패딩 바이트는 1로 번호가 매겨지고 다음에 오는 패딩 바이트들은 점차적으로 증가되는 순서값 : 1, 2, 3, …을 갖는다. 패드 길이(Pad Length) 패드 바이트들의 길이를 지정 유효한 값의 범위는 0에서 255 0의 값은 아무런 패딩 바이트도 존재하지 않는다는 것을 의미 필수 구현(MUST).
다음-헤더(Next Header) ESP 헤더 뒤에 오는 페이로드 타입의 식별에 사용 8-비트 길이 필드 값은 IANA가 만든 “Assigned Number“로 RFC에 정의된 IP 프로토콜 숫자들의 집합에서 선택 ex) IPv6에서의 확장 헤더, 상위 레벨 프로토콜에 대한 식별자 필수 구현(MUST).
인증 데이터(Authentication Data) 인증 데이터 자체를 제외한 ESP 패킷에 대해 계산되는 무결성 검사 값(ICV) 포함 가변 길이의 필드 필드의 길이는 선택된 인증 함수에 의해서 명시 인증 데이터 필드는 옵션, 질의에서 SA에 대한 인증 서비스가 선택되었을 경우에만 포함
암호화 알고리즘 암호 알고리즘- CBC mode 3중 DES RC5 IDEA CAST Blowfish 해쉬함수 HMAC-MD5-96 HMAC-SHA-1-96
암호화 알고리즘 반드시 구현해야 하는 알고리즘 DES in CBC mode HMAC with MD5 HMAC with SHA-1 NULL Authentication algorithm NULL Encryption algorithm 사용하기 위한 암호화 알고리즘은 SA에 의해 명시 ESP는 대칭키 암호화 알고리즘을 사용할 수 있도록 설계 IP 패킷들은 순서대로 도착하지 않을 수 있기 때문에, 각 패킷은 수신측에서 복호화 시에 암호학적 동기화 데이터를 포함해야 함. 명시적으로 페이로드 필드에 포함되어 전달(ex: 초기화 벡터) 패킷 헤더로부터 유도. ESP는 평문에 대한 패딩을 제공하기 때문에, 블록 모드, 스트림 모드 지원. 인증과 암호화가 각각 NULL이 될 수 있지만 동시에 둘 다 NULL이 되어서는 안됨.
인증 알고리즘 ICV 계산에 인증 알고리즘 사용 SA에 의해 명시. 대칭키 암호화 알고리즘, 일방향 해쉬 알고리즘에 기반을 둔 Keyed 메시지 인증 코드들(Message Authentication Codes, MACs)을 포함 인증이 선택적이기 때문에, 이 알고리즘은 NULL 가능.
전송 모드 대 터널 모드의 암호화
ESP 적용 모드 (1/4) 트랜스포트 모드(전송모드) 호스트 구현에서만 적용 가능 상위계층 프로토콜에 대한 보호 제공, IP 헤더보호 없음 ESP는 IP 헤더의 뒤, 그리고 TCP, UDP, ICMP 등과 같은 상위계층프로토콜의 앞, 이미 삽입된 다른 모든 IPsec 헤더의 앞에 위치 IPv4 Header Before Applying ESP IP Header Transport Protocol Header Protocol Data IPv4 Header After Applying ESP Authenticated ESP Header Transport Protocol Header ESP Trailer ESP Auth Encrypted
ESP 적용 모드 (2/4) 트랜스포트 모드 IPv6 IPv6 Header Before Applying ESP IP Headers Extension Headers) TCP Data IP Header IPv6 Header After Applying ESP Added ext header ESP Header ESP Trailer ESP Auth * If present, can be before ESP, after ESP, or both Authenticated Encrypted
ESP 적용 모드 (3/4) 터널 모드 ESP는 호스트나 보안 게이트웨이에서 사용 ESP가 보안 게이트웨이에서 구현될 때 터널 모드 반드시 사용 안쪽(inner)의 IP 헤더가 최후의 source와 destination 주소를 가지고, 바깥의(outer) IP 헤더가 다른 IP 주소, 즉, 보안 게이트웨이의 주소를 가짐. (가입자의 트래픽 전송을 보호) 안쪽의 IP 헤더 전체를 포함하는 IP 패킷 전체를 보호 ESP의 위치는 바깥쪽의 IP 헤더에 대해서, 트랜스포트 모드에서의 ESP의 위치와 동일
ESP 적용 모드 (4/4) IPv4 Header Before Applying ESP IP Header TCP Data IPv4 Header After Applying ESP New IP Header ESP Header ESP Trailer ESP Auth Authenticated Encrypted IPv6 Header Before Applying ESP IP Header Extension Headers TCP Data IP6 Header After Applying ESP Authenticated Encrypted New IP Header Extension Headers ESP Header Original IP Header Orig Ext Headers TCP Data ESP Trailer ESP Auth
보안연관의 결합 하나의 SA가 AH 또는 ESP 프로토콜을 구현(2가지는 불가) 동일한 특정 트래픽에 대하여 호스트들간의 보안 기능과 보안 게이트웨이들 사이의 보안기능이 분리된 서비스 요구 가능 다중 SA의 사용 필요 보안연관 묶음(Security Association Bundle) 원하는 IPSec 서비스를 위하여 연속되는 SA Transport Adjacency 같은 IP 패킷에 하나 이상의 보안 프로토콜 적용 Iterated Tunneling IP 터널을 통해 여러 계층의 보안 프로토콜 적용
SA 결합의 예 - 두 종점 시스템 사이에서 IPSec이 구현된다.
SA 결합의 예 - 보안은 게이트웨이들 사이에서만 이루어지고 호스트들은 IPSec을 사용하지 않는다. (이 경우 중첩의 필요가 없다.)
SA 결합의 예 - 게이트웨이 보안에 종단대 종단 SA를 추가. 개별적인 호스트들은 종단대 종단 SA를 이용해 추가적 IPSec을 구현.
SA 결합의 예 - 원격 호스트와 침입차단시스템사이에 터널 모드, 원격호스트와 지역 호스트사이에 한 두개의 SA를 추가 사용
인증과 기밀성 선택결합 인증 선택을 가진 ESP(암호화 후에 인증) 전송 결합(암호화 후에 인증) 전송-터널 묶음 전송모드 ESP: IP 헤더 보호 불가 터널모드 ESP: 인증은 외부 IP 목적지에서 실행 전송 결합(암호화 후에 인증) ESP SA 가 내부이고, AH SA가 외부인 2개의 전송묶음 SA 사용(ESP 인증 선택 없이 사용) 인증이 발신지와 목적지 IP 주소 포함하는 장점 2개의 SA가 사용되는 오버헤드가 단점 전송-터널 묶음 암호화에 앞서 인증을 수행(예: 내부 AH 전송 SA와 외부 ESP 터널 SA 묶음을 사용) 암호화로 인증 데이터를 보호하는 장점 나중에 참조를 위해 인증정보의 저장이 필요할 때 유리
키 관리 수동(Manual) IPSec의 키 관리 부분은 비밀 키의 결정 및 분배를 포함하고 있다. 시스템 관리자가 수동으로 각 시스템을 자신의 고유 키와 다른 통신 시스템의 키를 갖도록 설정 작은 규모이면서 상대적으로 안전한 환경에서 실용적 자동(Automated) 자동화된 시스템은 SA를 위한 키 생성 요구를 가능하게 하고, 환경 설정이 포함된 대규모 분산 시스템에서 키의 사용을 관리할 수 있도록 한다 IKE Internet key exchange Ipsec을 위한 기본으로 설정된 자동화된 키 관리 프로토콜 ISAKMP, Oakley, SKEME,Photuris 등의 프로토콜들을 복합적으로 혼합시킨 형태
키 관리 Oakley(Oakley Key Determination Protocol) Oakley는 Diffie-Hellman 알고리즘을 기반으로 한 키 교환 프로토콜이지만 추가적인 보안을 제공한다. ISAKMP(Internet Security Association and Key Management Protocol) ISAKMP는 인터넷 키 관리를 위한 구조를 제공하고, 보안 속성을 협상하기 위한 형식을 포함하는 특정 프로토콜 지원을 제공한다.
Diffie-Hellman 알고리즘 장점 Oakley Oakley 키 결정 프로토콜 Diffie-Hellman 알고리즘 장점 비밀키는 필요할 때만 생성한다. 시간이 지날수록 비밀 키의 취약성이 노출되므로 오랫동안 저장해둘 필요가 없다. 교환은 전역 매개 변수에 대한 동의 외에 다른 사전 기반 구조를 필요로 하지 않는다. Diffie-Hellman 알고리즘 단점 상대편을 확인할 수 있는 정보를 제공하지 않는다. man-in-the-middle 공격을 받을 수 있다.
Oakley Oakley의 특징 쿠키라고 알려진 방해 공격을 예방하는 메커니즘을 채용하고 있다. 두 당사자가 그룹으로 협상할 수 있다. 재전송 공격을 막기 위해 비표를 사용한다. Diffie-Hellman 공개 키 값의 교환이 가능하다 man-in-the-middle 공격을 예방하기 위해 Diffle-Hellman 교환을 인증한다.
Oakley Oakley에서의 3가지 인증 방식 디지털 서명(Digital signatures) 상호간에 획득할 수 있는 인증된 교환 공개키 암호화(Public-key encryption) 송신자의 비밀 키 교환은 ID 나 비표와 같은 암호화한 매개변수에 의해 인증 대칭키 암호화(Symmetric-key encryption) 어떤 out-of-band 메커니즘에서 추출된 키는 교환 매개변수의 대칭 암호화에 의해 교환을 인증하기 위해 사용될 수 있다.
ISAKMP ISAKMP : Internet Security Association&Key Management Protocol 쿠키는 특정 상대에게 의존적이어야 한다. 유포한 개체가 아닌 어느 누구도 그 개체를 수용할 쿠키를 생성할 수 없어야 한다. 쿠키의 생성과 확인 방법을 프로세서 자원을 파괴하려는 공격자가 방해하는 것보다 빨라야 한다. Manual key exchange SA 를 설정하는데 필요한 키 또는 그 밖의 사항들을 물리적인 방법에 의해 양단이 합의하는 것 Automated key exchange 정의된 키 교환 프로토콜을 사용하여 SA를 설정하는 것
ISAKMP ISAKMP 는 보안 연관을 만들고, 교섭하고, 수정하고, 삭제하기 위한 절차와 패킷 형식을 정의한다. ISAKMP 헤더 형식
ISAKMP Initiator Cookie 64비트 : 개체의 구키는 SA 확립, SA 통지, SA 삭제 등의 시작 Responder Cookie 64비트 : 응답 개체 쿠키는 초기화로부터 첫 메시지에는 널 값이다. Next Payload 8비트 : 메시지에 있는 첫 번째 페이로드 유형을 나타낸다. Major Version 4비트 : 사용중인 ISAKMP의 메이저 버전을 나타낸다. Minor Version 4비트 : 사용중인 마이너 버전을 나타낸다. Exchange Type 8비트 : 교환 유형 표시를 나타낸다. Flags 8비트 : ISAKMP 교환을 위한 특정 옵션 집합을 나타낸다.
ISAKMP ISAKMP 페이로드 유형 유형 매개변수 설명 보안 연관(SA) DOI, 상황 유형 매개변수 설명 보안 연관(SA) DOI, 상황 보안 속성,교섭에 이용되며, 교섭이 일어났을 때 DOI와 상황을 가리킨다. 제안(P) 제안#, 프로토콜-ID SPI크기,변경회수, SPI SA 교섭 중 사용됨; 사용되는 프로토콜과 변경 회수를 가리킨다. 변경(T) 변경회수, 변경-ID , SA속성 SA 교섭 중 사용됨; 변경 및 관련된 SA 속성 표시를 가리킨다. 키교환(KE) 키교환 데이터 다양한 키 교환 기술을 지원 식별(ID) ID 유형,ID 데이터 신원 정보 교환에 사용됨 인증서(CERT) 인증서 데이터,인증서 인코딩 인증서나 인증서 관련 정보 전송에 사용됨 인증서 요구(CR) 인증서 유형 번호 인증국 번호, 인증 기관 인증서 요구에 사용; 요구된 인증서의 유형 및 허용된 인증기관을 가리킨다. 해쉬(HASH) 해쉬 데이터 해쉬 함수로 만들어진 데이터를 포함한다. 서명(SIG) 서명 데이터 디지털 서명 기능으로 만들어진 데이터가 들어 있다. 비표(NONCE) 비표 데이터 비표가 들어있다. 통지(N) 프로토콜-ID,SPI 크기 통지메시지 형식,통지데이터 에러 상태 등과 같은 통지 데이터 전송에 사용 삭제(D) SPI 번호,SPI 더 이상 유효하지 않은 SA 표시
ISAKMP 교환유형 교 환 참 고 기본 교환 인증만을 위한 교환 공격적인 교환 정보 교환 1) I-R: SA; NONCE 교 환 참 고 기본 교환 1) I-R: SA; NONCE 2) R-I: SA; NONCE 3) I-R: KE; IDI:AUTH 4) R-I: KE; IDR:AUTH ISAKMP-SA 절충을 시작한다. 기본 SA를 동의한다. 키가 생성됨; 응답자에 의해 초기 개체를 확인한다. 초기자 의해 확인된 응답자 개체; 키가 생성됨; SA가 만들어짐 신원 보호 교환 1) I-R: SA 2) R-I: SA 3) I-R: KE; NONCE 4) R-I: KE; NONCE 5) *I-R: IDI; AUTH 6) *R-I: IDR; AUTH 키가 생성된다 응답자에 의해 초기자 개체가 확인된다. 초기자에 의해 확인된 응답자 개체; SA가 만들어짐 인증만을 위한 교환 1) I-R: SA; NONCE . 2) R-I: SA; NONCE; IDR;AUTH 3) I-R: ID; AUTH ISAKMP-SA 절충이 시작된다. 기본 SA가 동의 된다; 초기자에 의해 확인된 응답자 개체 응답자에 의해 확인된 초기자 개체;SA가 만들어짐 공격적인 교환 1) I-R: SA; KE; NONCE; IDI 2) R-I: SA; KE; NONCE; IDR; AUTH 3) *I-R: ATUTH ISAKMP-SA 절충과 키 교환이 시작된다. 응답자에 의해 초기 개체가 확인된다; 키가 생성된다, 응답자 개체에 따라 동의된 개별 SA가 초기자에 의해 확인된다. SA가 확립된다. 정보 교환 에러 또는 상태 통지 또는 삭제 1) *I-R:N/D
VPN VPN 개요 VPN 특징 VPN 기술 및 구현방식 VPN 프로토콜
VPN 개요 VPN (Virtual Private Network) 이란? 공중망을 이용하여 사설망처럼 직접 운용 관리할 수 있는 것으로 컴퓨터 시스템과 프로토콜들의 집합으로 구성 VPN 설치 전 VPN 설치 후
VPN 개요 VPN 작업환경 변화 이동성 요구 네트워크 확장 요구 증가 강력한 보안 요구 인터넷 기술 발달 이동성과 확장성 제공 비용 감소 효과 인터넷 기술과 부합하는 새로운 기술 VPN
VPN 특징 (1/2) 특징 Internet의 개방적이고 분산된 하부구조 사용 장점 비용 절감 ISP에 POP(Points of Presence)으로 연결 전송되는 데이터에 Encryption, Authentication 등 보안기능 제공 장점 비용 절감 유연성 있는 운영과 관리의 수월성 확장성과 이동성 제공 안전성 보장 편리한 네트워크 구성 환경 제공
VPN 특징 (2/2) Tunneling The “Virtual” in VPN 사용자의 VPN 응용 프로그램으로부터 ISP와 Internet infra를 숨기는 것 다양한 Security Services The “Private” in VPN VPN 상의 두 사용자간에 있는 tunnel이 private link인 것처럼 보이게 하는 것
VPN 기술 Key 관리 기술 VPN 관리 기술 터널링 기술 VPN 서비스 위해 필요한 보안 사항들을 협상 키관리 프레임워크 ISAKMP/OAKLEY를 이용 VPN 관리 기술 효과적이고 안정적으로 VPN 서비스 지원하는 기술 QoS 보장 지원 터널링 기술 End-to-End 전용 회선 연결과 같은 효과 두 종단 사이에 가상적인 터널 형성하는 기술 암호화, 인증 기능 제공 각 네트워크 계층별로 터널링 프로토콜 존재
VPN 구현 방식 Remote Access(Dial-up) VPN 본사와 원격지 허가 받은 사용자간의 네트워킹 Client-to-LAN 방식 사용 사용이나 관리상의 용이성이 중요한 부분 Intranet VPN 본사와 지사간의 네트워킹 LAN-to-LAN 방식 사용 Extranet VPN 본사와 사업 파트너 또는 고객 등과의 네트워킹 보안 정책이 다른 subnet들을 상호 연결 지사는 라우터를 사용해 전용선을 접속, 협력업체을 위해 RAS와 게이트웨이를 각각 설치해야 하는 복잡한 형태를 가짐
VPN 프로토콜 역할 Packet Encapsulation(패킷 캡술화) Tunnel 생성 및 관리 Cryptographic Key 관리 종류 Layer 2 프로토콜 Client-to-LAN VPN을 관리하는 데 주로 사용 예) PPTP, L2F, L2TP Layer 3 프로토콜 LAN-to-LAN VPN을 관리하는 데 주로 사용 예) IPSec Session Layer 프로토콜 응용 계층에서 필터링을 지원하는 데 주로 사용 예) SOCKS V5
VPN 프로토콜 인터넷 LAN-to-LAN VPN Remote Access VPN 기업 LAN 1 기업 LAN 2 VPN 장비 Mobile Worker
Layer2 Tunneling 방식 Voluntary Tunneling(자발적 터널링) Client-initiated Tunneling Client가 직접 Tunnel 서버와 Tunnel 형성 end-to-end Tunnel 클라이언트에 PPTP/L2TP 가 탑재되어 있어야 함 동시에 TCP/IP를 이용하여 다른 Internet 호스트에 접근 가능 Compulsory Tunneling(강제적 터널링) ISP-initiated Tunneling ISP Remote Access Switch가 Client 대신 Tunnel 형성 ISP가 VPN 제공하는 경우 주로 사용 말단 사용자에게 투명성 제공 초기연결 링크가 Tunnel 밖에서 일어나므로 attack 위험 End user computer가 tunnel의 termination point 위치를 자신의 computer에 둘지 PPP만 지원하는 ISP의 remote access server(RAS)에 둘지 결정한다. ISP의 access sever가 PPTP를 제공하는 경우 end user가 PPTP client를 가지고 있다면 ISP만으로 tunnel 생성 가능하다. Voluntary Tunneling 특정 사용자 요구에 의해서 생성 말단 사용자는 동시에 Internet 통해 안전한 tunnel을 열 수 있고 tunneling 없는 기본 TCP/IP 프로토콜로 다른 Internet 호스트에 접근 가능 Internet을 통해 보내지는 intranet traffic에 privacy와 data integrity를 제공하기 위해 사용 Compulsory Tunneling 사용자의 행동과 상관없이 자동으로 생성 사용자 동의 없이 tunnel이 생성되므로 말단 사용자에게 투명성 제공할 수 있다.(may be transparent) Tunnel의end point가 RAS에 위치, 모든 traffic이 RAS에 의해 forward된다. 장점 Intranet 밖에 있는 다른 서비스에 접근하려면 네트워크 관리자의 통제 받는다. (better access control) endpoint가 미리 결정되어 있고 사용자가 Internet의 다른 부분에 접근할 수 없으므로 voluntary tunnel보다 나은 access control 제공 PPTP는 하나의 single tunnel에 multiple connection이 가능하게 해 준다. multiple session 전송에 필요한 네트워크 bandwidth를 감소(voluntary tunneling에 비해) 단점 초기연결 링크(end user의 컴퓨터와 RAS의 사이)가 tunnel 밖이므로 attack 위험이 증가한다. 2가지 분류 Static; Realm-based와 automatic으로 다시 나누어짐, Dynamic
Layer2 Tunneling 방식 인터넷 Voluntary Tunneling client1 Server client2 RAS server Compulsory Tunneling RAS Remote Access Server
PPTP (Point-to-Point Tunneling Protocol) 2 계층 프로토콜 Microsoft에서 제안 원격 사용자 인증 위해 PPP(Point-to-Point Protocol) 사용 원격 사용자와 Private Network 사이에 Secure Connectivity 제공 PPP 패킷 Encapsulation을 위해 GRE(Generic Routing Encapsulation) 사용 다양한 프로토콜 지원 (IP, IPX,NetBEUI,…) PPTP가 control과 data channel을 TCP에서 보내지는 control stream으로 나누어 넣고 IP에서는 GRE를 이용해서 data stream을 IP에 넣어 보낸다. 즉, IP datagram은 수정된 GRE version을 사용해서 생성한다. 수정된 GRE는 host’s Call ID에 대한 정보(접근 권한을 제어하기 위해서), Ack 능력(주어진 session에서 data packet이 전송되는 rate를 모니터하기 위함)이 추가되었다. GRE header는 IP datagram안에 PPP packet을 encapsulate 하는데 사용 Media IP GRE PPP PPP payload
L2TP (Layer 2 Tunneling Protocol) 2 계층 프로토콜 PPTP(Microsoft) + L2F(Cisco) 하나의 Tunnel안에 여러 Session 가능 같은 site의 각 Tunnel마다 QoS 매개변수 지정 가능 IPSec의 기능을 이용한 강력한 보안 제공 같은 스트림 이용해서 제어 메시지 & 데이터 메시지 동시 전달 다양한 네트워크 형태(IP, ATM, X.25, etc)에서 사용 가능
PPTP & L2TP 구조 PPP PPTP PPP L2TP DOI PPTP 구조 L2TP 구조 ESP Protocol AH Protocol Encryption algorithm Authentication algorithm Encryption algorithm Authentication algorithm DOI Generic Routing Encapsulation Key Management PPTP 구조 L2TP 구조