반응형
** 전송계층 프로토콜
- End To End Reliable Delivery
- Process To Process Communication
- port : 16bit(2byte), 논리적 주소
TCP 프로토콜
- 연결지향 프로토콜(Connection Oriented Protocol)
- 물리적으로 전용회선이 연결되어 있는 것처럼 가상의 연결통로(Software)를 설정해서 통시하는 방식
- 가상회선방식 : 물리적으로 전용회선이 연결되어 있는 것처럼 논리적으로 동작하는 방식
- 신뢰할 수 있는 프로토콜(Reliable Protocol)
- 흐름제어(Flow Control)
- 상대방이 받을 수 있을 만큼만 데이터를 효율적으로 전송
- 슬라이딩 윈도우(Sliding Window) 제어방식 사용. 상대방이 수신할 수 있는 크기(Window Size)만큼의 데이터를 연속해서 전달하는 방식
- Winodw 크기 => 수신자가 수신 가능한 버퍼의 여유공간
- 에러제어(Error Control)
- 오류나 손실 없이 전송됨을 보장(손실시 재전송)
- 혼잡제어(Congestion Control)
- 혼잡정도에 따라 송신자가 데이터 전송량을 제어
- TCP 프로토콜 구조
- Control Flags(6bit) => UAPRSF ** 중요 **
- URG(Urgent) : 긴급데이터 설정
- ACK(Acknowledgement) : 수신 확인 응답(ACK) 설정
- PSH(Push) : 송수신 버퍼에 있는 데이터를 즉시 처리
- RST(Reset) : 연결 중단(강제종료)
- SYN(Synchronization) : 연결설정
- FIN(Finish) : 연결종료(정상종료)
- Window Size(Receiver Window)
- TCP 분할(Segmentation)과 재조합(Reassembly)
- IP => Fragmentation(Network Layer) MTU 크기
- TCP => Segmentation(Transport Layer)
- MSS(Maximum Segment Size)
- MSS는 Frame의 MTU에 영향을 받는다. MTU 크기 - IP헤더(20) - TCP헤더(20) 을 빼면 MSS 크기
- Application 계층에서 전달된 데이터는 TCP 계층에서 MSS 크기에 따라 분할이 발생한다. 분할된 세그먼트는 수신측에서 재조합되어 Application 계층으로 전달된다.
- TCP 연결 설정 과정(3-way Handshake)
- Client(SYN_SENT) => Server(SYN_RCVD) => ESTABLISHED
3-Way HandShake 과정
- 데이터 송수신 과정
- 재전송 매커니즘
- 모든 Segment 전송시마다 재전송 타이머(RTO)가 동작
- Segment 전송 후 ACK 를 받지 않아 일정시간이 지나면 Segment 재전송
- 빠른 재전송(Fast Retransmission)
- RTO 발생전 재전송
- Timeout이 발생하지 않았는데 duplicated ACK가 3번 발생하면 재전송
- TCP 연결 종료과정(4-way HandShake)
- FIN_WAIT_1 : 첫번째 FIN 메시지에 대한 ACK를 대기하는 상태
- FIN_WAIT_2 : 첫번째 FIN 메시지에 대한 ACK 수신 후 두 번째 FIN 메시지를 수신할 때까지 대기하는 상태
- TIME_WAIT : 마지막 ACK 전송후 2MSL 동안 대기하는 상태 (Maximum Segment Life Time)
- CLOSE_WAIT : 첫번째 FIN 메시지에 대한 ACK 응답 후 두번째 FIN 메시지를 전송할 때까지 대기하는 상태
- LAST_ACK : 두 번째 FIN 메시지 전송 후 마지막 ACK를 대기하는 상태
- CLOSE : 종료된 상태
4-Way HandSahke 과정
연결 요청 거부(강제종료)
추후
연결 중단(abort)
추후
- TCP 세션 하이재킹(Session Hijacking)
- 케빈 미트닉이 사용한 공격기법(IP Spoofing, TCP 하이재킹을 만든 유명한 해커)
- TCP는 다음 식별자를 통해 상호간에 인식하게 된다
- 출발지 IP/PORT
- 목적지 IP/PORT
- Sequence Number / Acknowledgement Number
- 하이재킹은 위와 같은 세션 식별정보를 공격자가 위조하여 세션을 탈취하는 공격
(출처 : https://blog.naver.com/bitnang/70180420086)
- 공격자가 서버와 TCP 연결이 된 후, 클라이언트가 서버와 통신을 하게 되면 (위 그림 6번) ACK Storm이 발생할 수 있다.
- ACK STORM
- Seq/Ack 가 일치하지 않아서 서로 계속 메시지를 주고 받는 상태
- 클라이언트에서 정상적인 패킷을 서버로 보내지만, 이미 공격자와 통신을 한 상태이므로 시퀀스 넘버가 일치하지 않음
반응형
'자격증 노트 > 정보보안기사' 카테고리의 다른 글
[정보보안기사] 포트스캐닝(Port Scanning) (0) | 2018.05.19 |
---|---|
[정보보안기사] UDP 프로토콜, 네트워크 명령어 (0) | 2018.05.19 |
[정보보안기사] ICMP 프로토콜(Internet Control Message Protocol) (0) | 2018.05.10 |
[정보보안기사] IP프로토콜 (0) | 2018.05.09 |
[정보보안기사] ARP/RARP 프로토콜 (0) | 2018.05.09 |