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

  1. Inicie o policytool.

    Inicie a ferramenta policytool 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 o policytool.exe a partir do menu de Iniciação ou do bin\ de sua instalação do Java. A localização pode variar.
  2. 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.
  3. 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.
  4. 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() e getCredential(). 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() e popSubjectContext(): 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.SecurityAssociationpushRunAsRole(), popRunAsRole(), pushRunAsIdentity() e popRunAsIdentity(). 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() e accessContextInfo(). 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)