HTTPS
란 HyperText Transfer Protocol Secure의 약자로, 웹 브라우저와 웹 서버 간에 데이터를 주고받는 통신 규약입니다.
우선 HTTP의 보안 관점에서의 문제점을 간단히 설명하겠습니다.
HTTP
는 요청과 응답을 암호화하지 않고 평문으로 전송하기 때문에 중간에 누군가가 데이터를 가로채거나 변조할 수 있습니다.
HTTPS
는 이와 달리 데이터를 암호화하여 전송하기 때문에 보안성이 높습니다.
HTTPS
는 웹 사이트의 신뢰성을 높이고 사용자의 개인 정보를 보호하는데 도움이 됩니다. HTTPS
를 사용하는 웹 사이트는 주소창에 자물쇠 아이콘과 https://로 시작하는 URL을 표시합니다.
이는 사용자에게 해당 웹 사이트가 안전하다는 신호를 보내줍니다.
HTTPS
는 현재 대부분의 웹 사이트에서 사용되고 있으며, 구글과 같은 검색 엔진에서도 HTTPS를 사용하는 웹 사이트에 더 높은 순위를 부여합니다.
HTTPS는 HTTP와 다르게 SSL(Secure Sockets Layer)
이라는 보안 계층을 추가하여 데이터를 암호화합니다.
SSL
은 웹 브라우저와 웹 서버 간에 공개키 암호화 방식
을 사용하여 통신합니다.
공개키 암호화 방식
은 각각의 통신 당사자가 공개키와 비밀키를 가지고 있으며, 공개키로 암호화한 데이터는 비밀키로만 복호화할 수 있습니다. 따라서, 중간에 누군가가 데이터를 가로채도 복호화할 수 없습니다.
SSL과 TLS
가 무엇을 의미하는지 알아보겠습니다.
SSL
은 Secure Sockets Layer의 약자로, 인터넷에서 데이터를 안전하게 전송하기 위한 암호화 프로토콜입니다. SSL
은 웹사이트와 웹 브라우저 사이에 암호화된 연결을 만들어서, 사용자의 개인 정보나 금융 정보 등을 해커나 중간자로부터 보호합니다.
TLS
는 Transport Layer Security의 약자로, SSL의 향상된 버전입니다. TLS
는 SSL과 같은 기능을 제공하지만, 보안 수준과 성능이 개선되었습니다. TLS
는 SSL보다 더 많은 암호화 알고리즘과 인증 방식을 지원하며, SSL의 취약점을 보완합니다.
SSL과 TLS
는 모두 웹사이트와 웹 브라우저 간에 핸드셰이크
라는 과정을 통해 암호화된 연결을 수립합니다. 핸드셰이크란 서로의 신원을 인증하고, 통신에 사용할 암호화 키를 교환하는 절차입니다. 핸드셰이크가 완료되면, 데이터는 암호화되어 전송되고, 수신 측에서 복호화되어 읽을 수 있습니다.
SSL과 TLS
는 각각 다른 버전을 가지고 있습니다.
예를 들어, SSL 3.0은 1996년에 발표되었고, TLS 1.0은 1999년에 발표되었습니다.
최신 버전은 SSL 3.1 (TLS 1.0) 이후로 TLS로 표기되며, 현재 TLS 1.3이 최신 버전입니다.
웹 브라우저와 웹사이트는 서로 호환되는 SSL/TLS 버전
을 협상하여 사용합니다.
예를 들어, 웹 브라우저가 TLS 1.3을 지원하고, 웹사이트가 TLS 1.2를 지원하는 경우, 둘은 TLS 1.2로 통신합니다. 만약 둘 다 지원하는 버전이 없다면, 연결이 실패합니다.
HTTPS
는 HTTP보다 보안성이 높지만, 완벽한 방법은 아닙니다.
HTTPS도 여러 가지 공격 방법에 취약할 수 있으므로, 웹 사이트 운영자와 사용자 모두 추가적인 보안 조치를 취해야 합니다.
예를 들어, SSL 인증서의 유효성을 확인하거나, 최신 버전의 웹 브라우저와 운영체제를 사용하거나, 비밀번호와 같은 개인 정보를 잘 관리하거나, 의심스러운 링크나 첨부파일을 클릭하지 않거나 하는 등의 방법입니다.