- Authors

- Name
- Youngju Kim
- @fjvbn20031
네트워크 보안: 암호학부터 방화벽까지
네트워크 보안은 인터넷을 통해 전송되는 데이터의 기밀성, 무결성, 인증, 가용성을 보장하는 기술입니다.
이 글에서는 암호학의 기본 개념(대칭키, 공개키), 메시지 무결성과 전자서명, 인증 프로토콜, SSL/TLS, IPsec, 방화벽, 그리고 침입 탐지 시스템(IDS)을 살펴봅니다.
1. 네트워크 보안의 4대 요소
네트워크 보안의 핵심 요소
===========================
1. 기밀성 (Confidentiality)
- 의도된 수신자만 메시지를 읽을 수 있음
- 구현: 암호화 (Encryption)
2. 무결성 (Integrity)
- 메시지가 전송 중 변조되지 않았음을 보장
- 구현: 해시, MAC, 전자서명
3. 인증 (Authentication)
- 통신 상대방의 신원을 확인
- 구현: 인증 프로토콜, 인증서
4. 가용성 (Availability)
- 서비스가 정상적으로 이용 가능한 상태 유지
- 위협: DDoS 공격
공격자의 위협:
- 도청 (Eavesdropping): 기밀성 침해
- 변조 (Modification): 무결성 침해
- 위장 (Impersonation): 인증 침해
- 서비스 거부 (DoS): 가용성 침해
2. 대칭키 암호 (Symmetric Key Cryptography)
2.1 기본 개념
송신자와 수신자가 동일한 비밀키를 공유하여 암호화와 복호화를 수행합니다.
대칭키 암호 동작
==================
비밀키 K (양측이 공유)
| |
v v
[평문] --[암호화]--> [암호문] --[복호화]--> [평문]
"Hello" E_K() "xYz!@" D_K() "Hello"
특징:
- 암호화/복호화에 같은 키 사용
- 빠른 연산 속도
- 키 분배 문제: 양측이 안전하게 키를 공유해야 함
2.2 대표적인 대칭키 알고리즘
대칭키 알고리즘
=================
알고리즘 | 키 길이 | 블록 크기 | 상태
----------+-------------+----------+--------
DES | 56비트 | 64비트 | 취약 (사용 금지)
3DES | 168비트 | 64비트 | 안전하지만 느림
AES | 128/192/256 | 128비트 | 현재 표준
RC4 | 가변 | 스트림 | 취약 (사용 금지)
ChaCha20 | 256비트 | 스트림 | 현대적, TLS 1.3
AES (Advanced Encryption Standard):
- 2001년 NIST가 DES를 대체하여 선정
- 블록 암호: 128비트 블록 단위로 처리
- 라운드 수: 10/12/14 (키 길이에 따라)
- 현재 가장 널리 사용되는 대칭키 암호
2.3 블록 암호 운용 모드
블록 암호 운용 모드
====================
1. ECB (Electronic Codebook): 각 블록 독립 암호화
[B1] -> [E] -> [C1]
[B2] -> [E] -> [C2]
문제: 같은 평문 블록 -> 같은 암호문 블록 (패턴 노출)
2. CBC (Cipher Block Chaining): 이전 암호문과 XOR 후 암호화
[B1 XOR IV] -> [E] -> [C1]
[B2 XOR C1] -> [E] -> [C2]
장점: 같은 평문이라도 다른 암호문 생성
3. CTR (Counter): 카운터를 암호화하여 평문과 XOR
[CTR+0] -> [E] -> XOR [B1] -> [C1]
[CTR+1] -> [E] -> XOR [B2] -> [C2]
장점: 병렬 처리 가능, 스트림 암호처럼 동작
3. 공개키 암호 (Public Key Cryptography)
3.1 기본 개념
각 사용자가 공개키와 개인키 쌍을 가집니다. 공개키로 암호화하면 개인키로만 복호화할 수 있습니다.
공개키 암호 동작
==================
Bob의 키 쌍: (공개키 Kb+, 개인키 Kb-)
- 공개키: 누구나 알 수 있음
- 개인키: Bob만 알고 있음
Alice가 Bob에게 메시지 전송:
[평문 m] --[Kb+로 암호화]--> [암호문] --[Kb-로 복호화]--> [평문 m]
특성:
- Kb+(m)을 Kb-로만 복호화 가능
- Kb-를 Kb+로부터 계산하는 것은 계산적으로 불가능
- 키 분배 문제 해결 (공개키는 자유롭게 배포)
- 대칭키보다 연산이 느림 (100~1000배)
3.2 RSA 알고리즘
RSA 동작 원리
===============
키 생성:
1. 큰 소수 p, q 선택 (각 1024비트 이상)
2. n = p x q 계산
3. z = (p-1)(q-1) 계산
4. z와 서로소인 e 선택 (공개키의 일부)
5. e x d mod z = 1인 d 계산 (개인키의 일부)
공개키: (n, e)
개인키: (n, d)
암호화: c = m^e mod n
복호화: m = c^d mod n
보안 근거:
- n으로부터 p, q를 찾는 것 = 대수 분해 문제
- 현재 기술로 2048비트 이상의 n은 분해 불가
3.3 실제 사용: 하이브리드 암호
하이브리드 암호 시스템
========================
공개키 암호는 느리므로, 실제로는 세션키를 교환할 때만 사용
1. Alice가 랜덤 대칭키(세션키) Ks 생성
2. Alice가 Bob의 공개키로 Ks를 암호화하여 전송
Kb+(Ks) --> Bob에게 전송
3. Bob이 개인키로 Ks 복호화
Kb-(Kb+(Ks)) = Ks
4. 이후 양측이 Ks로 AES 대칭키 암호 사용
장점:
- 공개키: 안전한 키 교환 (느리지만 한 번만)
- 대칭키: 빠른 데이터 암호화 (대량 데이터)
4. 메시지 무결성
4.1 암호학적 해시 함수
해시 함수 특성
================
H(m) = 고정 길이의 해시값 (메시지 다이제스트)
요구사항:
- 일방향성: H(m)에서 m을 역산 불가
- 충돌 저항성: H(m) = H(m')인 서로 다른 m, m' 찾기 어려움
- 쇄도 효과: 입력이 1비트 변해도 출력이 크게 변함
대표 알고리즘:
MD5: 128비트 출력 (취약, 사용 금지)
SHA-1: 160비트 출력 (취약, 사용 금지)
SHA-256: 256비트 출력 (현재 표준)
SHA-3: 가변 출력 (차세대 표준)
4.2 MAC (Message Authentication Code)
MAC 동작
=========
송신자 (Alice): 수신자 (Bob):
메시지 m 수신: m + MAC
비밀키 s 비밀키 s
MAC = H(m + s) MAC' = H(m + s)
전송: m + MAC MAC == MAC'? --> 무결성 확인
HMAC (Hash-based MAC):
HMAC = H(K XOR opad || H(K XOR ipad || m))
- 단순히 H(m+s)보다 안전한 구조
- TLS, IPsec 등에서 표준으로 사용
4.3 전자서명 (Digital Signature)
전자서명 동작
===============
서명 생성 (Alice):
1. 메시지 m의 해시 계산: h = H(m)
2. 개인키로 해시를 암호화: sig = Ka-(h)
3. 전송: m + sig
서명 검증 (Bob):
1. 메시지 m의 해시 계산: h = H(m)
2. Alice의 공개키로 서명 복호화: h' = Ka+(sig)
3. h == h'? --> 서명 유효
전자서명이 제공하는 것:
- 인증: Alice가 서명했음을 확인
- 무결성: 메시지가 변조되지 않았음
- 부인 방지: Alice가 서명 사실을 부인할 수 없음
4.4 인증서와 CA
공개키 인증서 (PKI)
=====================
문제: Bob이 받은 공개키가 정말 Alice의 것인가?
해결: 신뢰할 수 있는 제3자(CA)가 보증
인증서 구조:
+----------------------------------+
| 발급 대상: alice.com |
| 공개키: Ka+ |
| 발급자: DigiCert (CA) |
| 유효 기간: 2026.01.01 ~ 2027.01.01 |
| 서명: CA의 개인키로 서명됨 |
+----------------------------------+
검증 과정:
1. Bob이 alice.com의 인증서 수신
2. CA의 공개키로 인증서의 서명 검증
3. 유효하면 인증서 내의 Ka+를 신뢰
대표 CA: DigiCert, Let's Encrypt, GlobalSign
5. SSL/TLS
5.1 TLS의 역할
TLS(Transport Layer Security)는 TCP 위에서 동작하며, 웹 통신의 보안을 제공합니다. HTTPS = HTTP + TLS 입니다.
TLS의 위치
============
[HTTP, SMTP, FTP 등]
[TLS/SSL]
[TCP]
[IP]
[링크 계층]
TLS가 제공하는 보안:
- 기밀성: 데이터 암호화 (AES 등)
- 무결성: MAC으로 변조 검출
- 인증: 서버 인증서로 신원 확인
5.2 TLS 핸드셰이크
TLS 1.2 핸드셰이크
====================
클라이언트 서버
| |
|--- ClientHello ------------------>|
| (지원 암호 목록, 랜덤값) |
| |
|<-- ServerHello -------------------|
| (선택된 암호, 랜덤값) |
|<-- Certificate -------------------|
| (서버 인증서) |
|<-- ServerHelloDone ---------------|
| |
|--- ClientKeyExchange ------------>|
| (프리마스터 시크릿, 서버 공개키로 암호화)|
|--- ChangeCipherSpec ------------->|
|--- Finished --------------------->|
| |
|<-- ChangeCipherSpec --------------|
|<-- Finished ----------------------|
| |
|=== 암호화된 애플리케이션 데이터 ===|
TLS 1.3 개선사항:
- 1-RTT 핸드셰이크 (TLS 1.2는 2-RTT)
- 0-RTT 재연결 지원
- 안전하지 않은 암호 제거
- 더 강력한 키 교환 (ECDHE 필수)
6. IPsec과 VPN
6.1 IPsec의 역할
IPsec은 네트워크 계층에서 보안을 제공합니다. 모든 IP 트래픽을 보호할 수 있습니다.
IPsec 프로토콜
================
1. AH (Authentication Header)
- 인증과 무결성 제공
- 암호화 미제공
- 잘 사용되지 않음
2. ESP (Encapsulating Security Payload)
- 인증 + 무결성 + 암호화 모두 제공
- 가장 많이 사용
동작 모드:
전송 모드 (Transport Mode):
원본: [IP 헤더][데이터]
ESP: [IP 헤더][ESP 헤더][데이터(암호화)][ESP 트레일러][ESP 인증]
--> 호스트 간 직접 통신 시 사용
터널 모드 (Tunnel Mode):
원본: [IP 헤더][데이터]
ESP: [새 IP 헤더][ESP 헤더][원본 IP 헤더 + 데이터(암호화)][ESP 트레일러]
--> VPN 게이트웨이 간 통신 시 사용
6.2 VPN (Virtual Private Network)
VPN 동작
=========
본사 지사
[내부 네트워크] -- [VPN GW] ===IPsec 터널=== [VPN GW] -- [내부 네트워크]
10.1.0.0/16 인터넷 10.2.0.0/16
패킷 흐름:
1. 10.1.0.5에서 10.2.0.10으로 패킷 전송
2. 본사 VPN GW가 패킷을 IPsec ESP로 암호화
3. 새 IP 헤더: 출발지=본사 GW, 목적지=지사 GW
4. 인터넷을 통해 암호화된 패킷 전송
5. 지사 VPN GW가 복호화하여 10.2.0.10으로 전달
IKE (Internet Key Exchange):
- IPsec SA(Security Association) 설정을 위한 프로토콜
- 양측 인증 및 키 교환 수행
7. 방화벽 (Firewall)
7.1 방화벽의 유형
방화벽 유형
=============
1. 패킷 필터링 (Packet Filtering)
- IP 주소, 포트, 프로토콜 기반으로 필터링
- 상태 비보존: 각 패킷을 독립적으로 판단
- 빠르지만 정교한 제어 어려움
2. 상태 보존 패킷 필터링 (Stateful Packet Filtering)
- TCP 연결 상태를 추적
- 연결이 설정된 패킷만 허용
- 더 정교한 보안
3. 애플리케이션 게이트웨이 (Application Gateway)
- 애플리케이션 데이터를 검사
- HTTP, FTP 등 프로토콜별 세밀한 제어
- 프록시 서버로 동작
7.2 방화벽 규칙 예시
패킷 필터링 규칙 예시
========================
규칙 | 방향 | 출발지 IP | 목적지 IP | 프로토콜 | 포트 | 동작
------+--------+--------------+--------------+---------+------+------
1 | 인바운드| * | 10.1.0.0/16 | TCP | 80 | 허용
2 | 인바운드| * | 10.1.0.0/16 | TCP | 443 | 허용
3 | 인바운드| * | 10.1.0.5 | TCP | 22 | 허용
4 | 아웃바운드| 10.1.0.0/16| * | TCP | * | 허용
5 | * | * | * | * | * | 거부
해석:
규칙 1: 외부에서 내부 웹서버(80)로 HTTP 접속 허용
규칙 2: 외부에서 내부 웹서버(443)로 HTTPS 접속 허용
규칙 3: 외부에서 특정 서버로 SSH 접속 허용
규칙 4: 내부에서 외부로 나가는 모든 TCP 허용
규칙 5: 나머지 모두 거부 (기본 정책)
8. IDS와 IPS
8.1 침입 탐지 시스템 (IDS)
IDS 유형
==========
1. 시그니처 기반 IDS
- 알려진 공격 패턴(시그니처)과 매칭
- 장점: 알려진 공격에 대해 정확한 탐지
- 단점: 새로운 공격(제로데이) 탐지 불가
2. 이상 탐지 기반 IDS
- 정상 트래픽 패턴을 학습하고 이상 탐지
- 장점: 새로운 공격도 탐지 가능
- 단점: 오탐(false positive)이 높을 수 있음
배치 위치:
인터넷 --> [방화벽] --> [IDS] --> [내부 네트워크]
IPS (Intrusion Prevention System):
- IDS + 자동 차단 기능
- 탐지된 공격을 실시간으로 차단
8.2 대표적인 네트워크 공격
네트워크 공격 유형
====================
1. IP 스푸핑 (Spoofing)
- 출발지 IP 주소를 위조
- 대응: 입구 필터링 (Ingress Filtering)
2. DoS/DDoS
- 대량의 트래픽으로 서비스 마비
- SYN Flood: TCP 3-way 핸드셰이크 악용
- 대응: SYN 쿠키, 트래픽 필터링
3. 중간자 공격 (Man-in-the-Middle)
- 통신 경로에 끼어들어 도청/변조
- 대응: TLS, 인증서 검증
4. ARP 스푸핑
- 가짜 ARP 응답으로 트래픽 가로채기
- 대응: 정적 ARP 테이블, 802.1X
5. DNS 스푸핑
- 가짜 DNS 응답으로 피싱 사이트 유도
- 대응: DNSSEC
9. 정리
| 개념 | 핵심 내용 |
|---|---|
| 대칭키 암호 | 같은 키로 암호화/복호화, 빠름, 키 분배 문제 |
| 공개키 암호 | 공개키로 암호화, 개인키로 복호화, 키 분배 해결 |
| RSA | 소인수 분해의 어려움에 기반한 공개키 암호 |
| 해시 함수 | 일방향, 고정 길이 출력, 무결성 검증 |
| 전자서명 | 개인키로 서명, 공개키로 검증, 부인 방지 |
| TLS | TCP 위 보안 계층, HTTPS의 핵심 |
| IPsec | 네트워크 계층 보안, VPN 구현 기반 |
| 방화벽 | 패킷 필터링으로 비인가 접근 차단 |
| IDS/IPS | 침입 탐지 및 자동 차단 |
다음 글에서는 네트워크 관리와 SNMP 프로토콜을 살펴보겠습니다.
참고 자료
- James F. Kurose, Keith W. Ross, "Computer Networking: A Top-Down Approach", 6th Edition, Chapter 8
- RFC 5246 - TLS Protocol Version 1.2
- RFC 4301 - Security Architecture for the Internet Protocol (IPsec)
- RFC 2104 - HMAC: Keyed-Hashing for Message Authentication