[Network] HTTP vs HTTPS
1. HTTP와 HTTPS란?
HTTP(Hypertext Transfer Protocol)와 HTTPS(Hypertext Transfer Protocol Secure)는 웹에서 데이터를 전송하기 위해 사용되는 프로토콜입니다. 여기서 프로토콜이란 컴퓨터나 네트워크 장비가 서로 통신하기 위한 규약을 말합니다.
2. HTTP의 특징
https://achieve-dev.tistory.com/34
HTTP에 대한 자세한 내용은 이전에 작성했던 게시글을 참고하시면 좋겠습니다!
HTTP는 웹 서버와 웹 브라우저 사이에서 정보를 주고받는 데 사용됩니다. 클라이언트가 HTTP를 통해 요청을 보내면, 서버는 그 요청에 따른 결과를 응답으로 돌려줍니다.
그러나 HTTP의 문제점은 바로 보안입니다. HTTP를 통해 전송되는 정보는 암호화되지 않아, 중간에서 데이터를 가로채는 것이 가능합니다. 이를 '중간자 공격(Man-In-The-Middle Attack)'이라고 부릅니다.
3. HTTPS의 특징
HTTPS는 기본적으로 HTTP의 보안 버전이라고 할 수 있습니다. HTTPS는 SSL(Secure Sockets Layer) 또는 TLS(Transport Layer Security) 프로토콜을 사용하여 통신을 암호화합니다.
이로 인해 HTTPS는 중간에서 데이터를 가로채더라도, 암호화되어 있어 원본 데이터를 알아볼 수 없습니다. 따라서 로그인 정보, 신용카드 정보 등과 같은 민감한 정보를 주고받는 웹 사이트에서는 HTTPS를 사용하는 것이 필수적입니다.
HTTPS에서 사용되는 암호화 방법은 크게 두 가지, 즉 대칭키 암호화와 비대칭키 암호화입니다. 이 두 가지 방법은 조합되어 사용되어, 안전하면서도 효율적인 데이터 전송을 가능하게 합니다.
3-1) 대칭키 암호화
대칭키 암호화는 동일한 키를 암호화와 복호화에 모두 사용하는 방법입니다. 이 방법은 비교적 빠르고 효율적이지만, 키를 안전하게 교환하는 것이 어렵다는 단점이 있습니다. 대칭키 암호화는 HTTPS 통신에서 실제 데이터를 암호화하고 복호화하는 데 사용됩니다.
3-2) 비대칭키 암호화
비대칭키 암호화는 두 개의 키, 즉 공개키와 개인키를 사용하는 방법입니다. 한 키로 암호화하면 다른 키로만 복호화할 수 있습니다. 이 방법은 안전하지만 대칭키 암호화에 비해 처리 속도가 느리다는 단점이 있습니다. 비대칭키 암호화는 HTTPS 통신에서 대칭키를 안전하게 교환하는 데 사용됩니다.
3-3) 대칭키+비대칭키 암호화
HTTPS 통신이 이루어질 때, 클라이언트와 서버는 먼저 비대칭키 암호화를 사용하여 안전하게 대칭키를 교환합니다. 이렇게 교환된 대칭키는 이후의 통신에서 데이터를 암호화하고 복호화하는 데 사용되며, 이 과정을 'SSL/TLS 핸드셰이크'라고 부릅니다. 이런 방식으로 HTTPS는 대칭키의 효율성과 비대칭키의 안전성을 모두 활용하게 됩니다!!
4. HTTP, HTTPS 이외의 프로토콜
- SSH(Secure Shell): 원격 컴퓨터와 안전하게 통신하고 제어하기 위한 프로토콜입니다. 네트워크를 통해 다른 컴퓨터에 로그인하거나, 파일을 안전하게 전송하는 등의 작업에 사용됩니다.
- FTP(File Transfer Protocol): 파일 전송을 위한 프로토콜로, 클라이언트와 서버 사이에서 파일을 전송할 때 주로 사용됩니다. FTP는 사용자 이름과 비밀번호를 이용해 인증을 수행하며, 파일 전송은 비암호화 상태로 이루어집니다.
- SMTP(Simple Mail Transfer Protocol): 이메일 전송을 위한 프로토콜로, 이메일 서버 사이에서 메일을 전송하거나 사용자가 메일 서버에 메일을 전송하는 데 사용됩니다. 메일 내용과 제목, 수신자 정보 등을 포함한 메시지를 전송하는데 이용됩니다.