IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Sécurité Java Discussion :

Architecture, Authentification et Sécurité [Infos]


Sujet :

Sécurité Java

  1. #1
    Membre confirmé

    Inscrit en
    Juin 2003
    Messages
    158
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 158
    Par défaut Architecture, Authentification et Sécurité
    Bonsoir,

    J'ai une première application existante fonctionnant sur un réseau local qui nécessite un user/password pour être lancée. J'ai stocké dans une table de la base les couples user/passwords. Pour autoriser la connexion, je fais donc une requête pour vérifier l'existence du couple. Si OK, on peut continuer, sinon, message d'erreur.
    J'ai deux problèmes : il suffit de décompiler pour :
    1 - Récuper le user/password de la base que j'ai mis dans le code pour pouvoir me connecter à la base
    2 - Supprimer le test pour by-passer l'authentification.
    Comment résoudre ces deux soucis ?

    J'ai besoin de développer une autre application qui fonctionne par internet qui doit faire des requêtes et des mises à jour sur ma base. J'ai pensé à une applet mais les deux problèmes indiqués ci-dessus se posent à nouveau.
    Est-il possible de faire cela avec une applet ou faut-il une autre architecture ?

    Merci d'avance




    [Modéré par Didier]
    Ajout de tag dans le titre
    Lire les règles du forum : Règles du forum Java

  2. #2
    Membre chevronné

    Développeur Web
    Inscrit en
    Mars 2002
    Messages
    412
    Détails du profil
    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2002
    Messages : 412
    Par défaut
    Impossible de faire une appli sécurisée si elle vérifie elle-même en base le login et le password. La solution au problème 1 est qu'elle demande la vérification du login-password à un programme serveur, c'est à dire exécuté à distance (une servlet ou une PHP par exemple). Si le programme serveur n'est pas téléchargeable, tu as un système plus sécure. La solution au problème 1 et 2 est que l'appli n'accède pas directement à la base, elle demande ses données à un programme serveur, lequel va chercher / mettre à jour les données en base après avoir vérifié les droits d'accès.

    Et c'est donc possible de faire une applet sécurisée. De toute manière une applet est très bridée en matière d'accès externes et elle n'aura pas le droit d'aller taper elle-même en base. La solution décrite ci-dessus devient donc obligatoire.

  3. #3
    Membre chevronné
    Avatar de Greg01
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Mai 2002
    Messages
    297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Mai 2002
    Messages : 297
    Par défaut
    Pour corser la chose, ne stocke pas directement le mot de passe dans la base, mais plutot un hash (genre MD5 ou SHA1). De plus, en limitant le nombre de tentatives infructueuses, tu évites les attzques par force brute.

  4. #4
    Membre confirmé

    Inscrit en
    Juin 2003
    Messages
    158
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 158
    Par défaut
    Merci à tous les deux, j'y voie déjà beaucoup plus clair

    J'ai bien compris l'idée d'une application serveur qui accède aux donéées et je me sens beaucoup plus tranquille avec cette technique.
    Cependant si :
    J'ai sur le serveur une application SERV qui tourne
    J'ai sur une autre machine un utilisateur qui lance l'application cliente CLIENT.
    Pour régler le problème du "by-pass en éditant le .class", faut-il qu'à chaque requête émise par CLIENT vers SERV, je vérifie en base le couple user/password ? La solution consistant à stocker le résultat sur le serveur pendant un certain laps de temps est-elle acceptable ?

    PS : Concernant le tag dans le titre je n'en avais pas mis car j'hésitais entre architecture et sécurité

  5. #5
    Membre chevronné

    Développeur Web
    Inscrit en
    Mars 2002
    Messages
    412
    Détails du profil
    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2002
    Messages : 412
    Par défaut
    A chaque requête tu dois vérifier les droits d'accès. Pour éviter que le client accompagne chaque requête du login-password, un moyen simple est que le client envoie un identificateur de session. Donc :

    1) Ton client se connecte au serveur, et envoie le login-password
    2) Le serveur renvoie soit un identifiant de session, soit un message d'erreur
    3) Avec chaque requête, le client envoie l'identifiant de session

    Un identifiant de session peut être un nombre, une chaîne de caractère, ce que tu veux. Les sessions sont par nature non-persistantes, donc pas stockées en base ni en fichier : ce sont des variables du prog serveur. Ce qui signifie que le serveur doit rester en mémoire (c'est le cas des serveurs HTTP, servlets et php) et que si le serveur tombe il faut prévoir une procédure de récup côté client (renvoyer le login-password si le serveur ne reconnait plus la session) ou au moins un message d'erreur.

  6. #6
    Membre confirmé

    Inscrit en
    Juin 2003
    Messages
    158
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 158
    Par défaut
    Merci beaucoup
    Je peux me mettre au travail maintenant

  7. #7
    Membre confirmé

    Inscrit en
    Juin 2003
    Messages
    158
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 158
    Par défaut
    Je reviens à la charge car j'ai une inquiétude ?
    Je suis parti pour avoir mon serveur qui héberge également mon site internet et constitue donc le point d'entrée du réseau. On m'a dit qu'au niveau sécurité, ce n'était pas top.
    Dans ce cas, est-il possible d'avoir un premier pc qui serve de point d'entrée. C'est ce PC qui recevra les requetes internet et accèdera, via un module intermédiaire, à l'application serveur sur le serveur proprement dit et qui ainsi ne sera pas directement visible depuis l'extérieur :
    Je dis peut-être une horreur et j'en suis vraiment désolé

  8. #8
    Membre chevronné

    Développeur Web
    Inscrit en
    Mars 2002
    Messages
    412
    Détails du profil
    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2002
    Messages : 412
    Par défaut
    Eh là c'est une question d'administration réseau ! Moi je n'y connais pas grand chose, mais tu peux utiliser un pare-feu j'imagine. Bon, essaye de poser ta question sur un autre forum.

  9. #9
    Membre confirmé
    Avatar de guipom
    Inscrit en
    Janvier 2003
    Messages
    207
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 207
    Par défaut
    Citation Envoyé par willowII
    Je reviens à la charge car j'ai une inquiétude ?
    Je suis parti pour avoir mon serveur qui héberge également mon site internet et constitue donc le point d'entrée du réseau. On m'a dit qu'au niveau sécurité, ce n'était pas top.
    Dans ce cas, est-il possible d'avoir un premier pc qui serve de point d'entrée. C'est ce PC qui recevra les requetes internet et accèdera, via un module intermédiaire, à l'application serveur sur le serveur proprement dit et qui ainsi ne sera pas directement visible depuis l'extérieur :
    Je dis peut-être une horreur et j'en suis vraiment désolé
    c'est une dmz ca ?

    cherche dmz ou zone démilitarisée sur le net



    sinon un truc que je pensais pour ton appli : le ok il est pas renvoyé comme ca en clair sur le réseau ? je veux dire niveau rejeu et tout, c'est prévu ?

  10. #10
    Membre confirmé

    Inscrit en
    Juin 2003
    Messages
    158
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 158
    Par défaut
    Merci pour la DMZ

    je veux dire niveau rejeu et tout, c'est prévu ?
    Je ne comprends pas, que veux-tu dire ?

Discussions similaires

  1. [Architecture] Authentification et client/serveur
    Par Argonz dans le forum Général Java
    Réponses: 2
    Dernier message: 18/09/2011, 10h15
  2. Une erreur 233 de ms sql server
    Par Hokage dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 05/10/2009, 17h40
  3. Réponses: 2
    Dernier message: 05/10/2004, 22h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo