Our Country Sites: Argentina|Brazil|Chile|Mexico|Peru

Assinatura digital de um MIDlet para execução privilegiada num aparelho Nextel

Versão para impressãoVersão para impressãoSend by emailSend by email

Á uma série de funções padrão de Java ME 2.0 (e algumas funções proprietárias da Motorola) nos aparelhos Motorola iDEN que são cobertas pela arquitetura de segurança de MIDP 2.0 (conhecida em inglês como a "Security Domains Architecture"). O sistema de segurança foi definido na especificação do MIDP 2.0 para prever ou abuso de certas funções Java ME que, embora tem usos legítimos, podem ter repercussões de segurança ou implicar custos adicionais pelo usuário.As políticas de segurança do MIDP 2.0 controlam as circumstâncias nas quais um MIDLet pode usar essas funções.

Baixo a arquitetura de segurança, certas funções ou grupos de funções dentro de uma API podem ser protegidas, as definindo como disponíveis somente aos aplicativos que estejam autorizadas. A arquitetura de segurança consiste de três partes:

  • Grupos de funções, os quais são arranjos lógicos de funções que tem resultados efeitos finais similares;
  • el nível de segurança ("security domain") do MIDlet, ou qual especifica ou nível de confiança que ou operador ou ou fabricante do aparelho (a Nextel ou a Motorola) lhe deu ao MIDlet
  • a configuração de permissão do MIDlet, definida no archivo JAD do MIDlet ou na tela de segurança do sistema Java do aparelho, a qual, baseada no nível de segurança, lhe da permissão ao MIDlet de executar as ações inclusas dentro do grupo de funções

Os seguintes são os grupos de funções que foram definidos na plataforma Falcon da Motorola (aparelhos com três dígitos e MIDP 2.0), e que incluem todas as funções que executam as ações listadas:

Recibo de chamadas (Phone Call Receive) [com.motorola.iden.call.CallReceive]
Funções que permitem a um MIDlet administrar uma chamada de voz entrante
Mensagería (Messaging) [javax.wireless.messaging.sms.*, javax.microedition.io.Connector.sms, javax.wireless.messaging.mms.*, javax.microedition.io.Connector.mms]
Funções que permitem a interação entre um MIDlet e ou sistema de SMS ou MMS do aparelho
Açesso à rede de dados (Net Access) [javax.microedition.io.Connector.*]
Funções que resultam numa conexão de dados ativa
Invocação automática de aplicativos (Application Auto Invocation) [javax.microedition.io.PushRegistry, javax.microedition.midlet.MIDlet.platformRequest.*]
Funções que permitem que um MIDlet seja iniciado automáticamente ou que execute alguma ação definida pela plataforma (por exemplo, iniciar ou browser WAP)
Conexões Locáis (Local Connectivity) [javax.microedition.io.Connector.comm]
Funções que ativam ou porto serial do aparelho
Gravação de multimídia (Multimedia Recording) [javax.microedition.media.control.RecordControl, javax.microedition.media.control.VideoControl.getSnapshot]
Funções que permitem que um MIDlet tire fotos, áudio ou video
Leituro dos dados do usuário(Read User Data Access) [com.motorola.iden.udm.*, com.motorola.iden.recentcalls.Read, com.mot.iden.customercare.CustomerCare.UserInfo, javax.microedition.pim.Contact.read, javax.microedition.pim.Event.read]
Funções que permitem que um MIDlet possa leer a agenda, lista de contatos, ou números do usuário como o seu número de telefone ou rádio
Escritura de dados do usuário (Write User Data Access) [com.motorola.iden.udm.WritePhoneBook, com.motorola.iden.udm.WriteDateBook, com.motorola.iden.recentcalls.Write, javax.microedition.pim.Contact.write, javax.microedition.pim.Event.write]
Funções que permitem que um MIDlet possa modificar a agenda, lista de contactos, e a lista de chamadas recemtes
Localização (Location) [javax.microedition.io.Connector.mposition, javax.microedition.location.*]

Funções que permitem que um MIDlet receba dados sobre a localização física de um aparelho. Este grupo é sujeito a ser controlado pelas políticas de privacidade de GPS configuradas no menu principal do aparelho

Informação do sistema (System information access) [com.mot.iden.customercare.CustomerCare.umitInfo, com.mot.iden.customercare.CustomerCare.ReadMsgConfig]
Funções que permitem que um MIDlet possa obter informação sobre o sistema,como o IMEI, o número de serie, a versão do sistema operativo, o modelo de aparelho, etc
Controle do sistema (System control) [com.mot.iden.device.AudioManager.Control, com.mot.iden.customercare.CustomerCare.WriteMsgConfig]
Funções que permitem que um MIDlet controle as configuracões do equipo, tales como o volume

