'한빛아카데미 - 네트워크 해킹과 보안: 정보 보안 개론과 실습' 교재에 관한 내용입니다.
프로토콜(Protocol): 컴퓨터와 컴퓨터 사이에서 메시지를 전달하는 과정
프로토콜의 3가지 요소
• 구문(Syntax): 데이터의 구조나 포맷을 의미
• 의미(Semantics): 전송되는 데이터의 각 부분이 무엇을 뜻하는지 를 알 수 있게 미리 정해 둔 규칙(데이터 자체 뿐만 아니라 오류 제어, 동기 제어, 흐름 제어를 포함)
• 순서(Timing): 어떤 데이터를 보낼 것인지와 얼마나 빠르게 데이 터를 보낼 것인지 정의
프로토콜의 기능
• 주소 설정(Addressing): 서로 다른 시스템의 두 개체가 통신을 하는 경우 필요
• 순서 제어(Sequence Control): 프로토콜 데이터 단위를 전송할 때 보내는 순서를 명시하는 기능(연결 지향형(Connection-Oriented)에만 사용)
• 데이터 분할과 재조합(Fragmentation & Reassembly): 대용량 파일을 전송할 때 전송 효율이 높은 작은 단위로 나누어 전송한 뒤 전송 받은 시스템에서 이를 재조합해야 함
• 캡슐화(Encapsulation): 데이터에 제어 정보를 덧붙이는 것(헤더)
• 연결제어(Connection Control): 연결 설정, 데이터 전송, 연결 해제에 대한 통제 수행
• 흐름 제어(Flow Control): 송신 측에서 오는 데이터의 양이나 속도를 조절하는 기능, 송신자와 수신자의 속도 차이에 대한 대응
• 오류 제어(Error Control): 두 개체 사이에서 데이터를 교환할 때 데이터에 오류나 변경이 있을 경우를 발견하는 기능
• 동기화(Synchronization): 두 개체 데이터를 교환할 때 서로 동시에 똑같이 정의된 인자 값 을 공유하는 것 정보를 송수신 할 때에 호흡을 맞추는 기능
• 다중화(Multiplexing): 통신 선로 하나에서 여러 데이터나 시스템을 동시에 통신할 수 있는 기법
• 전송 서비스(Quality of Service, QoS): 우선 순위 결정, 서비스 등급과 보안 요구 등을 제어하는 서비스
OSI 7 계층
사용자 기반 계층 | 응용 계층(Application Layer) | 사용자 인터페이스 제공. 요구에 따른 정보처리 |
표현 계층(Presentation Layer) | 전달되는 정보를 데이터로 표현, 암호화, 압축 | |
세션 계층(Session Layer) | 통신 시작, 유지/관리, 종료 | |
트랜스포트 계층 | 전송 계층(Transport Layer) | 종단간(응용 프로세스 간) 신뢰성 있는 메시지 전송(에러제어, 흐름제어, 혼잡제어) |
네트워크 기반 계층 | 네트워크 계층(Network Layer) | Datagram을 발신지(노드)에서 목적지(노드)까지 전달(라우팅) |
데이터링크 계층(DataLink Layer) | 노드간(물리적으로 연결된) 신뢰성 있는 전송 제공(에러제어, 흐름제어, 혼잡제어) | |
물리 계층(Physical Layer) | 물리매체로 비트를 신호로 변경하여 전송(부호화, 기계적, 전기적 특성 제공) |
OSI 7 계층과 TCP/IP
OSI 7계층 | TCP/IP |
응용 계층(Application Layer) | 응용 계층(Application Layer) |
표현 계층(Presentation Layer) | |
세션 계층(Session Layer) | |
전송 계층(Transport Layer) | 전송 계층(Transport Layer) |
네트워크 계층(Network Layer) | 인터넷 계층(Internet Layer) |
데이터링크 계층(DataLink Layer) | 네트워크 접근 계층 (Network Access Layer) |
물리 계층(Physical Layer) | |
프로토콜이 아니라 시스템 아키텍처를 이해하고 설계하는 데 사용되는 참조 모델 | 인터넷을 포함한 모든 네트워크에 사용되는 표준 프로토콜 |
물리 계층 장비 | 리피터(Repeater): 네트워크를 연장하기 위한 장비 |
허브(Hub): 모든 곳에 똑같이 복사해서 전송 |
|
데이터 링크(MAC) 계층 장비 | MAC 주소: 총 12개의 16진수로 구성 |
이더넷: IEEE 802.3이 표준, 이더넷 패킷의 최소 길이는 64 Bytes, 최대 길이는 1,518 Bytes | |
브리지(Bridge): 랜과 랜을 연결하는 초기의 네트워크 장치, 프레임이 들어오면 목적지 MAC주소를 확인하여 들어온 인터페이스에 있을 경우 다른 인터페이스로 가는 패킷을 막고, 다른 인터페이스에 있을 경우 전달 | |
스위치(Switch): 컷스루(Cut-Through) 방식, 저장 후 전송 방식(Store & Forward), 인텔리전트 스위칭 방식(Intelligent Switching) | |
반이중(Half-Duplex) 방식: 양방향 통신 기능을 제공하지만 한 번에 하나의 동작만 가능 전이숭 방식(Full-Duplex) 방식: 송신 포트와 수신 포트를 분리해 반이중 방식보다 성능이 두 배로 뛰어나며, 충돌이 없어서 전송 거리의 제한을 연장할 수 있음 |
VER (4 bits) | HLEN (4 bits) | Service type (8 bits) | Total length (16 bits) | |
Identification (16 bits) | Flags (3 bit) | Fragmentation offset (13 bits) | ||
Time-to-live (8 bits) | Protocol (8 bits) | Header checksum (16 bits) | ||
Source IP address (32 bits) | ||||
Destination IP address (32 bits) | ||||
Options + padding (0 to 40 bytes) |
• VER: IP의 버전 정보, 0x4일 경우 IPv4를 의미
• HLEN: IP헤더의 길이로 이 필드 값에 4를 곱한 값이 실제 헤더의 바이트 길이
• Service type: 데이터그램을 어떻게 처리할지를 정의하는 서비스의 유형(최소 지연(Delay), 최대 처리율(MTU), 최대 신뢰성(Reliability), 최소 비용 설정(Cost)), 기본 값은 0
• Total length: 헤더를 포함한 데이터그램의 전체 길이를 의미
• Identification: 데이터그램이 단편화(Fragmentation)될 때 모든 단편에 이 값이 복사되고, 단편화 된 데이터그램이 생성될 때마다 1씩 증가
• Flag: 단편화 여부와 단편화된 조각이 첫 번째 조각인지, 중간 혹은 마지막 조각인지를 알려준다.
- RF(Reserved Fragment): 아직 사용하지 않으므로 항상 0
- DF(Don`t Fragment): 1이면 단편화되지 않았음을, 0이면 단편화되었음을 의미한다.
- MF(More Fragment): 0이면 마지막 단편이거나 유일한 단편이고, 1이면 마지막 단편이 아님을 의미한다.
• TTL(Time-to-live): 라우팅 과정에서 라우터를 몇 개 이상 통과하면 해당 패킷을 버릴지를 결정
• Protocol: IP계층의 서비스를 사용하는 상위 계층 프로토콜을 정의(1: ICMP, 2: IGMP, 6: TCP. 17: UDP)
• Header checksum: 패킷 전달 중 발생할 수 있는 오류 검사를 위해 사용하는 것으로, 송신측에서 체크섬을 계산하여 전송
• Source IP address: 송신측 IP 주소
• Destination IP address: 수신측 IP 주소
• Options + padding: 해당 패킷에 대한 옵션 사항, 옵션 내용이 입력될 경우 그 값이 32배수로 데이터가 마무리되도록 0으로 채운다.
네트워크 계층 프로토콜
• ARP(Address Resolution Protocol): 데이터를 전달하려는 IP 주소와 통신에 필요한 물리적인 주소(MAC) 를 알아내는 프로토콜, 선택된 매체에 브로드캐스트(Broadcast)를 통해 특정 IP 주소를 사용 하는 호스트가 응답을 하도록 요구하는 방식을 사용
• RARP(Reverse Address Resolution Protocol): 디스크가 없는 호스트가 자신의 IP 주소를 서버로부터 확인하는 프로토콜
• ICMP(Internet Control Message Protocol): 호스트 서버와 인터넷 게이트웨이 사이에서 메시지를 제어하고 오류 를 알려주는 프로토콜
- ICMP Echo Request 메시지: 송신측 전송 패킷이 목적지 노드나 라우터에 도착했는지를 확인하는 데 사용
- ICMP Destination Unreachable 메시지: 라우터가 송신측 패킷을 목적지에 보내지 못할 경우 보내는 메시지, 목적지까지 전송되지 못한 이유를 나타내는 정보가 포함
- ICMP Redirect 메시지: 라우터가 송신측 노드에 적합하지 않은 경로로 설정되어 있을 경우 해당 노드에 대한 최적화된 경로를 다시 지정해주는 메시지
- ICMP Time Exceeded 메시지: 패킷이 네트워크 사이에서 무한 루프로 돌지 않게 패킷을 처리할 때 마다 TTL(Time to Live)을 감소시키다가 값이 ‘0’이 되면 보내는 메시지
- ICMP Source Quench 메시지: IP 라우터의 WAN 쪽에 집중이 발생하여 송신 불능 상태가 되면 보내 는 메시지, 송신측은 이 메시지의 정보를 해석하여 송신 패킷의 양을 제어
• IGMP(Internet Group Management Protocol): 멀티캐스트에 관여하는 프로토콜로 멀티캐스트 그룹을 관리하는 역할
유니캐스트(Unicast): 한 호스트에서 다른 호스트로 전송하는 것
브로드캐스트(Broadcast): 호스트에서 IP 네트워크에 있는 전체 호스트로 데이터를 전송하는 것
멀티캐스트(Multicast): 송신하는 하나의 호스트에 특정한 호스트를 묶어서 전송하는 것
네트워크 계층 장비
• 라우터
- 네트워크의 대표적인 장비로, 게이트웨이(Gateway)라고도 함
- 게이트웨이는 원래 서로 다른 프로토콜을 사용하는 네트워크를 연결 해주는 장비
- 논리적으로 분리된 둘 이상의 네트워크를 연결
- 로컬 네트워크에서 브로드캐스트를 차단하여 네트워크를 분리
- 패킷의 최적 경로를 찾기 위한 라우팅 테이블 구성
- 패킷을 목적지까지 가장 빠르게 보내는 길잡이 역할 담당
• 정적 라우팅
- 관리자 권한으로 특정 경로를 통해서만 패킷이 지날 수 있도록 설정
- 네트워크 변경사항이 발생하면 라우팅 테이블을 수동으로 직접 고쳐 야 함
- 보안이 중요한 경우 선호
• 정적 라우팅의 특징
- 초기에 관리자가 다양한 라우팅 정보를 분석한 최적의 경로 설정
- 라우팅 알고리즘을 통한 경로 설정이 이루어지지 않아 부하 감소
- 네트워크 환경 변화에 대한 능동적인 대처가 어려움
- 네트워크 환경 변화 시 관리자가 경로를 재산출하여 각 라우터에 제 공해야 함
- 비교적 환경 변화가 적은 형태의 네트워크에 적합
• 동적 라우팅
- 라우터가 네트워크 연결 상태를 스스로 파악하여 최적의 경로를 선 택해 전송
- 네트워크 연결 형태가 변경되어도 자동으로 문제를 해결
• 동적 라우팅의 특징
- 경로 설정이 실시간으로 이루어져 네트워크 환경 변화에 능동적으로 대처 가능
- 라우팅 알고리즘을 통해 자동으로 경로 설정이 이루어져 관리 쉬움
- 주기적인 라우팅 정보 송수신으로 인한 대역폭 낭비 초래
- 네트워크 환경 변화 시 라우터의 처리 부하 증가로 지연이 발생
- 수시로 환경이 변하는 형태의 네트워크에 적합
전송 계층 프로토콜
• TCP(Transmission Control Protocol)
- 연결 지향형 프로토콜
- IP와 함께 통신을 하는 데 반드시 필요한 가장 기본적인 프로토콜
• TCP의 특징 높은 신뢰성
- 가상 회선 연결 방식
- 연결의 설정과 해제
- 데이터 체크섬(Checksum)
- 시간 초과와 재전송
- 데이터 흐름 제어
TCP 패킷의 구조
Source port address (16 bits) | Destination port address (16 bits) | |||||||
Sequence number (32 bits) | ||||||||
Acknowledgment number (32 bits) | ||||||||
HLEN (4 bits) | Reserved (6 bits) | URG | ACK | PSH | PST | SYN | FIN | Window size (16 bits) |
Checksum (16 bits) | Urgent pointer (16 bits) | |||||||
Options and padding (up to 40 bytes) |
• Source port address: 패킷의 출발지 포트 번호
• Destination port address: 패킷의 목적지 포트 번호
• Sequence number: 패킷의 순서 값(순서번호)
• Acknowledgment number: 통신 상대의 패킷 순서 값(확인응답번호)
• HLEN: TCP헤더를 4바이트 단위의 개수로 나타낸 것
• Reserved: 나중에 필요할 때 사용하려고 남겨둔 공간
• Window size: 상대방이 반드시 유지해야 하는 바이트 단위의 창 크기
• Checksum: 데이터 오류 검출을 위한 값
• Urgent pointer: 긴급 플래그 값이 설정되었을 때만 유효하며 세그먼트가 긴급 데이터를 포함하고 있을 때 사용 됨 세그먼트의 데이터 부분에서 마지막 긴급 바이트의 번호를 구하기 위하여 순서 번호에 이 번호가 더해짐
• Options and padding: 옵션의 종류와 길이, 데이터를 저장 / 옵션이 32bits가 안되면 나머지 비트를 0으로 채움
연결 설정 과정(Three-Way Handshaking)
연결 해제 과정
• UDP(User Datagram Protocol)
- 비연결 지향형 프로토콜
- 상대방이 보낸 응답을 확인하지 않아 네트워크에 부하를 주지 않음.
- 데이터 자체의 신뢰성이 없어 수신한 데이터의 무결성을 보장받지 못함
• UDP의 특징
- 비연결 지향형
- 네트워크 부하 감소
- 비신뢰성
- 전송된 데이터의 일부가 손실
UDP 패킷의 구조
Source port number (16 bits) | Destination port number (16 bits) |
Total length (16 bits) | Checksum (16 bits) |
• Source port number: 패킷의 출발지 포트 번호
• Destination port number: 패킷의 목적지 포트 번호
• Total length: UDP 헤더와 데이터 필드를 포함한 전체 패킷의 길이
• Checksum: 데이터 오류 검출을 위한 값
응용 계층 프로토콜
• FTP(File Transfer Protocol, 20,21): 파일 전송을 위한 가장 기본적인 프로토콜(클라이언트와 서버가 대화형으로 통신 가능)
• 텔넷(Telnet, 23): 사용자가 원격에 있는 서버에 로그인하도록 TCP 연결을 설정
• SMTP(Simple Mail Transfer Protocol, 25): 메일 서비스
• DNS(Domain Name System, 53): 도메인 이름 주소를 통해 IP 주소를 확인할 수 있는 프로토콜
• TFTP(Trivial File Transfer Protocol, 69): 파일을 전송하는 프로토콜(UDP 패킷 사용)
• HTTP(HyperText Transfer Protocol, 80): 인터넷을 위해 사용하는 가장 기본적인 프로토콜
• POP3(110): 메일 서버로 전송된 메일을 확인할 때 사용하는 프로토콜
• IMAP(143): : POP3와 기본적으로 같으나, 메일을 읽은 후 메일이 서버 에 남음
• SNMP(Simple Network Management Protocol, 161): 네트워크 관리와 모니터링을 위한 프로토콜
'Network > hacking and security' 카테고리의 다른 글
네트워크 해킹과 보안 - 보안 시스템 (0) | 2023.02.15 |
---|---|
네트워크 해킹과 보안 - 웹 보안 (0) | 2022.09.26 |
네트워크 해킹과 보안 - 네트워크 해킹 (1) | 2022.09.26 |
네트워크 해킹과 보안 - Whois, DNS (0) | 2022.09.26 |