본문 바로가기

정보보안/Forensics

OSI 7계층/네트워크 프로토콜 정리

프로토콜이란

네트워크 프로토콜이란 통신에서의  데이터 서식 지정 및 처리를 위한 규칙 세트입니다. 쉽게 말하면 서로 다른 하드웨어와 소프트웨어들이 정보를 주고받을때 사용하는 컴퓨터 공통 언어 양식이라고 할 수 있습니다. 같은 양식으로 정보를 보내고 받기 때문에 하드웨어나 소프트웨어의 종류와 상관없이 주고받는 정보를 올바르게 인식할 수 있습니다.

 

프로토콜은 목적에 따라 여러 가지 종류가 있는데, 각각의 프로토콜들은 OSI 7계층의 여러 가지 계층 사이를 통신하게 해줍니다.

 

 


OSI 7계층이란

OSI 7계층이란 국제 표준화 기구에서 만든 표준 프로토콜을 사용해 다양한 통신 시스템이 통신할수 있도록 만든 개념 모델입니다. OSI 모델은 통신 시스템을 7개의 계층으로 나눠 계층들을 스택합니다. 

 

  • 7계층(응용 계층): 사람과 컴퓨터가 직접 상호작용합니다. 사용자에게 의미 있는 데이터를 제공하고 데이터를 생성합니다. 대표적인 프로토콜으로는 HTTP, SMTP 등이 있습니다.
  • 6계층(표현 계층): 응용 계층이 데이터를 사용할 수 있게 준비하는 역할을 합니다. 7계층과 5계층 사이를 연결하며 서로 다른 장치들이 데이터를 이해할 수 있도록 데이터를 압축, 변환, 암호화합니다.
  • 5계층(세션 계층): 통신을 시작하고 종료하는 일을 담당합니다. 세션이란 통신이 시작해서 종료될 때까지의 시간을 의미하는데, 효율적으로 데이터를 통신할 수 있도록 통신 시작, 종료 시간을 조절하는 역할을 합니다.
  • 4계층(전송 계층): 두 기기간의 종단 간 통신을 담당합니다. 5계층과 3계층을 연결하며 데이터를 세그먼트라는 조각으로 분할하고, 재조립하는 역할을 합니다. 또한 통신 간의 흐름 제어와 오류 제어 역할도 합니다. 대표적인 프로토콜으로 TCP, UDP 등이 있습니다.
  • 3계층(네트워크 계층): 서로 다른 두 네트워크 간의 데이터 전송을 원활하게 하기 위해 세그먼트를 더 작은 패킷으로 분할하고, 패킷을 세그먼트로 조립합니다. 또한 데이터 전송에 최적화된 물리 경로를 찾는데 이를 라우팅이라고 합니다. 대표적인 프로토콜으로 IP, ICMP, IGMP, IPsec 등이 있습니다.
  • 2계층(데이터 링크 계층): 동일한 두 네트워크 간의 데이터 전송을 원활하게 합니다. 패킷을 프레임이라는 단위로 분할합니다. 인트라 네트워크 통신 간의 흐름 제어와 오류 제어 역할도 담당합니다.
  • 1계층(물리 계층): 케이블, 스위치 등의 물리적 장비를 포함하는 계층입니다. 데이터를 0과 1의 비트 스트림으로 변환합니다.

사용자가 데이터를 보낼때는 7계층에서부터 1계층 순서로 데이터를 변환하고 전송하는 작업을 거쳐서 다른 사용자는 1계층에서부터 7계층 순으로 수신한 데이터를 처리해 읽을 수 있게 됩니다. 이러한 과정에서 다양한 프로토콜이 사용됩니다.

 


프로토콜 종류

TCP, UDP, IP, HTTP, HTTPS, ICMP

ARP, FTP, FTPS, TELNET, SSL/TLS, SS

 

IP(Internet Protocol)

IP는 인터넷에서 데이터 패킷을 전송하기 위한 기본 프로토콜입니다. IP는 데이터를 네트워크를 통해 목적지까지 전달하는 역할을 합니다. IP는 주로 IPv4와 IPv6 두 가지 버전으로 나뉩니다. IP는 각 장치에 고유한 IP 주소를 부여해 네트워크에서의 식별과 통신을 가능하게 합니다. IPv4에서는 32비트 주소 체계를, IPv6에서는 128비트 주소 체계를 사용합니다. IP는 데이터를 패킷 단위로 전송되고, 데이터 전송 전에 연결을 설정하지 않습니다..

 

