HTTP (Hypertext Transfer Protocol)
서로 다른 시스템들 사이에서 통신을 주고받게 해주는 가장 기초적 프로토콜. 웹 서핑을 할 때 서버에서 자신의 브라우저로 데이터를 전송해 주는 용도로 많이 사용됨.
요청-응답 구조를 가지며 인터넷에서 가장 많이 사용되는 프로토콜이다.
"많이 사용되지만 아주 치명점 단점을 지닌다"
서버에서부터 브라우저로 전송되는 정보가 암호화되지 않는다는 점이다.
즉, 데이터가 쉽게 도난당할 수 있다는 것이다.
그래서 나온것이 바로
HTTPS (Hypertext Transfer Protocol Secure)
SSL/TLS(보안 소켓 계층/TLS가 새 버전)을 사용함으로써 이문제를 해결했다. SSL/TLS은 서버와 브라우저 사이에 안전하게 암호화된 연결을 만들 수 있게 도와 죽고 서버 브라우저가 민감한 정보를 주고받을 때 이것이 도난당하는 것을 막아준다.
HTTP는 80포트 사용 HTTPS는 443번 포트를 사용한다.
1. 기밀성(Confidentiality)
교환되는 데이터를 도청해도 의미가 없게끔 데이터가 강력한 암호 알고리즘으로 암호화된다.
대칭 알고리즘을 통해 암호화와 복호화된다.
2. 무결성(Integrity)
정보가 중간에 변질되지 않았음을 보장하는 것이다. (중간에 중요한 정보만 가로채거나 수정하는 것을 방지)
클라이언트와 서버는 전자 서명(Digital Signature)을 통해 통신을 맺어 신뢰성을 확보한다.
3. 인증(Authentication)
응답자가 안전한 응답자인지 어떻게 알 수 있을까?
이를 위해서 인증서 제도를 운영한다. 인증서 기관을 통해 해당 서버가 안전한 서버라는 것을 확인할 수 있다.
SSL 인증서는 사용자가 사이트에 제공하는 정보를 암호화하는데 쉽게 말해서 데이터를 암호로 바꾼다고 생각하면 쉽다. 이렇게 전송된 데이터는 중간에서 누군가 훔쳐 낸다고 하더라도 데이터가 암호화되어있기 때문에 해독할 수 없다. 그 외에도 HTTPS는 TLS(전송 계층 보안) 프로토콜을 통해서도 보안을 유지한다. TSL은 데이터 무결성을 제공하기 때문에 데이터가 전송 중에 수정되거나 손상되는 것을 방지하고 사용자가 자신이 의도하는 웹사이트와 통신하고 있음을 입증하는 인증 기능도 제공하고 있다.
HTTPS로 만들어야 하는 이유:
자신의 웹 사이트에 전자상거래가 없거나 개인정보 등의 민감한 정보를 다루지 않는다면 딱히 HTTPS를 사용할 이유가 없지만 구글에서 2014년에 대부분의 사이트에 HTTPS를 사용하라고 권고했고 검색엔진 가산점 정책에 HTTPS를 추가시켜 많은 사이트가 HTTPS로 전환하게끔 이끌었기 때문에 HTTPS를 사용해야 한다. 뭐 굳이 그 이유가 아니어도 사용자들은 안전한 사이트를 원하기 때문에 되도록이면 Https로 만들자.
즉 한줄로 정리하자면 차이점은
HTTP는 따로 암호화 과정을 거치지 않기 때문에 중간에 패킷을 가로챌 수 있고, 수정할 수 있습니다. 따라서 보안이 취약해짐을 알 수 있습니다. 이를 보완하기 위해 나온 것이 HTTPS입니다. HTTPS는 중간에 암호화 계층을 거쳐서 패킷을 암호화합니다.
HTTP 동작 순서 : TCP → HTTP
HTTPS 동작 순서 : TCP → SSL → HTTP
'몰입형학습' 카테고리의 다른 글
| web.xml 정리 (0) | 2022.09.16 |
|---|---|
| HTTPServlet 클래스 (0) | 2022.09.15 |
| HTTP 상태코드 (0) | 2022.09.15 |
| [JAVA]멀티캐스팅을 이용한 채팅 프로그램 (0) | 2022.09.06 |
| 쿠키 and 세션 (0) | 2022.09.04 |
댓글