JAVA/Spring

HTTP 와 HTTPS 알아보기

chan20 2020. 8. 17. 16:01

Spring 개발자로서 우리는 주로 Http 통신을 하겠지만 나중에는 https 통신을 주로 쓸 것이다. 그러므로 http와 https 가 어떻게 돌아가는지 알아야 된다고 생각이 든다.  

그래서 http, https 가 뭔지 알아 보도록 한다.

HTTP, HTTPS 란 ?

우리는 주소창에 HTTP와 HTTPS를 주로 볼 수가 있다. 그렇지만 이게 무슨 역할을 하는지 모르는 사람이 매우 많다.일단 HTTP(HyperText Tranfer Protocol)란 무엇일까?

WWW(world wide web)에서 서로 다른 시스템의 사이에서 통신 정보를 주고받는 프로토콜이며 즉 서버와 웹과 자원을 주고받을 때 쓰는 프로토콜이다

하지만 이런 HTTP의 프로토콜 자체는 단순 텍스트 형태로 보낸다고 한다. 그래서 해커들이 마음만 먹으면 충분히 도중에 가로채 내용이 노출될 확률이 높다.그래서 등장한 것이 HTTPS이다

HTTPS(HyperText Transfer Protocol Secure)는 무엇일까???

HTTP의 보안 문제를 해결해주기 위해 탄생한 것이 HTTPS라고 일반적으로 말한다.  S가 Secure Socket Layer을 뜻하는데 그래서 SSL 이라고 한다.SSL은 서버와 브라우저 사이에 안전하게 암호화된 연결을 만들 수 있게 도와줘서, 정보를 주고받을 때 가로채는 것을 막아준다고 한다.

CA (Certificate Authority)

디지털 인증서를 제공하는 공인 기업이다.

(깨알 팁인데 https라는 통신을 한다면 인증된 서버기 때문에 사기와는 먼 기업이라 보면 된다.  대체적으로 그렇다)

HTTP 구조는 다음과 같다.

HTTPS에서 SSL 통신

이 부분은 디지털 서명 동작 방식인데 SSL 인증서 서비스의 방법으로 활용이 된다고 한다.

데이터를 해쉬 알고리즘을 통하여 전자 서명을 만들고 서버 쪽에서 hash 알고리즘과 공개 key를 처리를 했을 때 같은지 안 같은지 확인해주는 것이 SSL이다.

SSL 말고 TLS 란 뭘까..?

HTTPS를 보안하는 것 중 SSL 상위 버전이라고 하는데 TLS..

TLS (Transport Layer Security) 통신 층 보안이라고 약자로 써져 있다.

TLS는 HMAC을 방법을 사용한다고 한다. 나중에 OAuth 부분에서 자세히 학습해야 될 부분 같다.