CyberRanger

OSI 7 Layers 본문

정보보안기사/네트워크 보안

OSI 7 Layers

CyberRanger 2024. 8. 20. 22:25

OSI 7 Layers: 세계적인 네트워크 통신을 위해 통신 규약을 7단계로 정의해 놓은 표준 모델.

 7. 응용 계층 (Application Layer)
 6. 표현 계층 (Presentation Layer)
 5. 세션 계층 (Session Layer)
 4. 전송 계층 (Tranport Layer)
 3. 네트워크 계층 (Network Layer)
 2. 데이터 링크 계층 (Data Link Layer)
 1. 물리 계층 (Pysical Layer)

 

네트워크, 보안에서 많이 다루는 부분은 2계층 ~ 4계층, 그리고 7계층이다.

컴퓨터에서 컴퓨터로 통신을 한다고 하면, 7계층 -> 1계층 순으로 데이터에 계층별 헤더가 붙는 캡슐화가 이루어지고 상대방 컴퓨터에서는 1계층 -> 7계층 순으로 헤더가 떨어지는 역캡슐화가 이루어진다.

 

 


1. 물리 계층 (Pysical Layer)

물리 계층은 전기적 신호(비트)가 지나가는 계층이다. 약해진 신호를 증폭시켜주고 전기적 신호가 손실되지 않게 해준다.

1계층의 장비는 리피터와 더미 허브가 있다.

더미 허브는 연결된 모든 호스트에게(Broadcast 방식) 전기 신호를 전달한다.

 

 

 


2. 데이터 링크 계층 (Data Link Layer)

LAN(Local Area Network, 근거리 네트워크) 통신에서 사용되는 프로토콜이다. MAC주소를 이용하여 스위치 내부에 있는(같은 네트워크 안에 있는) 호스트와 통신한다.

2계층의 데이터 전송 단위는 프레임이라고 한다.

 

MAC주소란 네트워크 인터페이스 카드(Network Interface Card, NIC)에 부여된 고유 주소이며 다른 MAC주소와 중복되지 않는다. 물리적 주소라고도 하며 변경할 수 없다.

* MAC주소를 처리하는 것은 운영체제에서 이뤄지므로 논리적으로 MAC주소를 변경할 수는 있지만 전자 칩에 기록된 물리적 주소를 바꾸는 것은 불가능하다.


MAC주소는 다음과 같이 생겼다.

D1:F4:85:80:9A:30

16진수 2개씩 6개의 필드로 구성된다.

4비트 x 2개 x 6개 = 48비트(6바이트)

 

데이터 링크 계층에서 가장 많이 사용하는 이더넷 프로토콜 데이터 프레임 구조는 다음과 같다.

Preamble Destination
MAC Address
Source
MAC Address
Type Data CRC

이 중 이더넷 헤더는 목적지 MAC주소, 출발지 MAC주소, Type이다.

매우 단순한 구조로 인증이나 신뢰성을 위한 부분은 없다.

 

 

2.1. LAN 통신

2계층은 LAN 통신을 위한 계층이다.

LAN은 하나의 스위치 안에 구성된 네트워크이다. 하나의 사무실, 또는 건물 단위이다.

스위치에 연결된 PC

 

LAN 통신에서 호스트를 유일하게 식별하기 위해 MAC주소가 필요하다. (IP주소는 필요 없다.)

보내려고 하는 상대의 MAC주소와 자신의 MAC주소를 헤더에 넣고 통신이 진행된다.

 

통신은 전기 신호로 전달되기 때문에 특정 상대방의 회선으로만 신호를 보낼 수는 없고, 특정 상대방에게 보내는 신호도 모든 회선에 가게 된다.

각각의 PC는 데이터의 목적지 MAC주소가 자신의 MAC주소가 아니면 데이터를 무시하고 목적지가 자신의 MAC주소인 데이터는 받아들인다.

여기서 목적지가 자신의 MAC주소가 아닌 데이터도 모두 받아들이게 되면 남의 통신을 엿볼 수 있고(이를 스니핑이라고 한다), 모든 데이터를 받아들이는 설정을 Promiscuous 모드(무차별 모드)라고 한다.

 

 

2.2. 더미 허브와 스위칭 허브

더미 허브는 1계층 장비,

스위칭 허브(이하 스위치로 부름)는 2계층 장비이다.

 

더미 허브는 전기 신호를 연결된 모든 호스트에 전달한다.

그래서 트래픽이 많이 발생하고 충돌의 가능성도 높다.

그리고 사용하는 PC가 많은수록 성능은 1/N이 된다.

 

