TLS(Transport Layer Security)는 무엇입니까?

TLS는 인터넷 커뮤니케이션을 위한 개인 정보와 데이터 무결성을 제공하는 보안 프로토콜입니다. TLS를 구현하는 것은 안전한 웹 앱을 구축하기 위한 표준 관행입니다.

학습 목표

이 글을 읽은 후에 다음을 할 수 있습니다:

  • TLS(Transport Layer Security)를 정의합니다
  • TLS가 어떻게 작동하는지 설명합니다
  • TLS와 SSL을 구분하여 설명합니다
  • TLS가 성능에 어떻게 영향을 미치는지 이해합니다
  • TLS를 구현하는 방법에 대한 개요를 서술합니다

관련 콘텐츠


계속 알아보시겠어요?

Cloudflare에 가입해서 보안 학습 문서를 받아보세요.

Cloudflare가 개인 데이터를 수집하고 처리하는 방법은 Cloudflare의 개인정보 취급방침을 참조하세요.

글 링크 복사

TLS(Transport Layer Security)는 무엇입니까?

TLS(Transport Layer Security)는 인터넷 상의 커뮤니케이션을 위한 개인 정보와 데이터 보안을 용이하게 하기 위해 설계되어 널리 채택된 보안 프로토콜입니다. TLS의 주요 사용 사례는 웹 사이트를 로드하는 웹 브라우저와 같이 웹 응용 프로그램과 서버 간의 커뮤니케이션을 암호화하는 것입니다. TLS는 또한 이메일, 메시지, 보이스오버 IP(VoIP)와 같은 다른 커뮤니케이션을 암호화하기 위해 사용됩니다. 이 문서에서는 웹 응용 프로그램 보안에서 TLS의 역할에 주목할 것입니다.

TLS는 국제 표준 기구인 IETF(Internet Engineering Task Force)에 의해 제안되었으며 프로토콜의 첫 번째 버전은 1999년에 발표되었습니다. 가장 최신 버전은 2018년에 발표된 TLS 1.3입니다.

TLS와 SSL의 차이점은 무엇입니까?

TLS는 Netscape가 개발한 SSL(Secure Sockets Layer)이라고 불리는 이전의 암호화 프로토콜에서 발전한 것입니다. TLS 버전 1.0은 SSL 버전 3.1로서 개발을 시작했지만 Netscape와 더 이상 연관이 없음을 명시하기 위해 발표 전에 프로토콜의 이름이 변경되었습니다. 이러한 역사 때문에 용어 TLS와 SSL은 가끔 서로 바꿔서 사용됩니다.

TLS와 HTTPS의 차이점은 무엇입니까?

HTTPSHTTP 프로토콜 상위에서 TLS 암호화를 구현한 것으로 모든 웹 사이트와 다른 웹 서비스에서 사용됩니다. 따라서 HTTPS를 사용하는 웹 사이트는 TLS 암호화를 이용합니다.

비즈니스와 웹 응용 프로그램에서 왜 TLS 프로토콜을 사용해야 합니까?

TLS 암호화는 데이터 유출과 다른 공격으로부터 웹 응용 프로그램을 보호하는 데 도움을 줍니다. 또한 TLS로 보호된 HTTPS는 급속하게 웹 사이트를 위한 표준 관행이 되고 있습니다. 예를 들어, Google Chrome 브라우저는 HTTPS가 아닌 사이트를 엄중 단속하고 인터넷 사용자는 HTTPS 자물쇠 아이콘이 없는 웹 사이트에 대해 더 조심하기 시작합니다.

TLS는 무엇을 합니까?

TLS 프로토콜은 암호화, 인증, 무결성이라는 세 가지 주요 요소를 달성합니다.

  • 암호화: 제3자로부터 전송되는 데이터를 숨깁니다.
  • 인증: 정보를 교환하는 당사자가 요청된 당사자임을 보장합니다.
  • 무결성: 데이터가 위조되거나 변조되지 않았는지 확인합니다.

TLS는 어떻게 작동합니까?

웹 사이트나 응용 프로그램이 TLS를 사용하기 위해서는 원본 서버에 TLS 인증서가 설치되어 있어야 합니다(위에서 설명한 이름 혼동 때문에 이 인증서는 "SSL 인증서"라고도 알려져 있습니다). 인증 기관이 도메인을 소유한 사람 혹은 비즈니스에게 TLS 인증서를 발행합니다. 인증서는 서버의 공개 키와 더불어 누가 도메인 소유자인지에 대한 중요한 정보를 포함하며, 이 두 가지는 모두 서버의 신원을 확인하는 데 중요합니다.

TLS 연결은 TLS Handshake로 알려진 일련의 순서를 사용하여 초기화됩니다. 사용자가 TLS를 사용하는 웹 사이트를 돌아다니면 사용자 장치(클라이언트 장치로도 알려짐)와 웹 서버 간에 TLS Handshake가 시작됩니다.

