Computer Science
HTTP와 HTTPS
sxxk2
2022. 7. 9. 19:22
HTTP와 HTTPS의 차이
- HTTP (HyperText Transfer Protocol)
- 서버/클라이언트 모델을 따라 데이터를 주고 받기 위한 프로토콜(규약)이다.
클라이언트인 웹 브라우저가 서버에 HTTP를 통해 웹페이지나 이미지 정보를 요청하면 서버는 이 요청에 응답하여 요구하는 정보를 제공하게 된다. - HTTPS (HTTP + over Secure Socket Layer)
- 인터넷 상에서 정보를 암호화하는 SSL(Secure Socket Layer)프로토콜을 이용하여 웹브라우저(클라이언트)와 서버가 데이터를 주고 받는 통신 규약이다.
HTTP 프로토콜의 위험성
HTTP 프로토콜에서 로그인을 하면 로그인 정보를 웹 서버로 전송하게 되며 웹서버는 해당 내용을 검증하여 로그인 성공, 실패 여부를 클라이언트에게 알려주게 되면서 로그인 가능 여부를 알려줍니다.
하지만 해당 로그인 정보는 암호화가 되지 않았기 때문에 해커가 중간에 데이터 하이재킹(가로채기)을 시도하면 누구나 쉽게 아이디, 비밀번호와 같은 정보를 탈취할 수 있게 됩니다.
HTTPS의 보안
기존의 HTTP 프로토콜은 전송계층의 TCP위에서 동작합니다. 여기서 SSL(Secure Sockets Layer)이라는 보안계층이 전송계층 위에 올라갑니다. HTTPS는 SSL 위에 HTTP를 얹어서(over) 보안이 보장된 통신을 한다.
이 통신 방식을 SSL 암호화 통신 이라고도 합니다. SSL 암호화 통신은 공개키 암호화 방식이라는 알고리즘을 통해 구현됩니다.
로그인 요청시 데이터를 암호화를 하여 서버로 전송하게 되며, 서버는 복호화를 하지 않고 암호화된 내용을 기반으로 해쉬(Hash) 값 비교로 로그인 가능 여부를 클라이언트에게 알려주는 것이다.
즉 중간에 해커가 가로채더라도 알 수 없는 암호화된 데이터로 인해 해독이 가능하더라도 그렇게까지 복호화를 시도하면서 탈취하는 것은 불가능에 가깝습니다.
암호화의 전송을 이해하는데 필요한 개념들
암호화(Encode): 어떤 정보를 암호화된 정보로 바꾸는 것
복호화(Decode): 암호화된 정보를 암호화를 풀어 다시 원래 정보로 바꾸는 것
키(Key): 암호화, 복호화시 사용하는 열쇠(비밀번호)
HTTPS는 공통 키 방식과 비대칭 키 방식을 같이 사용합니다.
- 대칭 키 방식암호화할 때와 복호화할 때 같은 키를 사용하는 방식입니다.
- 장점: 단순한 구조로 CPU를 적게 쓰고 빠르다.
- 단점: 공통 키를 빼앗기면 복호화를 할 수 있으므로 보안에 취약하다는 단점이 있다.
- 비대칭 키 방식암호화,복호화시 각각 다른 키를 사용하는 방식이다.
클라이언트는 공통 키를, 서버는 인증서와 공개 키를 제공하며
클라이언트는 서버가 제공한 공개 키를 통해 공통 키를 암호화하여 서버에게 전송합니다.
서버는 수신한 HTTPS의 인증서와 공개 키 일치를 바탕으로 공통 키를 복호해 요청에 대응합니다. - 장점: 키 전송과정 중 빼앗겨도(해킹 당해도) 빼앗은 자(해커)가 해독을 할 수 없으니 공통 키 방식보다 보다 안전합니다.
- 단점: 공통 키 방식보다 느리고 리소스 소비가 큽니다.