일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- Track URL
- 해킹 실습
- 해킹
- 모의 해킹 실습
- Fishing Site
- 랜섬웨어 #독스웨어 #멀 웨어 #화이트 해커 #모의 해킹
- 공유기 모의 해킹
- 모의 해킹
- 피싱사이트
- 휴대폰 해킹
- 알기사
- weeman
- 악용 금지
- 정보보안
- 모의 해킹 #화이트 해커 #Sql Injection
- 이론
- 화이트 해커
- 모의 해킹 #모의 해킹 공부 #화이트 해커 #Web Froxy Tool #Burp Suite
- 스테가노그래피
- 로그인 #식별/인증
- 로직
- 로그인 사이트
- 신신액액
- 사이버보안
- 해킹 공부
- 전송계층
- 공유기 해킹
- 위치 정보 해킹
- 화이트해커
- 정보보안기사
- Today
- Total
화이트 해커 영진
OSI 7계층의 전송계층 (Feat UDP,TCP) 본문
오늘은 알기사(정보보안기사) 공부를 하던 중에 OSI 7계층 (흔히들 알고 있는 물데네전세표응) 의 "전송 계층"에 흥미가 생겨 블로그를 쓰며 구체적으로 알아보고자 한다.
먼저 OSI 7계층을 모르는 분들을 위하여 간단히 소개하자면,
OSI 7계층은 1970년 후반, ISO기구에서 서로 다른 특성을 갖는 컴퓨터 혹은 정보처리기기끼리 상호연결을 할 수있게 만든 모델이며 계층 구조이다. 하드웨어나 소프트웨어 기반의 논리적인 변화에 대한 요구 없이 서로 다른 시스템 간의 통신을 원활하게 하는데 그 목적이 있다. 이 글에서는 OSI 7계층 중 4계층에 해당하는 "전송 계층"에 대하여 설명하겠다.
전송 계층
OSI 7계층을 상위 계층과 하위 계층으로 나누자면, 이 전송 계층을 기준으로 나뉘어 진다고 흔히들 말한다.
전송 계층의 기준으로 상위 계층은 사용자의 서비스, 하위 계층은 네트워크 서비스 관련으로 분류하는 사람들도 있다.
전송 계층의 가장 큰 특징은 바로 두 사용자(송신자와 수신자) 사이에서 데이터 전송을 위한 종단간(혹은 단대단)제어를 담당하는 것이다. 네트워크 계층의 프로토콜이 IPv4와 IPv6가 있다면, 전송계층의 프로토콜로는 UDP와 TCP가 있으며, 단위는 세그먼트와 데이터그램이다.
UDP
UDP(User Datagram Protocol)이란 흐름 및 오류 제어를 하지 않는 간단한 요청-응답 통신을 요구하는 프로세스 TO 프로세스 사이에서 사용되는 전송 계층의 프로토콜이다. UDP 프로토콜의 가장 큰 특징은, TCP 프로토톨과는 달리 패킷의 순서번호를 사용하지 않으며, 비연결형이고, 신뢰성이 없다는 것이다. 여기까지만 들으면 의문이 하나 생길 것이다.
' TCP보다 좋은 점도 없는데, 왜 전송 계층은 UDP와 TCP를 같이 사용하는 건가요? '
사실, TCP에 비해 많은 부분이 단점인 UDP에도 UDP만의 장점이 있다.
바로 TCP보다 더 적은 자원을 사용하고 TCP보다 빠르다는 것이다. 그리고 컴퓨터 사회에서는, 항상 신뢰성이 있는 전송만 요구하지는 않는다. 예를 들어, 스트리밍 비디오(실시간 상호작용 응용)와 브로드캐스트 등 신뢰성이 있는 전송이 불필요할 상황엔 UDP를 사용한다.
UDP는 최소한의 오버헤드를 가진 매우 간단한 프로토콜로서, 고정된 크기의 8바이트 헤더를 가지고 있다.
또한 이 8바이트 헤더는 4가지의 필드로 나누어지는데, 출발지 포트번호,목적지 포트번호, 총 길이,검사합(체크섬)이다.
이 공간들은 각각 2바이트씩 차지하여 총 헤더의 크기는 2X4=8 바이트가 되는 것이다(고정).
UDP는 애플리케이션 데이터를 단순히 메시지 포맷으로 포장(Wrap)을 하여 IP에게 전달해준다는 점에서 래퍼 프로토콜이라고 부르기도 한다.
TCP
TCP 또한 UDP처럼 프로세스 TO 프로세스 사이에서 사용되는 전송 계층의 프로토콜이다. 하지만 UDP와는 많은 차이점들이 있다. 다음은 UDP와 비교하였을 때, TCP만이 가지는 특징들이다.
1. 신뢰성
2. 연결지향적
3. 패킷 내에 순서번호를 사용
4. 혼잡 제어
5. UDP에 비해 상당한 양의 자원 사용,UDP보다 전송 속도가 더 느림
TCP는 신뢰성 있는 전송이 필요할 때 사용된다는 것이 가장 큰 특징이다.
TCP에서는 패킷을 세그먼트(Segment)라고 부르는데, TCP 세그먼트는 TCP 헤더+응용프로그램으로 부터 온 데이터 이다. TCP 헤더는 UDP 헤더보다 더 큰 20~60바이트의 크기를 가지며, 이는 선택항목에 유무에 따라 크기가 달라진다.
TCP 세그먼트에서 중요한 부분 중 하나는 바로 6가지의 플래그 비트(혹은 제어 비트라고도 부른다)이다.
6가지의 플래그 비트가 중요한 이유는 바로 TCP 연결-지향 전송에서 TCP 연결 및 데이터 전송, 연결종료의 단계에서 사용되기 때문이다.
TCP 세그먼트의 6가지 플래그 비트
1. URG (긴급)
2. ACK (승인)
3. PSH (밀어넣기)
4. RST (초기화)
5. SYN (동기화)
6. FIN (종료)
TCP 연결-지향 전송
1. 연결 설정
세 방향 핸드셰이크라고도 불리는 세 단계를 걸쳐서 진행된다.
(1-1) 클라이언트는 순서 번호의 동기화를 위해 SYN 플래그만 설정되어 있는 첫 번째 세그먼트를 서버에 전송한다.
(1-2) 서버는 두번째 세그먼트인 SYN+ACK 세그먼트를 클라이언트에게 전송한다.
(1-3) 클라이언트가 두 번째 세그먼트에 대한 확인응답으로 ACK 세그먼트를 서버에 보낸다.
이 연결 설정 과정에서 우리가 흔히 알고 있는 서비스 거부 공격(Denial Of Service)이 일어날 수 있다. (Dos 공격)
2. 데이터 전송
연결 설정이 완료되었으면, 서버와 클라이언트는 양방향으로 데이터 전송을 한다.
클라이언트에 의해 보낸진 데이터 세그먼트에는 PSH 플래그가 설정되어있다.하지만 서버로부터 온 세그먼트에는 PSH 플래그를 설정하지 않는다. 즉, 클라이언트는 서버로 PSH+ACK 세그먼트를 전송, 서버는 ACK 세그먼트(확인 응답)를 클라이언트로 전송한다.
3. 연결 종료
연결 종료는 서버와 클라이언트 둘 중 어느 한쪽에서 연결을 종료할 수 있다.
연결 종료도 연결 설정과 마찬 가지로 세 방향 핸드셰이크로 진행이 되는게 흔하며, 절반-종료도 가능하지만 절반-종료에 대해서는 이 게시글에서는 다루지 않겠다. 다음은 세 방향 핸드셰이크 연결 종료의 순서이다.
(3-1) 정상적인 상황(오류나 공격을 받지 않은 상황)에서 클라이언트 TCP는 FIN 플래그가 설정된 첫 번째 FIN 세그먼트를 서버에 전송한다.
(3-2) 서버 TCP는 클라이언트로 부터 온 FIN 세그먼트를 확인하며 동시에 FIN+ACK 세그먼트를 클라이언트에 송신한다.
(3-3) 클라이언트 TCP는 ACK 세그먼트를 서버에 전송한다.
글을 마치며..
여담 : 후배 친구들이 정보보안기사 공부를 하면서 신신액액이라고 부르던게 알고 보니, TCP 연결 설정 과정 SYN SYN+ACK ACK을 뜻하는 거였다.
글쓴이는 플래그 비트도 줄임말이니 알파벳 하나씩 발음하면서 에스-와이-엔 이렇게 외우고 있었는데, 신신액액이라고 들은 이후로 훨씬 더 잘 외워졌다.(발음도 재밌다 ㅋㅋ)
'해킹 공부' 카테고리의 다른 글
암호화와 스테가노그래피 이론 (2) | 2024.02.24 |
---|---|
랜섬웨어(Ransomware)이론(1) (0) | 2024.01.17 |
로그인 인증 우회 (feat 웹 해킹 기법 Sql Injection) (0) | 2024.01.16 |
Burp Suite (Web Froxy Tool) (0) | 2024.01.16 |