3계층
 - 네트워크와 네트워크간의 연결
 - 주소체계 : IPv4, IPv6
 - 프로토콜 : 라우팅 프로토콜, IP, IPSEC, ...
 - IP헤더의 크기 : 20바이트(가변 크기)

 

IP(Internet Protocol)
 - IPv4 -> IPv6
 - IANA : 4자리 정수를 ' . '으로 구분하여 표기
 - 0.0.0.0 ~ 255.255.255.255(약 42억개)

 - 네트워크 주소(아이디) / 호스트 주소(아이디)

 

A class : 첫번째 숫자를 네트워크 아이디로 사용
 - 첫번째 비트가 모두 0인 비트
 - 0000 0000 ~ 0111 1111 -> 0 ~ 127 
 -  최고위의 Class로서, 1~126 (0, 127 예약됨)범위의 IP주소를 가진다. 두 번째, 세 번째 그리고 네 번째 단위의 세 숫자는 A Class가 자유롭게 네트워크 사용자에게 부여가 가능한 아이피이다.

 

B class : 두번째 숫자까지 네트워크 아이디로 사용
 - 처음 두비트가 모두 10인 비트
 - 0000 0000. 0000 ~ 0000 0000 ~ 10 11 1111. 1111 1111
 - 128. 0 ~ 191.255
 - 두 번째로 높은 단위의 Class로서, 아이피 구성에서 첫 번째 단위의 세 숫자는 128 - 191 가운데 하나를 가지며 (위의 예에서 181), 두 번째 단위의 세 숫자는 B Class가 접속할 수 있는 네트워크를 지시한다.

 

C class : 세번째 숫자까지 네트워크 아이디로 사용
 - 처음 두 비트가 모두 110인 비트
 - 110 0 0000. 0000 0000. 0000 0000. ~
   110 1 1111. 1111 1111.  1111 1111
 - 192.0.0 ~ 223.255.255

 - 최하위의 Class로서, 아이피 구성에서 첫 번째 단위의 세 숫자는 192 -223 가운데 하나를 가지며 (위의 예에서 221), 두 번째와 세 번째 단위의 세 숫자는 C Class가 접속할 수 있는 네트워크를 지시한다. C Class가 자유로이 부여할 수 있는 아이피는 마지막 네 번째 단위의 254 개이다

 

ip fragmentation(ip단편화)

identification : 0
flag : 0 1 0
offset

ttl(time to live) :64 (maxinum hop)
protocol type(ip packet type) : TCP, UDP

 

 

ethernet : 이더네슨 컴퓨터 네트워크 기술의 하나로 전세계의 사무실이나 가정에서 일반적으로 사용되는 LAN에서 가장 많이 활용되는 기술 규격.

이더넷ㅇㄴ OSI모델의 물리계층에서 신호와 배선, 데이터 계층에서 MAC(media access control) 패킷과 프로토콜 형식을 정의.

 

ethernet hearer

 - 14바이트 고정크기
 - 도착지 mac address
 - 출발지 mac address
 - 이더넷 타입

 

dst는 도착치 MAC주소 볼수 있으며, sdt는 출발지 MAC주소이다.

이런식으로 볼 수가 있다.

 

 

 

 

'정보보안 > 네트워크 보안' 카테고리의 다른 글

UDP헤더  (0) 2018.03.16
OSI 7계층  (0) 2018.03.13
시스템 구축  (0) 2018.03.13

1. UDP헤더

 

우선 리눅스에 어떠한 IP들이 들어오는지에대해서 sniffer을 만들어서

 

bind를 할때 리눅스의 장치를 확인하기 위해 eth0를 넣어주었다. SOCK_RAW는 OSI 4계층까지 조작 및 볼수 있다.

이렇게 함으로써 리눅스로 들어오는 신호 및 나가는 신호에 대해서 볼수 있게 되었다.

 

udpserver를 켜두고 이어서 sniffer을 켜두고 클라이언트를 통해 데이터를 보내보았다.

 

 

 

hi123
b'\x00\x0c)\x10\xf9\x11\x00 \x0c)?\x88\x12\x08\x00E\x00\x00!\x00\x00@\x00@\x11\xb2\x8e\xc0\xa8\x03w\xc0\xa8\x03v \xa9EN \x00\r\xb3\x94 hi123\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
b'\x00\x0c)?\x88\x12\x00\x0c)\x10\xf9\x11\x08\x00E\x00\x00!\x00\x00@\x00@\x11\xb2\x8e\xc0\xa8\x03v\xc0\xa8\x03wN \xa9E\x00\r\xb3\x94 hi123'

클라이언트에서 hi123이라는 데이터를 받고 데이터를 보낸 로그이다.

 

보면 hi123에서 8bit앞이 UDP의 헤더이다.


받은(UDP헤더 )
\xa9EN \x00\r\xb3\x94

보낸(UDP헤더 )
\xa9E\x00\r\xb3\x94

 

받은 8bit를 보면 어떤것인지 잘 모르겠다.

그래서 python쉘을 실행함으로써 알아보기로 했다.

 

 

각문자열은 0번부터 7번까지 8개의 데이터가 있는것을 볼수 있었다.

각 문자열은 눈으로는 볼수 없으나 하지만 각 숫자형 데이터라는것을 알 수 있었다.

