꾸준히
정보보안과 해킹 기초, 네트워크 기본 본문
정보보안과 해킹 기초
세션 (Session)
세션은 사용자와 컴퓨터 또는 두 컴퓨터 사이의 활성화된 접속, 로그인된 상태를 의미한다. 웹 서버와 같은 각종 서버는 클라이언트의 세션을 인증함으로써 해당 클라이언트가 어떤 사람인지 파악한다. 즉, 세션 정보를 안다면 로그인 과정 없이 그 사람의 권한을 도용할 수 있다.
세션의 특성을 이용한 해킹 방법
- 세션 하이재킹(Session Hijacking) : 특정 사용자의 세션을 탈취하는 해킹 기법이다. 하이재킹에 성공하면 사용자가 로그인하기 전까지 해당 세션을 이용하여 그 사람의 권한을 도용할 수 있다.
- 패킷 스니핑(Packet Sniffing) : 자신의 컴퓨터 주변의 패킷을 도청하는 해킹 기법이다. 공용 컴퓨터에 패킷 스니핑하는 장치를 미리 설치하여 각종 포털 사이트에 접속했을 때 사용하는 패킷을 전부 도청하여 이를 활용한다.
세션 관리
- 암호화(Encryption) : 암호화된 데이터를 보냄으로써 패킷 스니핑을 하더라도 데이터를 알 수 없게 한다.
- 지속적 인증(Continuous Authentication) : 인증을 한 번에 그치지 않고 반복적으로 하도록 함으로써 접속한 사람이 본인임을 인증한다.
쿠키(Cookie)
쿠키는 일반적으로 자동 로그인 등의 사용자의 편의를 위해 사용된다. 세션과 가장 큰 차이점은 쿠키는 컴퓨터에 저장되는 접속 기록이라는 것이다.
참고 강의 :
https://www.youtube.com/watch?v=zDYTTwa_7BA&list=PLRx0vPvlEmdC1yeqsIBTSboDjMnU7wAwS&index=4
OSI 모델
OSI 모델은 전세계적으로 사용되고 있는 네트워크 표준 모델이다. 실제 업계에서 많이 쓰이는 프로토콜은 TCP/IP이기에 OSI 모델을 이론적 모델이라고 부르기도 한다. 두 프로토콜 모두 패킷을 이용한 통신을 하며 계층 구조를 가지고 있다. (TCP/IP는 4계층 구조이며 OSI 모델은 7계층 구조이다. 두 프로토콜은 흡사한 구조를 지니지만 계층을 묶는 기준에서 차이가 있다.)
데이터가 전송될 때 각 계층을 거치며 캡슐화가 이루어지고, 데이터를 받을 때는 각 계층을 거치며 역캡슐화가 이루어지는 것이 특징이다.
- Application (Layer 7) : 사용자와 응용 프로그램 사이에서 데이터의 교환을 가능하게 한다.
- Presentation (Layer 6) : 인코딩 및 프로세스가 통신을 관리하기 위한 방법을 보장한다.
- Session (Layer 5) : 양 끝단의 프로세스가 통신을 관리하기 위한 방법을 제공한다.
- Transport (Layer 4) : 양 끝단의 사용자들이 신뢰성 있는 데이터를 주고받을 수 있도록 한다.
- Network (Layer 3) : 여러 개의 노드를 거칠 때 경로를 찾아준다.
- Data Link (Layer 2) : 네트워크 장비 사이에서 두 지점 간의 신뢰성 있는 전송을 보장한다.
- Physical (Layer 1) : 실제로 장치들을 연결하기 위한 물리적인 사항을 정의한다.
미디어 계층
OSI 7계층의 하위 3계층을 포함하며 하위 계층이라고도 불린다. 서로 연결된 컴퓨터 사이의 데이터 전송과 목적지까지의 데이터 전송 전반을 담당한다.
Data Unit | Layer | Function | |
Media layers | Packet | 3. Network | Path determination and logical addressing |
Frame | 2. Data Link | Physical addressing | |
Bit | 1. Physical | Media, signal and binary transmission |
- Network (Layer 3) : 여러 개의 노드를 거칠 때 경로를 찾아주는 역할을 하는 계층이다. 데이터 전송 단위는 패킷(Packet)이고, IP주소가 경로를 찾는 데 사용된다.
- Data Link (Layer 2) : 물리적인 데이터의 전송에 관심이 많은 계층이다. 데이터 전송 단위는 프레임(Frame)이고, 물리적 주소(MAC 주소)가 상호 통신에 사용된다.
- Physical (Layer 1) : 네트워크 장비 사이에서 실제 발생하는 전기적 통신을 담당하는 계층이다. 데이터 전송 단위는 비트(Bit)이고, 주로 랜(LAN) 선을 의미하여 통신에 필요한 공간 자체를 물리층이라고 한다.
※ MAC 주소 : 랜카드와 같은 네트워크 장치에 매칭되어 다양한 정보를 확인할 수 있다. 총 12개의 16진수로 구성되며 앞쪽 16진수는 회사의 시리얼 번호에 해당한다.
※ IP 주소 : 네트워크 부분과 호스트 부분으로 나누어지며 총 다섯개의 클래스로 구분할 수 있다.
Class | # Network Bits | # Hosts Bits | Decimal Address Range | Subnet mask |
Class A | 8 bits | 24 bits | 1 - 126 | 255.0.0.0 |
Class B | 16 bits | 16 bits | 128 - 191 | 255.255.0.0 |
Class C | 24 bits | 8 bits | 192 - 223 | 255.255.255.0 |
Class D | Reserved for Muticasting | 224 - 239 | N/A | |
Class E | Reserved for R & D | 240 - 255 | N/A |
호스트 계층
OSI 7계층에서 상위 계층과 중간 계층을 포함하는 것으로 실질적으로 사용자에게 친숙한 계층이라고 할 수 있다.
Data unit | Layer | Function | |
Host layers | Data | 7. Applications | Network process to application |
6. Presentation | Data representation, encryption and decryption | ||
5. Sesssion | Interhost communication | ||
Segment | 4. Transport | End-to-end connections and reliability, Flow control |
- Application (Layer 7) : 실행 중인 응용 프로세스와 직접 연계하여 다양한 응용 서비스를 수행한다. 응용층에 해당하는 프로토콜에는 HTTP, FTP, DNS 등이 있다.
- Presentation (Layer 6) : 각종 암호 관련 기능부터 인코딩 및 디코딩 과정을 포함하고 있다.
- Session (Layer 5) : 세션 계층은 전이중, 반이중 방식 등의 통신 방식과 함께 데이터 전송에 있어서 동기화를 제공한다. 또한, 전반적인 TCP/IP 세션을 만들고 없애는 책임을 진다. 연결된 상태에서 정보 교환을 효과적으로 수행할 수 있도록 다양한 서비스를 제공하는 역할을 한다.
- Transport (Layer 4) : 오류 및 흐름 제어를 진행하고 세그먼트(Segment)라는 데이터 전송 단위를 사용한다. 전송층에 들어가는 대표적인 프로토콜은 TCP, UDP 등이 있으며 컴퓨터에서 실행 중인 프로세스까지의 도달을 책임지므로 포트 번호가 중요하게 사용된다.
참고 강의 :
https://www.youtube.com/watch?v=oKM_vbqDGJ0&list=PLRx0vPvlEmdC1yeqsIBTSboDjMnU7wAwS&index=5
https://www.youtube.com/watch?v=4zPWOOk_QC4&list=PLRx0vPvlEmdC1yeqsIBTSboDjMnU7wAwS&index=6
https://www.youtube.com/watch?v=_bZ15--EKVM&list=PLRx0vPvlEmdC1yeqsIBTSboDjMnU7wAwS&index=7
https://www.youtube.com/watch?v=T1LEszP6cPw&list=PLRx0vPvlEmdC1yeqsIBTSboDjMnU7wAwS&index=8
네트워크 기본
네트워크 장비
스위치(허브)
스위치는 네트워크 단위들을 연결하는 통신 장비이다. 데이터를 목적지까지 전달하는 스위칭 작업을 수행한다. 허브는 1:1 통신, 스위치는 1:N 통신을 하며 속도, 처리량 등에서 스위치가 훨씬 뛰어난 퍼포먼스를 보여준다. (과거에는 가격 차이로 인해 허브가 많이 사용됐으나, 최근에는 거의 찾아볼 수 없다)
스위치의 다섯 가지 작업은 다음과 같다.
- Learning : 맥 주소를 테이블의 정보를 저장한다.
- Flooding : 들어온 포트를 제외한 나머지 모든 포트에 뿌린다.
- Forwarding : 목적지의 맥주소를 알고 있어 목적지 포트로 데이터를 전달한다.
- Filtering : 목적지 외 다른 호스트로 데이터가 전달되지 않도록 막는다.
- Aging : 테이블의 정보를 일정 시간 지나면 지운다.
라우터
패킷의 위치를 추출하여 그 위치에 대한 최적의 경로를 지정한 다음 경로에 따라 데이터 패킷을 다음 장치로 전향시키는 장비이다.
내부/외부 네트워크
내부 네트워크
내부 네트워크는 로컬 네트워크 개념으로 라우터나 방화벽 안쪽에 자리한 네트워크이다. 라우터를 넘어가지 않는 이상 내부에 있는 호스트끼리만 통신이 가능하다.
외부 네트워크
외부 네트워크는 라우터나 방화벽을 넘어 위치한 네트워크이다. 각각의 네트워크를 라우터를 통해 연결해 모든 사람들이 데이터를 공유할 수 있도록 하는 것이 인터넷이다.
네트워크 통신 방식
- 유니캐스트(Unicast) : 고유 주소로 식별된 하나의 네트워크 목적지에 메시지를 전송하는 방식이다. 1:1 통신으로 가장 많이 사용되는 통신 방식이다.
- 브로드캐스트 : 같은 네트워크의 모든 호스트에게 데이터를 전송하는 방식이다.
- 멀티캐스트 : 한 번의 송신으로 메시지를 동시에 여러 호스트에 전송하는 방식이다. 유니캐스트와 브로드캐스트를 이용한 방식으로 그룹을 지어 해당 그룹에 메시지를 전송한다.
DNS
DNS는 Domain Name System의 약자로 호스트의 도메인 이름을 네트워크 주소로 바꾸거나 그 반대 변환 작업을 수행하는 시스템이다. (IP주소를 일일이 외우는 건 어렵기에 도메인 이름을 사용)
아래와 같이 터미널에서 nslookup 명령어를 사용하여 도메인 이름으로 IP 주소를 확인할 수 있으며, 반대(IP 주소 -> 도메인 이름) 역시 가능하다. (아래 예시 : nslookup 명령어를 사용하여 KT의 IP주소와 도메인 이름 확인)
nslookup kns.kornet.net
nslookup 168.126.63.1
네트워크 연결과정
구분 | UDP | TCP |
신뢰성 | 신뢰성 없음 | 신뢰성 있음 |
연결성 | 비연결성 | 연결성 |
재전송 | 재전송 없음 | 재전송 있음 |
특징 | 신뢰할 수는 없지만 고속의 데이터 전송 가능 | 흐름제어로 인해 속도는 비교적 느리나 신뢰성 있는 연결 |
3Way-Handshaking
3-Way-Handshaking은 TCP의 신뢰성 있는 연결을 위해 패킷을 3번 교환하여 사용자를 검증하는 과정이다.
참고 강의 :
https://www.youtube.com/watch?v=cBQL0YbMyw4&list=PL3yIyLwfjdREtivjuMjFZ3UTsGXx_1SPP&index=2
'Ping!' 카테고리의 다른 글
MySQL, PHP를 이용한 간단한 게시판 구현 (1) | 2023.03.14 |
---|---|
ARP 스푸핑 실습 (1) | 2023.03.02 |
VPN (1) | 2023.02.23 |
SSL (0) | 2023.02.16 |
암호학1, 쿠키, 세션, 토큰, JWT (2) | 2023.02.09 |