본문으로 바로가기

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

}