1 / 65

Chapter 8 네트워크 보안

Chapter 8 네트워크 보안. Computer Networking: A Top Down Approach , 5 th edition. Jim Kurose, Keith Ross Addison-Wesley, April 2009. Chapter 8 목차. 8.1 네트워크 보안이란 무엇인가 ? 8.2 암호학의 원리 8.3 메시지 무결성 8.4 종단점 인증 8.5 전자 메일의 보안 8.6 TCP 연결의 보안 : SSL 8.7 네트워크 계층의 보안 : IPsec 8.8 무선 랜의 보안

gefen
Télécharger la présentation

Chapter 8 네트워크 보안

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Chapter 8네트워크 보안 Computer Networking: A Top Down Approach ,5th edition. Jim Kurose, Keith RossAddison-Wesley, April 2009.

  2. Chapter 8 목차 8.1 네트워크 보안이란 무엇인가? 8.2암호학의 원리 8.3메시지 무결성 8.4종단점 인증 8.5전자 메일의 보안 8.6 TCP 연결의 보안: SSL 8.7네트워크 계층의 보안: IPsec 8.8무선 랜의 보안 8.9운영상 보안: 방화벽과 침입 방지 시스템

  3. 네트워크 보안의 목표 기밀성(confidentiality):오직 송신자와 정해진 수신자만이 메시지 내용을 “이해”할 수 있다. • 암호화의 과제 인증(authentication):송신자와 수신자는 상호 존재를 확인할 수 있어야 한다. 무결성(integrity):메시지가 전송 중(혹은 후에) 변경되지 않은 것을 보장할 수 있도록 한다. 접근 제어(access control)와 가용성(availability) :사용자는 서비스를 원할 때는 언제든지받을 수 있어야 한다.

  4. 친구와 적들: Alice, Bob, Trudy • Bob과 Alice는 안전하게 통신을 하고 싶다. • Trudy (공격자)는 둘 사이의 메시지를 엿보거나 제거하거나 삭제하려고 한다. Alice Bob data, control messages channel secure sender secure receiver data data Trudy

  5. 누가 Bob, Alice가 될 수 있는가? • 실제 통신하는 사람들 • 전자 상거래를 하는 웹 브라우저와 서버 • 온라인 뱅킹을 하는 client/server • DNS 서버 • 라우팅 정보를 교환하는 라우터들 • 등등

  6. 공격자가 하려는 것은? • 엿듣기:메시지 가로채기 • 적극적으로 거짓 메시지를 추가한다. • 메시지 내용 변경 • 이전 메시지를 새로운 메시지로 다시 전송(replay) • 위장:패킷의 소스 주소를 가짜 주소로 한다.(spoof) • 하이재킹:자신이 송신자 혹은 수신자가 되어 통신을 한다. • 서비스 거부(denial of service): 다른 사람의 서비스를 받지 못하도록 한다. • 서버의 자원이 고갈되도록 한다. • 소프트웨어의 약점을 이용한 웜, 바이러스 공격

  7. Chapter 8 목차 8.1네트워크 보안이란 무엇인가? 8.2암호학의 원리 8.3메시지 무결성 8.4전자 메일의 보안 8.5 TCP 연결의 보안: SSL 8.6네트워크 계층의 보안: IPsec 8.7무선 랜의 보안 8.8운영상 보안: 방화벽과 침입 방지 시스템

  8. Bob의 복호화 키 (decryption key) Alice의암호화 키 (encryption Key) encryption algorithm decryption algorithm 평문 (plaintext) 평문(plaintext) 암호문(ciphertext) K K A B 암호학 관련 용어 m : 평문 메시지 KA(m) : 키KA 로 암호화된 암호문 m = KB(KA(m))

  9. 간단한 암호화 방법 대치 암호(substitution cipher): • 단일 문자 대치 암호 평문: abcdefghijklmnopqrstuvwxyz 암호문: mnbvcxzasdfghjklpoiuytrewq 예: 평문: bob. i love you. alice 암호문: nkn. s gktc wky. mgsbc Key: the mapping from the set of 26 letters to the set of 26 letters

  10. 암호화 키(crypto key) • 암호화할 때 보통 암호화 키(key)를 사용한다: • 암호화 알고리즘은 모든 사람에게 알려져 있다. • 오직키(key)만 비밀로 유지된다. • 왜 암호화 알고리즘을 비밀로 하지 않고 키(key)만 비밀로 할까?

  11. 암호문 만으로 해독 두 가지 접근 방법: 모든 키에 대해 다 시도해 본다. 통계 분석 알려진 평문 공격:공격자는 어떤 암호문에 대한 평문의 쌍을 알고 있다. 선택 평문 공격:침입자는 평문 메시지를 선택할 수 있고 이에 대응하는 암호문 형태를 얻을 수 있다. 암호 해독 공격 방법

  12. 암호화 방법 • 대칭키(Symmetric key) 암호화 • 공개키(Public key) 암호화

  13. K K S S 대칭키 암호화 대칭키: Bob과 Alice는 공유키를 사용한다 : K Q: Bob과 Alice는 어떻게 이 키를 서로 약속해서 사용할 수 있을까? - 키 배분의 문제 encryption algorithm 평문 메시지 m decryption algorithm 암호문 평문 m = KS(KS(m)) K (m) S S

  14. 대칭키 암호화의 두 유형 • 스트림 암호화(stream cipher) • 한 번에 한 비트씩 암호화 • 블록 암호화(block cipher) • 평문 메시지를 동일한 크기의 블록으로 구분하여 블록 단위로 암호화한다.

  15. 스트림 암호화 pseudo random • 키 스트림(key stream)의 각 비트를 평문의 각 비트와 결합하여 암호문의 비트를 생성한다. • m(i) = 평문 메시지의 i번째 비트 • ks(i) = 키 스트림의 i번째 비트 • c(i) = 암호문의 i번째 비트 • c(i) = ks(i)  m(i) ( = exclusive or) • m(i) = ks(i)  c(i) keystream generator key keystream

  16. RC4 스트림 암호화 • RC4는 널리 알려진 스트림 암호화 방법이다. • 키는 1바이트부터 256바이트까지 사용 • 802.11의 WEP에서 사용 • SSL에서도 사용할 수 있다.

  17. 블록 암호화 • 메시지는 k 비트의 블록으로 나누어서 암호화한다. (예, 64-bit 블록). • K 비트 길이의 평문 메시지 블록과 k 비트 길이의 암호문 블록과 1대1로 매핑된다. 예(k=3): inputoutput 000 110 001 111 010 101 011 100 inputoutput 100 011 101 010 110 000 111 001 평문 010110001111의 암호문은?

  18. 블록 암호화 • 블록 크기가 작을 경우: 예를 들면 k=3? • How many 3-bit inputs? • 3-bit 입력값에 대한 순열(permutation)의 수는? • 2k! mappings • 답: 40,320 ; 너무 적다! • 블록 크기가 너무 클 경우, 예를 들면 k=64: • 입력값에 대한 순열의 수는 264! • 하지만, 64비트의 각 스트링에 대해서 264개의 값이 테이블에 존재해야 한다. • 테이블이 너무 커진다.

  19. From Kaufman et al 64-bit input 8bits 8bits 8bits 8bits 8bits 8bits 8bits 8bits S1 S2 S4 S3 S6 S5 S8 S7 8 bits 8 bits 8 bits 8 bits 8 bits 8 bits 8 bits 8 bits 64-bit 뒤섞음 n번 순환 64-bit output 블록 암호화의 예 S-box 8-bit to 8-bit mapping

  20. 앞의 예에서 왜 n번 반복하는가? • 한번만한다면입력된 1 비트는 출력문의 최대 8비트에 영향을 준다. • 두번째 반복하면 이 8비트는 다시 흩어져서 여러 개의 S-box의 입력으로 들어가게 된다. • 얼마나 반복해야 하나? • 카드를 반복해서 섞는 것과 유사한다. • n이 증가하면 섞는 효과는 감소된다.

  21. One Round of DES L R key 28 28 32 32 L R expand 28 28 48 48 Compress 48 S-boxes(8) 28 32 28 P Box 32 32 32 key R L

  22. 큰 메시지를 암호화할 때 • 각 블록 마다 독립해서 암호화를 한다면, • 만약 모든 블록에 동일한 키를 사용하면 문제: 왜냐하면 같은 내용의 블록이 다시 나온다면 암호문도 같아진다. 그렇다면 공격자가 예측할 수 있는 정보를 제공해 준다. • 만약 각 블록마다 다른 키를 사용한다면: • 매 블록 m(i) 마다 64-bit의 r(i)를 랜덤하게 발생 • c(i) = KS( m(i)  r(i) )를 계산 • 전송: c(i), r(i), i=1,2,… • 수신자는 해독: m(i) = KS(c(i))  r(i) • 문제는 매번 암호문(블록)을 보낼 때 마다 다른 키를 같이 보내야 한다: c(i)와 r(i)

  23. 만약 모든 블록을 동일한 키를 사용하면 • Alice의 압축된 파일을 암호화하여 표시할 때 • 어떻게 이렇게 되었는가? • 동일한 평문의 블록  동일한 암호문!

  24. 암호 블록 연결(CBC) • 현재의 블록을 암호화할 때 이전 블록의 결과를 사용한다. • c(i) = KS( m(i)  c(i-1) ) • m(i) = KS( c(i))  c(i-1) • 그러면 첫번째 블록을 어떻게 암호화할 것인가? • 초기 벡터(IV): 랜덤하게 생성된 블록 = c(0) • IV는 비밀값일 필요는 없다. • 각 메시지 마다(혹은 세션마다) IV값을 변경한다. • 동일한 메시지를 반복해서 전송하더라도 암호문은 매번 변경되도록 한다.

  25. + Cipher Block Chaining(CBC) m(1) = “HTTP/1.1” c(1) = “k329aM02” block cipher t=1 • 만약 입력 블록이 동일하다면 동일한 암호문이 만들어 진다. … m(17) = “HTTP/1.1” c(17) = “k329aM02” block cipher t=17 • cipher block chaining: i번째 입력 블록과 이전 암호문의 블록을 XOR m(i) c(i-1) block cipher c(i)

  26. CBC 모드로 암호화 • Alice’의 압축되지 않은 이미지를 CBC (TEA)를 사용하여 암호화하였다. • 왜 이렇게 되었는가? • 동일한 평문일지라도 다른 암호문을 만들어낸다!

  27. 대표적 대칭키 암호화 방법: DES DES: Data Encryption Standard • US 암호 알고리즘 표준[NIST 1993] • 56-bit 대칭키 사용, 64-bit 크기의블록 • 암호문 블록 연결 (cipher block chaining) • DES는 얼마나 안전한가? • 무차별 공격(brute force)으로 하루 안에 암호를 풀 수 있다. • 안전의 문제는 키의 길이와 메시지의 암호를 푸는 컴퓨터의 계산 능력에 달려 있다. • 3DES • 키의 길이를 DES의 3배로 하여 암호화한다.

  28. AES: Advanced Encryption Standard • 미국의 새로운 암호 알고리즘 표준 [2001]: DES를 대체 • 블록 크기: 128 bit • 키의 길이: 128, 192, or 256 bits • 무차별 공격(brute force)으로 동일한 암호문을 풀 경우, DES의 경우 1초가 걸린다면 AES는 149 trillion years가 걸린다.

  29. 공개키 암호화 • 대칭키 암호화는 송수신자 만이 공유하는 비밀키를 가져야 한다. • Q: 어떻게 둘 만의 비밀키를 가질 수 있는가(특히 둘이 서로 직접 만날 수 없다면)? 공개키 암호화 • 완전히 다른 접근 방법[Diffie-Hellman76, RSA78] • 송신자와 수신자는 비밀키를 공유하지 않는다. • 공개키는 모두에게 공개된다. • 개인키는 오직 각 개인들만 갖고 있다.

  30. + K (m) B - + m = K (K (m)) B B 공개키 암호화 + Bob의 공개키 K B - Bob의 개인키 K B encryption algorithm decryption algorithm plaintext message plaintext message, m ciphertext

  31. K (K (m)) = m B B - + 2 1 공개키 암호화 알고리즘 요구사항: K 와 K 필요 - + B B - + 공개키 K 에서 개인키 K 를 찾아낼 수 없다. B B RSA: Rivest, Shamir, Adelson algorithm

  32. 간단한 modular arithmetic • x mod n = x를 n으로 나누었을 때 나머지(remainder) • 법칙: [(a mod n) + (b mod n)] mod n = (a+b) mod n [(a mod n) - (b mod n)] mod n = (a-b) mod n [(a mod n) * (b mod n)] mod n = (a*b) mod n • 따라서 (a mod n)d mod n = ad mod n • 예: x=14, n=10, d=2:(x mod n)d mod n = 42 mod 10 = 6xd = 142 = 196 xd mod 10 = 6

  33. + - K K B B RSA: 공개키와 개인키 생성 1.두 개의 큰 소수p, q를 선택한다. 2. n과 z를 계산: n = pq, z = (p-1)(q-1) 3.e (with e<n)를 선택한다. e와 z는 “서로 소”(공약수가 없다). 4.d를 선택한다. ed-1는 z로나누어진다. (ed mod z = 1 ). 5.공개키:(n,e).개인키:(n,d).

  34. 1.m(<n)을 다음과 같이 암호화 d e c = m mod n m = c mod n d e m = (m mod n) mod n RSA: 암호화와 복호화 0. (n,e)과 (n,d)를 앞에서와 같이 계산 2.c를 복호화 Magic happens! c

  35. c = me mod n, cd mod n = m • for any x and y: xy mod n = x(y mod z) mod n • where n= pq and z = (p-1)(q-1) • 따라서, cd mod n = (me mod n)d mod n = med mod n = m(ed mod z) mod n = m1 mod n = m

  36. d e c = m mod n m = c mod n d c RSA 예: p=5, q=7. Then n=35, z=24. e=5 (따라서e와 z는 서로 소). d=29 (따라서ed-1는 z로 나누어진다). e m m bit pattern encrypt: 0000l000 17 24832 12 c decrypt: 17 12 481968572106750915091411825223071697

  37. K (K (m)) = m - B B + K (K (m)) - + = B B RSA: 또 다른 중요한 성질 개인키를 먼저 적용, 다음에 공개키를 적용 먼저 공개키를 적용, 다음에 개인키를 적용 결과는 동일하다!

  38. K (K (m)) = m - B B + K (K (m)) - + = B B 왜 ? 다음과 같은 modular 연산에 의해서 성립: (me mod n)d mod n = med mod n = mde mod n = (md mod n)e mod n

  39. 왜 RSA는 안전한가? • Bob (n,e)의 공개키를 알고 있을 때, d를 찾는 것이 얼마나 어려운가? • 이것은 n을 인수분해하여 두 개의 소수 p와 q를 얼마나 빨리 찾을 수 있느냐에 달려있다. • 커다란 수의 두 소수 p,q를 찾는 것은 어렵다. RSA 키 생성 • 두 개의 커다란 소수 p와 q를 찾아야 한다.

  40. 공개키의 응용 • 공개키 사용의 문제점 • 지수 연산은 계산 시간이 많이 요구된다. • DES는 적어도 RSA 보다 100배 빠르다. • 따라서 공개키를 긴 메시지 전체를 암호화하는데는 사용하지 않는다. • 공개키의 응용 • 공개키를 사용하여 대칭키를 암호화하여 전송하고 메시지의 암호화는 대칭키를 사용한다. • 디지털 서명 • 인증

  41. Chapter 8 목차 8.1네트워크 보안이란 무엇인가? 8.2암호학의 원리 8.3메시지 무결성 8.4전자 메일의 보안 8.5 TCP 연결의 보안: SSL 8.6네트워크 계층의 보안: IPsec 8.7무선 랜의 보안 8.8운영상 보안: 방화벽과 침입 방지 시스템

  42. 메시지 무결성(integrity) • 통신 개체들이 수신한 메시지가 진짜인 것을 증명 • 메지지의 내용이 변경되지 않았다. • 메시지의 생성자가 내가 그런 것으로 알고 있는 개체이다. • 이전 메시지가 다시 전송되지 않았다. • 전송되는 메시지의 순서가 유지되었다. • 접근 방법 • 메시지 다이제스트(message digest)

  43. 함수 H( )는 임의의 길이의 메시지를 입력으로 받아서 고정된 길이의 메시지 스트링을 만들어낸다. H( ) : many-to-1 함수 H( )는 “해쉬함수(hash function)”라고 불리운다. 요구되는 특성: 계산이 용이 단방향: H(m)에서 m을 찾을 수 없다. 충돌 방지: H(m) = H(m’)인 m과 m’을 계산하는 것은 어려워야 한다. 출력값은 랜덤해야 한다. large message m H: Hash Function H(m) 해쉬 함수와 메시지 다이제스트

  44. checksum: 불완전한 해쉬 함수 에러 코드로 사용하는 checksum은 해쉬 함수의 특성을 갖고 있다: • 고정된 길이의 메시지 다이제스트(16-bit sum)를 생성한다. • many-to-one • 하지만 어떤 해쉬값을 갖는메시지가 있을 때동일한 해쉬값을 갖는 또 다른 메시지를 쉽게 찾을 수 있다. • 예: 단순한 체크섬: ASCII format message ASCII format message I O U 9 0 0 . 1 9 B O B 49 4F 55 39 30 30 2E 31 39 42 D2 42 I O U 1 0 0 . 9 9 B O B 49 4F 55 31 30 30 2E 39 39 42 D2 42 B2 C1 D2 AC B2 C1 D2 AC 다른 메시지 하지만 동일한 checksum!

  45. MD5 (RFC 1321) 널리 사용되고 있다. 4단계의 계산으로 128-bit 메시지 다이제스트를 생성한다. SHA-1 US 표준 [NIST, FIPS PUB 180-1] 160-bit 메시지 다이제스트 해쉬 함수(hash function) 알고리즘

  46. s = shared secret s s message message message H( ) H( ) compare 메시지 인증 코드(MAC) • 송신자를 인증한다(authenticate) • 메시지 무결성을 증명 • 암호화는 없음 ! • “keyed hash”라고도 불리움 • MDm = H(s||m) ; 전송 m||MDm

  47. HMAC (RFC 2104) • 널리 사용되고 있는 MAC 표준 • MD5나 SHA-1 해쉬 함수와 함께 사용될 수 있다. • 응용 예: OSPF • 공걱 • 메시지 삽입 • 메시지 제거 • 메시지 수정 • 어떻게 라우터는 전송받은 메시지가 진짜인지 알 수 있는가?

  48. 종단 개체 인증(End-point authentication) • Bob이 Alice로부터 메시지(m)와 함께 MAC을 받았다. • Bob은 이 메시지가 중간에 변경되지 않았다는 것을 확신할 수 있는가? • Bob은 이 메시지를 Alice가 만들었다는 것을 확신할 수 있는가? • Bob은 이 메시지를 Alice가 보냈다는 것을 확신할 수 있는가?

  49. Transfer $1M from Bill to Trudy Transfer $1M from Bill to Trudy MAC MAC 메시지 재사용(playback) 공격 MAC =f(msg,s)

  50. Transfer $1M from Bill to Susan MAC 메시지 재사용 공격에 대한 방어: nonce “I am Alice” R MAC =f(msg,s,R)

More Related