HTTPS & TLS

이태곤·2023년 8월 15일
0

Network

목록 보기
11/23
post-thumbnail

1. 암호화 & 복호화

  • 암호화: 데이터를 승인된 수신자만이 이해할 수 있도록 스크램블하는 방법
    → 스크램블: 데이터를 일정한 패턴이 아닌 무작위 방식으로 개별 데이터 비트를 섞는 것

  • 복호화: 암호화된 데이터를 원래의 형태로 되돌리는 과정으로, 데이터를 해독하기 위해 송신자와 수신자 모두가 동의한 특정 키가 필요

  • 대칭 암호화: 키를 하나만 사용하는 암호화 방법으로, 암호화와 복호화에 동일한 키를 사용

    • 단점: 중간에서 키 값을 가로채는 공격자가 있을 경우 암호화된 정보가 노출될 수 있다.
    • 종류: AES, DES 등
  • 비대칭 암호화 (공개키 암호화): 공개키와 개인키를 사용하는 암호화 방식

    • 공개키로 암호화된 데이터는 개인키를 통해서만 복호화할 수 있다.
    • 공개키(암호화) → 개인키(복호화): 데이터를 안전하게 송신 가능
    • 개인키(암호화) → 공개키(복호화): 데이터를 신뢰할 수 있음
    • TLS 핸드셰이크 과정에서 비대칭 암호화가 사용
      • 초기 인증 단계에서 비대칭 암호화를 사용하여 서로의 신원을 확인하고, 이후의 통신에서는 세션 키를 사용한 대칭 암호화가 사용
  • 암호화 사용이유

    1. 민감한 데이터 유출 방지
    2. 데이터 무결성 보장
    3. 의도된 송수신자 외에 통신이 불가능하도록 (하이재킹 방지)

2. TLS 핸드셰이크

  • 전송 계층에서 보안을 제공하는 프로토콜이며, 통신에 있어 메세지의 변조 및 도청을 막는다.

  • 핸드셰이크 과정에서 비대칭 암호화 사용

  • TLS 1.3v: 1-RTT 핸드셰이크
    → 핸드셰이크 이후에 세션키가 생성되므로, 웹 사이트를 재방문할 때 이미 생성된 세션 키를 사용하여 연결 설정을 한다.
    이에 따라, 인증 비용이 감소하고 통신이 더 빠르게 이루어질 수 있다.

    • ClientHello: 클라이언트는 핸드셰이크를 시작하기 위해 서버에게 ClientHello 메시지 전송
      • TLS 버전
      • 사이퍼슈트: 사용하려는 암호화 알고리즘과 해싱 알고리즘에 대한 규격 목록
      • 클라이언트 랜덤 값: 무작위 생성된 값으로, 세션 키를 생성하는 데 사용
      • 임시 DH(Diffie-Hellman) 매개변수: 공통의 암호키를 생성하기 위한 Diffie-Hellman 알고리즘에 필요한 값들을 포함
        → 공개 값 공유 → 비밀 값과 혼합 → 혼합 값 공유 → 비밀 값과 혼합 → 공통의 암호키 생성
    • ServerHello: 서버는 클라이언트의 ClientHello 메시지를 받고, 적절한 TLS 버전과 암호화 설정을 선택하여 ServerHello 메시지를 응답
    • Key Exchange: 핸드셰이크 과정에서는 임시 DH(Diffie-Hellman) 매개변수를 사용하여 공통의 암호키를 생성
    • 암호화와 인증: 핸드셰이크가 완료되면, 클라이언트와 서버는 암호화된 통신을 시작

0개의 댓글