A referencia em colchetes após do nome de cada grupo é o prefixo de texto que é preenchido no atributo

MIDlet-Permissions:

do archivo JAD para establecer que o MIDlet requere essa permissão (mais detalhes a continuacão).

Um MIDlet recebe ou é negado o açesso às funções dependendo do nível de segurança que ele receba:

Fornecedor (Manufacturer domain)
inclui MIDlets desenvolvidos por ou pedidos pela Motorola
Operador (Operator domain ú OPA)
inclui MIDlets desenvolvidos por ou pedidos pela Nextel
Terceiro Confiável (Trusted Third Party domain ó TTP)
inclui MIDlets de outras partes que tenham recebido aprobacão da Motorola ou a Nextel (e que não requeiram o nível de acesso oferecido pelo nível operador), expressado como uma assinatura digital no archivo JAD do MIDlet
Terceiro Desconhecido (untrusted domain)
inclui cualquier outro MIDlet que não tenha uma assinatura digital no arquivo JAD

Dependendo do nível de segurança, um MIDlet pode receber varios níveis de açesso para executar as funções num grupo:

Sempre Permitido(Allowed)
outorga permissão explícito para um grupo de funções baseado exclusivamente no domínio de segurança do MIDlet. Quando um grupo de funções tem esse nível de permissão, não requere nenhuma interação do usuário para que a função opere.
General(Blanket)
outorga permissão explícito para um MIDlet para um grupo de funções específico hasta que o MIDlet sea borrado do equipo ou hasta que o usuário cambie o permissão. Las aplicacões con permissão General generan uma alerta que le pide al usuário que confirme, uma sola vez, si a função puede ou no completar o seu operacão
Sesão (Session)
outorga permissão para que um MIDlet dei açesso a um grupo de funções específico durante essa operacão do MIDlet. O usuário deve de confirmar somente uma vez por sessão; cada vez que seja reinicializado o MIDlet, o usuário deve outorgar a sua permissão de volta
Uma vez (Oneshot)
permite que o MIDlet tenha açesso a um grupo de funções, mais o usuário deve confirmar essa permissão cada vez que a função seja chamada
Negado (Deny)
impede que o MIDlet dei açesso a um grupo de funções específico se o nível de segurança do MIDlet bloqueia essa função

A tabela que apresenta as combinacões de níveis de segurança, grupos de funções e permissãos disponibles vem a continuacão:

Grupo de funções Fornecedor Operador Terceiro Confiable Terceiro Desconhecido

Phone Call Receive

Padrão A A A A Outros B, S, O B, S, O B, S, O B, S, O Mensagería Padrão A A O O Outros B, S, O B, S, O S S Invocação automática de aplicativos Padrão A A S S Outros B, S, O B, S, O B, O B, O Gravação de multimídia Padrão A A S O Outros B, S, O B, S, O B S Leitura dos dados do usuário Padrão A A O O Outros B, S, O B, S, O S, B N/A Escritura dos dados do usuário Padrão A A O O Outros B, S, O B, S, O S, B N/A Acesso à informação do sistema Padrão A A S O Outros B, S, O B, S, O O, B N/A Controle do sistema Padrão A A O O Outros B, S, O B, S, O N/A N/A Localização GPS Padrão A A B B Outros B, S, O B, S, O S, O S, O Acesso à rede de dados Padrão A A A A Outros B, S, O B, S, O B, S, O B, S, O Conexões Locais Padrão A A A A Outros B, S, O B, S, O B, S, O B, S, O
KEY:
A – "Always Allowed" -- Sempre permitido, nunca pede permissão S – "Session" -- Sesão, pede permissão uma vez por instalacão
B – "Blanket" -- General, pede permissão somente uma vez por execucão O – "Oneshot" -- uma vez, pede permissão cada vez

Assinaturas digitais durante o processo de desenvolvimento

