원지의 개발
article thumbnail
728x90

HTTPS

  • HTTP 프로토콜 상위에서 TLS 암호화를 구현한 것으로 HTTPS를 사용하는 웹사이트는 TLS 암호화를 이용

혼합 콘텐츠

  • 경우에 따라 HTTPS 사이트에는 일반 텍스트 HTTP 프로토콜을 사용하여 로드되는 일부 요소도 포함될 수 있음 = 혼합 콘텐츠 조건 생
  • HTTPS를 통한 HTTP
  • 콘텐츠가 혼합된 경우 HTTPS로 보호되는 사이트에 있으므로 안전하게 암호화된 채로 연결되어 있다고 생각하지만, 페이지의 암호회되지 않은 요소로 인해 취약점이 발생할 수 있음
  • 심각도는 혼합 콘텐츠가 패시브(이미지, 동영상)인지 액티브(JavaScript 파일, API 요청)인지에 따라 달라짐
  • 혼합 콘텐츠를 모두 차단하는 웹 브라우저는 사용자에게 매우 좁은 버전의 웹을 제공하는 것이므로 브라우저는  덜 심각한 형태의 혼합 콘텐츠를 일부 허용하는 방식으로 타협

혼합 콘텐츠 오류 수정

  • 웹 개발자가 페이지의 모든 리소스가 HTTPS를 통해 로드되는지 확인
  • 소스 코드에서 'http://' URL을 사용하여 로드되는 API 호출 및 라이브러리와 같은 리소스의 인스턴스를 확인
  • 경우에 따라 'http://' URL을 'https://'로 바꾸는 것만으로도 해결
  • 해당 리소스의 HTTPS 버전을 사용할 수 있는지 확인
  • 암호화된 버전의 리소스를 사용할 수 없는 경우, 해당 리소스를 교체하거나 완전히 제거

SSL == TLS

  • 전: SSL(Secure Sockets Layer) , 현: TLS(Transport Layer Security)
  • Netscape와 더 이상 연관이 없음을 명시하기 위해 발표 전에 프로토콜의 이름이 변경
  • 전송 계층 보안(TLS)은 인터넷 상의 커뮤니케이션을 위한 개인 정보와 데이터 보안을 용이하게 하기 위해 설계되어 널리 채택된 보안 프로토콜
  • 웹 사이트를 로드하는 웹 브라우저와 같이 웹 응용 프로그램과 서버 간의 커뮤니케이션을 암호화

TLS 인증서

  • TLS를 사용하기 위해서는 원본 서버에 TLS 인증서가 설치되어 있어야 함
  • CA(Certificate Authority, 인증 기관)는 SSL 인증서 발행을 담당
  • 인증 기관이 도메인을 소유한 사람 혹은 비즈니스에게 TLS 인증서를 발행
  • TLS 인증서에는 웹 사이트의 공개 키가 있고, 웹 서버에는 기밀로 유지하는 개인 키가 있음
    공개 키로 암호화된 데이터는 개인 키로만 해독

TLS 작동

  • TLS Handshake(인증 프로세스)를 사용하여 초기화
  • 사용자가 TLS를 사용하는 웹 사이트를 돌아다니면 사용자 장치(클라이언트 장치)와 웹 서버 간에 TLS Handshake가 시작

HTTPS Hnadshake

▲ TCP라 3-way-handshake 필수 (파란색), 암호키 교환(노란색)

 

신뢰할 수 있는 기관(CA)에서 클라이언트에게 네이버의 공개키를 검증할 수 있으면 됨

클라이언트가 아직 서버를 신뢰할 수 없기 때문에 일종의 탐색과정인 handshake를 사용

클라이언트는 어떤 랜덤 데이터를 생성하여 서버에 보냄

서버는 답변으로 서버에서 생성한 무작위 데이터 + 해당 서버의 인증서를 보냄

 

클라이언트는 인증서가 진짜인지 브라우저에 내장된 CA들의 정보를 통해 확인 (비대칭키 시스템 사용) - 브라우저에는 CA에서 인증받은 인증서들이 들어있음

CA의 인증을 받은 인증서들은 해당 CA의 개인키로 암호화되어 있음

진짜라면 브라우저에 저장된 CA의 공개키로 복호화 가능

복호화된 인증서에는 서버의 공개키가 포함되어 있음

< 연결 >

- 다량의 데이터를 비대칭키로 일일히 암호화, 복호화 하는 것은 무리

대칭키로 암호화를 하면서 그 대칭키를 공유할 때 비대칭키를 사용

 

클라이언트는 아까 받은 두개의 무작위 데이터를 가지고 임시키를 만들고, 이 키는 서버의 공개키로 암호화되어 서버로 보내진 다음 양쪽에서 일련의 과정을 거쳐 동일한 대칭키가 만들어짐

 

출처: https://www.cloudflare.com/ko-kr/learning/ssl/transport-layer-security-tls/

https://youtu.be/H6lpFRpyl14?si=C2Tksq9N1pilQnq4

728x90

'Study > Network' 카테고리의 다른 글

[네트워크] socket, 웹소켓  (0) 2023.09.14
[네트워크] 로드 밸런싱, 공인 IP & 사설 IP  (0) 2023.09.01
profile

원지의 개발

@원지다

250x250