tag - project xmlns http maven apache org pom 4.0 0 xmlns xsi http www w3 org
Maven verifica las firmas de los archivos descargados pom/jar (4)
¿Podrías escribir un script de shell bash usando GnuPG para verificar cada sig?
Algo como: for x in *.jar; do gpg --verify "${x}".asc; done
for x in *.jar; do gpg --verify "${x}".asc; done
Obviamente, necesitaría las claves públicas para todas las sigs antes de comenzar.
Estaba tratando de encontrar si hay un repositorio central habilitado para SSL pero probablemente no. 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).
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
Me doy cuenta de que tendré que importar claves públicas para cada repositorio y estoy de acuerdo con eso. Supongo que las claves públicas para maven central están aquí https://svn.apache.org/repos/asf/maven/project/KEYS .
Hay MUCHOS tutoriales en la web sobre cómo 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 Professional no es una opción)
Gracias por ayudar.
Ahora que las personas parecen darse cuenta de que se trata de un problema de seguridad real (como se describe en esta publicación de blog (el blog parece estar a punto, aquí hay una versión archivada del blog)), hay un complemento para verificar las firmas de PGP . 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, tendría que descargar y verificar el origen del plugin desde maven central, compilarlo con maven y ejecutarlo. (Y esto también debe hacerse con todas las dependencias y complementos que se necesitan para la compilación, recursivamente).
O utiliza Maven 3.2.3 o superior (con un repositorio limpio), que usa TLS 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.
Ver también:
El acceso SSL a Central ahora está disponible para 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 repositorio.
...
Para asegurar 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.
Suponiendo que solo desee descargar artefactos con sumas de comprobación válidas, una opción sería ejecutar la versión OSS de Nexus y configurarla para tener un proxy de central. 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.