TCP(Transfer Control Protocol)

TCP는 서버와 클라이언트 사이에 전송할 데이터를 패킷으로 바꿔주는 프로토콜입니다. 송수신 장치 간에 안정적인 연결이 가능하도록 하는 3방향 핸드쉐이크라는 기능을 사용합니다. 3방향 핸드쉐이크는 클라이언트에서 보내는 SYN(synchronize Sequence Number), 서버에서 SYN을 받고 보내는 확인 메시지 SYN-ACK, SYN-ACK를 받은 기기에서 다시 보내는 확인 메시지 ACK로 구성되어 있습니다.

 

UDP(User Datagram Protocol)

UDP는 네트워크 상에서 한 기기에서 다른 기기로 패킷을 보내는 프로토콜입니다. TCP보다 빠른 전송 속도가 특징이지만, 데이터 손실이 생길 수 있어 비디오, 오디오, VoIP 인터넷 전화 등 일정 수준의 손실이 생겨도 큰 영향이 없는 데이터를 전송할 때 강점이 있습니다. UDP와 TCP의 다른 차이점은 UDP는 3방향 핸드쉐이크 방식을 사용하지 않아 연결이 안정적으로 되어있는지 보장해주지는 않는다는 점입니다.

 

FTP(File Transfer Protocol)
FTP는 네트워크를 통해 파일을 전송하기 위해 사용되는 프로토콜입니다. FTP는 빠르고 효율적으로 크기가 큰 여러 개의 파일을 전송할 수 있다는 장점이 있지만 암호화하지 않은 파일 평문으로 데이터를 보내기 때문에 보안에 취약합니다. 이를 해결하기 위해 SSL 암호화 방식을 사용하는 FTPS(File Transfer Protocol Secure Sockets Layer)이나 SSH를 사용하는 SFTP(SSH File Transfer Protocol) 등의 보안 프로토콜이 개발되었습니다. 

 

HTTP(Hypertext Transfer Protocol)

HTTP는 시스템이 월드 와이드 웹(www)에서 통신할 수 있게 해주는 프로토콜입니다. 클라이언트가 필요한 웹 페이지 컨텐츠에 대한 HTTP 요청 메시지를 웹 서버에 보내면, 웹 서버에서 요청을 처리해 요청한 내용이나 웹 페이지를 포함한 리스폰스를 보냅니다. 이런 방식을 통해 클라이언트는 웹 브라우저에서 컨텐츠를 로딩할 수 있게 됩니다. SSL/TLS 암호화를 사용한 HTTPs라는 보안이 향상된 프로토콜도 있습니다.

 

SNMP(Simple Network Management Protocol)

SNMP는 응용 계층에서 컴퓨터, 라우터, 스위처, 방화벽, 프린터 등 기기들의 관리 정보를 수집하는 프로토콜입니다. 네트워크 관리 플랫폼들이 실시간으로 네트워크에 연결된 장비들의 성능과 상태를 관리하는데에 사용됩니다. 

 

ICMP(Internet Control Message Protocol)ICMP는 인터넷 프로토콜의 한 부분으로 네트워크 장치 간의 관리 및 오류 보고를 위한 프로토콜입니다. IP 프로토콜과 함께 작동하며 데이터 전송의 상태를 모니터링하고 문제를 진단하는데에 중요한 역할을 합니다. ICMP는 네트워크 진단 도구에 사용되는데, 가장 대표적인 도구는 ping과 traceroute입니다.

 

POP(Post Office Protocol)

POP는 이메일 클라이언트가 이메일 서버에서 메시지를 다운로드하여 로컬 장치로 가져오는 데 사용되는 프로토콜입니다. POP3 버전이 가장 널리 사용되고 있습니다. 이메일 클라이언트가 POP3 서버에 연결해 사용자 이름과 비밀번호를 입력하여 인증을 수행하고 나면, 클라이언트는 서버에 있는 이메일 목록을 요청하고 선택한 이메일을 다운로드합니다. 다운로드된 이메일은 기본적으로는 서버에서 삭제되지만 서버에 유지할 수도 있습니다. 이메일이 다운로드되고 나면 연결이 종료되고, 사용자는 오프라인 상태에서도 이메일을 읽을 수 있습니다. 현재는 이메일을 서버에서 관리하는 IMAP(internet Message Access Protocol)이라는 프로토콜을 더 많이 사용하기도 합니다.

 

