티스토리 뷰

개요

HTTP와 HTTPS의 차이점을 잘 모르겠어서 찾아보았다.

https://www.freecodecamp.org/news/http-vs-https/

해당 블로그를 읽고 정리하였고, 일부 필요한 이미지는 구글 검색으로 추가한다.

 

HTTP vs HTTPS – What's the Difference?

We interact with HTTP and HTTPS a lot in our day-to-day lives, but many people don't know the difference. Most computer users just see that the browser is telling them their application is not safe and that a hacker might want to steal their important info

www.freecodecamp.org

 

내용

HTTP란?

브라우저와 방문하려는 사이트(웹 서버) 간의 통신 방법.

이 과정에서 브라우저는 서버에서 필요한 정보를 얻을 수 있다.

 

HTTP의 단점

일반 텍스트(Plain text)를 통해 데이터를 보내는데, 특정 페이지에서 HTTP를 사용하느 경우 해커가 침입하여 사용자가 보내는 모든 정보를 읽을 수 있는 문제가 있었다.

 

HTTP 특징

1. 일반 텍스트 (Plain text)

  HTTP가 개발될 당시 개발자들은 텍스트 문서만 제공한다는 것만 염두했었다. 하지만 현재는 더 많은 방식으로 이용된다.

2. 레이어 7 프로토콜

  OSI 네트워크 모델의 7 계층(애플리케이션) 프로토콜이며, 해당 계층은 OSI모델에서 최상위 계층이다.

3. 불안정함.

  요청을 주고받을 때 일반 텍스트를 사용한다는 것은 요청 및 응답에 접근할 수 있는 모든 사용자가 읽을 수 있음을 의미한다.

4. 가볍다.

  HTTP의 장점은 매우 가볍다는 것인데, HTTP와 달리 데이터를 보호하기 위해 암호화 작업을 수행하지 않는다.

5. 일반적으로 포트 80에서 수신 대기한다.

 

모든 HTTP 웹사이트는 안전하지 않은가?

중요하지 않은 정보를 검색 할 때는 사용자의 정보가 해커에게 제공할 수 있는 것이 없을 테니 문제가 없으나, 은행 등의 민감한 사용자 정보가 필요한 경우 HTTP만으로는 충분하지 않을 수 있다.

 

HTTPS란?

브라우저와 방문하려는 사이트(웹 서버) 간에 안전하게 통신할 수 있는 방법.

 

HTTPS 동작 방식

데이터를 암호화하는 보안 프로토콜을 사용하여 보안 연결을 만든다.

HTTPS를 사용하는 가장 좋은 방법은 SSL 인증서 또는 TLS 인증서를 받는 것이다.

 

HTTPS의 특징

1. 암호화

  데이터 암호화는 TLS/SSL 프로토콜을 통해 이루워짐

2. 4 계층(전송) 프로토콜

3. 공개 키와 개인키의 교환

  데이터를 암호화하고 해독하는데 필요한 것이 서로가 가진 키이다.

4. HTTP에 비해 무겁다.

  암호화와 복호화가 일어나면서 HTTP에 비해 무거워졌다.

5. 포트 443에서 수신을 대기한다.

 

SSL인증서란?

해당 웹 사이트가 누구이며 신뢰할 수 있음을 브라우저에게 알려주는 파일.

인증을 위해 인증서는 연결하려는 서버가 해당 도메인을 관리하는 서버임을 클라이언트에게 확인할 수 있다.

 

SSL 암호화의 동작 원리

1. 비대칭 암호화

  • 클라이언트, 사용자, 브라우저는 통신 중인 서버에 공개 키를 제공한다.
  • 공개 키를 사용하여 암호화를 발생 시키고 서버의 개인 키를 사용하여 암호 해독을 한다.
  • 개인 키는 해당 특정 서버에서만 찾을 수 있다.
  • 크기가 1024/2048 비트 이다.
  • 키 해킹당해도 문제가 없으나 대칭키에 비해 효율이 떨어짐.

2. 대칭 암호화

  • 하나의 키가 존재한다.
  • 클라이언트는 암호화에 하나의 키를 사용하고 서버는 데이터 복호화에 동일 키를 사용한다.
  • 크기가 128/256 비트이다.
  • 비대칭에 비해 해킹하기가 조금 더 쉽다.
  • SSL을 사용할 때 Asymmetric과 Symmetric을 결합하여 안전한 통신이 가능하다.
  • 효율은 좋으나 키가 해킹당하면 문제가 생김

3. 비대칭 + 대칭 암호화 함께 사용하는 하이브리드 암호화

데이터는 대칭 키로 암호화하는게 효율적이기 때문에 선택은 대칭 키로 하였으나 키가 해킹됐을 때를 대비하여 안전하게  대칭키를 비대칭키로 사용한 하이브리드 암호화를 사용하기로 결정하였다.

  1. 서버는 브라우저에 공개 키를 보낸다.
  2. 브라우저는 세션키를 생성한다.
  3. 대칭 암호화는 클라이언트와 서버 모두에 대해 하나의 단일 키만을 사용한다.
  4. 브라우저가 로컬 세션 키를 생성한다. (대칭 암호화 세션 키)
  5. 1번의 공개 키를 사용하여 암호화 한다.
  6. 1번의 키와 4번의 키가 결합되어 서버로 전송된다.
  7. 서버의 개인키를 사용하여 수신된 세션 키를 해독한다. (비대칭 개인 키를 사용)
  8. 7번까지의 과정이 끝나면 특정 기간 동안 세션 키만을 통해 암호 해독을 한다.
  9. 1번부터 다시 반복

 

SSL키 발급은 어디에서 받나?

보안 인증서를 발급하는 기관인 인증 기관이 존재하며 Cloudflare의 인증서는 무료이다. (예 : Comodo, DigiCert)

 

결론

  • HTTP는 암호화하지 않지만 HTTPS는 암호하여 해킹으로부터 보호된다.
  • 처음 몇 초 동안 HTTPS를 로드하는 것이 HTTP에 비해 느릴 수 있다.
  • SSL 인증서를 받는데 비용이 들 수 있으나 HTTP는 인증 비용이 들지 않는다.
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/03   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
글 보관함