Discussão do artigo "Código MQL5 de segurança: Proteção de senha, geradores de chaves, limites de tempo, licenças remotas e técnicas de codificação de chave de licença de EA avançadas" - página 2
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Acho que é a única opção no momento.
Não há outra maneira de provar a habilidade de um trader. Somente monitorando sua negociação. E é ótimo que isso seja feito neste site. Não há necessidade de nenhum Onyx e assim por diante....
Só que, no momento, não há muitas informações sobre esse tópico. Por exemplo, que tipos de contas podem ser conectadas a esse serviço? Mais precisamente, será possível conectar contas de demonstração também? Ou somente as reais? É claro que as contas reais serão mais confiáveis. Tanto as contas de demonstração quanto as reais são mais confiáveis se houver um resultado estável por um longo período (por exemplo, a partir de meio ano). Pode haver muitas outras perguntas...
P.S. Em geral, o tópico é sobre outra coisa, então estou indo embora. :)
A propósito, em breve lançaremos um grande sistema de classificação para todos os usuários. Será uma inovação muito interessante: "Dê-me um comerciante de nível 80!".
A proteção contra cópia é um problema extremamente difícil, por isso os esforços do setor de música/filme com DRM e seus repetidos fracassos.
Na melhor das hipóteses, as informações aqui contidas desperdiçarão o tempo de algumas pessoas; na pior, você pode ter dado ao leitor uma falsa sensação de segurança. Se ele decidir "proteger" um produto usando sua orientação, poderá ficar surpreso quando o consumidor remover a proteção em questão de horas e revendê-lo por uma fração do preço.
E, falando sério, a codificação base64 não está relacionada à criptografia. A codificação base64 foi projetada para permitir que dados de 8 bits sejam transmitidos com segurança usando protocolos que consideram a codificação de dados como sendo de 7 bits. É possível reverter trivialmente a codificação base64, e ela foi projetada para essa finalidade!
A única solução que vejo para distribuir com segurança o software MQL5 é por meio das disposições da procuração limitada do corretor ou instalando uma instância da MQL5 com os arquivos .ex5 em um servidor em algum lugar e permitindo o acesso do cliente usando um thin client (para que ele não possa fazer o download do .ex5). E, sim, trabalhei com segurança da informação por mais de 15 anos, portanto, tenho uma boa ideia do que estou falando.
Para ser sincero, estou bastante surpreso com o fato de a Metaquotes ter publicado o artigo.
O artigo fornece algumas dicas sobre como lidar com o problema. Na verdade, o problema deve ser resolvido pelo cliente do mt5. Existem muitas plataformas que usam a inscrição no software do cliente, portanto, o software, e não o codificador, resolve o problema.
O artigo fornece algumas dicas sobre como lidar com o problema. Na verdade, o problema deve ser resolvido pelo cliente do mt5. Existem muitas plataformas que usam a inscrição no software cliente, de modo que o software, e não o programador, resolve o problema.
Até mesmo para o software cliente MetaQuotes implementar essa funcionalidade é um problema difícil: o software terá que conter ou baixar uma chave de descriptografia, o que implica que é possível comprometer essa chave. Se for usado um dispositivo de hardware à prova de violação, a menos que o .ex5 seja executado *no* hardware à prova de violação, ele ainda estará vulnerável, pois deverá ser descriptografado em algum momento para ser executado. Embora eu não consiga implementar esses ataques, conheço um número razoável de pessoas que conseguem fazê-lo sem grandes problemas.
No modelo de ameaça de um usuário final com acesso ao .ex5 que ele pode executar, não há *nenhuma* solução segura.
Essa é a classe genérica de problema - em outras palavras, proteção de conteúdo - para a qual as empresas/instituições usam modelos de thin client: dessa forma, o conteúdo confidencial não pode ser baixado, mas somente usado nos servidores da empresa/instituição.
Você deve saber que todos os programas EX5 são criptografados por chaves fortes. Esse é o primeiro ponto.
E o segundo - não se esqueça do Mercado - Um mercado de Expert Advisors para o MetaTrader 5. Todos os produtos do Market são criptografados por uma chave adicional para o comprador. Isso significa que ninguém, exceto o usuário legal, pode lançar esse programa EX5.
Você deve saber que todos os programas EX5 são criptografados por chaves fortes. Esse é o primeiro ponto.
E o segundo - não se esqueça do Mercado - Um mercado de Expert Advisors para o MetaTrader 5. Todos os produtos do Market são criptografados por uma chave adicional para o comprador. Isso significa que ninguém, exceto o usuário legal, pode lançar esse programa EX5.
Você também poderia substituir a porta da frente por aço reforçado, mas isso não impedirá a entrada se você deixar a chave no capacho. A proteção que você descreveu é boa para deter o codificador casual, mas certamente não contra um invasor motivado.
A questão aqui não é a criptografia - essa é a parte fácil - mas sim como você lida com as chaves e o processo de descriptografia.
No cenário em que um invasor, no jargão clássico, vamos chamá-lo de Mallory, deseja copiar e distribuir um EX5 para o qual ele tem a chave, então certamente ele pode fazer isso
i. executar o EX5 com a chave;
ii. monitorar o processo enquanto ele estiver em execução, por exemplo, anexando uma DLL ao processo, e despejar o conteúdo do EX5 imediatamente após ele ser descriptografado;
iii. remontar o EX5, agora em texto simples (e possivelmente desmontá-lo no código-fonte, se for possível).
Se o seu primeiro ponto de proteção envolver a verificação de assinatura, tudo o que o invasor precisa fazer para distribuir arquivos é distribuir um executável MQL diferente com as chaves públicas relevantes substituídas. Se a MQL5 usar uma API criptográfica para verificar o certificado, isso poderá ser extraído do binário. Isso continua ad infinitum.
Isso tudo antes de você começar a considerar o pesadelo que será o gerenciamento de chaves.
Embora esse tipo de análise binária esteja fora de minhas capacidades atualmente, conheço várias pessoas que poderiam fazê-lo sem problemas. Portanto, não é com a força da criptografia que você deve se preocupar, mas sim com o fato de que você tem um modelo de segurança inválido. Não é um problema específico em si, pois ninguém espera que o MetaTrader resolva esse problema - há outras soluções muito úteis para esse problema, especificamente fazendo com que o proprietário do código MQL5/EX5 o execute em um servidor separado que ele controla e licencia o acesso/sinais para os compradores.
Portanto, não consigo entender por que as pessoas estão exigindo esse recurso quando ele é tão difícil de ser implementado adequadamente, pelo menos sem um hardware à prova de violação.
"Você também pode adicionar uma variável relacionada às propriedades de hardware (número de série do HDD ou informações de CPUID). Nesse caso, será necessário executar um gerador adicional usando a vinculação de hardware para executar o Expert Advisor.
O resultado pode servir como parâmetro de entrada para o gerador e a senha gerada será correta apenas para um hardware específico. Isso limita aqueles que alteraram a configuração do computador ou usam um VPS para executar o Expert Advisor, mas isso pode ser resolvido fornecendo duas ou três senhas válidas. Esse método é usado no serviço Market."
Onde posso saber mais sobre a vinculação ao hardware ou encontrar um exemplo do código-fonte? E o que significa - "Este método é usado no serviço "Mercado"."? Ou seja, se eu publicar um arquivo compilado do Expert Advisor para venda no serviço "Market", ele incluirá automaticamente a vinculação ao hardware? Ou tenho que fornecer o código-fonte e os funcionários da Metaquotes incluem adicionalmente a vinculação ao hardware?
É possível implementar a vinculação ao hardware na MQL4? (A maioria dos centros de corretagem ainda trabalha com o MT4).
Onde posso obter mais informações sobre a vinculação ao hardware ou encontrar um exemplo do código-fonte? E o que significa "Este método é usado no serviço "Mercado""? Ou seja, se eu publicar um arquivo compilado de um Expert Advisor para venda no serviço "Market", a vinculação ao hardware será automaticamente incluída nele? Ou eu tenho que fornecer o código-fonte e os funcionários da Metaquotes incluem adicionalmente a vinculação ao hardware?
É possível implementar a vinculação de hardware na MQL4? (A maioria dos centros de corretagem ainda trabalha com MT4).