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 :

Sécurisation d'un logiciel


Sujet :

Java

  1. #1
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 10
    Par défaut Sécurisation d'un logiciel
    Salut à tout le monde,
    je suis débutant en programmation, j'ai un fichier vidéo MP4, et je voudrais faire une application qui intègre cette vidéo de sorte que l'on ne puisse ni accéder à cette vidéo sans passer par l'interface de l'application ni télécharger cette vidéo à travers l'interface de l'application. C'est à dire que la seule possibilité pour regarder la vidéo doit être de passer par un bouton prévu sur l'interface de l'application.

    S'il vous plait donnez moi les grandes lignes à suivre pour atteindre mon objectif.
    Et aussi le langage approprié pour développer cette application, je maitrise un peu le Java et le PHP.

    Merci d'avance.

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Salut,

    Dans l'absolu, c'est impossible : il sera toujours possible pour quelqu'un qui en a les compétences et à envie d'en faire l'effort de trouver un moyen de récupérer soit le fichier vidéo, soit d'en faire une copie (ne serait-ce qu'avec un logiciel de capture vidéo, ou avec une caméra physique quelque soit les solutions qu'on pourrait trouver pour empêche de filmer physiquement l'écran mais qui laisse la possibilité à un spectateur de la voir évidemment).

    Tout dépend donc du public (utilisateur de ton application) et de l'intérêt de récupérer cette vidéo à part. Ces critères vont définir l'effort que tu vas déployer pour protéger ta vidéo d'une part, et d'autres parts l'effort nécessaire à déployer pour quelqu'un qui voudrait la récupérer pour la visualiser sans utiliser ton application.

    Si tu places un composant d'affichage de vidéo dans une fenêtre Java, sans aucune fonctionnalité de téléchargement (si le composant/APi que tu utilises en a, elle devrait être soit désactivée par défaut, soit désactivable), avec le fichier vidéo dans le jar, tu auras le niveau de base de protection pour un utilisateur lambda (il faut déjà avoir un minimum de connaissance de ce qu'est un jar pour savoir qu'on peut regarder son contenu et en extraire un fichier). Ensuite, crypter le fichier vidéo peut-être un niveau légèrement supérieur : extraire le fichier ne sera pas suffisant, puisqu'il faudra analyser le code java (donc décompiler) pour savoir comment décrypter, ce qui demande un peu plus de compétences. Traiter l'affichage de la vidéo pour empêcher la capture (interne ou externe) n'est pas dans mes compétences (même si j'ai de vagues idées).
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 10
    Par défaut
    Merci pour la première idée que vous avez déjà donné.

    En fait j'ai un ensemble de vidéo dans un dossier et je voudrais faire apparaitre sur l'interface de l'Application une liste de liens de sorte que chaque lien renvoie à une vidéo du dossier.

    Mais le dossier ne doit point être accessible en dehors de passer par ces différents liens sur l'interface.

  4. #4
    Membre Expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Par défaut
    Il vient de te le dire: c'est impossible.

    Tu peux rendre la tâche plus difficile, mais à terme, si ton application peut afficher la vidéo, alors une autre application pourra le faire aussi en reproduisant le même algo.

    Donc:
    1) contre qui tu veux te défendre? Mme Michu qui n'y comprend rien, ou bien les Anonymous?
    2) Quel effort es-tu prêt à mettre pour cette défense?
    3) Quelles sont tes contraintes techniques? Les vidéos sont-elles dynamiquement récupérées depuis le web? Ou pas? etc.

  5. #5
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    C'est du client-serveur que tu cherches à faire ou du client lourd standalone (sans connexion à un serveur, avec les fichiers joints à l'application). Dans le premier cas, le dossier peut être servi par un service web, en streaming, avec protocole https et authentification, ce qui devrait constituer une sécurité suffisante pour les plupart des utilisateurs classiques. Si c'est le second, il faut oublier déjà le dossier local, mais plutôt opter pour un fichier unique avec tous les fichiers dedans, voire mélangés pour éviter d’utiliser un ripper classique, éventuellement, un peu comme une espèce de disque virtuel avec os personnalisé, pour empêcher un utilisateur lambda d'y avoir accès direct (du boulot et un effort conséquent de ta part, à priori, surtout si tu es débutant). Attention ! Quand je dis protégé contre un utilisateur lambda, je dis contre un utilisateur lambda qui ne pourrait pas avoir accès à un logiciel de contournement de ta protection fait par quelqu'un qui s'y connait (là tout dépend de l'intérêt de tes vidéos : si ce sont des vidéos qui intéressent potentiellement 5 personnes à tout casser, 25, 100 000, 50 millions, ou 1 milliard) et qui serait intéressé par faire une système de contournement, dans le but de le monnayer.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  6. #6
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 10
    Par défaut
    S'il vous plait je ne comprend pas cette phrase:
    Dans le premier cas, le dossier peut être servi par un service web, en streaming, avec protocole https et authentification, ce qui devrait constituer une sécurité suffisante pour les plupart des utilisateurs classiques.

    Je précise que c'est moi qui dois installer l'Application dans la machine de chaque utilisateur dans son domicile.

    Supportez moi je vous en prie.

  7. #7
    Membre Expert
    Inscrit en
    Mai 2006
    Messages
    1 364
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 1 364
    Par défaut
    Tu n'as toujours pas répondu à la question de base qui change tout :
    Est ce que ton application recupere les videos sur internet à la volée ou est ce qu'elle doit pouvoir fonctionner sans internet (cad que les videos sont installées en meme temps que l'application) ?

  8. #8
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par evmerv Voir le message
    S'il vous plait je ne comprend pas cette phrase:
    Dans le premier cas, le dossier peut être servi par un service web, en streaming, avec protocole https et authentification, ce qui devrait constituer une sécurité suffisante pour les plupart des utilisateurs classiques.
    En gros, une application web à la youtube qui sert des vidéos en streaming (ce qui veut dire que le fichier n'est pas complètement sur la machine cliente), avec des urls difficilements sniffables (https), une authentification (une connexion avec mot de passe) pour éviter que n'importe qui puisse utiliser une url sans s'identifier, pourrait consituer une protection contre les madames Michu (sauf celles qui font partie d'Anonymous (pourquoi pas), ou de l'Amicale des Hackers de son quartier).


    Citation Envoyé par evmerv Voir le message
    Je précise que c'est moi qui dois installer l'Application dans la machine de chaque utilisateur dans son domicile.
    Ça ne veut pas dire grand chose. L'installation pourrait se résumer à la mise en place d'un raccourci vers un lien, mais bon, on va supposer que ça veut dire qu'il y a un client lourd. Maintenant la différence entre une application client-serveur (ou web), et une application standalone, et que la première se connecte à un (ou plusieurs) serveur (donc à besoin d'une connexion Internet), alors qu'une application standalone fonctionne de manière autonome sur la machine sur laquelle est est installée sans avoir besoin de se connecter en réseau (à Internet par exemple). Je devine que c'est le second cas.

    Maintenant, je ne sais pas dans quel cadre tu es censé faire ça (projet personnel, stage, emploi...), mais il me semble que tu t'attaques à quelque chose qui dépasse largement tes compétences.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  9. #9
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 10
    Par défaut
    les vidéos seront installées en même temps que l'application. J'ai toutes ces vidéos dans un support.

  10. #10
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 10
    Par défaut
    c'est un didacticiel que je veux réaliser.

  11. #11
    Membre Expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Par défaut
    Alors les empaqueter à l'intérieur du jar devrait suffire...

  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
    Et je sens que ça va déjà être un challenge

  13. #13
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 10
    Par défaut
    Citation Envoyé par Pill_S Voir le message
    Alors les empaqueter à l'intérieur du jar devrait suffire...
    Bonjour,
    S'il vous plait éclairez moi un peu plus sur votre idée. je ne comprends pas ce que signifie empaqueter à l'intérieur du jar.

  14. #14
    Membre Expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Par défaut
    Quand on distribue une application java, en général, on créé un fichier *.jar. Il contient les classes java compilée + un ptit fichier qui décrit des choses comme le classpath, la classe main, etc...

    Un jar ce n'est finalement qu'un zip un peu spécial... Comme tous les fichiers zip, on peut y mettre ce qu'on veut: dans ton cas, des vidéos.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    monapplication-1.0.0.jar
        +-- META-INF
            +-- MANIFEST.MF (décrit l'application courante)
        +-- com
            +-- myapp
                +-- Main.class (ton application)
        +-- videos
            +-- video1.avi
            +-- video2.avi
            +-- video3.avi
    Ensuite dans le code, tu récupères ta vidéos comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    InputStream video1 = getClass().getResourceAsStream("/videos/video1.avi");
    voilà...

  15. #15
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 10
    Par défaut
    Merci beaucoup pour toutes vos explications et votre code.
    Mon souci maintenant est de savoir si l'on ne pourra pas dézipper ce jar pour enlever mes vidéos.

  16. #16
    Membre Expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Par défaut
    Oui on pourra...

    Mais encore une fois, tu n'as donné aucune information sur la difficulté de récupération des vidéos...

    ça c'est la solution cheap, qui va bloquer 80% des utilisateurs...

    Si tu changes les extensions et que tu mets un truc que les gens ne reconnaissent pas comme étant des vidéos, tu vas monter à 90%...

    Tu n'arriveras JAMAIS à 100%... et pour passer de 90% à 95%, ça va déjà te demander un effort collosal (crypter les vidéos, etc...)

  17. #17
    Membre Expert
    Inscrit en
    Mai 2006
    Messages
    1 364
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 1 364
    Par défaut
    Citation Envoyé par evmerv Voir le message
    Mon souci maintenant est de savoir si l'on ne pourra pas dézipper ce jar pour enlever mes vidéos.
    Bien sur que si. Meme pour un utilisateur peu experimenté, il suffira de renommer le fichier .jar en .zip et de double cliquer pour recuperer ce qu'il veut (comme cela t'a été dit par joel.drigo des son premier message). Si cette "sécurité" ne te convient pas, l'étape d'après est de crypter la vidéo (toujours comme cela a deja ete dit). La, ca commence a etre un peu plus compliqué de récupérer la vidéo mais il suffit de décompiler ton programme java et de voir comment il fait pour décrypter (ce qui suppose qu'il faut etre developpeur pour pirater ta video). Pour quelqu'un qui connait java, c'est facile à faire.
    A mon avis, Java n'est pas le langage le plus adapté aux applications client lourd qui necessitent de la sécurité parce que facilement décompilable.

    Mais bon, c'est à toi de voir l'effort que tu veux fournir pour proteger tes videos. Mais entre nous, le fait que tu demandes comment embarquer les videos dans le jar laisse penser que le cryptage de la video va te demander beaucoup de boulot (puisqu'il faudra crypter la video et la décrypter à la volée - sans passer par le disque dur sinon ca n'a aucun interet)...

  18. #18
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 10
    Par défaut
    Voici ce que je veux faire après toutes vos explications:

    1- Embarquer toutes les vidéos dans le jar
    2- Changer les extensions des vidéos de sorte qu'on ne les reconnait pas comme des vidéos
    3- Crypter les vidéos et les décrypter à la volée

    Qu'en dites-vous ?

  19. #19
    Membre Expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Par défaut
    Que si tu les cryptes tu n'as pas besoin ni de changer l'extension ni de les mettre dans le jar.

  20. #20
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 10
    Par défaut
    Merci beaucoup pour toutes vos réponses, maintenant je vais me mettre au travail pour crypter ces vidéos.
    Là où je serai bloqué, je reviendrai vers vous.
    Merci encore.
    Salut à tous et à bientôt.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Sécuriser les MAJ automatiques de son logiciel
    Par babibello dans le forum Composants VCL
    Réponses: 5
    Dernier message: 03/07/2009, 14h04
  2. Besoin d'aide pour sécuriser mon logiciel
    Par benkapplic dans le forum Bases de données
    Réponses: 1
    Dernier message: 25/02/2008, 11h13
  3. pour sécuriser mon logiciel (le mot de passe)
    Par pierre987321 dans le forum Delphi
    Réponses: 4
    Dernier message: 13/06/2007, 09h24
  4. Réponses: 55
    Dernier message: 08/06/2007, 14h20
  5. Recherche Logiciel pour sécurisation hdd
    Par IDE dans le forum Autres Logiciels
    Réponses: 4
    Dernier message: 28/05/2007, 15h14

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