Обсуждение статьи "Защита MQL5-программ: пароли, ключи, ограничение по времени, удаленная проверка лицензий" - страница 2

 
по моему это единственная возможность на данный момент.
 
sergeev:
по моему это единственная возможность на данный момент.

Так ведь по другому никак и не докажешь мастерство трейдера. Только мониторинг своей торговли. И здорово, что это будет на этом сайте. Не нужны никакие Ониксы и прочее...

Только на данный момент информации по этой теме мало. Например, какие типы счетов можно будет подключать к этому сервису? Точнее, можно ли будет подключать и демо счета? Или только реал? К реальным конечно же больше будет доверия. И к демо и к реалу степень доверия больше, если долго будет стабильный результат (например, от полугода). Вопросов может быть много ещё...

P.S. А вообще тема совсем о другом, так что удаляюсь. :) 

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

Кстати, мы скоро выпускаем большую систему рейтингов для всех пользователей. Это будет очень интересное новшество - "даешь трейдера 80 уровня!".

Как минумум, три рейтинга: "Рейтинг пользователя как программиста", "Рейтинг пользователя как трейдера", "Рейтинг пользователя как флудера". 
 

Извините за язвительность, но то, что представлено в статье, - это не безопасность, а неясность. Защита от копирования - чрезвычайно сложная проблема, отсюда и усилия музыкальной и киноиндустрии с DRM и их постоянные неудачи.

В лучшем случае, информация, приведенная здесь, потратит время некоторых людей; в худшем - вы можете дать читателю ложное чувство безопасности. Если он решит "защитить" продукт, используя ваши советы, он может быть несколько удивлен, когда его потребитель удалит защиту в течение нескольких часов и перепродаст его за бесценок.

Серьезно - кодирование base64 не имеет отношения к шифрованию. Кодирование base64 было разработано для безопасной передачи 8-битных данных с помощью протоколов, которые считают кодировку данных 7-битной. Вы можете тривиально обратить кодирование base64 - и оно предназначено для этой цели!

Единственное решение, которое я вижу для безопасного распространения программного обеспечения MQL5, - это либо использование ограниченной доверенности брокера, либо установка экземпляра MQL5 с файлами .ex5 где-нибудь на сервере и предоставление клиенту доступа с помощью тонкого клиента (чтобы он не мог скачать .ex5). И да, я проработал в сфере информационной безопасности более 15 лет, поэтому имею достаточное представление о том, о чем говорю.

Честно говоря, я удивлен, что Metaquotes опубликовала эту статью.

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
 

В статье даны некоторые подсказки, как решить эту проблему. На самом деле проблему должен решать клиент mt5. Существует множество платформ, использующих кодирование внутри клиентского программного обеспечения, поэтому проблему решает программное обеспечение, а не кодер.

 
molanisfx:

В статье даны некоторые подсказки, как решить эту проблему. На самом деле проблему должен решать клиент mt5. Существует множество платформ, использующих кодирование внутри клиентского программного обеспечения, поэтому проблему решает программное обеспечение, а не кодер.

Даже для клиентского ПО MetaQuotes реализовать эту функциональность - сложная задача: ПО должно содержать или загружать ключ дешифрования, что подразумевает возможность компрометации этого ключа. Если используется аппаратное устройство с защитой от взлома, то если .ex5 не запущен *на* аппаратном устройстве с защитой от взлома, он все равно уязвим, поскольку для выполнения он должен быть расшифрован в какой-то момент. Хотя я не могу реализовать такие атаки, я знаю достаточно много людей, которые могут сделать это без особых проблем.

В модели угроз, когда конечный пользователь имеет доступ к .ex5, который он может запустить, не существует *ни одного* безопасного решения.

Это общий класс проблем - другими словами, защита контента, - для которых компании/учреждения используют модели тонких клиентов: таким образом, конфиденциальный контент не может быть загружен, а используется только на серверах компании/учреждения.

 

Вы должны знать, что все программы EX5-prorgram зашифрованы с помощью надежных ключей. Это первый пункт.

И второй - не забудьте про Маркет - A Market of Expert Advisors for MetaTrader 5. Все продукты в Маркете зашифрованы дополнительным ключом для покупателя. Это значит, что никто, кроме легального пользователя, не сможет запустить такую EX5-программу.

 
Rosh:

