Discussion de l'article "Sécurisation du code MQL5 : Protection par mot de passe, générateurs de clés, délais, licences à distance et techniques avancées de cryptage des clés de licence EA" - page 2

 
Je pense que c'est la seule option possible pour le moment.
 
sergeev:
Je pense que c'est la seule option possible à l'heure actuelle.

Il n'y a pas d'autre moyen de prouver les compétences d'un trader. Il n'y a que le suivi de votre activité. Et c'est une bonne chose que ce soit sur ce site. Il n'y a pas besoin d'Onyx et ainsi de suite....

Seulement, pour l'instant, il n'y a pas beaucoup d'informations sur ce sujet. Par exemple, quels types de comptes peuvent être connectés à ce service ? Plus précisément, sera-t-il possible de connecter également des comptes de démonstration? Ou seulement des comptes réels ? Bien sûr, les comptes réels seront plus fiables. Les comptes démo et réels sont plus fiables si les résultats sont stables sur une longue période (par exemple, à partir de six mois). Il se peut qu'il y ait beaucoup d'autres questions ...

P.S. En général, le sujet porte sur autre chose, donc je m'en vais. :)

Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация о счете
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация о счете
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Информация о счете - Документация по MQL5
 
Renat:

D'ailleurs, nous allons bientôt mettre en place un grand système d'évaluation pour tous les utilisateurs. Il s'agira d'une innovation très intéressante - "donnez-moi un commerçant de niveau 80 !".

Au moins trois évaluations : "Évaluation de l'utilisateur en tant que programmeur", "Évaluation de l'utilisateur en tant que commerçant", "Évaluation de l'utilisateur en tant qu'inondateur".
 

La protection contre la copie est un problème extrêmement difficile, d'où les efforts de l'industrie de la musique et du cinéma avec les DRM et leurs échecs répétés.

Au mieux, les informations présentées ici feront perdre du temps à certaines personnes ; au pire, vous aurez peut-être donné au lecteur un faux sentiment de sécurité. S'il décide ensuite de "protéger" un produit en suivant vos conseils, il risque d'être quelque peu surpris de voir son consommateur retirer la protection en l'espace de quelques heures et revendre le produit pour une fraction du prix.

Plus sérieusement, l'encodage base64 n'a rien à voir avec le cryptage. L'encodage base64 a été conçu pour permettre de transmettre en toute sécurité des données de 8 bits à l'aide de protocoles qui considèrent que l'encodage des données est de 7 bits. Il est possible d'inverser l'encodage base64 de manière triviale - et il a été conçu dans ce but !

La seule solution que je vois pour distribuer en toute sécurité le logiciel MQL5 est soit d'utiliser les dispositions de la procuration limitée du courtier, soit d'installer une instance de MQL5 avec les fichiers .ex5 sur un serveur quelque part et de permettre au client d'y accéder à l'aide d'un client léger (de sorte qu'il ne puisse pas télécharger le .ex5). Et oui, j'ai travaillé dans le domaine de la sécurité de l'information pendant plus de 15 ans, j'ai donc une idée assez précise de ce dont je parle.

Pour être honnête, je suis plutôt surpris que Metaquotes ait publié cet article.

Documentation on MQL5: Standard Constants, Enumerations and Structures / Chart Constants / Types of Chart Events
  • www.mql5.com
Standard Constants, Enumerations and Structures / Chart Constants / Types of Chart Events - Documentation on MQL5
 

L'article donne quelques indications sur la manière de traiter le problème. En réalité, le problème devrait être résolu par le client mt5. Il existe de nombreuses plateformes qui utilisent l'encription dans le logiciel client, de sorte que c'est le logiciel et non le codeur qui résout le problème.

 
molanisfx:

L'article donne quelques indications sur la manière de traiter le problème. En réalité, le problème devrait être résolu par le client mt5. Il existe de nombreuses plateformes qui utilisent l'encription dans le logiciel client, c'est donc le logiciel et non le codeur qui résout le problème.

Même la mise en œuvre de cette fonctionnalité par le logiciel client MetaQuotes pose un problème difficile : le logiciel devra contenir ou télécharger une clé de décryptage, ce qui implique qu'il est possible de compromettre cette clé. Si un dispositif matériel inviolable est utilisé, à moins que le fichier .ex5 ne soit exécuté *sur* le matériel inviolable, il reste vulnérable car il doit être décrypté à un moment donné pour être exécuté. Bien que je ne sois pas en mesure de mettre en œuvre de telles attaques, je connais un bon nombre de personnes qui peuvent le faire sans trop de problèmes.

Dans le modèle de menace d'un utilisateur final ayant accès au .ex5 qu'il peut exécuter, il n'y a *aucune* solution sûre.

C'est la catégorie générique de problèmes - en d'autres termes, la protection du contenu - pour laquelle les entreprises/institutions utilisent des modèles de clients légers : de cette façon, le contenu sensible ne peut pas être téléchargé mais seulement utilisé sur les serveurs de l'entreprise/institution.

 

Il faut savoir que tous les programmes EX5 sont cryptés par des clés fortes. C'est le premier point.