받은 포트번호를 알기위해 16bit를 맞추기 위해서 udp의 헤더의 3번째 비트틀 좌측으로 8비트밀고 4번째 비트를 더하면 포트번호가 나온다.

그래서 받은 데이터를 20000이라는 포트번호를 알게되었다.

 

 

 

2. 엔디안 : 엔디안(Endianness)은 컴퓨터의 메모리와 같은 1차원의 공간에 여러 개의 연속된 대상을 배열하는 방법을 뜻하며, 바이트를 배열하는 방법을 특히 바이트 순서(Byte order)라 한다

 

 - 운영체제에서 사용하는 보통 리틀엔디안이다. (intel계열의 CPU는 리틀엔디안)

하지만 네트워크에서 사용하는 엔디안은 빅엔디안이다.

 

 

- B는 1바이트, H는 2바이트 , L은 4바이트, ! 또는 >빅엔디안을 나타냈다.

그러므로 네트워크는 빅엔디안이기 때문에 거기에 맞추어서 봐야하기때문에 빅엔디안로 봐야하는것이다.

그래서 마지막에 unpack햇을경우 우리가 얻고자하는 UDP헤더의 정보를 알수있게된것이다.

 

 

 

'정보보안 > 네트워크 보안' 카테고리의 다른 글

IP헤더  (0) 2018.03.19
OSI 7계층  (0) 2018.03.13
시스템 구축  (0) 2018.03.13

OSI 7계층

 - 표준 네트워크

 - 네트워크를 7단계로 분류

 

OSI 7계층은 상위 3계층, 하위 4계층으로 분류 할 수 있다.

 

 OSI 7계층

 주요내용

주요 프로토콜 

 

 Application

 - 사용자의 소프트웨어를 접근 가능하도록함.

 - 사용자에게 최종서비스 제공 

 - FTP, SNMP, HTTP, mail,Telnet, ... 등

 상위

3계층

 Presentation

 - 포맷기능, 압축, 암호화 

 - 텍스트 및 그래픽 정보를 컴퓨터가 이해할 수 있는    16진수 데이터로 교환

 - 압축, 암호 코드 변환

 - GIF, ASCII, EBCDIC

Session 

 - 세션연결 및 동기화 수행, 통신 방식결정

 - 가상연결을 제공하여 Login / Logout수행

 - 반이중, 전이중, 완전이중 결정 

 - SSL

Transport 

 - 가상연결, 에러제어, Data흐름제어, segment 단위

 - 두개의 종단간 end - to - end 데이터 흐름이 가능하도록 논리적 주소연결 

 - 신뢰도, 품질보증, 오류탐지 및 교정기능 제공

 - 다중화 발생

 - TCP, UDP 

 하위

4계층

 

Network 

 - 경로선택, 라우팅 수행, 논리적 주소 연결(IP)

 - 데이터 흐름조절, 주소 지정매커니즘 구현

 - 네트워크에서 노드에 전송되는 팻킷흐름을 통제하고,상태 메시지가 네트워크상에서 어떻게 노드로 전송되는가를 정의

 - Datagram 단위 

 - IP, ICMP

 - 라우팅 프로토콜(RIP, O SPF, BGF) 

 Data Link

 - 물리주소 결정, 에러제어, 흐름제어, 데이터 전송

 - Frame단위, 전송오류를 처리하는 최초의 계층 

 - 흐름제어 오류제어(ARQ)

 - 브리지, PPTP, L2TP, HDLC

 - Frame Relay  

Physical 

 - 전기적, 기계적 연결정의 , 실제 Data bit전송

 - Bit단위, 전기적 신호, 전압구성, 케이블 인터페이스 등을 구성

 - Data Rates, line noise control, 동기화기능

수행

  - 매체 : 동축케이블, 광섬유, Twist pair cabe( ex : UTP )

 

2. L4 : 전송계층(Transport)

TCP : 두 호스트 간에 1:1로 연결되어 양방향의 데이터 교환이 이루어지기 때문에 안정적인 데이터 전송이 보장.

1대1연결을 만들때 상대의 호스트의 IP를 알아야 함, 이때 사용하는것이 IP이다. TCP와 IP를 묶어서 TCP/IP라고 한다.

TCP/IP는 네트워크 프로그래밍의 핵심 프로토콜이라 이해하면된다.

HTTP(인터넷 웹 서비스), FTP(파일 전송 서비스) TCP/IP기반한 응용프로토콜

 - TCP소캣을 만들기 위해서는 소캣을 생성할때 socket모듈에 정의된 SOCK_STREAM을 전달해주면된다

 

UDP : TCP와 달리 소캣간에 1:1연결이 아니므로 안정적이지는 않지만 데이터의 전송이 빠름.

데이터들이 순서대로 도착하지 않는 특성이 있는데 이것또한 TCP와 달리 호스트간에 연결을 만들지 않고 데이터를 전송할 수 있기 떄문.

 - UDP소캣을 만들려면 소캣을 생성할떄 socket모듈의 SOCK_DGRAM을 전달해주면된다.

 

 

 

'정보보안 > 네트워크 보안' 카테고리의 다른 글

IP헤더  (0) 2018.03.19
UDP헤더  (0) 2018.03.16
시스템 구축  (0) 2018.03.13

+ Recent posts

티스토리 친구하기