SMTP(Simple Mail Transfer Protocol)SMTP는 이메일을 전송하기 위해 사용되는 프로토콜입니다. 주로 이메일 클라이언트가 이메일 서버에 메시지를 전송하거나 이메일 서버 간에 메시지를 전달할때 사용됩니다. 먼저 이메일 클라이언트가 SMTP에 연결해 이름과 비밀번호로 인증을 수행하면, 클라이언트가 SMTP 서버에 메시지를 전송합니다. SMTP 서버는 수신자 서버에 메시지를 전달하는데 이 과정에서 메일 큐를 이용해 전송하고, 메시지가 수신자 서버에 도착하면 수신자는 POP 또는 IMAP 프로토콜을 사용하여 이메일 클라이언트로 메시지를 다운로드합니다. SMTP는 암호화되지 않으므로 SSL/TLS를 사용하는 SMTPS를 사용하기도 합니다.

 

ARP(Address Resolution Protovol)ARP는 네트워크에서 IP 주소를 MAC 주소로 변환하는 데 사용되는 프로토콜입니다. 특정 IP 주소로 패킷을 전송하려는 장치가 해당 IP 주소의 MAC 주소를 모를 때 ARP 요청 패킷을 네트워크의 모든 장치에 전송하고, 요청된 IP 주소를 가진 장치가 자신의 MAC 주소를 응답 패킷에 담아 요청을 보낸 장치에 전송합니다. 요청을 보낸 장치는 응답 패킷을 수신한 후 IP 주소와 MAC 주소의 매핑 정보를 캐시에 저장해 이후에 다시 사용합니다. ARP는 기본적으로 보안 기능이 없기 때문에 ARP 스푸핑과 같은 공격을 방지하기 위해 여러 가지 기술이 사용됩니다.

 

TELNET

TELNET은 원격 컴퓨터에 접속하여 명령어를 입력하고 제어할 수 있게 해주는 프로토콜입니다. 주로 텍스트 기반의 원격 로그인에 사용됩니다. 클라이언트가 TELNET 서버에 연결 요청을 보내고 이름과 비밀번호로 인증을 거치고 나면, 사용자는 원격 시스템의 명령 프롬프트에 명령어를 입력할 수 있습니다. 사용자가 입력한 명령어는 원격 시스템에서 실행되어 결과가 클라이언트에 표시됩니다. TELNET 세션은 사용자가 로그아웃 명령어를 입력할 때까지 유지됩니다. TELNET은 보안 기능이 없기 때문에 보안이 향상된 SSH 등 프로토콜을 사용하는 것이 권장됩니다. 

 

SSH(Secure Shell)
SSH는 네트워크를 통해 안전하게 원격 시스템에 접속할 수 있도록 해주는 프로토콜입니다. 모든 데이터 전송이 암호화되고, 공개 키 암호화 방식을 이용한 인증을 지원합니다. 또한 안전한 터널링을 통해 다른 프로토콜의 트래픽을 포워딩할 수 있습니다.

 

SSL(Secure Sockets Layer)/TLS(Transport Layer Security)SSL/TLS는 인터넷 상에서 데이터 전송의 보안을 제공하는 프로토콜입니다. TLS는 SSH의 보안 취약점을 개선하고 기능을 확장한 것입니다. 주요 특징으로는 데이터 암호화, 디지털 인증서, 해시 함수를 통한 무결성 유지, 세션 키 등이 있습니다. 먼저 클라이언트와 서버 간 SSL/TLS 연결이 시작되면 서로 인증서를 교환하고 검증해 암호화된 세션 키를 전송합니다. 세션이 시작되면 세션이 종료될 때까지 모든 데이터는 SSL/TLS로 암호화되어 전송됩니다.

 

참고 https://www.cloudflare.com/ko-kr/learning/network-layer/what-is-a-protocol/, https://www.cloudflare.com/ko-kr/learning/ddos/glossary/open-systems-interconnection-model-osi/, https://www.forbes.com/advisor/business/types-network-protocols/