[강의정리] 데이터통신과네트워크 네트워크와 암호


암호기술

암호학적 해쉬 함수

  • Cryptographic hash functions

  • one-way function: 한방향으로만 입출력(출력값을가지고 입력값을 구하기 어려움)

  • 해쉬 함수 특징

    • 1차 역상 저항성(Preimage resistance): output을 가지고 input을 유추하기 어려움
  • Avalanche effect

    • 입력값이 1비트 값만 변하더라도 결과값은 전혀 다른값이 됨
    • 암호학적 해쉬 함수 종류
      • MD5, SHA1, SHA256…
  • 사용 예: 파일 이미지 확인, 패스워드 생성기

대칭키 암호

  • 평문 (Planetext): 암호화 되기 전 메시지

  • 암호문 (Ciphertext): 암호화된 메시지

  • 구성요소

    • 암호알고리즘: E()
    • 암호화 키: K
    • 암호화(Encryption): EK(P) = C
    • 복호화(Decryption): DK(C) = P
  • 대칭키 암호 (Symmetric key encryption)

    • 스트림 암호 (Stream Cipher): RC4, OTP, …
    • 블록 암호 (Block cipher): DES, AES, SEED, …

블록 암호 (Block Cipher)

  • 실생활에서 주로 사용되는 대칭키 암호 시스템
  • 평문을 고정된 길이의 블록으로 나눈 후, 암호화 과정 진행
    • 암호문 길이 = 평문 길이

대칭키 암호 (DES)

  • 1977년에 표준으로 제정
  • 2007년에 6.4일만에 해독됨

대칭키 암호 (AES)

  • 1997년 NIST가 차세대 암호 표쥰(AES: Advanced encryption standard) 공모
  • 벨기에 암호학자들이 제안한 블록 암호 시스템 선정

메시지 인증 코드 (MAC)

  • MAC(Message authentication code)

  • MAC 구성요소

    • MAC 알고리즘: MAC()
    • MAC Key: K
  • MAC을 만드는 방법

    • 블록암호 기반 MAC 알고리즘
    • 암호학적 해쉬 기반 MAC 알고리즘 (일반적)

공개키 암호 시스템

  • 공개키 암호(Public key system or Asymmetric key system)

    • 공개키 암호는 한쌍의 키를 가지고 있음

    • 공개키: 외부로 공개하는 키 값

    • 개인키: 자신만 가지고 있는 키 값

    • 수학적 난제를 통해 키를 생성

    • 전자서명 시스템에 자주 사용

네트워크와 암호

Backgrounds

  • Link encryption

    • 암호화가 모든 링크에서 독립적으로 수행
    • 모든 링크간의 사전에 공유된 암호화 키 필요
  • End-to-End encryption

    • 암호화가 시작점과 도착점에서 수행

End-to-End 암호화

  • 헤더부분(e.g., IP address)은 암호화 되지 않음

    • 헤더정보를 통해 인터넷 패킷들을 라우팅
    • 헤더정보가 암호화되지 않으므로 traffic 흐름 노출
      • End-to-End에서는 A와 B가 통신하고 있다는 사실 노출
  • 그래서 End-to-End와 Link 암호화 동시에 사용되기도 함

    • End-to-End 암호화: 데이터 보호
    • Link 암호화: traffic 흐름 숨김
  • 둘다 대부분 대칭키 암호 사용 (e.g., AES)

    • 비대칭키 암호(공개키 암호)는 주로 암호화 키 교환(혹은 인증)에 사용

SSL/TLS 프로토콜 구조

  • SSL/TLS 프로토콜은 클라이언트와 서버의 통신에 메시지 인증, 기밀성, 가용성 제공

  • 암호화 되지 않은 패킷 (e.g., HTTP)는 SSL패킷으로 인코딩 되면서 암호화 진행 (HTTP SSL)

구조

  • Handshake protocol

    • 암호화/인증 통신을 위해 사용할 알고리즘의 종류 그리고 암호화/인증 키에 대해 협의
  • ChangeCipherSpec protocol

    • Handshake 프로토콜을 통해 교환된 정보들을(e.g., 암호 알고리즘 종류, 암호화 키) 확인
  • Alert protocol

    • TLS 괒어 중에 발생하는 에러 혹은 비정상적인 상황을 리포트
  • Record portocol

    • TLS에서 전송되는 상위 레이어의 메시지 처리

IPsec

  • IPSec(Internet Protocol Security): SSL과 달리 네트워크 계층에서 보안을 제공하기 위해 IETF(Internet Engineering Task Force)에 의해 표준화된 프로토콜

  • 왜사용?

    • 어플리케이션 레이어에서 보호 안될수도
    • UDP 사용할수도

Transport mode vs. tunnel mode

전송모드 (Transport 모드)

  • IPSec의 기본 모드, end-to-end 보안 제공
  • IPSec에서 전송모드가 사용되면 IP데이터영역만 보안 처리함으로써 IP데이터 영역을 보호
  • IP헤더는 보호X

터널모드 (Tunnel 모드)

  • IP패킷 전체를 보호
  • 헤더영역도 보호함
  • 트래픽 흐름 보호 가능

TLS vs. IPSec

  • SSL/TLS

    • transport layer에서 제공
    • 일반 보안통신에 주로 사용
  • IPSec

    • network layer에서 제공
    • 특수 보안통신(e.g., VPN)에서 주로 샤용

VPN(Virtual Private Network)

Tor (The Onion Router)

  • Onion Routing 기반

댓글