HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
✍🏻
Learnary (learn - diary)
/
🔐
HTTPS
🔐

HTTPS

progress
Done
Tags
CS
Build UpWhatWhyHow

Build Up


HTTP는 인터넷 상에서 정보를 주고받을 수 있는 프로토콜이다.
  • 보통 시중이 출시된 앱이나 웹페이지들은 보통 HTTP를 기반으로 통신한다.
  • 이와 관련되서 CORS 등을 잘 알고 있어아야 한다.
HTTP 의 대표적인 특징으로 2가지 있다.
  1. 무상태
  1. 비 연결성
 
암호화 방식 : 공개키(비대칭키), 대칭키
공개키 방식
  • 키 2개를 운용하여 암/복호화 하는 방식
  • 둘 중 하나를 비공개키(Private Key) 혹은 개인키라 부르며, 이는 자신만 가지고 있고 공개되지 않는다.
  • 나머지 하나를 공개키(Public Key)라고 부르며 타인에게 제공한다.
  • 공개키는 유출이 되어도 비공개키를 모르면 복호화 할 수 없기 때문에 안전하다.
 
대칭키
동일한 키로 암/복호화 하는 방식
 
공개키보다 암/복호화가 빠르다
단, 대칭키를 도둑맞으면 무시무시한 일이 벌어진다

What


HTTPS란?
 
HTTP 기본 골격에 보안요소를 추가한 프로토콜이다.
기존 HTTP는 80포트를 사용하지만 HTTPS는 443을 사용한다.
notion image
 
 
 

Why


  • 민감정보(카드번호, 카드 비밀번호, 휴대폰번호, 통장 비밀번호)가 인터넷을 통해 공개된다면? 믿고 사용할 수 없을 것이다.
  • 즉 인터넷을 이용하는 사용자가 안심하고 이러한 민감정보 전달하기 위함이다.

How


  • 인증서 발급 (서버)
    • notion image
      1. 인터넷 사이트(서버)는 공개키와 개인키를 만들고, 신뢰할 수 있는 인증 기관(CA)에 자신의 정보와 공개키를 관리해달라고 계약하고 (경우에 따라) 돈을 지불한다.
      1. 이 때, 계약을 완료한 인증 기관은 기관만의 공개키와 개인키가 있다. 인증 기관은 사이트가 제출된 데이터를 검증하고, 인증 기관의 개인키로 사이트에서 제출한 정보를 암호화해서 인증서를 만들어 제공한다. 사이트는 인증서를 가지게 되었다.
      1. 인증 기관은 웹 브라우저에게 자신의 공개키를 제공한다.
       
      why. 인증기관과 사이트(서버)와 무슨 관계길래 이러한 행위를 하는가?
      실생화에 빗대어 보자면 장사를 시작한다고 가정해보자
      그러면 가게는 상가를 사고 바로 시작해야 되는가? 아니다
      정부에 “장사할 거에요”라고 요청하여 정부에서 인정한 사업자 번호를 가지고 장사를 시작한다.
       
  • 사용자 요청에 의해 이루어진 통신 과정 (HTTPS )
    • notion image
      1. 사용자가 사이트에 접속하면 서버는 자신의 인증서를 웹 브라우저(클라이언트)에게 보낸다.예를 들어, 웹 브라우저가 index.html 파일을 달라고 요청했다면, 서버의 정보를 인증 기관의 개인키로 암호화한 인증서를 받게 되는 것이다.
      1. 웹 브라우저는 3.에서 미리 알고 있던 인증기관의 공개키로 인증서를 해독하여 검증한다. 그러면 사이트의 정보와 서버의 공개키를 알 수 있게 된다.이 부분은 보안상의 의미는 없다. 단지 해당 서버로부터 온 응답임을 확신할 수 있게 된다.
      1. 이렇게 얻은 서버의 공개키로 대칭키를 암호화해서 다시 사이트에 보낸다.
      1. 사이트는 개인키로 암호문을 해독하여 대칭키를 얻게 되고, 이제 대칭키로 데이터를 주고받을 수 있게 된다.
        1. notion image
          이제 민감정보와 같은 정보 교환이 이루어지고 대칭키는 폐기 된다.
           
          실제로 TCP 3-way- handshaking 이 종료된 후 위 과정을 거쳐 키를 교환한다
          notion image
           

           REFER


          www.cloudflare.com
          https://www.cloudflare.com/ko-kr/learning/ssl/what-happens-in-a-tls-handshake/
          [네트워크] HTTPS (개념, SSL/TLS 암호화 과정, 장단점)
          최근 진행한 프로젝트에서 음성인식 때문에 Webkit 기반의 Speech Recognition API를 사용했다. 로컬 환경에서는 카메라 및 마이크 요청을 허용해주니 문제 없이 잘 됐지만, AWS에 배포한 후 실제 웹 환경에서는 허용 여부를 물어보지도 않고 해당 권한을 차단했다.
          [네트워크] HTTPS (개념, SSL/TLS 암호화 과정, 장단점)
          https://eun-jeong.tistory.com/27
          [네트워크] HTTPS (개념, SSL/TLS 암호화 과정, 장단점)
          HTTPS 통신과정 쉽게 이해하기 #3(SSL Handshake, 협상)
          고대 그리스에서는 타인에게 노출되어서는 안 될 중요한 정보를 보낼 때, 전달하는 이(사자)의 머리를 빡빡 깎아서 중요한 정보를 적은 후 머리가 자라서 글이 보이지 않으면 그제야 상대방에게 보냈다고 합니다. 그리하게 되면 그 사실을 모르는 사람은 정보를 볼 수 없고 사실을 아는 수신자는 다시 머리를 깎은 후 정보를 볼 수 있을 테니까요.
          HTTPS 통신과정 쉽게 이해하기 #3(SSL Handshake, 협상)
          https://aws-hyoh.tistory.com/entry/HTTPS-%ED%86%B5%EC%8B%A0%EA%B3%BC%EC%A0%95-%EC%89%BD%EA%B2%8C-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0-3SSL-Handshake
          HTTPS 통신과정 쉽게 이해하기 #3(SSL Handshake, 협상)