6.4. Gravação da Política do Java Security Manager
Introdução
Um aplicativo chamado policytool
está incluído na maioria das distribuições JRE e JDK, para o propósito de criação e edição das políticas de segurança do Java Security Manager. A informação detalhada sobre policytool
é conectado a partir do http://docs.oracle.com/javase/6/docs/technotes/tools/.
Informação Básica
A política de segurança consiste dos seguintes elementos de configuração:
- CodeBase
- A localização do URL (excluindo a informação domain e host) onde o código é originado. O parâmetro é opcional.
- SignedBy
- O alias usado no keystore para referência do assinante cuja chave privada era usada para inserir o código. Isto pode ser um valor único ou lista de vírgula separada de valores. Este parâmetro é opcional. Caso omitido, a presença ou falta de assinatura não possui impacto no Java Security Manager.
- Principals
- A lista dos pares principal_type/principal_name, que devem ser apresentados com o conjunto principal de thread sendo executados. A entrada dos Principals é opcional. Caso seja omitida, isto significa "quaisquer principals".
- Permissões
- A permissão é o acesso que é concedido ao código. Muitas permissões são fornecidas como parte da especificação do Java Enterprise Edition 6 (Java EE 6). Este documento descreve apenas as permissões adicionais que são fornecidas pelo JBoss EAP 6.
Procedimento 6.2. Configuração de uma nova Política do Java Security Manager
Inicie o
policytool
.Inicie a ferramentapolicytool
em uma das seguintes manerias:Red Hat Enterprise Linux
A partir de seu GUI ou prompt de comando, execute o/usr/bin/policytool
.Servidor Microsoft Windows
Execute opolicytool.exe
a partir do menu de Iniciação ou dobin\
de sua instalação do Java. A localização pode variar.
Criação de uma política.
Selecione Add Policy Entry para criar uma política. Adicione parâmetros que você precisa, e clique em Done.Edição de uma política existente
Selecione a política a partir da lista das políticas existentes e selecione o botão Edit Policy Entry. Edite os parâmetros conforme seja necessário.Exclusão de uma política existente.
Selecione a política da lista de políticas existentes e selecione o botão Remove Policy Entry.
Permissão Específica ao JBoss EAP 6
- org.jboss.security.SecurityAssociation.getPrincipalInfo
- Fornece acesso aos métodos
org.jboss.security.SecurityAssociation
.getPrincipal()
egetCredential()
. O risco relacionado com o uso desta permissão do período de execução é a habilidade de ver o chamador de thread atual e credenciais. - org.jboss.security.SecurityAssociation.getSubject
- Fornece o método
org.jboss.security.SecurityAssociation
.getSubject()
. - org.jboss.security.SecurityAssociation.setPrincipalInfo
- Fornece acesso aos métodos
org.jboss.security.SecurityAssociation
.setPrincipal()
,setCredential()
,setSubject()
,pushSubjectContext()
epopSubjectContext()
: O risco relacionado com o uso desta permissão do período de execução é a habilidade de determinar o chamador do thread atual e credenciais. - org.jboss.security.SecurityAssociation.setServer
- Fornece acesso ao método
org.jboss.security.SecurityAssociation
.setServer
. O risco relacionado com o uso desta permissão do período de execução é a habilidade de habilitar ou desabilitar o storage multi-thread do chamador principal e credencial. - org.jboss.security.SecurityAssociation.setRunAsRole
- Fornece acesso aos métodos
org.jboss.security.SecurityAssociation
pushRunAsRole()
,popRunAsRole()
,pushRunAsIdentity()
epopRunAsIdentity()
. O risco relacionado com o uso desta permissão do período de execução é a habilidade de alterar o chamador atual para executar como função principal. - org.jboss.security.SecurityAssociation.accessContextInfo
- Fornece acesso aos métodos getter e setter
org.jboss.security.SecurityAssociation
.accessContextInfo()
eaccessContextInfo()
. Isto permite que você determine e configure a informação do contexto de segurança atual. - org.jboss.naming.JndiPermission
- Fornece as permissões especiais para arquivos e diretórios num caminho de árvore JNDI especificado ou de forma recursiva a todos os subdiretórios. O JndiPermission consiste de um pathname e um conjunto de permissões válidas relacionadas ao arquivo ou diretório.As permissões disponíveis incluem:
- bind
- rebind
- unbind
- pesquisa
- lista
- listBindings
- createSubcontext
- todos
Os pathnames finalizados em/*
indicam que as permissões especificadas são aplicadas a todos os arquivos e diretórios do nome do pathname. Os pathnames finalizados em/-
indicam permissões recursivas em todos os arquivos e subdiretórios do pathname. Os pathnames consistentes do <<ALL BINDINGS>> de token especial coincidem com qualquer arquivos do diretório. - org.jboss.security.srp.SRPPermission
- A classe de permissão personalizada para proteção de acesso à informação SRP confidencial como sessão privada e chave privada. Essa permissão não possui quaisquer ações definidas. O destino
getSessionKey()
fornece acesso à chave de sessão privada que resulta da negociação SRP. O acesso à esta chave permite a criptografia e descriptografia de mensagens que foram criptografadas à chave da sessão. - org.hibernate.secure.HibernatePermission
- A classe de permissão fornece permissões básicas para segurança das sessões Hibernate. O destino para esta propriedade é o nome de entidade. As ações disponíveis incluem:
- inserir
- excluir
- atualizar
- ler
- * (todos)
- org.jboss.metadata.spi.stack.MetaDataStackPermission
- Fornece uma classe de permissão personalizada para controle de como os chamadores interagem com a pilha metadados. As permissões disponíveis são:
- modificar
- enviar (à pilha)
- pop (fora da pilha)
- inspecionar (na pilha)
- * (todos)
- org.jboss.config.spi.ConfigurationPermission
- Garante a determinação das propriedades de configuração. Define apenas os nomes de destino e nenhuma das ações. Os destinos para esta propriedade incluem:
- <property name> (a propriedade que este código possui permissão de configurar)
- * (todas as propriedades)
- org.jboss.kernel.KernelPermission
- Garante acesso à configuração do kernel. Define apenas os nomes do destino de permissão e sem ações. Os destinos para a propriedade incluem:
- acesso (à configuração do kernel)
- configuração (implica no acesso)
- * (todos)
- org.jboss.kernel.plugins.util.KernelLocatorPermission
- Garante acesso ao kernel. Define apenas os nomes do destino de permissão e nenhuma ação. Os destinos para a propriedade incluem:
- kernel
- * (todos)