Venez apprendre a signer vos applets

Venez apprendre a signer vos applets - Java - Programmation

Marsh Posté le 25-07-2003 à 19:04:35    

Bon comme vous avez tous pu le voir , il semblerait que ce sujet soit taboo ici , sans compter les tres nombreux topic qui pullulent toutes les semaines....
Donc voici un petit tutoriel:
 
Pourquoi signer une applet?
 
Une applet a des restrictions des sécurités:  

  • Elle ne peux pas lire un fichier present sur le disque dur de celui qui la lance.
  • Elle ne peux pas non plus ecrire sur le disque dur de celui qui la lance.
  • Elle ne peux pas se connecter via des sockets à un host qui n'est pas celui a partir duquel elle est téléchargée.
  • Si vous en avez d'autre n'hesitez pas :o


En signant votre applet donc, vous pouvez faire ce genre de choses.
 
Comment signer?
 

  • Il faut d'abord vous créer un certificat; il faut pour cela utiliser l'outil keytool.exe (present ds le JDK)


http://very.free.free.fr/forum/certificat.gif
 

  • Puis signer vos archives en utilisant votre certificat ( qui n'as aucune valeur serieuse)


jarsigner -signedjar NomDuJarSigné jarAsigné jerry
 
http://very.free.free.fr/forum/sign.gif
 
 
voila un debut , j'ajouterai des choses au fur et a mesure que ce sera possible :o


Message édité par veryfree le 25-07-2003 à 23:04:51
Reply

Marsh Posté le 25-07-2003 à 19:04:35   

Reply

Marsh Posté le 25-07-2003 à 19:20:26    

:jap:


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 25-07-2003 à 21:53:02    

[:blueflag] Bonne initiative.


---------------
Le site de ma maman
Reply

Marsh Posté le 25-07-2003 à 23:00:32    

sympa  :)


---------------
IVG en france
Reply

Marsh Posté le 26-07-2003 à 12:35:02    

tiens question tu les définis où les droits que tu files à l'applet signée?


Message édité par darklord le 26-07-2003 à 12:35:07

---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 26-07-2003 à 12:37:05    

[:drap]

Reply

Marsh Posté le 26-07-2003 à 14:44:50    

DarkLord a écrit :

tiens question tu les définis où les droits que tu files à l'applet signée?


 
j ai rien vu spécifiant que tu pouvait choisir quel droit elle dispose; en gros qd elle est signé elle a tout les droits  :sweat:

Reply

Marsh Posté le 29-07-2003 à 11:51:15    

Ahhh un super grand merci je cherchais ca depuis lgtps!!!!
 :jap:  :jap:  :jap:  
 
Ben

Reply

Marsh Posté le 29-07-2003 à 12:23:28    

j'ai du mal a suivre....c'est bidon non ?
je veux dire si tout le monde peut signer son applet alors les restrictions de secu servent a rien du tout ?

Reply

Marsh Posté le 29-07-2003 à 12:27:01    

chrisbk a écrit :

j'ai du mal a suivre....c'est bidon non ?
je veux dire si tout le monde peut signer son applet alors les restrictions de secu servent a rien du tout ?


 
bin t'as pas besoin de dire que tu acceptes quoi [:mlc]
 
Et si mes souvenirs sont bon, il y a moyen de voir le genre de droits qui ont été acceptés dans le certificat en question.
 
Parce que si tu prends la situation dans l'autre sens, ca veut dire que si tu veux faire une applet qui se connecte sur le serveur brol port truc tu dois passer par un organisme de confiance et ca coute la peau du cul -> tu fermes la porte a pas mal de développement.


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 29-07-2003 à 12:27:01   

Reply

Marsh Posté le 02-08-2003 à 21:24:14    

DarkLord a écrit :


 
bin t'as pas besoin de dire que tu acceptes quoi [:mlc]

