본문 바로가기

Kitri_NCS3기 보안과정/네트워크 해킹 및 보안

프로토콜에 대한 이해

프로토콜에 대한 이해

 - 컴퓨터와 컴퓨터 사이에 메세지를 전달하는 과정

 - 데이터 통신을 원활하게 하기 위해 필요한 통신 규약.






 

프로토콜의 3가지 요소

1) 구문

구문은 네트워크의 구조포맷을 의미한다.

 전송 데이터

0101001010111111 

 목적지주소

데이터 

흐름 제어 데이터 

0101

00101011 

1111 

주어 

목적어 

서술어 

나는 

사과를 

좋아해 


네트워크로 전송된 0101001010111111 의 데이터는 각각 목적지 주소 + 데이터 + 흐름제어데이터 의 구문을 가지며 

한국어의 경우 주어+목적어+서술어와 같이 구문으로 이해할 수 있다.

2) 의미

의미는 전송되는 데이터의 각 부분이 무엇을 뜻하는지를 알 수있게 미리 정해둔 규칙을 의미한다.

전송데이터

 0101001010111111 

 의미

0101

00101011 

1111 

우리집에

짜장면 

최대한 빨리 

 0101001010111111  =  우리집에 짜장면 최대한 빨리


미리 정해둔 규칙은 데이터 자체 뿐만 아니라 오류제어,동기제어,흐름제어를 포함한다. 


3) 순서

순서는 네트워크 통신에서 두 가지 역할을 한다. 

1. 어떤 데이터를 보낼 것인가?

2. 얼마나 빠르게 데이터를 보낼것인가?


앞에서 예로 든 '0101001010111111  =  우리집에 짜장면 최대한 빨리' 를 한식집에 보내면 이해 할 수 없을 것이다. 

또한  '0101001010111111  =  우리집에 짜장면 최대한 빨리' 를 중국집에 보내는 경우 천천히 보내야 그 의미를 이해 할 수 있을것이다.


해당 데이터를 그 목적지에 알맞게 보내고 적절한 속도로 전송해야 처리중 loss되는 것 없이 잘 해석 할 수 있을것이라는 말인듯 하다


프로토콜의 기능

1) 주소설정

주소설정은 서로 다른 시스템의 두 개체가 통신을 하는 경우에 필요하다. 
통신의 경우 상대방의 주소를 알아야 하는데 프로토콜에는 각 전송계층에 맞게 이를 지정하는 기능이 있다.

* 보안적 취약점 : 정산 주소값이 아닌 변조된 주소값을 이용해 네트워크나 시스템에 혼란을 줄 수 있다.

2) 순서제어

순서제어는 Protocol Data Unit(이하 PDU)를 전송할 때 보내는 순서를 명시한다. 
연결지향형(Connection Oriented)에만 사용 되며 예로 TCP가 있다.
순서를 지정하는 이유는 전달,흐름,오류제어등을 위해서이다. 
순서가 정해진 PDU를 상대에게 보내면 순서에 맞게 재 조합하며 잘못된 PDU는 재전송을 요구한다. 

*보안적 취약점 : 순서가 뒤죽박죽된 패킷을 보내 시스템에 과부하가 걸리게 한다.

3) 데이터 대열의 단편화 및 재조합

대용량 파일을 전송하는 경우에 한번에 데이터를 전송하는 것은 불가능 하다 이럴때 프로토콜은 데이터를 나누어 보내는데,
이것이 단편화이다. 전송된 데이터는 상대방의 시스템에서 재조합 한다.

*보안적 취약점 : 데이터 분할을 이용해 대량의 패킷을 보내 처리에 부하를 주거나 재조합이 불가능한 데이터를 보내 혼란을 주기도 한다.

4) 캡슐화

PDU는 SDU(Service Data Unit)과 PCI(Protocol Control Information)으로 구성되어있다. 
SDU는 전송하려는 데이터 이고 PCI는 송수신자의 주소, 오류 검출코드, 프로토콜 제어 정보 등이있는 제어정보이다. 
SDU에 PCI를 덧붙이는 것을 캡슐화라 한다. 

캡슐화는 말 그대로 데이터를 다른 무언가로 감싸서 어떤 네트워크를 통과하기 위해 캡슐상태로 전송하게 되고 해당 네트워크를 통과하면 
감싼부분을 다시 벗겨내어 전송하는 기능을 말한다. 
캡슐화는 해커로부터 자신의 통신 내용을 숨길수 있게 해 준다.

5) 연결제어

두 시스템이 서로 데이터를 교환할 때 연결지향성에 따라 두가지로 분류 할 수 있다. 
연결 설정을 하는것을 연결 지향형 데이터 전송(Connection Oriented Data Transfer)
연결을 설정하지 않는것을 비연결지향형 데이터 전송(Connectionless Data Transfer)라 한다.

구분 

특징 

 연결 지향형 데이터 전송

 - 연결설정 -> 데이터전송 -> 연결해제 의 3단계 구성

 - 데이터 전송중 연결을 지속적으로 관리

 - 연결제어 패킷을 이용해 네트워크 연결을 임의로 끊을 수도 있고 

   해당 세션을 뺏을 수도있다.

 - TCP 

 비연결지향형 데이터 전송

 - 네트워크 상태에 상관없이 그냥 데이터 전송

 - 속도는 빠르나 오류에 대한 처리가 없다.

 - UDP

6) 흐름제어

송신측 개체로 부터 오는 데이터의 양이나 속도를 조절하는 기능으로. 
송수신측의 통신간에 데이터의 유실을 방지한다. 다음과 같은 두가지방법이 흔히 쓰인다. 

1) 정지-대기(Stop and wait) 흐름제어 
 : 패킷 하나를 보낸 후 응답이 오면 다음 패킷을 보내는 방식
2) 슬라이딩 윈도우(Sliding window)
 : 가용 데이터 분량의 패킷을 한번에 보낸 후 응답 패킷을 받으면 다시 그만큼의 데이터를 한꺼번의 보내는 방식.

7) 오류제어

데이터 교환시 SDU나 PCI가 잘못되었을 경우, 이를 발견하는 기법을 오류제어(Error control)이라 한다. 
오류제어에는 패리티 비트나, 순환 잉여도 검사를 통해 발견 할 수 있다. 
오류제어는 순서를 검사하거나 특정시간안에 받지 못하면 재전송을 요구하는 방식으로 이루어 진다. 

8) 동기화

두 개체간에 데이터를 전송할 때 각 개체는 특정 타이머 값이나 윈도우 크기등을 기억해야 한다. 
이렇게 두 개체가 동시에 정의된 인자 값을 공유하는것을 동기화라 한다. 
두 개체가 정보를 송 수신할때 서로 호흡을 맞추는 것이라 할 수 있다.

9) 다중화

통신 선로 하나에서 여러 시스템을 동시에 통신할 수 잇느 방법을 다중화라 한다.

10) 전송서비스

전송 서비스는 우선순위 결정, 서비스 등급과 보안요구 등을 제어하는 서비스이다.


'Kitri_NCS3기 보안과정 > 네트워크 해킹 및 보안' 카테고리의 다른 글

스위칭 방식  (0) 2018.05.17
170420 무선 해킹  (2) 2017.04.20
170419 DoS , DDos 공격  (0) 2017.04.20
170420 metasploit Attack  (0) 2017.04.19
170418 DNS스푸핑  (0) 2017.04.18