만족
[정보보안] 네트워크 보안을 위한 기초 개념 본문
[정보보안] 네트워크 보안을 위한 기초 개념
기타 CS 이론/IT Security Satisfaction 2021. 10. 16. 17:07프로토콜
서로 다른 시스템에 있는 개체가 통신하기 위해 필요한 동일한 통신 규약(약속)
프로토콜의 기능
주소지정
상대의 주소를 지정한다
순서지정
프토로콜 데이터 단위가 전송될 때 보내는 순서를 명시하는 기능으로, 연결 지향형(TCP/IP)에서만 사용
단편화 및 재조합
대용량 데이터 전송 시, 일정한 데이터 블록으로 나누어(단편화) 전송하고 수신자는 그 데이터를 재조합한다
데이터 흐름제어
수신자가 수신한 데이터의 양이나 속도 제어
연결제어
연결 지향형 데이터 전송에서는 연결 설정, 데이터 전송, 연결 해제의 3단계로 구성된다.
캡슐화
데이터에 제어 정보를 덧붙이는 것
오류제어
데이터 교환 시 오류를 발견하는 기법
동기화
송수신 개체가 먼저 정의된 인자를 공유하는 기법
멀티플렉싱
하나의 통신 선로에서 여러 시스템이 동시에 통신할 수 있는 기법
전송 서비스
우선순위 결정, 서비스 등급과 보안 요구 등을 제어하는 서비스
네트워크 계층 (OSI 7계층)
7계층: 응용 프로그램 계층
6계층: 표현 계층
5계층: 세션 계층
4계층: 전송 계층 (PORT 정보를 이용해 응용 프로그램 간 통신)
3계층: 네트워크 계층 (IP 정보를 이용해 원거리 시스템과 통신)
2계층: 데이터 링크 계층 (MAC 정보를 이용해 로컬 통신)
1계층: 물리 계층 (신호를 전달하기 위한 물리적인 연결)
A시스템의 A'응용 프로그램에서 B시스템의 B'응용 프로그램으로 데이터 전달 시
A(7-> 1계층) ...->... B(1->7계층)으로 이동한다.
MAC주소를 이용한 로컬 통신 (2계층)
두 시스템이 로컬 통신을 하기 위해서는 반드시 스위치를 통해 연결되어 있어야 한다.
(스위치는 1~2계층만 사용하면 된다; 로컬 통신 시 MAC 주소만 있으면 된다)
송신을 위해 수신자의 MAC주소가 필요하다.
그러나 송신자가 알고 있는 정보는 나의 IP, 나의 MAC, 상대방의 IP이다.
아직 상대방의 MAC주소는 아직 알 수 없다.
그렇다면 어떻게 상대방의 MAC주소를 알아낼 수 있을까?
ARP 프로토콜
https://blockdmask.tistory.com/189
ARP프로토콜은 상대의 IP는 아는데, MAC은 모를 경우에 사용하는 프로토콜이다.
"내IP/내MAC/상대IP/상대MAC"에서 상대 MAC을 0으로 채운 데이터를 대상 네트워크에 브로드캐스팅한다.
그 네트워크에 속한 모든 시스템은 패킷을 받게 되며
수신 시스템이 만약 상대IP가 자신의 IP로 설정되어 있을 경우 송신자에게 자신의 맥 주소를 알린다.
(학교의 한 반에 들어가서 이름이 000인 사람 손 드세요! 하는 것과 같다)
IP 주소
네트워크 주소
외부에서 구분될 수 있는 주소 영역
=> 네트워크 주소가 동일할 경우 동일 네트워크에 존재한다
호스트 주소
동일한 네트워크 안에서 서로를 구분하는 주소
(특정 값은 사전에 예약되어 있다; ex: 0: 네트워크 이름, 255: 브로드캐스트)
네트워크 주소는 Gateway를 찾는 데 사용되고,
호스트 주소는 Gateway를 찾아 네트워크 내에서 특정 시스템을 찾는 데 사용된다.
서브넷 마스크
IP주소의 낭비를 막는다.
IP주소와 동일하게 각 8비트씩 4자리가 존재하고 255.255.255.0처럼 생겼다.
내부 네트워크에서 필요한 아이피 갯수에 따라 서브넷 마스크 값이 필요해진다.
예를 들어 255.255.255.0은 내부 네트워크에서 아이피 240개가 필요할 때 사용한다.
아이피가 1개만 필요하다면, 사전 예약된 네트워크 이름, 브로드캐스트 주소를 표현하기 위해 총 3개의 아이피가 필요하다.
(3가지 경우를 표현할 수 있는 비트 갯수만큼 0으로 변경)
따라서 11111111.11111111.11111111.11111100으로 서브넷 마스크가 표현되므로 255.255.255.252가 된다.
외부 네트워크와 통신
"패킷 송신 시스템-> 스위치-> 라우터-> 외부로 빠져나감"의 순서로 패킷이 이동한다.
라우터에서 상대 네트워크의 라우터까지 한 번에 전송되는 것이 아니라 중간중간에 라우터를 거쳐 이동하면서 목적지로 가게 된다.
(서울에서 부산까지 갈 때, 한 번에 순간이동하는 것이 아니라, 경기도-> 충청도->....-> 부산 처럼 다른 지역을 거쳐 이동한다)
따라서 각 라우터는 다음 라우터를 결정하는 라우팅 기능도 하게 된다.
(다음 라우터의 MAC 주소를 결정하고 전송)
그렇다면 라우터는 다음 라우터에 해당하는 라우터의 MAC주소를 어떻게 알 수 있을까?
=> 각 라우터는 Routing Table을 소유하고 있어서 각 라우터에 대한 정보를 알고 있다.
네트워크 계층(3계층)의 주요 프로토콜
IP 프로토콜
IP를 이용한 데이터 송수신 (송신자-> 수신자에게만 데이터가 흐른다)
ICMP 프로토콜
오류, 경고, 알림 등을 위한 메시지 시스템이다.
이 때는 데이터 수신자가 다시 송신자에게 메시지를 보낸다.
ARP 프로토콜
내부 네트워크에서 IP주소로 MAC주소를 찾는 프로토콜이다.
전송 계층(4계층)
각 시스템에 도착한 패킷을 어떤 프로그램에 보낼 것인지를 결정한다.
이를 PORT로 구분하여 송수신한다.
(ex: TCP, UDP)
A프로그램에서 네트워크 요청/응답을 할 경우, A프로그램의 포트는 OS에 의해 결정된다.
따라서 패킷의 포트 정보(송신자 포트/수신자 포트)는 다음과 같다.
패킷 송신시>> 23522(OS가 임의 할당)/80(수신자 포트; HTTP)
패킷 수신시>> 80/23522
전송 계층 주요 프로토콜: TCP프로토콜
연결 지향형 프로그램으로, 데이터의 확실한 전송을 보장한다.
수신측이 데이터를 흘려보내지 않게 데이터의 흐름을 제어하며, 오류가 발생할 경우 재전송하는 오류 제어 기능이 포함된다.
ex: HTTP, FTP, SSH
TCP프로토콜은 3-way handshaking을 통해 상호 연결을 확립한다.
TCP 프로토콜: 3-way handshaking
송신자를 A, 수신자를 B라고 하자.
1. A가 B에게 SYNC신호(임의의 값과 함께; ex: 15)를 보낸다.
2. B가 A에게 전달받은 SYNC신호의 값(ex: 15)으로 ACK신호를 보내고, 새로운 SYNC신호(ex: 22)를 보낸다.
3. A가 B에게 전달받은 SYNC신호의 값(ex: 22)으로 ACK신호를 보낸다.
ACK신호를 전송받고 자신이 보낸 SYNC값과 같을 경우, 수신자는 연결된(established)상태가 된다.
(만약 잘못 왔을 경우 다시 SYNC 신호를 보낸다)
즉, 2에서 A는 Established되고, 3에서 B는 Established가 된다.
연결이 필요하지 않아질 때는 Close메시지를 보내 양 측이 연결을 끊는다.
전송 계층 주요 프로토콜: UDP 프로토콜
데이터의 신뢰성 있는 전송을 포함하지는 않지만, 그 덕에 속도가 빠르다.
=> UDP에서는 데이터의 흐름제어, 오류제어를 하지 않고 그냥 무지성난사해서 더 빠르다.
정확도보다 속도가 우선시되는 환경에서 사용한다.
ex: DNS, VoIP
'기타 CS 이론 > IT Security' 카테고리의 다른 글
[정보보안] 인터넷 정보보안: HTTP 기본 개념과 웹 해킹 공격 (0) | 2021.10.16 |
---|---|
[정보보안] 네트워크 보안 시스템: 방화벽, 침입 탐지와 침입 감지 시스템 (0) | 2021.10.16 |
[정보보안] 무선 네트워크 보안 (0) | 2021.10.16 |
[정보보안] 네트워크 공격: 스니핑, 스푸핑, 세션 하이재킹 (0) | 2021.10.16 |
[정보보안] 네트워크 공격: DoS (0) | 2021.10.16 |