CS

HTTP & HTTPS

seo dori 2023. 7. 25. 10:48

HTTP, HTTPS는 프로토콜이다. 인터넷을 통해 데이터를 주고받는

둘의 큰 차이점은 전송하는 데이터의 암호화이다.

 

HTTP :

데이터를 암호화 하지 않는다.

            보안 인증이 없음으로 서버의 신원을 검증하지 못함

           HTTP는 기본 stateless프로토콜이므로, 세션을 관리하기 위해 쿠키와 같은 메커니즘 필요

 

HTTPS :

데이터를 SSL/TLS프로토콜을 사용해 암호화 시킨다.

               SSL/TLS인증서 사용하여 서버의 신원을 인증

               기본 stateless이지만, 보안을 위해 쿠키와 세션에 대한 추가적인 보호기능 사용

 

 

 

SSL (Secure Sockets Layer)과 TLS (Transport Layer Security)는 암호화와 보안을 제공하는 프로토콜로, 인터넷을 통해 데이터를 안전하게 전송하는 데 사용됩니다. 이 두 프로토콜은 기능적으로 유사하며, TLS는 SSL의 후속 버전으로 보완 및 개선된 버전입니다. 따라서 일반적으로 SSL/TLS라고 하며, 웹 사이트의 보안 연결에 주로 사용됩니다.

SSL/TLS의 주요 기능

1. 데이터 암호화
2. 신원 인증
3. 무결성 보호: SSL/TLS는 데이터가 송수신 중에 변경되지 않도록 보호합니다. 데이터가 변조되지 않고 원본 그대로 전달되도록 보장합니다.
4. Perfect Forward Secrecy (PFS): TLS에서 지원하는 기능으로, 이전에 수행된 키 교환을 보안하고 새로운 키 교환을 통해 보안을 유지합니다. 이를 통해 한 번의 키가 노출되더라도 이전과 다음 통신은 보호됩니다.
5. 호환성: SSL/TLS는 다양한 암호화 알고리즘과 프로토콜을 지원하여 다양한 플랫폼과 브라우저 간에 호환성을 제공합니다.


웹 브라우저와 웹 서버 사이의 통신에서 SSL/TLS는 공개키/개인키 기반의 암호화를 사용하여 안전한 연결을 구축합니다. 클라이언트는 서버의 공개키를 사용하여 데이터를 암호화하고, 서버는 개인키를 사용하여 데이터를 해독합니다. 또한 서버의 인증서에는 서버의 정보와 공개키가 포함되어 있으며, 클라이언트는 이 인증서를 사용하여 서버의 신원을 확인합니다.

SSL/TLS는 웹 브라우저를 통해 접속하는 웹 사이트뿐만 아니라 다양한 애플리케이션과 서비스에서 보안 통신에 사용되며, 현대 인터넷 통신에서 필수적인 보안 프로토콜로 자리잡고 있습니다.

 

 

세션(Session)

웹 서버와 웹 브라우저 간에 유지되는 상태 정보를 의미합니다. HTTP 프로토콜은 기본적으로 상태를 유지하지 않는 stateless 프로토콜이므로, 클라이언트(일반적으로 웹 브라우저)가 서버에 요청을 보낼 때마다 서버는 해당 요청을 처리하고 응답을 보낸 후에도 클라이언트의 상태 정보를 유지하지 않습니다.

하지만 웹 애플리케이션은 사용자가 여러 페이지를 이동하며 로그인 상태나 이전에 수행한 작업 등을 기억해야 하는 경우가 많습니다. 이를 위해 세션은 클라이언트의 상태 정보를 서버에 저장하고, 클라이언트에게는 고유한 세션 식별자인 세션 ID를 부여하여 관리합니다.

일반적으로 세션은 다음과 같은 방식으로 작동합니다:

1. 클라이언트(웹 브라우저)가 서버에 요청을 보냅니다.
2. 서버는 클라이언트의 요청을 처리하면서 필요한 상태 정보를 세션에 저장하고, 이 세션에 고유한 세션 ID를 부여합니다.
3. 서버는 응답을 보낼 때, 해당 세션 ID를 쿠키를 통해 클라이언트에게 전달합니다.
4. 클라이언트는 이후 서버에 요청을 보낼 때, 쿠키에 담긴 세션 ID를 서버에 함께 전달하여 해당 세션의 상태 정보를 찾아 사용합니다.

이렇게 세션을 사용하면 클라이언트와 서버 간에 상태를 유지하고, 사용자별로 개별적인 경험을 제공할 수 있습니다. 세션은 보안과 개인정보 보호를 위해 암호화되거나 기타 보안 메커니즘을 적용하여 안전하게 관리됩니다. HTTPS는 세션의 암호화를 보장하고 데이터의 안전성을 확보하여 보안성을 강화하는 데에 큰 도움을 줍니다.