HTTPS 사용 이유와 동작방식

HTTPS 사용 이유와 동작방식

1. HTTPS를 사용하는 이유

1-1. 웹사이트에서 주고 받는 정보를 암호화합니다.

HTTP는 서버에서부터 브라우저로 전송되는 정보가 암호화되지 않습니다.
HTTP는 정보를 단순 텍스트로 주고 받기 때문에 네트워크에서 전송 신호를 인터셉트 하는 경우 원하지 않는 데이터 유출이 발생할 수 있습니다.

예를들어, 네트워크를 공동으로 쓰는 PC방, 회사, 학교 등에서 간단한 스니핑툴로 로그인, 회원가입, 예약 등의 개인정보를 입력할 때 정보를 훔쳐 볼 수 있습니다.
하지만 HTTPS 는 통신 시에 정보를 암호화해주기 때문에, 아래 그림에서와 같이 해커가 중간에 정보를 훔쳐보아도 암호화되어 있어 정보를 알 수 없습니다.

1-2. 접속하는 사이트가 신뢰할 수 있는 사이트인지를 알려줍니다.

사이트가 정품인지를 판별할 수 있도록 인증해주는 엄격한 인증과정을 거친 공인된 민간기업을 CA (Certificate Authority) 라고 부릅니다.
HTTPS 사이트는 CA (Certificate Authority) 에 인증을 받습니다.

브라우저 (크롬이나 사파리, 파이어폭스,엣지, 익스플로러 등)에는 CA 의 리스트와 공개키를 보유하고 있어서, 사용하는 사이트의 신원을 보장해주어 신뢰하고 사용할 수 있습니다.

참고 : https://aws-hyoh.tistory.com/59

1-3. HTTPS 사용 시 검색엔진 최적화(SEO) 에 있어서 혜택을 볼 수 있습니다.

사람들이 안전하다고 생각하는 사이트를 더 많이 방문하기도 하고,
구글이 HTTPS 웹 사이트 SEO 품질에 더 가산점을 주기 때문에 검색엔진 최적화(SEO)에 있어서 혜택을 볼 수 있습니다.


2. HTTPS 와 비대칭키

HTTPS 는 암호화하여 사용할 수 있도록 비대칭키, 또는 공개키라 불리는 시스템을 사용합니다.
여기에는 한 쌍으로 이루어진 A키와 B키를 사용합니다.
각각의 키가 서로 다르기 때문에 '비대칭키'라고 불립니다.
A키로 암호화를 하면 B키로만 복호화할 수 있습니다.
반대로 B키로 암호화를 하면 A키로만 풀 수 있습니다.

이 원리를 적용하여, CA (Certificate Authority) 기업은 공개키와 개인키를 만듭니다.
개인키는 웹 서버(ex 네이버 사이트의 서버)에 비밀로 보관하고, 공개키는 브라우저에 공개합니다.
사용자는 공개키로 비밀번호를 암호화해서 웹 서버(ex 네이버 사이트의 서버)에 보냅니다.
중간에서 해커들이 공개키를 가로채도 안전한 이유는 이 정보를 해독할 수 있는 것은 개인키를 가진 웹 서버(ex 네이버 사이트의 서버) 뿐이기 때문입니다.

또한 반대로, 웹 서버에서 우리에게 보내는 정보들은 그 일부가 개인키로 암호화가 되어 있습니다.
우리가 브라우저에 저장된 CA의 공개키로 풀어서 알아볼 수 있는 것은 웹 서버에서 보낸 개인키와 일치하기 때문이므로 안전하게 사이트를 이용할 수 있습니다.
일치하지 않는 다면 이상한 사이트에서 보내는 것이기 때문에 오류가 날 것이기 때문입니다.

참고 : https://www.youtube.com/watch?v=H6lpFRpyl14


3. HTTPS 적용 시 통신 흐름

1. 어플리케이션 서버(A)를 만든 기업은 HTTPS를 적용하기 위해 개인키와 공개키를 만듭니다.
2. A 기업은 신뢰할 수 있는 CA를 선택해 공개키를 관리해달라고 계약합니다.
3. CA기업은 CA기업만의 공개키와 개인키를 가지고 있다. CA기업은 CA기업의 이름, A 기업의 공개키, 공개키의 암호화 방법 등의 정보를 담은 인증서를 발급하고, 발급한 인증서를 CA 기업의 개인키로 암호화해서 A 기업에 제공합니다.
4. A 기업은 클라이언트로부터 암호화된 HTTPS 요청이 아닌 요청이 들어왔을 때 암호화된 인증서를 전송합니다.
5. CA 기업의 공개키는 브라우저가 이미 알고있기 때문에 클라이언트는 CA 기업의 공개키로 서버로부터 전달받은 인증서를 복호화하고, 이를 통해 A 기업의 공개키를 얻을 수 있습니다.
6. 그 뒤로는 클라이언트가 A 기업의 서버와 통신할 때는 A 기업의 공개키로 암호화해서 Request를 날릴 수 있게 됩니다.

출처 : https://dev-mb.tistory.com/159

댓글

Designed by JB FACTORY