[WEB] SSL/TLS, HTTPS

한결·2023년 8월 18일
0

WEB

목록 보기
61/63

SSL

원래 웹 상의 데이터는 메시지를 가로채면 누구나 읽을 수 있는 일반 텍스트 형태로 전송됨
예를들어 고객이 쇼핑 웹사이트를 방문하여 주문하고, 신용 카드 번호를 입력했다고 하면, 해당 신용 카드 번호가 숨겨지지 않은 채 인터넷을 이동하게 됨

SSL은 사용자와 웹 서버 사이를 이동하는 모든 데이터를 암호화하여, 누군가 데이터를 가로채더라도 무작위 문자만 볼 수 있게 함
이제 고객의 신용 카드 번호는 안전해졌으며, 고객이 번호를 입력한 쇼핑 웹사이트만 이를 볼 수 있음

SSL은 특정한 유형의 사이버 공격도 차단
SSL은 웹 서버를 인증하는데, 공격자들이 사용자를 속여 데이터를 훔치기 위한 가짜 웹사이트를 만드는 일이 있기 때문에, 이러한 인증이 중요함
또한 약병의 조작 방지 봉인처럼, 공격자가 전송 중인 데이터를 조작하지 못하게 막기도 함

작동방식

  • 높은 수준의 개인정보 보호를 제공하기 위해, 웹에서 전송되는 데이터를 암호화함
  • 데이터를 가로채려는 자는 거의 해독할 수 없는 복잡한 문자만 보게 됨
  • 두 통신 장치 사이에 핸드셰이크라는 인증 프로세스를 시작하여 두 장치의 ID를 확인
  • 데이터 무결성을 제공하기 위해 데이터에 디지털 서명하여 데이터가 의도된 수신자에 도착하기 전에 조작되지 않았다는 것을 확인

TLS

  • SSL은 TLS(Transport Layer Security)이라는 또 다른 프로토콜의 바로 이전 버전
  • TLS를 아직 SSL이라 부르기도 하고, SSL의 인지도가 높으므로, ‘SSL/TLS 암호화’라 부르는 경우도 있음
  • SSL은 1996년 SSL 3.0 이후 업데이트되지 않았으며, SSL 프로토콜에는 알려진 취약성이 여러 가지 있으며 보안 전문가들은 SSL의 사용을 중단하라고 권장
  • TLS는 현재 온라인으로 실행되고 있는 최신 암호화 프로토콜인데, 아직 이를 "SSL 암호화"라고 부르는 사람도 있음

SSL 인증서

SSL은 SSL 인증서(공식적으로 "TLS 인증서")가 있는 웹사이트만 실행할 수 있음
SSL 인증서는 사람의 신원을 확인하는 신분증이나 배지와 같음
SSL 인증서는 웹사이트나 애플리케이션 서버가 웹에 저장하고 표시함

SSL 인증서에 포함된 가장 중요한 정보 중 하나가 웹 사이트의 공개 키
이 공개 키 덕분에 암호화와 인증이 가능
사용자의 장치는 공개 키를 보고 이를 이용하여 웹 서버와 안전한 암호화 키를 수립
한편, 웹 서버에도 기밀로 유지하는 개인 키가 있음
개인 키는 공개 키로 암호화된 데이터를 해독

CA(인증 기관)는 SSL 인증서 발행을 담당

필요 이유

웹 사이트에는 SSL 인증서가 있어야만 사용자 데이터를 안전하게 유지하고, 웹 사이트의 소유권을 확인하며, 공격자가 사이트의 가짜 버전을 만드는 것을 방지하고, 사용자의 신뢰를 얻을 수 있음

암호화: SSL 인증서가 지원하는 공개-개인 키 페어링을 통해 SSL/TLS 암호화가 가능합니다.클라이언트(예: 웹 브라우저)는 서버의 SSL 인증서에서 TLS 연결을 여는 데 필요한 공개 키를 받습니다.

SSL 인증서는 클라이언트가 실제로 도메인을 소유하고 있는 올바른 서버와 통신하고 있는지 확인
이렇게 하면 도메인 스푸핑 등의 공격을 방지할 수 있음

스푸핑이란?
IP 스푸핑은 송신자의 ID를 숨기거나, 다른 컴퓨터 시스템으로 가장하거나, 이 두 가지 모두를 수행하기 위해, 소스 주소가 수정된 IP(인터넷 프로토콜) 패킷을 생성하는 것입니다. 표적 기기나 주변 인프라에 대해 DDoS 공격을 자행하기 위해 부정 행위자들이 자주 사용하는 기법

SSL 인증서에 포함된 정보

  • 인증서가 발급된 대상 도메인 이름
  • 발급받은 사람, 조직, 장치
  • 발급한 인증 기관
  • 인증 기관의 디지털 서명
  • 관련 하위 도메인
  • 인증서 발급 날짜
  • 인증서 만료 날짜
  • 공개 키(개인 키는 비밀로 유지됨)

HTTP vs HTTPS

엄밀히 말하면 HTTPS는 HTTP와 별개의 프로토콜이 아님
HTTPS는 단순히 HTTP 프로토콜을 통해 TLS/SSL 암호화를 사용하는 것

TLS/SSL 암호화
암호화 전:
완전히 읽을 수 있는 텍스트 문자열입니다
암호화 후:
ITM0IRyiEhVpa6VnKyExMiEgNveroyWBPlgGyfkflYjDaaFf/Kn3bo3OfghBPDWo6AfSHlNtL8N7IT

HTTPS는 특정 공급자가 주장하는 실체가 맞는지 확인하는 TLS/SSL 인증서의 전송을 기반으로 이루어짐

사용자가 웹 페이지에 연결하면(TCP연결이 성립된 상태에서) 웹 페이지에서 보안 세션을 시작하는 데 필요한 공개키가 포함된 SSL 인증서를 전송
그런 다음 두 컴퓨터, 즉 클라이언트와 서버가 보안 연결을 설정하는 데 사용되는 일련의 주고받는 통신인 SSL/TLS 핸드셰이크라는 프로세스를 거침

TLS 핸드셰이크란

TLS는 안전한 인터넷 통신을 위한 암호화 및 인증 프로토콜입니다. TLS 핸드셰이크는 TLS 암호화를 사용하는 통신 세션을 실행하는 프로세스입니다. TLS 핸드셰이크 중에, 통신하는 양측에서는 메시지를 교환하여 서로를 인식하고 서로를 검증하며 사용할 암호화 알고리즘을 구성하고 세션 키에 합의합니다. TLS 핸드셰이크는 HTTPS 작동 원리의 근간을 이룹니다.

0개의 댓글