-
HTTP와 HTTPS의 차이점과 보안 메커니즘 이해하기아무거나 찌끄리기 2024. 8. 28. 17:42
- HTTPS란?
HTTP와 HTTPS는 웹에서 데이터를 전송할 때 사용하는 프로토콜입니다. HTTPS는 HTTP의 보안 버전으로, 데이터 전송 과정에서의 보안을 강화한다.
기본 개념
- HTTPS는 Hypertext Transfer Protocol Secure의 약자로, HTTP에 SSL/TLS(Secure Sockets Layer/Transport Layer Security) 프로토콜을 추가하여 보안을 강화한 버전이다. SSL은 이전의 보안 프로토콜이며, 현재는 TLS가 널리 사용된다.
- HTTPS는 데이터를 암호화하여 안전하게 전송함으로써 인터넷에서의 통신의 기밀성과 무결성을 보호한다.
필요성
- 기밀성: HTTPS는 데이터가 암호화되어 전송되기 때문에, 중간에서 데이터를 가로채더라도 내용을 읽을 수 없다.
- 무결성: 데이터가 전송 중에 수정되거나 변조되는 것을 방지한다.
- 인증: 서버의 신원을 검증하여 사용자가 신뢰할 수 있는 서버와 통신하고 있는지 확인할 수 있다.
- 암호화 방식
대칭키 암호화 (Symmetric Key Encryption)
- 정의: 대칭키 암호화는 암호화와 복호화에 동일한 키를 사용하는 방식이다.
- 특징:
- 속도: 암호화와 복호화가 빠르다.
- 키 관리: 키를 안전하게 교환하고 관리하는 것이 중요하다.
- 예시: AES (Advanced Encryption Standard), DES (Data Encryption Standard)
비대칭키 암호화 (Asymmetric Key Encryption)
- 정의: 비대칭키 암호화는 서로 다른 두 개의 키를 사용하는 방식이다. 하나는 공개 키(암호화용)이고, 다른 하나는 개인 키(복호화용)이다.
- 특징:
- 속도: 대칭키 암호화보다 상대적으로 느리다.
- 키 관리: 공개 키는 공개적으로 배포되지만, 개인 키는 비밀로 유지된다.
- 예시: RSA (Rivest–Shamir–Adleman), ECC (Elliptic Curve Cryptography
- HTTP와 HTTPS의 차이점
특징 HTTP HTTPS 전송 방식 데이터가 암호화되지 않고 평문으로 전송된다. 데이터가 암호화되어 전송된다. 포트 번호 기본 포트: 80 기본 포트: 443 보안 보안이 없다. 데이터가 전송 중에 노출될 수 있다. SSL/TLS를 사용하여 보안이 강화된다. 인증 인증이 없다. 서버의 신원을 확인할 수 없다. 서버의 인증서로 서버의 신원을 확인한다. 데이터 무결성 데이터가 전송 중에 변조될 수 있다. 데이터 무결성을 검증하여 변조를 방지한다. 속도 속도가 빠를 수 있으나 보안이 부족하다. 암호화로 인해 속도가 약간 느릴 수 있지만 보안이 강화된다. HTTPS가 제공하는 보안 장점
- 암호화: HTTPS는 SSL/TLS를 통해 데이터 전송 과정에서 기밀성을 제공한다. 데이터가 암호화되어 중간에서 데이터가 노출되거나 가로채더라도 내용을 이해할 수 없다.
- 인증: HTTPS는 디지털 인증서를 사용하여 서버의 신원을 확인한다. 사용자는 인증서의 유효성을 검사하여 신뢰할 수 있는 서버와 통신하고 있는지 확인할 수 있다.
- 데이터 무결성: 데이터가 전송 중에 변조되는 것을 방지한다. SSL/TLS는 해시 함수를 사용하여 데이터의 무결성을 검증한다.
- 피싱 방지: HTTPS는 웹사이트가 실제로 소유한 도메인과 연결되었음을 보장하여 피싱 공격을 방지한다.
요약
- HTTP는 보안 기능이 없는 기본적인 데이터 전송 프로토콜이다.
- HTTPS는 SSL/TLS를 통해 데이터를 암호화하고, 서버의 신원을 인증하여 데이터의 기밀성과 무결성을 보장한다.
- 대칭키 암호화는 빠르고 동일한 키로 암호화와 복호화를 수행하며, 비대칭키 암호화는 공개 키와 개인 키를 사용하여 보안을 강화한다.
이러한 차이점과 보안 메커니즘을 이해함으로써, 네트워크 통신의 보안을 보다 잘 관리하고, 안전한 웹 사용을 할 수 있다.
'아무거나 찌끄리기' 카테고리의 다른 글
OAuth2.0의 개념 (0) 2024.09.04 CORS와 SOP의 개념 및 구현 방법 이해하기 (0) 2024.08.28 네트워크의 기본 구조와 개념 이해하기 (0) 2024.08.28 Next.js (0) 2024.08.21 Redux Toolkit (0) 2024.08.12