• # Problème insoluble ?

    Posté par . En réponse au journal mot de passe et logiciel libre. Évalué à 1.

    Je crois bien qu'en l'état actuel de ton énoncé, ton problème est insoluble : en gros tu voudrais que ton programme puisse recuperer une info stockée quelque part et eventuellement cryptée, pour s'en servir pour une authentification automatique auprès d'un autre programme. Or tu ne veux pas que quelqu'un ayant access au programme puisse obtenir cette information. Le problème, c'est qu'à un moment l'information en question sera en ram, dans une variable, bref, si l'utilisateur en question est en train de tracer le programme il lui suffira de matter le contenu de la memoire a ce moment pour obtenir l'information.
    Note que cela n'a strictement rien a voir avec le fait que le programme soit libre. En l'absence de source il en encore possible de tracer l'execution du programme en asm, en bytecode, en ce que tu veux, et en procédant par dichotomie assez rapide de decouvrir quand l'information est disponible. N'importe quel deplombeur de logiciel peut donc retrouver une telle info sans les sources en peu de temps si elle n'est pas obscursi par des techniques complexes et malheureusement peu fiables. Bref tout ca pour dire que la fourniture des sources ne produit pas un soucis complementaire.

    Mais de tout ca on voit se degager une idée que tu avais toi meme ebauchée : le logiciel ne doit pas etre fournis avec les mdp inclus, ceux ci doivent etre configurés après l'installation. Mais il manque alors une condition importante : si l'utilisateur du logiciel n'est pas habilité à connaitre l'information, il ne faut pas qu'il puisse faire autre chose avec le logiciel _installé_ que l'executer : il faut donc generer une information secrete à l'installation stockée dans le soft installé, information qui donnera access à l'information permettant l'access à la base de données (en rw, ou avec de l'assymetrique en r et une info non stocké sur le HD pour le w), mais en plus de cela pour que cette info ne puisse s'echapper (ni l'info d'access à la db, qui est celle que l'on veut proteger avant tout) il faut interdire la lecture du binaire (pour empecher desassemblage et reverse). Cela necessite une gestion des droits qui dépasse simple cadre de la programmation Java (peut etre meme les noyeaux et les VM de base ? perso j'ai jamais eu a faire ca => chercher vers des patch orienté sécu), ainsi que la sécurisation physique des machines.

    Avec tout ca je ne sais pas bien si j'ai été clair...