Discussione sull’articolo "Sicurezza del codice MQL5: Protezione con password, generatori di chiavi, limiti di tempo, licenze remote e tecniche avanzate di crittografia delle chiavi di licenza EA" - pagina 2

 
Penso che sia l'unica opzione al momento.
 
sergeev:
Credo che al momento sia l'unica opzione possibile.

Non c'è altro modo per dimostrare l'abilità di un trader. Solo il monitoraggio del proprio trading. Ed è fantastico che sia su questo sito. Non c'è bisogno di Onyx e così via....

Solo che al momento non ci sono molte informazioni su questo argomento. Ad esempio, quali tipi di conti possono essere collegati a questo servizio? Più precisamente, sarà possibile collegare anche i conti demo? O solo quelli reali? Ovviamente quelli reali saranno più affidabili. Sia i conti demo che quelli reali sono più affidabili se i risultati sono stabili per un lungo periodo (ad esempio, da metà anno). Potrebbero esserci molte altre domande...

P.S. In generale, l'argomento riguarda qualcos'altro, quindi me ne vado. :)

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

A proposito, presto rilasceremo un grande sistema di valutazione per tutti gli utenti. Sarà un'innovazione molto interessante: "Datemi un trader di livello 80!".

Almeno tre valutazioni: "Valutazione dell'utente come programmatore", "Valutazione dell'utente come commerciante", "Valutazione dell'utente come flooder".
 

Mi spiace essere scortese, ma ciò che è stato presentato nell'articolo non è sicurezza, è oscurità. La protezione dalla copia è un problema estremamente difficile, da cui gli sforzi dell'industria musicale e cinematografica con i DRM e i loro ripetuti fallimenti.

Nella migliore delle ipotesi, le informazioni qui riportate faranno perdere tempo a qualcuno; nella peggiore, potreste aver dato al lettore un falso senso di sicurezza. Se poi decidono di "proteggere" un prodotto utilizzando i vostri consigli, potrebbero rimanere sorpresi quando il consumatore elimina la protezione nel giro di poche ore e lo rivende a una frazione del prezzo.

Un'altra cosa seria: la codifica Base64 non è legata alla crittografia. La codifica Base64 è stata progettata per consentire la trasmissione sicura di dati a 8 bit utilizzando protocolli che considerano la codifica dei dati a 7 bit. È possibile invertire banalmente la codifica Base64, ed è stata progettata per questo scopo!

L'unica soluzione che vedo per distribuire in modo sicuro il software MQL5 è o tramite le disposizioni della procura limitata del broker, o installando un'istanza di MQL5 con i file .ex5 su un server da qualche parte e consentendo al cliente di accedere utilizzando un thin client (in modo che non possa scaricare il .ex5). E sì, ho lavorato nel campo della sicurezza delle informazioni per oltre 15 anni, quindi ho una discreta idea di ciò di cui sto parlando.

Ad essere onesti, sono piuttosto sorpreso che Metaquotes abbia pubblicato l'articolo.

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'articolo fornisce alcuni indizi su come affrontare il problema. In realtà il problema dovrebbe essere risolto dal client di mt5. Ci sono molte piattaforme che utilizzano l'encription all'interno del software client, quindi è il software e non il coder a risolvere il problema.

 
molanisfx:

L'articolo fornisce alcuni indizi su come affrontare il problema. In realtà il problema dovrebbe essere risolto dal client di mt5. Ci sono molte piattaforme che utilizzano l'encription all'interno del software client, quindi è il software e non il coder a risolvere il problema.

Anche per il software client di MetaQuotes implementare questa funzionalità è un problema difficile: il software dovrà contenere o scaricare una chiave di decrittazione, il che implica la possibilità di compromettere tale chiave. Se si utilizza un dispositivo hardware a prova di manomissione, a meno che il file .ex5 non venga eseguito *sul* hardware a prova di manomissione, è ancora vulnerabile in quanto deve essere decrittografato a un certo punto per essere eseguito. Sebbene io non sia in grado di implementare tali attacchi, conosco un discreto numero di persone che possono farlo senza troppi problemi.

Nel modello di minaccia di un utente finale che ha accesso al file .ex5 che può eseguire, non c'è *nessuna* soluzione sicura.

Questa è la classe generica di problemi - in altre parole la protezione dei contenuti - per la quale le aziende/istituzioni usano modelli thin-client: in questo modo il contenuto sensibile non può essere scaricato ma solo usato sui server dell'azienda/istituzione.

 

Dovete sapere che tutti i programmi EX5 sono criptati da chiavi forti. Questo è il primo punto.

