TLS란?
Ch. 05 인터넷에서 통신할 때의 암호화 장치
TLS
TLS(Transport Layer Security) 및 그 이전 버전인 SSL(Secure Sockets Layer)은 인터넷에서 통신을 할 때의 인증 및 통신 암호화 장치입니다.
TLS나 SSL라고 하면 암호화의 이미지가 강하지만 실제로 암호화 통신을 하는 데 있어서 가장 먼저 중요한 것은 '통신이 신뢰할 만한지를 확인하는' 프로세스입니다.
왜냐하면 통신 상대가 누군가를 가장하고 있다면 암호화를 해도 결국 정보는 유출되기 때문입니다.
그래서 TLS에서는 처음에 핸드쉐이크(악수) 프로토콜이라고 해서 상대를 인증하기 위한 절차가 실행됩니다.
이 절차 안에 '서로의 상대가 갖고 있는 인증서를 받아 검증' 하는 스텝이 있습니다.
인증서(p.54)가 신원이 맞는지는 인증서의 인증군(p.54)이 보내오는 리스트와 대조함으로써 확인할 수 있습니다.
TLS의 중요성
TLS는 웹 통신에서 사용되는 등 폭넓게 사용되고 있기 때문에 그 안전성이 중요합니다.
TLS 이전 버전인 SSL 1.0이나 SSL 3.0에서는 보안상의 취약성이 있다고 알려져 있기 때문에 현재 SSL 1.0이나 SSL 3.0은 권장하지 않습니다.
또한 2013년에는 오픈 소스인 SSL/TLS 구축인 OpenSSL에 있어서 TKS의 구축 방법 문제로 인해
한 쪽의 시스템상 메모리에서 암호화되지 않은 데이터를 참조할 수 있다는 'Heartbleed'라는 취약성이 발견되어 세상을 흔들었습니다.
그렇게 떠들썩한 이유도 TLS의 이용 범위가 넓다는 방증입니다.
이미지를 잡아보자 :: SSL/TLS의 중요성
인터넷에서 통신을 할 때 통신 내용이 암호화되어 있지 않으면 공격자가 훔쳐볼 위험이 있습니다.
SSL 이 버전업한 후에 바뀐 이름이 TLS입니다. SSL과 비교하여 TLS는 보다 안전한 암호를 사용할 수 있게 되었습니다.
또한 SSL에 존재하던 취약성이 해결되는 등 보다 뛰어납니다.
핸드쉐이크 프로토콜의 흐름
암호화를 하기 전에 상대를 인증하거나 암호에 사용할 정보를 주고받기 위해 핸드쉐이크 프로토콜이라는 절차를 거칩니다.
프리 마스터 키는 랜덤으로 생성되는 숫자입니다.
이 데이터를 서버와 클라이언트가 공유함으로써 둘 밖에 모르는 공통키를 생성할 준비를 합니다.
[출처] 알기 쉬운 일러스트로 해설, 그림 설명으로 한 번에 이해할 수 있는 보안의 기본 Miyamoto Kunio, Okubo Takao 지음, 이영란 옮김