스위치는 스위치 내부에 호스트별 MAC주소를 저장해 놓고, 데이터의 목적지 MAC주소에 해당하는 호스트에게만 데이터를 전송한다.

이와 같이 MAC 주소를 임시로 저장해놓는 것이 ARP 캐시 테이블이다.

그래서 더미 허브에 비해 트래픽 양과 충돌이 적고 성능 저하가 없다.

 

 

 


3. 네트워크 계층 (Network Layer)

네트워크 계층은 라우팅(경로 탐색)을 수행하는 계층이다.

또한 IP 주소를 사용하며 이는 호스트에 대한 논리적인 주소이다.

MAC주소는 호스트의 물리적 주소이고, IP주소는 호스트의 논리적 주소이다.

IP 주소는 이름, MAC 주소는 주민등록번호라고 생각하면 된다.

 

3계층에서 사용하는 장비는 대표적으로 라우터가 있다. 라우터는 네트워크상에서 효율적인 통신을 위해 트래픽이 몰리지 않는 최단 거리의 경로를 찾아주는 역할을 한다.

 

 

3.1. 호스트에 대한 논리적, 물리적 주소가 있는 이유

LAN 내부에 새로운 PC 연결

 

위와 같이 LAN에 새로운 PC가 꽂혔을 때, 기존의 PC들은 새로운 PC가 꽂혔는지, 나갔는지 알 수 없고, 새로 꽂힌 PC의 MAC주소를 알 수가 없다. 그래서 먼저 IP를 가지고 상대방 호스트를 찾아 MAC주소를 알아내어 통신을 하는 것이다.

이때 IP 주소를 가지고 MAC주소를 찾는 프로토콜이 ARP 프로토콜이다.

 

 

3.2. ARP 프로토콜

ARP 프로토콜에서는 ARP Request / Reply로 IP 주소를 가지고 MAC주소를 질의 / 응답한다.

 

(1) ARP Request 시 목적지 MAC주소를 FF:FF:FF:FF:FF:FF(Broadcast 주소)로 전송한다.

* Broadcast: 데이터를 모든 호스트에게 전송. 1:N

(1) ARP Request - 1

 

(2) 스위치는 모든 호스트에게 ARP Request를 Broadcast 한다.

(2) ARP Request - 2

 

(3) 목적지가 자신의 IP인 호스트는 자신의 MAC주소를 알려준다. (ARP Reply)

(3) APR Reply

 

(4) ARP Reply를 통해 MAC주소를 전달받으면 호스트는 효율적인 통신을 위해 ARP Cache Table에 IP와 MAC주소를 저장한다.

그러면 더 이상 192.168.0.5에 대한 ARP Request를 Broadcast를 할 필요가 없다.

 

 

3.3. IP 주소와 서브넷

IP주소는 아래와 같이 생겼다.

192.168.0.1

8비트씩 4개의 필드로 구성되어있다. 8bit (1byte) x 4 = 32bit (4byte)

이를 이진수로 나타내면 다음과 같다.

11000000 10101000 00000000 00000001

 

 

3.3.1. 공인 IP, 사설 IP

공인 IP는 세계적인 인터넷과 통신하도록 사용되는 외부 IP이며 다른 IP와 중복될 수 없다.

인터넷 업체나 국가에서 관리하며 인터넷 활동이 모니터링 된다.

 

정보기술의 발전으로 인터넷에 연결할 수 있는 기기의 수가 많아져 할당할 수 있는 공인IP의 개수가 부족하게 되었다.

따라서 하나의 공인 IP에 여러 개의 사설 IP를 만들어 사용하며 이 문제를 해결하였다.

 

사설 IP는 컴퓨터, 스마트폰 등 내부 네트워크에 연결된 내부 IP 주소이다.

사설 IP는 같은 네트워크 상에서만 중복되지 않으면 된다.

 

 

3.3.2. 서브넷 (Subnet)

서브넷은 공인 IP와 사설 IP를 구분하는 역할을 한다.

IP 주소의 표시를 보면

192.168.0.1/24와 같은 표시가 있는데, /24가 서브넷을 의미한다.

 

24의 의미는 1이 24개, 즉

255.255.255.0

이진수로 나타내면 다음과 같이 1이 24개이다.

11111111 11111111 11111111 00000000
11000000 10101000 00000000 00000001

192.168.0 까지는 공인IP 영역, 마지막 1이 사설 IP의 영역이다.

 

주소의 앞부분이 192.168.0이면 같은 네트워크에 있고,

