All'alba vincerò

At dawn, I will win!

CS

컴퓨터 네트워크 스터디 2주차 - HTTPS

나디아 Nadia 2024. 11. 6. 19:21

 

HTTPS

 

HTTPS (HyperText Transfer Protocol Secure)

: HTTP에 보안 계층을 추가한 프로토콜로, 웹에서 안전하게 데이터를 주고받기 위해 사용된다.

  • 주로 금융 거래, 로그인 정보 전송 등 민감한 데이터를 보호하기 위해 사용되며, HTTP와 달리 통신이 암호화된다.
  • SSL(Secure Sockets Layer) 또는 TLS(Transport Layer Security)라는 암호화 프로토콜을 사용하여 데이터의 기밀성과 무결성을 보장한다.

 


SSL/TLS

SSL과 TLS는 네트워크 통신 보안을 위한 암호화 프로토콜이다.

 

 

SSL (Secure Sockets Layer)

: 초기 보안 프로토콜로, 데이터 전송 시 암호화를 통해 보안을 강화했다.

  • SSL은 여러 버전을 거쳐 발전했지만, 보안상의 문제로 개선이 필요해 이후 TLS로 대체되었다.

 

TLS (Transport Layer Security)

: SSL을 개선한 버전으로, 암호화, 인증, 무결성 검증을 통해 데이터를 보호한다.

  • 여러 TLS 버전이 있지만, 최신 버전일수록 보안이 강화된다.
  • 현재 대부분의 웹 사이트는 HTTPS를 통해 TLS를 사용하며, 브라우저와 서버 간에 안전한 연결을 제공한다.

 


대칭 키 암호화 방식

 

대칭 키 암호화(Symmetric Key Encryption)

: 하나의 동일한 키로 데이터를 암호화하고 복호화하는 방식

  • 송신자와 수신자가 같은 키를 공유하고 있어야만 데이터를 안전하게 주고받을 수 있다.
  • 장점
    • 암호화 및 복호화 속도가 빠르고 효율적이다.
    • 키 길이가 상대적으로 짧다.
  • 단점
    • 안전한 키 교환이 어렵다.
      → 만약 키가 유출되면, 제3자가 데이터를 해독할 수 있는 위험이 있다.
  • 대표 알고리즘: AES, DES, 3DES
  • 주 용도: 대용량 데이터 암호화

 


비대칭 키(공개 키) 암호화 방식

 

비대칭 키 암호화(Asymmetric Key Encryption)

: 암호화와 복호화에 서로 다른 키인 공개 키와 개인 키를 사용하는 방식

  • 일반적으로 공개키로 암호화하고, 개인키로 복호화하는 방식으로 사용된다.
    • 개인키는 공개되지 않기 때문에 데이터의 보안을 유지할 수 있다.
      • 공개 키: 누구에게나 공개할 수 있는 키, 데이터를 암호화하는 데 사용
      • 개인 키: 비밀로 유지해야 하는 키, 공개키로 암호화된 데이터를 복호화하는 데 사용
  • 장점
    • 대칭키 방식보다 보안이 강화되어 키를 안전하게 공유할 필요가 없다.
  • 단점
    • 암호화 및 복호화 속도가 느리고 연산 비용이 높다.
    • 키 길이가 상대적으로 길다.
  • 대표 알고리즘: RSA, ECC
  • 주 용도: 키 교환, 전자서명, 인증

 


전자 서명

 

전자 서명(Digital Signature)

: 데이터의 위조 및 변조를 방지하고 신원 인증을 보장하기 위해 사용되는 기술

  • 주로 비대칭키 암호화 방식을 사용합니다.
  • 동작 과정
    1. 문서의 해시값을 생성한다.
    2. 송신자의 개인 키로 해시값을 암호화한다. (⇒ 서명 생성)
    3. 수신자는 송신자의 공개 키로 서명을 복호화한다.
    4. 문서의 해시값과 복호화 된 해시값을 비교하여 검증한다.
  • 주 용도: 금융 거래, 전자 계약, SSL/TLS 인증서

 


⭐️ HTTPS 암호화 과정 (SSL Handshake의 동작 과정)

  1. 클라이언트 Hello
    • 클라이언트가 서버에 연결 요청과 함께 지원하는 암호화 방식 목록을 보낸다.
  2. 서버 Hello
    • 서버는 암호화 방식을 선택하고, 자신의 SSL 인증서(공개 키 포함)를 클라이언트에 보낸다.
  3. 서버 인증서 검증
    • 클라이언트는 인증서의 유효성을 확인하여 서버의 신원을 검증한다.
  4. 프리마스터 시크릿 생성 및 전송
    • 클라이언트가 프리마스터 시크릿(임시 키)을 생성하여 서버의 공개 키로 암호화 한 후 서버에 전송한다.
  5. 세션 키 생성
    • 클라이언트와 서버는 프리마스터 시크릿을 이용해 대칭 키(세션 키)를 생성한다.
  6. 암호화 통신 시작
    • 세션 키를 이용해 대칭 키 암호화로 안전한 데이터 통신을 시작한다.