Maven vérifie les signatures des fichiers pom/jar téléchargés

j'essayais de trouver s'il y avait un dépôt central compatible SSL, mais il n'y en a probablement pas. J'ai remarqué qu'il y a des signatures pour chaque fichier jar et pom dans le dépôt central de maven. Donc au moins j'aimerais vérifier les signatures de tous les fichiers téléchargés par maven (pom/jar).

L'exemple 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

je me rends compte que je vais devoir importer des clés publiques pour chaque dépôt et je suis d'accord avec ça. Je suppose que les clés publiques pour maven central sont ici https://svn.apache.org/repos/asf/maven/project/KEYS .

il y a beaucoup de tutoriels sur le web sur la façon de signer avec maven. Cependant, je n'ai trouvé aucune information sur la façon de forcer maven (2 ou 3) à vérifier les signatures des fichiers JAR/pom téléchargés. Est-il possible?

(Nexus Professional n'est pas une option)

Merci vous pour de l'aide.

34
demandé sur Nadeem_MK 2011-07-03 23:33:14

4 réponses

maintenant, que les gens semblent se rendre compte qu'il s'agit d'un véritable problème de sécurité (comme décrit dans ce blog-post (le blog semble abattu, voici une version archivée du blog)), il ya un plugin pour vérifier les signatures PGP . Vous pouvez vérifier les signatures pour toutes les dépendances de votre projet avec la commande suivante:

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

bien sûr, pour être sûr à 100% que le plugin n'est pas malveillant par lui-même, vous auriez à télécharger et vérifier la source pour le plugin à partir de maven central, construire avec maven, et l'exécuter. (Et cela devrait également être fait avec toutes les dépendances et plugins qui sont nécessaires pour la compilation, de façon récursive.)

ou vous utilisez Maven 3.2.3 ou plus (avec un dépôt propre), qui utilise TLS pour télécharger tous les artefacts. Ainsi les attaques de l'homme au milieu sont impossibles et vous obtenez au moins les Artéfacts Comme ils sont sur maven central.

voir aussi:

5
répondu Martin Höller 2018-04-01 10:15:42

SSL l'accès à Central est maintenant disponible pour un paiement symbolique. De https://blog.sonatype.com/people/2012/10/now-available-ssl-connectivity-to-central / :

nous mettons la connectivité SSL vers Central à la disposition de toute personne qui télécharge des composants open source, quel que soit le gestionnaire du dépôt.

...

afin d'assurer le plus haut niveau de performance pour ceux qui compte sur SSL, nous sécurisons le service avec un token. Vous pouvez obtenir un jeton pour votre organisation simplement en fournissant un don de 10 $qui sera donné à des causes open source.

1
répondu Joe 2013-10-08 12:13:04

pourriez-vous écrire un script shell bash en utilisant GnuPG pour vérifier chaque sig?

quelque chose comme: for x in *.jar; do gpg --verify "${x}".asc; done

évidemment vous auriez besoin des clés publiques pour tous les sigs avant de commencer.

1
répondu Geeb 2014-01-17 15:29:33

en supposant que vous voulez seulement télécharger des artéfacts avec des checksums valides, une option serait d'exécuter la version OSS de Nexus et de la configurer pour avoir un proxy de central. Ensuite configurer vos paramètres.xml à charger à partir de votre dépôt (miroir de la balise dans les paramètres.XML.) Vous pouvez alors configurer nexus pour n'autoriser que les artéfacts qui ont un checksum valide.

1
répondu Michael 2014-07-03 18:53:38