[강의정리] 데이터통신과네트워크 네트워크와 암호
암호기술
암호학적 해쉬 함수
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 기반