Вы должны знать, что все программы EX5-prorgram зашифрованы с помощью надежных ключей. Это первый пункт.

И второй - не забудьте про Маркет - A Market of Expert Advisors for MetaTrader 5. Все продукты в Маркете зашифрованы дополнительным ключом для покупателя. Это значит, что никто, кроме легального пользователя, не сможет запустить такую EX5-программу.

Вы также можете заменить входную дверь на усиленную стальную, но это ничего не даст, если вы оставите ключ на половичке. Описанная вами защита хороша для случайного кодера, но точно не для мотивированного злоумышленника.

Вопрос здесь не в шифровании - это самая простая часть, - а в том, как вы обращаетесь с ключами и процессом дешифрования.

В сценарии, где злоумышленница, в классической терминологии назовем ее Мэллори, хочет скопировать и распространить EX5, к которому у нее есть ключ, она, конечно, может это сделать, выполнив следующие действия:

i. запустить EX5 с ключом;

ii. следить за процессом во время его выполнения, например, прикрепив к нему DLL, и выгружать содержимое EX5 сразу после его расшифровки;

iii. пересборка EX5 с открытым текстом (и потенциальная разборка в исходный текст, если вас это не затруднит).

Если ваша первая точка защиты включает проверку подписи, то для распространения файлов злоумышленнику достаточно распространить другой исполняемый файл MQL с замененными открытыми ключами. Если MQL5 использует криптографический API для проверки сертификата, то его можно вырвать из бинарного файла. И так до бесконечности.

И это все до того, как вы начнете рассматривать кошмар, который будет представлять собой управление ключами.

Хотя подобный анализ бинарных файлов сейчас не в моих силах, я знаю нескольких человек, которые могут сделать это без проблем. Так что вам следует беспокоиться не о силе шифрования, а о том, что у вас недействительная модель безопасности. Это не конкретная проблема как таковая, поскольку никто не ожидает от MetaTrader решения этой проблемы - есть другие очень удобные решения этой проблемы, в частности, если владелец кода MQL5/EX5 запускает его на отдельном сервере, который он контролирует, и лицензирует доступ/сигналы для покупателей.

Поэтому я не могу понять, зачем людям нужна эта возможность, если ее так сложно реализовать должным образом, по крайней мере, без аппаратных средств защиты от несанкционированного доступа.

 

"Также можно добавить переменную, связанную со свойствами железа (серийный номер HDD или информация о CPUID). В этом случае для запуска советника придется запускать дополнительный генератор, использующий аппаратную привязку.

Результат может служить в качестве входного параметра для генератора и сгенерированный пароль будет корректным только для определенного железа. Это ограничивает тех, кто изменил конфигурацию компьютера или использует VPS для работы советника, но это можно решить раздачей двух или трех действительных паролей. Такой способ используется в сервисе "Маркет"."

А где можно узнать про привязку к железу поподробнее или найти пример исходника?  И что значит -" Такой способ используется в сервисе "Маркет"."? То есть, если я выкладываю скомпилированный файл эксперта на продажу в сервисе "Маркет", то в него как то автоматически включается привязка к железу? Или нужно отдавать исходники а сотрудники Метаквотов туда дополнительно включают привязку к железу?

А можно ли привязку к железу реализовать на MQL4? (Большинство ДЦ до сих пор работают на MT4)  

 
JohnyPipa:

А где можно узнать про привязку к железу поподробнее или найти пример исходника?  И что значит -" Такой способ используется в сервисе "Маркет"."? То есть, если я выкладываю скомпилированный файл эксперта на продажу в сервисе "Маркет", то в него как то автоматически включается привязка к железу? Или нужно отдавать исходники а сотрудники Метаквотов туда дополнительно включают привязку к железу?
Да, при покупке программы в Маркете каждая копия программы (EX5) автоматически перезащищается/перешифровывается с привязкой к железу пользователя. Наличия исходников не требуется.


А можно ли привязку к железу реализовать на MQL4? (Большинство ДЦ до сих пор работают на MT4)  

К сожалению, нет.