네트워크 - 대칭키와 공개키

델리만쥬 디퓨저·2024년 9월 11일

네트워크

목록 보기
5/9
  • 네트워크 보안에서 데이터의 기밀성과 무결성을 유지하기 위해 암호화는 필수적인 요소
  • 암호화 방식에는 대칭키 암호화(Symmetric Key Encryption)공개키 암호화(Public Key Encryption)라는 두 주요 방식이 존재

대칭키 암호화(Symmetric Key Encryption)

  • 대칭키 암호화는 하나의 비밀 키를 사용하여 데이터를 암호화하고 복화하는 방식

특징

  • 하나의 키 사용: 암호화와 복호화에 동일한 비밀 키를 사용
  • 속도: 대칭키 암호화는 일반적으로 공개키 암호화보다 빠름. 따라서 대량의 데이터를 암호화하는 데 적합
  • 보안 문제: 키가 유출되면 데이터를 쉽게 복호화할 수 있는 보안 문제가 존재
  • 알고리즘 예시: AES (Advanced Encryption Standard), DES (Data Encryption Standard), Blowfish

실사용 예시

  • 데이터베이스 암호화: 민감한 데이터를 포함하는 데이터베이스에서 데이터를 암호화하고 복호화하는 데 사용
  • VPN (Virtual Private Network): 원격 사용자와 네트워크 간의 보안을 강화하기 위해 사용
  • 파일 암호화: 로컬 및 클라우드 환경에서 파일을 안전하게 보관하기 위해 사용

동작 과정

  1. 키 생성: 송신자와 수신자는 동일한 비밀 키를 공유해야 함. 이 키는 암호화와 복호화에 사용됨
  2. 암호화 (Encryption): 송신자는 비밀 키를 사용하여 메시지를 암호화함. 예를 들어, "Hello, World!"라는 메시지가 Q1Jl49mK8gfK9bG==와 같이 암호화됨
  3. 복호화 (Decryption): 수신자는 동일한 비밀 키를 사용하여 암호화된 메시지를 복호화하고, 원본 메시지를 얻음

공개키 암호화 (Public Key Encryption)

  • 공개키 암호화는 두 개의 키, 즉 공개키(Public Key)비밀키(Private Key) 를 사용하는 방식
  • 공개키는 데이터를 암호화하는 데 사용되며, 암호화된 데이터를 복호화하기 위해서는 대응하는 비밀키가 필요

특징

  • 두 개의 키 사용: 공개키로 데이터를 암호화하고, 비밀키로 데이터를 복호화함.
  • 보안성: 공개키는 누구나 사용할 수 있지만, 비밀키는 소유자만 알고 있어야 함. 이를 통해 키 분배 문제를 해결.
  • 속도: 대칭키 암호화보다 속도가 느림. 주로 대칭키 암호화 키를 안전하게 교환하는 데 사용됨.
  • 알고리즘 예시: RSA(Rivest-Shamir-Adleman), DSA(Digital Signature Algorithm), ECC(Elliptic Curve Cryptography)

실사용 예시

  • SSL/TLS: HTTPS를 통해 웹사이트와 브라우저 간에 데이터를 안전하게 전송하기 위해 사용됨
  • 디지털 서명: 전자 서명에서 송신자의 신원을 확인하고 데이터의 무결성을 보장하는 데 사용됨
  • 암호화된 이메일: 이메일 메시지를 암호화하여 프라이버시를 보호하고 무결성을 유지함

동작 과정

  1. 키 쌍 생성: 수신자는 공개키와 비밀키의 쌍을 생성함. 공개키는 누구나 접근할 수 있도록 공개되지만, 비밀키는 수신자만이 알고 있어야 함
  2. 암호화 (Encryption): 송신자는 수신자의 공개키를 사용하여 메시지를 암호화함.
  3. 복호화 (Decryption): 수신자는 자신의 비밀키를 사용하여 암호화된 메시지를 복호화함.

HTTPS(HyperText Transfer Protocol Secure)

  • HTTPS는 인터넷을 통해 안전하게 데이터를 주고받기 위해 HTTP에 SSL/TLS(Secure Socket Layer/Transfer Layer Security) 암호화 프로토콜을 적용한 통신 방법
  • HTTPS는 웹사이트와 사용자의 브라우저 간의 통신을 암호화하여, 중간에서 데이터가 도청되거나 변조되는 것을 방지

HTTPS 통신 과정

  • 현대의 보안 통신에서는 대칭키와 공개키 암호화를 혼합하여 사용
  1. 서버의 인증서 발급:

    • 서버는 CA에게 자신의 공개키와 서버 정보를 포함한 인증서 서명 요청(CSR)을 제출
    • CA는 서버의 정보를 확인한 후, 서버의 공개키를 포함한 인증서에 디지털 서명을 함
    • CA는 서명된 인증서를 서버에 발급함
  2. 클라이언트의 인증서 검증:

    • 클라이언트의 웹 브라우저에는 사전에 여러 CA의 공개키 정보가 저장되어 있음
    • 클라이언트는 서버로부터 받은 공개키 인증서를 CA의 공개키로 검증함
    • 서명이 유효하고 신뢰할 수 있는 경우, 서버의 공개키를 사용하여 안전한 통신을 설정함. 그렇지 않다면, 사용자에게 경고를 표시함
  3. 대칭키를 통한 안전한 통신 설정:

    • 클라이언트는 서버의 공개키를 사용하여 새로 생성한 대칭키(세션 키)를 암호화하고 서버에 전송
    • 서버는 자신의 비밀키로 이 암호화된 대칭키를 복호화하여 세션 키를 획득
    • 이제 클라이언트와 서버는 이 대칭키를 사용하여 빠르고 안전하게 암호화된 데이터를 주고받을 수 있음
profile
< 너만의 듀얼을 해!!! )

0개의 댓글