목표
1. 네트워크의 기초 개념을 이해한다.
2. OSI 계층의 세부 동작을 이해한다.
3. 3 - way handshaking을 이해한다.
네트워크 보안에서 OSI 7 계층을 기본적으로 이해하고, 각 계층별로 발생할 수 있는 보안 이슈에는 어떤 것들이 있는지 살펴보는 것이 중요하다.
네트워크의 기초
OSI(Open System Interconnection) 7계층
: ISO (International Organization for Standardization, 국제 표준화 기구)라는 단체에서 인증해준 표준 프로토콜을 기반으로 한, 다양한 네트워크가 상호 연동할 수 있도록 해주는 표준 네트워크 모델
7계층 - 응용 프로그램 계층 (Application Layer)
: 컴퓨터에서 사용하는 다양한 응용 프로그램을 의미
6계층 - 표현 계층 (Presentation Layer)
: 패킷을 암호화하는 일련의 과정을 수행함
5계층 - 세션 계층 (Session Layer)
: 네트워크 간 서로 연결되어 있음을 나타낼 때 사용
4계층 - 전송 계층 (Transport Layer)
: IP 주소를 통해 원거리 시스템 간 통신이 가능하게 함. (ex - TCP, UDP protocol)
데이터 패킷이 정확하게 도달했는지, 에러가 발생했는지, 데이터 흐름이 원활한지 등의 전송 제어를 다룸
3계층 - 네트워크 계층 (Network Layer)
: 포트(Port)를 이용해 시스템 내의 응용 프로그램 간 통신을 가능하게 함 / IP 구조 (32 bit 단위) 활용
2계층 - 데이터 링크 계층 (Data Link Layer)
: 물리 장치의 고유 주소인 MAC(Media Access Control)에 대한 로컬 통신을 가능하게 함
(LAN 카드에 대한 물리적 주소(= MAC 주소)를 가짐)
1계층 - 물리 계층 (Physical Layer)
: 신호를 전달하기 위한 물리적인 연결 (= 케이블 + 케이블을 컴퓨터와 연결하는 LAN 카드)
크게 구분하여 4개의 계층으로 구분하기도 함
5, 6, 7계층을 묶어 하나의 응용 계층
전송 계층
네트워크 계층
1, 2계층을 묶어 하나의 물리 계층
IT의 발전에 따라 계층이 변화함
예를 들어 2.5 Layer와 같이 데이터 링크 계층과 네트워크 계층을 다양하게 연결할 수 있는 것들이 만들어짐
1계층 - 물리 계층
인터넷 이용시의 랜 케이블, 전화선, 동축 케이블 또는 광케이블 등의 시스템간의 물리적인 연결매체
카테고리 | 최대속도 | 용도 |
CAT 1 | 1Mbps 미만 | - 아날로그 음성 (일반적인 전화 서비스) - ISDN 기본률 접속 (Basic Rate Interface) - Doorbell Wring |
CAT 2 | 4Mbps | - 주로 IBM의 토큰링 네트워크에 사용 (초창기) |
CAT 3 | 16 Mbps | - 10BASE-T 이더넷 상의 데이터 및 음성 |
CAT 4 | 20 Mbps | - 16 Mbps 토큰링에서 사용. 많이 사용되지는 않음 |
CAT 5 | 100 Mbps | - 옥내 수평 및 간선 배선망(100MHz) - 4/16Mbps 토큰링 (IEEE 802.5) - 10/100 BASE-T(IEEE 802.3) - 155Mbps ATM |
CAT 6 | 250 Mbps | - 옥내 수평 및 간선 배선망(250MHz) - 4/16Mbps 토큰링 (IEEE 802.5) - 10/100 BASE-T(IEEE 802.3) - 155/622Mbps ATM - 기가비트 이더넷 |
케이블 선의 분류
구분 | 내용 |
UTP (Unshielded Twisted Pair) | 두 선간의 전자기 유도를 줄이기 위하여 절연의 구리선이 서로 꼬여있다. 제품 전선과 피복만으로 구성되어 있다. 일반적으로 많이 씀. |
FTP (Foil Screened Twisted Pair Cable) | 알루미늄 은박이 4가닥의 선을 감싸고 있다. UTP보다 절연 기능이 탁월해 공장 배선용으로 많이 사용된다. |
STP (Shielded Twisted Pair Cable) | 연선으로 된 케이블 곁에 외부 피복, 또는 차매재가 추가되었는데도 (쉴드 처리) 이 차매재는 접지의 역할을 한다. 따라서 외부의 노이즈를 차단하거나 전기적 신호의 간섭에 탁월하다. |
일반적으로 네트워크 연결시에 UTP 케이블 중 CAT 5 또는 CAT 6에 해당되는 10 / 100 / 1000 BASE-T(IEEE802.3) 선에 RJ 45 커넥터를 사용
2계층 - 데이터 링크 계층
MAC 주소
>>> igconfig /all
MAC 주소는 LAN 카드의 물리적 주소를 의미하며, windows cmd 창에 위와 같은 명령어를 입력하면 MAC 주소를 확인할 수 있다. 이 MAC 주소는 총 12개의 16진수 숫자로 구성되어 있는데(OO-OO-OO-OO-OO-OO), 앞의 6개의 16진수는 OUI(Organizational Unique Identifier)라고 부르며 제조사의 정보를 나타낸다. 뒤의 6개의 16진수는 Host Identifier로 호스트를 구성할 수 있는 각 회사에서 생성되는 네트워크 카드에 임의로 붙이는 일종의 시리얼이다.
LAN 카드
- 한국과 일본에서 주로 랜카드라고 불리며, '네트워크 카드'가 정식 명칭인듯
- NIC(Network Interface Controller)라고도 불리고, 이더넷 카드, 네트워크 어뎁터라고도 불림
MAC 주소의 뒷 6자리는 UAA (Universally Administered Address) 라고도 불리는 것 같음.
MAC 주소는 48비트, 절반씩 24비트. 각 자리가 16진수. 즉 2**4로 한 자리에 4비트
스위치 : 1계층과 2계층만을 사용하는 네트워크 통신
1계층과 2계층만을 이용해서 데이터 통신이 이루어지는데, 이때 '스위치'라는 장비를 사용하여 네트워크 데이터 패킷을 제어한다.
송신 컴퓨터에서 패킷 수신 컴퓨터까지의 패킷 흐름
데이터를 송신지에서 수신지로 전송할 때, 각 계층에서의 데이터가 다음 계층의 헤더로 붙으면서 내려오게 된다. 이때 데이터 링크 계층에 있는 OUI와 Host Identifier 정보를 통해 물리적인 스위치를 통해서 목적지까지 보내주는 것이다. 스위치는 목적지의 정보를 알려줘서 수신지까지 도달하게끔 동작한다.
이때 패킷에는 2계층의 정보인 출발지와 도착지의 MAC 주소를 포함하고 있으며, 3계층까지의 패킷정보를 함께 보내는 것이라고 한다.
예시)
1번 포트 | |
2번 포트 | A방 컴퓨터의 MAC 주소 |
3번 포트 | B방 컴퓨터의 MAC 주소 |
4번 포트 |
MAC 주소가 포트가 아닌 IP 구조로 되어 있으면 문제가 발생한다. 스위치 메모리는 2계층까지 올라가기 때문에 MAC 주소를 가지게 되며, 포트의 정보를 데이터로 보관하게 되어 있다.
정리하면 다음과 같다.
1. 패킷 송신 컴퓨터가 패킷 수신 컴퓨터의 MAC 주소를 확인한다.
2. 패킷의 목적지 MAC 주소부분에 패킷 수신 컴퓨터의 MAC 주소를 적어 스위치로 보낸다. (그림의 1번)
3. 스위치에서 2번 포트로 수신된 패킷의 목적지 MAC 주소가 3번 포트와 연결된 컴퓨터라는 것을 메모리에서 확인한 뒤, 패킷을 3번 포트로 보낸다. (그림의 2번)
4. 패킷 수신 컴퓨터로 패킷이 흘러간다. (그림의 3번)
3계층 - 네트워크 계층
IP 주소
>>> igconfig /all
3계층은 IP 정보를 가지고 있다. IP 주소 또한 MAC 주소와 마찬가지로 ipconfig 명령어를 통해 알 수 있다. MAC 주소가 물리적인 주소(Physical Address)를 나타내며 LAN 카드의 주소로, 이는 변경되는 것이 아니다. IP 주소는 논리적인 주소(Logical Address)를 나타내며 논리적 모델을 통해 만들어진 것으로 변경이 가능한 주소이다.
이미지의 내용이 다른 것은 이전에는 랜선을 꼽지 않았기 때문이다.
xxxxxxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx
이 IP 주소는 8비트의 수 4개로 구성되어 있으며, 2진수 32자리로 표현된 것이 8자리마다 점으로 구분된다. 이때 8비트로 구분할 수 있는 범위는 0~255이며, 대략 43억개의 IP 주소를 만들 수 있다. 초기에는 이 숫자로 감당할 수 있었으나, 현재는 이미 주소가 고갈되어 IP v4에서 IP v6로 전환되고 있다. 이때의 IP v6는 43억의 네제곱 개이다.
이 때 IP는 A, B, C, D, E 5개의 클래스로 구분한다.
클래스 | 8비트 | 8비트 | 8비트 | 8비트 |
A | 네트워크 주소 | 호스트 주소 | ||
B | 네트워크 주소 | 호스트 주소 | ||
C | 네트워크 주소 | 호스트 주소 | ||
A 클래스 : 첫 번째 8비트까지가 네트워크 주소. 나머지는 호스트 주소이다. 첫 8비트 중에 가장 앞의 0이 구분점이 되며 이를 '최상위 비트'라고 말하고, 나머지 2**7 개로 네트워크 영역을 나타내게 된다. 나머지 2**24 개의 호스트 주소를 표현하게 된다.
클래스 | 최상위 비트 | IP 첫 블록 | 네트워크 수 | 호스트 수 |
A | 0 | 0~127 | 2**7 (128) | 2**24 (16777216) |
B | 10 | 128~191 | 2**14 (16384) | 2**16 (65536) |
C | 110 | 192~223 | 2**21 (2097152) | 2**8 (256) |
D | 1110 | 224~239 | ||
E | - | 240~255 |
사설 네트워크 범위
클래스 | 사설 네트워크 |
A | 10.0.0.0 ~ 10.255.255.255 |
B | 172.16.0.0 ~ 172.31.255.255 |
C | 192.168.0.0 ~ 192.168.255.255 |
IP가 부족한 것을 방지하기 위하여 만든 사설 네트워크 대역이다.
2, 3계층에서의 패킷 흐름
네트워크 계층에서는 스위치를 통해 외부 인터넷 망으로 나갈 수 있도록 합니다. 스위치가 가까운 지역의 컴퓨터를 연결할 때 사용하는 것이라면, 라우터는 IP를 기반으로 인터넷 망으로
라우터에는 라우팅 테이블이 있는데, 이 테이블에 IP 정보를 가지고 있다.
예시)
3계층까지의 패킷 내용이 구분되어 출발지 및 목적지의 IP와 포트 정보가 들어가며, 실질적으로 출발지와 목적지의 MAC 주소를 패킷 정보로 갖게 된다. 이런 패킷의 정보를 단계별로 살펴보면 다음과 같다.
1. 출발지의 IP와 MAC 주소가 기록된다.
4계층까지의 패킷 정보 | 172.16.0.100 | 목적지의 IP 자리 | AA - AA | 목적지의 MAC 자리 |
2. 목적지의 IP 주소가 입력된다.
4계층까지의 패킷 정보 | 172.16.0.100 | 200.1.1.20 | AA - AA | 목적지의 MAC 자리 |
3. 목적지의 MAC 주소에는 랜을 벗어나기 위한 1차적인 목적지인 게이트웨이의 MAC 주소를 입력한다.(ARP 프로토콜)
4계층까지의 패킷 정보 | 172.16.0.100 | 200.1.1.20 | AA - AA | BB - BB |
4. 라우터에서 사용한 2계층 정보를 벗겨낸다.
4계층까지의 패킷 정보 | 172.16.0.100 | 200.1.1.20 |
5. 다음 라우터까지의 2계층 정보를 패킷에 덧씌운다. 이때 DD - DD는 200.1.1.20까지 가기 위해 경유해야 할 다음 라우터의 네트워크 인터페이스 카드의 MAC 주소이다.
4계층까지의 패킷 정보 | 172.16.0.100 | 200.1.1.20 | CC - CC | DD - DD |
4계층 - 전송 계층
2계층에서는 출발지와 도착지의 MAC 주소, 3계층에서는 출발지와 도착지의 IP 주소를 패킷에 포함하고 있었다면, 4계층에서는 출발지와 도착지의 포트 정보를 캡슐화를 통해 패킷에 포함하고 있다.
4계층 | 포트 | 패킷이 찾아갈 응용프로그램과 통하는 통로의 번호 |
3계층 | IP | 시스템의 주소 |
2계층 | MAC 주소 | 네트워크 카드의 고유 식별자 |
TCP (Transmission Control Protocol)
: 4계층의 대표적인 프로토콜. 전송 제어 역할.
연결 지향형 프로토콜로서 수신측이 데이터를 흘려버리지 않게 데이터 흐름을 제어하고 (Flow Control), 전송 중 에러가 발생할 경우 자동으로 재전송하는 에러 제어 (Error Control) 등의 기능을 통해 데이터의 확실한 전송을 보장함. 완전하지는 않기 때문에 해커들에게 많은 공격을 받게 됨.
포트 (Port)
: 시스템에서 구동되는 응용 프로그램들은 네크워킹을 하기 위해서 자신에게 해당되는 패킷을 식별하기 위해 사용하는 것이며, 0번부터 65535번까지 존재한다.
네트워크 해킹에서 어떤 포트가 열려있는지를 확인하여 공격하는 기법들이 많음. 따라서 사용하고 있는 시스템에서 어떤 포트가 열려있는지 확인하고, 그에 따른 관리 제어를 해야 한다. 사용하지 않는 포트들은 막아두는 것이 보안 정책 상 안전성을 높일 수 있는 방법이면서 가장 간단한 방법이다.
주요 포트와 서비스
- Well Known : 0부터 1023까지의 1024개의 포트를 지칭
- 0은 보통 사용하지 않으며, 나머지 1023까지의 포트는 대부분 고유의 용도가 있음
포트번호 | 서비스 | 설명 |
20 | FTP | - File Transfer Protocol-Datagram - FTP 연결 시 실제로 데이터를 전송 |
21 | FTP | - File Transfer Protocol-Control - FTP 연결 시 인증과 제어 |
23 | Telnet | - 텔넷 서비스로, 원격지 서버의 실행창을 얻어냄 |
25 | SMTP | - Simple Message Transfer Protocol - 메일을 발송할 때 사용 |
53 | DNS | - Domain Name Service - 이름을 해석하는 데 사용 |
69 | TFTP | - Trivial File Transfer Protocol - 인증이 존재하지 않는 단순한 파일 전송에 사용 |
80 | HTTP | - Hyper Text Transfer Protocol - 웹 서비스를 제공 |
110 | POP3 | - Post Office Protocol - 메일 서버로 전송된 메일을 읽을 때 사용 |
111 | RPC | - Sun의 Remote Procedure Call - 원격에서 서버의 프로세스를 실행할 수 있게 함 |
138 | NetBIOS | - Network Basic Input Ouput Service - 윈도우에서 파일을 공유할 수 있게 함 |
143 | IMAP | - Internet Message Access Protocol - POP3와 기본적으로 같으나, 메일을 읽은 후에도 서버에 남음 |
161 | SNMP | - Simple Network Management Protocol - 네트워크 관리와 모니터링을 위해 사용 |
- 출발지의 포트는 운영체제나 응용 프로그램마다 조금씩 다르나, 보통 1025 ~ 65535의 포트 중에서 사용하지 않는 임의의 포트를 응용 프로그램별로 할당하여 사용. 다음은 웹 서버의 서비스 포트를 예로 듦.
5계층까지의 패킷 | 출발지 포트 | 80 | 출발지 IP | 목적지 IP | 출발지 MAC | 목적지 MAC |
3계층과 4계층의 정보 확인
>>> netstat -an
위와 같은 명령어로 확인이 가능하다.
가장 왼쪽부터 4계층의 프로토콜의 종류, 클라이언트 PC의 IP 주소와 포트, 요청하는 외부의 IP 주소와 포트, 마지막으로 연결 상태를 나타낸다. 캡쳐 예시는 모두 컴퓨터 자신을 나타내는 127.0.0.1이지만, 명령어로 확인해보면 그것이 아닌 다른 IP 정보들에 대한 정보도 나타내고 있으니 살펴보면 되겠다.
3 - Way Handshaking
1. 두 시스템이 통신을 하기 전에, 클라이언트는 포트가 닫힌 Closed 상태이며, 서버는 해당 포트로 항상 서비스를 제공할 수 있는 Listen 상태.
2. 처음 클라이언트가 통신을 하고자 하면 임의의 포트 번호가 클라이언트 프로그램에 할당되고, 클라이언트는 서버에 연결하고 싶다는 의사 표시로 SYN Sent 상태가 되며 SYN (Synchronization) 패킷을 보냄. (1 Way)
3. 클라이언트의 연결 요청을 받은 서버는 SYN Received 상태가 되며, 클라이언트에게 연결을 해도 좋다는 의미로 SYN + ACK 패킷을 보냄. (2 Way)
4. 마지막으로 클라이언트는 Established 상태가 되며, 연결을 요청한 것에 대한 서버의 응답을 확인했다는 표시로 ACK 패킷을 서버에 보냄. ACK (Acknowledgement) 패킷을 받은 서버의 상태 또한 Established 상태가 됨. (3 Way)
TCP 세션의 종료
1. 통신을 하는 중에 클라이언트와 서버 모두 Established 상태.
2. 통신을 끊고자 하는 클라이언트가 서버에 FIN (Finish) 패킷을 보냄. 이때, 클라이언트는 Close Wait 상태가 됨.
3. 서버는 클라이언트의 연결 종료 요청을 확인하고 클라이언트에게 응답으로 ACK 패킷을 보냄. 서버도 클라이언트의 연결을 종료하겠다는 의미로 FIN 패킷을 보내고 Close Wait 상태가 됨.
4. 마지막으로 클라이언트는 연결 종료를 요청한 것에 대한 서버의 응답을 확인했다는 의미로 ACK 패킷을 서버에 보냄.
UDP (User Datagram Protocol)
: TCP와 다르게 데이터의 신뢰성 있는 전송을 보장하지는 않지만, 신뢰성이 아주 높은 회선을 사용하는 경우이거나 데이터의 확실한 전송을 요구하지 않는 통신을 하는 경우, 한 번에 많은 상대에게 메시지를 전송하고자 하는 경우에는 전송 경로 확립을 위한 번잡함을 생략하고 시간을 절약할 수 있음.
5계층 - 세션 계층
- 기본적으로는 두 시스템간의 통신 중에 동기화를 유지하고 데이터 교환을 관리함.
- 전송 계층이 종단간에 논리적인 설정을 담당한다면, 세션 계층은 이런 연결에 정보 교환을 효과적으로 할 수 있게 추가 서비스를 함.
6계층 - 표현 계층
- 데이터의 구조를 하나의 통일된 형식으로 표현
- 데이터의 압축과 암호화 기능을 수행
7계층 - 응용 프로그램 계층
- 사용자나 응용 프로그램 사이에 데이터의 교환이 가능하게 함.
- ex) HTTP, FTP, 터미널, 여러 메일 프로그램, 디렉토리 서비스 등
'정보보호 > 정보보호학 개론 (2013, 백석대 이근호 교수님)' 카테고리의 다른 글
3-3. 스니핑(Sniffing) 공격 (0) | 2024.08.02 |
---|---|
3-2. 서비스 거부(DoS) 공격 (0) | 2024.08.01 |
2-3. 인터넷 사기 관련 법령 (0) | 2024.07.30 |
2-2. 해킹 관련 법령 (0) | 2024.07.30 |
2-1. 사이버 범죄와 윤리강령 (0) | 2024.07.30 |
댓글