HTTP와 HTTPS의 차이점은 무엇인지 확인해보고자 한다.
HTTP는 HyperText Transfer Protocol의 약자다. 해석하자면 HyperText를 전송하는 규약을 뜻한다. 즉, 서로 다른 시스템 간에 데이터를 주고받게 해주는 프로토콜이다. 하지만 HTTP는 데이터를 있는 그대로 전송한다. 그래서 중간에 다른 누군가 데이터를 직접 확인하고 위조, 변조를 할 수 있게 된다. 이러한 문제를 해결하기 위해 사용하는 것이 HTTPS다.
HTTPS는 HyperText Transfer Protocol Secure의 약자로 HTTP에 데이터의 보안, 인증과 무결성을 더한 프로토콜이라고 생각하면 된다. HTTPS는 중간에 데이터를 가로채어 보더라도 암호화되어 있기 때문에 데이터 식별이 불가능하게 된다. 또한, 데이터가 위조, 변조 되었는지 확인하는 것도 가능하다. 이러한 기능이 가능한 것은 SSL/TLS 덕분이다.
SSL은 Secure Socket Layer의 약자로 TLS의 전신이 된 방식입니다. Netscape가 SSL의 개발을 진행하다가 더 이상 참여하지 않게 되고, IETF가 개발을 주도하면서 TLS로 변경되었다.
TLS는 Transport Layer Security의 약자로 SSL을 이어 HTTPS에 이용되고 있는 프로토콜입니다. SSL과 TLS 용어가 혼용되어 사용되는 경우가 많아서, SSL/TLS 암호화라고도 부릅니다. 이메일이나 메세지, VoIP와 같은 커뮤니케이션 통신을 암호화하는데 사용한다.
우선 통신의 두 당사자가 신뢰할 수 있는 사람임을 체크하기 위해 handshake를 진행한다. 이 과정에서 사용하는 방식은 비대칭키 암호화 방식이다.
💡 비대칭키, 대칭키 암호화 방식
- 공개키 암호화 방식(비대칭키 암호화 방식)
암호화를 진행하는 키와 복호화를 진행하는 키가 다른 암호화 방식. 암호화를 진행하는 키는 공개키를 이용하고, 복호화는 비공개키으로만 진행할 수 있어, 비대칭 암호화 방식이라고도 한다.
주로 디지털 서명등에 사용하며, 연산량이 많다는게 특징이다. 대표적인 방식이 RSA이다.- 대칭 암호화 방식
서로 암호화와 복호화를 같은 키를 가지고 하는 방식을 뜻한다. 연산량은 작지만 키를 전달하는데 위험성이 있다. 대표적인 방식이 AES, DES이다.
출처: https://www.cloudflare.com/ko-kr/learning/ssl/transport-layer-security-tls/
HTTPS는 데이터의 암호화, 인증, 데이터의 무결성 이 3가지에 이점을 가지고 있다. 데이터를 private key를 가지고 있지 않다면 데이터를 확인할 수 없어 보안에 유리하고, 인증서를 통해 사이트가 신뢰할 수 있는 사이트임을 말하며, 데이터가 위조 혹은 변조 되었을 때 이를 검증할 수 있게 되어 무결성을 지킬 수 있게 된다.
구글의 서치엔진은 HTTPS를 순위 결정의 신호로 사용하고 있다. 이는 검색시 HTTPS를 이용하지 않는 홈페이지는 검색 순위가 낮아지게 된다는 의미다.
참고
https://www.cloudflare.com/ko-kr/learning/ssl/transport-layer-security-tls/
https://www.ascentkorea.com/difference-between-http-and-https/