Et deuxièmement, n'oubliez pas le Marché - Un marché d'Expert Advisors pour MetaTrader 5. Tous les produits du Marché sont cryptés par une clé supplémentaire pour l'acheteur. Cela signifie que personne, à l'exception de l'utilisateur légal, ne peut lancer un tel programme EX5.

 
Rosh:

Il faut savoir que tous les programmes EX5 sont cryptés par des clés fortes. C'est le premier point.

Et deuxièmement, n'oubliez pas le Marché - Un marché d'Expert Advisors pour MetaTrader 5. Tous les produits du Marché sont cryptés par une clé supplémentaire pour l'acheteur. Cela signifie que personne, à l'exception de l'utilisateur légal, ne peut lancer un tel programme EX5.

Vous pouvez également remplacer votre porte d'entrée par de l'acier renforcé, mais cela n'empêchera pas l'entrée si vous laissez la clé sur le paillasson. La protection que vous avez décrite est très bien pour dissuader le codeur occasionnel, mais certainement pas contre un attaquant motivé.

La question ici n'est pas le cryptage - c'est la partie facile - mais plutôt la façon dont vous gérez les clés et le processus de décryptage.

Dans le scénario où un attaquant, que nous appellerons Mallory dans le langage classique, souhaite copier et distribuer un EX5 dont il a la clé, il peut certainement le faire en

i. exécuter l'EX5 avec la clé ;

ii. surveiller le processus en cours d'exécution, par exemple en attachant une DLL au processus, et extraire le contenu de l'EX5 immédiatement après qu'il a été décrypté ;

iii. réassembler l'EX5 en clair (et éventuellement le désassembler en source si l'on peut s'en donner la peine).

Si votre premier point de protection implique la vérification de la signature, tout ce que l'attaquant doit faire pour distribuer des fichiers est de distribuer un exécutable MQL différent avec les clés publiques correspondantes remplacées. Si MQL5 utilise une API cryptographique pour vérifier la certitude, celle-ci peut être extraite du binaire. Et ainsi de suite à l'infini.

Et tout cela avant de commencer à envisager le cauchemar que sera la gestion des clés.

Bien que ce type d'analyse binaire soit hors de ma portée ces jours-ci, je connais plusieurs personnes qui pourraient l'effectuer sans problème. Ce n'est donc pas la force du cryptage qui devrait vous préoccuper, mais plutôt le fait que vous avez un modèle de sécurité invalide. Ce n'est pas un problème particulier en soi, car personne ne s'attend à ce que MetaTrader résolve ce problème - il existe d'autres solutions très utilisables à ce problème, en particulier le fait que le propriétaire du code MQL5/EX5 l'exécute sur un serveur séparé qu'il contrôle et accorde une licence d'accès/signaux aux acheteurs.

Je n'arrive donc pas à comprendre pourquoi les gens demandent cette facilité alors qu'elle est si difficile à mettre en œuvre correctement, du moins sans matériel inviolable.

 

"Vous pouvez également ajouter une variable liée aux propriétés matérielles (numéro de série du disque dur ou informations CPUID). Dans ce cas, un générateur supplémentaire utilisant la liaison matérielle devra être exécuté pour faire fonctionner le conseiller expert.

Le résultat peut servir de paramètre d'entrée pour le générateur et le mot de passe généré ne sera correct que pour un matériel spécifique. Cela limite les personnes qui ont modifié la configuration de leur ordinateur ou qui utilisent un VPS pour exécuter l'Expert Advisor, mais cela peut être résolu en donnant deux ou trois mots de passe valides. Cette méthode est utilisée dans le service Marché".

Où puis-je en savoir plus sur la liaison au matériel ou trouver un exemple de code source ? Et que signifie "Cette méthode est utilisée dans le service "Marché"" ? En d'autres termes, si je mets en vente un fichier Expert Advisor compilé dans le service "Marché", ce fichier inclut-il automatiquement la liaison au matériel ? Ou dois-je fournir le code source et les employés de Metaquotes doivent-ils ajouter la liaison au matériel ?

Est-il possible d'implémenter la liaison au matériel dans MQL4 ? (La plupart des centres de courtage travaillent encore sur MT4).

 
JohnyPipa:

Où puis-je en savoir plus sur la liaison au matériel ou trouver un exemple de code source ? Et que signifie "Cette méthode est utilisée dans le service "Marché"" ? En d'autres termes, si je mets en vente un fichier compilé d'un conseiller expert dans le cadre du service "Marché", la liaison au matériel est automatiquement incluse dans ce fichier ? Ou dois-je fournir le code source et les employés de Metaquotes doivent-ils ajouter la liaison au matériel ?
Oui, lorsque vous achetez un programme sur le marché, chaque copie du programme (EX5) est automatiquement re-protégée/recryptée avec la liaison au matériel de l'utilisateur. La disponibilité des sources n'est pas requise.


La liaison matérielle peut-elle être mise en œuvre dans MQL4 ? (La plupart des centres de courtage travaillent encore sur MT4).

Malheureusement, non.