Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Q3) HTTP vs HTTPS (Interview Question in HTTP) #14

Open
terry-yes opened this issue Oct 15, 2020 · 8 comments
Open

Q3) HTTP vs HTTPS (Interview Question in HTTP) #14

terry-yes opened this issue Oct 15, 2020 · 8 comments

Comments

@terry-yes
Copy link
Contributor

HTTP와 HTTPS 각각의 특성과 차이점에 대해 설명해주세요
🦊 🐹 🐯 🐩 🦨 🦁 🐋 🐬 🐳

@ku-kim
Copy link
Member

ku-kim commented Oct 15, 2020

기존 HTTP의 메세지들은 보안에 취약함이 있었기 때문에
보안 강화하기 위해 SSL, TLS를 사용하여 보안을 강화했다.
HTTPS의 단점이 있다면 보안 메세지가 추가되었기 때문에 약간의 처리와 트래픽량이 증가되었다. 하지만 현실적으론 미비한 부분이라고 생각된다.

@terry-yes
Copy link
Contributor Author

🦊 HTTP의 보안적인 문제점들을 개선시켜 만든것이 HTTPS이다.

🦊 HTTP 메세지는 TCP에 의해 전송되는데 TCP로 보내지기 전에 SSL를 거쳐 한번 암호화된 뒤에 TCP로 보내진다.

🦊 HTTPS를 사용함으로써 얻을 수 있는 이점은 다음과 같다.

  1. HTTP 메세지를 암호화 한다.

    기존에 암호화되지 않은 평문을 보내는 ISP가 메세지 내용을 읽을 수 있었다. 이 내용에는 민감할 수 있는 신용카드 번호, 주민등록번호등이 포함된다.

    HTTPS는 비대칭키 방식을 이용해 메세지를 암호화하므로 양 끝단에 있는 클라이언트와 서버이외에는 해독된 메세지를 읽을 수 없다.

  2. 서버와 클라이언트의 신원을 서로 확인한다. (보통은 클라이언트가 서버의 신원을 확인한다)

    HTTPS는 클라이언트가 서버의 인증서를 확인하고 클라이언트 프로그램에 의해 올바른 서버인지 확인하는 절차가 있다. 이로 인해 클라이언트는 자신의 데이터를 믿고 서버에게 보낼 수 있게 된다.

@joey-ful
Copy link
Contributor

🐩 HTTP vs HTTPS

기존 HTTP(HyperText Transfer Protocol)는 정보를 텍스트로 주고받기 때문에 네트워크에서 전송 신호를 인터셉트하면 데이터 유출이 가능하다. (Wireshark와 같은 패킷캡처 프로그램으로 캡처하면 정보가 그대로 노출된다) 이런 보안 문제를 개션하기 위해 HTTPS(HyperText Transfer Protocol Secure)에서는 네트워크로 데이터 전송을 하기 전에 내용을 암호화한다. 또한 HTTP는 기본포트로 80번을, HTTPS는 443번을 사용한다.

HTTPS는 세 가지를 보장한다

  1. 기밀성 - SSL이나 TLS를 사용해 웹 브라우저와 서버 사이에 암호화된 통신을 구현해준다. 공개키 암호화 방식으로 HTTP 메시지를 암호화해 보안을 강화한다.
  2. 무결성 - 데이터 전송 중 의도적 또는 비의도적으로 감지되지 않아 수정되거나 손상될 수 없다.
  3. 인증 - SSL은 웹사이트의 신원을 인증해준다.
  • SSL이 폭넓게 사용되다가 표준화 기구인 IETF의 관리로 변경되면서 TLS라는 이름으로 바뀌었으나 여전히 SSL이라는 이름이 많이 사용된다고 한다.

HTTPS는 암호화 과정을 거치면서 웹 부하가 생기고 느려진다. 하지만 현재 인터넷에서는 그 차이가 미미하다고 한다.

@ku-kim ku-kim added the HTTP label Oct 15, 2020
@365kim
Copy link
Member

365kim commented Oct 15, 2020

즉석
HTTP는 웹상에서 서로 데이터를 주고받기 위한 통신 규약이고, 보안을 위해 SSL을 추가한 것이 HTTPS입니다.

보충
HTTP는 HyperText Transfer Protocol 의 약자로, 웹상에서 데이터를 주고받을 수 있도록 해주는 프로토콜입니다. 전세계에 존재하는 제각각의 클라이언트와 서버가 서로 데이터를 주고받을 수 있는 것은, 미리 약속한 HTTP 명세에 따라 통신하기 때문입니다.

HTTPS는 이 HTTP에 보안성을 강화한 프로토콜입니다. HTTPS에서는 HTTP 레이어 바로 밑단에 SSL을 추가해서, HTTP 메세지를 TCP로 보내기 전에 먼저 SSL에서 모든 데이터를 암호화해줍니다. 이로써 주고받는 데이터를 암호화하지 않아 공격에 취약한 HTTP와 달리, 데이터의 송수신 과정에서 데이터를 가로채려는 공격 등으로부터 대응할 수 있게됩니다.

@terry-yes terry-yes self-assigned this Oct 15, 2020
@SeongsangCHO
Copy link
Contributor

http는 인터넷의 서버와 사용자간에 텍스트를 주고받기 위한 통신규약입니다.
연결을 유지하지않는 비연결성의 특징으로 요청과 응답방식으로 통신합니다.
새션과 쿠키로 비연결이라는 점을 보완하기도 합니다.
https는 http에 보안을 더한 것입니다. http통신을 담당하는 소켓에 SSL프로토콜로 대체하여 기존 TCP통신에서 SSL통신을 하게 됩니다.

인증기관을 두고서 인증기관이 제공하는 공개키로 클라이언트는 복호화를 할 수있습니다

@yeosong1
Copy link
Contributor

HTTP는 암호화 되지 않은 상태로 메시지를 보내기 때문에, 감청이 매우 쉽습니다.

그래서 HTTP에 Secure Sockets Layer(혹은 Transport Layer Security)라고 불리는 보안 프로토콜을 더한 것이 HTTPS입니다.

SSL은 서버와 클라이언트가 서로 믿을 만한지를 인증시켜주고, 함께 사용할 암호화 방법을 만들어주는 프로토콜입니다.

이 프로토콜은 핸드쉐이크를 해서 서버-클라간 커넥션 및 협상을 시작한 뒤, 인증서를 받아 공인된 CA인지 확인하고, 공개키를 복호화 해본 뒤, 잘 된다면 함께 쓸 비밀키를 만든 후 핸드쉐이크를 종료합니다.

@hyunjune-lee
Copy link
Contributor

HTTP 설명 인터넷의 멀티미디어 배달부로서 신뢰성 있는 데이터 전송 프로토콜을 사용한다. 이 때문에 데이터가 지구 반대편에서 오더라도 전송 중 손상되거나 꼬이지 않음을 보장한다.
HTTPS는 보안 전송 계층을 통해 전송되는 HTTP이다. 암호화되지 않은 HTTP 메시지를 TCP를 통해 보내는 대신에 HTTPS는 메시지를 TCP로 보내기 전에 암호화하는 보안 계층에 보낸다. 이 보안 계층은 SSL과, 현재는 TLS로 구현되어 있다.

@hidaehyunlee
Copy link
Member

즉석

  • 웹 상에서 데이터를 전송하기 위한 통신규약인 http는 보안에 취약점이 있음.
  • http에 ssl 프로토콜을 추가해 보안을 강화한 것이 https.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

8 participants