HTTP Content-MD5 헤더 고려 사항


12

Content-MD5 헤더 사용 여부에 대해 논의 중입니다.

장점 :

  • CMS를 사용하면 최소한의 오버 헤드 (경우의 80 % 이상에서 캐시 된 응답)로 쉽게 포함 할 수 있습니다.
  • 문제에 대한 또 다른 보호 계층을 추가합니다.

단점 :

  • Content-Length 헤더는 항상 (동적으로 생성 된 페이지에도) 존재하므로 클라이언트는 다른 형태의 유효성 검사가 필요하지 않습니다.
  • 지금까지 우리는 부패로 인한 문제를 알지 못했습니다.
  • MD5 검사는 웹 페이지로드 시간에 대기 시간을 추가합니다.

포인트들:

  • 특정 매체 유형에이를 불필요하게하는 자체 다이제스트 형식이 포함되어 있습니까?
  • TCP가 이것을 이미 제공한다면 왜 HTTP 표준에 포함 되었습니까?
  • 기존의 실제 용도는 무엇입니까?
  • MD5 검사는 무시할 만합니까?

단위 테스트에 추가하고 구현하는 데 약 1 시간의 작업이 실제로 문제가되지는 않습니다. 그러나 해로운 경우 웹 사이트 "상태 확인"에 사용 된 상위 수준 스 니프 테스트에 추가하기를 원합니다.

답변:


10

TCP에는 이미 오류 수정이 있지만 TCP 계층에서만 도움이됩니다. 중개 HTTP 프록시 또는로드 밸런서는 HTTP 계층의 데이터를 손상시킨 후 다시 전송할 수 있습니다. HTTP MD5를 사용하면이 손상을 감지 할 수 있습니다. 아무도이 필요성에 대해 실제로 이야기하지 않는 이유는 실제로 문제가 매우 드물기 때문입니다. 대부분의 HTTP 프록시 등은 "그냥 작동"합니다.

RFC는 보안을 암시합니다. IMHO 이것은 너무 약해서 무시해야합니다. 실제 보안과 기밀이 필요한 경우 HTTPS가 필요합니다.

특정 매체 유형에이를 불필요하게하는 자체 다이제스트 형식이 포함되어 있습니까?

정말 좋은 것은 없습니다. 그러나 사진, 스트리밍 비디오 등의 몇 가지 오류는 종종 사람들에게 인식되지 않을 것입니다.

사용 사례에 따라 다릅니다.

  • REST 기반 웹 서비스의 경우 다이제스트에 유용한 추가 오류 정정 계층이 추가됩니다. 이 AWS 장애를 예로 들어보십시오 .
  • 일반 HTTP를 통해 미션 크리티컬 데이터를 처리하는 애플리케이션의 경우 구현할 가치가 있습니다. Content-MD5는 클라이언트에게 종단 간 전송 무결성을 확인할 수있는 옵션을 제공합니다.
  • 텍스트 및 '정상'값의 미디어를 제공하는 '정상'웹 사이트의 경우 Content-MD5 헤더는 용도가 없습니다. 그리고 솔직히 얼마나 많은 주류 브라우저 (PC, 특히 모바일)가 그것을 지원하는지조차 모릅니다.

1
그 AWS 실패 사례는 정말 교활합니다. 그것은 몇 살이지만 실제로는 결코 생각하지 못했던 실패 모드의 매혹적인 예입니다. 원격으로 데이터 스토리지를 사용할 때주의해야 할 매우 흥미로운 것입니다. NoSQL 솔루션 중 일부와 이러한 문제를 어떻게 처리하는지 궁금합니다.
artlung

이를 통해 결정을 고객에게 전달하는 것이 매우 쉽습니다. 이와 같은 옵션은 이제 "좋은"것으로 제공 될 수 있지만 필수 기준은 아닙니다. Amazon이로드 밸런서를 배포하고 이러한 오류를 유발할 수 있다면 결국 어딘가에 발생할 수 있으며 일관성이없는 웹 사이트보다 더 나빠 보이는 것은 없습니다.
Metalshark

그것은 실제로 뒤집힌 비트가 어디에 있는지에 달려 있습니다. 가장 중요하지 않은 비트라면 인식 할 수 없습니다. 그러나 색상 rgb(255, 0, 0)과 사이에는 큰 차이가 rgb(127, 0, 0)있습니다. 원시 비디오를 사용하면 화면에 잠시 잠깐 표시되기 때문에 단일 픽셀 손상이 잘 인식되지 않지만 대부분의 온라인 비디오는 매우 효율적인 압축 알고리즘을 사용하기 때문에 단일 비트가 뒤집 히면 사진의 절반이 손상되거나 화면.
Lèse majesté

또한 말했듯이 은행은 HTTPS 만 사용해야 Content-MD5하므로 SSL / TLS는 이미 애플리케이션 계층에서 메시지 다이제스트를 제공하기 때문에 어느 쪽도 사용할 필요 가 없습니까?
Lèse majesté

1
@ Lèse majesté : 비트 오류에 대해서는 추상적 인 경우에 동의합니다. 그러나 대부분의 스트리밍 비디오 fx는 UDP 또는 TCP를 통한 응용 프로그램 별 전송을 사용하여 오류 수정과 속도간에 '올바른'트레이드 오프를 제공하므로 스트리밍 비디오는 Content-MD5의 사용 사례가 아닙니다. 은행에서 HTTPS를 사용해야한다는 점에 동의합니다. 더 명확하게 설명하고 싶습니다.
Jesper M

1

MD5 검사는 웹 페이지로드 시간에 대기 시간을 추가합니다.

사실이라면 (그리고 대기 시간이 완전히 사소한 것은 아닙니다) 가치가 없다고 말하고 싶습니다.

일반적으로 마지막으로 수정 된 헤더가 페이지가 변경되었는지 확인하는 데 가장 일반적으로 사용됩니다. 의미있는 가치를 제공한다고 가정하면 content-md5 헤더 가 필요 하지 않습니다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.