次世代EA・インジケーター認証システム”MetaTrader Encryption Protector”

MetaTrader Encryption Protectorとは?

MetaTrader Encryption Protector(M.E.P)はMT4/MT5のEA・インジケータ向け不正利用防止システムです。
自作のMT4・MT5用EA・インジケーターに強固な認証機能を導入できるシステムです。

今までの一般的なEA・インジケーターの認証方法

MT4・MT5用EA・インジケーターの不正利用対策としては以下のような方法が一般的です。



EA・インジケーター内に動作を許可する口座番号を記述しておく方法

    <問題点>

  • 利用者別に情報を記述して個別コンパイルする必要がある。
  • 都度作業を行うため記述ミスの発生が起こりやすくなる。
  • バージョンアップ等を行う際にも再度個別コンパイルが必要がある。



EA・インジケーター内に動作を許可する口座名義を記述しておく方法

    <問題点>

  • 利用者別に情報を記述して個別コンパイルする必要がある。
  • 都度作業を行うため記述ミスの発生が起こりやすくなる。
  • バージョンアップ等を行う際にも再度個別コンパイルが必要がある。



EA・インジケーター内に動作を許可する有効期限を記述しておく方法

    <問題点>

  • 有効期限が切れた際にEAがポジションを持っている場合の対策必須。
  • 有効期限が切れる度に更新バージョンを用意する必要がある。
  • 有効期限制限だけだと使いまわしされる。
  • バージョンアップ等を行う際に再度個別コンパイルが必要がある。



EA・インジケーター内に動作を許可するパスワードを記述しておく

    <問題点>

  • パスワードを使いまわしされるリスクが高い。
  • 口座番号等を組合せ生成する方法もあるが、一度発行したパスワードを無効にすることはできないため、口座変更をするという場合でも旧口座用に発行したパスワードを無効にはできない。
  • 有効期限等を組合せ生成する方法もあるが、有効期限が切れた際にEAがポジションを持っている場合の対策必須。
  • 有効期限が切れる事を周知しにくく、有効期限切れを把握していなかった・忘れていた利用者側からクレームが出る可能性が高い。



EA・インジケーター内に認証サーバーとの通信機能を組込みし、別途用意する認証サーバーシステムと通信して認証を行う(ウェブ認証)

    <問題点>

  • 万一開発者が活動を辞めた際や、サーバーが何らかの理由で通信できない際にはEA・インジケーターが使えなくなる。
  • WebRequest関数を使うと認証サーバーのURLが必然的に判明するのでDos/DDos攻撃やハッキングを受けるリスクが高まる。
  • DLLを使用する場合は認証データの送受信方法に工夫をしないと不正利用されるリスクがある。



このように一般的なEA・インジケーターの不正利用対策は一長一短があり、どれも完璧ではありません。
従来からの方法だと、どの方法も開発者側か利用者側にとって不満点や問題点が出てきます。




MetaTrader Encryption Protectorの認証方法

上記のように一般的なEA・インジケーターの認証方法はどれも一長一短がありますが、この度開発したMetaTrader Encryption Protectorは独自の認証方法で開発者側も利用者側も安心して利用できるよう設計しました。

開発者側は専用ファイルを所定位置にインストールし、EA・インジケーター側に専用コード数行を記述しコンパイルするだけです。
(別途、認証用ファイルを1つ置くサーバーが必要ですがPHPもDBも使いません)
(サーバーは有料でも無料でも構いません)

利用者側は開発者(配布者・出品者・販売者)に口座番号と口座タイプを伝えるだけです。
簡単なイメージとしてはウェブ認証とローカル認証の良い所を兼ね備えた、開発者にとっても利用者にとっても不安が少ないシステムを導入できるのがMetaTrader Encryption Protector(M.E.P)です。

MetaTrader Encryption Protectorの導入・認証イメージ

■ 開発時

  1. 認証用ファイルを1つ置くサーバーを用意する(*サーバーは有料でも無料でも構いません)

  2. MQL4-Includeフォルダに専用ファイル1つをインストールする。

  3. MQL4-Librariesフォルダに専用ファイル1つをインストールする。

  4. EA・インジケーターのmq4/mq5ファイル内に専用コードを数行挿入しコンパイルする。




