Signature J2ME et applet (open source) pour appareils mobiles (en particulier téléphones) - que puis-je faire?

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

Question

Je viens de découvrir J2ME et j'adore les possibilités qu'il offre. Je travaille actuellement sur une application simple et j'aimerais peut-être la publier sous forme de projet open-source dans le futur.

Dans le cadre de mes recherches sur J2ME et les appareils mobiles, j'ai étudié la signature d'applets. Il semble que les gens qui veulent créer des applets gratuitement soient pris au piège entre un rocher et un lieu de merde affreux. La signature d'applets est extrêmement coûteuse et compliquée - et le coût ne peut pas être justifié lors du codage gratuit.

Il existe un grand nombre d’appareils compatibles J2ME - je pense qu’il serait dommage de devoir les ignorer et d’attendre patiemment la prochaine vague (par exemple Android).

Je me demandais si d'autres personnes avaient des idées sur la manière d'aborder ce problème?

MISE À JOUR: j'ai trouvé cet article de blog qui résume le problème pour les personnes intéressées ... http://javablog.co.uk/2007/08/09/how-midlet-signing-is-killing-j2me/

J'ai envisagé de créer une organisation parapluie à but non lucratif pour les développeurs J2ME open source qui souhaitent obtenir un certificat VeriSign (car un certificat peut signer du code un nombre illimité de fois). Mon objectif est de collecter les 500 USD, puis d’autoriser les membres du groupe à partager le certificat acheté. Nous avons discuté brièvement avec un représentant de VeriSign et ils ont pensé que l'idée pourrait fonctionner (tant que l'organisation est enregistrée en tant qu'entité légale).

Cependant, étant donné que les fabricants de combinés semblent maintenant adopter de moins en moins les certificats racine UTI (que vous ne pouvez obtenir que via le programme "vérifié par Java"), cette option risque de ne pas être aussi utile. comme je le pensais ... Si quelqu'un avait des idées, il serait bon de les entendre.

Était-ce utile?

La solution

Je crains que vous ne meniez une bataille que vous ne pouvez pas gagner. L'utilisation des API restreintes devient de plus en plus difficile et ce n'est pas accidentel. Comme vous l'avez lu dans l'entrée de blog, vous avez mentionné que le principal problème était celui des opérateurs de réseau. Même si vous achetez un certificat auprès de Verisign ou de Thawte (ce qui est par ailleurs moins cher), votre application ne fonctionnera pas sur les téléphones de la marque des opérateurs de réseau, car ceux-ci ont leurs propres règles en matière de CA.

Au début, un développeur pouvait installer son propre certificat, mais même cela n’est plus possible. Cette règle stricte est prescrite par les fabricants de téléphones (Nokia par exemple) et s’applique à tous les téléphones (même ceux de marque). Je pense que cela aussi n’est pas accidentel et est principalement dû à la pression exercée sur les fabricants d’appareils par les opérateurs de réseau.

Enfin, même si le MIDP 3.0 a été annoncé depuis des années, rien n'en est vraiment sorti. Il semble que même Sun pense que J2ME n’est que pour les jeux.

Tous ces éléments ont été longuement discutés dans les forums J2ME. Le consensus général est que les opérateurs de réseau ne veulent pas que tous les téléphones disponibles sur le marché fonctionnent comme des téléphones intelligents et puissent exécuter une application tierce. Ensuite, il sera très facile pour tout le monde d'utiliser une alternative Web moins chère que la messagerie SMS, par exemple. Cela peut sembler une théorie du complot, si vous êtes nouveau dans le monde J2ME, mais n'oubliez pas que les opérateurs de réseau vendent des téléphones avec leur propre micrologiciel qui verrouille même des fonctionnalités de base (par exemple, transférer des photos via Bluetooth ou utiliser des MP3 comme sonneries) propriétaire à utiliser des services payants!

Je ne sais pas si cela va changer maintenant que les téléphones intelligents (iPhone, Android, Windows Mobile) gagnent du terrain. N'oubliez pas que des restrictions s'appliquent également à ces plates-formes (notamment Symbian, qui est également très hostile pour l'open source).

Autres conseils

  • Vous pouvez créer un certificat de signature que vous vous auto-signez. Vos utilisateurs ont être prêt à vous faire confiance.
  • Vous pouvez indiquer à vos utilisateurs comment créer un cert et s'auto-signer avec. Ensuite, les utilisateurs doivent pouvoir se faire confiance.
  • Il y a plus ou moins de CA ouverts; vous doivent être disposés à leur faire confiance et convaincre vos utilisateurs de leur faire confiance.

Le Le didacticiel Java contient une section sur les applets signés . cela vous mènera à travers les étapes.

Je suis un développeur d’applications J2ME et je suis tout à fait d’accord avec votre publication. Les coûts de signature d'un MIDlet sont tout simplement inabordables pour les initiatives open source et, à moins que vous ne développiez des jeux simples, vous finirez tôt ou tard par utiliser des API restreintes pour accéder aux sockets ou à une API d'emplacement pour n'en nommer que deux. C’est très frustrant et si vous considérez que les politiques d’autorisation ne sont pas toujours les mêmes sur différents appareils, c’est le pire: sur certains téléphones portables, vous pouvez dire au système d’exploitation de faire confiance au entête et de ne jamais vous déranger du tout, continuez vous demander la permission chaque fois que vous appelez une méthode restreinte. C'est tragique! J'apprécie votre proposition et je pense que ce serait une grande réussite pour les développeurs JavaME.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top