
알고있으면 좋은 Computer Science Tip✨
HTTP란 무엇인가?
- HTTP(Hyper Text Transfer Protocol)란 서버/클라이언트 모델을 따라 데이터를 주고 받기 위한 프로토콜이다. 즉, HTTP는 인터넷에서 하이퍼텍스트를 교환하기 위한 통신 규약으로, 80번 포트를 사용하고 있다. 따라서 HTTP 서버가 80번 포트에서 요청을 기다리고 있으며, 클라이언트는 80번 포트로 요청을 보내게 된다.
(1) HTTP의 구조
- HTTP는 애플리케이션 레벨의 프로토콜이기 때문에 TCP/IP 위에서 동작한다. HTTP는 상태를 가지지 않은 Stateless 프로토콜이며 Method, Path, Version, Headers, Body 등으로 구성된다.
- 하지만 HTTP는 암호화가 되지 않은 평문 데이터를 전송하는 프로토콜이였기 때문에, HTTP로 비밀번호나 주민등록번호 등을 주고 받으면 제3자가 정보를 조회할 수 있었다. 그리고 이러한 문제를 해결하기 위해 HTTPS가 등장하게 되었다.
HTTPS란 무엇인가?
- HTTPS는 HTTP에 데이터 암호화가 추가된 프로토콜이다. HTTPS는 HTTP와 다르게 443번 포트를 사용하며, 네트워크 상에서 중간에 제3자가 정보를 볼 수 없도록 암호화를 지원하고 있다.
(1) HTTPS 보안 방식
- SSL 인증서를 HTTP 프로토콜에 추가하여 만들어진 것이 HTTPS이며, SSL 인증서는 사용자가 사이트에 제공하는 정보를 암호화하는데 이용된다. 따라서 제 3자가 데이터를 훔쳐낸다고 하더라도 데이터가 암호화처리 되어 있기 때문에 해독을 할 수 없어 데이터를 읽을 수 없다.
- HTTPS는 TLS(전송 계층 보안) 프로토콜을 사용해서 보안을 유지한다. TLS는 데이터 무결성을 보장해서 데이터가 전송 중에 수정되거나 손상되는 것을 방지하며 사용자가 접속하려는 웹사이트와 통신하고 있음을 증명할 수 있는 인증 기능도 가지고 있다.
(2) 대칭키 암호화와 비대칭키 암호화
- 대칭키 암호화
- 클라이언트와 서버가 동일한 키를 사용해 암호화/복호화를 진행한다.
- 키가 노출되면 매우 위험하지만 연산 속도가 빠르다.
- 비대칭키 암호화
- 1개의 쌍으로 구성된 공개키와 개인키를 암호화/복호화 하는데 사용한다.
- 키가 노출되어도 비교적 안전하지만 연산 속도가 느리다.
(3) 비대칭키 암호화에서 공개키와 개인키
- 비대칭키 암호화에서 공개키와 개인키 암호화 방식을 이용해 데이터 암호화를 진행하며 공개키와 개인키는 서로를 위한 1쌍의 키이다.
- 공개키 : 모두에게 공개 가능한 키이다.
- 개인키 : 나만 가지고 있어야 하는 키이다.
'Study > Computer Science' 카테고리의 다른 글
| [CS] HTTP Method (0) | 2023.10.25 |
|---|---|
| [CS] TDD(Test-Driven-Development) (0) | 2023.10.25 |
| [CS] REST API (0) | 2023.10.24 |
| [CS] CORS (0) | 2023.10.23 |
| [CS] 주소창에 URL 입력 시 사용자에게 보여주기까지 과정 (0) | 2023.10.23 |