18강. Ethernet의 구조
개요
- CSMA/CD
- 대역폭 : 10Mbps(100M,1G)
- 문제 : 공유 매체에 공평하게 접근할 수 있는 분산 알고리즘
물리적 특성
- 고전적인 이더넷(Classical Ethernet) : thick-net
최대 세그멘트 : 500m
트랜
10BaseT Network
-대안기술
10Base2(thin-net) : 200m, 데이지 체인(daisy-chain) 형태
10BaseT(twisted-pair) : 100m , 성형(star)
프레임 형식(Frame format)
64
|
48
|
48
|
16
|
--
|
32
|
Preamble
|
Dest addr
|
Src addr
|
Type
|
Body (~~)
|
CRC
|
- 주소(Address)
- 어탭터는 모든 프레임을 수신 : 다음 경우에 받아들임 (즉 , 호스트로 보냄)
전송 알고리즘(전송)
회선이 유휴(idle)상태 이면
회선이 사용중이라면
전송 알고리즘(충돌)
32비트의 jam 신호를 발송하고 프레임 전송을 멈춤
최소 프레임의 길이는 64바이트 (헤더 + 46 바이트의 데이터)
지연시간(delay)을 가진후 재시도 (단위 us)
첫번째 : [0,51.2] 중에서 택일
두번째 : [0,51.2,102.4] 중에서 택일
세번째 : [0,51.2,102.4,153.6] 중에서 택일
N번째 : k x 51.2 us for randomly selected k=0...2^n -1
여러번 시도후에 포기 (보통 16번)
지수 백 오프(exponential backoff)
이더넷 확장
속도
FastEthernet : 100Mbps
Gigabit Ethernet : 1Gbps
스위치 기능
Network Adapter (NIC, 랜카드)
개요
데이터 링크 기능이 구현되는 곳
호스트의 관점
상태제어 레지스터(CSR:Control Status Register)
특정 메모리 주소로 사용가능
CPU는 읽고 쓸 수 있음
CPU는 어댑터에게 명령(예,전송)
어댑터는 CPU에게 정보를 알려줌(예, 수신오류)
예)LE_RINT 0x0400 Received packet Interrupt (RC)
LE_TINT 0x0200 Transmitted packet Interrupt (RC)
LE_IDON 0x0100 Initialization Done (RC)
LE_IENA 0x0040 Interrupt Enable(RW)
LE_INIT 0x0001 Initialize (RW1)
호스트와 어댑터 사이의 프레임 이동
브리지 및 확장 LAN (Bridges and Extended LANs)
LAN의 확장
브리지(bridge) 동작
동작 : 수신(accept) 및 포워드(forward) , 스위치에는 있는 기능 필터링
여러 개의 포트를 가지는 브리지 : LAN 스위치
계층-2 연결 (패킷 헤더를 붙이지 않음) : 라우터와의 차이
학습 브리지 (Learning Bridges)
스패닝 트리 알고리즘
확장 LAN은 때때로 루프를 가짐
루프는 브리지에게 혼동 발생
브리지는 분산 스패닝 트리 알고리즘을 수행
어떤 브리지가 프레임을 포워드하는 “활성화된 브리지"가 될지를 선택
DEC의 Radia Perlman에 의해서 개발됨.
현재 IEEE 802.1 specification
알고리즘 개요
브로드캐스트 및 멀티캐스트
19강. TCP
TCP Services
UDP와 같은 transport layer에 위치
UDP와 다른 특성의 서비스에 응용계층에 제공
TCP segment
Timer 설정
ACK
TCP header, data에 checksum을 이용
중복 데이터 제거
Flow control
TCP Connection
Establishment (연결시작)
A : SYN flag=1
B : SYN flag=1, ACK flag=1 ,ACK num = A’s sequence num + 1
A : ACK flag=1, ACK num = B’s sequence num + 1
A : FIN flag=1 , ACK flag=1, PSH flag=1
B : ACK flag=1 , ACK num = A’s sequence num + 1 , PSH flag =1
B : FIN flag=1, ACK flag=1 ,ACK num=A’s sequence num + 1
A : ACK flag=1, ACK num=B’s sequence num+1
Reset : TCP 연결의 강제 종료 (정확하지 않은 seqment가 도착했을 때에 발생)
TCP 연결
일반적 연결과정
일반적 해제과정
TCP Header
port number : TCP 연결을 사용하는 응용 계층 프로그램을 구분하기 위해 사용
ex) telnet server의 수신측 포트 번호는 23 , ftp 21
sequence number : segment의 첫번째 byte를 나타내는 것으로 송신측의 TCP로 부터 수신측의 TCP로 가는 data stream의 byte를 구분하는 것
Acknowledgement number : 수신자가 다음에 받기를 원하는 sequence number
Header length
4byte(word) 단위로 header길이를 지정
Option field가 가변적이기 때문에 필요
60byte header 길이로 제한됨(option이 없을 경우 20byte)
Control Code (flag bit) : TCP packet의 종류 및 내용을 표시
Code
|
Descr
|
URG
|
긴급 유효한 포인터
|
ACK
|
긍정 응답
|
PSH
|
수신자는 최대한 빨리 어플리케이션에 데이테를 보내야 함
|
RST
|
연결 재설정
|
SYN
|
연결 초기화 시키기 위해 시퀀스 넘버를 동기화 시킴
|
FIN
|
송신자는 데이터 송신을 끝내는 것
|
TCP 관련 해킹
SYN_Flooding 공격의 원인과 해결책
일반적인 연결(정상적인)
1단계: A 클라이언트, B서버에 접속을 요청하는 SYN 패킷을 보낸다.
2단계: B 서버는 요청을 받고, A 클라이언트에게 요청을 수락한다는 SYN패킷과 ACK패킷을 발송한다.
3단계: A 클라이언트는 B서버에게 ACK를 보내고 이후로 부터 연결이 이루어지고 본격적으로 데이터가 교환된다.
SYN Flooding 공격인 경우
정상적인 연결의 3단계에서 A클라이언트가 B서버에계 ACK를 일부로 보내지 않고 그로 인한 서버의 75초 대기를 후 초기화 되면 현상을 이용하여 서비스 거부 상태를 발생시킨다. 즉 비정상 메시지를 계속 전송하여 서비스를 구동되지 않도록 하는 것이다.
백로그큐가 가득 찼을 경우에 공격을 당한 해당 포트로만 접속이 이루어지지 않을 뿐 다른 포트에는 영향을 주지 않고, 또한 서버에 별 다른 부하도 유발하지 않으므로 관리자가 잘 모르는 경우가 많다.
또한 다른 DoS 공격과 달리 많은 트래픽을 유발하는 공격이 아니므로 쉽게 파악이 되지 않는 공격 형태이다.
SYN Flooding 공격에 대한 대비
백로그 큐를 크기를 늘려 준다 : 서비스 거부에 돌입하게 되는 것은 백로그큐(backlog Queue)가 가득 차서 다른 접속 요구를 받아들이지 못하기 때문이므로 백로그 큐의 크기를 늘려주면 됨. (1024로 조정)
syncookies 기능을켠다: Syncookies는 Three-way handshake 진행과정을 다소 변경하는 것으로 Three-way handshake 가 성공적으로 이루어지지 않으면 더 이상 소스 경로를 거슬러 올라가지 않는다.
기타 시스템의 네트워크 설정을 최적화한다. : TCP SYN Flooding 공격뿐만 아니라 다른 여타 Dos 공격에도 효과적으로 방어하므로 적절히 설정할 것을 권장
20강.IP관련 보안
외부 공격 방법
보안
준비과정 : 실제로 외부로 부터의 공격을 받기 전에 불필요한 위험요소를 제거하는 과정
능동적 방어(Active Defense) : 외부에서의 해킹시도를 막기위한 여러가지 방법을 구현
테스트 : 해킹을 시도할 때 이를 막을 수 있는 지를 항상 테스트하고 부적절한 접속을 검사
사용자의 암호 등이 cracker 프로그램으로 쉽게 노출이 되는가를 검사한다.
네트워크 모니터링 프로그램으로 이상한 접속이 있는 지를 항상 확인하다.
모든 시스템의 로그파일을 주기적으로 확인하여 해킹시도가 있었는지를 확인한다.
보안 프로그램을 작동시켜 트로이 목마나 스누퍼같은 프로그램이 설치되었나를 검사한다.
IPsec
개요
IETF에서 표준으로 추진되고 있는 암호화완 관련된 시스템 구조 및 Key 관리 프로토콜
IPsec은 네트워크 계층의 안정적이고 영구적인 보안을 제공
차세대 IPv6에서는 IPsec을 기본으로 포함하고 있음.
구조
키관리 : 인증과 암호화에 필요한 암호 알고리즘의 키를 생성하고 분배
보안연계 : 보안 서비스를 제공하기 위한 보안 프로토콜 각각에 대한 보안 매개변수 집합을 정의하고 관리하는 기능이 요구됨
보안 프로토콜 : IP계층에서 보안 서비스를 제공하기 위해 IPsec AH(인증헤더) 프로토콜과 IPsec ESP프로토콜이 설계되었음.
암호 알고리즘 : 사용되는 보안 프로토콜에서 제공되는 보안 서비스에 따라 알고리즘이 결정
AH(인증헤더)를 적용한 송수신 패킷 처리
송신
패킷에 대응되는 보안 연계 식별
AH내의 Sequence Number 생성
인증 데이터 계산
수신
ESP를 적용한 송수신 패킷 처리
방화벽