7.1 HTTP의 약점

  • 평문 통신이기 때문에 도청가능

  • 통신 상대를 확인하지 않기 때문에 위장 가능

  • 완전성을 증명할 수 없기 때문에 변조 가능

7.1.1 평문이기 때문에 도청가능

  • TCP/IP는 도청 가능한 네트워크

TCP/IP 구조의 통신 내용은 전부 통신 경로중에 엿볼 수 있다. 같은 세그먼트 통신을 도청하는 것은 어려운 일이 아니다. 패킷을 수집하는 것만으로 도청할 수 있다.패킷 캡쳐.

  • 암호화

  1. 통신 암호화

SSL이나 TLS이라는 다른 프로토콜 조합으로 HTTP 통신 내용을 암호화 한다. SSL을 이용해 안전한 통신로를 확립하고 그 통신로를 사용해 HTTP 통신을 한다.->HTTPS

2. 콘텐츠 암호화

통신하고 있는 콘첸츠의 내용 자체를 암호화해 버리는 방식이다.HTTP를 사용해서 운반하는 내용을 암호화 한다.HTTP메세지 콘텐츠만 암호화 한다. 서버에서는 복호화.

7.1.2 통신상대를 확인하지 않아 위장 가능하다.

리퀘스트, 리스폰스에서 통신상대를 확인하지 않는다.

  • 누구나 리퀘스트 할 수 있다.

HTTP통신에서 상대가 누구인지 확인하지 않는다. 또한, 리퀘스트가 오면 상대가 누구든지 무언가의 리스폰스를 반환한다.(IP,PORT 제한이 없는경우)

  1. 리퀘스트를 보낸 곳의 웹 서버가 원래 의도한 리스폰스를 보내야 하는 웹서버인지 확인할 수 없다.

  2. 리스폰스를 반환한 곳의 클라이언트가 원래 의도한 리퀘스트를 보낸 클라이언트인지 확인할 수 없다.

  3. 통신하고 있는 상대가 접근이 허가된 상대인지 확인할 수 없다.중요한 정보를 가진 웹서버에서는 특정 상대만 통신을 허가하고 싶을 때가 있다.

  4. 누가 리퀘스트 했는지 확인할 수 없다.

  5. 의미없는 리퀘스트라도 수신하게 된다. Dos 공격을 방지할 수가 없다.

  • 상대를 확인하는 증명서

HTTP에서는 확인할 수 없지만, SSL로 상대를 확인할 수 있다. SSL은 암호화, 상대확인 수단으로 증명서를 제공하고 있다. 증명서는 신뢰할 수 있는 제3자 기관에 의해 발행된다. 서버나 클라이언트가 실재하는 사실을 증명한다. 통신 상대의 서버나 클라이언트가 가진 증명서를 확인함으로써 내가 통신하고자 하는 상대인지 판단할 수 있다.

7.1.3 완전성을 증명할 수 없어 변조 가능하다

완전성 : 정보의 정확성 완전성을 증명할 수 없다는 것은 정보가 정확한지 아닌지 확인할 수 없음을 말한다.

  • 수신한 내용이 다를지도 모른다.

HTTP가 완전성을 증명할 수 없다는것은 리퀘스트, 리스폰스가 발신된 후 상대가 수신할 때까지의 사이에 변조가 되더라도 이 사실을 알 수 없다는 것이다.

즉 어떤 웹사이트에서 콘텐츠를 다운받은것이 서버상에 있는 파일이 정말로 맞는지 알 수 가 없다는것이다. 이같이 공격자가 도중에 리퀘스트나 리스폰스를 빼앗아 변조하는 공격을 중간자 공격이라고 한다.

  • 변조를 방지 하려면?

MD5나 SHA-1 등의 해시 값을 확인하는 방법과 파일의 디지털 서명을 확인하는 방법이 있다.확실히 방지 하는법은 HTTPS를 사용해야한다. SSL은 인증이나 암호화, 다이제스트 기능을 제공하고 있다.

Last updated