본문 바로가기

CS/보안

HTTPS와 HTTP의 차이와 SSL 디지털 인증서

반응형

웹 서핑을 하다 보면 어떤 사이트는 http:// 로 시작하고 어떤 사이트는 https:// 로 url이 시작하는 걸 자주 확인할 수 있었다. http와 https는 구체적으로 뭐가 다른지에 대해 정리해보려고 합니다. 

 

본 내용은 '생활코딩'의 내용과 제 생각을 더해서 썼다는 점 미리 말씀 드립니다. 

 

http는 Hypertext transfer Protocol의 약자로 http, https 모두 HTML을 전송한다는 점에서 동일합니다. 

 

http와 https는 이름에서도 알 수 있듯이 's' 의 차이라고 바로 예상할 수 있는데 여기서 말하는 's'는 뭘까요?

 

's'는 Over Secure Socket Layer의 약자로 Secure이라는 말에서 알 수 있듯이 보안이 더 강화된 http입니다. 

 

저는 이부분에서 궁금했던 점이 "https가 http의 보안을 강화했다는 점에서 차이가 있다면 http는 어떤 보안상의 이슈가 있을까?"였습니다. 

 

먼저 http는 프로토콜 방식은 보내는 데이터를 암호화 하지 않기 때문에 악의적인 목적을 가진 제삼자가 그 내용을 도청이 가능합니다. 

 

예를 들어 대부분의 사람들이 자신의 아이디와 비밀번호를 여러 사이트에 동일하게 입력하는 경향이 있다고 가정해 봅시다. 그런 사람들이 특정 사이트에 로그인할 때 '아이디와 비밀번호'를 입력하는 과정에서 정보가 노출된다면, 이는 여러 사이트에 그 사람의 정보를 해킹하게 되는 비극적인 일이 발생할 것입니다. http는 이런 치명적인 상황을 막아줄 보안 장치가 부족하기 때문에 https가 등장하게 되었습니다. 

 

저는 이제 https가 필요한 이유에 대해 이해했습니다. 그 다음으로 궁금한 점은 '그럼 https는 어떻게 보안상의 문제를 해결했지?'라는 점이었습니다. 

 

이 '어떻게'를 해결할 수 있는 방법론이 'SSL'입니다. 

 

 

위의 그림은 HTTP와 HTTPS의 계층 구조를 간단히 설명한 그림입니다.  여기서 주의 깊게 볼 부분은 SSL가 HTTP 아래에 있다는 점입니다. 이는 HTTPS가 SSL 프로토콜 위에서 동작하는 것을 의미하는데 간단한 예를 들면 인터넷 위에서 웹이 동작하는 것과 같은 개념입니다. 

 

HTTPS는 모든 HTTP 요청과 응답 데이터가 네트워크로 보내지기 전에 SSL 계층을 통해 암호화 됩니다. 

 

저는 꼬리에 꼬리를 무는걸 좋아하기 때문에 이번 질문은 '그럼 정보를 어떻게 암호화하는 거지?'라는 의문이 들었습니다. 

 

생활 코딩에서는 가장 대표적인 방법으로 '대칭키 - SSL 디지털 인증서' 를 예로 들었습니다. 암호화의 종류는 다양하지만 여기서 예를 든 내용을 제가 이해한 방식으로 정리해 보겠습니다. 

 

'SSL 디지털 인증서' 란 비유하자면 '두 사람이 계약서를 작성하는 과정에서 거래와 관련한 증거를 보전하고 권리 실행을 쉽게 하기 위해 "공증인"을 두는 것'과 똑같은 원리입니다.

 

즉, SSL 디지털 인증서는 클라이언트와 서버 간의 통신을 제3 자가 보증해주는 전자화된 문서입니다.

 

SSL 디지털 인증서를 이용했을 때 생기는 이점은 3가지로 정리할 수 있습니다. 

 

1. 통신 내용이 공격자에게 노출되는 것을 막을 수 있다. 

2. 클라이언트가 접속하려는 서버가 신뢰할 수 있는 서버인지를 판단할 수 있다. 

3. 통신 내용의 악의적인 변경을 방지할 수 있다. 

 

이번 글에서는 1번 내용에 대해 자세하게 알아보고 다음 글에서 이어서 내용을 정리하도록 하겠습니다. 

 

예를 들어 "love'라는 정보를 'mpwf'로 암호화했다고 가정해 봅시다. 이 데이터는 원본 알파벳의 다음 글자로 변환한 암호화입니다.

 

여기서 암호화와 복호화의 기준이 되는 데이터를 '키'라고 합니다. 즉, '키'가 있어야만 암호화, 복호화가 가능합니다.

 

이러한 암호화 기법을 '대칭키' 방식이라고 합니다. '대칭키' 방식을 통해 정보를 암호화하여 통신 내용이 공격자에게 노출되는 것을 막을 수 있게 되는 겁니다.  

 

하지만 대칭키 방식도 치명적인 단점이 존재하는데 데이터를 받는 사람에게 '키'를 보내야 한다는 것입니다. 이는 보내는 과정에서 만약 키가 노출된다면 암호화된 정보가 복호화가 가능하게 된다는 점에서 치명적인 단점이 존재합니다. 

 

다음 글에서 이 단점을 어떻게 해결하는지와 SSL 디지털 인증서의 다른 장점들을 세부적으로 정리해보겠습니다.

반응형

'CS > 보안' 카테고리의 다른 글

XSS (Cross-Site-Scripting)  (0) 2022.03.24
공개키와 비공개키  (0) 2022.02.24