O SDK de Motorola iDEN para J2ME (MIDP 2.0) inclui uma ferramenta de assinaturas digitais que permete que um MIDlet opere baixo os níveis de Terceiro Confiável ou Operador por 48 horas em somente um aparelho. Esta ferramenta é usada durante o proceso de desarrollo. Para firmar um MIDlet con a ferramenta, faça o seguinte:

  • Usando o Manifest/JAD Editor do SDK, visite a lingüeta "Security", e adicione as APIs que esteja usando no MIDlet e que estejam cobertas pelos níveis de segurança listados acima (aqueles que estão entre colchetes). Tenha em conta que também pode adicionar esses valores manualmente ao JAD con um editor de texto, mais é importante saber que si não tem o número exato de vírgulas e espaços entre cada declaração, o processo de assinatura digital vai falhar.
  • uma vez que o JAD tenha sido editado, faça click no botão "JAD Sign" da barra, e escolha "TTP" se deseja uma assinatura tipo Terceiro Confiável ("Trusted Third Party") ou "OPA" se deseja uma assinatura tipo Operador ("Operator"), dependendo das permissões que sejam necessárias
  • Preencha o IMEI do aparelho no qual vai testar o MIDlet. A assinatura gerada pela ferramenta é ligada ao IMEI, e somente vai funcionar no aparelho com esse IMEI
  • Faça click em "Sign". Se o processo tem sucesso, receberá a mensagem "sign successfully". Desde esse momento e até 48 horas depois, o aplicativo terá permissão de operar baixo o nível de segurança indicado durante o processo de assinatura. Uma vez que caduque a assinatura, terá que re-assina-la e re-instalá-la no aparelho.

Se tem dificuldades com a ferramenta de assinatura, verifique o seguinte:

  • Verifique que a sua configuracão do Java 2 Standard Edition (J2SE) esteja correta. Se recebe uma mensagem "failed to sign", a causa más provável é que keytool.exe (parte do Java Development Kit que vem com J2SE) não esteja declarada na sua variável PATH. Procure a localização do keytool.exe (geralmente na pasta bin\ dentro do diretório do JDK) e preencha essa pasta na declaração do PATH.
  • Verifique que o archivo JAD no esteja bloqueado pela escritura, e que possa ser editado.
  • Se a assinatura completa com sucesso, mais você recebe um "Authentication Error" no momento de instalar o MIDlet no aparelho, é possível que tenha preenchido um IMEI errado na ferramenta de assinatura. Para se assegurar que tem o IMEI correto pulse os botões
    # * MENU flecha_derecha

    na tela principal do aparelho;

  • Se o seu archivo JAR contêm arquivos tipo .class que nunca seriam invocados na execução do aplicativo, pode também resultar em um "authentication error". Isso ocorre geralmente se você criou uma clase que depois decidiu não usar depois de ter compilado o aplicativo uma vez. Mesmo se as referencias a essa classe tenham sido eliminadas do código fonte, os arquivos .class criados na primeira compilação não são eliminados. Tente apagar todos os archivos tipo .class nas pastas npclass e pclass do seu projeto e volte a compilar o aplicativo antes de a assinar novamente.
  • .

Assinaturas digitais em produção ou para provas em campo

É importante fazer a ênfase seguinte: a maioria das funções podem operar de modo aceitavel mesmo se o MIDlet não tem uma assinatura digital: na maior parte dos cases, as funções operam com uma simples confirmação do usuário se elas requerem algum acesso. Somente três tipos de funções requerem uma assinatura digital no nível OPA: com.moto.iden.CustomerCare.getMyInfo, com.moto.iden.CustomerCare.getClientInfo, platformRequest("http://*")) e as funções que permitem mudar o volume do aparelho. Na maioria das outras cases, as permissões que se estabelecem por padrão tem a operacão recomendada pela Nextel e a Motorola -- elas notificam ao usuário que alguma operacão vai ocorrer. Em cases onde isso não seja desejável (como por exemplo nas solucões empresariais onde o usuário não deveria ter a opção de previr certas operações), possivelmente seja benéfico obter uma assinatura que siempre dei as permissões necessárias pelas funções correspondentes.

Quando o seu aplicacão esteja pronta para ser comercializada, e si ela requere uma firma TTP ou OPA, deve pedir uma assinatura digital do mercado Nextel no cual executará a aplicacão. Si já tem um contato estabelecido com o pessoal de ventas de dados ou con um representante do grupo de marketing da Nextel no seu país, recomendamos contatar primeiro a essa pessõa. Se deseja pedir uma assinatura digital e não tem um contato no seu mercado, por gentileza fale conosco e com prazer podemos lhe ajudar.

Um aplicativo assinado pela Nextel ou pela Motorola nos modos TTP ou OPA não têm o limite de 48 horas ou restricções sobre o número de aparelhos que podem usar o aplicativo. Cada vez que volte a compilar o se aplicativo ou faça alguma ação que modifique ou JAR do aplicativo, precisa uma nova assinatura.

.

0
Your rating: Nenhum