begin process at 2012 02 15 15:13:44
  Trouver un code source :
 
dans
 
Accueil > 

Tutoriels

 > 

Tutoriaux

 > APPLET CONTOURNER LE SECURITYMANAGER

APPLET CONTOURNER LE SECURITYMANAGER


 Information sur le tutoriel

Note :
10 / 10 - par 6 personnes
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

 Description

Ce tutorial explique comment écrire des certificats pour les Java Applet afin de contourner le SecurityManager. Avec des certificats, il est possible d'écrire sur le disque dur d'un utilisateur et d'exécuter votre code comme si c'était une application.

Tutorial


Introduction:
Qu'est-ce qu'une Java Applet?
« Un des buts de la conception Java est de créer des applets, qui sont des petits programmes s'exécutant à l'intérieur d'un browser Web. Parce qu'ils doivent être sûrs, les applets sont limitées dans ce qu'ils peuvent accomplir. Toutefois, les applets sont un outil puissant de programmation côté client, un problème majeur pour le Web.» (http://penserenjava.free.fr/)

Désavantages principaux d'une Java Applet:
- Une Applet ne peut pas lire ou écrire sur le disque de l'utilisateur
- Possibilités très limitées

Avantages principaux d'une Java Applet:
- Le code est extrêmement sécure pour le client, même trop sécure au point de devenir pénible à écrire pour le programmeur
- Aucune installation n'est nécessaire

Comment intégrer une Applet sur le Web?
<html>
<body>
 <applet code="Applet.class" archive="Archive.jar"
           width=325 height=325>
 </applet>
 </body>
</html>

Pour plus de détails:
http://www.htmlgoodies.com/beyond/java/article.php/3470731

Qu'est-ce qu'un certificat?

«Les certificats sont des petits fichiers divisés en deux parties :
  • La partie contenant les informations
  • La partie contenant la signature de l'autorité de certification
L'ensemble de ces informations (informations + clé publique du demandeur)est signé par l'autorité de certification, celasignifie qu'une fonction de hachage crée une empreinte de ces informations, puis ce condenséest chiffré à l'aide de la clé privée de l'autorité de certification; la clé publique ayant étépréalablement largement diffusée afin de permettre aux utilisateurs devérifier la signature avec la clé publique de l'autorité de certification

Pour plus de détails:
http://www.commentcamarche.net/crypto/certificat.php3
http://fr.wikipedia.org/wiki/Certificat_%C3%A9lectronique


Étapes pour faire une Java Applet certifiée
1) Écrire une classe bidon qui fait un lien vers votre code. Cette classe est l'Applet
Exemple:
import javax.swing.*;
public class Whatever extends JApplet {
        public void init () {
                  new MonProgramme();
        }
}

2) Faire un jar (si nécessaire) pour englober tous vos fichiers
jar cvf nomjar dossierclasses/nomclasses
jar cvf Archive.jar Whatever.class
jar cvf Archive.jar classes Whatever.class (si vous avez un dossier «classes» contenant vos classes)

3) Écrire votre fichier html avec le tag <applet code ... > faisant référence à votre archive et à la classe contenant l'Applet

4) Générer la clé de votre certificat à l'aide de keytool.exe en utilisant la commande
keytool -genkey -alias nomDeVotreCle -validity nbJours
keytool -genkey -alias whatevercle -validity 365

5) Signer votre jar en utilisant jarsigner.exe en utilisant la commande
jarsigner nomJar nomCle
jarsigner Archive.jar whatevercle

6) Admirer la beauté du résultat ;p


Informations à propos de keytool.exe:
keytool est un outil à utiliser via le command-line qui vient avec le SDK. Vous le trouverez dans le dossier bin de votre dossier d'installation Java. Si votre variable path est bien configurée, vous ne devriez avoir aucun problème à l'appeler via le command-line.

Utilisation de keytool.exe:
keytool -genkey -alias nomcle -validity nbJours
keytool -list affiche la liste de toutes les clés
keytool -delete nom cle, mot de passe
keytool -help pour les autres commandes


Informations à propos de jarsigner.exe
jarsigner se situe dans le même dossier que keytool
jarsigner nomArchive nomCle



