Если я создам подписанный Java-апплет, смогу ли я разместить его в любом домене, который захочу?

Или подписанный апплет связан и считается подписанным только при загрузке из определенного домена (т. е. домена, который вы использовали как часть проверки личности ЦС)?

Моя ситуация: я создал апплет, который предлагаю скачать как инструмент, чтобы другие могли использовать его на своих сайтах. Люди не используют апплет на моем веб-сайте, вместо этого они загружают его в виде zip-архива и размещают на своем веб-сайте. (Очевидно, что мое приложение предназначено для разработчиков и тех, кто в остальном разбирается в HTML). До сих пор апплет был неподписанным, однако, поскольку Oracle фактически убил неподписанные апплеты с их последним обновлением, я рассматриваю возможность его подписания. Но я не хочу утруждать себя и тратить деньги на его подписание только для того, чтобы обнаружить, что подписание действительно только тогда, когда апплет используется на моем веб-сайте, а не на других.

Изменить для уточнения: я не собираюсь подписывать себя. Я намерен использовать ЦС.


person martinez314    schedule 22.01.2014    source источник
comment
Если ответ помог вам, вы можете принять его.   -  person crnlx    schedule 22.01.2014


Ответы (2)


да. Вы можете получить предупреждение, если оно самоподписано, в зависимости на вашем уровне безопасности. Нет предупреждения, если он подписан доверенным лицом.

person crnlx    schedule 22.01.2014
comment
Второе предложение неверно. При уровнях безопасности по умолчанию в последних версиях JRE самозаверяющие приложения. полностью заблокированы. - person Andrew Thompson; 22.01.2014
comment
@AndrewThompson Спасибо, разъяснил этот момент. +1. Изменить: добавлена ​​ссылка на уровни безопасности. - person crnlx; 22.01.2014
comment
Отличная ссылка! Я не видел эту блок-схему раньше. При этом я могу с радостью добавить +1 к ответу. :) - person Andrew Thompson; 23.01.2014
comment
У меня также были проблемы с использованием самозаверяющего сертификата, когда клиенты обновлялись до Java 7, обновление 51 или выше. Апплеты с самоподписанным сертификатом заблокированы. Но вы можете добавить свой URL-адрес в список исключений в консоли Java и снова запустить апплет. - person August; 12.08.2014

Ответ на самом деле квалифицированное «да».

Отсутствует атрибут манифеста Codebase для:xxx.jar, предупреждает нас о том, что в последних обновлениях безопасности было введено изменение, выдающее предупреждение, если атрибут Codebase отсутствовал в манифесте Jar.

Атрибуты манифеста JAR-файла для обеспечения безопасности: Codebase Атрибут< /a> углубимся в детали:

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

Примечание. Если в атрибуте Codebase не указан безопасный сервер, например HTTPS, существует некоторый риск того, что ваш код может быть перепрофилирован в схемах атаки «Человек посередине» (MITM).

Установите для этого атрибута либо имя домена, либо IP-адрес, на котором находится файл JAR для приложения. Также может быть указан номер порта. Для нескольких местоположений разделяйте значения пробелом. Звездочку (*) можно использовать в качестве подстановочного знака только в начале имени домена. В следующей таблице показаны примеры значений и их соответствие.

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

Я не уверен, что клиент может просто «связаться» с апплетом на вашем сайте. Учитывая тот факт, что я не эксперт по безопасности, я почти ожидаю, что есть какой-то тайный способ злоупотребления этим.


Учитывая недавнее ужесточение безопасности, меня не удивит, если Oracle решит указать HTTPS-сервер перед приложением. будет запускаться без снижения безопасности подключаемого модуля до опасного уровня, и что на разных сайтах можно использовать только расширения (но не основное приложение/апплет).

person Andrew Thompson    schedule 22.01.2014