Spec-Zone .ru
спецификации, руководства, описания, API
|
public final class SecurityPermission extends BasicPermission
Целевое имя является именем параметра конфигурации безопасности (см. ниже). В настоящий момент объект SecurityPermission используется, чтобы охранять доступ к Политике, Безопасности, Провайдеру, Подписывающему лицу, и объектам Идентификационных данных.
Следующая таблица приводит все возможные целевые имена SecurityPermission, и для каждого обеспечивает описание того, что разрешение позволяет и обсуждение рисков предоставления кода разрешение.
Целевое Имя разрешения | Что Позволяет Разрешение | Риски Разрешения этого Разрешения |
---|---|---|
createAccessControlContext | Создание AccessControlContext | Это позволяет кому-то инстанцировать AccessControlContext с a DomainCombiner . Экстремальная забота должна быть проявлена, предоставляя это разрешение. Вредоносный код мог создать DomainCombiner, который увеличивает набор полномочий, предоставленных кодировать, и даже предоставить код AllPermission . |
getDomainCombiner | Извлечение DomainCombiner AccessControlContext | Это позволяет кому-то получать AccessControlContext DomainCombiner . Так как DomainCombiners может содержать уязвимую информацию, это могло потенциально привести к утечке конфиденциальности. |
getPolicy | Извлечение политики безопасности в масштабе всей системы (определенно, установленного в настоящий момент объекта Политики) | Это позволяет кому-то запрашивать политику через getPermissions вызовите, который раскрывает, какие полномочия предоставили бы данному CodeSource. В то время как раскрытие политики не ставит под угрозу безопасность системы, это действительно предоставляет вредоносному коду дополнительную информацию, которую это может использовать, чтобы лучше нацелить атаку. Мудро не обнародовать больше информации чем необходимый. |
setPolicy | Устанавливая политики безопасности в масштабе всей системы (определенно, объект Политики) | Предоставление этого разрешения чрезвычайно опасно, поскольку вредоносный код может предоставить себе все необходимые полномочия, это должно успешно предпринять атаку на системе. |
createPolicy. {тип политики} | Получение экземпляра реализации Политики от провайдера | Предоставление этого разрешения позволяет коду получить объект Политики. Вредоносный код может запросить объект Политики определить то, что полномочия предоставили кодировать кроме себя. |
getProperty. {ключ} | Извлечение свойства безопасности с указанным ключом | В зависимости от определенного ключа, для которого был предоставлен доступ, у кода может быть доступ к списку поставщиков систем обеспечения безопасности, так же как расположению политики безопасности в масштабе всей системы и пользовательской политики безопасности. в то время как раскрытие этой информации не ставит под угрозу безопасность системы, это действительно предоставляет вредоносному коду дополнительную информацию, которую это может использовать, чтобы лучше нацелить атаку. |
setProperty. {ключ} | Установка свойства безопасности с указанным ключом | Это могло включать установку поставщика систем обеспечения безопасности или определение расположения политики безопасности в масштабе всей системы. Вредоносный код, у которого есть разрешение, чтобы установить нового поставщика систем обеспечения безопасности, может установить провайдера жулика, который крадет конфиденциальную информацию, такую как криптографические закрытые ключи. Кроме того, вредоносный код с разрешением, чтобы установить расположение политики безопасности в масштабе всей системы может указать на это на политику безопасности, которая предоставляет атакующему все необходимые полномочия, которых требуется, чтобы успешно предпринять атаку на системе. |
insertProvider. {имя провайдера} | Добавление нового провайдера, с указанным именем | Это позволило бы кому-то представлять возможно злонамеренного провайдера (например, тот, который раскрывает закрытые ключи, которые передают ему) как провайдер самого высокого приоритета. Это было бы возможно, потому что объект Безопасности (который управляет установленными провайдерами) в настоящий момент не проверяет целостность или подлинность провайдера прежде, чем присоединить это. |
removeProvider. {имя провайдера} | Удаление указанного провайдера | Это может изменить поведение или отключить выполнение других частей программы. Если провайдер, которого впоследствии требует программа, был удален, выполнение может перестать работать. Кроме того, если удаленного провайдера не будет явно требовать остальная часть программы, но это обычно был бы провайдер, выбранный, когда службу криптографии будут требовать (из-за ее предыдущего порядка в списке провайдеров), то различный провайдер будет выбран вместо этого, или никакой подходящий провайдер не будет найден, таким образом приводя к отказу программы. |
clearProviderProperties. {имя провайдера} | "Очистка" от Провайдера так, чтобы это больше не содержало свойства, используемые, чтобы искать службы, реализованные провайдером | Это отключает поиск служб, реализованных провайдером. Это может таким образом изменить поведение или отключить выполнение других частей программы, которая обычно использовала бы Провайдера, как описано под "removeProvider. {имя провайдера}" разрешение. |
putProviderProperty. {имя провайдера} | Установка свойств для указанного Провайдера | Свойства провайдера каждый определяет название и местоположение определенной службы, реализованной провайдером. Предоставляя это разрешение, Вы позволяете коду заменять спецификацию службы другим, таким образом определяя различную реализацию. |
removeProviderProperty. {имя провайдера} | Удаление свойств от указанного Провайдера | Это отключает поиск служб, реализованных провайдером. Они больше не доступны из-за удаления свойств, определяющих их названия и местоположение. Это может изменить поведение или отключить выполнение других частей программы, которая обычно использовала бы Провайдера, как описано под "removeProvider. {имя провайдера}" разрешение. |
Следующие полномочия связываются с классами, которые были осуждены: Identity
, IdentityScope
, Signer
. Использованию их обескураживают. См. применимые классы для получения дополнительной информации.
Целевое Имя разрешения | Что Позволяет Разрешение | Риски Разрешения этого Разрешения |
---|---|---|
setSystemScope | Установка системного контекста идентификационных данных | Это позволило бы атакующему конфигурировать системный контекст идентификационных данных с сертификатами, которым нельзя доверять, таким образом предоставляя апплет или код программы, подписанный с теми полномочиями сертификатов, которые отрицались бы исходным контекстом идентификационных данных системы. |
setIdentityPublicKey | Установка открытого ключа для Идентификационных данных | Если идентификационные данные отмечаются как "доверяющийся", это позволяет атакующему представлять различный открытый ключ (например, его собственное), которому не доверяет контекст идентификационных данных системы, таким образом предоставляя апплет или код программы, подписанный с тот полномочия с открытым ключом, которые отрицались бы иначе. |
setIdentityInfo | Установка общей информации представляет в виде строки для Идентификационных данных | Это позволяет атакующим устанавливать общее описание для идентификационных данных. Это может обмануть приложения в использование различных идентификационных данных чем предназначенный или может препятствовать тому, чтобы приложения нашли определенные идентификационные данные. |
addIdentityCertificate | Добавление сертификата для Идентификационных данных | Это позволяет атакующим устанавливать сертификат для открытого ключа идентификационных данных. Это опасно, потому что это влияет на доверительные отношения через систему. Этот открытый ключ внезапно становится доверенным более широкой аудитории, чем это иначе было бы. |
removeIdentityCertificate | Удаление сертификата для Идентификационных данных | Это позволяет атакующим удалять сертификат для открытого ключа идентификационных данных. Это опасно, потому что это влияет на доверительные отношения через систему. Этот открытый ключ внезапно становится продуманным менее защищенный, чем это иначе было бы. |
printIdentity | Просмотр имени принципала и дополнительно контекста, в котором это используется, и считают ли это "доверяемым" в том контексте | Контекст, который распечатывается, может быть именем файла, когда он может передать локальную информацию о системе. Например, вот демонстрационная распечатка идентификационных данных, названных "гимном", кто отмечается не доверяемый базе данных идентификационных данных пользователя: гимн [/home/luehe/identitydb.obj] [не доверяемый] |
getSignerPrivateKey | Извлечение закрытого ключа Подписывающего лица | Очень опасно предоставить доступ к закрытому ключу; закрытые ключи, как предполагается, держатся в секрете. Иначе, код может использовать закрытый ключ, чтобы подписать различные файлы и утверждать, что подпись прибыла от Подписывающего лица. |
setSignerKeyPair | Установка пары ключей (и закрытый ключ с открытым ключом) для Подписывающего лица | Это позволило бы атакующему заменять чей-либо ("цель") пара ключей с возможно более слабой парой ключей (например, парой ключей меньшего размера ключа). Это также позволило бы атакующему слушать в на зашифрованной передаче между целью и ее коллегами. Коллеги цели могли бы обернуть сеансовый ключ шифрования под "новым" открытым ключом цели, который позволит атакующему (кто обладает соответствующим закрытым ключом) развернуть сеансовый ключ и дешифровать коммуникационные данные, зашифрованные под тем сеансовым ключом. |
Конструктор и Описание |
---|
SecurityPermission(String name)
Создает новый SecurityPermission с указанным именем.
|
SecurityPermission(String name, String actions)
Создает новый объект SecurityPermission с указанным именем.
|
equals, getActions, hashCode, implies, newPermissionCollection
checkGuard, getName, toString
public SecurityPermission(String name)
name
- имя SecurityPermissionNullPointerException
- если name
null
.IllegalArgumentException
- если name
пусто.public SecurityPermission(String name, String actions)
name
- имя SecurityPermissionactions
- должен быть нуль.NullPointerException
- если name
null
.IllegalArgumentException
- если name
пусто.
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92