2016-01-06 1 views
2

Можно ли заставить JVM проверить, что каждый JAR, который был загружен на загрузчик классов, подписан?Можно ли заставить JVM проверить, что каждая банка должна быть подписана?

Поведение, которое я ожидаю, состоит в том, что: если подпись неверна или файл jar не подписан, JVM аварийно завершает работу, иначе программа работает плавно.

+0

Эй, @endrigoantonini, вы поняли это? –

+0

@ ThiagoLeãoMoreira К сожалению, нет. Я пытался найти множество опций внутри конфигурации даже файлов свойств и не нашел этого. У вас есть какая-то подсказка? – endrigoantonini

+0

Пока нет, я работаю над проектом, который один из поставщиков сказал, что это возможно ... но я не нашел ни одного документа/сообщения, в котором говорится, что это выполнимо. Может быть, специальный загрузчик классов? –

ответ

2

Это, безусловно, возможно (security is a central tenant of Java's design philosophy, в конце концов), но в целом Java обрабатывает такие проблемы лениво, а не при запуске JVM.

generally recommended strategy - установить диспетчер безопасности, который предотвратит любой ненадежный код (доверие определяется policy file, связанным с менеджером безопасности) от доступа к ОС или критическим частям JVM. Однако такой ненадежный код все равно может работать в изолированной программной среде JVM, и ваше приложение не будет разбиваться, пока ненадежный код не попытается вырваться из песочницы. Как правило, это рассматривается как функция.

Если вам действительно необходимо проверить во время выполнения, что все баннеры подписаны, вы можете проверить путь к классу, чтобы загрузить все загружаемые банки и проверить их содержимое, чтобы убедиться, что они подписаны. This answer содержит пример кода, описывающий, как это сделать.

Однако лучше практика, чтобы избежать даже раскручивается в JVM с ненадежным кодом, в первую очередь, что где jarsigner приложение поставляется в. Перед добавлением какой-либо Баночки к вашим классам проверить их jarsigner и вы можете быть уверены, ваши JVM работает только с надежным кодом. После запуска JVM ваши параметры более ограничены, поэтому лучший способ действий состоит в том, чтобы развернуть JVM только после того, как вы уверены в своей политике безопасности или загружаемых классах.

Смежные вопросы