2022. 12. 28. 19:37ㆍCS
HTTPS란?

HTTPS(Hypertext Transfer Protocol Secure)는 인터넷을 통해 데이터를 전송하는 데 사용되는 HTTP(Hypertext Transfer Protocol)의 보안 버전이다.
HTTPS는 중간자 공격, 데이터 스누핑 및 기타 유형의 사이버 위협으로부터 보호하기 위해 추가 보안 계층을 제공한다. 이 글에서는 HTTPS가 HTTP보다 어떻게 안전한지, 그리고 가능한 HTTPS를 사용하는 것이 중요한 이유와 주요 이점에 대해 알아보자.
HTTPS와 HTTP의 차이
HTTPS와 HTTP의 주요 차이점 중 하나는 HTTPS가 웹 서버와 클라이언트 간에 전송되는 데이터를 암호화한다는 것이다. 이는 로그인 자격 증명, 신용 카드 번호 또는 개인 정보와 같이 HTTPS를 통해 전송되는 모든 정보를 제삼자가 가로채서 읽을 수 없음을 의미한다. 반면, HTTP는 이러한 수준의 보안을 제공하지 않으며 HTTP를 통해 전송되는 데이터는 관련 지식을 가진 사람이라면 누구나 쉽게 가로채서 읽을 수 있다.
HTTPS의 데이터 암호화
HTTPS는 웹 서버와 클라이언트(예: 웹 브라우저) 간에 암호화된 연결을 설정하여 작동한다. 클라이언트가 HTTPS를 사용하여 웹 사이트에 연결하면 다음과 같은 단계가 수행된다.
- 클라이언트는 보안 연결을 설정하기 위해 서버에 요청을 보낸다.
- 서버는 SSL(Secure Sockets Layer) 또는 TLS(Transport Layer Security) 인증서 사본을 클라이언트에 전송하여 응답한다.
- 클라이언트는 인증서가 유효하고 신뢰할 수 있는 인증 기관(CA)에서 발급되었는지 확인한다. 인증 기관은 웹 사이트 및 기타 엔터티의 ID를 확인하기 위해 디지털 인증서를 발급하는 조직이다.
- 인증서가 유효한 경우 클라이언트는 클라이언트와 서버 간에 전송되는 모든 데이터를 암호화하는 데 사용되는 고유한 세션 키를 생성한다. 그런 다음 세션 키는 SSL/TLS 인증서에 포함된 서버의 공개 키를 사용하여 암호화된다.
- 암호화된 세션 키는 서버가 개인 키를 사용하여 키를 해독하도록 요청하는 메시지와 함께 서버로 다시 전송된다.
- 서버는 개인 키를 사용하여 세션 키를 해독하고 키가 성공적으로 해독되었음을 확인하는 메시지를 클라이언트에 다시 보낸다.
- 이때부터 클라이언트와 서버 간에 전송되는 모든 데이터는 세션 키를 사용하여 암호화된다. 이렇게 하면 데이터가 안전하고 제삼자가 가로채거나 읽을 수 없다.
HTTPS의 또 다른 주요 이점
HTTPS는 데이터 암호화 외에도 방문 중인 웹사이트의 ID도 인증한다. 클라이언트가 HTTPS를 사용하여 웹 사이트에 연결하면 서버는 웹 사이트 및 이를 발급한 인증 기관에 대한 정보가 포함된 디지털 인증서를 클라이언트에 제공한다. 그런 다음 클라이언트는 인증서가 유효하고 신뢰할 수 있는 CA에서 발급되었는지 확인한다. 이렇게 하면 해커가 개인 정보를 훔치기 위해 합법적인 웹 사이트를 모방하는 피싱 공격 및 기타 유형의 사이버 위협을 방지하는데 도움이 된다.
또한 HTTPS는 암호화 해시를 사용하여 변경 또는 변조를 확인함으로써 전송되는 데이터의 무결성을 보장한다. 즉, 누군가 전송 중인 데이터를 수정하려고 시도하면 감지되어 연결이 종료된다.
이러한 보안 이점 외에도 HTTPS는 HTTP에 비해 성능 이점도 제공한다. HTTPS에는 추가 암호화 계층이 필요하기 때문에 일반적으로 HTTP보다 느리다. 그러나 최근 암호화 기술의 개선으로 인해 HTTPS가 과거보다 훨씬 빨라졌으며 이제 HTTPS와 HTTP 간의 성능 차이가 최소화되었다.'

전반적으로 HTTPS는 HTTP보다 훨씬 안전한 옵션이며 개인 정보를 보호하고 사이버 공격을 방지하기 위해 가능하면 HTTPS를 사용하는 것이 중요하다. 웹사이트에서 HTTPS를 사용하는지 확실하지 않은 경우 웹사이트 주소를 통해 확인할 수 있다. HTTPS를 사용하는 웹사이트에는 일반적으로 "http://"가 아닌 "https://"로 시작하는 URL이 있다. 웹 브라우저의 주소 표시줄에서 웹 사이트가 HTTPS를 사용하고 있음을 나타내는 자물쇠 아이콘을 찾아볼 수도 있다.
'CS' 카테고리의 다른 글
Base64 인코딩이란? (0) | 2022.12.30 |
---|---|
TCP vs UDP & TCP 3-way handshake (0) | 2022.12.29 |
Clean Code 작성하기 - 관심사 분리 (0) | 2022.11.01 |
[네트워크] OSI 7 계층 - 기본 개념 정리 (0) | 2022.09.24 |
컴퓨터 구조 - 기억장치와 입출력 장치 (0) | 2022.09.22 |