ça veut dire que le premier lancement de l'applet te demande la permission? ça va pas contre le principe de l'applet en général?

Reply

Marsh Posté le 02-08-2003 à 21:33:47    

bah le principe de base d'un applet, c'est de pas toucher à ton système. Si tu désires modifier ce principe, il est normal que l'utilisateur en soit averti, non?

Reply

Marsh Posté le 02-08-2003 à 21:35:19    

gizmo a écrit :

bah le principe de base d'un applet, c'est de pas toucher à ton système. Si tu désires modifier ce principe, il est normal que l'utilisateur en soit averti, non?

averti oui, mais conscient? y a pas de risque de sécurité, genre des passe-droits pour passer outre la demande de confirmation?

Reply

Marsh Posté le 03-08-2003 à 10:40:41    

Taz a écrit :

averti oui, mais conscient? y a pas de risque de sécurité, genre des passe-droits pour passer outre la demande de confirmation?


c'est le browser qui est sensé garantir ca ... comme toujours ...
 
veryfree > [:benou_jap]
dark > si c'est aps déjà fait, ca mérite une entrée dans la javafaq :)


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 03-08-2003 à 10:41:51    

Taz a écrit :

putain, j'ai faim, j'ai po mangé...je sens que je vais pas avoir la force de sortir commander une pizza...


C'est quoi ce modo qui blablate sur des posts sérieux ?
 
 
 
 
 
Où est ce que j'ai rangé ma fourche et mon pic moi déjà ...
[:neowen]


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 03-08-2003 à 10:46:08    

me suis planté de topic  :D

Reply

Marsh Posté le 05-08-2003 à 10:51:26    

Effectivement c'est pas mal du tout, ça m'aide bien  :bounce:  
 
Mais j'ai une p'tit question. Savez-vous à partir de qu'elle version de la sdk les signatures sont prises en compte ? Visiblement, aprés test, il semble que cela ne fonctionne pas sous une 1.3 assez récente (1.3.7 peut être mais sans certitude)
 
Merci

Reply

Marsh Posté le 05-08-2003 à 11:23:09    

depuis le début normallement. Et avec une 1.3 y a aucun problème

Reply

Marsh Posté le 05-08-2003 à 17:49:08    

Je n y arrive pas!!!
vu que mon probleme est prend bcp de place je l ai mis ici:
http://forum.hardware.fr/forum2.ph [...] subcat=390
pour le pas trop encombrer ce topic
 
merci ben


---------------
Ben
Reply

Marsh Posté le 14-10-2003 à 18:34:58    

merci :cry:  
 
j'ai cherché tout l'après-midi comment signer une applet, mais tous les liens sur internet sont complètement obsolètes. les seuls tutoriaux datent de 1999, époque où il fallait du code spécifique pour netscape et IE :pt1cable:

Reply

Marsh Posté le 15-10-2003 à 02:26:21    

j'ai perdu le drapal de mon propre topic [:dawa]

Reply

Marsh Posté le 15-10-2003 à 10:55:02    

:hello:

Reply

Marsh Posté le 05-03-2004 à 17:49:12    

drapal

Reply

Marsh Posté le 05-03-2004 à 17:51:34    

je crois qu'il y aura rien de nouveau hein [:veryfree]

Reply

Marsh Posté le 28-04-2004 à 11:57:43    

veryfree a écrit :

je crois qu'il y aura rien de nouveau hein [:veryfree]


voila un tutorial pour signé son applet et avoir les droits qu'il faut:
 
ici

Reply

Marsh Posté le 11-06-2004 à 10:06:11    

Reply

Marsh Posté le 12-06-2004 à 02:49:33    

Je complète un petit peu avec un extrait d'un rapport fais y'a pas longtemps de cela.
 
 
Procédure pour la création d’un certificat
 
1. Générer notre clé publique
Toutes vos clés vont être stockées dans la keystore. Cette base de clé est
automatiquement créée si elle n’existe pas déjà. Voici la commande pour générer une
clé :
    keytool -genkey -alias cle_ImyApp
