book_lover 2024. 6. 6. 16:44

네트워크는 호스트 라우터로 구성된다. 

  • 호스트는 컴퓨터, 서버, 스마트폰 등 네트워크에 연결된 모든 종류의 장치를 의미
  • 라우터는 호스트와 호스트 간 네트워크를 통해 데이터를 전달하는 것

네트워크의 한 서비스인 인터넷은 패킷 교환망으로 데이터를 "패킷"이라는 불연속 조각으로 나뉘어 전송한다. 반면 기존 전화 시스템은 양 끝단 사이에 전용 대역폭이 있는 전용 회선이 만들어지는 회선 교환망이다. 패킷 교환망은 복잡하지만 대역폭을 좀 더 효율적으로 사용할 수 있다.

https://www.pcmag.com/encyclopedia/term/router
https://www.sap.com/korea/products/artificial-intelligence/what-is-iot.html

프로토콜 스택

네트워크는 각 계층이 특정 작업을 담당한다. 계층이 겹겹이 쌓이면 프로토콜 스택이라고 불린다. 프로토콜 스택은 하나의 개념이다. 프로토콜 스택이라는 아이디어는 네트워크 연구를 단순화시킨다(현대 네트워크 연구는 프로토콜에 대한 것)

  • 응용계층
    • 호스트에서 호스트로 전송되는 응용 데이터를 처리. HTTP, SMTP, FTP, 스카이프 등 프로토콜 사용
  • 전송 계층
    • 논리적인 양 끝단 사이의 데이터 전송 처리. TCP, UDP 등 프로토콜 사용
  • 네트워크 계층
    • 데이터 전달. IP, ICMP, ARP, RARP 등 프로토콜 사용
  • 물리 계층
    • 물리적 매체를 통하여 "비트" 전송. 전자공학 공부 추천

 

https://leejoongwon.tistory.com/36
https://rosypark.tistory.com/286

 

  • 출발지 데이터 패킷 X가 프로토콜 스택 아래로 내려가면서 각 프로토콜은 자신에게 필요한 정보를 담은 "헤더"를 붙인다. H가 응용 계층에서 덧붙인 헤더라면 응용 계층은 (HA,X)를 전송 계층에 보낸다. 
  • HT가 전송 계층 헤더라면 (HT,(HA,X))를 네트워크 계정으로 보낸다.
  • HN가 네트워크 계층 헤더라면 (HN,(HT,(HA,x)))를 데이터링크로 보낸다
  • HD가 데이터 링크 계층 헤더라면 (HD,(HN,(HT,(HA,x))))를 물리 계층으로 보낸다.

(HD,(HN,(HT,(HA,X))))

패킷이 도착지(또는 라우터)에서 프로토콜 스택을 타고 "위로" 올라올 때는 각 계층을 통과할 때마다 양파 껍질을 벗기듯이 헤더가 하나씩 떨어져 나간다. 각 헤더에 있는 저보느 ㄴ해당 프로토콜에서 패킷을 어떻게 처리할 것인가를 알려준다.

응용 계층

응용 프로그램 동작하는 계층이고 대부분 다수의 호스트에서 분산되어 실행된다. 다양한 프로토콜이 존재하며 대부분 클라이언트-서버 개념 기반으로 설계된다. 

 

HTTP는 무상태 프로토콜이다. 상태 유지하기 위해 여러 방법 중 웹 쿠키를 사용하는데, 웹 사이트에 처음 접촉하면 브라우저는 웹 서버에서 유지하는 데이터베이스를 지정받기 위한 식별자로 쿠키를 받는다. 쿠키는 데이터베이스를 색인화하는 데 사용되는 식별자다. 웹 서버에 HTTP 메시지를 보내면 웹 브라우저는 쿠키를 서버에 전달한다. 서버는 쿠키를 활용해 데이터베이스를 검색해 사용자에 대한 정보에 접근한다. 

 

웹 쿠키는 인증 뿐만아니라 장바구니 추천목록에도 활용된다. 여러 상트가 서로 정보를 취합하게 되면 개인에 대해 거의 모든 것을 파악할 수도 있다.

 

SMTP는 이메일 서버로부터 수신자에게 메시지를 전달하기 위해 POP3, IMAP,  HTTP 등을 이용한다. SMTP는 서버 또는 클라이언트 역할을 수행한다. 보안에 관련된 위험은 이메일 스푸핑이 있다.

 

이메일 스푸핑(Email spoofing)은 위조된 보낸이 주소를 사용하여 전자우편 메시지를 생성하는 것이다.[1]

핵심 이메일 프로토콜들이 인증에 대한 매커니즘이 없기 때문에, 메시지 원본에 대해 수신자를 오도하거나 장난을 치기 위해 이러한 스푸핑을 사용하며 스팸과 피싱 이메일에 일반적이다.

