HTTP & HTTPS
[toc]
1. HTTP 정의
영어 약자, 규약
HyperText Transfer Protocol
인터넷 상에서 + 클라이언트와 서버가 + 자원을 주고 받을 때 + 쓰는 통신 규약
2. HTTP 특징
텍스트 교환, 보안 이슈
HTTP는 텍스트 교환이므로, 누군가 네트워크에서 신호를 가로채면 내용이 노출되는 보안 이슈가 존재한다.
이런 보안 문제를 해결해주는 프로토콜이 'HTTPS'
3. HTTP 문제점
3가지 : 평문 통신 - 도청, 통신 상대 - 위장, 완전성 - 변조
- HTTP 는 평문(aka 암호화되지 않은) 통신이기 때문에 도청이 가능하다.
- 통신 상대를 확인하지 않기 때문에 위장이 가능하다.
- 완전성을 증명할 수 없기 때문에 변조가 가능하다.
위 세 가지는 다른 암호화하지 않은 프로토콜에도 공통되는 문제점들이다.
3-1. TCP/IP 는 도청 가능한 네트워크이다.
설명, 보안 방법 2가지 - 통신 암호화, 콘텐츠 암호화
설명 :
TCP/IP 구조의 통신은 전부 통신 경로 상에서 엿볼 수 있다. 패킷을 수집하는 것만으로 도청할 수 있다. 평문으로 통신을 할 경우 메시지의 의미를 파악할 수 있기 때문에 암호화하여 통신해야 한다.
보안 방법
- 통신. 자체를 암호화
SSL(Secure Socket Layer)orTLS(Transport Layer Security)라는 다른 프로토콜을. 조합함으로써 HTTP 의 통신 내용을 암호화할 수 있다. SSL 을 조합한 HTTP 를HTTPS(HTTP Secure)orHTTP over SSL이라고 부른다. - 콘텐츠를 암호화 말 그대로 HTTP 를 사용해서 운반하는 내용인, HTTP 메시지에 포함되는 콘텐츠만 암호화하는 것이다. 암호화해서 전송하면 받은 측에서는 그 암호를 해독하여 출력하는 처리가 필요하다.
- 통신. 자체를 암호화
3-2. 통신 상대를 확인하지 않기 때문에 위장이 가능하다.
설명, 문제 발생, 보완 방법
설명 :
HTTP 에 의한 통신에는 상대가 누구인지 확인하는 처리는 없기 때문에 누구든지 리퀘스트를 보낼 수 있다. IP 주소나 포트 등에서 그 웹 서버에 액세스 제한이 없는 경우, 리퀘스트가 오면 상대가 누구든지 무언가의 리스폰스를 반환한다. 이러한 특징은 여러 문제점을 유발한다.
문제 발생
- 리퀘스트를 보낸 곳의 웹 서버가 원래 의도한 리스폰스를 보내야 하는 웹 서버인지를 확인할 수 없다.
- 리스폰스를 반환한 곳의 클라이언트가 원래 의도한 리퀘스트를 보낸 클라이언트인지를 확인할 수 없다.
- 통신하고 있는 상대가 접근이 허가된 상대인지를 확인할 수 없다.
- 어디에서 누가 리퀘스트 했는지 확인할 수 없다.
- 의미없는 리퀘스트도 수신한다. —> DoS 공격을 방지할 수 없다.
보완 방법
위 암호화 방법으로 언급된
SSL로 상대를 확인할 수 있다. SSL 은 상대를 확인하는 수단으로 증명서 를 제공하고 있다. 증명서는 신뢰할 수 있는 제 3 자 기관에 의해 발행되는 것이기 때문에 서버나 클라이언트가 실재하는 사실을 증명한다. 이 증명서를 이용함으로써 통신 상대가 내가 통신하고자 하는 서버임을 나타내고 이용자는 개인 정보 누설 등의 위험성이 줄어들게 된다. 한 가지 이점을 더 꼽자면 클라이언트는 이 증명서로 본인 확인을 하고 웹 사이트 인증에서도 이용할 수 있다.
3-3. 완전성을 증명할 수 없기 때문에 변조가 가능하다.
설명 - 완전성, 중간자 공격(man in the middle) , 보완 방법 - HTTPS
설명 :
여기서 완전성이란 정보의 정확성 을 의미한다. 서버 또는 클라이언트에서 수신한 내용이 송신측에서 보낸 내용과 일치한다라는 것을 보장할 수 없는 것이다. 리퀘스트나 리스폰스가 발신된 후에 상대가 수신하는 사이에 누군가에 의해 변조되더라도 이 사실을 알 수 없다. 이와 같이 공격자가 도중에 리퀘스트나 리스폰스를 빼앗아 변조하는 공격을 중간자 공격(Man-in-the-Middle)이라고 부른다.
보완 방법
MD5,SHA-1등의 해시 값을 확인하는 방법과 파일의 디지털 서명을 확인하는 방법이 존재하지만 확실히 확인할 수 있는 것은 아니다. 확실히 방지하기에는HTTPS를 사용해야 한다. SSL 에는 인증이나 암호화, 그리고 다이제스트 기능을 제공하고 있다.
About the author
With business field insights, The Programmatic Programmer,
Comments
Join the discussionNo comments yet. Be the first to comment.
Network
In this series, I'm gonna post about fundamentals of networks and how to dealing with web performances




