http와 https의 차이점?
http와 https의 차이점?
Http에 대해서 먼저 알아보자면,
HTTP는 Hyper Text Transfer Protocol의 줄임말로서
서버와 클라이언트간에 데이터를 주고받는 Protocol입니다.
HTTP는 텍스트, 이미지, 영상 JSON 등
거의 모든 형태의 데이터를 전송할 수 있습니다.
그렇다면, HTTP를 사용하여 데이터를 전송할 때
보안상의 문제는 없을까? 라고 물어본다면 답은 NO 입니다.
HTTP 통신은 클라이언트와 서버간의 통신에 있어서 별다른 보안 조치가 없기 때문에
만약 누군가 네트워크 신호를 가로챈다면 HTTP의 내용은
그대로 외부에 노출됩니다. 만약 고객의 개인정보나 비밀이 오고 가는데
HTTP가 가지고 있는 보안적 허점 때문에 큰 문제가 발생할 수도 있는 것입니다.
그래서 등장한 것이 HTTPS 입니다.
Hyper Text Transfer Protocl over Secure layer
HTTPS의 약자인데 HTTP에 Secure(안전한)이 추가되었습니다.
말 그대로, HTTP에 데이터 암호화가 추가된 Protocol입니다.
HTTS는 HTTP와 다르게 443번 포트를 사용하며, 네트워크 상에서
중간에 제3자가 정보를 볼 수 없도록 암호화를 지원합니다.
HTTPS는 대칭키 암호화 방식과 비대칭키 암호화 방식을 모두 사용한다.
이 두 방식을 모두 사용하여 빠른 연산 속도와 안정성을 모두 얻고 있습니다.
HTTPS 연결 과정은 서버와 클라이언트 간에 세션키를 교환한다.
여기서 세션키는 주고 받는 데이터를 암호화하기 위해 사용되는 대칭키이며,
데이터 간의 교환에는 빠른 연산 속도가 필요하므로 세션키는 대칭키로 만들어지게 됩니다.
세션키를 클라이언트와 서버가 어떻게 교환할 것이냐인데, 이 과정에서 비대칭키가 사용됩니다.
즉, 처음 연결을 성립하기 위해서 안전하게 세션키를 공유하고자
비대칭키를 사용하는 것이고, 이후에 데이터를 교환하는 과정에서 연산 속도를 높이기 위해서 대칭키가 사용됩니다.
이러한 과정을 HTTPS가 거치기 때문에, 안전하게 데이터를 주고받을 수 있지만
HTTP는 암호화가 추가되지 않았기 때문에 보안상의 생길 수 있습니다.
하지만 HTTPS를 사용하면 암호화와 복호화 과정을 거쳐야 하므로,
HTTP보다 속도가 느립니다.
하지만, 이런 단점도 오늘날에는 인터넷 속도가 발전함에 따라
거의 차이가 없다고 할 수 있습니다.
결론적으로, 개인정보와 같은 민감한 데이터를 주고 받아야 한다면 HTTPS를
사용해야 하지만, 아닐때에는 HTTP를 사용하면 됩니다.