cs/네트워크

HTTPS란?

kivv00ng 2022. 12. 18. 16:47

구성:

  •  HTTP란?
  •  HTTPS란?
  •  SSL/TLS
  •  대칭키 암호화 방식 vs 공개키 암호화 방식
  •  SSL/TLS 통신 과정
  •  SSL인증서

HTTP란?

 HyperText Transfer Protocal의 약자로, 서버와 클라이언트 사이에서 데이터를 주고받는 프로토콜이다.

(웹이 초기에는 정보 공유를 목적으로 한 시스템이었기 때문에 통신 경로에서 정보를 감출 필요가 없었다.

그러나 웹을 이용하는 범위가 확대되면서 입력된 데이터를 암호화하여 정보 기밀성을 확보할 필요성이 생겼다.

그래서 나온 것이 HTTPS이다.)

HTTPS란?

HyperText Transfer Protocal Secure의 약자로, HTTP에 보안을 위해 SSL/TLS를 추가한 프로토콜이다.

그렇다면 SSL과 TLS는 무엇일까?

SSL/TLS

SSL(Secure Sockets Layer)과 TLS(Transport Layers SEcurity)는 인터넷에서 통신을 암호화하여 제삼자가가 통신 내용을 훔쳐보거나 조작할 수 없게하는 기술을 말한다.

SSL은 넷스케이프가 개발한 프로토콜이고, TLS는 SSL을 계승하여 IETF라는 표준화 조직의 TLS워킹 그룹에서 책정한 프로토콜이라고한다..(흠.. 아무튼 개선되었거나 수정된 버전이란 거군!)현재 사용되는 것은 SSL이 아닌 TLS이므로 TLS라고만 표기해도 되지만,

여전히 SSL의 지명도가 어느 정도 있기 때문에 SSL/TLS로 병기하거나 그냥 SSL이라고 하는경우도 많다.

이러한 SSL/TLS는 공개키방식과 대칭키 방식을  혼합해서 사용한다.

대칭키 암호화 방식 vs 공개키 암호화 방식

대칭키 암호화 방식: 암호화와 복호화에 같은키(대칭 키)를 이용하는 방식이다. 그림으로 표현하면 다음과 같다.

 

공개키 암호화 방식: 암호화와 복호화에 별도의 키를 사용하는 방식이다. 암호화에 사용하는 것이 공개키,

복호화에 사용하는 것은 비밀 키라고 한다. 그림으로 표현하면 다음과 같다.

 

SSL/TLS 통신 과정

이를바탕으로 SSL/TLS의 통신 흐름은 다음과 같다.

SSL인증서

SSL/TLS를 웹 사이트에서 이용하려면 SSL인증서가 필요합니다.

SSL인증서란 인증기관(CA, Certification Authority)이라는 신뢰할 수있는 제삼자 기관이 이용자(도메인 소유자)에게 발행하는 것이다.

 

그렇다면 이러한 인증서를 가지고 어떻게 위의 과정을 수행할까? 아래 그림을 살펴보자.

 

 

 

 

*RSA 암호: 공개키 암호화 시스템중 하나로, 암호화뿐만 아니라 전자서명(인증)이 가능한 최초의 알고리즘.

-공개키(암호화) -> 비밀키(복호화) : 암호화 기능

-비밀키(암호화) -> 공개키(복호화) : 전자서명(인증) 기능
(특정 정보를 공개키로 복호화가 가능하다는 것은, 해당 정보를 암호화 할 수있는 것은 인증기관의 비밀키뿐이므로 해당 사이트를 신뢰가능)

 

 

ps.추가로  HTTPS 사용이유에는 위의 내용처럼 보안성문제도 존재하지만, SEO(Seach Engine Optimization)도 존재한다.

SEO란 웹사이트가  검색결과에서 좀더 상위에 표시되게 하는 일련의 대책을 말한다.

오늘 날 검색엔진의 대표인 구글이 상시 SSL화를 검색결과의 평가 기준중 하나로 삼고 있기에 HTTPS를 사용하는 것이 검색엔진면에서

이점이 될 수도 있겠다.

 

참고 자료

-도서 한권으로 끝내는 네트워크 기초(오키타 토시야) ... =굉장히 추천!

-생활 코딩 인증서의 동작방법 https://www.youtube.com/watch?v=jbFpGz7MV5Y&t=170s

 (책에는 인증서 부분이 간략하게 나와 해당 부분을 참고했다)