Chapter 8 목목 8.1 목목목목 목목목목 목목목목 ? 8.2 목목목목 목목 8.3 목목목 목목목 8.4 목목목 목목 8.5 목목 목목목 목목 8.6 TCP 목목목 목목 : SSL 8.7 목목목목 목목목 목목 : IPsec 8.8 목목 목목 목목 8.9 목목목 목목 : 목목목목 목목 목목 목목목
Mar 16, 2016
Chapter 8 목차
8.1 네트워크 보안이란 무엇인가 ?8.2 암호학의 원리8.3 메시지 무결성8.4 종단점 인증8.5 전자 메일의 보안8.6 TCP 연결의 보안 : SSL8.7 네트워크 계층의 보안 : IPsec8.8 무선 랜의 보안8.9 운영상 보안 : 방화벽과 침입 방지 시스템
무선 LAN 보안의 두 가지 과제
단말과 AP 의 상호 인증 단말은 자신이 연결하려는 AP 가 자신이 등록된
신뢰할 수 있는 AP 인지 어떻게 확인할 것인가 ? AP 는 연결하려고 하는 단말이 등록된 단말인지
어떻게 확인할 것인가 ? 데이터의 암호화를 위한 키 분배
데이터 암호화를 위한 세션키 ( 대칭키 ) 를 AP 와 단말은 어떻게 공유해서 사용할 것인가 ?
2
무선 LAN 보안 프로토콜
WEP(Wired Equivalent Privacy) 1999 년 IEEE 802.11 무선 LAN 표준 40bits 의 대칭키와 임의로 선택된 24bits 의 초기
벡터 (IV) 로 조합된 64bits 키의 RC4 암호 알고리즘 사용
대칭키를 사용한 단말 인증 (AP 인증은 안 함 )
802.11i WEP 의 보안 취약점으로 WEP 를 대체하기
위하여 2004 년 발표
3
4
WEP 대칭 키 알고리즘 기반
기밀성 단말의 인증 데이터 무결성
각 패킷은 다른 키로 암호화 이전 패킷이 손실되더라도 복호화하는데 지장이 없다 .
AP 내의 모든 단말들은 동일한 키를 사용한다 .
공유하고 있는 대칭키에 의한 단말 인증 AP 인증은 하지 않는다 .
하드웨어 혹은 소프트웨어로 구현할 수 있다 .
5
Nonce 와 대칭키를 이용한 개체 인증
Nonce: number (R) used only once –in-a-lifetimeHow: Alice 는 Bob 이 보낸 nonce R 을 서로 공유하고 있는 대칭키로 암호화하여 보낸다 .
“I am Alice”
RK (R)A-B
Alic 는 존재하고 오직 Alice 만이 대칭키를 갖고 있으므로 이 사람은 분명히 Alice 이다 .
6
WEP 인증 ( 단말 인증 )
APauthentication request
nonce (128 bytes)
nonce encrypted shared key
success if decrypted value equals nonce
7
WEP 암호화 (1) 쌍방은 공유할 WEP 대칭키 (104 bits 혹은 40bits) 를
수동으로 설치한다 . 송신 노드는 데이터 부분에 대해서 CRC-32 를 계산한다 .
이것을 ICV 로 사용한다 . 송신 노드는 매 프레임 마다 24-bit 의 initialization vector
(IV) 를 임의로 선택한다 . IV 를 key 에 연결하여 128-bit key 를 만든다 . 송신 노드는 keyID (8-bit 필드 ) 를 덧 붙인다 . 128-bit key 를 pseudo random number generator 에
입력하여 keystream 을 구한다 . (data + ICV) 를 RC4 로 암호화한다 .
encrypted
data ICVIV
MAC payload
KeyID
MAC 헤더 FCS
8
WEP 암호화 (2)
IV (per frame)
KS: 104-bit secret
symmetric key k1
IV k2IV k3
IV … kNIV kN+1
IV… kN+1IV
d1 d2 d3 … dN
CRC1 … CRC4
c1 c2 c3 … cN
cN+1 … cN+4
plaintext frame data
plus CRC
key sequence generator ( for given KS, IV)
802.11 header IV
&
WEP-encrypted data plus ICV
Figure 7.8-new1: 802.11 WEP protocol 매 프레임 마다 새로운 IV 사용
9
WEP 복호화
수신노드는 IV 를 추출한다 . IV 와 공유하고 있는 대칭키를 pseudo random
generator 에 입력하여 키스트림 (keystream) 을 구한다 .
키스트림과 암호화된 데이터 (+ICV) 를 XOR 하여 복호화
ICV 로 데이터 무결성 검증 이것은 앞에서 배운 MAC (message authentication code)
혹은 전자 서명과는 다른 방법이다 .
암호화
data ICVIV
MAC 페이로드
KeyID
802.11 WEP encryption보안 구멍 : 24-bit IV, 프레임 마다 하나의 IV -> IV 는 결국 재사용된다 . IV 는 평문으로 전송 -> 재사용된 IV 가 드러남 공격 :
Trudy 는 Alice 로 하여금 알려진 평문 d1 d2 d3 d4 … 을 암호화하도록 한다 .
Trudy 발견 : ci = di XOR kiIV
Trudy 는 ci di 를 알고 또한 kiIV 를 계산할 수 있다 .
Trudy 는 연속되는 암호화 키스트림 k1IV k2
IV k3IV … 을 알 수
있다 . 다음 번 동일한 IV 가 사용된다면 Trudy 는 복호화할 수 있다 .!
802.11i 단말 /AP 의 상호 인증 (WPA) 의 두 가지 형태
WPA 개인 인증 방식 (WPA-PSK) WPA 기업 ( 인증 서버를 통한 상호 인증 )
동적인 암호화를 위한 대칭키 분배 절차 2 개의 암호화 알고리즘
TKIP(Temporal Key Integrity Protocol)- WPA• 스트림 암호화 알고리즘• 48bit IV
CCMP – WPA2• 블록 암호화 알고리즘• AES 와 유사
WPA-PSK 인증 방식
12
PMK <-PSK <- (password, SSID) PMK <-PSK
PTK
PTKKCK, KEK, TK
KCK, KEK, TK
Beacon ( 인증 방법 , 암호 방식 )Authenication Request
Association Response (success. A_ID)
Association Request (TKIP, PSK, auth)Authenication Response (success)
EAPoL-Key msg (AP_nonce, KRC=n)
EAPoL-Key msg ({MIC}KCK, S_nonce, KRC=n)
GTK(group key) 생성EAPoL-Key msg ((H(msg,KCK), AP_nonce, KRC=n+1, {GTK}KEK)
EAPoL-Key msg (H(msg,KCK), S_nonce, KRC=n+1)
H(msg,KCK) 으로 AP 인증
H(msg,KCK) 으로 단말 인증
station AP
13
WPA-PSK 암호화 키 PTK = Psuedo-Random Function(PMK, AP MAC
addr, STA MAC addr, AP_nonce, S_nonce) PTK 를 분할해서 Key Confirmation Key(KCK),
Key Encryption Key(KEK), Temporal Key(TK) 를 생성 KCK : 상호 인증에 사용 (HMAC 에서 사용하는 비밀값 ) KEK : Group Key(GTK) 를 암호화해서 보내는데 사용 TK : 데이터 암호화 키
TKIP 혹은 CCMP 는 TK 를 키로 사용하여 데이터를 보낼 때 암호화한다 .
14
인증 서버를 이용한 상호 인증
802.1X 에서 규정한 인증서를 기반으로 한 상호 인증 EAP-TLS, EAP-TTLS, Protected EAP
단말 (station) 과 인증 서버 간에 상호 인증 인증 서버는 인증 결과를 AP 에게 알려 준다 . 단말이 생성한 pre-master-secret 를
사용하여 PMK 를 구하고 , PSK 방식의 4-way handshake 와 동일한 방식으로 TK 와 GTK 를 구한다 .
15
wirednetwork
EAP TLSEAP
EAP over LAN (EAPoL) IEEE 802.11
RADIUSUDP/IP
EAP: extensible authentication protocol EAP: 인증을 위한 메시지와 메시지에 포함되는
정보를 규정한 프로토콜 EAP 메시지는 두 개의 링크를 통해서 전달된다 .
station-to-AP (EAP over LAN) AP to 인증 서버 (RADIUS over UDP)
17
Chapter 8 목차
8.1 네트워크 보안이란 무엇인가 ?8.2 암호학의 원리8.3 메시지 무결성8.4 전자 메일의 보안8.5 TCP 연결의 보안 : SSL8.6 네트워크 계층의 보안 : IPsec8.7 무선 랜의 보안8.8 운영상 보안 : 방화벽과 침입 방지 시스템
Webserver
FTPserver
DNSserver
applicationgateway
Internet
Demilitarized Zone(DMZ)
internalnetwork
firewall
IDS
네트워크 보안을 위한 내부망의 구성
방화벽 (Firewalls)
외부망으로부터 특정 패킷은 통과를 못하도록 하여 기관의 내부망을 외부망으로부터 안전하게 하도록 한다 .
방화벽
administerednetwork
publicInternet
firewall
방화벽 사용 이유서비스 거부 공격 (denial of service attacks) 방어한다 .
SYN flooding:
불법적인 동작을 막는다 . 예 : 홈페이지 변경
허락된 사용자 /호스트 만 내부망에 접근할 수 있도록 한다 .
방화벽의 유형 : 전통적인 패킷 필터 (stateless packet filter) 상황 고려 패킷 필터 (stateful packet filter) 어플리케이션 게이트웨이 (application gateway) 개인 방화벽
(Stateless) 패킷 필터
내부망은 라우터 방화벽을 통해서 인터넷과 연결된다 .
라우터는 각 패킷에 대해서 다음과 같은 기준에 의해 필터링을 결정한다 . source IP address, destination IP address TCP/UDP source 와 destination port numbers ICMP message type TCP SYN 와 ACK bits
도착하는 패킷을 통과시킬 것인가 ? 나가는 패킷을 허용할 것인가 ?
패킷 필터 : 예 예 1: 다음과 같은 도착 /출발 패킷은 막는다 :IP
protocol field = 17, and source 혹은 dest port = 23. 모든 UDP 패킷들과 telnet 연결은 블록된다 .
예 2: ACK=0 인 내부로 향하는 TCP segment 는 블록 외부에서 내부 호스트로 TCP 연결을 하는 것은
모두 막음
Policy Firewall Setting
No outside Web access. Drop all outgoing packets to any IP address, port 80
No incoming TCP connections, except those for institution’s public Web server only.
Drop all incoming TCP SYN packets to any IP except 130.207.244.203, port 80
Prevent Web-radios from eating up the available bandwidth.
Drop all incoming UDP packets - except DNS and router broadcasts.
Prevent your network from being used for a smurf DoS attack.
Drop all ICMP packets going to a “broadcast” address (eg 130.207.255.255).
Prevent your network from being tracerouted
Drop all outgoing ICMP TTL expired traffic
패킷 필터 : 예
action sourceaddress
destaddress protocol source
portdestport
flagbit
allow 222.22/16
outside of222.22/16 TCP > 1023 80 any
allowoutside
of222.22/1
6
222.22/16 TCP 80 > 1023 ACK
allow 222.22/16
outside of222.22/16 UDP > 1023 53 ---
allowoutside
of222.22/1
6
222.22/16 UDP 53 > 1023 ----
deny all all all all all all
Access Control Lists ACL: 모든 도착 패킷에 적용되는 규칙들 : (action,
condition)
패킷 필터
장점 속도
단점 상태를 기억하지 않는다 – 각
패킷은 다른 패킷과 독립해서 별도로 처리된다 .
TCP 연결을 볼 수 없다 . 응용 데이터를 볼 수 없다 . –
따라서 , 많은 바이러스가 존재할 수 있다 .
Application
Transport
NetworkLink
Physical
Stateful 패킷 필터 stateless 패킷 필터 :
논리적으로 타당하지 않은 패킷도 허용될 수 있다 .
action sourceaddress
destaddress protocol source
portdestport
flagbit
allow outside of222.22/16
222.22/16 TCP 80 > 1023 ACK
stateful 패킷 필터 : 모든 TCP 연결을 추적 연결 설정 (SYN), 해제 (FIN) 추적 : 도착 , 출발 패킷들이
논리적으로 타당한지 결정 비활성 연결은 타임아우트 : 패킷 통과를 허용하지 않음
TCP ACK 스캔
공격자는 3-way handshake 없이 ACK 비트를 세팅하고 패킷을 보낸다
이것은 TCP/IP 프로토콜을 위반하는 것이다 . ACK 패킷은 패킷 필터를 통과한다 .
현재 연결 설정이 진행 중인 것으로 보여진다 . 이 패킷을 받은 수신 프로세스는 Reset
비트를 세팅하여 보낸다 . 공격자는 이와 같이 하여 방화벽에 열려 있는
포트 번호를 스캔할 수 있다 .
TCP ACK 스캔
이와 같이 하여 공격자는 포트 1209 가 현재 방화벽에서 열려 있는 것을 알 수 있다 .
A stateful packet filter 는 ACK 스캔 패킷은 현재 설정된 연결에 해당하지 않는다는 것을 알 수 있기 때문에 이와같은 스캔을 막을 수 있다 .
PacketFilter
Trudy InternalNetwork
ACK dest port 1207ACK dest port 1208ACK dest port 1209
RST
action sourceaddress
destaddress proto source
portdestport
flagbit
연결검사
allow 222.22/16 outside of222.22/16 TCP > 1023 80 any
allow outside of222.22/16
222.22/16 TCP 80 > 1023 ACKx
allow 222.22/16 outside of222.22/16 UDP > 1023 53 ---
allow outside of222.22/16
222.22/16 UDP 53 > 1023 ----x
deny all all all all all all
Stateful packet filtering 연결 상태를 추적하기 위해서 ACL 리스트 확장
Application gateways
IP/TCP/UDP 필드뿐 아니라 응용 데이터 필드로 필터링에 사용
예 : 특정 사용자 만 외부로 telnet 을 허용
host-to-gatewaytelnet session
gateway-to-remote host telnet session
applicationgateway
router and filter
1. 모든 telnet 사용자는 게이트웨이를 통과하도록 한다 .2. 허용된 사용자에 대해서만 게이트웨이는 목적지 호스트에
telent 연결을 설정한다 . 게이트웨이는 2 개의 연결을 통해서 데이터를 릴레이한다 .
3. 라우터는 게이트웨이로부터 시작되지 않은 모든 telnet 연결은 허용하지 외부로 나가는 것을 허용하지 않는다 .
Application gateways 장점
연결과 응용 데이터 모두를 볼 수 있다 .
응용 계층에서 나쁜 데이터를 걸러 낼 수 있다 . (viruses, Word macros)
단점 속도
ApplicationTransport
Network
Link
Physical