참고: https://www.cloudflare.com/learning/ssl/what-is-https/
HTTPS 란?
Hypertext transfer protocol secure(HTTPS)는 웹 브라우저와 웹 사이트 간에 데이터를 전송하는 데 사용되는 기본 프로토콜인 HTTP의 보안 버전입니다. HTTPS는 데이터 전송 시 보안을 강화하기 위해 암호화를 합니다. 이는 사용자의 은행 계좌, 이메일 서비스 또는 의료 보험 제공자에 로그인 등과 같이 중요한 데이터 전송 시 특히 중요합니다.
특히 로그인 자격 증명이 필요한 웹 사이트는 HTTPS를 사용해야 합니다. 크롬과 같은 모던 웹 브라우저에서는 HTTPS를 사용하지 않는 웹 사이트는 HTTPS를 사용하는 웹 사이트와 다르게 표시합니다. 웹 페이지가 안전한지 확인하려면 URL 표시줄에서 안전함을 나타내는 자물쇠를 찾아보면 됩니다. 웹 브라우저는 HTTPS를 심각하게 받아들인다;
웹 브라우저는 HTTPS를 확실하게 구분지으며, 구글 크롬 및 기타 브라우저는 모든 비 HTTPS 웹 사이트를 안전하지 않다고 표시합니다.
HTTPS 작동 방법
HTTPS는 통신을 암호화하기 위해 암호화 프로토콜을 사용합니다. 이 프로토콜은 예전에는 Secure Sockets Layer(SSL)로 불렸지만 지금은 Transport Layer Security(TLS)라고 합니다. 이 프로토콜은 비대칭 공개 키 인프라라는 암호화 알고리즘을 사용하여 통신을 보호합니다. 이러한 유형의 보안 시스템은 종단 간의 통신을 암호화하기 위해 두 개의 서로 다른 키를 사용합니다:
- 개인 키 - 이 키는 웹 사이트의 소유자가 제어하며 말 그대로 개인 키로 유지됩니다. 이 키는 웹 서버에 있으며 공용 키로 암호화된 정보를 해독하는 데 사용합니다.
- 공용 키 - 이 키는 안전하게 통신하고 싶은 모든 사용자가 사용할 수 있습니다. 공용 키로 암호화된 정보는 개인 키로만 암호를 해독할 수 있습니다.
HTTPS가 왜 중요하며 사용하지 않으면 어떤일이 벌어질까?
HTTPS는 아무나 웹 사이트를 쉽게 브로드캐스트하지 못하게 방어합니다. 데이터가 일반 HTTP를 통해 전송될 때, 데이터는 오픈소스를 사용하여 쉽게 "스니핑"할 수 있는 데이터 패킷으로 분할됩니다. 이는 공공 와이파이와 같은 안전하지 않은 매체를 통한 통신에 매우 취약합니다. 실제로 HTTP를 통해 발생하는 모든 통신은 일반 텍스트로 이루어지므로 특정 도구를 사용한다면 누구나 쉽게 액세스할 수 있고 on-path 공격에 취약합니다.
HTTPS를 사용하면 트래픽이 암호화돼서 패킷이 스니핑되거나 다른 방식으로 인터셉트되더라도 무의미한 문자로 보이게 됩니다. 예를 들어 보겠습니다.
- 암호화 전:
This is a string of text that is completely readable
- 암호화 후:
ITM0IRyiEhVpa6VnKyExMiEgNveroyWBPlgGyfkflYjDaaFf/Kn3bo3OfghBPDWo6AfSHlNtL8N7ITEwIXc1gU5X73xMsJormzzXlwOyrCs+9XCPk63Y+z0=
HTTPS가 없는 웹 사이트에서는 웹 사이트 소유자의 승인 없이 Internet service providers(ISPs) 또는 다른 중개자가 웹 페이지에 콘텐츠를 삽입할 수 있습니다. 일반적으로 이는 더 많은 수익을 원하는 ISP가 고객의 웹페이지에 유료 광고를 주입하는 형태로 볼 수 있습니다. 놀랄 것도 없이 광고 수익과 광고 품질 관리는 웹사이트 소유자와 공유되지 않습니다. HTTPS는 서드 파티가 중간에서 웹 콘텐츠에 광고를 삽입하는 행동을 막습니다.
HTTP와 HTTPS의 다른 점은?
엄밀히 말하면, HTTPS는 HTTP와 별개의 프로토콜이 아닙니다. 단순히 HTTP 프로토콜을 통해 TLS/SSL 암호화를 사용합니다. HTTPS는 TLS/SSL 인증서의 전송을 기반으로하며, 이를 통해 특정 공급자가 자신의 이름으로 지정된 공급자인지 확인할 수 있습니다.
사용자가 웹 페이지에 접속하면 웹 페이지는 보안 세션에 필요한 공용 키가 들어있는 SSL 인증서를 전송힙니다. 그런 다음 클라이언트와 서버 두 컴퓨터는 SSL/TLS 핸드셰이크 프로세스를 거칩니다. 이는 보안 연결을 설정하기위한 일련의 패킷 전송입니다.
관련 글
'cs' 카테고리의 다른 글
[정보보안] JSON Web Token(JWT) 설명 (3) | 2023.03.02 |
---|---|
[네트워크] DNS 설명 및 작동방법 (7) | 2023.02.14 |
[네트워크] SSL 인증서란? 정의 및 설명 (2) | 2022.12.14 |
[네트워크] HTTP - HyperText Transfer Protocol (0) | 2022.12.01 |
[네트워크] CORS, 해결 방법 (2) | 2022.11.01 |
댓글