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 :

cryptage de fichier


Sujet :

Sécurité Java

  1. #1
    Membre éclairé Avatar de igorzup
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    307
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 307
    Par défaut cryptage de fichier
    Bonjour,

    j'ai realisé une petite appli qui contient des parametres de connection a une BDD et d'autres preferences.

    J'aimerais conserver ces preferences et les recharger a chaque lancement.

    je part sur l'idée de mettre tout ca dans un fichier et de l'encrypter bettement a un endroit

    pourriez vous me conseiller?
    quel cryptage?
    facon la plus simple...

    merci d'avance

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 277
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 277
    Par défaut
    - tu peux consulter le package javax.crypto où tu trouveras pas mal d'infos
    - tu peux implémenter toi même une petite méthode de cryptage/décryptage, sans framework, selon le niveau de confidentialité que tu veux obtenir.
    Par exemple un petit cryptage poly-alphabetique.
    Cela est très simple à implémenter mais reste aussi simple à décrypter pour celui qui a envie d'essayer.

  3. #3
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 483
    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 483
    Par défaut
    n'oublie pas que, quel que soit le cryptage que tu choissise, à moins que ça implique que l''utilisateur tappe une clé de cryptage, ce sera réversible facilement, et donc d'un intérêt moyen. Ce sera juste de l'obfuscation.

  4. #4
    Membre éclairé Avatar de igorzup
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    307
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 307
    Par défaut
    y a t'il un moyen simple de generer une clef de chiffrement composée d'une clef hard et d'une masquée dans le nom du fichier?

  5. #5
    Invité
    Invité(e)
    Par défaut
    Salut,
    Il faut bien comprendre que sans intervention de l'utilisateur (entrée d'un mot de passe, ...), il faudra à un moment donné que tu écrives une clef en clair dans un fichier. A aprtir de là, la sécurité n'est plus qu'une illusion...
    Qu'entends tu pas clef hard ?

  6. #6
    Membre éclairé Avatar de igorzup
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    307
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 307
    Par défaut
    par clef hard j'entend une clef fixée en parametre dans le programme.

    je suis d'accord avec toi, la securité n'est pas absolue, mais je veux juste un chiffrement simple a mettre en place.

    maintenant si l'un de vous me donne une solution miracle... enfin je veux dire simple et a la fois relativement sécurisée... bah j'aurais posé ma question au bon endroit!

    par ma question precedente, j'immaginais une clef resultante d'une partie dure dans le programme (un parametre que je pourrais faire evoluer plus tard...) et d'une partie variable dans le nom du fichier (par ex: le debut et la fin me permettre d'identifier le fichier et le millieu est la partie variable de ma clef)

    ... comme ca l'utilisateur ne sais pas d'ou viennent ses parametres... magique

    c'est couillon comme idée?

  7. #7
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 277
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 277
    Par défaut
    Le problème n'est pas tant l'algorithme.
    Il vient surtout du fait que l'utilisateur mal intentionné, peut décompiler ton application pour retrouver l'algo de cryptage.

  8. #8
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    Citation Envoyé par igorzup Voir le message
    c'est couillon comme idée?
    Pas du tout. Il faut simplement que la complexité de codage de la solution soit équivalent à l'intérêt pour quelqu'un de cracker ton cryptage.
    Par exemple, il serait idiot de mettre un code de César sur les infos d'accès aux codes de lancements de missiles nucléaires, ou encore faire un chiffrement à étage pour coder les codes d'accès à une base locale sur une appli mono-utilisateur qui gère les recettes de mamie.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  9. #9
    Membre éclairé Avatar de igorzup
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    307
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 307
    Par défaut
    @ fr1man :
    ouaip... quelle est la meilleure parade a ca?

    @ dinobogan :
    le fameux juste millieu...

    mais en meme temps je glane de l'info... j'avoue!
    le chiffrement a etage, si je peux le comprendre et le mettre en place et qu'il bloque pas l'ordi pour dechiffrer pendant 2 jours... bah en avant...

    je suis plutot parti dans l'optique de faire simple en premier lieux et de le complexifier ensuite par plaisir (j'ai du temps libre)

  10. #10
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par igorzup Voir le message
    par clef hard j'entend une clef fixée en parametre dans le programme.

    je suis d'accord avec toi, la securité n'est pas absolue, mais je veux juste un chiffrement simple a mettre en place.

    maintenant si l'un de vous me donne une solution miracle... enfin je veux dire simple et a la fois relativement sécurisée... bah j'aurais posé ma question au bon endroit!

    par ma question precedente, j'immaginais une clef resultante d'une partie dure dans le programme (un parametre que je pourrais faire evoluer plus tard...) et d'une partie variable dans le nom du fichier (par ex: le debut et la fin me permettre d'identifier le fichier et le millieu est la partie variable de ma clef)

    ... comme ca l'utilisateur ne sais pas d'ou viennent ses parametres... magique

    c'est couillon comme idée?
    Comme dit, tu peux faire ca et utiliser des choses codées en dures. Cependant si ton appli mérite qu'on s'acharne un peu pour la craquer, des gens le feront, et tout ce qui est codé en dur sera craqué, donc toute ta sécurité...
    Un algorithme de cryptage dont la difficulté ne tient qu'au fait qu'on ne connait pas l'algorithme est à proscrire, car n'offre AUCUNE sécurité.
    Il n'y a pas de solution miracle à ca.
    Ta solution marchera si ton appli ne propose pas un intérêt assez grand pour d'éventuels crackers. si TA bdd contient des données sensibles, alors là il faudra utiliser un moyen sécurisés => intervention humaine, rien en dur.
    A toi de nous en dire plus

  11. #11
    Membre éclairé Avatar de igorzup
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    307
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 307
    Par défaut
    ok, ca parait assez logique qu'une clef de chiffrement aussi tordue soit-elle ne resiste pas en force brute a nos methode de dechiffrage avec des processeurs aussi puissants que les notres... au bout d'un certain temps...

    mais il y a moyen de rendre la chose plus compliquée en y associant l'horloge dans la clef, en augmentant la taille (en octets) de cette clef...

    enfin tout ca pour dire que je suppose qu'il existe des croisement de moyen de chiffrements qui rendent juste l'operation pas moins "rentable".

    dans mon cas, les données ne sont pas (pour l'instant) critique mais devrais a terme contenir des informations donnant acces a la compta par exemple.

    d'ou ma question, existe t'il un "cocktail" de methodes simples a mettre en place qui sans garantir l'inviolabilité me permettrais de commencer ma croisade du chiffrement

  12. #12
    Invité
    Invité(e)
    Par défaut
    Ta clef peut être aussi aléatoire que tu veux (prise en compte de l'horloge d'accès disques, tout ce que tu veux), si tu l'écris en dur, elle est lisible par tout le monde, donc inutile.
    Un code ne tient plus si la clef est connue.
    Des données pour la comptas sont critiques quand même, il vaut peut-être le coup de rentrer un mot de passe permettant d'ouvrir un keystore et d'extraire une clef privée (par exemple) quand on veut accéder à ces données cryptées. Quand on fait des appli qui gèrent des choses comme ca, un mot de passe ne me parait pas superflu. Après à toi de voir

  13. #13
    Membre éclairé Avatar de igorzup
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    307
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 307
    Par défaut
    okay...

    je retante un truc
    et si l'authentification est gerée par un webservice?

  14. #14
    Invité
    Invité(e)
    Par défaut
    C'est à dire ?

  15. #15
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 483
    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 483
    Par défaut
    salut, soit tu demande un mot de passe à l'utilisateur (et là, avec de bons algos éprouvés, y a moyen de protéger), soit tu fait tout en automatique. Dans ce dernier cas, moi méchant hacker qui aie envie de connaitre le mot de passe, j'ai juste à lancer TON programme et j'ai accès à la base de donnée -> aucune sécurité autre que la sécurité de la machine locale.

    Note que c'est pas spécialement "mauvais" ce dernier cas. Après tout, nombre de serveur ont besoin de mot de passe et on se contente bien souvent de les écrire en clair, dans des fichiers dont l'accès est limité.

    Exemples:
    mots de passe base de donnée d'un serveur tomcat
    mot de passe pour le portefeuille de clés privées ssl d'un serveur httpd apache
    etc...

  16. #16
    Membre éclairé Avatar de igorzup
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    307
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 307
    Par défaut
    okay okay okay...

    donc pour reformuler, si chance qu'une solution il y ai:
    comment sécuriser au mieux, SANS mdp utilisateur?

    - récupérer le l'authentification ouinedoze (pas évident en java..., je l'ai fais en .net)
    - cookie
    - webservice d'auth sur un serveur local...
    - ...

    le mot de passe c'est la merde pour l'utilisateur... et c'est meme pas securisé...

  17. #17
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 483
    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 483
    Par défaut
    si il n'y a pas une information qui viens de l'utilisateur (directement ou indirectement) n'importe qui disposant du logiciel et du fichier obfusqué peut avoir tous les mots de passes. Si tu prend, par exemple, thunderbird ou firefox, la méthode est la suivante:

    création d'un répertoire spécifique à la machine (ceci oblige à avoir un accès local potable pour trouver ce répertoire, ca limite un peu la récupération de données par injection de code, qui hardcodent bien souvent l'appel pour transmettre le contenu d'un fichier). C'est pas la panacée pour autant
    "cryptage" des données et stockage de mot de passe dans un fichier séparé

    Dans tous les cas, un utilisateur local a accès aux données sans problème.

    Ton problème se mort la queue: comment permettre à l'utilisateur d'avoir accès sans mot de passe aux serveurs, tout en ne permettant pas aux gens de lire les tokens d'authentification...

  18. #18
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 483
    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 483
    Par défaut
    note: tu peux créer un serveur web qui va fournir les tokens d'authentification, serveur web qui utiliserait NTLMv2 pour l'authentification du client (géré coté serveur via JCIFs et coté client par IE)

    mais bon, c'est exagérer

    note je connais pas à fond JCIFs, il peux peut etre s'authentifier sur un AD où tu récupérerais les tokens

  19. #19
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    si il n'y a pas une information qui viens de l'utilisateur (directement ou indirectement) n'importe qui disposant du logiciel et du fichier obfusqué peut avoir tous les mots de passes. Si tu prend, par exemple, thunderbird ou firefox, la méthode est la suivante:

    création d'un répertoire spécifique à la machine (ceci oblige à avoir un accès local potable pour trouver ce répertoire, ca limite un peu la récupération de données par injection de code, qui hardcodent bien souvent l'appel pour transmettre le contenu d'un fichier). C'est pas la panacée pour autant
    "cryptage" des données et stockage de mot de passe dans un fichier séparé

    Dans tous les cas, un utilisateur local a accès aux données sans problème.

    Ton problème se mort la queue: comment permettre à l'utilisateur d'avoir accès sans mot de passe aux serveurs, tout en ne permettant pas aux gens de lire les tokens d'authentification...
    Si je ne m'abuse pour icedove (fork de thunderbird sous debian), il utilise un keystore, protégé par un mdp pour stocker les clefs privées, donc la méthode est sécurisée. Je pense que thunderbird fait de même (ca fait longtemps que j'ai pas eu l'occasion de l'utiliser). Toujours est-il que lorsque je veux signer ou déchiffrer un mail pour la premiére fois de la session il me demande un mot de passe que je suis seul à connaitre qui me permet d'accéder à mon keystore. Bref C'est la seule méthode sécurisée en local : une intervention de l'utilisateur. On ne peut pas se fier aux seuls droits sur les fichiers (surtout sous windows) ou à l'identification de l'utilisateur sur l'ordi, car combien laissent leur session ouverte à tous ?

  20. #20
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 483
    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 483
    Par défaut
    thunderbird au boulot (mandrake) -> pas de mdp sur le keystore (mais peut etre qu'il me l'avait proposé ^^)

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Cryptage de fichier
    Par :GREG: dans le forum Composants VCL
    Réponses: 6
    Dernier message: 18/12/2008, 10h43
  2. Cryptage des fichiers binaires
    Par darrylsite dans le forum Pascal
    Réponses: 8
    Dernier message: 07/12/2007, 21h54
  3. [Sous Windows] Freeware de cryptage de fichiers
    Par Yoh dans le forum Autres Logiciels
    Réponses: 5
    Dernier message: 20/08/2007, 17h13
  4. [Labview 8.0] Cryptage de fichier
    Par polo(31) dans le forum LabVIEW
    Réponses: 8
    Dernier message: 03/05/2007, 17h59
  5. Cryptage de fichier PHP
    Par diopy2001 dans le forum Zend
    Réponses: 1
    Dernier message: 05/05/2006, 19h33

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