HTTP vs HTTPS
- HTTP
- 서로 다른 시스템들 사이에서 통신을 주고받게 하는 가장 기본적인 프로토콜
- 서버에서 브라우저로 데이터를 전송하는 용도로 가장 많이 사용함
- HTTPS
- SSL(보안 소켓 계층) 사용
- SSL은 서버와 브라우저 사이에 안전하게 암호화된 연결을 만들 수 있게 도와주고, 서버와 브라우저가 민감한 정보를 주고받을 때 해당 정보가 도난당하는 것을 막아줌
- HTTPS는 HTTP자체를 암호화하는것은 아님 HTTP헤더는 암호화 하지 않고 HTTP body만을 암호화 한다는것을 주의
왜 HTTPS를 사용해야할까?
-
보안성
-
SEO(검색 엔진 최적화)
- 구글은 HTTPS 웹 사이트에 가산점을 줌
- AMP(가속화된 모바일 페이지)를 만들 때 HTTPS를 사용해야만 함
-
가속화된 모바일 페이지(AMP, Accelerated Mobile Pages)
- AMP란 모바일 기기에서 훨씬 빠르게 콘텐츠를 로딩 하기 위한 방법으로 구글이 만든 것. HTML에서 불필요한 부분을 없앤 것임.
- 구글의 SERP(검색 결과 페이지)를 보면 스마트폰과 태블릿의 사용자들이 모바일에서 사용하기 편하도록 AMP 콘텐츠들이 두드러져 보인다
SSL/TLS
SSL(Secure Sockets Layer)
- SSL 웹사이트와 브라우저 사이(또는 두 서버 사이)에 전송되는 데이터를 암호화하여 인터넷 연결을 보호하기 위한 표준 기술.
- 공개키/개인키 대칭키 기반으로 사용함
- TLS는 SSL의 업그레이드된 버전이다.
대칭키
- 동일한 방법으로 암호화/복호화를 수행하는 방법
- 누구든지 암호화에 이용된 키를 가지고 있다면 쉽게 복호화가 가능하다.
- 데이터 전송시 대칭키를 함께 전송하는 경우 해커가 손쉽게 대칭키를 이용하여 복호화를 할 수 있기 때문에 보안이 취약하다는 단점이 존재한다.
- 장점으로는 방식이 간단해서 암호화 복호화시에 연산 비용이 적다.
공개키
- 서로다른 키로 암호화 및 복호화를 하는 방식
- 데이터 암호화시에는 공개키를 사용, 복호화할 때는 개인키를 사용
- 공개키로 암호화한 데이터는 오직 개인키로만 복호화 할 수 있기 때문에 공개키는 누구든지 가져도 상관이 없다
- 해커가 키를 가로챈다면 해당키는 공개키이기 때문에 보안에 문제가 없다.
- 대신 암호화 비용이 크기 때문에 연산 비용이 크다.