You are on page 1of 47

Lio: Viso geral dos recursos de segurana

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.