近頃、複数取引所の保有通過を自動で表示してくれるアプリや、複数の取引所を一括して取引を行うwebサービスなど取引所のAPIを使用したサービスが増えてきました。
これは各取引所のAPIという機能を使用したサービスになります。
APIとは通常だと取引所などにログインしてからでないと使用できない機能などをログインの必要なしに自作したwebサイトやプログラムなどから使えるようにした機能です。
このAPIという機能の利点は自動売買や自動出金など取引所以外の第3者が取引所の元々ない機能を付加したものを作成できる点です。
しかしAPIのセキュリティリスクを理解していないと思いもよらぬGOXやハッキングに遭遇してしまいます。
今回はそのAPIを使用する際に気をつけるべきポイントをプログラマー目線で解説していきたいと思います。
目次
取引所APIの使い方徹底解説
1.APIの仕組みを簡単に理解しよう。
2.APIの権限を限定する。
3.APIを使用するwebサイト(アプリ)のAPIキーの管理方法を調べる。
4.使っていないAPIキーは削除(無効)にする
1.APIの仕組みを簡単に理解しよう。
APIは各取引所のAPIページから簡単に使用することができます。
APIページにアクセスし、APIキー作成ボタンを押すと、パブリックキーが作成され、それに対応したシークレットキーが同時に作成されます。
この2つのキーで1対になり、パブリックキーはID、シークレットキーはパスワード。のようなイメージになります。
この2つのキーを使ってwebサイト(プログラム)から取引所にアクセスするとログインの必要なしに取引所の機能を使用することができます。
そしてこの2つのキーは基本的には誰にも知られてはいけません。
悪意あるユーザーにこの2つのキーを知られてしまうと勝手に通貨の売買をされたり最悪は出金されて盗まれる。という可能性すらあります。
2.APIの権限を限定する。
APIを作成する際、多くの取引所では作成するAPIに権限(このAPIでどの機能の操作を許すか)を設定する項目があります。
例えば、「売買の許可」「出金の許可」「残高確認の許可」等、複数の項目が存在します。
自分が必要最低限の機能だけ許可してAPIキーを作成しましょう。
必要最低限の機能だけ許可することによって仮にAPIキーが流出した場合でも被害を最小限に抑えることができます。
私のオススメとしては「出金の許可」だけはするべきではないと考えています。
3.APIを使用するwebサイト(アプリ)のAPIキーの管理方法を調べる。
webサイトやアプリを自分で作成する場合、APIキーの管理は自分で行うため特に必要ないのですが、第3者が作成したwebサイトやアプリを使用する場合はそのwebサイト(アプリ)等がどのようにAPIキーを管理しているかを確認しましょう。
APIキーの管理には大きく分けて2つの管理方法(保存方法)があります。
1.運営者側のサーバーで管理(保存)する。
2.webサイトやアプリ側で管理(保存)する。
1.運営者側のサーバーで管理(保存)する。
この場合は要注意です。サーバー側で管理している場合、悪意ある運営会社だった場合あなたのAPIキーを使用して勝手に売買することができます。なんなら最初からユーザーのAPIキーを集める目的で作成したwebサイトかもしれません。
運営している会社に悪意がなかったとしても運営している会社のサーバー自体がハッキングされた場合、大量のAPIキーが取得できるため大変コスパの良いハッキングになりハッカーから狙われる可能性も高まります。
正直、この管理方法であれば私ならどんなに良い機能があったとしても使うことをためらうでしょう。
2.webサイトやアプリ側で管理(保存)する。
これはアプリをインストールした端末内やwebサイトにアクセスしたブラウザ内に保存する形式です。
こちらは1.と違い運営者側で管理しているわけではないので運営者側に自分のAPIキーを知られる事はありません。
ハッキングに対しても自分のスマホやパソコンを盗まれたりしない限りAPIが流出する事はありません。
4.使っていないAPIキーは削除(無効)にする
使っていないAPIキーは削除(無効)しましょう。これをこまめに行う事で予期せぬAPI経由のハッキングを避けることができます。
また、「APIキーが流出したかもしれない!」と思った時点で流出の可能性のあるAPIキーを削除(停止)しましょう。
基本的にAPIキーは幾つでも無料で作成できますので危ないと思ったら削除(停止)し、新しいいAPIキーをまた作成すれば良いでしょう。
まとめ
取引所APIの使い方についてまとめてみました。
ご覧いただいた通り、取引所APIは便利ではありますが、使い方を一歩間違えるとハッキングの被害にあってしまうことをご理解いただけたかと思います。
APIの管理に関しては細心の注意をはらいしっかり管理することをオススメします。
東京でエンジニアしてます^ ^仮想通貨で億万長者目指して勉強中♪moon夢見て草コインマイニングマシン起動中!ビットコインFX、bot作成にも興味有。
Follow @nekoneko2nyan