Apresentando JTri
(another java application generator)
Enviada por Carlos Eduardo em Quarta-Feira, 22 de Fevereiro de 2006
Fonte
http://www.javafree.org/news/view.jf?idNew=2742
A algum tempo acompanhamos o desenvolvimento do JTri que nada mais é que um projeto de software livre para acelerar o desenvolvimento de aplicações java para a "web". O projeto é bem interessante e está se desenvolvendo muito bem.
Java.tri é um projeto de software livre para acelerar o desenvolvimento de aplicações java para a "web". É dividido em duas partes principais:
O "java.tri Tools" é um conjunto de programas plugaveis em eclipse para importar modelos UML, projetar aplicações utilizando especificações extensiveis de alto nível e gerar código ou até mesmo a aplicação interia. Utilizando moldes velocity e a tecnologia JMerge, pode-se gerar código sem apagar alterações manuais do código.
O "java.tri Framework" é um conjunto de classes construidas sobre o struts e o hibernate para realizar tarefas comuns em aplicações "web" como iterar em paginas de dados, mostrar lista de valores para escolha, caixas de escolhas alimentadas por dados persistentes, coordenação mestre-detalhe, telas de filtro para realizar buscas e outras funcionalidades.
O projeto java.tri está em um estágio inicial de desenvolvimento e aceita constribuições. Precisa-se de desenvolvedores, documentadores, testadores beta, etc.
Mais informações: http://www.jtri.com.br/pt/index.html
http://www.jtri.com.br/pt/index.html
Link Permanente: http://www.javafree.org/news/view.jf?idNew=2742
quarta-feira, fevereiro 22, 2006
JAG - Java Application Generator
JAG - Java Application Generator: "JAG - Java Application Generator
JAG is an application that creates complete, working J2EE applications. It is intended to alleviate much of the repetitive work involved in creating such applications, while providing a means of quality assurance that the applications created will be of consistent quality. "
JAG is an application that creates complete, working J2EE applications. It is intended to alleviate much of the repetitive work involved in creating such applications, while providing a means of quality assurance that the applications created will be of consistent quality. "
terça-feira, fevereiro 21, 2006
Moyosoft - Java Outlook Connector
Moyosoft - Java Outlook Connector: "Java Outlook Connector
Java Outlook Connector (JOC) is a Java library built to access the MS Outlook application. This library is intuitive and easy to use. All the underlying complexities (JNI, COM) are hidden to the Java developer."
Java Outlook Connector (JOC) is a Java library built to access the MS Outlook application. This library is intuitive and easy to use. All the underlying complexities (JNI, COM) are hidden to the Java developer."
segunda-feira, fevereiro 20, 2006
Portable Firefox Support | PortableApps.com
Portable Firefox Support | PortableApps.com
vc conhece a extensão "portable firefox"? você faz uma cópia do firefox em um pen drive e copia todas as configurações pessoais do pc da sua casa para a cópia do pen drive. então qdo vc estiver navegando em outro lugar, basta espetar o pen drive e abrir o mesmo firefox que vc usa em casa, com todos as extensões e plugins.
vc conhece a extensão "portable firefox"? você faz uma cópia do firefox em um pen drive e copia todas as configurações pessoais do pc da sua casa para a cópia do pen drive. então qdo vc estiver navegando em outro lugar, basta espetar o pen drive e abrir o mesmo firefox que vc usa em casa, com todos as extensões e plugins.
sábado, fevereiro 18, 2006
sexta-feira, fevereiro 17, 2006
DVD Burners and Decrypters
Burners
Easy DVD Clone 3.0.3 - http://www.homedvdcopy.com/
Clone DVD http://www.consumerfirstreviews.com/reviews/clonedvd_dvdxstudios.html?page_id=7&form_keyword=dvd+writers&rd=1
DVDXPlatinum - http://www.best-dvd-burning-software-reviews.com/dvd-burning.asp?n=2
Decrypters
DVD Decrypter v3.5.4.0 - (Parece q não tem mais)
DVDFab Decrypter (free DVD ripper) - http://www.afterdawn.com/software/video_software/dvd_rippers/dvdfab_decrypter.cfm
AnyDVD v5.6.3.1 - http://www.afterdawn.com/software/video_software/dvd_rippers/anydvd.cfm
ImgBurn v1.1.0 - http://www.afterdawn.com/software/cdr_software/cdr_tools/imgburn.cfm
Easy DVD Clone 3.0.3 - http://www.homedvdcopy.com/
Clone DVD http://www.consumerfirstreviews.com/reviews/clonedvd_dvdxstudios.html?page_id=7&form_keyword=dvd+writers&rd=1
DVDXPlatinum - http://www.best-dvd-burning-software-reviews.com/dvd-burning.asp?n=2
Decrypters
DVD Decrypter v3.5.4.0 - (Parece q não tem mais)
DVDFab Decrypter (free DVD ripper) - http://www.afterdawn.com/software/video_software/dvd_rippers/dvdfab_decrypter.cfm
AnyDVD v5.6.3.1 - http://www.afterdawn.com/software/video_software/dvd_rippers/anydvd.cfm
ImgBurn v1.1.0 - http://www.afterdawn.com/software/cdr_software/cdr_tools/imgburn.cfm
quinta-feira, fevereiro 16, 2006
Assinatura de Applets :: Java Free.org
Introdução
O modelo de segurança implementado pela plataforma Java, na sua proposição inicial, é centrada sobro o conceito de sandbox (caixa de areia) (4). De acordo com o modelo sandbox, um código remoto (applet) não é confiável e pode acessar recursos limitados, fornecidos dentro do sandbox, uma área do Servidor Web dedicado àquele applet. A idéia de sandbox foi desenvolvida no sentido de garantir que mesmo que um usuário carregue um applet malicioso, esse não pode danificar a máquina local, por exemplo, apagar um arquivo do seu disco local.
Porém existem applets que são de confiança e necessitam s air do sandbox para fornecer um determinado serviço. Existem varias maneiras para resolver este problema, uma delas é a assinatura do applet. (4)
O JDK 1.1.x introduziu o conceito de applet assinado. Neste modelo estendido, um applet assinado digitalmente é tratado como código local confiável (aplicação standalone) se a assinatura é reconhecida como confiável pelo sistema que recebeu o applet. Entretanto no JDK 1.2.x, o applet assinado terá liberdades conforme especificado por um arquivo de política (policy file). Utilizou-se neste trabalho para o processo de assinatura e verificação do Applet Cliente a versão JDK 1.2.1.
Assinatura digital é utilizada quando se necessita da certeza da origem de uma mensagem como se fosse uma assinatura escrita no papel. Para assinar um applet, o desenvolvedor empacota todo o código Java e arquivos relacionados dentro de um arquivo JAR (Java ARchive) (2), que é um formato de arquivo de compactação de propósito geral, usado para compactar os componentes de uma aplicação Java. A plataforma Java assina e verifica arquivos JAR usando um par de chaves (chave pública e chave privada). A chave privada funciona como uma "caneta" eletrônica que assina o arquivo (ver Figura 1). Como o próprio nome sugere, esta chave só é conhecida pelo assinante do applet. O processo de verificação da assinatura pode ser feito por qualquer pessoa que possua a chave pública correspondente a chave que assinou o arquivo.(1)
[size=9:1f763170b3]Figura 1 ? Processo de assinatura[/size:1f763170b3]
A chave pública é distribuída dentro de um certificado que é uma declaração assinada por uma entidade idônea, chamada Autoridade de Certificação (Certification Authority- CA), que confirma que a chave pública que está no mesmo é confiável. Existem várias Autoridades de Certificação, por exemplo, a VeriSign, Thawte, Entrust e Certisign (empresa brasileira). Toda CA requer um emissor para validar a sua identidade, até mesmo a de mais alto nível. Para estes casos, existem os certificados auto-assinados (self-signed), onde o emissor do certificado é o próprio sujeito.
Os browsers Netscape e Internet Explorer (IE) não usam a codificação de assinatura do JDK. Existem basicamente três tipos diferentes de assinatura de applets, para o IE, para o Netscape, e para o plug-in Java da Sun. Este último fornece aos browsers citados acima a capacidade de utilizar applets assinados através da Java Security API do kit JDK.
Algumas ferramentas necessárias para a assinatura, seguindo o padrão da Sun, encontram-se no JDK 1.2, são elas (7):
Jar (JAR Creation Tool)
Keytool (Key and Certificate Management Tool)
Jarsigner (JAR Signing and Verification Tool)
PolicyTool (Policy File Creation and Management Tool)
Para uma melhor compreensão, encontra-se descritos a seguir os passos utilizados no processo de assinatura e verificação do AppletClient.
Passos para assinar um Applet
Os passos para assinar um Applet estão representados na Figura 2:
[size=9:1f763170b3]Figura 2 ? Diagrama de blocos do processo de assinatura por parte do desenvolvedor [/size:1f763170b3]
Criar o arquivo JAR (2)Deve-se criar um arquivo JAR contendo o arquivo .class da Applet e todas as classes que serão utilizadas e que farão uso de recursos fora do sandbox conforme indicado no item 1 da Figura 2. É importante ressaltar que a ferramenta jarsigner somente assinará arquivos JAR criados pelo JDK, ou arquivos ZIP.
Uma ferramenta utilizada para criação deste arquivo é o jar do JDK. Para criar um JAR contendo o arquivo MeuApplet.class, com o nome MeuJar.jar basta fazer:
Utilizou-se a opção "exportar para arquivo JAR" do Visual Age (ambiente de desenvolvimento Java da IBM) para empacotar os arquivos necessários.
Gerar o par de chaves (pública e privada) (5)
Este passo deve ser executado se ainda não houver um par de chaves a ser usado no processo de assinatura (ver item 2 da Figura 2). Para criar o par de chaves utiliza-se a ferramenta keytool do JDK cujas opções são:
Para a criação das chaves empregadas neste projeto utilizou-se a seguinte linha de comando:
Quando as chaves são geradas (comando ?genkey) um certificado auto-assinado é criado. Caso deseje-se trocar este certificado por um certificado reconhecido por uma empresa confiável, deve-se fazer um pedido de certificado de assinatura (CSR CerticateSigning Request), e o resultado desta solicitação deve ser importado para o keystore.
Assinar o arquivo JAR (4)
Deve-se assinar o arquivo JAR com a chave privada, para isto utiliza-se a ferramenta jarsigner do JDK, conforme esquematizado no item 3 da Figura 2, da seguinte forma:
Onde o jar-file é o arquivo a ser assinado, e o alias, é o nome com o qual a chave privada foi guardada no keystore. As opções são as seguintes:
keystore þ URL do keystore onde a chave está armazenada. Se nada for especificado serão armazenadas no User.Home\.keystore (em geral c:\windows\.keystore).
storetype þ especifica o tipo do keystore que será instanciado. O tipo default do keystore é especificado pelo valor da propriedade de "keystore.type", no arquivo de propriedades de segurança.
storepass þSenha protetora do keystore. Se não for informada, o programa perguntará antes de assinar.
keypass þ Senha protetora da chave privada. Se não for informada, o programa perguntará antes de assinar.
sigfile þ Especifica o nome a ser usado nos arquivos .SF (arquivo de assinatura) e .DSA (bloco de assinatura).Se nada for especificado, o nome será os 8 primeiros caracteres do alias especificado, se o alias tiver menos que 8, seu nome inteiro será colocado.
signedjar þ Especifica o nome e o local de armazenamento do arquivo JAR assinado. Por default, o arquivo assinado irá sobrescrever o não assinado.
verbose þ Indica o modo verbose, que faz aparecer mais informações na tela durante o processo de assinatura.
A linha de comando utilizada neste projeto foi:
Exportar o Certificado da chave pública (5)
Para que se possa distribuir a chave pública é necessário um certificado autenticando a mesma, deve-se exportar o certificado que está no keystore usando a ferramenta keytool do JDK (ver item 4 Figura 2).
Neste projeto utilizou-se a seguinte linha de comando:
O certificado exportado deve ser enviado para os usuários do applet.
Criar a página HTML ( 8 )
Conforme demonstrado no item 5 da Figura 2, para o Applet funcionar nos browser Netscape e IE, é necessário instalar o Plug-in, fornecido pela Sun, e converter a página HTML para que esta informe qual JVM (Java Virtual Machine) será utilizada.
Para fazer a página com suporte a Plug-in basta utilizar a ferramenta HTMLConverter também fornecida pela Sun. Porém, é necessário que uma página previamente pronta, contenha a informação de que um arquivo assinado será utilizado. A Tag deve ser:
Note que isto é apenas a Tag do applet, a página HTML pode conter outros dados.
Se o applet for rodar no appletviewer, não é preciso converter a página pois o plug-in só é necessário nos browsers.
Passos para verificar a assinatura
Os passos que o usuário deve seguir estão representados na Figura 3:
Instalar Plug-in ( 8 )
Para que o Applet funcione é indispensável que o usuário instale em seu browser a ultima versão do Java Plug-in, fornecido pela Sun (ver item 1 da Figura 3).
Importar o Certificado (5)
Segundo apresentado no item 2 da Fifura 3, o usuário deve importar o certificado enviado pelo desenvolvedor do applet para um keystore de seu disco local, utilizando a ferramenta keytool do JDK.
Este passo pode ser facilitado pelo desenvolvedor da aplicação se este fornecer o arquivo .keystore, sendo apenas necessário gravá-lo no user.home. Porém, se o usuário deseja ter outros certificados além do fornecido pelo desenvolvedor, este terá que importá-lo, não esquecendo de informar que ele é trusted quando a ferramenta keytool perguntar.
Configurar o Arquivo Policy
Como último passo (ver item 3 Figura 3), tem-se a configuração do arquivo de política no disco local do usuário da aplicação. Este arquivo informa quais permissões serão atribuídas para as aplicações especificadas. O arquivo policy, pode ser escrito em um arquivo de texto normal, pode ser gerado utilizando a ferramenta policytool do JDK1.2.x., ou ainda pode ser fornecido pelo desenvolvedor da aplicação.
Quando fornecido pelo desenvolvedor, o arquivo policy conterá apenas as permissões da aplicação e deverá ser gravado no user.home\.java.policy. Caso o usuário deseje definir permissões para outras aplicações, este deverá configurá-las no seu arquivo policy.
Neste trabalho utilizou-se a ferramenta policytool, onde o desenvolvedor definiu as permissões necessária para o AppletClient se conectar ao Serviço de Nomes e ao Servidor Bancário e forneceu o arquivo policy gerado ao usuário da aplicação.
Utilizando a Ferramenta policytool (6)
A Figura 4 apresenta a tela inicial do policytool, se estiver sendo usado pela primeira vez, este avisará que nenhum arquivo de política foi encontrado.
[size=9:1f763170b3]Figura 4 ? Tela inicial do aplicativo Policytool [/size:1f763170b3]
Para o usuário criar um novo arquivo, este deve ir no menu File e selecionar New, ou se quiser modificar um arquivo já existente, deve selecionar Open (no mesmo menu) e então escolher o arquivo.
Em seguida deve-se indicar qual keystore será usado. Selecionando o comando Change Keystore no menu Edit, a tela apresentada na Figura 5 solicitará a URL do local onde keystore está armazenado, por exemplo, file:/c:/windows/.keystore, e o tipo de arquivo deste keystore (não sendo necessário preencher, se o tipo for JKS-formato padrão da Sun). Terminada a operação pressiona-se o botão OK.
[size=9:1f763170b3]Figura 5 ? Tela de modificação do keystore do aplicativo Policytool[/size:1f763170b3]
Para adicionar as permissões que possibilitará ao Applet sair do sandbox, pressiona-se o botão Add Policy Entry (Figura 4). Surge então uma nova tela (ver Figura 6), solicitando o preenchimento do quoteBase com a URL do arquivo JAR assinado, se vários arquivos de uma pasta forem usados pode-se colocar um * ao invés do nome do arquivo JAR. E, o campo do SignedBy deve ser preenchido com o alias do certificado da chave que assinou o arquivo.
[size=9:1f763170b3]Figura 6 - Tela do aplicativo Policytool de apresentação das permissões concedidas ao applet[/size:1f763170b3]
Feitas estas operações, deve-se adicionar a permissão para o applet, pressionado o botão Add Permision da Figura 6. A tela da Figura 7 aparecerá, para que se escolha a permissão que será dada. Suponhamos que o Applet tenha que abrir uma conexão (Socket) com outra máquina, a permissão então será java.net.SocketPermission. No Target name pode-se permitir fazer um socket com qualquer outra máquina colocando um * ou especificar uma máquina. Em Actions deve-se escolher quais ações deseja-se permitir (connect, accept, resolve, listen).
[size=9:1f763170b3]Figura 7 - Tela para adicionar permissão do aplicativo Policytool[/size:1f763170b3]
Ao terminar pressiona-se o botão OK, depois Done (ver Figura 6), e salva-se o arquivo selecionando o menu File e depois Save (ver Figura 4).
Note que o Browser procurará pelo arquivo user.home\.java.policy para verificar as permissões de uma aplicação. Portanto, se o usuário do applet deseja que o arquivo policy criado seja utilizado, deve gravá-lo neste local.
Conclusões e Resultados
A implementação utilizando o plug-in Java da Sun demonstrou-se muito útil, pois pode ser utilizado nos browsers mais conhecidos, Netscape e Internet Explorer (IE) , ao passo que sem o plug-in, as assinaturas utilizando o Netscape ou Internet Explorer, por não usarem a codificação de assinatura do JDK, não são compatíveis resultando no não funcionamento do applet em ambos os browsers.
Em contrapartida, para que o processo seja concluído com sucesso, o usuário deve estar ciente que deve utilizar um arquivo policy e também possuir um keystore o que implica ter conhecimento sobre as ferramentas policytool, e keytool se desejar permitir acesso fora do sandbox para applets diferentes.
Demonstrado que esta forma de implementação de assinatura apresenta os resultados desejados, possibilitando todos os acessos necessários fora do sandbox.
Luís Carlos Moreira
luis@javafree.com.br
O modelo de segurança implementado pela plataforma Java, na sua proposição inicial, é centrada sobro o conceito de sandbox (caixa de areia) (4). De acordo com o modelo sandbox, um código remoto (applet) não é confiável e pode acessar recursos limitados, fornecidos dentro do sandbox, uma área do Servidor Web dedicado àquele applet. A idéia de sandbox foi desenvolvida no sentido de garantir que mesmo que um usuário carregue um applet malicioso, esse não pode danificar a máquina local, por exemplo, apagar um arquivo do seu disco local.
Porém existem applets que são de confiança e necessitam s air do sandbox para fornecer um determinado serviço. Existem varias maneiras para resolver este problema, uma delas é a assinatura do applet. (4)
O JDK 1.1.x introduziu o conceito de applet assinado. Neste modelo estendido, um applet assinado digitalmente é tratado como código local confiável (aplicação standalone) se a assinatura é reconhecida como confiável pelo sistema que recebeu o applet. Entretanto no JDK 1.2.x, o applet assinado terá liberdades conforme especificado por um arquivo de política (policy file). Utilizou-se neste trabalho para o processo de assinatura e verificação do Applet Cliente a versão JDK 1.2.1.
Assinatura digital é utilizada quando se necessita da certeza da origem de uma mensagem como se fosse uma assinatura escrita no papel. Para assinar um applet, o desenvolvedor empacota todo o código Java e arquivos relacionados dentro de um arquivo JAR (Java ARchive) (2), que é um formato de arquivo de compactação de propósito geral, usado para compactar os componentes de uma aplicação Java. A plataforma Java assina e verifica arquivos JAR usando um par de chaves (chave pública e chave privada). A chave privada funciona como uma "caneta" eletrônica que assina o arquivo (ver Figura 1). Como o próprio nome sugere, esta chave só é conhecida pelo assinante do applet. O processo de verificação da assinatura pode ser feito por qualquer pessoa que possua a chave pública correspondente a chave que assinou o arquivo.(1)
[size=9:1f763170b3]Figura 1 ? Processo de assinatura[/size:1f763170b3]
A chave pública é distribuída dentro de um certificado que é uma declaração assinada por uma entidade idônea, chamada Autoridade de Certificação (Certification Authority- CA), que confirma que a chave pública que está no mesmo é confiável. Existem várias Autoridades de Certificação, por exemplo, a VeriSign, Thawte, Entrust e Certisign (empresa brasileira). Toda CA requer um emissor para validar a sua identidade, até mesmo a de mais alto nível. Para estes casos, existem os certificados auto-assinados (self-signed), onde o emissor do certificado é o próprio sujeito.
Os browsers Netscape e Internet Explorer (IE) não usam a codificação de assinatura do JDK. Existem basicamente três tipos diferentes de assinatura de applets, para o IE, para o Netscape, e para o plug-in Java da Sun. Este último fornece aos browsers citados acima a capacidade de utilizar applets assinados através da Java Security API do kit JDK.
Algumas ferramentas necessárias para a assinatura, seguindo o padrão da Sun, encontram-se no JDK 1.2, são elas (7):
Jar (JAR Creation Tool)
Keytool (Key and Certificate Management Tool)
Jarsigner (JAR Signing and Verification Tool)
PolicyTool (Policy File Creation and Management Tool)
Para uma melhor compreensão, encontra-se descritos a seguir os passos utilizados no processo de assinatura e verificação do AppletClient.
Passos para assinar um Applet
Os passos para assinar um Applet estão representados na Figura 2:
[size=9:1f763170b3]Figura 2 ? Diagrama de blocos do processo de assinatura por parte do desenvolvedor [/size:1f763170b3]
Criar o arquivo JAR (2)Deve-se criar um arquivo JAR contendo o arquivo .class da Applet e todas as classes que serão utilizadas e que farão uso de recursos fora do sandbox conforme indicado no item 1 da Figura 2. É importante ressaltar que a ferramenta jarsigner somente assinará arquivos JAR criados pelo JDK, ou arquivos ZIP.
Uma ferramenta utilizada para criação deste arquivo é o jar do JDK. Para criar um JAR contendo o arquivo MeuApplet.class, com o nome MeuJar.jar basta fazer:
Quote: |
jar cvf MeuJar.jar MeuApplet.class |
Utilizou-se a opção "exportar para arquivo JAR" do Visual Age (ambiente de desenvolvimento Java da IBM) para empacotar os arquivos necessários.
Gerar o par de chaves (pública e privada) (5)
Este passo deve ser executado se ainda não houver um par de chaves a ser usado no processo de assinatura (ver item 2 da Figura 2). Para criar o par de chaves utiliza-se a ferramenta keytool do JDK cujas opções são:
Quote: |
Keytool -genkey {-alias alias} {-keyalg keyalg} {-keysize keysize} {-sigalg sigalg} {-dname dname} {-keypass keypass} {-validity valDays} {-storetype storetype} {-keystore keystore} {-storepass storepass} {-v} {-Jjavaoption} |
Quote: |
alias þ Nome pelo qual as chaves serão reconhecidas e armazenadas no keystore (banco de chaves). Ex: mykey keyalg þAlgoritmo de criptografia utilizado para a criação das chaves. Este argumento é opcional, se nada for especificado o algoritmo utilizado será o DSA (Digital Signature Algorithm). Neste projeto foi utilizada esta opção default. keysize þ Tamanho da chave que será gerada. O algoritmo DSA suporta tamanhos de 512 a 1024 bits, sendo o tamanho necessariamente múltiplo de 64. Para qualquer algoritmo o tamanho default é 1024. sigalg þAlgoritmo de criptografia utilizado para assinar o JAR. Este argumento é opcional, se nada for especificado o algoritmo utilizado será o DSA. dname þ Nome da entidade que gerará o par de chaves Ex: CN=Banco do DAS, OU=LCMI, O=UFSC, L=Florianópolis, S=Santa Catarina, C=BR Onde : CN = nome comum, OU = unidade organizacional (departamento, divisão), O = nome da organização, L = nome da localidade (cidade), S = estado, C = código do país. keypass þ Senha utilizada para a proteção da chave no keystore. validity þ Número de dias que o certificado deve ser válido. storetype þ Permite definir a forma de armazenamento e o formato dos dados do keystore. Por default o formato é JKS (tipo proprietário da implementação de keystore fornecido pela Sun). keystore þkeystore onde as chaves serão armazenadas. Se nada for especificado serão armazenadas no User.Home\.keystore (em geral c:\windows\.keystore), se não existir este será criado. storepass þ Senha protetora do keystore. v þ Mostra o certificado em forma legível |
Para a criação das chaves empregadas neste projeto utilizou-se a seguinte linha de comando:
Quote: |
keytool -genkey -dname "cn=Banco do Das, ou=LCMI, o=UFSC, c=BR" -alias key -keystore u:\grupo\mykeystore -storepass 123456 -validity 180 |
Quando as chaves são geradas (comando ?genkey) um certificado auto-assinado é criado. Caso deseje-se trocar este certificado por um certificado reconhecido por uma empresa confiável, deve-se fazer um pedido de certificado de assinatura (CSR CerticateSigning Request), e o resultado desta solicitação deve ser importado para o keystore.
Assinar o arquivo JAR (4)
Deve-se assinar o arquivo JAR com a chave privada, para isto utiliza-se a ferramenta jarsigner do JDK, conforme esquematizado no item 3 da Figura 2, da seguinte forma:
Quote: |
jarsigner [options] jar-file alias |
Onde o jar-file é o arquivo a ser assinado, e o alias, é o nome com o qual a chave privada foi guardada no keystore. As opções são as seguintes:
Quote: |
jarsigner {-keystore url} {-storetype storetype} {-storepass storepass} {-keypass keypass} {-sigfile sigfile} {-signedjar signedjar} {-verbose} {-Jjavaoption} |
keystore þ URL do keystore onde a chave está armazenada. Se nada for especificado serão armazenadas no User.Home\.keystore (em geral c:\windows\.keystore).
storetype þ especifica o tipo do keystore que será instanciado. O tipo default do keystore é especificado pelo valor da propriedade de "keystore.type", no arquivo de propriedades de segurança.
storepass þSenha protetora do keystore. Se não for informada, o programa perguntará antes de assinar.
keypass þ Senha protetora da chave privada. Se não for informada, o programa perguntará antes de assinar.
sigfile þ Especifica o nome a ser usado nos arquivos .SF (arquivo de assinatura) e .DSA (bloco de assinatura).Se nada for especificado, o nome será os 8 primeiros caracteres do alias especificado, se o alias tiver menos que 8, seu nome inteiro será colocado.
signedjar þ Especifica o nome e o local de armazenamento do arquivo JAR assinado. Por default, o arquivo assinado irá sobrescrever o não assinado.
verbose þ Indica o modo verbose, que faz aparecer mais informações na tela durante o processo de assinatura.
A linha de comando utilizada neste projeto foi:
Quote: |
jarsigner -keystore u:\grupo\mykeystore -storepass 123456 -signedjar asistemaBancario.jar sistemaBancario.jar key |
Exportar o Certificado da chave pública (5)
Para que se possa distribuir a chave pública é necessário um certificado autenticando a mesma, deve-se exportar o certificado que está no keystore usando a ferramenta keytool do JDK (ver item 4 Figura 2).
Quote: |
keytool -export {-alias alias} {-file cert_file} {-storetype storetype} {-keystore keystore} {-storepass storepass} {-rfc} {-v} {Jjavaoption} |
Quote: |
alias þ Nome com o qual a chave foi guardada no keystore. file þLocal e nome com o qual o certificado será exportado. storetype þ Especifica o tipo do keystore que será instanciado. O tipo default do keystore é especificado pelo valor da propriedade de "keystore.type", no arquivo de propriedades de segurança. keystore þ Local do keystore onde o certificado está armazenado. Se nada for especificado serão exportadas do User.Home\.keystore (em geral c:\windows\.keystore). storepass þSenha protetora do keystore. Se não for informada o programa perguntará antes de exportar. rfc þ Exporta o certificado na forma definida pelo padrão Internet RFC 1421. Quando exportado desta forma este começa com"-------Begin" e termina por "------End". v þ Indica o modo verbose, que faz aparecer mais informações na tela enquanto exporta o certificado. |
Neste projeto utilizou-se a seguinte linha de comando:
Quote: |
keytool -export -keystore u:\grupo\mykeystore -alias key -file keycert.x509 |
O certificado exportado deve ser enviado para os usuários do applet.
Criar a página HTML ( 8 )
Conforme demonstrado no item 5 da Figura 2, para o Applet funcionar nos browser Netscape e IE, é necessário instalar o Plug-in, fornecido pela Sun, e converter a página HTML para que esta informe qual JVM (Java Virtual Machine) será utilizada.
Para fazer a página com suporte a Plug-in basta utilizar a ferramenta HTMLConverter também fornecida pela Sun. Porém, é necessário que uma página previamente pronta, contenha a informação de que um arquivo assinado será utilizado. A Tag deve ser:
Quote: |
<applet quote="Applet.class" ARCHIVE="arquivoAssinado.jar" wdth=500 height=50> </applet> |
Note que isto é apenas a Tag do applet, a página HTML pode conter outros dados.
Se o applet for rodar no appletviewer, não é preciso converter a página pois o plug-in só é necessário nos browsers.
Passos para verificar a assinatura
Os passos que o usuário deve seguir estão representados na Figura 3:
Instalar Plug-in ( 8 )
Para que o Applet funcione é indispensável que o usuário instale em seu browser a ultima versão do Java Plug-in, fornecido pela Sun (ver item 1 da Figura 3).
Importar o Certificado (5)
Segundo apresentado no item 2 da Fifura 3, o usuário deve importar o certificado enviado pelo desenvolvedor do applet para um keystore de seu disco local, utilizando a ferramenta keytool do JDK.
Quote: |
keytool -import {-alias alias} {-file file} |
Quote: |
alias þ nome com o qual o certificado será importado. file þ local e nome do certificado. |
Este passo pode ser facilitado pelo desenvolvedor da aplicação se este fornecer o arquivo .keystore, sendo apenas necessário gravá-lo no user.home. Porém, se o usuário deseja ter outros certificados além do fornecido pelo desenvolvedor, este terá que importá-lo, não esquecendo de informar que ele é trusted quando a ferramenta keytool perguntar.
Configurar o Arquivo Policy
Como último passo (ver item 3 Figura 3), tem-se a configuração do arquivo de política no disco local do usuário da aplicação. Este arquivo informa quais permissões serão atribuídas para as aplicações especificadas. O arquivo policy, pode ser escrito em um arquivo de texto normal, pode ser gerado utilizando a ferramenta policytool do JDK1.2.x., ou ainda pode ser fornecido pelo desenvolvedor da aplicação.
Quando fornecido pelo desenvolvedor, o arquivo policy conterá apenas as permissões da aplicação e deverá ser gravado no user.home\.java.policy. Caso o usuário deseje definir permissões para outras aplicações, este deverá configurá-las no seu arquivo policy.
Neste trabalho utilizou-se a ferramenta policytool, onde o desenvolvedor definiu as permissões necessária para o AppletClient se conectar ao Serviço de Nomes e ao Servidor Bancário e forneceu o arquivo policy gerado ao usuário da aplicação.
Utilizando a Ferramenta policytool (6)
A Figura 4 apresenta a tela inicial do policytool, se estiver sendo usado pela primeira vez, este avisará que nenhum arquivo de política foi encontrado.
[size=9:1f763170b3]Figura 4 ? Tela inicial do aplicativo Policytool [/size:1f763170b3]
Para o usuário criar um novo arquivo, este deve ir no menu File e selecionar New, ou se quiser modificar um arquivo já existente, deve selecionar Open (no mesmo menu) e então escolher o arquivo.
Em seguida deve-se indicar qual keystore será usado. Selecionando o comando Change Keystore no menu Edit, a tela apresentada na Figura 5 solicitará a URL do local onde keystore está armazenado, por exemplo, file:/c:/windows/.keystore, e o tipo de arquivo deste keystore (não sendo necessário preencher, se o tipo for JKS-formato padrão da Sun). Terminada a operação pressiona-se o botão OK.
[size=9:1f763170b3]Figura 5 ? Tela de modificação do keystore do aplicativo Policytool[/size:1f763170b3]
Para adicionar as permissões que possibilitará ao Applet sair do sandbox, pressiona-se o botão Add Policy Entry (Figura 4). Surge então uma nova tela (ver Figura 6), solicitando o preenchimento do quoteBase com a URL do arquivo JAR assinado, se vários arquivos de uma pasta forem usados pode-se colocar um * ao invés do nome do arquivo JAR. E, o campo do SignedBy deve ser preenchido com o alias do certificado da chave que assinou o arquivo.
[size=9:1f763170b3]Figura 6 - Tela do aplicativo Policytool de apresentação das permissões concedidas ao applet[/size:1f763170b3]
Feitas estas operações, deve-se adicionar a permissão para o applet, pressionado o botão Add Permision da Figura 6. A tela da Figura 7 aparecerá, para que se escolha a permissão que será dada. Suponhamos que o Applet tenha que abrir uma conexão (Socket) com outra máquina, a permissão então será java.net.SocketPermission. No Target name pode-se permitir fazer um socket com qualquer outra máquina colocando um * ou especificar uma máquina. Em Actions deve-se escolher quais ações deseja-se permitir (connect, accept, resolve, listen).
[size=9:1f763170b3]Figura 7 - Tela para adicionar permissão do aplicativo Policytool[/size:1f763170b3]
Ao terminar pressiona-se o botão OK, depois Done (ver Figura 6), e salva-se o arquivo selecionando o menu File e depois Save (ver Figura 4).
Note que o Browser procurará pelo arquivo user.home\.java.policy para verificar as permissões de uma aplicação. Portanto, se o usuário do applet deseja que o arquivo policy criado seja utilizado, deve gravá-lo neste local.
Conclusões e Resultados
A implementação utilizando o plug-in Java da Sun demonstrou-se muito útil, pois pode ser utilizado nos browsers mais conhecidos, Netscape e Internet Explorer (IE) , ao passo que sem o plug-in, as assinaturas utilizando o Netscape ou Internet Explorer, por não usarem a codificação de assinatura do JDK, não são compatíveis resultando no não funcionamento do applet em ambos os browsers.
Em contrapartida, para que o processo seja concluído com sucesso, o usuário deve estar ciente que deve utilizar um arquivo policy e também possuir um keystore o que implica ter conhecimento sobre as ferramentas policytool, e keytool se desejar permitir acesso fora do sandbox para applets diferentes.
Demonstrado que esta forma de implementação de assinatura apresenta os resultados desejados, possibilitando todos os acessos necessários fora do sandbox.
Quote: |
Bibliografia (1) OAKS, Scott, Segurança de dados em JAVA, Editora Ciência Moderna Ltda, Rio de Janeiro, 1999. (2) Sun Microsystems Inc., JAR Guide. Sun Microsystems Inc. Moutain View, CA. ( http://java.sun.com/products/jdk/1.2/docs/guide/jar/jarGuide.html ) (3) Sun Microsystems Inc., jarsigner ? JAR Signing and Verification Tool. Sun Microsystems Inc. Moutain View, CA, October 1998. ( http://java.sun.com/products/jdk/1.2/docs/tooldocs/win32/jarsigner.html (4) Sun Microsystems Inc., Java Security Architecture (JDK1.2) Version 1.0. Sun Microsystems Inc. Moutain View, CA, October 1998. ( http://java.sun.com/products/jdk/1.2/docs/guide/security/spec/security-spec.doc.html ) (5) Sun Microsystems Inc., keytool - Key and Certificate Management Tool. Sun Microsystems Inc. Moutain View, CA, October 1998. ( http://java.sun.com/products/jdk/1.2/docs/tooldocs/win32/keytool.html ) (6) Sun Microsystems Inc.,Policy Tool - Policy File Creation and Management Tool. Sun Microsystems Inc. Moutain View, CA, October 1998. Http://java.sun.com/products/jdk/1.2/docs/tooldocs/win32/policytool.html (7) Sun Microsystems Inc., Summary of JDK 1.2 Security Tools. Sun Microsystems Inc. Moutain View, CA, October 1998. ( http://java.sun.com/products/jdk/1.2/docs/guide/security/SecurityToolsSummary.html ) ( 8 ) Sun Microsystems Inc., JDK 1.2 - Signed Applet Example. Sun Microsystems Inc. Moutain View, CA, February 1999. ( http://java.sun.com/security/signExample12 ) |
Luís Carlos Moreira
luis@javafree.com.br
Oracle Database 10g Express Edition
Parece muito interessante ter um banco robusto como oracle para pequenas apps e free.
Oracle Database 10g Express Edition: "Oracle Database 10g Express Edition (Oracle Database XE) is an entry-level, small-footprint database based on the Oracle Database 10g Release 2 code base that's free to develop, deploy, and distribute; fast to download; and simple to administer. Oracle Database XE is a great starter database for:
* Developers working on PHP, Java, .NET, and Open Source applications
* DBAs who need a free, starter database for training and deployment
* Independent Software Vendors (ISVs) and hardware vendors who want a starter database to distribute free of charge
* Educational institutions and students who need a free database for their curriculum
"
Oracle Database 10g Express Edition: "Oracle Database 10g Express Edition (Oracle Database XE) is an entry-level, small-footprint database based on the Oracle Database 10g Release 2 code base that's free to develop, deploy, and distribute; fast to download; and simple to administer. Oracle Database XE is a great starter database for:
* Developers working on PHP, Java, .NET, and Open Source applications
* DBAs who need a free, starter database for training and deployment
* Independent Software Vendors (ISVs) and hardware vendors who want a starter database to distribute free of charge
* Educational institutions and students who need a free database for their curriculum
"
segunda-feira, fevereiro 13, 2006
iMasters - Javascript
iMasters - Javascript: " Quarta-feira, 01 de setembro de 2004
Regular Expression
Na coluna desta semana vamos abordar um assunto muito procurado pelos usuários de Javascript: as expressões regulares (conhecida como Regular Expression), que são muito usadas para a validação de entrada de dados por parte do usuário. Vamos aprender como criá-las e usá-las em Javascript.
Neste artigo eu vou usar tanto a palavra expressões regulares como Regular Expression (inglês). Eu vou usar em português para facilitar, mas esse nome não existe em português.
As expressões regulares são padrões utilizados para encontrar combinações de caracteres em Strings. É uma ferramenta muito poderosa porque consegue resumi em algumas linhas de código pesquisas altamente complexas. O principal uso de expressões regulares em Javascript seria na validação de dados.
Em JavaScript, expressões regulares também podem ser tratadas como um objeto. Esses padrões são usados com os métodos exec e test do objeto RegExp, e com os métodos match, replace, search, e split do objeto String.
Algumas das traduções deste artigo não são totalmente fieis. Espero que consigam entender o que a mensagem está passando.
Entendendo as Expressões Regulares
As expressões regulares podem ser criadas de duas f"
Regular Expression
Na coluna desta semana vamos abordar um assunto muito procurado pelos usuários de Javascript: as expressões regulares (conhecida como Regular Expression), que são muito usadas para a validação de entrada de dados por parte do usuário. Vamos aprender como criá-las e usá-las em Javascript.
Neste artigo eu vou usar tanto a palavra expressões regulares como Regular Expression (inglês). Eu vou usar em português para facilitar, mas esse nome não existe em português.
As expressões regulares são padrões utilizados para encontrar combinações de caracteres em Strings. É uma ferramenta muito poderosa porque consegue resumi em algumas linhas de código pesquisas altamente complexas. O principal uso de expressões regulares em Javascript seria na validação de dados.
Em JavaScript, expressões regulares também podem ser tratadas como um objeto. Esses padrões são usados com os métodos exec e test do objeto RegExp, e com os métodos match, replace, search, e split do objeto String.
Algumas das traduções deste artigo não são totalmente fieis. Espero que consigam entender o que a mensagem está passando.
Entendendo as Expressões Regulares
As expressões regulares podem ser criadas de duas f"
terça-feira, fevereiro 07, 2006
JavaRanch Journal - January 2006 Volume 5 Issue 1 - ajax article
JavaRanch Journal - January 2006 Volume 5 Issue 1: "Ajax: A New Approach to Web Applications
by Eric Pascarello
The buzz that has been swarming the Internet is the term Ajax (Asynchronous JavaScript and XML). To my surprise, many developers still are not sure what this Ajax thing is. Hopefully I can educate those Ranchers that are still in the dark about this hot topic in the world of programming. Why is this Ajax thing so hot? Well the magic of it all is it spans every server side language out there. A PHP developer, a Java developer, and a .NET developer can all use this! This Ajax technology is not server side language specific so that is why there is great 'hype.' I can personally say that Ajax is not just hype. Judging by the responses I have gotten from here on the JavaRanch or out on my talks promoting Ajax in Action, it looks like Ajax is not going away, as some old timer programmers are wishing! I use it in production, and it's part of many applications that you may use on a daily basis.
It may be a surprise to some, but Ajax has been around for a long time; it's just that no one put a cleaning name to it until of late. And yes, Microsoft did implement it and others copied it (others copy Microsoft?) I am glad they did so this could take off. Ajax is supported by all of the major Web browsers now available.
This "
by Eric Pascarello
The buzz that has been swarming the Internet is the term Ajax (Asynchronous JavaScript and XML). To my surprise, many developers still are not sure what this Ajax thing is. Hopefully I can educate those Ranchers that are still in the dark about this hot topic in the world of programming. Why is this Ajax thing so hot? Well the magic of it all is it spans every server side language out there. A PHP developer, a Java developer, and a .NET developer can all use this! This Ajax technology is not server side language specific so that is why there is great 'hype.' I can personally say that Ajax is not just hype. Judging by the responses I have gotten from here on the JavaRanch or out on my talks promoting Ajax in Action, it looks like Ajax is not going away, as some old timer programmers are wishing! I use it in production, and it's part of many applications that you may use on a daily basis.
It may be a surprise to some, but Ajax has been around for a long time; it's just that no one put a cleaning name to it until of late. And yes, Microsoft did implement it and others copied it (others copy Microsoft?) I am glad they did so this could take off. Ajax is supported by all of the major Web browsers now available.
This "
Forum
Unico jeito que conssegui desbloquear o c333 foi o que segue abaixo:
PASSOS PARA DESBLOQUEAR MOTOROLA C333
São QUATRO passos, que devem seguir a ordem em que estão para não danificar o aparelho o aparelho deve estar com a bateria carregada e carregador conectado duranto todo o processo.
PASSO 1: PREPARA PARA RETIRAR O SUBSIDIO
Esse passo só pode ser executado em WINDOWS 2000 (Win98 é muito arriscado)
Abra o programa "MOTOROLA" da pasta "Passo 1"
Click no botão "Main Features" e em seguida no "Read"
Após click em "Flashing Module" e em seguida click no botão "Browse" e selecione o arquivo de nome " unlock c33x.vfl " após selecionado este arquivo, click na opção " Flash Phone " e aguarde, pois leva em cerca de dois minutos ou mais.
PASSO 2:
Este passo pode ser executado em WINDOWS 98 ou Windows 2000 : TROCA OS LOGOS E RESETA OS MENUS DAS OPERADORAS
Abra o programa "MOTOROLA" da pasta "Passo 2"
Click no botão "Main Features" e em seguida no "Read"
Após click em "Other Functions" e em seguida click no botão "Browse for the Flex file ... " e selecione o arquivo de nome " C33x configuracao.vhs " e depois click no botão " Flex Motorola Phone " e aguarde completar o 100% executado.
PASSO 3: Este passo só pode ser executado em WINDOWS 98 : MOSTRA O CODIGO DE SUBSIDIO
Abra o programa "MOTOROLA" da pasta "Passo 3"
Click no botão "Main Features" e em seguida no "Read"
Após click na opção "Logger"
Sem fechar o programa MOTOROLA, vá na mesma pasta do passo 3 e execute o programa "Procura Senha " esse programa só funciona com o programa MOTOROLA aberto e na opção Logger.
Após abrir o programa Procura Senha, click no botão "Search " e aguarde ate aparecer um sorriso e um numero de 8 dígitos que é o subsídio do aparelho. ( apos a digitação desse numero quando for pedido o numero de password subsídio, o aparelho estará totalmente desbloqueado e não ira mais pedir senha. )
PASSO 4: VOLTANDO O APARELHO PARA PORTUGUES
Esse passo só pode ser executado em WINDOWS 2000 (Win98 é muito arriscado)
Abra o programa "MOTOROLA" da pasta "Passo 4"
Click no botão "Main Features" e em seguida no "Read"
Após click em "Flashing Module" e em seguida click no botão "Browse" e selecione o arquivo de nome " TA02_G_06.04.1DR_lang0003_full_flash.vfl" após selecionado este arquivo, click na opção " Flash Phone " e aguarde, pois leva em cerca de dois minutos ou mais.
OBSERVAÇÕES:
Nunca interrompa nenhum cilco pela metade, pois voce queimara o aparelho;
Sempre use um chip de outra operadora do que a que o aparelho esta subsideado;
Sempre siga os passos na ordem correta.
Não nos responsabilizamos por qualquer operação feita com esses software e procedimentos
ESPERO TER AJUDADO!
PASSOS PARA DESBLOQUEAR MOTOROLA C333
São QUATRO passos, que devem seguir a ordem em que estão para não danificar o aparelho o aparelho deve estar com a bateria carregada e carregador conectado duranto todo o processo.
PASSO 1: PREPARA PARA RETIRAR O SUBSIDIO
Esse passo só pode ser executado em WINDOWS 2000 (Win98 é muito arriscado)
Abra o programa "MOTOROLA" da pasta "Passo 1"
Click no botão "Main Features" e em seguida no "Read"
Após click em "Flashing Module" e em seguida click no botão "Browse" e selecione o arquivo de nome " unlock c33x.vfl " após selecionado este arquivo, click na opção " Flash Phone " e aguarde, pois leva em cerca de dois minutos ou mais.
PASSO 2:
Este passo pode ser executado em WINDOWS 98 ou Windows 2000 : TROCA OS LOGOS E RESETA OS MENUS DAS OPERADORAS
Abra o programa "MOTOROLA" da pasta "Passo 2"
Click no botão "Main Features" e em seguida no "Read"
Após click em "Other Functions" e em seguida click no botão "Browse for the Flex file ... " e selecione o arquivo de nome " C33x configuracao.vhs " e depois click no botão " Flex Motorola Phone " e aguarde completar o 100% executado.
PASSO 3: Este passo só pode ser executado em WINDOWS 98 : MOSTRA O CODIGO DE SUBSIDIO
Abra o programa "MOTOROLA" da pasta "Passo 3"
Click no botão "Main Features" e em seguida no "Read"
Após click na opção "Logger"
Sem fechar o programa MOTOROLA, vá na mesma pasta do passo 3 e execute o programa "Procura Senha " esse programa só funciona com o programa MOTOROLA aberto e na opção Logger.
Após abrir o programa Procura Senha, click no botão "Search " e aguarde ate aparecer um sorriso e um numero de 8 dígitos que é o subsídio do aparelho. ( apos a digitação desse numero quando for pedido o numero de password subsídio, o aparelho estará totalmente desbloqueado e não ira mais pedir senha. )
PASSO 4: VOLTANDO O APARELHO PARA PORTUGUES
Esse passo só pode ser executado em WINDOWS 2000 (Win98 é muito arriscado)
Abra o programa "MOTOROLA" da pasta "Passo 4"
Click no botão "Main Features" e em seguida no "Read"
Após click em "Flashing Module" e em seguida click no botão "Browse" e selecione o arquivo de nome " TA02_G_06.04.1DR_lang0003_full_flash.vfl" após selecionado este arquivo, click na opção " Flash Phone " e aguarde, pois leva em cerca de dois minutos ou mais.
OBSERVAÇÕES:
Nunca interrompa nenhum cilco pela metade, pois voce queimara o aparelho;
Sempre use um chip de outra operadora do que a que o aparelho esta subsideado;
Sempre siga os passos na ordem correta.
Não nos responsabilizamos por qualquer operação feita com esses software e procedimentos
ESPERO TER AJUDADO!
Assinar:
Postagens (Atom)