Este documento fornece instruções sobre como criar e configurar um arquivo de política de segurança no Java para controlar o acesso a recursos por aplicativos. Ele explica como usar a ferramenta de política para adicionar uma entrada que concede permissão para código de um local específico e mostra como aplicar essa política para restringir o acesso de uma aplicação a propriedades do sistema.
Este documento fornece instruções sobre como criar e configurar um arquivo de política de segurança no Java para controlar o acesso a recursos por aplicativos. Ele explica como usar a ferramenta de política para adicionar uma entrada que concede permissão para código de um local específico e mostra como aplicar essa política para restringir o acesso de uma aplicação a propriedades do sistema.
Este documento fornece instruções sobre como criar e configurar um arquivo de política de segurança no Java para controlar o acesso a recursos por aplicativos. Ele explica como usar a ferramenta de política para adicionar uma entrada que concede permissão para código de um local específico e mostra como aplicar essa política para restringir o acesso de uma aplicação a propriedades do sistema.
Funes de segurana ajudam a proteger os seus programas e dados de danos,
para manter os dados protegidos e privados e implantar novas aplicaes em ambientes de execuo de segurana consciente. Java tambm fornece vrias ferramentas para ajud-lo a gerenciar o acesso aos recursos do sistema; para criar, armazenar e manter pblico criptografado e senhas pessoais (pares de chaves) e certificados; e para criar e assinar jarfiles durante o processo de implantao.
Nota: Para uma breve viso geral dos recursos de segurana suportados no Java SE 7, consulte o Viso Geral de Segurana Whitepaper no diretrio Guias de Segurana. Lio: Criando um arquivo de poltica Esta lio mostra como um arquivo de poltica, que controla os acessos de recursos, pode ser criado. O passo para esta lio a seguinte: Configurar um arquivo de diretiva para conceder a permisso necessria Configure um arquivo de diretiva para conceder a permisso necessria Um arquivo de poltica um arquivo de texto ASCII e pode ser composto por um editor de texto ou o utilitrio grfico Ferramenta de Poltica demonstrado nesta seo. A Ferramenta de Poltica poupa digitao e elimina a necessidade de voc saber a sintaxe necessria de arquivos de polticas, reduzindo erros. Esta lio usa a ferramenta de Poltica para criar um arquivo de poltica chamado examplepolicy , em que voc vai adicionar uma entrada de poltica que concede cdigo da examples de permisso de diretrio para escrever. Siga estes passos para criar e modificar o seu novo arquivo de poltica: 1. Iniciar Ferramenta Poltica 2. Conceda a permisso necessria 3. Salve o arquivo de diretiva
Nota para usurios do UNIX: Os passos ilustram a criao do arquivo de poltica para um sistema Windows. Os passos so exatamente o mesmo se voc estiver trabalhando em um sistema UNIX. Quando o texto diz para armazenar o arquivo de poltica no C:\Test diretrio, voc pode armazen-lo em outro diretrio. Os exemplos na aula Quick Tour de Controle de aplicativos assumir que ele est armazenado no ~/test diretrio.
Iniciar Ferramenta Poltica Para iniciar a ferramenta de Poltica, simplesmente digite o seguinte na linha de comando: policytool Isso traz a janela Ferramenta de Poltica. Sempre Policy Tool iniciado, ele tenta preencher esta janela com informaes sobre a poltica a partir do arquivo de poltica de usurio. O arquivo de poltica de usurio chamado .java.policy por padro no seu diretrio home. Se Ferramenta Poltica no pode encontrar o arquivo de poltica de usurio, ele emite um aviso e exibe uma janela Ferramenta de Poltica em branco (uma janela com ttulos e botes, mas no existem dados no mesmo), como mostrado na figura a seguir.
Voc pode, ento, avanar para a abertura de um arquivo de poltica existente ou criar um novo arquivo de poltica. A primeira vez que voc executar a ferramenta de Poltica, voc ver a janela Ferramenta de Poltica em branco, uma vez que um arquivo de poltica usurio ainda no existe.Voc pode proceder de imediato para criar um novo arquivo de poltica, conforme descrito na prxima etapa. Conceda a permisso necessria Para criar uma nova entrada, clique no boto Adicionar entrada de Poltica na janela principal ferramenta poltica. Isso exibe a caixa de dilogo Entrada de Poltica, como mostrado na figura a seguir.
A entrada de poltica especifica uma ou mais permisses para cdigo de uma fonte de cdigo particular - Cdigo de um local especfico (URL), cdigo assinado por uma entidade particular, ou de ambos. A base de cdigo e as caixas de texto SignedBy especificar qual cdigo que voc deseja conceder a permisso (s) voc estar adicionando no arquivo. Um valor CodeBase indica a localizao de cdigo fonte; voc conceder a permisso (s) de cdigo a partir desse local. Uma entrada CodeBase vazio significa "qualquer cdigo" - no importa onde o cdigo se origina. Um valor SignedBy indica o alias para um certificado armazenado em um armazenamento de chave. A chave pblica dentro desse certificado usado para verificar a assinatura digital do cdigo. Voc conceder permisso para cdigo assinado pela chave privada correspondente chave pblica na entrada do armazenamento de chaves especificado pelo alias. A entrada SignedBy opcional; omitindo que significa "qualquer signatrio" - no importa se o cdigo assinado, ou por quem. Se voc tem tanto uma base de cdigo e uma entrada SignedBy, a permisso (s) so concedidas apenas para o cdigo que ao mesmo tempo a partir do local especificado eassinado pelo alias chamado. Voc pode conceder permisso para todo o cdigo a partir da localizao (URL) onde exemplos so armazenados. Digite o seguinte URL na caixa de texto CodeBase da caixa de dilogo Entrada de Poltica: http://docs.oracle.com/javase/tutorial/security/tour1/examples/ Nota: Esta uma URL. Portanto, ele deve sempre usar barras como separadores, e no barras invertidas. Deixe a caixa de texto em branco SignedBy, j que voc no est exigindo que o cdigo a ser assinado.
Nota: Para conceder a permisso para qualquer cdigo ( .class arquivo) no apenas a partir do diretrio especificado anteriormente, mas a partir da securitydiretrio e seus subdiretrios, digite o seguinte URL na caixa de CodeBase: http://docs.oracle.com/javase/tutorial/security/
Voc especificou onde o cdigo vem (o CodeBase), e que o cdigo no tem que ser assinado (j que no h valor SignedBy). Voc j atualizou esta entrada de poltica, ento clique no boto Concludo na caixa de dilogo Entrada de Poltica. A janela Ferramenta de Poltica agora contm uma linha que representa a entrada de poltica, mostrando a CodeBase valor.
Nota: Estaremos a concesso de permisses para esta nova opo poltica na prxima lio. Salve o arquivo de diretiva Para salvar o novo arquivo de poltica que voc est criando, escolha o comando Salvar como no menu Arquivo. Isso exibe a caixa de dilogo Salvar como. Os exemplos na Tour Rpido dos Controladores Aplicaes lio supor que voc armazenou o arquivo de poltica no Test diretrio no C: unidade. Navegue para o Test de diretrio. Digite o nome do arquivo examplepolicy e clique em Salvar. O arquivo de poltica agora est salvo, e seu nome e caminho so mostrados na caixa de texto chamada Policy File .
Saia Policy Tool, escolhendo Sair no menu Arquivo. Lio: Quick Tour de Controle de aplicativos
Aula Pr-requisito: Criar um arquivo de poltica
Esta lio mostra como usar um gestor de segurana para conceder ou negar o acesso aos recursos do sistema para as aplicaes. A lio mostra tambm como recurso acessos, como a leitura ou gravao de um arquivo, no so permitidas para aplicaes que so executados com um gestor de segurana, a menos que explicitamente permitido por uma entrada de permisso em um arquivo de poltica. Os passos para esta lio so: 1. Observe Freedom Aplicao 2. Veja Como restringir Applications 3. Configurar o arquivo de diretiva para conceder as permisses necessrias 4. Veja os Efeitos da Poltica de arquivo Observe Freedom Aplicao Um gerente de segurana no instalado automaticamente quando um aplicativo est sendo executado. No prximo passo , voc ver como aplicar a mesma poltica de segurana a um aplicativo encontrado no sistema de arquivos local, como a applets sandbox baixados. Mas, primeiro, vamos demonstrar que um gestor de segurana , por padro, no for instalado para uma aplicao, e, portanto, o aplicativo tem acesso completo aos recursos. Crie um arquivo chamado GetProps.java no seu computador por qualquer cpia ou baixar o GetProps.java cdigo fonte. Os exemplos nesta lio supor que voc colocar GetProps.java no C:\Test diretrio se voc estiver usando um sistema Windows ou no ~/test diretrio no UNIX. Como voc pode ver, se voc examinar o arquivo de origem, o programa tenta fazer com que (ler) os valores de propriedade, cujos nomes so "os.name" ,"java.version" , "user.home" , e "java.home" . Agora compilar e executar GetProps.java . Voc dever ver uma sada como a seguinte: C: \ test> GetProps java Sobre para obter o valor da propriedade os.name O nome do seu sistema operacional : Windows XP Sobre para obter o valor da propriedade java.version A verso do JVM voc est executando : 1.6.0 Sobre para obter o valor da propriedade user.home O diretrio home do usurio : C: \ WINDOWS Sobre para obter java.home valor da propriedade O seu diretrio de instalao do JRE : C: \ JDK7.0.0 \ JRE Isso mostra que o pedido foi autorizado a aceder a todos os valores de propriedade, como mostrado na figura a seguir.
Veja Como restringir Applications Como voc viu no passo anterior , o tempo de execuo Java no instala automaticamente um Gerente de Segurana, quando se executa um aplicativo. Para aplicar a mesma poltica de segurana a um aplicativo encontrado no sistema de arquivos local, como a applets sandbox baixado, voc pode invocar o intrprete com a nova - Djava.security.manager argumento de linha de comando. Para executar o GetProps aplicao com o gerente de segurana padro, digite o seguinte: GetProps java-Djava.security.manager Aqui est a sada do programa: C: \ test> GetProps java-Djava.security.manager Sobre para obter o valor da propriedade os.name O nome do seu sistema operacional : SunOS Sobre para obter o valor da propriedade java.version A verso do JVM voc est executando : 1.7.0 Sobre para obter o valor da propriedade user.home Java.security.AccessControlException exceo Caught: acesso negado ("java.util.PropertyPermission" "User.home" "ler") O processo mostrado na figura a seguir.
Propriedades de Segurana Sensveis O tempo de execuo Java carrega um arquivo de poltica padro por padro e concede todas as permisses cdigo para acessar algumas propriedades geralmente teis, tais como "os.name" e "java.version" . Essas propriedades no so sensveis segurana, para a concesso dessas permisses normalmente no representar um risco de segurana. As outras propriedades GetProps tenta acessar, "user.home" e "java.home" , no esto entre as propriedades, que os subsdios de arquivo de poltica sistema de permisso de leitura. Assim, logo que GetProps tenta acessar a primeira dessas propriedades ( "user.home" ), o gerente de segurana impede o acesso e relatrios de umaAccessControlException . Essa exceo indica que a poltica atualmente em vigor, que consiste de entradas em uma ou mais arquivos de poltica, no permite permisso para ler o "user.home" propriedade.
Nota: O cdigo pode sempre ler um arquivo do mesmo diretrio que est em (ou um subdiretrio deste diretrio); ele no precisa de permisso explcita para faz-lo. Cdigo tambm pode obter o caminho do diretrio executado a partir de, e este caminho pode conter informaes confidenciais. Por exemplo, se o cdigo executado a partir de um diretrio home (ou um subdiretrio do diretrio home), o caminho pode revelar o nome do usurio atual.
O Arquivo de Poltica Padro O arquivo de poltica padro, java.policy (por padro), localizado em: Do Windows: java.home \lib\security\java.policy UNIX: java.home /lib/security/java.policy Note-se que java.home representa o valor do "java.home" propriedade, que uma propriedade do sistema especificando o diretrio em que o JRE foi instalado. Assim, se o JRE foi instalado no diretrio chamado C:\jdk\jre no Windows e /jdk/jre no UNIX, o arquivo de poltica do sistema est localizado em: Do Windows: C:\jdk\jre\lib\security\java.policy UNIX: /jdk/jre/lib/security/java.policy Configure a Poltica de Arquivo para conceder as permisses necessrias Esta etapa utiliza o utilitrio Ferramenta de Poltica para abrir o arquivo de poltica chamado examplepolicy criado na criao de um arquivo de diretiva lio. Voc ir adicionar uma nova entrada de permisso poltica de concesso para o cdigo a partir do diretrio onde GetProps.class armazenado para ler a "user.home" e os"java.home" valores de propriedade, como mostrado na figura a seguir.
As etapas so as seguintes. 1. Abra o arquivo de diretiva 2. Conceder as permisses necessrias 3. Salve o arquivo de diretiva
Nota para usurios do UNIX: As instrues ilustrar a criao do arquivo de poltica para um sistema Windows. Os passos so exatamente o mesmo se voc estiver trabalhando em um sistema UNIX, com as seguintes diferenas. Voc recupera o examplepolicy arquivo a partir do test diretrio no seu diretrio home. Para a URL CodeBase na etapa para a concesso das permisses necessrias, voc pode substituir file:${user.home}/test/ para file:/C:/Test/ .Alternativam ente, voc pode especificar diretamente seu diretrio pessoal, em vez de se referir "user.home" propriedade, como emfile:/home/jones/test/ . Abra o arquivo de diretiva Comece Policy Tool, digitando o seguinte na linha de comando: policytool Isso traz a janela Ferramenta de Poltica. Para abrir o examplepolicy arquivo de poltica, use o comando Abrir no menu Arquivo. Isto ir apresent-lo com um dilogo aberto, que voc pode usar para navegar na estrutura de diretrios at chegar ao diretrio que contm o arquivo de poltica (isto , o C:\Test\ diretrio). Escolha o examplepolicy arquivo nesse diretrio e, em seguida, selecione o boto Abrir. Isto ir preencher a janela de ferramenta de poltica com informaes do examplepolicy arquivo de poltica, incluindo o nome do arquivo de poltica e da parte CodeBaseda entrada poltica criada pela criao de uma Poltica de Arquivo lio.
Conceder as permisses necessrias Para conceder a GetProps permisso aplicativo para ler a "user.home" e "java.home" valores de propriedade, voc deve criar uma entrada de poltica de concesso dessas permisses. Escolha o boto Adicionar entrada de Poltica na janela principal ferramenta poltica. Isso traz a caixa de dilogo Entrada Poltica, como mostrado na figura a seguir.
Digite o seguinte URL do arquivo na caixa de texto CodeBase para indicar que voc est indo para ser a concesso de uma permisso para codificar a partir do diretrio especificado, que o diretrio no qual GetProps.class armazenado. file :/ C :/ Teste / (Note, este um URL e, portanto, deve sempre ter barras, e no barras invertidas.) Deixe a caixa de texto em branco SignedBy, j que voc no est exigindo que o cdigo a ser assinado. Para adicionar permisso para ler o "user.home" valor da propriedade, escolha o boto Adicionar permisso. Isso traz a caixa de dilogo Permisses.
Faa o seguinte. 1. Escolha Permisso de propriedade da lista drop-down de permisso. O nome do tipo de permisso completo ( java.util.PropertyPermission ) agora aparece na caixa de texto direita da lista drop-down. 2. Digite o seguinte na caixa de texto direita da lista denominado Nome Alvo para especificar o "user.home" propriedade: 3. user.home 4. Especifique permisso para ler esta propriedade, selecionando a opo de leitura a partir da lista suspensa Aes. Agora, a caixa de dilogo Permisses parece com o seguinte.
Escolha o boto OK. A nova permisso aparece em uma linha na janela de entrada de poltica.
Para adicionar permisso para ler o "java.home" valor do imvel, escolher novamente no boto Adicionar permisso. Na caixa de dilogo Permisses, faa o seguinte: 1. Escolha Permisso de propriedade da lista drop-down de permisso. 2. Digite o seguinte na caixa de texto direita da lista denominado Nome Alvo para especificar o "java.home" propriedade: 3. java.home 4. Especifique permisso para ler esta propriedade, escolhendo a opo de leitura a partir da lista suspensa Aes. Agora, a caixa de dilogo Permisses parece com o seguinte.
Escolha o boto OK. A nova autorizao ea permisso adicionado anteriormente aparecem em linhas na janela de entrada de poltica, como mostrado na figura a seguir.
Voc agora est feito especificando esta entrada poltica, ento escolha o boto Done no dilogo Entrada de Poltica. A janela Ferramenta de Poltica inclui agora uma linha que representa a nova entrada de poltica, mostrando o valor base de cdigo. Salve o arquivo de diretiva Para salvar o arquivo de poltica, simplesmente escolha o comando Salvar no menu Arquivo. Em seguida, saia da ferramenta Poltica escolhendo o comando Sair no menu Arquivo. Veja os Efeitos da Poltica de arquivo Agora que voc adicionou a entrada de poltica necessria para a examplepolicy arquivo de poltica, voc deve ser capaz de ler as propriedades especificadas quando voc executar o GetProps aplicativo com um gestor de segurana, como mostrado na figura a seguir.
Sempre que voc executar um applet ou um aplicativo com um gestor de segurana, os arquivos de polticas que so carregados e usados por padro so os especificados no"arquivo de propriedades de segurana", que est localizado em um dos seguintes diretrios: Do Windows: java.home \lib\security\java.security UNIX: java.home /lib/security/java.security Nota: Os nomes de variveis de ambiente java.home o diretrio em que o JRE foi instalado. Os locais de arquivo de poltica so especificados como os valores das propriedades cujos nomes tm o formato: policy.url. n Quando a varivel n indica um nmero. Especifique cada valor de propriedade em uma linha que toma a seguinte forma: policy.url. n = URL Onde URL uma especificao de URL. Por exemplo, os arquivos de poltica padro, por vezes referido como o sistema e arquivos de poltica do usurio, respectivamente, so definidas nas propriedades de segurana arquivo como policy.url.1 = file: $ {java.home} / lib / security / java.policy policy.url.2 = file:. $ {user.home} / java.policy
Nota: O uso da notao ${propName} no arquivo de propriedades de segurana uma forma de especificar o valor de uma propriedade. Assim ${java.home}sero substitudos em tempo de execuo pelo valor real do "java.home" propriedade, o que indica o diretrio no qual o JRE foi instalado, e ${user.home} ser substitudo pelo valor de o "user.home" propriedade, por exemplo, C:\Windows .
H duas maneiras possveis que voc pode ter o examplepolicy arquivo ser considerada como parte da poltica em geral, alm dos arquivos de poltica especificados no arquivo de propriedades de segurana. Ou voc pode especificar o arquivo de poltica adicional em uma propriedade passada para o sistema de execuo, conforme descrito na Abordagem 1 , ou adicionar uma linha nas propriedades de segurana de arquivos especificando o arquivo de poltica adicional, como discutido na Abordagem 2 . Abordagem 1 Voc pode usar um -Djava.security.policy intrprete argumento de linha de comando para especificar um arquivo de poltica que deve ser usado em conjunto com os especificados no arquivo de propriedades de segurana. Certifique-se de que voc est no diretrio que contm GetProps.class e examplepolicy . Em seguida, voc pode executar o GetProps aplicao e passar aexamplepolicy arquivo de poltica para o intrprete, digitando o seguinte comando em uma linha: java-Djava.security.manager-Djava.security.policy = examplepolicy GetProps Nota: Lembre-se que -Djava.security.manager necessrio para executar um aplicativo com um gerente de segurana, como mostra a Veja Como restringir Applications passo. O programa informa os valores da "user.home" e "java.home" propriedades. Se o aplicativo ainda relata um erro, algo est errado no arquivo de poltica. Use a ferramenta de Poltica de verificar a entrada de poltica que voc acabou de criar noconfigurar o arquivo de diretiva para conceder o Permisses necessrias passo. Abordagem 2 Voc pode especificar um nmero de URLs em policy.url.n propriedades nas propriedades de segurana de arquivos, e todos os arquivos de poltica designados vai ficar carregado. Portanto, uma forma de ter o seu examplepolicy entradas de poltica do arquivo considerados pelo java intrprete adicionar uma entrada especificando que arquivo de poltica no arquivo de propriedades de segurana.
Importante: Se voc estiver executando a sua prpria cpia do JDK, voc pode facilmente editar o seu arquivo de propriedades de segurana. Se voc estiver executando uma verso compartilhada com outros usurios, voc s pode ser capaz de modificar as propriedades de segurana de todo o sistema de arquivos, se voc tiver acesso de gravao para ele ou se voc perguntar ao seu administrador do sistema para modificar o arquivo quando for o caso. No entanto, provavelmente no adequado para voc fazer modificaes em um arquivo de poltica de todo o sistema para este teste tutorial. Sugerimos que voc acabou de ler o seguinte para ver como ele feito ou que voc instale sua prpria verso particular do JDK para usar para as lies do tutorial.
Para modificar o arquivo de propriedades de segurana, abra-o em um editor adequado para a edio de um arquivo de texto ASCII. Em seguida, adicione a seguinte linha aps a linha que contm policy.url.2 : Se voc estiver em um sistema Windows, adicione policy.url.3 = file :/ C :/ Teste / examplepolicy Se voc estiver em um sistema UNIX, adicione policy.url.3 = file: $ {} user.home / test / examplepolicy Em um sistema UNIX, voc pode alternativamente especificar explicitamente seu diretrio home, como em policy.url.3 = file :/ home / jones / test / examplepolicy Executar o aplicativo Agora voc deve ser capaz de executar com xito o seguinte. GetProps java-Djava.security.manager Tal como acontece com a abordagem 1, se voc ainda receber uma exceo de segurana, algo est errado no arquivo de poltica. Use a ferramenta de Poltica de verificar a entrada de poltica que voc acabou de criar no configurar o arquivo de diretiva para conceder o Permisses necessrias passo. Em seguida, corrigir eventuais erros de digitao ou outros erros.
Importante: Voc no precisa incluir o examplepolicy arquivo a menos que voc estiver executando esta lio Tutorial. Para excluir este arquivo, abra o arquivo de propriedades de segurana e apagar a linha que voc acabou de adicionar.
Antes de continuar, voc pode querer apagar a linha que voc acabou de adicionar nas propriedades de segurana de arquivo (ou coment-lo), j que voc provavelmente no quer a examplepolicy arquivo includo quando voc no estiver executando as lies do tutorial. Lio: API e usar ferramentas para cdigo seguro e arquivo Trocas Esta lio explica por que as assinaturas digitais, certificados e armazenamentos de chaves so necessrios. A lio tambm compara o uso das ferramentas contra a API JDK de segurana com relao gerao de assinaturas. Tal uso da ferramenta demonstrado nas prximas duas aulas, assinatura de cdigo e concedendo-lhe permisses e troca de arquivos . Uso da API demonstrado na gerao e verificao de assinaturas lio. Esta lio contm as seguintes sees Cdigo e Segurana Documento Ferramenta e API Notas O uso da API JDK Segurana para assinar documentos Uso das ferramentas para assinar o cdigo ou Documentos Cdigo e Segurana Documento Se voc enviar eletronicamente algum um importante documento (ou documentos), ou um applet ou aplicativo para ser executado, o destinatrio precisa de uma forma para verificar se o documento ou cdigo veio de voc e no foi modificada em trnsito (por exemplo, um usurio mal-intencionado interceptando-lo). As assinaturas digitais, certificados e armazenamentos de chaves todos os ajudar a garantir a segurana dos arquivos enviados. Assinaturas digitais A ideia de base da utilizao de assinaturas digitais a seguinte. 1. Voc "assinar" o documento ou cdigo usando uma das suas chaves privadas, que voc pode gerar usando keytool ou mtodos da API de segurana. Ou seja, voc gera uma assinatura digital do documento ou cdigo, usando o jarsigner ferramenta ou mtodos de API de Segurana. 2. Voc enviar o documento assinado para o seu destinatrio. 3. Voc tambm fornecer seu destinatrio com a chave pblica. Esta chave pblica corresponde chave privada que voc originalmente usado para gerar a assinatura. 4. Seu destinatrio usa a chave pblica para verificar se o documento veio de voc e no foi modificado antes de chegar a ele / ela. Um destinatrio precisa para garantir que sua prpria chave pblica autntico antes que ele / ela pode us-lo para verificar se a assinatura autntica. Portanto, voc geralmente vai fornecer um certificado que contm a chave pblica juntamente com a chave de uma autoridade de certificao que pode atestar a autenticidade de sua chave. Consulte a prxima seo para mais detalhes. Para mais informaes sobre a terminologia e os conceitos de assinatura e verificao, e mais explicaes sobre os benefcios, consulte o Arquivo de assinatura JAR seo do "Os Programas de empacotamento em arquivos JAR" lio. Certificados Um certificado contm: A chave pblica. O "distinto-name" informaes da entidade (pessoa, empresa, ou assim por diante), cujo certificado . Esta entidade referido como o assunto do certificado, ou o proprietrio. A informao distinto nome inclui os seguintes atributos (ou um subconjunto): nome da entidade, Unidade Organizacional, Organizao, para a cidade ou localidade, estado ou provncia, e cdigo de pas. Uma assinatura digital. Um certificado assinado por uma entidade, a emissora, para atestar o fato de que a chave pblica fechada a chave pblica real de outra entidade, o proprietrio. A informao distinto nome para o assinante (emissor). Um caminho para um destinatrio para verificar se um certificado vlido verificando sua assinatura digital, usando a chave pblica do seu emissor (assinante). Essa chave propriamente dita pode ser armazenada dentro de um outro certificado cuja assinatura tambm pode ser verificada utilizando a chave pblica do emissor, que ao lado do certificado, e essa chave pode tambm ser armazenada em ainda outro certificado, e assim por diante. Voc pode interromper a verificao, quando voc chegar a uma chave pblica que voc j confia e us-lo para verificar a assinatura do certificado correspondente. Se o destinatrio no consegue estabelecer uma cadeia de confiana, ento ele / ela pode calcular a impresso digital (s) certificado, usando o keytool - import ou -printcert comando. A impresso digital um nmero relativamente curto que exclusivamente e de forma confivel identifica o certificado. (Tecnicamente, a impresso digital um valor hash do certificado de informao, atravs de uma mensagem digerir funo.) O beneficirio pode, ento, telefonar para o proprietrio do certificado e comparar os valores de impresses digitais do certificado recebido com o certificado que foi enviado. Se as impresses digitais so o mesmo, os certificados so o mesmo. Assim, voc pode garantir que o certificado no foi modificada em trnsito. Uma outra incerteza potencial quando se trabalha com certificados a identidade do remetente. s vezes, um certificado auto-assinado,ou seja, assinado com a chave privada correspondente chave pblica no certificado; o emissor o mesmo que o sujeito. Auto-assinatura de um certificado til para desenvolver e testar um aplicativo. No entanto, antes de implantar para os usurios, obter um certificado de uma terceira parte confivel, conhecido como uma autoridade de certificao (CA). Para faz-lo, voc envia uma auto-assinado pedido de assinatura de certificado (CSR) para o CA. A CA verifica a assinatura no CSR e sua identidade, talvez verificando sua carteira de motorista ou outras informaes. A CA, ento, atesta para o seu ser o proprietrio da chave pblica atravs da emisso de um certificado e assin-lo com sua prpria chave privada (do CA). Qualquer um que confia na chave pblica do CA emissora agora pode verificar a assinatura no certificado. Em muitos casos, a prpria AC emissora pode ter um certificado de uma CA mais acima na hierarquia de CA, levando a cadeias de certificados. Certificados de entidades que voc confia normalmente so importados para o armazenamento de chaves como "certificados confiveis." A chave pblica em cada um dos certificados podem ento ser utilizados para verificar as assinaturas geradas utilizando a chave privada correspondente. Estas verificaes podem ser realizadas por: o jarsigner ferramenta (se o documento / cdigo e assinatura aparecer em um arquivo JAR) Mtodos de API, ou o sistema de tempo de execuo, quando o acesso a recursos tentada e um arquivo de poltica especifica que o acesso a recursos permitido para o cdigo de tentar o acesso se a sua assinatura autntica. Arquivo do cdigo da classe (s) ea assinatura devem estar em um arquivo JAR. Se voc estiver enviando cdigo assinado ou documentos para outras pessoas, voc precisa fornecer-lhes o certificado que contm a chave pblica correspondente chave privada usada para assinar o cdigo / documento. O keytool -export comando ou mtodos de API pode exportar seu certificado da keystore para um arquivo, que pode ser enviado para qualquer pessoa que necessite dele. A pessoa que recebe o certificado pode import-lo para o armazenamento de chaves de um certificado confivel, usando, por exemplo, mtodos de API ou o keytool -import de comando. Se voc usar o jarsigner ferramenta para gerar uma assinatura para um arquivo JAR, a ferramenta recupera o seu certificado e sua cadeia de certificados de apoio de seu armazenamento de chaves. A ferramenta, em seguida, armazena-os, juntamente com a assinatura, no arquivo JAR. Keystores As chaves privadas e os certificados de chaves pblicas associadas so armazenados em bancos de dados protegidos por senha chamadas armazenamentos de chaves. Um armazenamento de chaves pode conter dois tipos de entradas: as entradas de certificao confiveis discutidos acima, e entradas de chave / certificado, cada um contendo uma chave privada eo certificado de chave pblica correspondente. Cada entrada em um armazenamento de chave identificado por um pseudnimo. Um proprietrio de armazenamento de chave pode ter vrias chaves no armazenamento de chaves, acessados atravs de diferentes aliases. Um alias normalmente o nome de um papel particular em que o proprietrio de armazenamento de chave usa a chave associada. Um nome alternativo pode tambm identificar o efeito da chave. Por exemplo, o alias signPersonalEmail pode ser usado para identificar uma entrada de keystore cuja chave privada usada para assinar e-mail pessoal, eo alias signJarFiles pode ser usado para identificar uma entrada cuja chave privada usada para assinar arquivos JAR. A keytool de ferramentas pode ser usado para Criar chaves privadas e os certificados de chaves pblicas associadas Solicitaes de certificados de emisso, que voc enviar para a autoridade de certificao apropriada Respostas de certificados de importao, obtidos a partir da autoridade de certificao que voc contactado Certificados de chave pblica de importao pertencentes a outras partes como certificados confiveis Gerenciar seu armazenamento de chaves Mtodos da API tambm pode ser usado para acessar e modificar um armazenamento de chave. Ferramenta e API Notas Observe o seguinte a respeito do uso das ferramentas ea API relacionada com assinaturas digitais. Voc pode usar a API do JDK de segurana, ferramentas, ou uma combinao para gerar chaves e assinaturas e certificados de importao. Voc pode usar esses recursos da API ou ferramenta para a troca de documentos de forma segura com os outros. Para usar as ferramentas para a troca de documentos, o documento (s) deve ser colocado em um arquivo JAR (Java Archive), que pode ser criada pelo jar ferramenta. Um arquivo JAR uma boa maneira de encapsular vrios arquivos em um ponto. Quando um arquivo "assinado", os bytes resultantes de assinatura digital precisam ser armazenados em algum lugar. Quando um arquivo JAR assinado, a assinatura pode ir no prprio arquivo JAR. Isto o que acontece quando voc usa o jarsigner ferramenta para assinar um arquivo JAR. Se voc estiver criando cdigo applet que voc vai assinar, ele precisa ser colocado em um arquivo JAR. O mesmo verdade se voc estiver criando cdigo de aplicativo que pode ser da mesma forma restrita, executando-o com um gerente de segurana. A razo pela qual voc precisa do arquivo JAR que, quando um arquivo de poltica especifica que o cdigo assinado por uma entidade particular permitido uma ou mais operaes, tais como arquivo especfico l ou escreve, o cdigo esperado para vir de um arquivo JAR assinado. (O termo "cdigo de assinatura" uma forma abreviada de dizer "o cdigo em um arquivo de classe que aparece em um arquivo JAR que foi assinado.") Para que o sistema de execuo para verificar uma assinatura de cdigo, a pessoa / empresa que ir executar o cdigo primeiro precisa importar para o seu armazenamento de chaves de um certificado que autentica a chave pblica correspondente chave privada usada para assinar o cdigo. Para que o jarsigner ferramenta para verificar a autenticidade de uma assinatura arquivo JAR, a pessoa / organizao que recebeu o arquivo JAR primeiro precisa importar para o seu armazenamento de chaves de um certificado que autentica a chave pblica correspondente chave privada usada para assinar o cdigo. Neste momento no existem APIs para criao de certificado. O uso da API JDK Segurana para assinar documentos A gerao e verificao de assinaturas mostra como usar a API do JDK Segurana para assinar documentos. A lio mostra que um programa, executado pela pessoa que tenha o documento original, faria a gerar chaves, gerar uma assinatura digital para os dados usando a chave privada, e exportar a chave pblica e assinatura de arquivos. Em seguida, ela mostra um exemplo de outro programa, executado pelo receptor dos dados, assinatura, e a chave pblica. Mostra como o programa Importa a chave pblica Verifica a autenticidade da assinatura. Esta lio mostra tambm formas alternativas de chaves, incluindo certificados de importao e fornecimento. Uso das ferramentas para assinar o cdigo ou Documentos A assinatura de cdigo e concedendo-lhe permisses lio mostra como usar as ferramentas Java Segurana para colocar seu cdigo em um arquivo JAR, assin-lo e exportar a sua chave pblica. Em seguida, ele mostra como o destinatrio pode usar essas mesmas ferramentas Java para importar o certificado de chave pblica e, em seguida, adicionar uma entrada para um arquivo de poltica que ir conceder o seu cdigo a permisso que ele precisa para acessar os recursos do sistema controlado pelo seu destinatrio. A troca de arquivos lio como usar ferramentas de segurana Java para assinar um documento e, em seguida, exportar o certificado de chave pblica para a chave pblica usando keytool . correspondente chave privada usada para assinar esse documento usando keytool . Em seguida, ele mostra como o destinatrio pode verificar a sua assinatura com a instalao de seu certificado de chave pblica e, em seguida, usando o jarsigner ferramenta para verificar a sua assinatura. Estas duas aulas tm muito em comum. Em ambos os casos, os primeiros dois passos para o cdigo ou documento remetente so os seguintes: Crie um arquivo JAR que contm o arquivo de documento ou classe, usando o jar ferramenta. Gerar chaves (se no existir), usando o keytool -genkey comando. Os dois passos seguintes so opcionais: Use o keytool -certreq comando; em seguida, enviar a solicitao de assinatura de certificado resultante de uma autoridade de certificao (CA), como a VeriSign. Use o keytool -import comando para importar a resposta do CA. So necessrios os prximos dois passos: Entre o arquivo JAR, usando o jarsigner ferramenta ea chave privada gerada anteriormente. Exportar o certificado de chave pblica, usando o keytool -export de comando. Em seguida, fornecer o arquivo JAR assinado e certificado para o receptor. Em ambos os casos, o receptor do arquivo JAR assinado eo certificado deve importar o certificado como um certificado confivel, usando o keytool - import de comando. O keytool tentar construir uma cadeia de confiana do certificado a ser importado para um certificado j confiava no armazenamento de chaves. Se isso falhar, o keytool ir exibir o certificado digital e pedir-lhe para verificar isso. Se o que foi enviado foi cdigo, o receptor tambm precisa modificar um arquivo de poltica para permitir que o recurso necessrio acessos ao cdigo assinado pela chave privada correspondente chave pblica no certificado importado. A Ferramenta de Poltica pode ser usado para fazer isso. Se o que foi enviado foi um ou mais documentos, o receptor precisa de verificar a autenticidade da assinatura do arquivo JAR, usando o jarsigner ferramenta. Esta lio discute as duas etapas opcionais. As outras etapas so cobertos nas prximas duas lies, assinatura de cdigo e concedendo-lhe Permissions e troca de arquivos . Gerando um Pedido de Assinatura de Certificado (CSR) para um certificado de chave pblica Quando keytool usado para gerar pares de chaves pblicas / privadas, cria- se uma entrada de armazenamento de chaves contendo uma chave privada e um certificado auto-assinado para a chave pblica. (Ou seja, o certificado assinado com a chave privada correspondente.) Esta adequado ao desenvolver e testar um aplicativo. No entanto, um certificado mais provvel que seja a confiana de outras pessoas, se for assinado por uma autoridade de certificao (CA). Para obter um certificado assinado por uma CA, primeiro gerar uma solicitao de assinatura de certificado (CSR), atravs de um comando como o seguinte: keytool-certreq-Alias alias arquivo csrFile Aqui alias usado para acessar a entrada de armazenamento de chave contendo a chave privada eo certificado de chave pblica, e csrFile especifica o nome a ser usado para a CSR criado por este comando. Voc, ento, enviar esse arquivo para uma CA, como a VeriSign, Inc. A CA autentica voc, o solicitante ("subject") e, em seguida, os sinais e retorna um certificado de autenticao de sua chave pblica. Ao assinar o certificado, o CA atesta que voc o proprietrio da chave pblica. Em alguns casos, a AC ir retornar uma cadeia de certificados, cada uma autentica a chave pblica do assinante do certificado anterior na cadeia. Importando a resposta do CA Depois de enviar um pedido de assinatura de certificado (CSR) para uma autoridade de certificao (CA), preciso substituir o certificado auto- assinado original, em seu armazenamento de chaves com uma cadeia de certificados atravs da importao do certificado (ou cadeia de certificados) devolvido a voc pelo CA . Mas primeiro voc precisa de uma entrada "certificado confivel" no seu armazenamento de chaves (ou no cacerts arquivo de armazenamento de chaves, descrito abaixo) que autentica a chave pblica do CA.Com uma tal entrada de assinatura da CA podem ser verificados. Ou seja, a assinatura do CA do certificado, ou o certificado final na cadeia do CA envia para voc em resposta a sua RSE, pode ser verificada. Importando um certificado de uma CA como um "certificado confivel" Antes de importar a resposta certificado de uma CA, voc precisa de um ou mais "certificados confiveis" em seu armazenamento de chaves ou no cacerts arquivo. Se a resposta do certificado uma cadeia de certificados, voc s precisa do certificado de topo da cadeia - a "raiz" CA certificado de autenticao que a chave pblica do CA. Se a resposta certificado um nico certificado, voc precisa de um certificado para o CA de emisso (aquele que assinou). Se o certificado no auto-assinado, voc precisa de um certificado para o seu signatrio, e assim por diante, at um certificado da CA "root" auto- assinado. O cacerts arquivo representa um armazenamento de chave de todo o sistema com certificados CA. Este arquivo reside no JRE propriedades de segurana de diretrio, java.home /lib/security , ondejava.home o diretrio de instalao do JRE.
IMPORTANTE: Verifique se o seu cacerts Arquivo Desde que voc confie nos CAs no cacerts arquivo como entidades para assinatura e emisso de certificados a outras entidades, voc deve gerenciar as cacerts arquivo com cuidado. O cacerts arquivo deve conter apenas os certificados da AC que voc confia. sua a responsabilidade de verificar os certificados de CA raiz confiveis empacotados no cacerts arquivo e fazer suas prprias decises de confiana. Para remover um certificado da CA confivel do cacerts arquivo, use a opo de excluso do keytool comando. Voc pode encontrar o cacerts arquivo no diretrio de instalao do JRE. Contacte o seu administrador do sistema se voc no tem permisso para editar este arquivo.
O cacerts arquivo contm um nmero de certificados CA confiveis. Se voc enviou o seu CSR para um desses fornecedores confiveis (como a VeriSign), voc no precisar importar o certificado raiz do fornecedor como um certificado confivel no seu armazenamento de chaves; voc pode ir para a prxima seo para ver como importar a resposta certificado da CA. Um certificado de uma CA geralmente ou auto-assinado ou assinado por outra CA, caso em que voc tambm precisa de um certificado de autenticao que a chave pblica do CA. Suponha que a empresa ABC, Inc., uma CA e que voc obtenha um arquivo chamado ABCCA.cer , supostamente um certificado auto-assinado do ABC, que autentica a chave pblica da CA. Tenha muito cuidado para garantir que o certificado vlido antes de import- lo como um certificado de "confiana"! V-lo primeiro (usando o keytool - printcert comando ou o keytool -import comando sem o -noprompt opo), e certifique-se de que a impresso digital do certificado apresentado (s) correspondem aos esperados. Voc pode chamar a pessoa que enviou o certificado e comparar a impresso digital (s) que voc v com os que eles mostram que um ou seguras mostras de repositrio de chaves pblicas. Somente se as impresses digitais so iguais a garantia de que o certificado no foi substitudo em trnsito com (por exemplo, de um atacante) certificado de outra pessoa. Se tal ataque ocorreu e voc no verificar o certificado antes de voc importou, voc iria acabar confiando em qualquer coisa que o atacante assinou. Se voc confiar em que o certificado vlido, voc pode adicion-lo ao seu armazenamento de chaves atravs de um comando como o seguinte: keytool-import-alias apelido arquivo ABCCA.cer-keystore storefile Este comando cria uma entrada de "certificado confivel" no armazenamento de chaves cujo nome especificado no storefile. A entrada contm os dados do arquivo ABCCA.cer , e ele atribudo o alias especificado. Importando a resposta Certificado da CA Depois de ter importado o certificado confivel exigido (s), como descrito na seo anterior, ou eles j esto em seu armazenamento de chaves ou no cacerts arquivo, voc pode importar o certificado de resposta e, assim, substituir o seu certificado auto-assinado com um certificado cadeia. Essa cadeia vai ser aquele retornado pela CA em resposta ao seu pedido (se a resposta CA uma corrente) ou um construdo (se a resposta CA um nico certificado) usando a resposta de certificados e certificados confiveis que j esto disponveis no armazenamento de chaves ou no cacerts arquivo de armazenamento de chaves. Como exemplo, suponha que voc enviou o seu certificado de solicitao de assinatura para a VeriSign. Voc pode, em seguida, importar a resposta atravs do seguinte, que supe que o certificado retornado no arquivo especificado por certReplyFile: keytool-import-trustcacerts -Keystore storefile Alias apelido CertReplyFile-file Digite este comando em uma linha. A resposta certificado validado utilizando certificados confiveis do armazenamento de chave e, opcionalmente, usando os certificados configurados no cacerts arquivo de armazenamento de chaves (se as - trustcacerts opo especificada). Cada certificado da cadeia verificado, usando o certificado no prximo nvel mais elevado da cadeia. Voc precisa confiar apenas o de nvel superior "root" certificado CA na cadeia. Se voc ainda no confiar no certificado de nvel superior, keytool ir exibir a impresso digital do certificado e perguntar se voc quer confiar nele. A nova cadeia de certificados da entrada especificada (por alias) substitui o certificado antigo (ou cadeia) associado a esta entrada. A cadeia de idade pode ser substitudo somente se um keypass vlido, a senha utilizada para proteger a chave privada da entrada, fornecido. Se nenhuma senha fornecida e, se a senha da chave privada diferente da senha de armazenamento de chaves, o usurio solicitado para ele. Para informaes mais detalhadas sobre a gerao de CSR e importao de respostas de certificado, consulte o keytool documentao: documentao keytool com exemplos do Windows documentao keytool com exemplos UNIX Lio: A assinatura de cdigo e concedendo-lhe Permissions Esta lio mostra como usar uso keytool , jarsigner , Policy Tool e jar para colocar os arquivos JAR em arquivos (Java Archive) para posterior assinatura pelojarsigner ferramenta. Esta lio tem duas partes. Primeiro, voc vai criar e implantar um aplicativo. Em segundo lugar; voc vai agir como o destinatrio de um pedido assinado. Aqui esto os passos para criar e implantar um aplicativo: Nota: Para maior comodidade, voc finge ser um usurio / desenvolvedor chamado Susan Jones. Voc precisa definir Susan Jones quando voc gerar as chaves. Coloque os arquivos de classe Java que compem o aplicativo em um arquivo JAR Entre o arquivo JAR Exportar o certificado de chave pblica correspondente chave privada usada para assinar o arquivo JAR Aqui esto os passos para conceder permisses para uma aplicao Nota: Para maior comodidade, voc finge ser um usurio chamado Ray. Voc v como o pedido assinado normalmente no podem ler um arquivo quando ele executado em um gerente de segurana. Use keytool para importar um certificado para armazenamento de chaves de Ray em uma entrada de alias por susan Use a ferramenta de Poltica para criar uma entrada no arquivo de poltica de Ray para permitir cdigo assinado por susan para ler o arquivo especificado. Finalmente, voc v como o aplicativo em execuo sob um gerente de segurana agora pode ler o arquivo, uma vez que foi concedida a permisso para faz-lo. Para mais informaes sobre assinaturas digitais, certificados, armazenamentos de chaves, e as ferramentas, consulte a API e usar ferramentas para o Cdigo e trocas de arquivos segura lio.
Importante: Voc precisa executar as tarefas desta lio, enquanto trabalhava no diretrio em que voc armazena o aplicativo de exemplo, mas voc deve armazenar o arquivo de dados necessrios para a aplicao em um diretrio diferente. Todos os exemplos neste trilha assumir que voc est trabalhando no C:\Testdo diretrio, e que o arquivo de dados est no C:\TestData diretrio.
Se voc estiver trabalhando em um sistema UNIX, substituir seus prprios nomes de diretrios. Aqui esto os passos: Passos para o Cdigo Signer Passos para o Cdigo Receiver Passos para o Cdigo Signer O signatrio cdigo leva os seguintes passos: 1. Faa o download e Experimente o aplicativo de exemplo. 2. Criar um arquivo JAR que contm o arquivo de classe , usando o jar ferramenta. 3. Gerar Chaves (se no existir), usando o keytool -genkey comando.
Etapa opcional Gerar uma solicitao de assinatura de certificado (CSR) para o certificado de chave pblica, e importar a resposta da autoridade de certificao (CA).Para simplificar (e desde que voc est apenas fingindo ser Susan Jones), este passo omitido. Veja Gerando um Pedido de Assinatura de Certificado (CSR) para um certificado de chave pblica para obter mais informaes.
4. Assine o arquivo JAR , usando o jarsigner ferramenta ea chave privada. 5. Exportar o certificado de chave pblica , usando o keytool -export de comando. Em seguida, fornecer o arquivo JAR assinado e certificado para o receptor Ray. Faa o download e Experimente o aplicativo de exemplo Esta lio usa um aplicativo simples que ns fornecemos para voc. 1. Crie um arquivo chamado Count.java em seu computador local, copiar ou baixar o Count.java cdigo fonte. Os exemplos nesta lio supor que voc coloquecount no C:\Test diretrio. 2. A count aplicao precisa acessar um arquivo de texto contendo os dados que vai processar. Baixar um sample data file , ou usar qualquer outro arquivo de texto conveniente quanto de dados.
Importante: Coloque o seu arquivo de dados em um diretrio diferente do diretrio que contm o download count arquivo de classe. SugerimosC:\TestData\data .
Mais tarde nesta lio, voc ver como uma aplicao rodando sob um gestor de segurana no pode ler um arquivo a menos que tenha permisso explcita para faz-lo. No entanto, um aplicativo pode sempre ler um arquivo do mesmo diretrio (ou um subdiretrio). Ela no precisa de permisso explcita.
3. Compilar e executar o Count aplicativo para ver o que ele faz.
Quando voc executa a count aplicativo, voc precisa especificar (como um argumento) o nome do caminho de um arquivo a ser lido.
java Count C:\TestData\data Aqui est uma amostra: C: \ Teste> java Contagem C: \ TestData \ data Contados 65 caracteres. Criar um arquivo JAR que contm o arquivo de classe Em seguida, crie um arquivo JAR contendo o Count.class arquivo. Digite o seguinte na janela de comando: jar cvf Count.jar Count.class Isso cria um arquivo JAR, Count.jar , e coloca o Count.class arquivo dentro dela. Gerar Chaves Se um assinante cdigo que ainda no tem uma chave particular adequado para a assinatura do cdigo, a chave tem de ser primeiramente gerado, juntamente com uma chave pblica correspondente, que pode ser usado pelo sistema de execuo do receptor de cdigo para verificar a assinatura. Desde esta lio assume que voc ainda no tem essas chaves, voc est indo para criar um armazenamento de chaves chamado examplestore e criar uma entrada com um par de chaves pblica / privada recm-gerado (com a chave pblica em um certificado). Digite o seguinte comando na janela de comando para criar um armazenamento de chaves chamado examplestore e para gerar chaves: keytool-genkey-alias signFiles-keystore examplestore Voc ser solicitado a digitar as senhas para a chave e armazenamento de chaves. Subpartes do Comando keytool Vamos olhar para o que cada um dos keytool subpartes dizer. O comando para gerar chaves -genkey. As-alias signFiles subparte indica o alias a ser utilizados no futuro para se referir entrada de chaves que contm as chaves que sero gerados. O sub-keystore examplestore indica o nome (e caminho opcionalmente) do armazenamento de chaves est a criar ou j est usando. O valor storepass que voc est promted para especifica a senha de armazenamento de chaves. O valor keypass que voc ser solicitado a especificar uma senha para a chave privada para ser gerado. Voc sempre precisar desta senha para acessar a entrada de armazenamento de chave contendo a chave. A entrada no tem que ter a sua prpria senha. Quando for solicitado para a senha da chave, voc tem a opo de deix-lo ser o mesmo que a senha de armazenamento de chaves. Nota: Por razes de segurana, voc no deve definir suas senhas ou chaves de armazenamento de chaves na linha de comando, porque eles podem ser interceptados mais facilmente assim. Ilustre-Name Informao Se voc usar o precedente keystore de comando, voc ser solicitado para sua informao distinto nome. A seguir esto as instrues; o negrito indica o que voc deve digitar. Qual o seu primeiro e ltimo nome? [Desconhecido]: Susan Jones Qual o nome da sua unidade organizacional? [Desconhecido]: Compras Qual o nome da sua organizao? [Desconhecido]: ExampleCompany Qual o nome da sua cidade ou localidade? [Desconhecido]: Cupertino Qual o nome de seu estado ou provncia? [Desconhecido]: CA Qual o cdigo de duas letras para esta unidade? [Desconhecido]: EUA <CN = Susan Jones, OU = Compras, O = ExampleCompany, L = Cupertino, ST = CA, C = EUA> correto? [No]: y Resultados de comando O keytool comando cria o keystore chamado examplestore (se ainda no existir) no mesmo diretrio em que o comando executado. O comando gera um par de chaves pblica / privada para a entidade cujo nome distinto tem um nome comum de Susan Jones e da unidade organizacional de Compras. O comando cria um certificado auto-assinado que inclui a chave pblica e as informaes distinto nome. (O nome distinto que voc fornecer ser usado como o campo "assunto" no certificado.) Este certificado ser vlido por 90 dias, o perodo de validade padro se voc no especificar a opo- validade. O certificado associado com a chave privada em uma entrada de keystore referido pelo pseudnimo signFiles . Os certificados auto-assinados so teis para desenvolver e testar um aplicativo. No entanto, os usurios so avisados de que o pedido assinado com um certificado no confivel e perguntou se eles querem executar o aplicativo. Para fornecer aos usurios com mais confiana para executar o aplicativo, use um certificado emitido por uma autoridade de certificao reconhecida. Nota: O comando poderia ser menor se padres de opo so aceitos ou se voc quiser ser solicitado para vrios valores. Sempre que voc executar um keytool comando, padres so usados para opes no especificadas que tm valores padro, e voc ser solicitado a fornecer os valores necessrios. Para o genkey comando, as opes com os valores padro incluem apelido (cujo padro mykey ), validade (90 dias) e de armazenamento de chave (o arquivo nomeado .keystore no seu diretrio home).Valores necessrios incluem dname, storepass e keypass. Assine o arquivo JAR Agora voc est pronto para assinar o arquivo JAR. Digite o seguinte na janela de comando para assinar o arquivo JAR Count.jar , usando a chave privada na entrada keystore alias por signFiles , e para nomear o arquivo JAR assinado resultando sCount.jar : jarsigner-keystore examplestore-signedjar sCount.jar Count.jar signFiles Voc ser solicitado a senha do armazenamento ea senha da chave privada.
Nota: O jarsigner ferramenta extrai o certificado do armazenamento de chaves de entrada cujo apelido signFiles ea anexa a assinatura gerada do arquivo JAR assinado.
Recomenda Tempo carimbar a assinatura, e um aviso mostrado se a assinatura no hora marcada. O carimbo de tempo usado para verificar se o certificado usado para assinar o arquivo JAR era vlido no momento da assinatura. Veja Assinando arquivos JAR para obter informaes sobre os jarsigner opes para incluir um selo de tempo com a assinatura. Exportar o certificado de chave pblica Agora voc tem um arquivo JAR assinado sCount.jar . O sistema de tempo de execuo do receptor de cdigo (Ray) ter que autenticar a assinatura quando o Countaplicativo no arquivo JAR assinado tenta ler um arquivo e um arquivo de poltica que concede permisso para este assinado cdigo. Para que o sistema de tempo de execuo para autenticar a assinatura, de chaves de Ray precisa de ter a chave pblica correspondente chave privada usada para gerar a assinatura. Voc fornece esta enviando Ray uma cpia do certificado de autenticao de chave pblica. Copie esse certificado do armazenamento de chaves examplestoreem um arquivo chamado Example.cer atravs do seguinte: keytool-export-keystore examplestore-alias signFiles-file Example.cer Voc ser solicitado a senha do armazenamento. Passos para o Cdigo Receiver Nesta lio, voc vai agir como o receptor do arquivo jar assinado contendo o count.class arquivo. Ele solicita acesso a recursos do seu sistema em seu sistema que normalmente no tem permisso para acessar. Este procedimento requer que voc execute os seguintes passos listados abaixo. 1. Observe a aplicao restrita . Esta aplicao no ser capaz de acessar os recursos do sistema at que voc importar o certificado de Susan e criar um arquivo de poltica. 2. Certificado de importao Susan como um certificado confivel usando o keytool -import comando, e dar-lhe o apelido susan . 3. Configure um arquivo de poltica para conceder permisso para a count pedido assinado por susan para ler o arquivo especificado em seu sistema. 4. Teste o seu reconfigurado count aplicativo para verificar se com um certificado confivel e acesso ao seu novo arquivo de poltica que concede permisso para ler arquivos em seu sistema, count agora pode ler a sua data de arquivo. Observe a aplicao restrita A ltima parte do Tour Rpido dos Controladores Aplicaes lio mostra como um aplicativo pode ser executado sob um gestor de segurana, invocando o intrprete com a nova -Djava.security.manager argumento de linha de comando. Mas e se o aplicativo a ser invocado reside dentro de um arquivo JAR? Uma das opes o intrprete -cp opo (caminho de classe), que permite que voc especifique um caminho de pesquisa para aulas e recursos do aplicativo. Portanto, para executar a Count aplicao dentro do sCount.jar arquivo JAR, especificando o arquivo C:\TestData\data como seu argumento, voc pode digitar o seguinte comando enquanto estiver no diretrio contendo sCount.jar : java-cp Contagem sCount.jar C: \ TestData \ data Para executar o aplicativo com um gestor de segurana, adicione - Djava.security.manager , como mostrado abaixo: java-Djava.security.manager-cp Contagem sCount.jar C: \ TestData \ data
Importante: Quando voc executar este comando, o interpretador Java ir lanar uma exceo mostrado abaixo: Exception in thread java.security.AccessControlException "principal": acesso negado (java.io.FilePermission C: \ \ data TestData ler) em java.security.AccessControlContext.checkPermission (cdigo compilado) em java.security.AccessController.checkPermission (cdigo compilado) em java.lang.SecurityManager.checkPermission (cdigo compilado) em java.lang.SecurityManager.checkRead (cdigo compilado) em java.io.FileInputStream. <init> (cdigo compilado) em Count.main (cdigo compilado) Neste exemplo, AccessControlException informou que o count de aplicativos no tem permisso para ler o arquivo C:\TestData\data . Seu intrprete levantou esta exceo, porque no vai permitir que qualquer aplicativo em execuo no mbito de um gestor de segurana para ler um arquivo ou acessar outros recursos a menos que tenha permisso explcita para faz-lo - geralmente especificada em uma grant declarao contida em uma policy de arquivo. Importar o certificado como um certificado confivel Antes de conceder a permisso de cdigo assinado para ler um arquivo especificado, voc precisa importar o certificado de Susan como um certificado confivel no seu armazenamento de chaves. Suponha que voc tenha recebido de Susan o arquivo JAR assinado sCount.jar , que contm o Count.class arquivo e o arquivo Example.cer , que contm o certificado de chave pblica para a chave pblica correspondente chave privada usada para assinar o arquivo JAR. Mesmo que voc criou esses arquivos e eles realmente no tenham sido transportado em qualquer lugar, voc pode simular ser algum que no seja o creater e remetente, Susan. Finja que voc agora Ray. Atuando como Ray, voc ir criar um armazenamento de chaves chamado exampleraystore e vai us-lo para importar o certificado para uma entrada com um alias de susan . Um armazenamento de chaves criado sempre que voc usar uma keytool comando especificando um armazenamento de chaves que ainda no existe. Assim, podemos criar o exampleraystore e importar o certificado atravs de um nico keytool comando. Faa o seguinte na janela de comando. 1. V para o diretrio que contm o arquivo de certificado de chave pblica Example.cer . (Voc deve realmente j estar l, j que esta lio pressupe que voc ficar em um nico diretrio por toda parte.) 2. Digite o seguinte comando em uma linha: 3. keytool-import-alias de susan 4. -File Example.cer-keystore exampleraystore Desde o armazenamento de chave ainda no existir, ele ser criado, e voc ser solicitado para uma senha de armazenamento de chaves; digite uma senha qualquer. O keytool comando ir imprimir as informaes do certificado e pedir-lhe para verificar se ele, por exemplo, atravs da comparao das impresses digitais de certificados apresentados com os obtidos a partir de outra (confivel) fonte de informao. (Cada impresso digital um nmero relativamente curto que exclusivamente e de forma confivel identifica o certificado.) Por exemplo, no mundo real, voc poderia chamar-se Susan e pedir-lhe que as impresses digitais deve ser. Ela pode obter as impresses digitais do Example.cer arquivo ela criou executando o comando keytool-printcert-file Example.cer Se as impresses digitais que ela v so os mesmos que os reportados a voc por keytool , o certificado no foi modificado em trnsito. Nesse caso, voc deixar keytoolproceder com a colocao de uma entrada de certificado confivel no armazenamento de chaves. A entrada contm os dados do certificado de chave pblica do arquivoExample.cer e atribudo o apelido susan . Configurar um arquivo de diretiva para conceder a permisso necessria Em seguida, voc vai usar a ferramenta de Poltica para criar um arquivo de poltica chamado exampleraypolicy e nele conceder uma permisso para o cdigo de um arquivo JAR assinado. O arquivo JAR deve ter sido assinado com a chave privada correspondente chave pblica importada para armazenamento de chaves de Ray ( exampleraystore ) na etapa anterior. O certificado contm a chave pblica alias por susan no armazenamento de chaves. Vamos conceder tal permisso de cdigo para ler qualquer arquivo noC:\TestData\ diretrio. As etapas so as seguintes: 1. Iniciar Ferramenta Poltica 2. Especifique o armazenamento de chaves 3. Adicionar uma entrada de Poltica com uma SignedBy Alias 4. Salve o arquivo de diretiva 5. Iniciar Ferramenta Poltica 6. Para iniciar a ferramenta de Poltica, simplesmente digite o seguinte na linha de comando: 7. policytool 8. Isso traz a janela Ferramenta de Poltica. Sempre Policy Tool iniciado, ele tenta preencher esta janela com informaes sobre a poltica do que s vezes referido como o "arquivo de poltica do usurio", que por padro um arquivo chamado .java.policy em seu diretrio home. Se Ferramenta Poltica no pode encontrar o arquivo de poltica de usurio, ele relata a situao e exibe uma janela Ferramenta de Poltica em branco (ou seja, uma janela com ttulos e botes, mas no existem dados na mesma, como mostrado na figura a seguir. 9. 10. Voc vai criar e trabalhar em um arquivo de poltica que no seja o arquivo de poltica de utilizador, uma vez que as lies desta trilha no esperam modificaes a serem feitas ao seu arquivo oficial poltica de usurio. 11. Supondo que voc ver a janela Ferramenta de Poltica em branco (se no, selecione Novo no menu Arquivo), voc pode proceder de imediato para criar um novo arquivo de poltica. Especifique o armazenamento de chaves Para esta lio voc ir conceder todos os cdigos em arquivos JAR assinados pelo pseudnimo susan acesso de leitura a todos os arquivos no C:\TestData\ diretrio.Voc precisa 1. Especifique o armazenamento de chaves que contm as informaes do certificado alias por susan 2. Criar a entrada de poltica de conceder a permisso O armazenamento de chaves o chamado exampleraystore criado no Importar o certificado como um certificado confivel passo. Para especificar o armazenamento de chaves, escolha o comando Alterar armazenamento de chaves no menu Editar da janela principal ferramenta poltica. Isso traz uma caixa de dilogo na qual voc pode especificar o URL de armazenamento de chave eo tipo de armazenamento de chaves. Para especificar o armazenamento de chaves chamado exampleraystore no Test diretrio no C: unidade, digite o seguinte file URL na caixa de texto rotulada novo armazenamento de chaves URL file :/ C :/ Teste / exampleraystore Voc pode deixar a caixa de texto rotulada Tipo novo armazenamento de chaves em branco se o tipo de armazenamento de chaves o padro, conforme especificado no arquivo de propriedades de segurana. O seu armazenamento de chaves ser o tipo padro, ento deixe a caixa de texto em branco.
Nota: O valor de URL novo armazenamento de chaves um URL e, portanto, deve sempre usar barras (nunca barras invertidas) como separador de diretrio.
Quando voc feito especificando a URL de armazenamento de chaves, escolha OK. A caixa de texto Keystore marcada agora preenchida com a URL. Em seguida, voc precisa especificar a nova entrada de poltica. Adicionar uma entrada de Poltica com uma SignedBy Alias Para conceder cdigo assinado por susan permisso para ler qualquer arquivo no C:\TestData diretrio, voc precisa criar uma entrada de poltica de concesso dessa permisso. Note que o "Cdigo assinado por susan " uma forma abreviada de dizer" cdigo em um arquivo de classe contidos em um arquivo JAR, onde o arquivo JAR foi assinado com a chave privada correspondente chave pblica que consta de um certificado de armazenamento de chaves de uma entrada alias por susan ". Escolha o boto Adicionar entrada de Poltica na janela principal ferramenta poltica. Isso traz a caixa de dilogo Entrada de poltica:
Usando esta caixa de dilogo, digite o seguinte apelido na caixa de texto SignedBy: susan Deixe a caixa de texto em branco CodeBase, a conceder qualquer cdigo assinado por susan a permisso, no importa de onde vem.
Nota: Se voc quiser restringir a permisso para apenas cdigo assinado por susan que vem do C:\Test\ diretrio, voc deve digitar o seguinte URL na caixa de texto CodeBase: file :/ C :/ Teste / *
Para adicionar a permisso, escolha o boto Adicionar permisso. Isso traz a caixa de dilogo Permisses.
Faa o seguinte. 1. Escolha Permisso de Arquivos na lista drop-down de permisso. O nome do tipo de permisso completo ( java.io.FilePermission ) agora aparece na caixa de texto direita da lista drop-down. 2. Digite o seguinte na caixa de texto direita da lista denominado Nome Alvo para especificar todos os arquivos no C:\TestData\ diretrio: 3. C: \ TestData \ * 4. Especifique o acesso de leitura, escolhendo a opo de leitura a partir da lista suspensa Aes. Agora, a caixa de dilogo Permisses parece com o seguinte.
Escolha o boto OK. A nova permisso aparece em uma linha no dilogo Entrada de Poltica, como se segue.
Nota: Cada barra invertida no caminho do arquivo que voc digitou foi substituda por duas barras invertidas, para sua convenincia. Cordas em um arquivo de poltica so processados por um tokenizador que permite \ para ser usado como um caractere de escape (por exemplo, \n para indicar uma nova linha), assim que o arquivo de poltica requer duas barras invertidas para indicar uma nica barra invertida. Se voc usar barras invertidas simples como seus separadores de diretrio, Ferramenta de Poltica converte-os automaticamente para dobrar barras invertidas para voc.
Voc agora est feito especificando esta entrada poltica, ento escolha o boto Done no dilogo Entrada de Poltica. A janela Ferramenta de Poltica agora contm uma linha que representa a entrada de poltica, mostrando o valor SignedBy. Salve o arquivo de diretiva Para salvar o novo arquivo de poltica que voc est criando, escolha o comando Salvar como no menu Arquivo. Isso traz a caixa de dilogo Salvar como. Navegue pela estrutura de diretrios para chegar ao diretrio no qual deseja salvar o arquivo de poltica: o Test diretrio no C: unidade. Digite o nome do arquivo exampleraypolicy Em seguida, escolha o boto Salvar. O arquivo de poltica agora est salvo, e seu nome e caminho so mostrados na caixa de texto chamada Poltica de Arquivo. Em seguida, saia da ferramenta Poltica selecionando o comando Sair no menu Arquivo. Veja os Efeitos da Poltica de arquivo Nas etapas anteriores, voc criou uma entrada no exampleraypolicy arquivo de poltica de concesso de cdigo assinado por susan permisso para ler arquivos doC:\TestData\ diretrio (ou o testdata diretrio no seu diretrio home, se voc est trabalhando em UNIX). Agora voc deve ser capaz de executar com sucesso a Countprograma para ler e contar os caracteres de um arquivo a partir do diretrio especificado, mesmo quando voc executar o aplicativo com um gerente de segurana. Conforme descrito no final da criao de um arquivo de diretiva lio, h duas formas possveis que voc pode ter o exampleraypolicy arquivo ser considerada como parte da poltica em geral, alm dos arquivos de poltica especificados nas propriedades de segurana de arquivos. A primeira abordagem especificar o arquivo de poltica adicional em uma propriedade passada para o sistema de execuo. A segunda abordagem adicionar uma linha no arquivo de propriedades de segurana, especificando o arquivo de poltica adicional. Abordagem 1 Voc pode usar um -Djava.security.policy argumento de linha de comando para especificar um arquivo de poltica que deve ser usado em conjunto com ou em vez dos especificados no arquivo de propriedades de segurana. Para executar o Count aplicativo e ter a exampleraypolicy arquivo de poltica includo, digite o seguinte, enquanto no diretrio que contm o sCount.jar eexampleraypolicy arquivos: java-Djava.security.manager -Djava.security.policy = exampleraypolicy -Cp sCount.jar Contagem C: \ TestData \ data Nota: Digite o comando em uma nica linha, com um espao antes -D e -cp . O programa deve informar o nmero de caracteres no arquivo especificado. Se ainda relata um erro, algo est errado no arquivo de poltica. Use a ferramenta de Poltica para verificar a permisso que voc criou no passo anterior e alterar quaisquer erros tipogrficos ou outros erros. Abordagem 2 Voc pode especificar um nmero de URLs - inclusive na forma de "http://" - em policy.url.n propriedades nas propriedades de segurana de arquivos, e todos os arquivos de poltica designados vai ficar carregado. Portanto, uma forma de ter o seu exampleraypolicy entradas de poltica do arquivo considerado pelo intrprete adicionar uma entrada indicando que arquivo no arquivo de propriedades de segurana.
Importante: Se voc estiver executando a sua prpria cpia do JDK, voc pode facilmente editar o seu arquivo de propriedades de segurana. Se voc estiver executando uma verso compartilhada com outras pessoas, voc s pode ser capaz de modificar as propriedades de segurana de todo o sistema de arquivos, se voc tiver acesso de gravao para ele ou se voc perguntar ao seu administrador do sistema para modificar o arquivo quando for o caso. No entanto, provavelmente no adequado para voc fazer modificaes em um arquivo de poltica de todo o sistema para este teste tutorial; sugerimos que voc acabou de ler o seguinte para ver como ele feito, ou que voc instalar a sua prpria verso particular do JDK para usar para as lies do tutorial.
O arquivo de propriedades de segurana est localizado na Do Windows: java.home \lib\security\java.security UNIX: java.home /lib/security/java.security O java.home parte indica o diretrio em que o JRE foi instalado. Para modificar o arquivo de propriedades de segurana, abra-o em um editor adequado para a edio de um arquivo de texto ASCII. Em seguida, adicione a seguinte linha aps a linha comeando com policy.url.2 : Do Windows: policy.url.3=file:/C:/Test/exampleraypolicy UNIX: policy.url.3=file:${user.home}/test/exampleraypolicy Em um sistema UNIX, voc pode alternativamente especificar explicitamente seu diretrio home, como em policy.url.3 = file :/ home / Susanj / test / exampleraypolicy Em seguida, na janela de comando, v para o diretrio que contm o sCount.jar arquivo, ou seja, o C:\Test ou ~/test diretrio. Digite o seguinte comando em uma linha: java-Djava.security.manager -Cp sCount.jar Contagem C: \ TestData \ data Tal como acontece com a abordagem 1, se o programa ainda relata um erro, algo est errado com o arquivo de poltica. Use a ferramenta de Poltica para verificar a permisso que voc criou no passo anterior e alterar quaisquer erros tipogrficos ou outros erros.
Importante: Antes de continuar, voc pode querer apagar a linha que voc acabou de adicionar nas propriedades de segurana de arquivo (ou coment- lo), j que voc provavelmente no quer a exampleraypolicy arquivo includo quando voc no estiver executando as lies do tutorial. Lio: A troca de arquivos Se voc deseja enviar eletronicamente um documento importante, (como um contrato) para outra pessoa, uma boa idia para "assinar" digitalmente o documento, para que o seu destinatrio verificar que o documento realmente veio de voc e no foi alterada em trnsito . Esta lio mostra como usar as ferramentas de segurana para a troca de um documento importante, neste caso, um contrato. Primeiro voc fingir que voc o remetente contrato, Stan Smith. Esta lio mostra as etapas Stan usaria para colocar o contrato em um arquivo JAR, assin-lo e exportar o certificado de chave pblica para a chave pblica correspondente chave privada usada para assinar o arquivo JAR. Ento voc fingir que voc Ruth, que recebeu o arquivo JAR assinado e certificado. Voc usar keytool para importar o certificado para armazenamento de chaves de Ruth em uma entrada de alias por stan , e usar o jarsigner ferramenta para verificar a assinatura. Para mais informaes sobre assinaturas digitais, certificados, armazenamentos de chaves, e as ferramentas, consulte a API e usar ferramentas para o Cdigo e trocas de arquivos segura lio.
Nota: Esta lio supe que voc executar todos os comandos dentro do mesmo diretrio.
Aqui esto os passos: Etapas para o remetente Contrato Etapas para o Contrato Receiver Etapas para o remetente Contrato As etapas descritas aqui para o remetente contrato so basicamente as mesmas que as listadas para um signatrio cdigo na assinatura de cdigo e concedendo-lhe permisses de lio. Aqui, no entanto, voc est fingindo ser Stan Smith em vez de Susan Jones e est armazenando um arquivo de dados, em vez de um arquivo de classe no arquivo JAR a ser assinado. Os passos que voc toma como remetente contrato so os seguintes. 1. Criar um arquivo JAR contendo o contrato , usando o jar ferramenta. 2. Gerar Chaves (se no existir), usando o keytool -genkey comando. Etapa opcional: Gerar uma solicitao de assinatura de certificado (CSR) para o certificado de chave pblica, e importar a resposta da autoridade de certificao. Por simplicidade e j que voc s est fingindo ser Stan Smith, este passo omitido. Veja Gerando um Pedido de Assinatura de Certificado (CSR) para um certificado de chave pblica para obter mais informaes. 3. Assine o arquivo JAR , usando o jarsigner ferramenta ea chave privada gerada no passo 2. 4. Exportar o certificado de chave pblica , usando o keytool -export de comando. Em seguida, fornecer o arquivo JAR assinado e certificado para o receptor, Ruth.
Criar um arquivo JAR contendo o Contrato A primeira coisa que voc precisa um arquivo de contrato. Voc pode baixar e usar esse arquivo de exemplo muito bsico chamado contract . Ou voc pode usar qualquer outro arquivo que voc gosta. Apenas certifique-se de nomear o arquivo de contract para que ele ir trabalhar com os comandos especificados nesta lio. Assim que tiver o arquivo de contrato, coloque-o em um arquivo JAR. Em sua janela de comando digite o seguinte: jar cvf contrato Contract.jar Este comando cria um arquivo JAR chamado Contract.jar e coloca o contract de arquivos dentro dele. Gerar Chaves Antes de assinar o Contract.jar arquivo JAR que contm o contract de arquivos, voc precisa gerar chaves, se voc ainda no tem as chaves adequadas disponveis.Voc precisa assinar o arquivo JAR com sua chave privada, e seu receptor precisa de sua chave pblica correspondente para verificar a sua assinatura. Esta lio supe que voc no tem um par de chaves ainda. Voc est indo para criar um armazenamento de chaves chamado examplestanstore e criar uma entrada com um par de chaves pblica / privada recm-gerado (com a chave pblica em um certificado). Agora fingir que voc Stan Smith e que voc trabalha no departamento jurdico da Example2 corporao. Digite o seguinte na janela de comando para criar um armazenamento de chaves chamado examplestanstore e para gerar chaves para Stan Smith: keytool-genkey-alias signLegal-keystore examplestanstore A ferramenta de armazenamento de chaves solicitar uma senha de armazenamento de chaves, suas informaes distinto nome, ea senha da chave. A seguir esto as instrues;o negrito indica o que voc deve digitar. Digite a senha de armazenamento de chaves: <senha> Qual o seu primeiro e ltimo nome? [Desconhecido]: Stan Smith Qual o nome da sua unidade organizacional? [Desconhecido]: Legal Qual o nome da sua organizao? [Desconhecido]: Exemplo 2 Qual o nome da sua cidade ou localidade? [Desconhecido]: New York Qual o nome de seu estado ou provncia? [Desconhecido]: NY Qual o cdigo de duas letras para esta unidade? [Desconhecido]: EUA <CN=Stan Smith, OU=Legal, O=Example2, L=New York, ST=NY, C=US> est correto? [No]: y
Digite a senha chave para <signLegal> (RETURN se mesmo como senha de armazenamento de chaves): O anterior keytool comando cria o keystore chamado examplestanstore no mesmo diretrio em que o comando executado (assumindo que o armazenamento de chave especificado ainda no existir) e atribui a ele a senha digitada. O comando gera um par de chaves pblica / privada para a entidade cujo nome distinto tem um nome comum deStan Smith e uma unidade organizacional de Legal. O certificado auto-assinado que voc acabou de criar inclui a chave pblica e as informaes distinto nome. (Um certificado auto-assinado um assinado pela chave privada correspondente chave pblica no certificado.) Este certificado vlido por 90 dias. Este o perodo de validade padro se voc no especificar a opo-validade. O certificado associado com a chave privada em uma entrada de keystore referido pelo apelido signLegal . A chave privada atribudo a senha que foi digitado. Os certificados auto-assinados so teis para desenvolver e testar um aplicativo. No entanto, os usurios so avisados de que o pedido assinado com um certificado no confivel e perguntou se eles querem executar o aplicativo. Para fornecer aos usurios com mais confiana para executar o aplicativo, use um certificado emitido por uma autoridade de certificao reconhecida.