마지막 자리의 0~255까지의 사설 IP를 사용할 수 있다는 의미이다.

 

 

3.4. ICMP (Internet Control Message Protocol)

ICMP는 네트워크 문제를 진단하는 3계층 프로토콜이다.

ping을 보내는 것이 ICMP 프로토콜로 보내는 것.

ICMP 패킷 구조

ICMP 패킷 구조

 

Type과 Code를 이용하여 메시지를 보낸다.

 

 


4. 전송 계층 (Transport Layer)

전송계층은 신뢰성 있는 통신을 제공한다.

TCP/UDP 프로토콜이 사용되며, TCP는 신뢰성(패킷의 손실 없는) 있는 통신, UDP는 빠른 통신을 지원한다.

 

 

4.1. TCP (Transmission Control Protocol)

TCP는 연결 지향성 프로토콜로 흐름 제어, 신뢰성 있는 통신을 지원한다.

연결 지향성이라는 말은 실제로 연결되지는 않지만 연결한 듯한 상태이기 때문이다.

(전화 통화가 연결통신이다.)

품질에 신뢰성이 필요한 통신에 사용된다. (파일 전송, 메일 전송 등)

 

3-Way-Handshake

TCP 통신은 3-way Handshake를 통해 세션을 연결한 후 통신을 시작한다.

SYN

SYN, ACK

ACK로 진행된다.

각각의 SYN, ACK에는 Sequence Number가 부여되어 어떤 요청에 대한 SYN, ACK인지 구별할 수 있다.

 

4-Way-Handshake

4-way Handshake로 연결을 종료한다.

4-Way Handshake

active close: 연결 종료 요청

passive close: 연결 종료 요청을 받음

FIN_WAIT_1: 첫 번째 FIN을 보내고 ACK를 기다리는 상태

CLOSE_WAIT: 연결 종료를 기다리는 상태

FIN_WAIT_1: 첫 번째 FIN에 대한 ACK를 받고, 두 번째 FIN을 기다리는 상태.

TIME_WAIT: 연결 종료 후에도 혹시나 아직 도착하지 않은 패킷을 기다리는 상태

 

TCP 패킷 헤더 구조

Source Port Number Destination Port Number
Sequence Number
Acknowledgement Number
Offset Reserved U
R
G
A
C
K
P
S
H
R
S
T
S
Y
N
F
I
N
Window Size
Checksum Urgent Pointer
Options and Padding

 

 

4.2. UDP (User Datagram Protocol)

UDP는 정확도보다는 빠른 속도가 중요한 통신에 사용된다.

실시간 동영상 재생(1 프레임 정도 손실되도 문제 없다.)

 

UDP 패킷 헤더 구조

Source Port Number Destination Port Number
Packet Length Checksum

 

 

4.3. 포트번호

4계층에서는 포트번호를 사용하여 패킷이 어느 프로세스로 가야 하는지 알려준다.

예를 들어 크롬 브라우저에서 보낸 패킷은 크롬 브라우저 프로세스로 가야 하고, 카카오톡 패킷은 카카오톡 프로세스로 가야 한다.

따라서 포트번호는 프로세스 식별자로써의 역할을 한다.

그래서 포트번호는 중복될 수 없으며, TCP는 TCP끼리만, UDP는 UDP끼리만 중복이 없으면 된다.

TCP, UDP에서 각각 똑같은 번호를 사용하는 것은 문제 없음.

 

포트번호는 0번 - 65535번까지 있으며, 범위에 따라 3가지 종류로 나뉜다.

 

1) Well Known Port (0 - 1023)

잘 알려진 포트로 특정 서비스에 할당된 고정 포트.

IANA(Internet Assigned Numbers Authority)에서 제공한다.

전체 목록은 RFC 1700에 있다.

 

2) Registered Port (1024 - 49151)

개발자가 자신의 애플리케이션에 특정 포트를 지정하기 위해 등록한다.

MySQL: 3306

Oracle DB: 1521

 

3) Dynamic Port (49152 - 65535)

애플리케이션에 의해 동적으로 할당된다.

예를 들어 웹 사이트를 방문할 때 웹 브라우저는 이 범위 내에서 해당 세션에 포트 번호를 할당한다.

 

포트번호 조회 명령어: netstat -ano

'정보보안기사 > 네트워크 보안' 카테고리의 다른 글

[정보보안기사] DDoS 종류와 대응 방법  (0) 2024.08.09
방화벽, IDS, IPS  (0) 2024.08.06
NetBIOS  (0) 2024.08.06
Well Known Port  (0) 2024.08.06