HTTP에 대해 설명해주세요

JISU LIM·2023년 11월 20일
0

CS-Tech

목록 보기
10/16
post-thumbnail
post-custom-banner

🚀 HTTP에 대해 설명해주세요

HTTP(Hypertext Transfer Protocol)는 웹 상에서 서버와 브라우저가 데이터를 주고 받을 때 사용하는 프로토콜(통신 규약)입니다. 이름에 Hypertext가 포함되어있지만, HTML 문서 뿐만 아니라, 이미지와 오디오 등의 여러 데이터 형식을 주고 받을 수 있습니다.

🔴 HTTPS에 대해 설명해주세요

HTTPS(Hypertext Transfer Protocol Secure)는 HTTP의 보안이 강화된 것으로, 브라우저와 서버가 데이터를 전송하기 전에 인증서를 공유하여 암호화된 연결을 설정합니다.

🟠 대칭키와 공개키에 대해 설명해주세요

  • 대칭키는 암복호화에 필요한 키가 같은 키를 의미합니다.
  • 공개키는 키가 공개되어있기 때문에 모든 사람이 접근 가능한 키를 말합니다.

🟡 대칭키 암호화방식과 공개키 암호화 방식에 대해 설명해주세요

  • 대칭키 암호화 방식은 암복호화에 사용하는 키가 동일한 암호화 방식을 말합니다.
    • 공개키 암호화 방식에 비해 연산 속도가 빠르다는 장점이 있지만, 키 교환이 이루어져야 암복호화가 가능합니다.
  • 공개키 암호화 방식은 암복호화에 사용하는 키가 서로 다른 암호화 방식을 말합니다. 비대칭키 암호화 방식이라고도 합니다.
    • 대칭키 암호화 방식의 키를 교환해야 하는 문제를 해결하기 위해 등장한 암호화 방식입니다.
    • 위 예시에서 암호화된 데이터는 Woo의 공개키에 대응되는 개인키를 갖고 있는 Woo만이 볼 수 있게 됩니다.
    • 이처럼 키 전달 문제를 해결해서 더 안전하지만, 암복호화를 위한 연산이 추가적으로 수행되기 때문에 대칭키 암호화 방식에 비해 속도가 느리다는 단점이 있습니다.

🟢 왜 HTTPS Handshake 과정에서는 인증서를 사용하는 것일까요?

  • HTTPS 웹사이트는 독립된 인증 기관(CA)에서 SSL/TLS 인증서를 획득해야 합니다. 이러한 웹사이트는 신뢰를 구축하기 위해 데이터 교환 전 브라우저와 Handshake 과정을 통해 인증서를 공유합니다.
  • 인증서를 사용해 서버의 신뢰성을 확인하고 공개키를 안전하게 교환함으로써, HTTPS는 안전하고 신뢰할 수 있는 통신을 보장하게 됩니다.
  • 참고 - TLS Handshake

🔵 SSL과 TLS의 차이는 무엇인가요?

  • SSL(Socket Secure Layer) 프로토콜은 전송되는 데이터를 암호화하고 보호하는 데 항상 사용됩니다. 새로운 버전이 공개될 때마다 버전 번호만 바뀌어 변경을 나타냅니다(예: SSLv2.0). 그러나 SSLv3.0에서 업데이트되는 시점부터 새로운 버전을 SSLv4.0이라 하는 대신 TLSv1.0으로 개명되었습니다.

  • TLS(Transport Layer Security)은 SSL의 후속 버전입니다. 하지만 TLS 연결을 설명하는 데 SSL이라는 용어가 많이 사용됩니다. 대부분의 경우 SSL 및 SSL/TLS라는 용어 모두 TLS 프로토콜과 TLS 인증서를 나타냅니다.

  • 따라서 TLS는 SSL의 취약점이나 장점을 업그레이드한 버전으로 차이를 두어도 무방할 것 같습니다. 아래는 주요 차이를 요약한 테이블입니다.

    SSLTLS
    의미SSL은 Secure Sockets Layer 즉, 보안 소켓 계층을 의미합니다.TLS는 Transport Layer Security 즉, 전송 계층 보안을 의미합니다.
    버전 기록 SSL은 이제 TLS로 대체되었습니다. SSL은 버전 1.0, 2.0 및 3.0이 있습니다.TLS는 SSL의 업그레이드된 버전입니다. TLS는 버전 1.0, 1.1, 1.2 및 1.3이 있습니다.
    메시지 인증SSL은 MAC을 사용합니다.TLS는 HMAC을 사용합니다.
    암호그룹SSL은 알려진 보안 취약점이 있는 이전 알고리즘을 지원합니다.TLS는 고급 암호화 알고리즘을 사용합니다.
    핸드셰이크SSL 핸드셰이크는 복잡하고 느립니다.TLS 핸드셰이크는 단계가 적고 연결 속도가 빠릅니다.

🙏 본 개념의 정리에 대한 피드백과 질문은 환영입니다!

✏️ Tech Interview Study

본 개념의 다른 정리 및 피드백, 인터뷰 주제의 순서는 테크 인터뷰 스터디 Repository에서 확인 가능합니다.

📚 REFERENCE

티스토리 - HTTP(Hypertext Transfer Protocol)란?

aws - HTTP와 HTTPS의 차이점은 무엇인가요?

aws - SSL과 TLS의 차이점은 무엇인가요?

digicert - SSL 인증서는 무엇인가요?

profile
Grow Exponentially
post-custom-banner

0개의 댓글