https://ko.wikipedia.org/wiki/%EC%9D%B4%EB%A9%94%EC%9D%BC_%EC%8A%A4%ED%91%B8%ED%95%91

 

이메일 스푸핑 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 이메일 스푸핑(Email spoofing)은 위조된 보낸이 주소를 사용하여 전자우편 메시지를 생성하는 것이다.[1] 핵심 이메일 프로토콜들이 인증에 대한 매커니즘이 없기

ko.wikipedia.org

 보안에 영향을 미치는 또 다른 프로토콜은 DNS이다. 사람이 읽을 수 있는 주소를 32비트 IP 주소로 변환해주는 서비스이다. 전 세계적으로 최상위 DNS 서버가 동시에 공격당하면 인터넷은 작동이 안 될 것이다.

전송 계층

네트워크 계층은 신뢰성이 없지만 "패킷"을 전달하기 위해 최선의 노력을 한다. 네트워크가 패킷을 최종 도착지에 전달하려 하지만 마약 패킷이 도착하기에 실패한다면 네트워크는 아무 책임도 지지 않는다. 이러한 제한된 최선의 노력 이상의 어떠한 향상된 서비스를 구현하려면 네트워크 계층이 아닌 다른 계층에 구현되어야 한다. 

 

전송 계층의 최우선 목표는 신뢰성 있는 패킷의 전달에 있다.

 

네트워크에서 호스트는 많은 패킷을 전송할 수 있다. 라우터는 초과된 패킷이 전달될 때까지 일시 저장할 수 있는 버퍼가 있다. 그러나 버퍼 용량은 제한되어 있고 버퍼가 꽉 차고 나면 라우터는 패킷을 버린다. 패킷에 담긴 ㄷ이터는 전송 도중에 손상될 수도 있다. 다양한 경로에 따라 메시지를 전달하는 과정은 매우 역동적이기 때문에 어느 특정 접속의 패킷이 다른 경로를 따라 전송될 수도 있다. 경로가 다르면 도착 순서가 다르니 보낸던 순서와 달라지게 된다. 이런 형태의 문제를 처리하는 것이 바로 전송 계층이다. 

 

TCP는 패킷 도착 여부, 순서의 일치, 데이터 손상 여부 등을 확인한다. 

UDP는 헤더 크키가 더 작고 흐름제어나 혼잡제어 등을 제공하지 않는다. 여러 장점 중 하나는 송신자의 속도를 제한하지 않는다. 절대적으로 지연이 허용되지 않는 응용 프로그램일때 좋다. 오디오, 비디오를 실시간으로 재생하는 경우이다. 패킷이 손실되더라도 대역폭의 제한 없이 데이터를 보낼 수 있고 상위 계층에 신뢰성 담당을 넘겨 신뢰성을 보장하면 된다.

3-웨이 핸드셰이크

  • SYN
    • 클라이언트가 서버에게 동기화 요구
  • SYN-ACK
    • 서버는 동기 요청을 수신하였음을 알려준다.
  • ACK
    • 클라이어트는 SYN-ACK에 응답한다. 이 세 번째 메시지에는 데이터를 포함할 수 있다. 예를 들어, 클라이언트가 웹 브라우징을 하고 있다면 클라이언트는 ACK 메시지와 웹 페이지 요청을 포함시킬 수 있다.

https://www.guru99.com/ko/tcp-3-way-handshake.html

접속 종료는 FIn 또는 RST 패킷에 의해 종료된다.

 

3웨이 핸드셰이크는 서비스 거부 공격이 가능하도록 한다. SYN 패킷이 수신될 때마다 서버는 '반-개방' 접속을 기억해야 하고 이를 위해 서버 자원을 조금씩 사용한다. 그래서 아주 많은 반-개방 접속은 서버 자원을 고갈시키고 그 시점에서 서버는 더 이상 새로운 접속에 대해 응답할 수 없게 된다. 단일 IP 주소 단일 시스템에서 실행되는 DoS 공격은 방어하기 쉽다. 무시하거나 차단하기만 하면 된다. 트루디가 IP 주소를 조작하여 차단하기 어려운 DoS 공격을 만들 수 있다. 한 대의 컴퓨터에서 생성할 수 없는 트래픽 양일 경우 분산 컴퓨터를 이용해 DDoS 공격을 할 수도 있다.

네트워크 계층

라우터의 상호 연결된 망을 의미하며 목적은 이러한 망을 통하여 패킷을 전달하는 데 필요한 정보를 제공하는 것이다. 운영하는 프로토콜은  IP, RIP, OSPF, BGP 등이 있다. 

 

각 링크는 최대 패킷 크기가 제한되어 있어 너무 크면 라우터는 더 작은 패킷으로 나눈다. 이를 단편화라 하며 많은 보안상 문제를 만들어낸다. 서비스 거부(DoS) 및 다른 형태의 공격이 가능하도록 문을 열어준다.