Lexique:
-genkey: active la génération des clés publique et privée.
-alias: permet de donner un nom à la clé.
Lors de la création de la clé, plusieurs paramètres seront demandé : un mot de passe
pour la keystore, le nom et prénom du signataire, le nom de l’organisation, de la ville, du
pays et le code du pays.
 
2. Signer le fichier archive
Cette commande permet de signer l’archive :
    jarsigner -verbose i_myApp_admin.jar myApp
Pour vérifier que votre signature a bien été mise sur le fichier, utilisez la commande
suivante:
    jarsigner -verify -verbose -certs i_myApp_admin.jar
 
3. Générer le certificat
Utiliser cette commande pour générer le certificat :
    keytool -export -alias cle_ImyApp -file ImyApp.cer
Options:
-export: permet de lire le clé associée à cle_ImyApp.
-file: nom du fichier de sortie contenant le certificat (extension .cer).
Source: http://www.securingjava.com/appdx-c/appdx-c-6.html


Message édité par nevin0u le 12-06-2004 à 02:50:34
Reply

Marsh Posté le 13-06-2004 à 20:02:54    

:jap:

Reply

Marsh Posté le 08-07-2004 à 11:10:25    

merci pour ce topic très instructif
est-il possible d'avoir une applet non signée, qui va charger un JAR signé ? ex : j'ai une appli, et quand je veux utiliser un certain plugin, il me faut les droits d'écriture sur disque, mais seulement à ce moment là.


---------------
http://runnerstats.net
Reply

Marsh Posté le 08-07-2004 à 11:28:00    

noldor a écrit :

merci pour ce topic très instructif
est-il possible d'avoir une applet non signée, qui va charger un JAR signé ? ex : j'ai une appli, et quand je veux utiliser un certain plugin, il me faut les droits d'écriture sur disque, mais seulement à ce moment là.


 
oui

Reply

Marsh Posté le 08-07-2004 à 11:42:48    


excellent !!
je viens d'essayer, et en effet ça fonctionne du tonnerre :)
merci beaucoup, vous me sauvez la journée


---------------
http://runnerstats.net
Reply

Marsh Posté le 09-09-2004 à 16:46:10    

veryfree a écrit :

