2011-07-03 18 views
33

que estaba tratando de encontrar si no está habilitado para SSL repositorio central pero probablemente no lo es. Noté que hay firmas para cada archivo jar y pom en el repositorio central de maven. Por lo menos, me gustaría verificar las firmas de todos los archivos descargados de Maven (pom/jar).Maven verificar las firmas de pom descargado/archivos jar

El ejemplo de http://repo1.maven.org/maven2/org/apache/ant/ant/1.8.2/:

ant-1.8.2.jar 
ant-1.8.2.jar.asc 
ant-1.8.2.jar.asc.md5 
ant-1.8.2.jar.asc.sha1 
ant-1.8.2.jar.md5 
ant-1.8.2.jar.sha1 
ant-1.8.2.pom 
ant-1.8.2.pom.asc 
ant-1.8.2.pom.asc.md5 
ant-1.8.2.pom.asc.sha1 
ant-1.8.2.pom.md5 
ant-1.8.2.pom.sha1 

que darse cuenta de que voy a tener que importar claves públicas para cada repositorio y estoy bien con eso. Supongo que las claves públicas para maven central están aquí https://svn.apache.org/repos/asf/maven/project/KEYS.

hay un montón de tutoriales en la web sobre la forma de firmar con Maven. Sin embargo, no encontré ninguna información sobre cómo forzar maven (2 o 3) para verificar firmas de archivos jar/pom descargados. ¿Es posible?

(Nexus Profesional no es una opción)

Gracias por la ayuda.

+0

cada artefacto se firma con la clave del cargador individual, por lo que no saben que las claves serán contenerlos. Y al registrarse, p. con el servidor Sonatype OSS, no hay ninguna fase mediante la cual la clave PGP del usuario que subió el video se archive. Dicho eso, también quiero una respuesta para esto. –

+1

[MNG-2477] (http://jira.codehaus.org/browse/MNG-2477) es el problema (actualmente abierto) para agregar esta funcionalidad a Maven. – Joe

+0

¿Estás usando Artifactory o algo como esto? ¿Es una opción? Eche un vistazo a los complementos: http://www.jfrog.com/home/v_artifactorypro_features#addon-webstart – Pmt

Respuesta

1

Suponiendo que sólo desea descargar artefactos w/sumas de comprobación válidos, una opción sería ejecutar la versión de Nexus OSS y configurarlo para tener un proxy del centro. A continuación, configure su settings.xml para que solo se cargue desde su repositorio (etiqueta de espejo en settings.xml). A continuación, puede configurar nexus para que solo permita artefactos que tengan una suma de comprobación válida.

+1

Los archivos * .asc son firmas de PGP. – Barend

1

el acceso SSL a Centroamérica ya está disponible por un pago simbólico. Desde https://blog.sonatype.com/people/2012/10/now-available-ssl-connectivity-to-central/:

Estamos haciendo que la conectividad SSL a Central esté disponible para cualquiera que descargue componentes de código abierto, independientemente del administrador de repositorios.

...

Con el fin de garantizar el más alto nivel de rendimiento para aquellos que cuentan con SSL, estamos asegurando el servicio con un token. Puede obtener un token para su organización simplemente con una donación de $ 10 que se donará a causas de código abierto.

+2

Esto es/era correcto, pero ahora está desactualizado. Ver el anuncio de Sonatype: http://blog.sonatype.com/2014/07/ssl_connectivity_for_central/ –

1

¿Podría escribir un script de shell bash usando GnuPG para verificar cada sig?

Algo así como: for x in *.jar; do gpg --verify "${x}".asc; done

Obviamente habría que las claves públicas para todos los sigs antes de empezar.

+0

También necesitarás buscar las firmas, ya que generalmente no están en tu repositorio. –

5

Ahora, que la gente parece darse cuenta de que este es un problema de seguridad real (como se describe en this blog-post (el blog parece abajo, aquí es un archived version del blog)), hay una plugin for verifying PGP signatures. Puede verificar las firmas para todas las dependencias de su proyecto con el siguiente comando:

mvn com.github.s4u.plugins:pgpverify-maven-plugin:check 

Por supuesto, para estar 100% seguro de que el plugin no es malicioso por sí mismo, usted tendría que descargar y verificar la source for the plugin del experto central, compilarlo con maven y ejecutarlo. (Y esto también debe hacerse con todas las dependencias y complementos que se necesitan para la construcción, recursivamente).

O utiliza Maven 3.2.3 o superior (con un repositorio limpio), que usa SSL para descargar todos los artefactos .Por lo tanto, los ataques de hombre en el medio son imposibles y obtienes al menos los artefactos tal como están en maven central.

Consulte también:

Cuestiones relacionadas