4 votes

Comment vérifier la signature d'une jarre auto-signée ?

J'ai signé mon jar avec une clé que j'ai générée avec keytool. Au moment de l'exécution, comment puis-je vérifier que le jar n'a pas été modifié ?

L'objectif est d'utiliser les informations du certificat et de vérifier que chaque classe du jar n'a pas été modifiée depuis la construction du jar. Il s'agit d'une vérification au moment de l'exécution, de sorte que le jar contenant le code peut se trouver n'importe où sur le système de fichiers de l'utilisateur.

2voto

Jcs Points 6125

El JarFile intègre le vérificateur de bocaux. Cet extrait de code vérifie la signature de toutes les entrées d'une archive :

JarFile jar = new JarFile("/path/to/myarchive.jar");
Enumeration<JarEntry> entries = jar.entries();
while (entries.hasMoreElements()) {
    JarEntry entry = entries.nextElement();
    try {
        jar.getInputStream(entry);
    } catch (SecurityException se) {
        /* Incorrect signature */
        throw new Error("Signature verification failed", se);
    }
}

Notez que ce code vérifie l'intégrité du jar mais ne vérifie pas la signature par rapport à une clé ou un certificat donné.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X