¿Por qué un sitio web ofrecería versiones diferentes de un archivo a través de HTTP y HTTPS?

18

Aquí hay un enlace en el sitio web oficial de curl:

(prefijo omitido) bintray.com/artifact/download/vszakats/generic/curl-7.46.0-win64-mingw.7z

Cuando lo descargué con los prefijos http: // y https: // Obtuve dos archivos diferentes.

Mi pregunta es ¿por qué este sitio sirve dos archivos diferentes, uno a través de HTTP y otro a través de HTTPS? Los hashes SHA256 no coinciden.

Aquí hay una diferencia de las URL finales después de la redirección. La URL de la izquierda es la que HTTP redirige y la URL de la derecha es la que HTTPS redirige a:

Actualizar:

Losdosarchivosnosedescargaronalmismotiempo,peroteníanelmismonúmerodeversión,asíqueasumíquedeberíanseriguales.Estenoeselcaso.Elautormedijoquealgunasrevisionesnoobtienenunnuevonúmerodeversión.Losresultadosdelanálisisdelosarchivosservidosdesdeelsitioendiferentesfechas(

    
pregunta solarflare97 28.12.2015 - 05:28
fuente

4 respuestas

24

La respuesta simple es: ¡porque quiere! El servidor web puede servir lo que quiera, ya sea por configuración o por coincidencia.

En este momento, obtengo el mismo archivo 75916c7b a través de HTTP y HTTPS y no puedo confirmar su teoría de que el servidor web ofrece contenido diferente para HTTPS en lugar de HTTP. Sin embargo, si logró acceder al sitio cerca del momento en que se actualizó el archivo, es muy posible que servidores diferentes estuvieran sirviendo los diferentes protocolos y que la actualización del archivo aún no se haya propagado al servidor que le sirvió el archivo anterior.

Recuerde que una URL puede ser servida por cualquier número de servidores: el hecho de que obtenga un archivo de una URL no excluye que haya 20 copias de este archivo en 20 servidores / cachés, algunos de los cuales pueden estar desactualizados. .

Esto es una certeza en este caso, ya que el sitio web parece estar utilizando Cloudfront, que es una red de entrega de contenido, una pieza de infraestructura diseñada explícitamente para almacenar en caché archivos en muchos servidores distribuidos para su distribución a escala global.     

respondido por el Sander 28.12.2015 - 08:16
fuente
13

Autor de los archivos mencionados anteriormente aquí.

Es normal que la suma de comprobación de dichos archivos en el estado actual de las cosas cambie cuando se modifican los scripts de compilación y se activa y carga automáticamente una nueva compilación. En el caso de curl 7.46.0, los scripts de construcción (y, en consecuencia, los paquetes descargables) cambiaron tres veces a partir de este escrito:

  • Se habilitó la compatibilidad con HTTP / 2, al crear y enlazar estáticamente la dependencia nghttp2: commit , < a href="https://ci.appveyor.com/project/vsz/harbour-deps/build/1.0.211"> log
  • La dependencia
  • nghttp2 se actualizó de la versión 1.5.0 a 1.6.0: commit , log
  • se identificó y corrigió un error de compilación libcurl.dll , que fue causado por una opción de compilación nghttp2 faltante: i75b0c5ec67b7a96d5382ad1e0c6815"> / a>, log
  • el compilador subyacente de MinGW C se actualizó a 5.3.0, además de varias correcciones y actualizaciones internas: commit , log
  • VirusTotal falso positivo se corrigió al eliminar un archivo .vbs opcional que se había copiado previamente del paquete fuente original curl: commit , log

Cualquier confirmación aquí (realizada en la rama master ), activará una nueva construcción:

  • excepto cuando se excluye explícitamente usando el texto de confirmación: [ci skip]
  • el proceso de compilación está diseñado para ser reproducible / determinista, por lo que la suma de comprobación solo cambiará si se modifican el código fuente subyacente o las opciones del compilador. (Una compilación repetida con las mismas opciones no la cambiará.)

En cuanto a la descarga de los binarios a través de diferentes protocolos, HTTP vs. HTTPS debería dar como resultado exactamente el mismo contenido binario (si las descargas se realizan en el mismo punto en el tiempo), aunque HTTPS es altamente recomendable.

En cuanto al malware potencial, vea mis pensamientos sobre GitHub: enlace

En resumen: casi con certeza son falsos positivos, es poco probable que estén influenciados por el protocolo de transferencia, más probablemente por los problemas del motor del escáner. El proceso de compilación completo es public y auditable , así como todo el código fuente que se incorpora.)

ACTUALIZACIÓN [2015-12-28]: Como respuesta general al problema de HTTP vs. HTTPS: Este último protocolo seguro ofrece ciertas garantías de que el contenido proviene de la parte correcta y que no se ha alterado en su camino hacia la otro extremo del cable. Por estas razones, se puede confiar más y, por lo tanto, lo recomiendo en la respuesta original. Una garantía aún mejor es verificar los hashes SHA256 del contenido descargado con los generados en el servidor de compilación (visible al final de los registros de compilación vinculados anteriormente). Una garantía aún más sólida es tener el contenido firmado digitalmente (por ejemplo, utilizando PGP o minisign) y esa firma verificada por el receptor. (Las descargas de mis rizos no cuentan con una firma digital en este momento).

ACTUALIZACIÓN [2016-01-06]: Se actualizó la lista de actualizaciones de paquetes. Arreglar el falso positivo de VirusTotal fue uno de ellos.

    
respondido por el vszakats 28.12.2015 - 11:54
fuente
3

Mire las marcas de tiempo en los escaneos, la versión "Limpia" fue hace semanas. Cuando hace clic en el enlace para una fecha de escaneo más reciente, verá que tanto http como https están infectados.

Básicamente, no hay diferencia en los archivos, solo los análisis se realizaron en dos momentos diferentes (pre-infección y post-infección)

    
respondido por el Steven Carlson 28.12.2015 - 06:35
fuente
2

Servir archivos diferentes con HTTP y HTTPS es realmente una rutina. Por ejemplo, supongamos que usted es un banco. Si alguien le da la url enlace , el banco no quiere usar HTTP y no quiere molestarlo, por lo que es un problema una respuesta con un redireccionamiento 301 o 302 a enlace . Eso es lo más transparente posible.

    
respondido por el user95495 28.12.2015 - 20:58
fuente

Lea otras preguntas en las etiquetas