이 챕터의 목표
- 네트워크 보안 원칙 이해:
- 암호화(cryptography) 및 그것의 다양한 용도 (단순히 "기밀성" 이상의 용도)
- 인증(authentication)
- 메시지 무결성(message integrity)
- 실제 보안 적용:
- 방화벽(firewalls) 및 침입 탐지 시스템(intrusion detection systems)
- 응용 계층, 전송 계층, 네트워크 계층, 링크 계층에서의 보안
네트워크 보안이란?
- 기밀성(confidentiality):
- 오직 송신자와 의도된 수신자만 메시지 내용을 이해할 수 있어야 함.
- 송신자가 메시지를 암호화하고, 수신자가 이를 복호화함.
- 인증(authentication):
- 송신자와 수신자가 서로의 신원을 확인하고자 함.
- 메시지 무결성(message integrity):
- 송신자와 수신자가 메시지가 전송 중이거나 이후에 변경되지 않았음을 보장하고자 함.
- 접근성 및 가용성(access and availability):
- 서비스는 사용자에게 접근 가능하고 가용해야 함.
- (디도스같은게 서버를 못쓰게 함)
인터넷 프로토콜 스택 5계층을 설계할때는
이런 문제들을 몰랐기때문에 설계가 안돼있음
ㅡ> 공격이 발생할때마다 그때그때 패치를 덕지덕지 붙이고 있는 상황
가상의 등장인물 Alice, Bob, Trudy
- Alice와 Bob은 서로 비밀스럽게(안전하게) 통신하려고 하는 관계로, Alice가 보낸 데이터를 Bob이 수신합니다.
- Trudy는 "침입자"(intruder)로, Alice와 Bob의 통신 채널에 접근하여 메시지를 가로채거나(intercept), 삭제하거나(delete), 또는 새로운 메시지를 추가(add)할 수 있습니다.
Bob과 Alice는 실제로 다음과 같은 다양한 상황에서 나타날 수 있습니다:
- 실제 인물인 Bob과 Alice의 통신
- 전자 거래를 위한 웹 브라우저와 서버 (예: 온라인 구매)
- 온라인 뱅킹의 클라이언트와 서버
- DNS 서버 간의 통신
- 라우터 간 라우팅 테이블 업데이트 교환
암호학(cryptography)의 기본 개념
- Alice는 암호화 키 KA를 사용하여 원본 메시지(plaintext)를 암호화(Encryption Algorithm)하여 암호문(ciphertext)을 생성합니다.
- 암호문은 Trudy와 같은 침입자에 의해 가로챌 수 있지만, 해독되지 않도록 보호됩니다.
- Bob은 복호화 키 KB를 사용하여 암호문을 복호화(Decryption Algorithm)하여 다시 원본 메시지(plaintext)로 변환합니다.
수식으로 나타내면:
- m: 원본 메시지(plaintext message)
- KA(m): Alice의 암호화 키 KA로 암호화된 암호문(ciphertext)
- m=KB(KA(m)): Bob의 복호화 키 KB로 복호화하여 원본 메시지 m을 재구성
우리나라에서 해외로가는 라우터에
몇몇 사이트를 블랙리스트로 추가해서
Wanning 사이트가 나오게 한다.
그러면 보통 그 사이트가 아니라 proxy로 갔다가 우회해서 그 사이트로 접속하는데
사실 그것도 정부에서 proxy를 블랙리스트로 추가할 수 있다 (중국, 북한)
대칭 키 암호화(Symmetric Key Cryptography)
- 대칭 키 암호화에서는 송신자와 수신자가 동일한 키(KS)를 사용
- 예 : 키는 단순 치환 암호(mono alphabetic substitution cipher)에서 치환 패턴을 아는 것이 될 수 있습니다.
- 장점 : 빠르고 효율적임
P Alice와 Bob이 키 값 KS 을 어떻게 합의할 것인가?
ㅡ> 만난적도 없는데 키를 어떻게 공유할까?
S 공개 키 암호화 (Public Key Crypto)
ㅡ> 모든이는 두가지 키를 가지고 있다 (공개키, 비밀키)
ㅡ> Bob의 공개키로 암호화해서 보내면, 비밀키를 가진 Bob만이 해독할 수 있다
ㅡ> 공개키는 모두가 알고, 비밀키는 그 사람만 안다
공개 키 암호화(Public Key Cryptography)
Alice가 Bob의 public 키로 암호화해서 보냄
Bob이 Bob의 private 키로 복호화해서 읽음
ㅡ> RSA(1978년) 알고리즘
RSA 암호화의 중요한 속성
공개키로 암호화해서 비밀키로 복호화한거랑
비밀키로 암호화해서 공개키로 복호화한거랑
결과가 같다
인증(Authentication)
인증
ㅡ> 내가 얘기하고있는 사람이 그 사람이 맞는가
ㅡ> 재생 공격을 피하는 것이 목표
ㅡ> 재생 공격 : 이전에 전송된 메시지를 제3자가 가로채어 다시 보내는 방식의 공격
yet another try
- Nonce는 한 번만 사용되는 숫자(임의의 값)입니다. 여기서 RR이 Nonce로 사용됩니다.
- 절차(ap4.0):
- Bob이 Alice에게 **Nonce RR**를 보냅니다.
- Alice는 이 Nonce를 Bob과 공유된 비밀 키 KA−B로 암호화하여 KA−B(R) Bob에게 다시 보냅니다.
- 이 방식으로 Bob은 응답을 암호화할 수 있는 사람이 Alice뿐이라는 점에서 Alice가 "실제로 존재함(live)"을 확인할 수 있습니다.
(P) 공유된 비밀 키를 어떻게 만들어야 하는가에 대한 문제가 있음
(S) ap5.0
ap5.0
Bob이 Alice에게 R(랜덤넘버)를 보내면
Alice가 자신의 비밀키로 R을 암호화해서 보냄
그럼 Bob이 Alice의 공개키로 그것을 복호화해서 확인
메세지 무결성(message integrity)
ㅡ> 메세지가 중간에 변형되지 않았나 확인
ㅡ> 현실에서 봉투에 편지를 넣고 밀봉
디지털 서명(Digital Signatures)
Bob이 메세지 m과
비밀키로 m을 암호화한 KB-(m)을 같이 보낸다
그럼 Alice가 Bob의 공개키로 복호화해서 m과 같은지 확인한다
문제점
ㅡ> Bob의 공개키가 Bob의 것이 맞는지
인증서 키..
'CS > 네트워크' 카테고리의 다른 글
JWT vs 세션 (0) | 2025.04.01 |
---|---|
네트워크 보안2 (0) | 2024.10.30 |
멀티미디어 네트워크 (3) | 2024.10.25 |
무선이동 네트워크3 (0) | 2024.10.24 |
무선이동 네트워크2 (1) | 2024.10.23 |