
1. 와이어샤크 사용해보기
1-1. 화면 구조 이해
1) 패킷 목록

- 패킷 번호, 전송된 시간, 송/수신지 주소, 사용된 프로토콜, 패킷의 길이와 부가정보를 확인할 수 있다.
2) 특정 패킷의 정보 확인

- 특정 패킷의 이더넷 프레임 정보, IP 패킷 정보, TCP 패킷 정보, HTTP 패킷 정보를 확인할 수 있다. (사진은 TCP 패킷이라 TCP까지만)
3) 실제 데이터

- 실제 데이터가 16진수로 표현
- 특정 헤더에 마우스를 가져다대면 헤더가 나타내는 데이터의 위치를 나타낸다.
1-2. 필터링

2. 안정성을 위한 기술
2-1. 가용성, 이중화&다중화
1) 가용성
- 전체 시간 중 특정 기능을 언제든 균일한 성능으로 수행할 수 있는 시간의 비율
- 시스템의 안정성을 수식화
업타임 / (다운타임+업타임)
: 99.999%이상을 목표로 함
- 원천적으로 문제 발생의 원인을 막을 수는 없으므로, 시스템의 결함 감내력을 높이는 것이 중요
2) 이중화
- 물리적 장비나 프로그램을 2개씩 두는 것
- 단일 장애점(SPOF)을 없애기 위함
- 액티브/스탠바이 : 하나는 가동 / 하나는 대기, 다른 하나에 이상이 생기면 그때 가동 (페일 오버)
- 액티브/액티브 : 둘 다 가동, 다른 하나에 이상이 생기면 한 쪽에 부하가 쏠림
3) 다중화
- 물리적 장비나 프로그램을 2개 이상 두는 것
- 단일 장애점(SPOF)을 없애기 위함
- 티밍(윈도우)과 본딩(리눅스)
: 여러 개의 네트워크 인터페이스 (NIC)를 이중화/다중화해서 안정적인 성능을 보이는 하나의 NIC처럼 보이도록 함
2-2. 로드 밸런싱
1) 트래픽
- 주어진 시점에 특정 노드를 경유한 패킷의 양
- 트래픽이 하나의 서버에 쏠리면 성능 저하, 트래픽을 잘 분산시키는 것이 중요
2) 로드 밸런서
- 부하(로드)를 분산시키는(밸런서) 장치나 소프트웨어
: 장치의 대표적인 예로는 L4 스위치, L7 스위치
: 소프트웨어의 대표적인 예로는 Nginx 등
3) 로드 밸런싱 알고리즘
- 라운드 로빈 알고리즘 : 단순히 서버를 돌아가면서
- 최소 연결 알고리즘 : 응답 시간이 짧은 서버를 우선적으로
- 가중치 : 가중치값이 높을 수록 더 많은 패킷을 전달
2-3. 포워드 프록시, 리버스 프록시

1) 포워드 프록시
- 클라이언트와 오리진 서버 중간에 위치한 중간 서버
- 클라이언트가 선택한 메세지 전달 대리자
- 캐시 저장, 클라이언트 암호화 접근 제한
2) 리버스 프록시(=게이트웨이)
- 아웃 바운드 연결(클라이언트 측에서 전송한 요청)에 대해서는 오리진 서버 역할,
- 해당 요청을 변환해서 진짜 오리진 서버에게 전달
- 캐시 저장, 로드 밸런서 동작 등
⭐ 2-4. 키를 통한 암호화
1) 대칭 키 암호화
- 암호화 & 복호화에 동일한 키를 사용
- 대칭 키 유출 시 보안에 문제
- 빠른 속도
2) 공개 키 암호화 (=비대칭 키 암호화)

출처 : https://www.rapidsslonline.com/ssl/difference-between-public-and-private-key/
- 암호화 & 복호화에 다른 키를 사용
- 공개되어있는 공개 키, 공개되지 않은 개인 키
- A와 B가 있다면, A는 B에게 공개 키를 요구하고, 해당 키로 암호화한 뒤, B는 개인 키로 복호화한다.
3) 인증서
- 공개 키의 유효성을 입증하는 전자문서
- 생성일자, 조작여부, 유효기간 등을 포함함
- CA(인증 기관)에서 발급
4) 디지털 서명
- CA는 인증서 발급 시 디지털 서명을 함께 붙임
- 인증서의 보증을 의미
- 인증서를 해시함수에 넘기고, 이 해시 값을 CA의 개인 키로 암호화 한 값

출처 : https://m.upbitcare.com/academy/education/blockchain/94
- 클라이언트는 전달받은 인증서와 디지털 서명에 대해 각각 다른 행동을 취한다.
1-1. 디지털 서명 : CA의 공개 키를 통해 복호화
1-2. 인증서 데이터 : 해시함수를 통해 암호화
- 두 값을 비교하여 인증서의 보증 여부를 확인
2-5. HTTPS
1) HTTPS
- 대칭 키 암호화, 공개 키 암호화를 기반으로 작동하는 SSL, TLS를 기반으로 하는 프로토콜
- HTTP보다 보안성을 강화
- TCP 쓰리 웨이 핸드 셰이크, 2. TLS 핸드 셰이크, 3. 암호화된 메세지 송수신의 순서로 메세지를 주고받음
2) TLS 핸드 셰이크

-
ClientHello
: 클라이언트 측에서 암호화된 통신을 위해 서로 맞춰볼 TLS 버전, 암호 스위트(암호화 방식, 해시 함수) 등을 제시
-
ServerHello
: 서버 측에서 클라이언트가 제시한 TLS 버전, 암호 스위트 등을 선택
: 이때, Sertificate 메세지와 CertificateVerify 메세지를 함께 보냄 (인증서의 보증 여부를 클라이언트가 확인할 수 있도록)
-
Finished
: TLS 핸드셰이크의 마지막을 의미
: TLS 1.3부터는 Finished와 동시에 암호화된 메세지를 전송
3. 무선 네트워크
3-1. 전파와 와이파이
1) 주파수
- 주파수 대역을 나눠 사용함으로써 통신 간 간섭이 없도록 함
- 주파수는 채널이라고 불리는 하위 주파수 대역으로 한 번 더 나뉘어짐
: 같은 주파수 대역 내에서의 간섭을 줄이기 위함
2) 와이파이
- 특정 IEEE 802.11 표준을 따르는 무선 LAN 기술
- 해당 표준을 따르고, 다른 제품과의 호환성을 확인할 수 있게 하는 인증마크
- 주로 2.4GHz , 5GHz 대역을 사용
3-2. AP와 서비스 셋
1) AP
- 무선 네트워크 내에서 통신을 중개
- AP를 사용하는 통신 방식을 인프라스트럭처 모드라고도 함
- AP는 수시로 브로드캐스트 메세지 비컨 프레임을 전송해 자신의 존재를 알림
2) 서비스 셋
- 무선 네트워크를 이루는 장치들의 집합
- 서비스 셋을 구분하기 위해 SSID를 사용
: 대표적인 SSID는 와이파이 이름
연습 문제 풀이
기본 숙제
추가 숙제
TCP 패킷에서 송/수신지 포트번호와, 순서번호&응답번호, 플래그(ACK비트:1) 등을 확인할 수 있다.
- UDP 패킷

UDP 패킷에서 송/수신지 포트번호와 체크섬, UDP 페이로드 값을 확인할 수 있다.
(특히 수신지 포트번호 443은 잘 알려진 포트번호인 HTTPS의 포트번호임.)