TLS Handshake 동안 사용자 장치와 웹 서버는 다음과 같은 일을 수행합니다.

  • 사용할 TLS 버전(TLS 1.0, 1.2, 1.3 등)을 지정합니다
  • 사용할 암호 제품군(아래 참고)을 결정합니다
  • 서버의 TLS 인증서를 사용하여 서버의 신원을 인증합니다.
  • Handshake가 완료된 후 키 간의 메시지를 암호화하기 위한 세션 키를 생성합니다.

TLS Handshake는 각 커뮤니케이션 세션을 위한 암호 제품군을 구축합니다. 암호 제품군은 공유된 암호화 키 또는 세션 키와 같은 세부 정보를 명시하는 알고리즘 집합으로 해당 특정 세션에 사용됩니다. 공개 키 암호화로 알려진 기술 덕분에 TLS는 암호화되지 않은 채널을 통해 일치하는 세션 키를 설정할 수 있습니다.

Handshake는 또한 인증을 처리하며, 이는 대개 클라이언트에게 신원을 증명하는 서버로 구성됩니다. 이는 공개 키를 사용하여 수행됩니다. 공개 키는 단방향 암호화를 사용하는 암호화 키로, 공개 키를 가진 누구나 신뢰성을 보장하기 위해 서버의 개인 키로 암호화된 데이터를 해독할 수 있음을 의미하지만 원래 발신자만 개인 키를 사용해 데이터를 암호화할 수 있습니다. 서버의 공개 키는 TLS 인증서의 일부입니다.

데이터카 암호화되고 인증되고 나면, 메시지 인증 코드(MAC)와 함께 서명됩니다. 수신자는 데이터의 무결성을 보장하기 위해 MAC를 확인할 수 있습니다. 이는 아스피린 병에서 발견할 수 있는 일종의 부정 조작 방지 포장과 같은 것입니다. 소비자는 구매할 때 포장이 손상되지 않았으면 아무도 약에 손대지 않았다는 것을 알 수 있습니다.

TLS는 웹 응용 프로그램 성능에 어떻게 영향을 미칩니까?

TLS의 최신 버전은 웹 응용 프로그램 성능에 거의 영향을 미치지 않습니다.

TLS 연결을 설정하는 데 수반되는 복잡한 프로세스 때문에 로드 시간과 계산 능력이 소모되어야 합니다. 데이터가 전송되기 전에 클라이언트와 서버는 왔다 갔다 몇 번 커뮤니케이션해야 하며, 이는 클라이언트와 서버 모두를 위한 메모리뿐만 아니라 웹 응용 프로그램을 위한 귀중한 밀리세컨드의 로딩 시간을 소모합니다.

그러나 대신에 TLS Handshake가 생성한 잠재적인 지연을 완화하는 것을 돕는 기술이 있습니다. 하나는 TLS Handshake가 완료되기 전에 서버와 클라이언트가 데이터 전송을 시작하도록 하는 TLS False Start입니다. TLS를 빠르게 하기 위한 또 다른 기술은 이전에 커뮤니케이션한 적이 있는 서버와 클라이언트가 간략화된 Handshake를 사용하도록 허용하는 TLS Session Resumption입니다.

이러한 개선 사항은 TLS를 로딩 시간에 현저하게 영향을 미쳐서는 안 되는 매우 빠른 프로토콜로 만드는 데 도움을 주었습니다. TLS와 연관된 계산 비용은 오늘날 표준에 따르면 거의 무시해도 좋은 정도입니다.

2018년에 발표된 TLS 1.3은 TLS를 더 빠르게 만들었습니다. TLS 1.3의 TLS Handshake는 몇 밀리세컨드로 프로세스를 단축하며 2회 왕복 대신 1회 왕복(또는 왔다 갔다하는 커뮤니케이션)만을 요구합니다. 사용자가 전에 웹 사이트에 연결한 적이 있으면, TLS Handshake는 0회 왕복을 할 수 있으며, 이는 속도를 더 빠르게 할 수 있습니다.

웹 사이트에서 TLS 구현을 시작하는 방법

Cloudflare는 모든 사용자들에게 무료 TLS/SSL 인증서를 제공합니다. Cloudflare를 사용하지 않는 사람은 인증 기관으로부터 대개는 요금을 지불하여 SSL 인증서를 획득해야 하며 원본 서버에 인증서를 설치해야 합니다.

TLS/SSL 인증서에 대해 자세히 알아보려면, SSL 인증서는 무엇입니까?를 참조하시기 바랍니다. Cloudflare 진단 센터에서 웹 사이트가 TLS 암호화를 사용하고 있는지 확인해 보세요.