Bon, je pense que j'ai fait le tour de la question. Je m'excuse si l'introduction était un peu lente, c'est nécessaire puisque tout le monde n'a pas le même «baggages d'informations».

Amusez-vous

Date: 28/05/2006
@author Hassen Ben Tanfous


Commentaires

Commentaire de Hassen Ben Tanfous le 28/05/2006 08:28:28

Bon, je voulais ajouter quelques exemples et corriger quelques erreurs d'orthographe mais j'ai de la difficulté à éditer mon texte.

Voici deux exemples:
http://jmsnmessenger.sourceforge.net/webmessenger
http://jsplit.sourceforge.net/webjzip

Commentaire de tbotw le 17/06/2006 20:09:33

Merci pour ce tutorial, pile ce que je cherchais. Belle presentation en plus comparé aux autres.

Commentaire de Rankweeds le 19/09/2007 16:25:39

C'est clair et précis, ca fonctionne très bien. Merci pour ces info. ;o)

Commentaire de gouessej le 29/11/2007 21:13:34

keytool.exe c'est pour windows. Java c'est portable donc tu aurais dû mentionner les commandes pour les autres systèmes. Il n'y a pas que Windows sur Terre.

Commentaire de hotmaskim le 25/01/2008 11:04:22

Moi j'utilise mon Applet sans avoir fait de .jar ....
Y a pas moyen de signer les class ?

Commentaire de flolag le 09/06/2008 12:03:43

Ton applet JMsn possède un gros problème lol ,
Car pour les utilisateur firefox ou mnt IE7 quand on le quitte cela ferme Firefox et par conséquent TOUT LES ONGLET !! Très embettant quand mm

Commentaire de mahlaoui le 10/10/2008 07:43:18

               Moi j'utilise mon Applet sans avoir fait de .jar ....
               Y a pas moyen de signer les class ?

==> Oui, en fait vous archivez votre class dans un .jar, puis vous le signer.
Après vous pouvez appeler la class à partir de votre archive :
<html>
<body>
<applet code="Applet.class" archive="Archive.jar"
           width=325 height=325>
</applet>
</body>
</html>

Commentaire de zut69 le 30/10/2008 14:26:29

Salut,
Très bon tutoriel qui m'a permis de mener à bien mon travail de diplôme.
Sauf que maintenant je dois citer cette page dans mes sources, alors comme auteur, est-ce que tu voudrais que je mette "Hassen Ben Tanfous" ou autre chose?
Merci beaucoup,
FF

Commentaire de spidermario le 08/04/2009 19:23:05

Hotmaskim -> je te conseille vraiment de passer aux Jar, j'avais lu je-ne-sais-plus-où des arguments assez convainquants qui disaient, entre autres, que les Jar étaient bien plus rapides à transférer, non seulement parce qu'il y a compression (les fichiers Jar ne sont rien d'autre que des fichiers Zip) mais en plus parce qu'il n'y a qu'un fichier, réduisant ainsi le nombre de requêtes adressées au serveur.
De plus, comme le montre ce tuto (merci à lui), les Jar peuvent être signés, permettant aux applets les choses les plus folles.

Commentaire de thesnake201 le 08/06/2009 03:26:45

est t'il possible d'utilisé cette methode pour permettre l'evoie de requete snmp via le réseau ???
sinon qu'est ce que je doit faire pour permettre cela ?
et merci tous le monde

Commentaire de cedriiic le 10/06/2009 15:07:57

Bonjour
J'ai exécuter ce tuto pour signé une applet, mais à l'étape du jarsigner il me renvoi : impossible d'ouvrir l'archive *.jar

(essai avec les keytool et jarsigner  des versions 1.4 et 1.6)

archive jar créé avec BlueJ.

Commentaire de cedriiic le 10/06/2009 16:56:24

(manque la fonction éditer xD)

J'ai résolu mon problème en indiquant le chemin complet de l'archive a signé
(Utilisation  d'une commande différente :
C:\PROGRAM FILES\Java\jdk1.6.0_13\bin\jarsigner -storepass motdepasse -signedjar C:\exemple\SApplet.jar C:\exemple\Applet.jar macle


 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,094 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales