원본 인터넷 프로토콜(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 동작과 필드 사용
- 헤더 계산과 위치
- IPv6
- ESP 헤더 필드는 확장 헤더로 IP 데이터그램에 삽입됨
- IPv6의 일반적인 확장헤더 연결 규칙을 그대로 따름
- 전송모드에서, 최종 목적지에 대한 옵션을 포함하는 목적지 옵션 헤더 전에, 그 밖의 모든 확장 헤더 뒤에
- 터널모드에서, 터널링되는 원본 데이터그램을 캡슐화하는 새 IP 데이터그램의 확장 헤더로 나타남
- IPv4
- ESP 헤더는 일반 IPv4 헤더 뒤에 위치
- 전송모드에서, 원본 데이터그램의 IP 헤더 뒤
- 터널모드에서, 원본 데이터그램을 캡슐화하는 새 IP 데이터그램의IP 헤더 뒤
- 트레일러 계산과 위치
- ESP 트레일러 필드가 암호화될 데이터 뒤에 붙으면 ESP는 암호화를 수행
- 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 인터넷 키 교환(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) 그룹
감사합니다 도움이 됬슴다 한번알아볼라했는데 잘정리되있내요
답글삭제