/ ETC

HTTP와 HTTPS의 차이점, HTTPS의 과정 및 장점

기타 포스팅입니다.




HTTP

HTTP(HyperText Transfer Protocol)로

HTTP는 인터넷에서 데이터를 주고 받을 수 있는 프로토콜(규칙,규약)입니다.

서버와 클라이언트가 데이터를 주고받을 때 암호화되지 않은 그대로 데이터가 오고 갑니다. 따라서 개인정보같은 중요한 정보를 중간에 제 3자가 알 수 있어 보안에 취약하다.

HTTPS

HTTPS(HyperText Transfer Protocol Secure)는 HTTP에 Secure가 붙은 것으로, HTTP에 보안 기능이 추가된 형태이다.

보통은 전자상거래같은데에서 많이 쓰였으나 요즘 구글이 HTTPS가 적용된 웹사이트는 검색결과표시에 있어서 가산점을 줍니다. 대부분 https인 사이트가 많습니다.

HTTPS의 특징

HTTP웹사이트보다 안전한 것이 HTTPS로 된 사이트입니다. 어떤 웹사이트에 보내는 정보를 누가 훔쳐보지 못하도록 암호화를 한다. 예를 들어 네이버에 로그인할 때 ID와 Password를 입력하고 로그인을 하면 네이버 서버에 ID와 Password를가 전송되는데 그냥 HTTP로 보내버리면 이 정보들이 입력한 텍스트 그대로 전송됩니다. 중간에 누군가가 훔쳐보기 딱좋죠. 그런데 HTTPS는 이 정보를 네이버만 알아볼 수 있는 텍스트로 변경해서 보냅니다. 암호화를 하는 것이죠.

또한 HTTPS는 접속한 사이트가 신뢰할 수 있는 사이트인지 판별해준다. 네이버와 비슷하게 생긴 피싱사이트가 있다고 가정해보겠습니다. 사용자가 피싱 사이트에 아이디와 비번을 입력하면 피싱사이트가 계정정보를 알게 되겠죠. HTTPS는 이런 피싱 사이트를 걸러낼 수 있도록 함. 기관으로부터 검증된 사이트만 주소에 HTTPS 사용이 허가되고 그냥 HTTP만 사용하는 사이트들은 이제 주소 창에 안전하지 않다는 표시가 뜨게 됩니다.

사전 지식

HTTPS의 과정을 알기전에 필요한 사전 지식이 있습니다.

  • 대칭키 암호화

클라이언트와 서버가 동일한 키를 사용해 암호화/복호화를 진행함 키가 노출되면 매우 위험하지만 연산 속도가 빠름

  • 비대칭키 암호화

1개의 쌍으로 구성된 공개키와 개인키를 암호화/복호화 하는데 사용함 키가 노출되어도 비교적 안전하지만 연산 속도가 느림

  • CA(Certificate Authority)

해덩 서버에서 뿌린 공개키가 맞는지 인증해주는 역할을 하는 공인된 민간기업들을 의미함. CA는 아무회사나 할 수 있는 것이 아니며 엄격한 인증과정을 거쳐야한다. 브라우저에는 이 CA들의 목록이 내장되어 있다.

과정

HTTPS는 대칭키 암호화 방식과 비대칭키 암호화 방식을 모두 사용하고 있습니다.

일단 클라이언트 입장에서 네이버 서버와 데이터를 주고받는다고 생각해보겠습니다.
클라이언트는 아직 네이버 서버를 신뢰할 수 없습니다. 그래서 서로 탐색하는 과정(handshake)을 실시합니다. 먼저 클라이언트에서 한 랜덤 데이터를 생성해서 네이버 서버에 보냅니다. 그러면 그것을 받은 네이버 서버도 역시 랜덤데이터를 생성해서 해당 서버의 인증서와 함께 다시 클라이언트로 보내어 응답합니다. handshake를 한것이죠.

그다음 클라이언트는 받은 인증서가 진짜인지 브라우저에 내장된 CA들의 정보를 보고 확인합니다. CA의 인증을 받은 인증서들은 해당 CA의 개인키로 암호화되있는데, 인증서가 진짜라면 브라우저에 저장된 CA의 공개키로 복호화하여 풀 수 있습니다. 만약 CA 정보들 중에 받은 인증서에 해당하는 것이 없으면 브라우저 주소창에 “Not secure”와 같은 경고가 뜨게 됩니다. 그래서 CA의 공개키로 복호화를 성공으로 마친 인증서에는 네이버 서버의 공개키가 들어있습니다.

이전에 handshake를 통해서 생성된 두 랜덤데이터를 혼합해서 임시키를 만들고 이 임시키를, 복호화한 인증서 안에 있는 네이버 서버의 공개키로 암호화해서 네이버 서버에 보냅니다. 그러면 양쪽에서 일련의 과정을 거쳐 동일한 대칭키가 만들어집니다. 만들어진 대칭키는 해당 네이버서버와 클라이언트만 가지고 있게 됩니다. 따라서 이 둘만 대칭키를 가지고 있기 때문에 제 3자가 중간에 알아볼 수 없습니다.

HTTPS의 장점

  1. 암호화가 적용되어 HTTP보다 보안이 좋다.
  2. HTTPS가 HTTP보다 더 안전하다고 판단하기 때문에 HTTPS가 더 검색결과표시에 유리하다.



End.