Почему я должен подписать свои файлы JAR?

Вы всегда можете использовать Bing Maps SDK , если вам абсолютно необходима согласованность - то есть согласованность между версиями iOS и между людьми в США или Китае. Хотя я бы рекомендовал придерживаться MapKit.

44
задан Roman C 29 April 2013 в 16:05
поделиться

4 ответа

Краткий ответ - не делайте этого, если только политика вашей компании не заставляет вас делать это.

Подробный ответ
Подписывание jar-файлов фактически говорит вашему клиенту: «Я сделал это и гарантирую, что это не испортит вашу систему. Если это произойдет, обратитесь ко мне за возмездием». Вот почему подписанные jar-файлы в клиентском решении, развернутом с удаленных серверов (апплеты / веб-запуск), пользуются более высокими привилегиями, чем неподписанные решения.

В серверных решениях, где вам не нужно снижать безопасность JVM требований, эта гарантия предназначена только для вашего спокойствия клиентов.
Плохая черта подписанных jar-файлов в том, что они загружаются медленнее, чем неподписанные. Насколько медленнее? это связано с процессором, но я заметил увеличение времени загрузки более чем на 100%. Кроме того, патчи сложнее (вы должны повторно подписать jar), патчи классов невозможны (все классы в одном пакете должны иметь один и тот же источник подписи), а разделение jar становится рутиной. Не говоря уже о том, что ваш процесс сборки длиннее, и что правильные сертификаты стоят денег (самоподписанные почти бесполезны).

Итак, если политика вашей компании не заставляет вас, не подписывайте jar-файлы на стороне сервера и сохраняйте общие jar-файлы в подписанных и неподписанных версиях (подписанные переходят к развертыванию на стороне клиента, неподписанные переходят к кодовой базе на стороне сервера).

40
ответ дан 26 November 2019 в 22:19
поделиться

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

К сожалению, это включает вас :-D Так что это только для быть сделано, если вам это действительно нужно. Проверьте концепцию «запечатанной банки».

2
ответ дан 26 November 2019 в 22:19
поделиться

Подписание файла jar, как и использование сертификатов в других контекстах, выполняется так, чтобы люди, использующие его, знали, откуда он пришел. Люди могут верить, что Крис Каррутерс не собирается писать вредоносный код, и поэтому они готовы предоставить вашему апплету доступ к своей файловой системе. Подпись дает им некоторую гарантию того, что jar действительно был создан вами, а не самозванцем или кем-то, кому они не доверяют.

В случае серверных или библиотечных jar-файлов обычно нет необходимости предоставлять такой вид гарантии никому. Если это ваш сервер, то вы знаете, какие jar-файлы вы используете и откуда они, и, вероятно, уверены, что ваш собственный код не является вредоносным.

1
ответ дан 26 November 2019 в 22:19
поделиться

Что касается апплетов: Начиная с версии 6u10, Sun JRE заменяет предупреждающий баннер менее навязчивым (с 6u12, IIRC) предупреждающим треугольником (необходим для поддержки фигурных и прозрачных окон). 6u10 также разрешает контролируемый доступ к файлам через API служб JNLP.

Принцип наименьших привилегий гласит, что вы не должны подписывать классы ваших файлов jar. Безопасность не обязательно проста.

Простое отображение диалогового окна сертификата не должно толковаться как означающее, что всему содержимому веб-страницы следует доверять.

1
ответ дан 26 November 2019 в 22:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: