원래 웹 상의 데이터는 메시지를 가로채면 누구나 읽을 수 있는 일반 텍스트 형태로 전송됨
예를들어 고객이 쇼핑 웹사이트를 방문하여 주문하고, 신용 카드 번호를 입력했다고 하면, 해당 신용 카드 번호가 숨겨지지 않은 채 인터넷을 이동하게 됨
SSL은 사용자와 웹 서버 사이를 이동하는 모든 데이터를 암호화하여, 누군가 데이터를 가로채더라도 무작위 문자만 볼 수 있게 함
이제 고객의 신용 카드 번호는 안전해졌으며, 고객이 번호를 입력한 쇼핑 웹사이트만 이를 볼 수 있음
SSL은 특정한 유형의 사이버 공격도 차단
SSL은 웹 서버를 인증하는데, 공격자들이 사용자를 속여 데이터를 훔치기 위한 가짜 웹사이트를 만드는 일이 있기 때문에, 이러한 인증이 중요함
또한 약병의 조작 방지 봉인처럼, 공격자가 전송 중인 데이터를 조작하지 못하게 막기도 함
SSL은 SSL 인증서(공식적으로 "TLS 인증서")가 있는 웹사이트만 실행할 수 있음
SSL 인증서는 사람의 신원을 확인하는 신분증이나 배지와 같음
SSL 인증서는 웹사이트나 애플리케이션 서버가 웹에 저장하고 표시함
SSL 인증서에 포함된 가장 중요한 정보 중 하나가 웹 사이트의 공개 키
이 공개 키 덕분에 암호화와 인증이 가능
사용자의 장치는 공개 키를 보고 이를 이용하여 웹 서버와 안전한 암호화 키를 수립
한편, 웹 서버에도 기밀로 유지하는 개인 키가 있음
개인 키는 공개 키로 암호화된 데이터를 해독
CA(인증 기관)는 SSL 인증서 발행을 담당
웹 사이트에는 SSL 인증서가 있어야만 사용자 데이터를 안전하게 유지하고, 웹 사이트의 소유권을 확인하며, 공격자가 사이트의 가짜 버전을 만드는 것을 방지하고, 사용자의 신뢰를 얻을 수 있음
암호화: SSL 인증서가 지원하는 공개-개인 키 페어링을 통해 SSL/TLS 암호화가 가능합니다.클라이언트(예: 웹 브라우저)는 서버의 SSL 인증서에서 TLS 연결을 여는 데 필요한 공개 키를 받습니다.
SSL 인증서는 클라이언트가 실제로 도메인을 소유하고 있는 올바른 서버와 통신하고 있는지 확인
이렇게 하면 도메인 스푸핑 등의 공격을 방지할 수 있음
스푸핑이란?
IP 스푸핑은 송신자의 ID를 숨기거나, 다른 컴퓨터 시스템으로 가장하거나, 이 두 가지 모두를 수행하기 위해, 소스 주소가 수정된 IP(인터넷 프로토콜) 패킷을 생성하는 것입니다. 표적 기기나 주변 인프라에 대해 DDoS 공격을 자행하기 위해 부정 행위자들이 자주 사용하는 기법
엄밀히 말하면 HTTPS는 HTTP와 별개의 프로토콜이 아님
HTTPS는 단순히 HTTP 프로토콜을 통해 TLS/SSL 암호화를 사용하는 것
TLS/SSL 암호화
암호화 전:
완전히 읽을 수 있는 텍스트 문자열입니다
암호화 후:
ITM0IRyiEhVpa6VnKyExMiEgNveroyWBPlgGyfkflYjDaaFf/Kn3bo3OfghBPDWo6AfSHlNtL8N7IT
HTTPS는 특정 공급자가 주장하는 실체가 맞는지 확인하는 TLS/SSL 인증서의 전송을 기반으로 이루어짐
사용자가 웹 페이지에 연결하면(TCP연결이 성립된 상태에서) 웹 페이지에서 보안 세션을 시작하는 데 필요한 공개키가 포함된 SSL 인증서를 전송
그런 다음 두 컴퓨터, 즉 클라이언트와 서버가 보안 연결을 설정하는 데 사용되는 일련의 주고받는 통신인 SSL/TLS 핸드셰이크라는 프로세스를 거침
TLS 핸드셰이크란
TLS는 안전한 인터넷 통신을 위한 암호화 및 인증 프로토콜입니다. TLS 핸드셰이크는 TLS 암호화를 사용하는 통신 세션을 실행하는 프로세스입니다. TLS 핸드셰이크 중에, 통신하는 양측에서는 메시지를 교환하여 서로를 인식하고 서로를 검증하며 사용할 암호화 알고리즘을 구성하고 세션 키에 합의합니다. TLS 핸드셰이크는 HTTPS 작동 원리의 근간을 이룹니다.