바위타는 두루미
HTTP vs HTTPS 본문
문제 1
HTTP 와 HTTPS 의 차이는 무엇일까요?
대답
HTTPS는 HTTP의 보안적인 문제를 해결하기위해 SSL의 껍질을 덮어쓴 HTTP이다.
HTTP의 문제점
1. HTTP는 평문 통신이기 때문에 도청이 가능하다.
- TCP/IP 구조의 통신은 모두 통신경로상에서 엿볼 수 있는데, 평문으로 통신하기 때문에 메세지의 의미까지 모두 파악할 수 있다.
2. 통신상대를 확인하지 않기 때문에 위장이 가능하다.
- HTTP의 통신에서는 상대가 누구인지 확인하는 처리가 없기 때문에 누구든지 리퀘스트를 보낼 수 있다. 이 특징이 가져오는 문제는
1. 리퀘스트를 보낸 곳의 웹 서버가 원래 의도한 리스폰스를 보내야하는 웹 서버인지 알 수 없다.
2. 리스폰스를 반환한 곳의 클라이언트가 원래 의도한 클라이언트인지 알 수 없다.
3. 의미 없는 리퀘스트도 수신한다 -> DoS 공격을 받을 수 있다.
3. 완전성을 증명할 수 없기 때문에 변조가 가능하다.
- 서버 또는 클라이언트에서 수신한 내용이 송신측에서 보낸 내용과 일치한다라는 것을 보장 할 수 없기 때문에 리퀘스트나 리스폰스가 발신 된 후에 상대가 수신하는 사이에 누군가 변조되더라도 그 사실을 알 수 없다.( 이 공격을 중간자공격(Man-in-the-Middle)이라고 한다)
이러한 문제점을 해결하기 위해 SSL 이라는 다른 프로토콜을 조합함으로써 HTTP의 통신문을 암호화 하고 상대방을 확인할 수 있는 보안적으로 더 안정적인 HTTP 통신 방식이다. HTTPS에서는 기존에 HTTP가 TCP와 직접 통신하던 방식에서 HTTP는 SSL과 통신하고 SSL이 TCP와 통신하게 되는 방식이다.