안전성을 위한 네트워크 기술 정리 (암호화, 인증, HTTPS, TLS 등)
1. 네트워크 보안의 필요성
- 네트워크에서 메시지를 평문(Plaintext)으로 주고받으면 보안상 취약.
- 패킷을 가로채서(스니핑, Packet Capture) 메시지를 훔쳐볼 수도 있고, 변조(Man-in-the-Middle Attack, MITM)할 수도 있음.
- 따라서 안전한 메시지 송수신을 위해 암호화 및 인증 기술이 필요.
2. 암호화(Encryption) & 복호화(Decryption)
2.1 암호화란?
- 암호화(Encryption): 원문 데이터를 암호문으로 변환.
- 복호화(Decryption): 암호문을 다시 원문으로 변환.
- 안전한 네트워크 통신을 위해 암호화 방식(Encryption Algorithm)이 필요함.
2.2 암호화 방식의 종류
암호화 방식은 크게 두 가지:
1. 대칭키 암호화(Symmetric Key Encryption)
2. 비대칭키 암호화(Asymmetric Key Encryption, 공개키 암호화)
3. 대칭키 암호화(Symmetric Key Encryption)
3.1 개념
- 암호화와 복호화에 동일한 키(Key)를 사용.
- 속도가 빠르고 효율적이지만, 키(Key)를 안전하게 전달하기 어렵다는 단점이 있음.
3.2 대칭키 암호화 과정
- A가 B에게 데이터를 보내기 위해 공통된 키(Secret Key)를 공유.
- A는 키를 사용해 암호화(Encryption) → 암호문 생성.
- B는 동일한 키로 복호화(Decryption) → 원문 복원.
3.3 대칭키 암호화의 장점과 단점
✅ 장점:
❌ 단점:
- 키를 안전하게 교환하기 어려움(Key Distribution Problem).
- 키가 유출되면 보안이 취약.
3.4 대칭키 암호화 예시 알고리즘
- AES (Advanced Encryption Standard)
- DES (Data Encryption Standard)
- 3DES (Triple DES)
4. 비대칭키 암호화(Asymmetric Key Encryption, 공개키 암호화)
4.1 개념
- 암호화와 복호화에 서로 다른 키를 사용.
- 공개키(Public Key)와 개인키(Private Key) 두 개의 키 쌍(Key Pair)을 사용.
4.2 비대칭키 암호화 과정
- B가 공개키(Public Key)를 A에게 제공.
- A는 공개키로 데이터를 암호화하여 전송.
- B는 개인키(Private Key)로 복호화하여 원문을 복원.
4.3 비대칭키 암호화의 장점과 단점
✅ 장점:
- 공개키(Public Key)는 누구에게나 공유 가능 → 키 교환 문제 해결.
❌ 단점:
- 연산 속도가 느림(대칭키 암호화보다 복잡한 연산 사용).
4.4 비대칭키 암호화 예시 알고리즘
- RSA (Rivest-Shamir-Adleman)
- ECC (Elliptic Curve Cryptography)
- Diffie-Hellman Key Exchange (DH)
✅ 비대칭키 암호화의 핵심:
- 공개키는 암호화에만 사용.
- 개인키는 복호화에만 사용.
- 공개키만 유출되더라도 개인키 없이 복호화가 불가능함.
5. 세션 키(Session Key)
5.1 개념
- 대칭키 암호화는 빠르지만 키 교환이 어려움, 비대칭키 암호화는 느리지만 키 교환이 가능.
- 두 방식의 장점을 결합 → 세션 키 사용.
5.2 세션 키 활용 과정
- 비대칭키 암호화로 안전하게 "세션 키" 교환.
- 이후 세션 키를 이용하여 빠른 대칭키 암호화 방식으로 통신.
✅ 실제 웹 통신에서 TLS/SSL이 이렇게 작동.
- TLS 핸드셰이크 과정에서 세션 키를 안전하게 공유한 뒤, 이후 통신은 대칭키 암호화 방식으로 수행.
6. 인증서(Certificate)와 디지털 서명(Digital Signature)
6.1 공개키 인증서(Public Key Certificate)란?
- 공개키(Public Key)의 유효성을 입증하는 전자 문서.
- 클라이언트가 전달받은 공개키가 정말 신뢰할 수 있는 서버의 공개키인지 검증하는 역할.
6.2 인증서 발급 기관(CA, Certificate Authority)
- 인증서는 신뢰할 수 있는 CA(Certificate Authority, 인증 기관)가 발급.
- 대표적인 인증 기관:
- DigiCert
- GlobalSign
- Let's Encrypt
- VeriSign
- Sectigo
6.3 디지털 서명(Digital Signature)
- 공개키의 신뢰성을 검증하기 위한 전자 서명.
- CA의 개인키(Private Key)로 서명을 생성하고, 누구나 공개키(Public Key)로 서명을 검증 가능.
✅ 디지털 서명 검증 과정
1. CA는 인증서 내용을 해시(Hash)한 후, 개인키(Private Key)로 암호화하여 서명(Signed Hash) 생성.
2. 클라이언트는 CA의 공개키(Public Key)로 서명을 복호화하여 해시값을 얻음.
3. 인증서 내용을 다시 해시(Hash)하여 비교 → 값이 같으면 인증서가 신뢰할 수 있음을 확인.
✅ 공개키 암호화는 데이터 보호, 개인키 암호화는 신뢰성 검증(서명).
7. HTTPS & TLS/SSL
7.1 HTTPS란?
- HTTP + TLS (or SSL) = HTTPS
- HTTP의 보안 강화를 위한 프로토콜.
- 웹사이트가 HTTPS를 사용하면 데이터가 암호화되어 안전하게 전송됨.
7.2 TLS (Transport Layer Security)
- TLS는 SSL의 후속 프로토콜.
- TLS 1.2, 1.3이 현재 가장 많이 사용됨.
7.3 HTTPS 동작 과정
- 클라이언트(웹 브라우저) → 서버로 접속 요청.
- TLS 핸드셰이크(TLS Handshake) 수행:
- 클라이언트와 서버가 암호화 방식, 키 교환 방법 협상.
- 서버는 공개키 인증서 제공(CA 서명 포함).
- 클라이언트는 인증서 검증 후 세션 키 생성.
- 세션 키를 이용하여 대칭키 암호화 방식으로 데이터 전송.
- 암호화된 HTTP 통신 시작.
✅ HTTPS는 평문이 아닌 암호화된 메시지를 주고받아 보안성을 높임.
8. 정리
구분 | 설명 |
---|
대칭키 암호화 | 같은 키로 암호화 & 복호화. 빠르지만 키 교환 문제 발생. |
비대칭키 암호화 | 공개키(Public Key)로 암호화, 개인키(Private Key)로 복호화. 느리지만 키 교환 문제 해결. |
세션 키 | 두 암호화 방식의 장점 결합. 공개키 암호화로 세션 키 교환 후, 대칭키 암호화 사용. |
공개키 인증서 | 신뢰할 수 있는 공개키인지 검증하는 전자 문서. |
디지털 서명 | 인증서의 무결성과 신뢰성을 보장하는 서명. |
HTTPS | HTTP + TLS/SSL로 보안을 강화한 웹 통신 프로토콜. |
🚀 네트워크 보안은 암호화 + 인증 + 무결성 검증의 조합으로 이루어진다!