バイナンスのAPIキーは、64ビットのパブリックキー(Public Key)と64ビットのシークレットキー(Secret Key)のペアで構成され、自動売買、取引所間のアービトラージ、マーケットデータの購読などの自動化シナリオで使用されます。保管の核心的な原則は、権限の最小化、IPホワイトリストの強制有効化、キーをプレーンテキストで保存しないことです。新規ユーザーは バイナンス公式サイト にログインし、アカウントメニュー下の「API管理」から作成できます。モバイル版では バイナンス公式アプリ の「その他 - API管理」から作成可能です。新しいiOSデバイスで初めて使用する場合は、iOSインストールチュートリアル を参照してデバイスのアクティベーションを完了させてください。結論から言うと、最も重要な権限は「出金(Withdraw)」権限です。99%の個人ユーザーにとって この項目にチェックを入れる必要はありません。ReadとTradeの権限のみを維持し、IPホワイトリストを組み合わせることで、万が一APIキーが盗まれた際の損失をほぼゼロに抑えることができます。
一、APIキーの構成と署名メカニズム
ステップ 1:キーペアを理解する
各APIキーは、一対のBase64文字列で構成されています。パブリックキーはリクエストヘッダーで身元を識別するために使用され、シークレットキーはローカルで署名を生成するために使用されます。バイナンスのサーバーはパブリックキーと対応する権限のみを保存し、シークレットキーは一切保存しません。そのため、シークレットキーを忘れた場合は再作成するしかありません。
ステップ 2:HMAC-SHA256 署名
プライベートAPIを呼び出す際、クライアントはリクエストパラメータを辞書順に並べ替え、クエリストリングを作成し、シークレットキーを鍵としてHMAC-SHA256計算を行い、64文字の16進数(hex)署名を取得する必要があります。サーバーも同様の方法で計算し、結果を照合した上でアクセスを許可します。この仕組みにより、キー自体がインターネット上を流れるのを防いでいます。
ステップ 3:タイムウィンドウ
リクエストには timestamp パラメータを含める必要があります。デフォルトでは5,000ミリ秒の誤差が許容されますが、最大60,000ミリ秒 まで調整可能です。ウィンドウが広すぎるとリプレイ攻撃(再送攻撃)の隙を与えることになるため、デフォルト値を維持し、ローカルのNTPサーバーで時間を同期しておくことをお勧めします。
二、3つの権限の違いと推奨設定
バイナンスのAPI権限は、リスクの低い順に3段階に分かれており、必要に応じて選択できます:
- Read(読み取り):アカウント残高、取引履歴、現在の注文状況の照会が可能です。漏洩しても情報が流出するだけで、資金的な損失にはつながりません。Bot、ポートフォリオ管理、税務計算ソフトのほとんどはこの権限だけで十分です。
- Trade(取引):注文、キャンセル、現物・先物間の振り替えなどが可能です。漏洩した場合、攻撃者が市場価格を操作して自身の関連アカウントに利益を移すなどの間接的な損失リスクがありますが、資金自体は取引所内に留まります。
- Withdraw(出金):資産を直接オンチェーンアドレスに出金できます。漏洩した瞬間に資産がゼロになるリスクがあるため、一般的な自動売買スクリプトで有効にすることは強くお勧めしません。
その他、現物から先物への内部振り替えを制御する「Universal Transfer」や、レバレッジアカウントを制御する「Margin」などの細分化されたスイッチもあります。現物取引のみを行う場合は、これらはすべてデフォルト(オフ)のままにしておきましょう。
APIキーの作成手順:アカウントセンター → API管理 → APIの作成 → キー名称(例:「grid-bot-btc」)を入力 → 権限を選択 → IPホワイトリストを入力 → メールと2FAの二重認証。作成後、シークレットキーは 一度だけ 表示されるので、直ちにオフラインのパスワードマネージャーに保存してください。
三、IPホワイトリストとキーの更新戦略
以下の表は、ユーザータイプ別の推奨設定です:
| ユーザータイプ | Read | Trade | Withdraw | IPホワイトリスト | 更新周期 |
|---|---|---|---|---|---|
| 閲覧のみ | オン | オフ | オフ | 必須(1件) | 180日 |
| グリッドBot | オン | オン | オフ | 必須(1件) | 90日 |
| マーケットメイカー | オン | オン | オフ | 必須(1〜3件) | 60日 |
| アービトラージ | オン | オン | オフ | 必須(2件) | 60日 |
| 法人資産管理 | オン | オン | 任意(オン可) | 必須+二人承認 | 30日 |
| 一次的なスクリプト | オン | オン | オフ | 必須(1件) | 使用後即削除 |
重要なポイント:IPホワイトリストを有効にしていないAPIキーが漏洩した場合、資産の損失はほぼ取り返しがつきません。Trade権限のみを有効にしている場合でも、攻撃者は馴れ合い売買(対向売買)によって資産を減少させることが可能です。IPホワイトリストを有効にすると、バイナンスのサーバーはすべてのリクエストの送信元IPを確認し、リスト内のアドレスからのアクセスのみを許可します。
キーの定期的な更新(ローテーション)の意義は、万が一キーが意図せず漏洩した場合(例:GitHubへの誤送信、ログファイルのバックアップ)でも、90日後 には自動的に無効になり、攻撃者が長期的に利用するのを防ぐことにあります。更新時は、まず新しいキーを作成し、すべてのスクリプトを更新してから古いキーを削除してください。その際、2つのキーが同時に有効な時間を最小限に抑えるようにしましょう。
四、典型的なシナリオとリスク事例
シナリオ1:初心者がコードを公開リポジトリ(GitHubなど)に誤ってコミット。GitHubのシークレットスキャンBotが数分以内にプレーンテキストのキーを発見し、攻撃者が自動スクリプトでアカウントを操作する。対策:シークレットキーは環境変数や .env ファイルに保存し、.gitignore でそのファイルを除外する。
シナリオ2:クラウドサーバーがハッキングされる。IPホワイトリストを設定していない キーは、サーバーの設定ファイルから直接抽出され、世界中の任意のIPから取引が実行される。IPホワイトリストを有効にしていれば、キーが流出しても、ホワイトリスト外のIPからのリクエストは拒否されます。
シナリオ3:フィッシングサイトによる誘導。一部のサードパーティ取引プラットフォームがAPIキーの入力を求める場合、偽のインターフェースで自身のサーバーにアップロードされるとキーが記録されます。見知らぬサードパーティにシークレットキーを貼り付けないでください。信頼できるツールはすべてOAuthまたは取引所の公式認可をサポートしています。
シナリオ4:内部不正。法人での利用などで複数人が操作する場合、サブアカウント+独立したAPIキー を使用して権限を隔離し、アクセスログの監査を有効にすることを推奨します。従業員の退職や異動の際は、直ちに対応するキーを無効化してください。
リスクのまとめ:64ビットのシークレットキーがローカルを離れた時点で、漏洩したものと見なすべきです。画面録画、クラウド同期、チャットのスクリーンショットなど、あらゆるところから露出する可能性があるため、電子的・物理的な両面で厳重に保管してください。
五、FAQ よくある質問
Q:一つのAPIキーを複数のプログラムで共有できますか? A:技術的には可能ですが、お勧めしません。複数のプログラムで共有するとログの追跡が困難になります。各戦略、各サーバーごとに個別のキーを作成し、異常な挙動を特定しやすくすることをお勧めします。
Q:IPホワイトリストには固定IPしか登録できませんか? A:はい、パブリック固定IPである必要があります。動的IPの家庭用回線を使用している場合は、VPSやDDNSを使用して出口IPを固定する必要があります。通常、IPホワイトリストは最大 20件 まで登録可能で、複数のサーバーをカバーできます。
Q:シークレットキーを忘れてしまった場合は? A:シークレットキーは作成時に一度だけ表示され、後から確認することはできません。古いキーを削除して再作成し、すべてのスクリプトの設定を更新する必要があります。これは通常のパスワードとは本質的に異なる点です。
Q:APIキーのデフォルトの有効期限は? A:デフォルトでは無期限ですが、バイナンスは90日間活動がない場合に手動での延長を促す通知を送ります。自動失効に頼らず、自ら90日ごとに更新することを推奨します。
Q:APIキーが漏洩したと分かったら、まず何をすべきですか? A:直ちにアカウントのAPI管理ページにログインして該当のキーを削除し、ホワイトリストで出金を遮断し、ログインパスワードと2FAをリセットしてください。最近の取引履歴に異常な注文がないか確認し、必要に応じて公式サポートに異議申し立てを行ってください。