본문 바로가기
OS & Network/Network

TLS 연결 수립 과정

by 코딩공장공장장 2025. 5. 4.

TLS란


TLS는 전송계층의 암호화 프로토콜이다.

우리가 알고 있는 HTTPS는 HTTP 프로토콜에서 TLS 암호화를 구현한 프로토콜이다.

TLS에서는 전송하는 정보를 암호화하며, 클라이언트와 서버의 인증을 수행하여 제 3자가 통신에 끼어드는 것을 방지하며,

데이터의 위변조를 검사한다.

 

TLS 핸드쉐이크


TCP 연결 수립과정은 아래와 같이 이루어진다.

  1. 클라이언트가 TCP 세그먼트의 컨트롤비트의 SYN 비트를 체크하여 서버에 전송
  2. 서버는 SYN과 ACK 비트를 체크하여 전송
  3. 클라이언트는 ACK 비트를 체크하여 전송

TLS 핸드쉐이크는 3번 과정에서 인증키를 주고 받으며 암호화 프로토콜 연결을 수립한다.

 

진행 순서

  1. 클라이언트는 서버에게 client hello 메시지를 담아 서버로 전송
    - 이때 암호화 버전, 암호화 알고리즘, 압축 방식 을 함께 전송

  2. 서버는 세션 ID와 CA 공개 인증서를 server hello 메시지와 함께 담아 응답
    - CA 인증서에는 클라이언트가 handshake 과정 속 사용할 공개키를 담고 있다.

  3. 클라이언트 측은 CA 인증서를 인증서 발행기관을 통해 검증
    - 브라우저에 CA 인증서가 포함되어있음??
    - 만약 브라우저에서 관리하는 CA인증서 없다면 경고창을 표시함
    - 인증서에 명시된 서비인지, 서버가 실제 해당 도메인의 소유자인지 검증

    이후 난수 바이트를 생성하여 서버가 전달한 공개키로 암호화하여 전송
    (이 난수 바이트는 대칭키를 만드는데 사용 됨)

  4. 서버는 난수 바이트를 자신의 개인키로 복호화  대칭 마스터 키 생성
    이때, 클라이언트도 대칭 마스터키를 생성

    이 과정이 사실상 가장 중요한 부분이다.
    이전 과정에서 클라이언트는 CA 인증서를 통해 서버가 신뢰할만하다고 판단했고,
    서버에서 보낸 공개키를 통해 데이터를 암호화하여 전송함으로써 서버에게 너를 신뢰했다고 알려준다.
    그리고 난수바이트를 공개키로 암호화한 값을 통해 서로 동일한 마스터키를 생성하여
    데이터를 암호화하여 전송할 수 있는 상태에 도달하게 된다.

  5. 클라이언트와 서버가 만든 마스터키로 암호화한 finshed 메시지를 주고 받음으로써 TSL 연결 수립

연결 수립 이후 대칭 마스터키로 데이터를 암호화하여 통신하게 됨

 

CA 인증서
웹사이트나 서버의 신뢰성을 검증하기 위해 사용되는 인증서
CA 인증서는 브라우저에서 관리되고 주기적 업데이트를 통해 관리됨

 

공개키
암호화에 사용되는 키로 누구나 알 수 있다.
하지만, 암호화에만 사용 가능하며 복호화는 불가능하며 복호화는 개인이 소유한 개인키로만 가능

개인키
공개키와 짝을 이루는 쌍으로 복호화하는데 사용됨
공개키로 암호화된 데이터를 서명함으로써 

대칭키
암호화와 복호화에 같은 키를 사용하는 경우

 

 

RSA 키 교환 알고리즘

RSA(Rivest-Shamir-Adleman) 알고리즘은 공개키 암호화 방식 중 하나로, 키 교환과 디지털 서명에 사용됩니다. RSA 키 교환 알고리즘은 클라이언트와 서버가 안전하게 대칭키를 공유하는 과정을 관리하는 데 사용됩니다. RSA는 일반적으로 비대칭키 암호화 방식을 사용하여 두 엔티티 간에 안전한 통신을 설정하고, 그 후 대칭키를 사용하여 데이터를 암호화하고 복호화합니다.

RSA 키 교환 과정은 공개키와 개인키를 이용하여 안전하게 비밀 데이터를 교환하는 방식입니다. 이 과정은 두 시스템 간의 세션 키(대칭키)를 교환하는 데 사용됩니다.

 

TLS와 SSL의 차이


SSL의 경우 암호화 프로토콜의 종류도 적어 보안에 좋지 않음

 

반응형

'OS & Network > Network' 카테고리의 다른 글

DNS, GSLB, CDN  (0) 2025.05.02
OSI 7계층  (0) 2025.05.01
HTTP 통신 깊게 알아보기  (0) 2023.08.16
TCP 깊게 이해하기  (0) 2023.08.15