post by WHITEHATS
웹기반 정보보안 엔지니어 과정 160226 18번째 강의 - 1
2-4. (Layer 4) Transport
2-4 Layer 4. Transport
•역할
-Port주소 지정
-데이터 전달 방식 결정
--신뢰성, 속도 등
-단편화
•Protocol
-UDP, TCP …
•장비
-L4 Switch
2-4 Port Address
•Port Address
-시스템 내부의 프로세스 또는 프로그램을 식별하기 위해 사용하는 식별 값
-시스템의 내부 네트워크에서 데이터를 처리할 프로세스를 위치를 식별
-프로그램 설계될 때 사용할 port주소가 지정 됨
-IANA에서 관리 함
•Port 주소 표현
-80 → 10진수 한 자리로 표기 함
-크기 : 2byte(16bit)
-Port 주소의 총 개수 → 2^16= 65536개(0번 ~ 65535번)
•Port 주소 구분
-사용 목적에 따라 3가지로 분류해서 사용 됨
-Well Known Service port Number(0~1023) → 잘 알려진 서비스 프로그램용으로 예약된 주소
-Registered Port(1024~49151) → Online용으로 개발된 프로그램의 네트워크 통신을 위해 할당하는 주소
-Dynamic Port(49152~65535) → 등록하지 않고 임의로 사용할 수 있는 주소
2-4 Port Address 사용
•Client 프로세스의 Port
-프로세스가 동작할 때 마다 임의의 port가 할당 됨 → dynamic port
•Server 프로세스의 Port
-개발 단계에서 미리 지정된 port를 사용하도록 정의 함
--잘 알려진 서비스용 서버 → well known Service port
--상업용으로 개발된 서버 → registered port
2-4 UDP (User Datagram Protocol)
•UDP의 특징
-데이터의 빠른 전달을 보장하기 위해 사용 됨
-빠른 속도 보장을 위해 대부분의 기능을 제한 함
--비 신뢰성
--비 연결 지향성
--최소화된 Header
-단편화 크기 → 512byte
--재 전송 시 빠른 처리를 위하여 작은 단위로 데이터를 생성 함
•UDP를 이용하는 Service 종류
-빠른 통신 속도가 필요한 서비스 → 실시간 통신, 음성 서비스에 많이 사용 됨
-정보 해석 및 전달 서비스
--DNS → UDP 53
--DHCP → UDP 67(S), UDP 68(C) <-(위에서 클라이언트 포트는 random포트를 쓴다고 했는데.. 몇가지 포트들은 Well Known 포트를 쓴다. )
--SNMP → UDP 161, UDP 162(trap) <- 관제에서 많이 쓴다고 한다... (관제 프로그램이 다수의 네트워크 장비에게 요청을 받았을때, 그 장비들의 상황을 관제 프로그램에게 보내준다. trap은 긴급 메세지 전달!!! 관제 클라이언트에 162포트가 있다.)
-빠른 파일 전송
--TFTP → UDP 69
암기!!!!!!!!~~
2-4 UDP (User Datagram Protocol)
•UDP Header
-Header의 크기 → (고정) 8 byte
•source Port Address(16bit) -> 송신하는 것이 Client면 Random Port 송신하는것이 Server면 Well Known Service Port
-출발지 port 주소 → dynamic port
•Destination Port Address(16bit)
-목적지 port주소 → Well Known Service port
•Length(16bit)
-Header + payload 의 크기
•Checksum(16bit)
-Datagram 전체와 3계층 정보 중 일부분에 대한 오류검사 값
-shadow header를 구성하여 오류 검출을 수행 함
2-4 TCP (Transmission Control Protocol)
•TCP의 특징
-데이터 전달의 신뢰성을 최대한 보장
-양 방향 통신(전 이중 통신)
--데이터의 송/수신을 동시에 함
-연결 지향
--데이터를 전달할 논리적인 연결을 먼저 구성 → 3way Handshake
--연결 설정 → 데이터 전송 → 연결 종료
-신뢰성 보장
--순차적으로 데이터를 전송 함
--확인응답 및 재전송
-흐름제어
--데이터 전달에 지연 현상이 발생했을 때 데이터의 양을 조절 → Sliding Window
Window (보낼수 있는 data의 양)
•TCP를 이용하는 Service 종류
-정확한 데이터 전달이 필요한 대부분의 서비스
-대용량 파일 전송 : FTP → TCP 20(data), TCP 21(Control)
-원격 접속 서비스 : SSH → TCP 22, Telnet → TCP 23
-Mail 서비스 : SMTP → TCP 25(송신), POP3 → TCP 110(수신)
-WEB 서비스 : HTTP → TCP 80
-보안 통신 서비스 : SSL → TCP 443… -> (Https)
2-4 TCP (Transmission Control Protocol)
•TCP Header
-Header 크기 → Option필드의 크기에 따라 가변적 → 최소 20byte ~ 최대 60byte
-TCP의 동작을 지시하는 메시지를 생성하여 연결상태를 제어 함 → TCP Flags
-하나의 연결을 통해 한 단위의 Data(Application Data)를 전달
2-4 TCP (Transmission Control Protocol)
•source Port Address(16bit)
-출발지 port 주소 → dynamic port
•Destination Port Address(16bit)
-목적지 port주소 → Well Known Service port
•Sequence Number(4byte) (패턴을 찾아서 공격하는게 ip spooping)
-하나의 연결을 통해 전달되는 데이터의 순서번호
-ISN(Initial Sequence Number, 초기 순서 번호) → Random번호
--초기 순서번호 이후 → Segment의 시작 크기
•Acknowledgment Number(4byte)
-확인 응답 번호 → 다음에 전달 받기를 기대하는 Segment의 순서 번호
-연결 제어용 TCP 메시지의 크기는 1byte로 취급 함
•Offset(4bit) -> 3계층의 IHL 이랑 같다.
-가변적인 TCP Header의 크기 명시
-단위 → 4byte
•Reserved(4bit)
-예약 필드 -> 안쓴다. 기본값 Null
2-4 TCP (Transmission Control Protocol)
•TCP Flags(8bit)
-TCP의 논리적인 연결 제어 및 관리를 위해 사용 됨
-TCP 메시지의 종류를 명시 함
--연결설정, 종료, 초기화, 데이터 전송 제어, 흐름제어 등을 지시하는 메시지
-1bit씩 메시지 종류가 지정되어 있고 해당 bit값이 설정되면 지정된 기능을 수행
빨강색 -> 데이터 전송제어!
파란색 -> 데이터 흐름제어!(예전엔 없었다.)
Window (보낼수 있는 data의 Buffer양)
2-4 TCP (Transmission Control Protocol)
•Window(2byte)
-통신의 상대방에게 버퍼의 여유용량을 지속적으로 알림
-능동적인 흐름제어를 위해 사용 됨
•Checksum(2byte)
-Segment 전체와 3계층 정보 중 일부분에 대한 오류검사 값
-shadow header를 구성하여 오류 검출을 수행 함
•Urgent Pointer(2byte)
-긴급 데이터 마지막 segment의 순서번호
-긴급 데이터의 마지막 위치
2-4 TCP (Transmission Control Protocol)
•TCP Options(0~40byte)
-기본적으로 필수 옵션이 사용 됨
-type → 옵션의 종류
-length(byte) → 옵션 data의 크기
-option data → 옵션 값
일반적으로 MSS 사이즈는 1460으로 들어간다. TCP header size(20byte), IP header(20byte) 를 제외한 값이 총 1460..
2-4 TCP 확인 응답
•일반 확인 응답
-출발지에서 Segment가 전달되면 반드시 목적지에서 전달 받았음을 확인 함
-출발지는 목적지의 확인응답 TCP 메시지를 전달 받아야지만 다음 순서의 데이터를 전달 할 수 있음
-Segment : ACK → 1 : 1
•누적 확인 응답
-TCP 연결 설정을 통해 한번에 보낼 수 있는 segment의 양을 약속 함
-출발지 에서는 지정된 양에 해당하는 segment를 목적지의 확인응답이 없어도 계속 전달 함
-목적지는 지정된 양의 segment를 전달 받았을 때 하나의 확인응답을 전달 함
-Segment : ACK → N : 1
•선택적 확인 응답
-누적 확인응답의 문제점의 해결 → 중간에 손실된 segment가 발생하면 정상적으로 전달받은 segment까지 재전송이 해야 함
-누적 확인응답과 비슷하지만 확인응답을 할 때 재전송이 필요 없는 segment의 정보를 알림으로 불필요한 재전송을 방지 함
2-4 Shadow Header
•Layer 4의 오류검출
-오류검출 용 임시 Header를 이용 → Shadow Header(12byte)
-보안, 기능성이 떨어지는 IP의 오류검출을 함께 수행
-IP의 일정 정보를 포함한 헤더를 생성한 후 TCP Segment에 Encapsulation 후 오류검출 수행
--초기상태의 checksum = 0
-오류검출 값을 획득한 후 Shadow Header를 삭제 → 실 통신에는 Segment만 전달 됨
2-4 Shadow Header
•TCP/UDP Header Encapsulation
•Shadow Header Encapsulation
•오류검출 값 획득 후 Shadow Header 제거
2-4 TCP 연결 지향성
•3way Handshake
-TCP segment를 전달하기 전 목적지와의 통신상태를 확인
-정상 통신이 가능하면 논리적인 양방향 연결을 맺은 후 Segment를 전송
-하나의 연결이 단편화의 원본을 의미함
2-4 TCP 연결 상태 변화
•TCP 상태 천이 다이어그램
2-4 Layer 4 장비
•L4 Switch
-TCP/UDP port번호를 이용하여 트래픽을 서비스 별로 분류하여 포워딩하는 장비
-주요 기능 → Load Balancing
•Load Balancing
-부하 분산
-특정 시스템이 받게 되는 부하를 동일한 기능을 수행할 수 있는 여러 시스템으로 분산
-Server Farm에서 필수적으로 사용하는 기능
whitehat 하얀모자 정보보안
'▶ 웹기반 정보보안 과정 > Network' 카테고리의 다른 글
160229 19번째 강의 (0) | 2016.03.15 |
---|---|
160226 18번째 강의 - 2 (0) | 2016.02.27 |
160225 17번째 강의 (0) | 2016.02.27 |
160224 16번째 강의 (0) | 2016.02.25 |
160223 15번째 강의 (0) | 2016.02.24 |