In secondo luogo, non dimenticatevi di Market - Un mercato di Expert Advisor per MetaTrader 5. Tutti i prodotti del Market sono criptati da una chiave aggiuntiva per l'acquirente. Ciò significa che nessuno, tranne l'utente legale, può lanciare tale programma EX5.

 
Rosh:

Dovete sapere che tutti i programmi EX5 sono criptati da chiavi forti. Questo è il primo punto.

In secondo luogo, non dimenticatevi di Market - Un mercato di Expert Advisor per MetaTrader 5. Tutti i prodotti del Market sono criptati da una chiave aggiuntiva per l'acquirente. Ciò significa che nessuno, tranne l'utente legale, può lanciare tale programma EX5.

Potreste anche sostituire la vostra porta di casa con dell'acciaio rinforzato, ma non servirebbe a impedire l'ingresso se lasciate la chiave sullo zerbino. La protezione che avete descritto va bene per scoraggiare il codificatore occasionale, ma non certo contro un attaccante motivato.

Il problema non è la crittografia, che è la parte più semplice, ma piuttosto il modo in cui si gestiscono le chiavi e il processo di decrittografia.

Nello scenario in cui un aggressore, nel linguaggio classico che chiameremo Mallory, desidera copiare e distribuire un EX5 di cui possiede la chiave, allora sicuramente può farlo

i. eseguire l'EX5 con la chiave;

ii. monitorare il processo in esecuzione, ad esempio collegando una DLL al processo, e scaricare il contenuto dell'EX5 subito dopo che è stato decriptato;

iii. riassemblare l'EX5 ora in chiaro (e potenzialmente disassemblare in sorgente, se ci si può preoccupare).

Se il primo punto di protezione implica la verifica della firma, allora tutto ciò che l'attaccante deve fare per distribuire i file è distribuire un diverso eseguibile MQL con le relative chiavi pubbliche sostituite. Se MQL5 utilizza un'API crittografica per verificare le certificazioni, allora questa può essere strappata dal binario. Questo continua all'infinito.

Tutto questo prima di iniziare a considerare l'incubo che sarà la gestione delle chiavi.

Sebbene questo tipo di analisi binaria sia al di fuori delle mie capacità in questo periodo, conosco diverse persone che potrebbero realizzarla senza problemi. Quindi non è la forza della crittografia che dovrebbe preoccuparvi, ma piuttosto il fatto che avete un modello di sicurezza non valido. Non è un problema particolare di per sé, poiché nessuno si aspetta che MetaTrader risolva questo problema - ci sono altre soluzioni molto utili a questo problema, in particolare il fatto che il proprietario del codice MQL5/EX5 lo esegua su un sever separato che controlla e concede in licenza l'accesso/segnali agli acquirenti.

Quindi, non riesco a capire perché le persone richiedano questa funzione quando è così difficile da implementare correttamente, almeno senza hardware a prova di manomissione.

 

"È inoltre possibile aggiungere una variabile relativa alle proprietà dell'hardware (numero di serie dell'HDD o informazioni sul CPUID). In questo caso, per far funzionare l'Expert Advisor sarà necessario eseguire un generatore aggiuntivo che utilizza il binding hardware.

Il risultato può servire come parametro di ingresso per il generatore e la password generata sarà corretta solo per un hardware specifico. Questo limita coloro che hanno cambiato la configurazione del computer o utilizzano un VPS per eseguire l'Expert Advisor, ma il problema può essere risolto fornendo due o tre password valide. Questo metodo è utilizzato nel servizio Market".

Dove posso trovare maggiori informazioni sul binding all'hardware o un esempio di codice sorgente? E cosa significa "Questo metodo è utilizzato nel servizio "Mercato""? Cioè, se metto in vendita un file Expert Advisor compilato nel servizio "Mercato", questo include automaticamente il binding all'hardware? Oppure devo fornire il codice sorgente e i dipendenti di Metaquotes devono includere anche il binding all'hardware?

È possibile implementare il binding all'hardware in MQL4? (La maggior parte dei centri di intermediazione lavora ancora su MT4).

 
JohnyPipa:

Dove posso trovare maggiori informazioni sul binding all'hardware o un esempio di codice sorgente? E cosa significa "Questo metodo è utilizzato nel servizio "Mercato""? Cioè, se metto in vendita un file compilato di un Expert Advisor nel servizio "Mercato", questo include automaticamente il binding con l'hardware? Oppure devo fornire il codice sorgente e i dipendenti di Metaquotes devono includere anche il binding all'hardware?
Sì, quando si acquista un programma nel Market, ogni copia del programma (EX5) viene automaticamente riprotetta/ricrittografata con il binding all'hardware dell'utente. Non è richiesta la disponibilità di sorgenti.


È possibile implementare il binding hardware in MQL4? (La maggior parte dei centri di intermediazione lavora ancora su MT4).

Purtroppo no.