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

Java Discussion :

Clé unique basé sur la configuration matérielle


Sujet :

Java

  1. #1
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    650
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 650
    Par défaut Clé unique basé sur la configuration matérielle
    Bonjour,

    je cherche a faire un authentification basé sur le matériel au travers d'un applet java.

    Est il possible de récupérer un numero de serie de la carte mere ou autre via un applet ?

    ou, mieux, existe il des applet tout fait qui font ce genre de chose ?

    merci

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Citation Envoyé par firejocker Voir le message
    Bonjour,

    je cherche a faire un authentification basé sur le matériel
    java ne connais pas le matériel, principe de la machine virtuelle oblige, donc çà commence mal

    au travers d'un applet java.
    Pour rajouter, l'applet n'a pas la possibilité d'installer des librairies natives qui pourraient servir à contourner le premier problème. Ca se complique, d'autant plus que les applet sont normalement limitées à la page web (elles voient encore moins le système qu'une application java standalone)

    Est il possible de récupérer un numero de serie de la carte mere ou autre via un applet ?
    heu comment dire.... accéder non seulement au matos, mais à son bas niveau depuis une applet java .... dur dur d'autant plus qu'un numéro de série de carte mère, je pense meme pas que çà existe. Celui du CPU, à la rigueur, facilement accessible, mais je doute que dans la fabrication à la chaine de cartes mère coutant 30€ en entrée de gamme, on s'emmerde à y générer des numéros uniques.... Certes des assembleurs le font, mais ce sont des assembleurs

    ou, mieux, existe il des applet tout fait qui font ce genre de chose ?
    encore moins probable

  3. #3
    Membre éclairé

    Profil pro
    Inscrit en
    Avril 2004
    Messages
    421
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2004
    Messages : 421
    Par défaut
    et l'adresse mac de la carte reseau , cela ne te conviens pas??
    apres, comment la recuperer c'est autre chose ...

  4. #4
    Modérateur
    Avatar de nouknouk
    Homme Profil pro
    Inscrit en
    Décembre 2006
    Messages
    1 655
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 655
    Par défaut
    Citation Envoyé par elekis Voir le message
    et l'adresse mac de la carte reseau , cela ne te conviens pas??
    apres, comment la recuperer c'est autre chose ...
    Effectivement, l'adresse MAC me semble la seule chose récupérable depuis une applet.

    Et ... après quelques minutes ... merci Google

    Résultat:

    - ça marche très très bien chez moi (Win XP + Firefox ou IE7 + Java 6)

    - l'applet est très légère (2,25 ko).

    - l'applet est 'ouverte' : la fonction Java qui retourne les adresse est directement appelable depuis le javascript (retour au format JSON). Cela ouvre le champ de possibilités (genre ajax pour retransmettre 'silencieusement' l'@ au serveur, ...).

    - le source est fourni

    - il ne me semble pas que l'applet soit signée ce qui est idéal.

    - il me trouve les MAC de pas moins de 6 interfaces réseaux (ethernet, carte 3G, WiFi, bluetooth, interface virtuelle pour le tunneling, ...). Et c'est d'autant mieux, car tu peux d'autant plus 'affiner' ou 'généraliser' l'authentification. Par exemple, tu pourras détecter une même personne qui s'est connectée la première fois en WiFi et la seconde câblée en ethernet.

    En tout cas ... merci d'avoir posé la question: ça m'a incité à faire les recherches et c'est un excellent bout de code que je me garde sous le coude

  5. #5
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    tiens, les macs sont accessibles en java, je savais pas , par contre, gaffe:

    Returns the hardware address (usually MAC) of the interface if it has one and if it can be accessed given the current privileges.

    Returns:
    a byte array containing the address or null if the address doesn't exist or is not accessible.
    Throws:
    SocketException - if an I/O error occurs.
    Since:
    1.6
    Le java 6 n'est pas la majorité des plugins java en circulation je pense -> tes user risquent l'upgrade

  6. #6
    Membre chevronné Avatar de T`lash
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2007
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Saint-Pierre-Et-Miq.

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Septembre 2007
    Messages : 381
    Par défaut
    Moi aussi je cherche une solution dans cette optique : je veux utiliser un client lancé via JWS qui devra calculer un nombre unique afin d'identifier la machine cliente au serveur.

    Sur quoi se baser, tel est la question.... l'adresse MAC c'est un peu léger et facile à modifier, mais le Java n'a pas accès à grand chose....

  7. #7
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    c'est le problème d'équilibre entre léger et lourd. Si t'es léger, c'est "facilement falisifiable", si t'es trop lourd c'est "régulièrement changé et emm... l'utilisateur". De plus, les mac address, c'est bien, mais que se passe-t-il si la même machine passe de linux à windows régulièrement. La liste des interface a des chances de changer d'ordre, certaines cartes peut etre pas visible sur un des os car pas configurées, etc.... A tester donc

  8. #8
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    650
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 650
    Par défaut
    Ok, merci, je vais chercher de ce coté la

  9. #9
    Invité
    Invité(e)
    Par défaut
    En JWS, je pense que tu as davantage de droits sur le client qu'avec une applet, mais c'est à vérifier. QQu'un pour inf/confirmer.

    Par contre, est-tu certain que c'est celà que tu veux faire, réinventer une méthode d'authentification?

    Si c'est pour un TP, pourquoi pas, sinon, pourquoi ne pas utiliser des cookies, ou un fichier dans le profile de l'utilisateur.

    C'est une application hébergée, quelles sont tes contraintes?

  10. #10
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Citation Envoyé par Muscador Voir le message
    QQu'un pour inf/confirmer.
    Oui est non, t'as quelques api pour contourner des problèmes d'accès qu'une application desktop a typiquement besoin. Par exemple, un fichier acquis via une boite de dialogue présentée à l'utilisateur pourra etre lu/écrit sans avoir besoin de signature. Mais pour ce qu'il compte faire, je gage que des droit privilégies seront nécessaire

  11. #11
    Modérateur
    Avatar de nouknouk
    Homme Profil pro
    Inscrit en
    Décembre 2006
    Messages
    1 655
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 655
    Par défaut
    [léger off-topic]
    Citation Envoyé par tchize_ Voir le message
    un fichier acquis via une boite de dialogue présentée à l'utilisateur pourra etre lu/écrit sans avoir besoin de signature.
    ... cela m'intéresse particulièrement (j'aimerais pouvoir lire et éventuellement écrire sur le disque local dans une applet que je ne peux pas me permettre de signer). Aurais-tu juste un lien ?

    [/léger off-topic]

    Pour revenir au sujet initial, d'une façon générale, il me semble que pour accéder au matériel, il faudra au moins l'une de ces solutions:

    - signer l'applet pour avoir accès au maximum de l'API du JDK.

    - utiliser une librairie native (JNI, donc spécifique à chaque OS) pour pouvoir 'taper' dans du plus bas niveau.

    Les autres solutions purement Java dans une applet non-signée ne pourront de tout façon pas relever d'autre chose que d'un détournement de certaines fonctionnaliés initiales du JDK. une sorte d'"exploitation d'une faille de sécurité".
    Ca tient donc plus de la 'bidouille', et doit donc être vu comme tel: aucune garantie que ça ne marchera partout, sur toutes les versions ou toutes les JVM ; ça risque à terme d'être une brèche corrigée, etc...

  12. #12
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Citation Envoyé par nouknouk Voir le message
    [léger off-topic]

    ... cela m'intéresse particulièrement (j'aimerais pouvoir lire et éventuellement écrire sur le disque local dans une applet que je ne peux pas me permettre de signer). Aurais-tu juste un lien ?

    [/léger off-topic]
    http://java.sun.com/javase/6/docs/jr...enService.html

    Note que je répondais à la mention en rapport à javawebstart. Cette api n'est pas dispo pour les applets!

  13. #13
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    650
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 650
    Par défaut
    Si y'a un bout de code libre qui fait un truc pareil, il est clair que je vais l'utiliser !

    vous avez des noms ? adresses ?

  14. #14
    Membre chevronné Avatar de T`lash
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2007
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Saint-Pierre-Et-Miq.

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Septembre 2007
    Messages : 381
    Par défaut
    Citation Envoyé par Muscador Voir le message
    En JWS, je pense que tu as davantage de droits sur le client qu'avec une applet, mais c'est à vérifier. QQu'un pour inf/confirmer.

    Par contre, est-tu certain que c'est celà que tu veux faire, réinventer une méthode d'authentification?

    Si c'est pour un TP, pourquoi pas, sinon, pourquoi ne pas utiliser des cookies, ou un fichier dans le profile de l'utilisateur.

    C'est une application hébergée, quelles sont tes contraintes?
    Mon intérêt dans une telle identification de la machine se situe au niveau de la gestion des droits ; tel utilisateur peut avoir accès à telle fonctionnalité à partir de tel poste mais ne l'aura pas forcément à partir d'un poste situé dans un autre service.

  15. #15
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Les IP (ok c'est pas parfait mais bon) çà ne te conviens pas comme critère? Si le système est sous controle (réseau interne) y a moyen de fixer les ips pour chaque port de switch et empecher ainsi les ips trafiquées (dans une certaine mesure)
    En tout cas ce serait beaucoup plus facile. N'oublie pas que si tu utilise une applet pour le login, tu fait confiance à un bout de code exécuté coté client pour t'envoyer les informations de login, informations qui pourront donc etre traffiquée -> C'est pas plus sur que se baser sur l'ip.

  16. #16
    Membre chevronné Avatar de T`lash
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2007
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Saint-Pierre-Et-Miq.

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Septembre 2007
    Messages : 381
    Par défaut
    En assignant une adresse IP pour un port du switch donné et en assurant l'identification d'une machine par ses adresses MAC et IP cela peut-être le maximum que l'on puisse faire question sécurité.

Discussions similaires

  1. Conseil sur une configuration oracle RAC
    Par mrhuve dans le forum Oracle
    Réponses: 44
    Dernier message: 22/07/2005, 15h40
  2. Chat basé sur des sockets php5
    Par javhost dans le forum Développement
    Réponses: 1
    Dernier message: 12/07/2005, 16h21
  3. Réponses: 1
    Dernier message: 30/05/2005, 17h02
  4. Réponses: 1
    Dernier message: 22/03/2005, 14h28
  5. [forms] Bloc basé sur une clause from
    Par plaineR dans le forum Forms
    Réponses: 11
    Dernier message: 16/12/2004, 12h02

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