La gestion de la protection dans des applications WinDev par Emmanuel Lecoester
La gestion de la protection dans des applications WinDev par Emmanuel Lecoester Francis Morel Date de publication : 09 Septembre 2009 Dernière mise à jour : 09 Mai 2009 La gestion de la protection dans des applications WinDev par Emmanuel Lecoester Francis Morel - 2 - Les sources présentées sur cette pages sont libres de droits, et vous pouvez les utiliser à votre convenance. Par contre la page de présentation de ces sources constitue une oeuvre intellectuelle protégée par les droits d'auteurs. Copyright © 2008 - Emmanuel Lecoester. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts. http://windev.developpez.com/tutoriels/windev/protection-windev/ I - Les différents niveaux de protection.......................................................................................................................3 I-A - Confidentialité des applications et des données........................................................................................... 3 I-B - Protection contre les utilisations illicites........................................................................................................ 3 I-C - Intégrité des données.................................................................................................................................... 3 II - Confidentialité des applications et des données................................................................................................... 3 II-A - Historique - Protection des fichiers HF sous Windev 5.5.............................................................................3 II-B - Historique - Protection des Exécutables.......................................................................................................3 II-B-1 - Windev 7 et suivantes..........................................................................................................................4 II-B-2 - Depuis WinDev 11................................................................................................................................4 II-C - Protection des fichiers HF avec WinDev......................................................................................................4 II-C-1 - Mot de passe sur l'analyse.................................................................................................................. 4 II-C-1-a - Synthèse : Mettre un mot de passe sur l'analyse....................................................................... 6 II-C-2 - Mot de passe sur les fichiers HyperFileSQL....................................................................................... 6 II-C-3 - Cryptage des fichiers HF..................................................................................................................... 6 II-C-3-a - Synthèse : Protéger un fichier HyperFileSQL............................................................................. 8 II-C-3-b - Conseil : Choix des mots de passe.............................................................................................8 II-C-4 - Modification des mots de passe HyperFileSQL...................................................................................8 II-C-4-a - Synthèse : Modification du mot de passe par WDOUTILS......................................................... 8 III - Vulnérabilité des données et applications............................................................................................................ 8 III-A - Les DLL de Windev..................................................................................................................................... 9 III-B - Le point faible : les DLL de Windev.......................................................................................................... 10 III-C - La suppression des points faibles............................................................................................................. 11 III-D - Composant DataProtect.............................................................................................................................11 III-D-1 - II-D-1. Synthèse : Mise en oeuvre de DataProtect 1.14................................................................... 11 La gestion de la protection dans des applications WinDev par Emmanuel Lecoester Francis Morel - 3 - Les sources présentées sur cette pages sont libres de droits, et vous pouvez les utiliser à votre convenance. Par contre la page de présentation de ces sources constitue une oeuvre intellectuelle protégée par les droits d'auteurs. Copyright © 2008 - Emmanuel Lecoester. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts. http://windev.developpez.com/tutoriels/windev/protection-windev/ I - Les différents niveaux de protection I-A - Confidentialité des applications et des données Pour s'assurer de la confidentialité des données, il faut : • qu'intrinsèquement le contenu des fichiers HyperFileSQL soit inaccessible, par quelque moyen (WDMAP, Editeur hexa...) que se soit, • que l'application soient suffisamment protégée pour empêcher la découverte du mot de passe utilisé en interne. I-B - Protection contre les utilisations illicites Une application protégée contre des utilisations illicites est caractérisée par une utilisation limitée: • à un mode particulier (démonstration par exemple) • à un ou plusieurs utilisateurs donnés • à un nombre d'exécutions spécifiques • à une date limite d'utilisation • à une version particulière • ... I-C - Intégrité des données L'intégrité de la base de données, des liaisons... et le respect de ces règles par le développeur, l'utilisateur et l'application elle-même, bien que liée à la sécurité des données, ne fait pas partie de ce document. II - Confidentialité des applications et des données Pour constater les évolutions de Windev 7 et suivant un petit retour en arrière sur Windev 5.5 s'impose. II-A - Historique - Protection des fichiers HF sous Windev 5.5 Bien que l'aide recommande d'utiliser 4 caractères minimum pour les mots de passes, le stockage dans le fichier HF est fait sur 2 octets, et encore sur chacun des ces octets seuls les codes 0x00 à 0x7f (127) sont utilisés. Soit au mieux 16129 possibilités. Dans ces conditions un algorithme simple en recherche par force brute est quasi-instantané. La protection des fichiers HyperFileSQL sous Windev 5.5 est donc totalement inopérante. L'utilisation de ces fichiers au format HF5.5 est donc à proscrire pour les données sensibles. II-B - Historique - Protection des Exécutables Toujours dans Windev 5.5, un simple éditeur hexadécimal permet de visualiser quantité d'informations textuelles de la bibliothèque. Tous les objets contenus dans la WDL sont clairement identifiables et pour chacun, tous les constituants sont aussi visibles. C'est d'ailleurs ce qui a permis la création d'outils comme WDL.EXE, qui à partir d'une bibliothèque WDL, reconstituait toutes les fenêtres, images, classes, procédures.... La gestion de la protection dans des applications WinDev par Emmanuel Lecoester Francis Morel - 4 - Les sources présentées sur cette pages sont libres de droits, et vous pouvez les utiliser à votre convenance. Par contre la page de présentation de ces sources constitue une oeuvre intellectuelle protégée par les droits d'auteurs. Copyright © 2008 - Emmanuel Lecoester. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts. http://windev.developpez.com/tutoriels/windev/protection-windev/ Pour peu que "Supprimer le code source à la compilation" n'ai pas été coché lors de la création, les objets reconstitués contenaient aussi le code source de l'application, sinon seul le Pcode créé était présent. II-B-1 - Windev 7 et suivantes Heureusement depuis Windev 7 les choses ont bien changés. • L'entête des fichiers HF n'est plus limitée en taille et les informations de protection (mots de passe et cryptage), sont stockées cryptées en quasi totalité. • La bibliothèque WDL est maintenant cryptée/compactée et même s'il était possible de la décrypter, le code source n'est plus jamais inclus. Seules quelques images restent accessibles en natif.Toutefois, dans certaines versions de Windev, l'inclusion des codes nécessaires à l'utilisation de "Etat et Requêtes" laissait, de façon incompréhensible, quelques informations textuelles dans le code de la WDL, voire même une partie de code source de l'initialisation du projet.Un exécutable windev est ainsi comparable à un code obfusqué (impénétrable), même l'utilisation d'un désassembleur ne permet pas la compréhension du code.En fait comme pour un programme obfusqué, la partie principale du code doit d'abord passer par une phase de décompression, de décryptage et d'interprétation avant d'être exécutée. Seule la partie lanceur de Windev est "compréhensible" (en assembleur) dans un débogueur. II-B-2 - Depuis WinDev 11 On peut ainsi, en première approche, raisonnablement penser que les applications Windev et les fichiers HyperFileSQL 11, 12 14 sont protégés efficacement, à condition de respecter certaines règles, objet de ce document. II-C - Protection des fichiers HF avec WinDev Actuellement il est possible de définir 3 types de protection dans HyperFileSQL • Mot de passe sur l'analyse • Mot de passe sur les fichiers HyperfileSQL • Cryptage des fichiers HyperFileSQL II-C-1 - Mot de passe sur l'analyse Cette protection à un double intérêt : • Eviter toute modification de l'analyse par une personne non autorisée (mot de passe en édition) • Empêcher son utilisation dans une application non autorisée (mot de passe en exécution) Par contre du fait de l'ouverture automatique de l'analyse associée à une application, elle n'a aucun intérêt pour assurer la confidentialité des données sans précaution supplémentaire. Il faudrait ainsi utiliser HfermeAnalyse() ou équivalent puis HouvreAnalyse() dans le projet. La protection de l'analyse par un mot de passe en exécution peut être fait directement lors de la création (étape 2) ou après création dans l'onglet "Détail" de sa description. La gestion de la protection dans des applications WinDev par Emmanuel Lecoester Francis Morel - 5 - Les sources présentées sur cette pages sont libres de droits, et vous pouvez les utiliser à votre convenance. Par contre la page de présentation de ces sources constitue une oeuvre intellectuelle protégée par les droits d'auteurs. Copyright © 2008 - Emmanuel Lecoester. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts. http://windev.developpez.com/tutoriels/windev/protection-windev/ Pour éviter les demandes systématiques à chaque lancement du mode test ou lors de la génération de l'exécutable, le mot de passe en exécution peut être renseigné dans l'onglet "Analyse" de la description du projet. En remplissant ce champ le mot de passe de l'analyse ne sera plus demandé ni en mode test, ni EN MODE EXECUTION. Il est écrit crypté dans l'exécutable. La gestion de la protection dans des applications WinDev par Emmanuel Lecoester Francis Morel - 6 - Les sources présentées sur cette pages sont libres de droits, et vous pouvez les utiliser à votre convenance. Par contre la page de présentation de ces uploads/S4/ protection-de-donnees-avec-windev.pdf
Documents similaires
-
23
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Mai 14, 2022
- Catégorie Law / Droit
- Langue French
- Taille du fichier 0.4606MB