J2ME y firma de applets (de código abierto) para dispositivos móviles (especialmente teléfonos): ¿qué puedo hacer?

StackOverflow https://stackoverflow.com/questions/417895

Pregunta

Acabo de descubrir J2ME y me encantan las posibilidades que presenta. Actualmente estoy trabajando en una aplicación simple y me gustaría lanzarla como un proyecto de código abierto en algún momento en el futuro.

Como parte de mi investigación sobre J2ME y dispositivos móviles, busqué en la firma de applets. Parece que las personas que quieren crear applets gratis están atrapadas entre una roca y un lugar horrible. La firma de applets es extremadamente costosa y extremadamente complicada, y el gasto no se puede justificar cuando se codifica de forma gratuita.

Hay una gran cantidad de dispositivos compatibles con J2ME por ahí. Creo que sería una pena tener que ignorarlos y solo esperar pacientemente la próxima ola (por ejemplo, Android).

Me preguntaba si otras personas tienen alguna idea sobre cómo abordar este problema.

ACTUALIZACIÓN: Encontré este artículo de blog que resume el problema para aquellos interesados ??... http://javablog.co.uk/2007/08/09/how-midlet-signing-is-killing-j2me/

Pensé en configurar una organización sin fines de lucro para desarrolladores de J2ME de código abierto que desean un certificado VeriSign (como certificado puede firmar el código una cantidad ilimitada de veces). Me gustaría recaudar los $ 500 y luego permitir que los miembros del grupo compartan el certificado adquirido. Conversaron rápidamente con un representante de VeriSign y pensaron que la idea podría funcionar (siempre y cuando la organización estuviera registrada como una entidad legal).

Sin embargo, dado que los fabricantes de dispositivos móviles ahora parecen estar moviéndose para admitir solo certificados raíz UTI (que solo se pueden obtener a través del programa 'Java verified'), esto podría no ser tan útil. como pensé que podría ser ... si alguien tiene alguna idea, sería genial escucharlas.

¿Fue útil?

Solución

Me temo que estás librando una batalla que no puedes ganar. Usar las API restringidas es cada vez más difícil y esto no es accidental. Como ha leído en la entrada del blog, ha mencionado que el mayor problema son los operadores de red. Incluso si compra un certificado de Verisign o Thawte (que, por cierto, es más barato), su aplicación no se ejecutará en los teléfonos con la marca de los operadores de red, ya que estos tienen sus propias reglas de CA.

Al principio era posible para un desarrollador instalar su propio certificado, pero incluso esto ahora no es posible. Esta regla estricta es obligatoria por los fabricantes de teléfonos (Nokia, por ejemplo) y se aplica a todos los teléfonos (incluso a los que no tienen marca). Creo que esto tampoco es accidental y se debe principalmente a la presión ejercida por los operadores de red en los fabricantes de dispositivos.

Finalmente, aunque MIDP 3.0 se ha anunciado durante años, nada realmente ha salido de ello. Parece que incluso Sun cree que J2ME es solo para juegos.

Todo esto se ha discutido ampliamente en los foros de J2ME durante mucho tiempo. El consenso general es que los operadores de red no desean que todos los teléfonos disponibles en el mercado funcionen como teléfonos inteligentes y puedan ejecutar una aplicación de terceros. Entonces será muy fácil para todos usar una alternativa más barata, basada en la web, en lugar de mensajes SMS, por ejemplo. Esto puede parecer una teoría de la conspiración, si es nuevo en el mundo J2ME, pero tenga en cuenta que los operadores de red venden teléfonos con su propio firmware que bloquea incluso las funciones básicas (por ejemplo, la transferencia de fotos a través de Bluetooth o el uso de MP3 como tonos de llamada) para forzar la activación. propietario para utilizar servicios de pago!

No sé si esto va a cambiar ahora que los teléfonos inteligentes (iPhone, Android, Windows Mobile) están ganando impulso. Tenga en cuenta que también se aplican restricciones para estas plataformas (especialmente Symbian, que también es muy poco amigable para el código abierto).

Otros consejos

  • Puedes crear un certificado de firma que te autofirmas Tus usuarios tienen estar dispuesto a confiar en ti.
  • Puede instruir a sus usuarios cómo Crear un certificado y autofirmar con él. Entonces los usuarios tienen que ser capaces de confiar en sí mismos.
  • Hay más o menos CA abiertas; tú Tiene que estar dispuesto a confiar en ellos y convence a los usuarios de que confíen en ellos.

El Tutorial de Java tiene una sección sobre applets firmados Eso te llevará a través de los pasos.

Soy un desarrollador de aplicaciones J2ME y estoy totalmente de acuerdo con tu publicación. Los costos para firmar un MIDlet simplemente no son asequibles para las iniciativas de código abierto y, a menos que esté desarrollando juegos simples, pronto o más tarde terminará utilizando API restringidas para acceder a sockets o al API de ubicación, solo para nombrar dos de ellos. Esto es muy frustrante y si considera que las políticas de permisos no siempre son las mismas en varios dispositivos, las cosas empeoran: en algunos teléfonos móviles puede decirle al sistema operativo que confíe en el Entletre MIDlet y que nunca lo moleste, otros continúan para pedirle permiso cada vez que llame por un método restringido. ¡Es trágico! Vuelvo a agradecer su propuesta y creo que sería un gran logro para los desarrolladores de JavaME.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top