Chapter 8 목차 8.1 네트워크 보안이란 무엇인가? 8.2 암호학의 원리 8.3 메시지 무결성 8.4 종단점 인증 8.5 전자 메일의 보안 8.6 TCP 연결의 보안: SSL 8.7 네트워크 계층의 보안: IPsec 8.8 무선 랜의 보안 8.9 운영상 보안: 방화벽과 침입 방지 시스템
무선 LAN 보안의 두 가지 과제 단말과 AP의 상호 인증 데이터의 암호화를 위한 키 분배 단말은 자신이 연결하려는 AP가 자신이 등록된 신뢰할 수 있는 AP인지 어떻게 확인할 것인가? AP는 연결하려고 하는 단말이 등록된 단말인지 어떻게 확인할 것인가? 데이터의 암호화를 위한 키 분배 데이터 암호화를 위한 세션키(대칭키)를 AP와 단말은 어떻게 공유해서 사용할 것인가?
무선 LAN 보안 프로토콜 WEP(Wired Equivalent Privacy) 802.11i 1999년 IEEE 802.11 무선 LAN 표준 40bits의 대칭키와 임의로 선택된 24bits의 초기 벡터(IV)로 조합된 64bits 키의 RC4 암호 알고리즘 사용 대칭키를 사용한 단말 인증(AP 인증은 안 함) 802.11i WEP의 보안 취약점으로 WEP를 대체하기 위하여 2004년 발표
WEP AP 내의 모든 단말들은 동일한 키를 사용한다. 공유하고 있는 대칭키에 의한 단말 인증 대칭 키 알고리즘 기반 기밀성 단말의 인증 데이터 무결성 각 패킷은 다른 키로 암호화 이전 패킷이 손실되더라도 복호화하는데 지장이 없다. AP 내의 모든 단말들은 동일한 키를 사용한다. 공유하고 있는 대칭키에 의한 단말 인증 AP 인증은 하지 않는다. 하드웨어 혹은 소프트웨어로 구현할 수 있다.
Nonce와 대칭키를 이용한 개체 인증 Nonce: number (R) used only once –in-a-lifetime How: Alice는 Bob이 보낸 nonce R을 서로 공유하고 있는 대칭키로 암호화하여 보낸다. “I am Alice” R K (R) A-B Alic는 존재하고 오직 Alice만이 대칭키를 갖고 있으므로 이 사람은 분명히 Alice이다.
WEP 인증(단말 인증) AP authentication request nonce (128 bytes) nonce encrypted shared key success if decrypted value equals nonce
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 ICV IV MAC payload Key ID MAC 헤더 FCS
WEP 암호화 (2) 매 프레임 마다 새로운 IV 사용
WEP 복호화 암호화 data ICV IV MAC 페이로드 Key ID 수신노드는 IV를 추출한다. IV와 공유하고 있는 대칭키를 pseudo random generator에 입력하여 키스트림(keystream)을 구한다. 키스트림과 암호화된 데이터(+ICV)를 XOR하여 복호화 ICV로 데이터 무결성 검증 이것은 앞에서 배운 MAC (message authentication code) 혹은 전자 서명과는 다른 방법이다.
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 k2IV k3IV …을 알 수 있다. 다음 번 동일한 IV가 사용된다면 Trudy는 복호화할 수 있다.!
802.11i 단말/AP의 상호 인증(WPA)의 두 가지 형태 동적인 암호화를 위한 대칭키 분배 절차 2개의 암호화 알고리즘 WPA 개인 인증 방식(WPA-PSK) WPA 기업(인증 서버를 통한 상호 인증) 동적인 암호화를 위한 대칭키 분배 절차 2개의 암호화 알고리즘 TKIP(Temporal Key Integrity Protocol)- WPA 스트림 암호화 알고리즘 48bit IV CCMP – WPA2 블록 암호화 알고리즘 AES와 유사
WPA-PSK 인증 방식 station AP PMK <-PSK Beacon (인증 방법, 암호 방식) station AP Authenication Request Authenication Response (success) Association Request (TKIP, PSK, auth) Association Response (success. A_ID) PMK <-PSK PMK <-PSK <- (password, SSID) EAPoL-Key msg (AP_nonce, KRC=n) PTK EAPoL-Key msg ({MIC}KCK, S_nonce, KRC=n) PTK KCK, KEK, TK KCK, KEK, TK EAPoL-Key msg ((H(msg,KCK), AP_nonce, KRC=n+1, {GTK}KEK) GTK(group key) 생성 H(msg,KCK)으로 AP 인증 EAPoL-Key msg (H(msg,KCK), S_nonce, KRC=n+1) H(msg,KCK)으로 단말 인증
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를 키로 사용하여 데이터를 보낼 때 암호화한다.
인증 서버를 이용한 상호 인증 802.1X에서 규정한 인증서를 기반으로 한 상호 인증 EAP-TLS, EAP-TTLS, Protected EAP 단말(station)과 인증 서버 간에 상호 인증 인증 서버는 인증 결과를 AP에게 알려 준다. 단말이 생성한 pre-master-secret를 사용하여 PMK를 구하고, PSK 방식의 4-way handshake와 동일한 방식으로 TK와 GTK를 구한다.
EAP: extensible authentication protocol station-to-AP (EAP over LAN) AP to 인증 서버 (RADIUS over UDP) wired network EAP TLS EAP EAP over LAN (EAPoL) RADIUS IEEE 802.11 UDP/IP
Chapter 8 목차 8.1 네트워크 보안이란 무엇인가? 8.2 암호학의 원리 8.3 메시지 무결성 8.4 전자 메일의 보안 8.5 TCP 연결의 보안: SSL 8.6 네트워크 계층의 보안: IPsec 8.7 무선 랜의 보안 8.8 운영상 보안: 방화벽과 침입 방지 시스템
네트워크 보안을 위한 내부망의 구성 Internet internal network Demilitarized Zone(DMZ) application gateway firewall Internet internal network Web server IDS DNS server FTP server Demilitarized Zone(DMZ)
방화벽(Firewalls) 방화벽 외부망으로부터 특정 패킷은 통과를 못하도록 하여 기관의 내부망을 외부망으로부터 안전하게 하도록 한다. administered network public Internet 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 No outside Web access. 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
Access Control Lists ACL: 모든 도착 패킷에 적용되는 규칙들: (action, condition) source address dest protocol port flag bit allow 222.22/16 outside of TCP > 1023 80 any ACK UDP 53 --- ---- deny all
패킷 필터 장점 단점 Network 속도 상태를 기억하지 않는다 – 각 패킷은 다른 패킷과 독립해서 별도로 처리된다. TCP 연결을 볼 수 없다. 응용 데이터를 볼 수 없다. – 따라서, 많은 바이러스가 존재할 수 있다. Application Transport Network Link Physical
Stateful 패킷 필터 stateless 패킷 필터: 논리적으로 타당하지 않은 패킷도 허용될 수 있다. action source address dest protocol port flag bit allow outside of 222.22/16 TCP 80 > 1023 ACK stateful 패킷 필터: 모든 TCP 연결을 추적 연결 설정(SYN), 해제 (FIN) 추적: 도착, 출발 패킷들이 논리적으로 타당한지 결정 비활성 연결은 타임아우트: 패킷 통과를 허용하지 않음
TCP ACK 스캔 공격자는 3-way handshake 없이 ACK 비트를 세팅하고 패킷을 보낸다 이것은 TCP/IP 프로토콜을 위반하는 것이다. ACK 패킷은 패킷 필터를 통과한다. 현재 연결 설정이 진행 중인 것으로 보여진다. 이 패킷을 받은 수신 프로세스는 Reset 비트를 세팅하여 보낸다. 공격자는 이와 같이 하여 방화벽에 열려 있는 포트 번호를 스캔할 수 있다.
TCP ACK 스캔 이와 같이 하여 공격자는 포트 1209가 현재 방화벽에서 열려 있는 것을 알 수 있다. ACK dest port 1207 ACK dest port 1208 ACK dest port 1209 Trudy RST Internal Network Packet Filter 이와 같이 하여 공격자는 포트 1209가 현재 방화벽에서 열려 있는 것을 알 수 있다. A stateful packet filter는 ACK 스캔 패킷은 현재 설정된 연결에 해당하지 않는다는 것을 알 수 있기 때문에 이와같은 스캔을 막을 수 있다.
Stateful packet filtering 연결 상태를 추적하기 위해서 ACL 리스트 확장 action source address dest proto port flag bit 연결 검사 allow 222.22/16 outside of TCP > 1023 80 any ACK x UDP 53 --- ---- deny all
Application gateways IP/TCP/UDP 필드뿐 아니라 응용 데이터 필드로 필터링에 사용 gateway-to-remote host telnet session host-to-gateway telnet session IP/TCP/UDP 필드뿐 아니라 응용 데이터 필드로 필터링에 사용 예: 특정 사용자 만 외부로 telnet을 허용 application gateway router and filter 1. 모든 telnet 사용자는 게이트웨이를 통과하도록 한다. 2. 허용된 사용자에 대해서만 게이트웨이는 목적지 호스트에 telent 연결을 설정한다. 게이트웨이는 2개의 연결을 통해서 데이터를 릴레이한다. 3. 라우터는 게이트웨이로부터 시작되지 않은 모든 telnet 연결은 허용하지 외부로 나가는 것을 허용하지 않는다.
Application gateways 장점 단점 Application 연결과 응용 데이터 모두를 볼 수 있다. 응용 계층에서 나쁜 데이터를 걸러 낼 수 있다. (viruses, Word macros) 단점 속도 Application Transport Network Link Physical