■ 配布時

  1. 利用者から利用口座番号と口座タイプ(リアル・デモ)を教えていただく。

  2. アカウント情報ファイルに利用者から提供いただいた上記1の情報を書き込む。

  3. 専用MT4/MT5スクリプトを使い、アカウント情報ファイルから暗号化ファイルを発行。

  4. 上記3で発行した暗号化キーファイルを開発時1で用意したサーバーにアップロードする。

  5. 利用者に以下のファイルをを添付し利用開始可能メールを送る。
    ・コンパイルしたEA・インジケーター
    ・専用ファイル1つ
    ・認証用ファイル1つ

  6. 以後、利用者の口座情報が追加修正削除となる場合は、2のアカウント情報ファイルに追加修正削除し、3~5の作業を繰り返す。




■利用者側

  1. 配布者に利用口座番号と口座タイプ(リアル・デモ)を伝える。

  2. 後ほど配布者から送付された登録完了のメールが来ます。
    そのメールに添付されているファイルを所定の場所にインストールする。
    ・EA・インジケーターをMT4/MT5の所定フォルダにインストール
    ・専用ファイル1つをMT4/MT5の所定フォルダにインストール。
    ・認証用ファイルを所定のフォルダにインストール。

  3. EA・インジケーターを利用者側1で伝えた口座番号でログインしているMT4/MT5で使う。

  4. もしサーバー側に何等かのアクシデントが発生しサーバーアクセスが不能になった場合でも、別処理で再認証を行い登録済み口座であれば問題なく動作します。




MetaTrader Encryption Protectorのメリット

MetaTrader Encryption Protectorには以下のような大きなメリットがあります。

  • EA・インジケーターの中に認証情報(口座番号や口座名義や利用期限やパスワード等)を利用者個別に記述しコンパイルする必要がないので、利用者へスピーディーに提供できる。

  • 利用者側もEA・インジケーターを素早く入手でき、利用する事ができるまでのタイムラグが少ない。

  • 利用する口座が変わったり増えたり減ったりしても、その情報を素早く更新する事ができる。

  • サーバーへ何等かの理由でアクセス不能になった場合でも、別処理で再認証を行えるので、登録済み口座であれば不安なくEA・インジケーターを継続利用できる。

  • よくありそうな質問想定

    Q : 暗号化キーファイルって口座番号とか見えないの?

    A : セキュリティリスクになるので詳細は言えませんが、暗号化キーファイルの生成についてはAESと呼ばれる暗号アルゴリズムに独自の暗号処理もプラスした処理を入れて、口座番号等を暗号化したものを使用していますので暗号化キーファイルを見ても全く理解不能な文字列が記載されているだけです。

    また暗号化キーファイルの中身を改ざんしても動作しません。


    Q : AES暗号化って安全なの?

    A : AESは身近な所では無線LANやSSL通信、HDDやUSBメモリのデータ暗号化などにも使用されている暗号化アルゴリズムで、アメリカ政府標準として認められています。

    MetaTrader Encryption Protectorには最強のAES256を採用しています。

    但しこの手の技術革新は絶えずありますので、絶対に暗号を突破できないという保証はありませんが、強固な暗号の一つである事は確かです。


    Q : どのようなサーバースペックが必要?

    A : MetaTrader Encryption Protectorで使用するサーバー側には特殊なプログラムファイルは一切置きません。

    単純に暗号化キーファイルをサーバーへアップロードし、そのURLにアクセスすると暗号化キーファイルをダウンロードできれば良いだけです。
    (例: https://—–.com/暗号化キーファイル名)

    そのため、PHPもDB(MySQLやSQLLite等)を使用しません。
    サーバースペックは利用者数の想定数にもよりますが何百円/月のレンタルサーバーから、無料サーバー、ストレージサービスまで色々なサーバーが使えます。

    代表的な以下の各社サーバーで検証し、動作確認済みです。


    Q : WebRequest()を使うとサーバーURLが利用者にわかってしまうので嫌なのですが

    A : MetaTrader Encryption Protectorはインターネットアクセス関連処理を全て専用ファイル内に実装していますので、MT4/MT5側のWebRequestを許可するURLリストにサーバーURLを登録する必要はありません。


    Q : 買い切り制ですか?月額制ですか?

    A : 買い切り制です。ご購入後に別途毎月お支払いただくような制度はありません。
    (サーバー契約やサーバー運用代金はご購入者様側のご負担となります)




    価格

    MetaTrader Encryption Protector(MEP)の価格は49800円となります。
    ご購入ご希望の方は以下の方法からお好みの方法でご購入下さい。

    ・paypay決済かメリペイ決済をご希望の方
    専用お申込みフォーム(Googleフォーム)

    ・ヤフオクでご購入をご希望の方
    ヤフオク こつめ出品ページ

    なおご購入いただいた方にはささやかなサービスですが、導入事例として商品名とURLを本記事に追記させていただだきます(˘ω˘ )v
    (ご希望者の方のみ)