HTTP
HTTP는 (Hypertext Transfer Protocol)는
클라이언트와 서버 간 HTML과 같은 하이퍼미디어 문서를 전송하기 위한 통신 규약이다.
사용자가 웹 사이트를 방문하면
브라우저가 웹 서버에 HTTP 요청을 전송하고 웹 서버는 HTTP 응답으로 응답한다.
즉, HTTP는 웹에서 이루어지는 모든 데이터 교환의 기초이며, 클라이언트-서버 프로토콜인 것이다.
HTTP가 진화하면서, 하이퍼텍스트 문서뿐만 아니라
이미지, 비디오, HTML 폼 결과와 같은 내용을 서버로 POST하거나,
필요할 때마다 웹 페이지를 갱신하기 위해 문서의 일부를 가져올 수도 있게 되었다.
HTTPS
HTTP 는 3가지 큰 문제가 있는데 그 문제점을 보완하고
데이터 암호화를 추가하여 나온 프로토콜이 HTTPS다.
먼저 HTTP의 문제점을 알아보자.
- 보안 취약성 : HTTP는 데이터를 암호화하지 않고 평문으로 전송한다.
이 것은 중간에 제3자가 네트워크 상에서 데이터를 훔쳐볼 수 있으며,
개인 정보나 민감한 데이터가 노출될 수 있다 - 무결성 문제 : HTTP는 데이터의 무결성을 보장하지 않는다.
데이터가 전송 중에 변경되거나 조작될 수 있으며, 이로 인해 정보의 정확성이 보장되지 않는다. - 신원 보증의 부재 : HTTP는 서버의 신원을 확인하는 기능이 없다.
중간에 제3자가 서버를 위장하여 클라이언트와 통신할 수 있으며, 사이버 공격의 가능성이 높아진다.
HTTPS 특징
HTTPS는 하이퍼 텍스트 전송 프로토콜 보안으로 표준 HTTP와 동일한 방식으로 작동한다.
서버와 주고받는 데이터가 암호화되기 때문에 웹사이트에 추가적인 보호를 제공한다.
즉, 개인 데이터를 훔치거나 해킹하거나 볼 수 없도록 작동한다.
위 HTTP의 문제점을 보완하여 나왔다고 하였고 S의 의미가 Secure인 만큼 보안 강화가 주 역할이다.
HTTP 문제점 보완
- 보안 취약성 해결 : HTTPS는 SSL/TLS 프로토콜을 사용하여 데이터 암호화를 제공한다.
클라이언트와 서버 간의 통신은 대칭키를 사용한 암호화 방식으로 이루어지며,
중간에 제3자가 데이터를 엿볼 수 없도록 강화된다. - 무결성 보장 : HTTPS는 데이터의 무결성을 보장하기 위해 메시지 다이제스트를 사용한다.
데이터를 전송할 때 각 데이터 블록에 대한 다이제스트 값을 생성하고,
이를 서버에서 검증하여 데이터 변조 여부를 확인한다.
이를 통해 데이터가 전송 중에 변경되지 않았는지를 확인하고 데이터의 무결성을 보장한다. - 신원 보증 : HTTPS는 인증 기관에 의해 발급된 서버 인증서를 사용하여 서버의 신원을 확인한다.
클라이언트는 서버의 인정서를 검증하고, 서버의 공개키를 획득하여 안전한 통신을 위한 대칭키 교환에 사용한다.
이를 통해 제3자가 서버를 위장하거나 조작하는 것을 방지하고, 신뢰할 수 있는 서버와의 통신을 보장한다.
인증 기관이란
공인된 기관으로서 디지털 인증서를 발급하는 기업이다.
인증 기관은 공개 키 인프라 시스템의 핵심 구성 요소 중 하나이다.
인증 기관은 인증서 발급, 관리, 신원 확인 등의 역할을 수행한다.
SSL/TLS
SSL (Secure Sockets Layer)과 TLS (Transport Layer Security)은
네트워크 통신에서 데이터의 보안 및 기밀성을 제공하기 위한 프로토콜이다.
SSL은 초기 버전이며, TLS는 SSL의 후속 버전이지만 일반적으로 "SSL/TLS"라는 용어로 함께 언급되거나
특별하게 구분하지 않고 SSL이라고 말하기도 한다.
브라우저는 이 인증서를 수신 및 해석하고 진위 여부를 확인한다.
확인이 완료되면 보안 연결을 통해 전송된 모든 데이터가 암호화된다.
'CS > 네트워크' 카테고리의 다른 글
유니캐스트, 브로드캐스트, 멀티캐스트 (0) | 2024.06.03 |
---|---|
3-Way HandShake & 4-Way HandShake (0) | 2024.06.03 |
TCP & UDP (0) | 2024.05.29 |
OSI 7계층 (0) | 2024.05.27 |
네트워크 기초 (1) | 2024.05.23 |