Post

NetworkSecurity-Internet

인터넷보안에서 다룬 인터넷 관련 필요한 내용만 정리

NetworkSecurity-Internet

네트워크의 3요소

  • 출발지 단말장치
  • 목적지 단말장치
  • 통신 매체

Intro

  • hosts = end systems
  • routers = forwarding packets
  • communication links = physical media

  • Internet: network of networks

Store-and-Forward: 라우팅 과정에서 패킷을 모두 받아서 저장한 후에 다음 노드로 전송

인터넷의 속도는 빛의 속도보다 빠를 수는 없음. 그럼 결국 얼마나 많은 데이터를 전송할 수 있느냐인데
frequency: 신호의 진동수
bandwidth: 신호가 전달할 수 있는 주파수 대역폭
이 두 개가 클수록 더 많은 데이터를 전송할 수 있음. 정확히는 Shannon-Hartley theorem 참고

ISP (Internet Service Provider)

Tier1: national/international coverage

Tier1끼리 서로 연결되어 있음.

POP: Point of Presence
큰 서비스는 ISP와 직접 연결되는 것이 빠르므로 ISP의 POP에 서버를 둠

Tier2는 Tier1에서 인터넷을 구매해서 지역적으로 서비스함. 근데 Tier1에만 통신하면 느리고 비쌀수도 있으니 다른 Tier2와 peering을 맺기도 함.

Internet eXchange는 peering 전문이라고 생각하면 됨.

Layering

  1. pyhsical: 물리적 비트
  2. link: 네트워크 요소간의 데이터 전송 (PPP, Ethernet)
  3. network: 소스에서 목적지까지의 전송 (IP, Routing)
  4. transport: 종단간 전송 (TCP, UDP)
  5. application: 응용프로그램 (HTTP, FTP)

Routing

IPv4: 32비트 주소

라우터는 목적지 IP를 보고 라우팅 테이블을 기반으로 패킷을 전달한다.

  • Address Prefix
  • Address Block

BGP (Border Gateway Protocol)

  • AS: Autonomous System

예를들어 ASN200번 라우터가 자기랑 연결된 라우터한테 10.10.220.0/22를 advertise한다.

앞으로 10.10.220.0/22이 들어오면 나한테 보내라

그러면 AS20, AS30도 자기랑 연결된 라우터한테 advertise한다.

Example: Youtube

파키스탄에서 youtube 접속을 막고 싶음. 근데 설정을 잘못해서 youtube prefix를 자기 AS로 advertise해버림. 그래서 모든 youtube 트래픽이 파키스탄 텔레콤으로 들어옴.

BGP는 Integrity, Authentication이 없음을 일꺠우는 사례

Client-Server Model

  • Server: 서비스를 제공하는 쪽
    • 고정 ip
    • 항상 켜져있음
    • scalable
  • Client: 서비스를 요청하는 쪽
    • 동적 ip
    • 필요할 때만 켜짐
    • 서로 소통 불가능

Socket

TCPIP과정을 추상화해서 Socket을 열고 send, receive로 통신할 수 있게 해줌. An API.

port: 프로세스를 구분하는 논리적 번호

TCPUDP
연결지향형(Connection-Oriented)x
신뢰성 있음(Reliable)x
흐름제어 있음(Flow Control)x
혼잡제어 있음(Congestion Control)x
timing, throughput 제공 xx
securityx
속도 및 handshake 필수빠름, 간단
delay, bandwith는 보장이 어려움

Multiplexing at send host: 여러 response가 IP레이어에서 합쳐짐 Demultiplexing at receive host: IP레이어에서 도착한 패킷을 포트번호로 구분해서 해당 프로세스에 전달

Connection oriented demux

tcp는 4-tuple (src-ip, src-port, dest-ip, dest-port)로 구분된다.

recver는 이 4-tuple을 보고 어떤 소켓으로 전달할지 결정한다. tcp/udp를 구분하기 위해 5tuple로도 표현함.

TCP

  • point-to-point
  • reliable
  • pipelined
  • send-recv buffer
  • full-duplex: A→B, B→A 동시에 전송 가능
  • connection-oriented
  • flow control

3-way handshake

SYN → SYN-ACK → ACK

SYN: synchronize sequence numbers

  • seq=x, 몇번째부터 보내겠다(바이트 단위), 다음 패킷에선 x+1부터 시작 ACK: Acknowledgement
  • ack=y, y-1까지 받았으니 다음에 y부터 보내라 SYN-ACK: SYN+ACK
  • seq=y, ack=x+1 이런식으로 계속 왔다갔다함

SYN flood attack

SYN을 대량으로 보냄 → 서버는 SYN-ACK을 보내고 SYN을 cache에 저장 → 자원 고갈

This post is licensed under CC BY 4.0 by the author.