Как сделать так, чтобы открытый ключ внутри jar не сохранялся с использованием кода Java - PullRequest
0 голосов
/ 07 мая 2010

После подписания jar мы можем получить открытые ключи из jar, используя

Certificate[] cert = jarentry.getCertificates();

После извлечения сертификата мы можем сохранить его в новом хранилище ключей как доверенный сертификат.

Как только это будет сделано, второй пользователь может подписать любую банку, используя этот сертификат, не так ли?

Я хочу распространять содержимое в виде банок, содержимое будет содержать файлы свойств для инициализации приложения.

Я хочу убедиться, что пользователь не может восстановить файлы свойств, используя сертификат, извлеченный из jarentry.

В коде, который считывает содержимое jar, я проверяю, что jar подписан только моим сертификатом, а также проверяя, не поврежден ли jar.

Но мне пришла в голову проблема, что если я могу извлечь сертификат из банки, то почему не третий парень?

Любая помощь?

1 Ответ

1 голос
/ 07 мая 2010

После того, как это будет сделано, второй пользователь может подписать любую банку, используя этот сертификат, не так ли?

Нет, вам нужен приватный ключ, чтобывозможность подписать JAR.Вы не можете подписать JAR только с открытым ключом.Конечно, закрытый ключ отсутствует в сертификате.

См. Подписание и проверка файлов JAR в руководствах Sun по Java, он объясняет принципы и способ их подробного выполнения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...