Network Protocols

2022. 12. 11. 15:31프로그래밍/보안

Packet Switched Network

 - More efficient bandwidth usage(여로모로 많이 씀)

 - 패킷으로 data을 나눠서 전송함

 - 현대의 Data Network 

 

Circuit switched

 - dedicated bandwidth(전용 대역폭)

 - 전화 네트워크

 

 

*통신 환경은 항상 unsecure 하고 unreliable(순서도 엉망이고 없어지고 한다)하다

패킷은 큐가 꽉차면 버려진다

라우터는 항상 공격자가 지켜보고 있다.

 

Network Protocols(룰, 규약)

- RFC(Request for Comments)(표준, 여기 다적혀 있어)

stateless - (도리를 찾아서의 도리) 보고 뒤돌면 잊어버림, 메모리에 적어놓은게 없다

stateful - 기억한다

 

*웹 서버는 항상 stateless하다.

그러면 나는 한 홈페이지에서 다음페이지 넘어갈 떄마다 로그아웃 되는거임

그런데 우리가 매번 로그아웃되지 않는것은 우리가 항상 쿠키라는 토큰을 들고다니면서 들어갈 때마다 보여주기 때문에

그럼거임, 서버가 stateful로 바뀌어서 그런것이 아님

 

OSI 7 layer !!!!

https://shlee0882.tistory.com/110

Application Layer: 할걸 정함(http, smtp, ftp ...) 야 밥먹자!

Presentation Layer: encoding? 을 함( xml, html, json ...) '야 밥먹자!'를 독일어로 보내자! 결정

Session Layer

Transport Layer : end to end 전송(경유 그딴거 안함) tcp udp, 메시지를 보내고 회신을 받는 계층

Network Layer: 어떻게 path를 찾아갈것이냐

Datalink Layer

Pysical Layer: 편지를 버스타고 보낼가 차타고 보낼까 비행기타고 보내냐(wifi, ethernet, lan...(data layer랑 같이))

 

아뿔싸 존네대불

아뿔싸 토나와 대피

 

각층마다 각층 끼리 가지고 있는 프로토콜이 있다.

아래 층으로 내려가면서 헤더 붙이고 올라가면서는 헤더를 깐다

각층은 관심있는 헤더만 까보고 나머지는 관심없다.

 

TLS보안방법은 Transport Layer에서 한자리 하는거임

 

router (라우터): 

network layer

datalink layer

physical layer 까지만 있고 거기까지만 본다.

 

peer-to-peer(p2p)

client가 server역할 도 하면서 client가 client에게 질의를 하는 방식

 

Web cookies

server는 stateless하기 때문에 기억력이 없음, 그래서 서버는 client에게 쿠키를 발급하면서 너가 기억해 하는거임.

 

Transport Layer

UDP: 패킷이 분실됨, 하는수 없지... 괜찮아,

스트리밍같이(유튜브, 전화, 스티리밍) 패킷 한두개 소실되고 순서 가끔 바뀌고 하는거는 큰 상관 없는 그런상황에서 쓰임

less service(적은 기능), less overhead(빠름)

 

TCP: 패킷이 분실됨, 뭔가 잘못되면 잘 되도록 해야됨, 메시지 보내고 잘 받았는지 꼭 확인함

잘 못받는다 싶으면 conjection control하면서 페이스를 맞추기도 함

more service(많은 기능), more overhead(느림)

TCP Three way handshake

 

Socket

IP주소: network 계층에서 쓰는 주소

URL(domain 주소), email 이런건 application 계층에서 쓰는 주소

DNS(domain name service) URL주소(domain 주소)-> IP주소

MAC 주소: phycle 계층에서, datalink 계층에서 쓰는 주소 

   게이트웨이 이전 단, 이더넷 백본 안에서의 구분을 위한 주소

ARP(Address Resolution Protocol): IP주소는 알고 MAC 주소를 몰라, (IP주소-> MAC주소 해주는 프로토콜)

 

그래서 이중에 허점이 있다.

ARP!!!

보통 공격자는 IP주소를 알고 MAC주소는 모른단 말이야

게이트웨이가 나를 찾는데 공격자가 먼저 나야!해서 공격자가 나인척 하면서 table에 공격자가 기록되게 함, MAC 주소 대응되는 table 잘못 기록됨 -> 그렇게 중간에 껴들고 공격자가 이제 나에게 data를 보내옴으로서 중계를 하는거고 MIM attack을 하게 되는거임  

 

NAT(Network Address Translation): 사설 주소방

ip주소 space를 넓히기 위해서(ip 주소 폭이 좁다는 뜻)

그래서 네트워크마다에만 ip 주소를 할당함

그리고 그 안에서는

port 번호를 할당하 세부적으로 가지게 됨

그래서 data 전송시 ip주소와 port num을 같이 보내게 됨

 

단점: end to end security 가 어렵다. 왜 중간에 네트워크 ip로 바뀌는 과정을 거치기 때문에

DNS spoofing..

ARP spoofing...

 

 

'프로그래밍 > 보안' 카테고리의 다른 글

1. Buffer overflow  (0) 2022.12.11
0. Software Security, Memory layout  (0) 2022.12.11
Real-World Protocols: 실시간 프로토콜  (0) 2022.12.11
Authentication Protocols  (0) 2022.12.10
Access Control: 접근 제어  (0) 2022.12.09