j ai rien vu spécifiant que tu pouvait choisir quel droit elle dispose; en gros qd elle est signé elle a tout les droits  :sweat:


 
ben nan (ou alors j'ai à nouveau rien compris).  
Dans un policy file, on définit un certain nombre de permission domain, (en gros ce sont les différents blocs grant). Or la syntaxe d'un bloc grant c'est qqchose du genre:
 
grant [codebase "l'endroit d'ou le code est chargé"]
      [signedBy "la personne qui à signé l'applet"]
{
    les permissions qu'on veut accorder à l'applet signée par la personne en qui on a confiance et qui a été chargée depuis le site qu'on voulait  
}
 
donc elle a pas tout les droits... Même pire, s'il n'y a pas de bloc grant avec un "signedBy" correspondant, elle ne devrait pas avoir plus de droit que si elle n'était pas signée... autrement ce serait trop simple

Reply

Marsh Posté le 09-09-2004 à 17:31:59    

Et tu fais comment pour que les utilisateurs qui vont télécharger (utiliser) l'applet sur ton site pour qu'ils ayent leur policy file qui marche tout seul ?
 

Reply

Marsh Posté le 09-09-2004 à 18:02:53    

ben c'est là qu'on est dans le caca... c'est une d'ailleurs une question que j'avais posée il y a un moment sur ce forum. Quand tu utilises une api, une application ou n'importe quel code que tu n'as pas étudié en détail, y'a aucun moyen évident et simple de savoir quelles sont les permissions minimales qu'il faut mettre dans le policy file pour que l'applic fonctionne quand tu veux la faire tourner avec un security manager. Si c'est pas documenté, c'est cuit... Ou alors tu fais confiance à un code signé et tu mets un AllPermission

Reply

Marsh Posté le 09-09-2004 à 20:01:32    

mon applet est signé et elle fait ce qu'elle veux :o
 
aucune restriction.

Reply

Marsh Posté le 22-09-2004 à 09:34:25    


merci pour ton post tres interessant.
je voulais savoir à quoi sert la generation du certificat ? on en fait quoi de ce fichier .cer ?
 
 
 

Nevin0u a écrit :

Je complète un petit peu avec un extrait d'un rapport fais y'a pas longtemps de cela.
 
 
Procédure pour la création d’un certificat
 
1. Générer notre clé publique
Toutes vos clés vont être stockées dans la keystore. Cette base de clé est
automatiquement créée si elle n’existe pas déjà. Voici la commande pour générer une
clé :
    keytool -genkey -alias cle_ImyApp
Lexique:
-genkey: active la génération des clés publique et privée.
-alias: permet de donner un nom à la clé.
Lors de la création de la clé, plusieurs paramètres seront demandé : un mot de passe
pour la keystore, le nom et prénom du signataire, le nom de l’organisation, de la ville, du
pays et le code du pays.
 
2. Signer le fichier archive
Cette commande permet de signer l’archive :
    jarsigner -verbose i_myApp_admin.jar myApp
Pour vérifier que votre signature a bien été mise sur le fichier, utilisez la commande
suivante:
    jarsigner -verify -verbose -certs i_myApp_admin.jar
 
3. Générer le certificat
Utiliser cette commande pour générer le certificat :
    keytool -export -alias cle_ImyApp -file ImyApp.cer
Options:
-export: permet de lire le clé associée à cle_ImyApp.
-file: nom du fichier de sortie contenant le certificat (extension .cer).
Source: http://www.securingjava.com/appdx-c/appdx-c-6.html

Reply

Marsh Posté le 01-10-2004 à 01:56:28    

y'a pas un soft qui fait ça de manière automatisée ?
nan parce que ça le faire une fois ok, mais si on reteste à peu près toutes les 20 minutes c'est l'enfer.

Reply

Marsh Posté le 01-10-2004 à 09:46:43    

raytaller a écrit :

y'a pas un soft qui fait ça de manière automatisée ?
nan parce que ça le faire une fois ok, mais si on reteste à peu près toutes les 20 minutes c'est l'enfer.


 
Pourquoi le signer à chaque fois ton applet quand tu veux le tester ?? t'as qu'a pas le signer et le tester en local non ?
 
Enfin personnellement je le signerais que quand son développement est terminé !

Reply

Marsh Posté le 01-10-2004 à 16:52:12    

un .bat fait l'affaire...

Reply

Marsh Posté le 25-03-2005 à 16:05:49    

Bonjour,
 
J'ai signé une applet selon la méthode évoquée ici. J'ai fais des tests avec un serveur apache sur un environnement windows, et ca fonctionnait très bien.
 
J'ai répété la même opération sur mon serveur linux, la signature s'est bien passée, mais quand les utilisateurs chargent l'applet, ya une fenetre qui apparait ou il est écris a peu pres ce qui suit :  " Discordance de nom d'hote : l'autorité qui a signé cette applet est localhost.localdomaine, or l'hote actuel est 192.168.XXX.XXX" .
Puis il est demandé à l'utilisateur si il accepte quand meme l'applet, et si ce dernier accepte, le chargement de l'applet se fait.
 
En résumé ca fonctionne, mais ca fait apparaitre une fenetre supplémentaire lors du chargement de l'applet.
 
Quelqu'un a déjà eu ca ? Je pense que ma question concerne surtout les utilisateurs de linux, par ce que sous windows le cas ne s'est pas produit.
 
merci d'avance de vos aides.

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed